From 724f82ac31d112612f9ae33a3cce9bf0d61d9f08 Mon Sep 17 00:00:00 2001 From: Maaike van Leuken <97684325+maaikevanleuken@users.noreply.github.com> Date: Thu, 25 Jan 2024 09:30:36 +0100 Subject: [PATCH 01/76] Maaikevanleuken patch 7 (#20) * Update script.js fixing names Signed-off-by: Maaike van Leuken <97684325+maaikevanleuken@users.noreply.github.com> * Update index.html Signed-off-by: Maaike van Leuken <97684325+maaikevanleuken@users.noreply.github.com> --------- Signed-off-by: Maaike van Leuken <97684325+maaikevanleuken@users.noreply.github.com> Signed-off-by: Mirko Mollik --- index.html | 6 +++--- script.js | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/index.html b/index.html index e27f2e4..d625416 100644 --- a/index.html +++ b/index.html @@ -24,7 +24,7 @@

Wallet Overview

- General + General Technology Stack User-Friendliness Privacy @@ -91,7 +91,7 @@

Wallet Overview

- Organizational Wallet + Organisational Wallet @@ -107,7 +107,7 @@

Wallet Overview

Whether the wallet is open source and if so, the link to their code base. - Download + Links to app diff --git a/script.js b/script.js index 381e79b..ba63c9d 100644 --- a/script.js +++ b/script.js @@ -16,8 +16,8 @@ fetch("flattened_wallets.json") ${wallet.verifierCapability} ${wallet.scope} ${wallet.deployment} - ${wallet.organizationalWallet} - ${wallet.openSource == 'Yes' ? ''+wallet.openSource+'' : wallet.openSource} + ${wallet.organisationalWallet} + ${wallet.openSource == 'Yes' ? ''+wallet.openSource+'' : wallet.openSource} ${wallet.urlGooglePlayStore == '-' ? '-': ''} ${wallet.urlAppStore == '-' ? '-': ''} ${wallet.urlWebApp == '-' ? '-': ''} @@ -30,7 +30,7 @@ fetch("flattened_wallets.json") ${wallet.identifierHolder} ${wallet.identifierIssuer} ${wallet.revocationAlgorithm} - ${wallet.peer2peerProtocols} + ${wallet.peer2PeerProtocols} ${wallet.credExchangeProtocol} ${wallet.blockchainUsed} ${wallet.blockchainType} @@ -54,10 +54,10 @@ fetch("flattened_wallets.json") ${wallet.keyRotationIssuer} ${wallet.eassi} - ${wallet.EBSI} - ${wallet.AIP} - ${wallet.DDIP} - ${wallet.MDOC} + ${wallet.ebsi} + ${wallet.aip} + ${wallet.ddip} + ${wallet.mdoc} `; From e091e5a2abcb21cc3db3986b813da7f6d9a59252 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:24:30 +0100 Subject: [PATCH 02/76] replace application with angular, restructure wallet data Signed-off-by: Mirko Mollik --- .github/workflows/count.yml | 37 + .github/workflows/main.yml | 91 + README.md | 9 +- flattened_wallets.json | 3198 ++-- index.html | 471 - schema.json | 29 + script.js | 67 - styles.css | 203 - viewer/.editorconfig | 16 + viewer/.gitignore | 43 + viewer/.vscode/extensions.json | 4 + viewer/.vscode/launch.json | 20 + viewer/.vscode/tasks.json | 42 + viewer/README.md | 27 + viewer/angular.json | 109 + viewer/package-lock.json | 12839 ++++++++++++++++ viewer/package.json | 44 + viewer/scripts/merge-wallets.mjs | 23 + viewer/scripts/validate.mjs | 21 + viewer/src/app/app.component.html | 114 + viewer/src/app/app.component.scss | 22 + viewer/src/app/app.component.spec.ts | 29 + viewer/src/app/app.component.ts | 63 + viewer/src/app/app.config.ts | 9 + viewer/src/app/app.routes.ts | 3 + viewer/src/app/types.ts | 85 + viewer/src/assets/.gitkeep | 0 viewer/src/assets/default-image.png | Bin 0 -> 2568 bytes viewer/src/assets/github.svg | 1 + .../src/assets/logos}/Gimly-wallet.png | Bin .../src/assets/logos}/VIDwallet.png | Bin {static => viewer/src/assets/logos}/altme.png | Bin .../src/assets/logos}/atala-prism.png | Bin .../src/assets/logos}/certishare-wallet.png | Bin .../src/assets/logos}/data-wallet.png | Bin .../src/assets/logos}/datakeeper.png | Bin .../src/assets/logos}/esatus-wallet.png | Bin .../src/assets/logos}/gataca.png | Bin .../src/assets/logos}/helix-id.png | Bin .../src/assets/logos}/identry.png | Bin .../src/assets/logos}/lissi-wallet.png | Bin .../src/assets/logos}/mattr-wallet.png | Bin .../src/assets/logos}/mykeepin.png | Bin .../src/assets/logos}/paradym-wallet.png | Bin .../src/assets/logos}/sphereon-wallet.png | Bin .../src/assets/logos}/spherity-wallet.png | Bin {static => viewer/src/assets/logos}/talao.png | Bin .../src/assets/logos}/walt-id.png | Bin {static => viewer/src/assets/logos}/yivi.png | Bin {static => viewer/src/assets/logos}/zada.png | Bin viewer/src/assets/project-icon.png | Bin 0 -> 6777 bytes .../environments/environment.development.ts | 1 + viewer/src/environments/environment.ts | 1 + viewer/src/favicon.ico | Bin 0 -> 15086 bytes viewer/src/index.html | 21 + viewer/src/main.ts | 6 + viewer/src/styles.scss | 12 + viewer/tsconfig.app.json | 14 + viewer/tsconfig.json | 33 + viewer/tsconfig.spec.json | 14 + wallets/AceID Wallet.json | 10 + wallets/Apple Wallet.json | 8 + wallets/Atala PRISM.json | 31 + wallets/Authenticator.json | 8 + wallets/BC Wallet.json | 8 + wallets/Blockcerts Wallet.json | 10 + wallets/Blockpass.json | 10 + wallets/CertiShare Wallet.json | 31 + wallets/Data Wallet.json | 42 + wallets/Datakeeper.json | 33 + wallets/Digital ID Wallet.json | 8 + wallets/Gataca.json | 33 + wallets/IDEMIA Mobile ID.json | 8 + wallets/Identry.json | 30 + wallets/KayTrust Wallet.json | 10 + wallets/Lissi Wallet.json | 32 + wallets/MATTR Wallet.json | 33 + wallets/MYKEEPiN.json | 33 + wallets/Microsoft Entra.json | 8 + wallets/Paradym Wallet.json | 33 + wallets/Sphereon Wallet.json | 33 + wallets/Spherity Wallet.json | 30 + wallets/Talao.json | 31 + wallets/Tap ID.json | 23 + wallets/VIDwallet.json | 32 + wallets/Yivi.json | 33 + wallets/ZADA.json | 32 + wallets/esatus Wallet.json | 36 + wallets/helix id.json | 33 + wallets/idento.one.json | 7 + wallets/walt.id.json | 30 + 91 files changed, 16119 insertions(+), 2341 deletions(-) create mode 100644 .github/workflows/count.yml create mode 100644 .github/workflows/main.yml delete mode 100644 index.html create mode 100644 schema.json delete mode 100644 script.js delete mode 100644 styles.css create mode 100644 viewer/.editorconfig create mode 100644 viewer/.gitignore create mode 100644 viewer/.vscode/extensions.json create mode 100644 viewer/.vscode/launch.json create mode 100644 viewer/.vscode/tasks.json create mode 100644 viewer/README.md create mode 100644 viewer/angular.json create mode 100644 viewer/package-lock.json create mode 100644 viewer/package.json create mode 100644 viewer/scripts/merge-wallets.mjs create mode 100644 viewer/scripts/validate.mjs create mode 100644 viewer/src/app/app.component.html create mode 100644 viewer/src/app/app.component.scss create mode 100644 viewer/src/app/app.component.spec.ts create mode 100644 viewer/src/app/app.component.ts create mode 100644 viewer/src/app/app.config.ts create mode 100644 viewer/src/app/app.routes.ts create mode 100644 viewer/src/app/types.ts create mode 100644 viewer/src/assets/.gitkeep create mode 100644 viewer/src/assets/default-image.png create mode 100644 viewer/src/assets/github.svg rename {static => viewer/src/assets/logos}/Gimly-wallet.png (100%) rename {static => viewer/src/assets/logos}/VIDwallet.png (100%) rename {static => viewer/src/assets/logos}/altme.png (100%) rename {static => viewer/src/assets/logos}/atala-prism.png (100%) rename {static => viewer/src/assets/logos}/certishare-wallet.png (100%) rename {static => viewer/src/assets/logos}/data-wallet.png (100%) rename {static => viewer/src/assets/logos}/datakeeper.png (100%) rename {static => viewer/src/assets/logos}/esatus-wallet.png (100%) rename {static => viewer/src/assets/logos}/gataca.png (100%) rename {static => viewer/src/assets/logos}/helix-id.png (100%) rename {static => viewer/src/assets/logos}/identry.png (100%) rename {static => viewer/src/assets/logos}/lissi-wallet.png (100%) rename {static => viewer/src/assets/logos}/mattr-wallet.png (100%) rename {static => viewer/src/assets/logos}/mykeepin.png (100%) rename {static => viewer/src/assets/logos}/paradym-wallet.png (100%) rename {static => viewer/src/assets/logos}/sphereon-wallet.png (100%) rename {static => viewer/src/assets/logos}/spherity-wallet.png (100%) rename {static => viewer/src/assets/logos}/talao.png (100%) rename {static => viewer/src/assets/logos}/walt-id.png (100%) rename {static => viewer/src/assets/logos}/yivi.png (100%) rename {static => viewer/src/assets/logos}/zada.png (100%) create mode 100644 viewer/src/assets/project-icon.png create mode 100644 viewer/src/environments/environment.development.ts create mode 100644 viewer/src/environments/environment.ts create mode 100644 viewer/src/favicon.ico create mode 100644 viewer/src/index.html create mode 100644 viewer/src/main.ts create mode 100644 viewer/src/styles.scss create mode 100644 viewer/tsconfig.app.json create mode 100644 viewer/tsconfig.json create mode 100644 viewer/tsconfig.spec.json create mode 100644 wallets/AceID Wallet.json create mode 100644 wallets/Apple Wallet.json create mode 100644 wallets/Atala PRISM.json create mode 100644 wallets/Authenticator.json create mode 100644 wallets/BC Wallet.json create mode 100644 wallets/Blockcerts Wallet.json create mode 100644 wallets/Blockpass.json create mode 100644 wallets/CertiShare Wallet.json create mode 100644 wallets/Data Wallet.json create mode 100644 wallets/Datakeeper.json create mode 100644 wallets/Digital ID Wallet.json create mode 100644 wallets/Gataca.json create mode 100644 wallets/IDEMIA Mobile ID.json create mode 100644 wallets/Identry.json create mode 100644 wallets/KayTrust Wallet.json create mode 100644 wallets/Lissi Wallet.json create mode 100644 wallets/MATTR Wallet.json create mode 100644 wallets/MYKEEPiN.json create mode 100644 wallets/Microsoft Entra.json create mode 100644 wallets/Paradym Wallet.json create mode 100644 wallets/Sphereon Wallet.json create mode 100644 wallets/Spherity Wallet.json create mode 100644 wallets/Talao.json create mode 100644 wallets/Tap ID.json create mode 100644 wallets/VIDwallet.json create mode 100644 wallets/Yivi.json create mode 100644 wallets/ZADA.json create mode 100644 wallets/esatus Wallet.json create mode 100644 wallets/helix id.json create mode 100644 wallets/idento.one.json create mode 100644 wallets/walt.id.json diff --git a/.github/workflows/count.yml b/.github/workflows/count.yml new file mode 100644 index 0000000..26458be --- /dev/null +++ b/.github/workflows/count.yml @@ -0,0 +1,37 @@ +name: Count Files and Publish to badge-info + +on: + push: + branches: + - main + +permissions: + contents: write + +jobs: + count_files_and_publish_to_badgeinfo: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Count files in wallet folder + id: file_count + run: | + file_count=$(find wallets -type f | wc -l) + echo "wallet-count=$file_count" >> $GITHUB_OUTPUT + + - name: Create JSON file + run: | + mkdir values + echo "{ \"schemaVersion\": 1, \"label\": \"Profiles\", \"message\": \"${{ steps.file_count.outputs.wallet-count }}\", \"color\": \"green\" }" > values/profiles.json + + # Deploy to local repo + - name: Deploy + uses: s0/git-publish-subdir-action@develop + env: + REPO: self + BRANCH: badge-info + FOLDER: values + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..5955bc3 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,91 @@ +name: Publish GitHub Pages + +on: + pull_request: + types: + - opened + - synchronize + push: + branches: + - main + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: 'pages' + cancel-in-progress: false + +jobs: + validate: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: 18 + + - name: Install dependencies + run: cd viewer && npm ci + + #TODO: we are not validating the schemas of the data files yet. + # - name: Validate + # run: cd viewer && npm run validate + + build: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: 18 + + - name: Install dependencies + run: cd viewer && npm ci + + - name: Build Angular app + run: cd viewer && npm run build -- --configuration production + + - name: upload artifacts + uses: actions/upload-artifact@v3 + with: + name: viewer + path: viewer/dist/browser + + publish: + # only run on the main branch + if: github.ref == 'refs/heads/main' + needs: [validate, build] + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Download artifact from build job + uses: actions/download-artifact@v3 + with: + name: viewer + + - name: Setup Pages + uses: actions/configure-pages@v3 + + - name: Upload artifact + uses: actions/upload-pages-artifact@v1 + with: + # Upload entire repository + path: '.' + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 diff --git a/README.md b/README.md index d3984af..b2b6a05 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ +//TODO: set correct path to repo +![Wallets](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fopenwallet-foundation%2Fcredential-format-comparison-sig%2Fbadge-info%2Fprofiles.json) + # Digital Wallet and Agent Overviews Special Interest Group (SIG) The objectives of this SIG is to further develop and maintain the Digital Wallet Overview and including the digital identity agents/SDKs in the overview. The overview can be found [here](https://openwallet-foundation.github.io/digital-wallet-and-agent-overviews-sig/). These overview should provide transparency of the characteristics of wallets and agents in order to allow for comparison and effective decision making on which wallet is applicable for your use case. By creating awareness of these overviews, this work can lead to less fragmentation of the SSI playing field and increase adoption. @@ -5,19 +8,23 @@ The objectives of this SIG is to further develop and maintain the Digital Wallet This SIG was accepted by the TAC on [September 20, 2023](../meetings/2023/2023-09-20.md). See [Digital Wallet and Agent Overviews SIG Proposal](https://github.com/openwallet-foundation/tac/issues/56) for more details. ## Participating + This SIG is an open group. Anyone in the OpenWallet Foundation community can join and participate. There is no formal sign up process. Just show up and participate. -If you are interested in participating, please join the [OpenWallet Foundation Discord](https://discord.gg/openwalletfoundation) and participate in the discussion in the [#digital-wallet-and-agent-overviews-sig](https://discord.com/channels/1022962884864643214/1154111877077532814) channel. +If you are interested in participating, please join the [OpenWallet Foundation Discord](https://discord.gg/openwalletfoundation) and participate in the discussion in the [#digital-wallet-and-agent-overviews-sig](https://discord.com/channels/1022962884864643214/1154111877077532814) channel. Upcoming meetings: + - November 16th, 7:00 AM PT / 16:00 CET - November 30th, 7:00 AM PT / 16:00 CET - December 14th, 7:00 AM PT / 16:00 CET ## Target Audience + This overview should be usable by persons and organisations. Anyone willing to use digital wallets or agents for digital credential purposes should be able to objectively compare the characteristics of wallets/agents and create a short-list of candidates for their use case. It can also serve as resource for market awareness and visibility of wallets/agents for wallet/agent vendors. ## Scoping + We use the terminilogy on digital credentials, wallets and agents as described in the [ToIP glossary](https://docs.google.com/document/d/1fZByfuSOwszDRkE7ARQLeElSYmVznoOyJK4sxRvJpyM/edit). Included in the overview are holder agents+wallets, issuer agents and verifier agents. Initially, we will only include wallets and agents that at least have the functionality to store and exchange digital credentials. diff --git a/flattened_wallets.json b/flattened_wallets.json index 149b1d1..b424c6f 100644 --- a/flattened_wallets.json +++ b/flattened_wallets.json @@ -1,1600 +1,1600 @@ [ - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "AceBlock blockchain framework", - "blockchainUsed": "Yes", - "company": "AceBlock", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/aceid-wallet.png", - "mdoc": "-", - "name": "AceID Wallet", - "observability": "-", - "offlineFriendly": "-", - "openSource": "-", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "-", - "blockchainUsed": "-", - "company": "Apple", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/apple-wallet.png", - "mdoc": "-", - "name": "Apple Wallet", - "observability": "-", - "offlineFriendly": "-", - "openSource": "-", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Anchoring public DIDs for issuers and/or verifiers (ie: enabling trust registry)", - "blockchainType": "Cardano", - "blockchainUsed": "Yes", - "company": "IOHK", - "connectionTypes": "Connection-based communication", - "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "JWT-VC, soon:AnonCreds", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "No", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "JSON, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "-", - "identifierHolder": "did:prism", - "identifierIssuer": "did:prism", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/atala-prism.png", - "mdoc": "-", - "name": "Atala PRISM", - "observability": "-", - "offlineFriendly": "-", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "DIDComm", - "portability": "-", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Revocation not supported, soon: Revocation List 2021", - "scope": "-", - "selectiveDisclosure": "No", - "signatureAlgorithm": "ECDSA, soon: CL", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "-", - "blockchainUsed": "-", - "company": "Microsoft", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/authenticator.png", - "mdoc": "-", - "name": "Authenticator", - "observability": "-", - "offlineFriendly": "-", - "openSource": "-", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "-", - "blockchainUsed": "-", - "company": "Government of BC", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/bc-wallet.png", - "mdoc": "-", - "name": "BC Wallet", - "observability": "-", - "offlineFriendly": "-", - "openSource": "-", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "Bitcoin and Ethereum, with Merkle proof linking credential to blockchain transaction", - "blockchainUsed": "Yes", - "company": "Hyland Credentials (formerly: Learning Machine)", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/blockcerts-wallet.png", - "mdoc": "-", - "name": "Blockcerts Wallet", - "observability": "-", - "offlineFriendly": "-", - "openSource": "Yes", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "Ethereum or Blockpass", - "blockchainUsed": "Yes", - "company": "Blockpass IDN", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/blockpass.png", - "mdoc": "-", - "name": "Blockpass", - "observability": "-", - "offlineFriendly": "-", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Schema, CredentialDefinitions, DID, Revocation", - "blockchainType": "Hyperledger Indy", - "blockchainUsed": "Yes", - "company": "The Ego Company", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "AnonCred, JSON-LD", - "cryptoAgility": "No", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "-", - "identifierHolder": "did:", - "identifierIssuer": "did:sov", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/certishare-wallet.png", - "mdoc": "-", - "name": "CertiShare Wallet", - "observability": "No", - "offlineFriendly": "-", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "DIDComm, DID Exchange Protocol, openID", - "portability": "-", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "Yes", - "api": "-", - "blockchainPurpose": "For publishing schema IDs, credential def IDs and public DID", - "blockchainType": "Hyperledger Indy, Ethereum, EBSI blockchain", - "blockchainUsed": "Yes", - "company": "iGrant.io", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange, DEXA", - "credentialFormat": "AnonCreds, JWT-VC, ICAO DTC, x.509", - "cryptoAgility": "No", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "Yes", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "-", - "identifierHolder": "did:ebsi, did:key, link secrets, X.509", - "identifierIssuer": "did:ebsi, did:key, did:sov, X.509", - "issuerCapability": "-", - "keyHistoryHolder": "Yes", - "keyHistoryIssuer": "Yes", - "keyRotationHolder": "Yes", - "keyRotationIssuer": "Yes", - "logo": "static/data-wallet.png", - "mdoc": "Planned", - "name": "Data Wallet", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "No", - "organisationalWallet": "Yes, but branded as Enterprise Wallet Platform by iGrant.io", - "peer2PeerProtocols": "OIDC4VC, OIDC4VP, SIOPv2, DIDComm, DID Exchange Protocol, Connection protocols in AIP 1.0", - "portability": "-", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation, EBSI revocation, W3C Status List 2021, SLTD database (travel and identity documents), CRL - certificate revocation list", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL, ES256, ECDSA", - "support": "support@igrant.io", - "urlAppStore": "https://apple.co/2Mz9nJp", - "urlGooglePlayStore": "https://play.google.com/store/apps/details?id=io.igrant.mobileagent", - "urlWebApp": "https://business.igrant.io/", - "urlWebsite": "https://igrant.io/datawallet.html", - "verifierCapability": "-", - "verifierUnlinkability": "Yes" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "N/A", - "blockchainType": "N/A", - "blockchainUsed": "No", - "company": "Rabobank Nederland", - "connectionTypes": "Direct communication", - "credExchangeProtocol": "Datakeeper protocol (Verifiable Presentation)", - "credentialFormat": "LDP-VC", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "Yes", - "ebsi": "-", - "encodingScheme": "JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "-", - "identifierHolder": "did:eth", - "identifierIssuer": "did:eth", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/datakeeper.png", - "mdoc": "-", - "name": "Datakeeper", - "observability": "No", - "offlineFriendly": "No", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "Datakeeper protocol", - "portability": "-", - "predicates": "Depending on ...", - "quantumSafe": "No", - "revocationAlgorithm": "Validity credential, Revocation not supported", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "ECDSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "-", - "blockchainUsed": "-", - "company": "Thales", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/digital-id-wallet.png", - "mdoc": "-", - "name": "Digital ID Wallet", - "observability": "-", - "offlineFriendly": "-", - "openSource": "-", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "N/A", - "blockchainType": "N/A", - "blockchainUsed": "No", - "company": "esatus AG", - "connectionTypes": "Connection-based communication", - "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "AnonCred", - "cryptoAgility": "No", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "Yes", - "ebsi": "-", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "-", - "identifierHolder": "Link secret", - "identifierIssuer": "Link secret", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/esatus-wallet.png", - "mdoc": "-", - "name": "esatus Wallet", - "observability": "No", - "offlineFriendly": "No", - "openSource": "A new version of the wallet - called SOWL wallet - will be available soon, together with an open source wallet SDK on which SOWL Wallet is based.", - "organisationalWallet": "-", - "peer2PeerProtocols": "DIDComm", - "portability": "-", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL", - "support": "-", - "urlAppStore": "https://apps.apple.com/us/app/esatus-wallet/id1496769057?itsct=apps_box&itscg=30200", - "urlGooglePlayStore": "https://play.google.com/store/apps/details?id=com.esatus.wallet&hl=de_DE&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1", - "urlWebApp": "-", - "urlWebsite": "https://esatus.com/index.html%3Fp=7663&lang=en.html", - "verifierCapability": "-", - "verifierUnlinkability": "Yes" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "To anchor DIDs (legal entities), and to anchor the trust framework", - "blockchainType": "We are agnostic to the infra, so the platform right now supports Ethereum, Fabric and EBSI", - "blockchainUsed": "Yes", - "company": "Gataca Inc.", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "LDP-VC, JTW-VC", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "JSON-LD", - "hardwareSupport": "No", - "holderCapability": "-", - "identifierHolder": "did:key", - "identifierIssuer": "did:gatc", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/gataca.png", - "mdoc": "-", - "name": "Gataca", - "observability": "Yes", - "offlineFriendly": "Yes, implemntation according to ARF", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "OIDC, SIOP", - "portability": "-", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Status List 2017, Status List 2021", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "EdDSA, RSA, secp256k, P-256, CadEs", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Anchor DID & DID Documents", - "blockchainType": "Depending on DID method", - "blockchainUsed": "Yes", - "company": "Gimly", - "connectionTypes": "Direct communication, Connection-based communication, Direct NFC-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "JWT, JWT-VC, LDP-VC", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "Yes, NFC HWW", - "holderCapability": "-", - "identifierHolder": "did:ethr, did:ion, did:web, did:jwk, did:key", - "identifierIssuer": "did:web, did:ion, did:key, did:jwk", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/Gimly-wallet.png", - "mdoc": "-", - "name": "Tap ID", - "observability": "-", - "offlineFriendly": "Yes", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "OIDC, SIOP, DIDComm", - "portability": "-", - "predicates": "No", - "quantumSafe": "-", - "revocationAlgorithm": "Status List 2021", - "scope": "Travel, Hospitality, Access Control", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+, ECDSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "https://www.gimly.io", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "No personal data", - "blockchainType": "public permissioned Ethereum, IPFS", - "blockchainUsed": "Yes", - "company": "Blockchain Helix AG", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "JWT, JWT-VC", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "compact and JSON serialization, JSON, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "-", - "identifierHolder": "did:key, ENS, did:eth", - "identifierIssuer": "did:key, ENS, did:eth", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/helix-id.png", - "mdoc": "-", - "name": "helix id", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "partly open sourced", - "organisationalWallet": "-", - "peer2PeerProtocols": "OIDC, DIDComm, DID Exchange Protocol", - "portability": "-", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "DID Revocation", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+, ECDSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "-", - "blockchainUsed": "-", - "company": "IDEMIA Group", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/idema.png", - "mdoc": "-", - "name": "IDEMIA Mobile ID", - "observability": "-", - "offlineFriendly": "-", - "openSource": "-", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "-", - "blockchainUsed": "-", - "company": "-", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/idento-one.png", - "mdoc": "-", - "name": "idento.one", - "observability": "-", - "offlineFriendly": "-", - "openSource": "-", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Authorization, Credentials Schemas, Revocation registry", - "blockchainType": "HyperLedger Indy", - "blockchainUsed": "Yes", - "company": "-", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "Present Proof Protocol", - "credentialFormat": "AnonCred", - "cryptoAgility": "No", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "-", - "identifierHolder": "did:sov", - "identifierIssuer": "did:sov", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/identry.png", - "mdoc": "-", - "name": "Identry", - "observability": "No", - "offlineFriendly": "-", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "DIDComm", - "portability": "-", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "Yes" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "Blockchain network based on Ethereum", - "blockchainUsed": "Yes", - "company": "KayTrust", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/kaytrust-wallet.png", - "mdoc": "-", - "name": "KayTrust Wallet", - "observability": "-", - "offlineFriendly": "-", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Decentralized Public Key Infrastructure", - "blockchainType": "Hyperledger Indy", - "blockchainUsed": "Yes", - "company": "main incubator GmbH", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, soon: OpenID4VCI and OpenID4VP", - "credentialFormat": "AnonCred", - "cryptoAgility": "No", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "Soon", - "ebsi": "-", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "-", - "identifierHolder": "Link secret", - "identifierIssuer": "did:sovrin (did:indy)", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/lissi-wallet.png", - "mdoc": "-", - "name": "Lissi Wallet", - "observability": "No", - "offlineFriendly": "-", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "DIDComm", - "portability": "-", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "Yes" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Storing public keys", - "blockchainType": "ION - if ION DID menthod used", - "blockchainUsed": "Yes", - "company": "Mattr Limited", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI", - "credentialFormat": "LDP-VC", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "JSON-LD", - "hardwareSupport": "No", - "holderCapability": "-", - "identifierHolder": "did:key", - "identifierIssuer": "did:web, did:ion, did:key", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/mattr-wallet.png", - "mdoc": "-", - "name": "MATTR Wallet", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "OIDC, DIDComm", - "portability": "-", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "RevocationList2020", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+, EdDSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "-", - "blockchainUsed": "-", - "company": "Microsoft", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/microsoft-entra.png", - "mdoc": "-", - "name": "Microsoft Entra", - "observability": "-", - "offlineFriendly": "-", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Scale up for DID", - "blockchainType": "Metadium", - "blockchainUsed": "Yes", - "company": "Metadium Technology Inc", - "connectionTypes": "Direct communication", - "credExchangeProtocol": "N/A", - "credentialFormat": "JWT, JWT-VC", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "compact and JSON serialization, JSON, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "-", - "identifierHolder": "Raw public key", - "identifierIssuer": "Raw public key", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/mykeepin.png", - "mdoc": "-", - "name": "MYKEEPiN", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "N/A", - "portability": "-", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Non-revocation token", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "ECDSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "N/A", - "blockchainType": "N/A", - "blockchainUsed": "No", - "company": "Animo Solutions", - "connectionTypes": "Direct communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "JWT-VC", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "compact and JSON serialization, JSON", - "hardwareSupport": "No", - "holderCapability": "-", - "identifierHolder": "did:jwk, did:key", - "identifierIssuer": "did:jwk, did:key, did:web", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/paradym-wallet.png", - "mdoc": "-", - "name": "Paradym Wallet", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "Yes", - "organisationalWallet": "-", - "peer2PeerProtocols": "OID4VC", - "portability": "-", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "No", - "scope": "-", - "selectiveDisclosure": "No", - "signatureAlgorithm": "EdDSA, ES256", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "N/A", - "blockchainType": "N/A", - "blockchainUsed": "No", - "company": "Sphereon", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "JWT, JWT-VC, LDP-VC", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "compact and JSON serialization, JSON, JSON-LD, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "-", - "identifierHolder": "X.509 certificate, did:jwk, did:key, did:ion, did:cheqd, did:web, did:lto, did:factom, did:ethr, did:pkh", - "identifierIssuer": "X.509 certificate, did:jwk, did:key, did:ion, did:cheqd, did:web, did:lto, did:factom, did:ethr, did:pkh", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/sphereon-wallet.png", - "mdoc": "-", - "name": "Sphereon Wallet", - "observability": "Yes", - "offlineFriendly": "No", - "openSource": "Yes", - "organisationalWallet": "-", - "peer2PeerProtocols": "OIDC, SIOP, DIDComm", - "portability": "-", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Status List 2021, Validity credential", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+, ECDSA, EdDSA, RSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Anchor DID & DID Documents, Trust Registry, Revocation Registry", - "blockchainType": "Ethereum", - "blockchainUsed": "Yes", - "company": "Spherity GmbH", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "AnonCred, JSON-LD", - "cryptoAgility": "No", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "No", - "holderCapability": "-", - "identifierHolder": "did:ethr", - "identifierIssuer": "did:ethr", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/spherity-wallet.png", - "mdoc": "-", - "name": "Spherity Wallet", - "observability": "No", - "offlineFriendly": "-", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "OIDC, SIOP, DIDComm, DID Exchange Protocol", - "portability": "-", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Indy Revocation, Revocation 5539, Status List 2021", - "scope": "-", - "selectiveDisclosure": "No", - "signatureAlgorithm": "CL, BBS+, EdDSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "identity, crypto", - "blockchainType": "Ethereum, ION, EBSI, PolygonID", - "blockchainUsed": "Yes", - "company": "Talao", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "JWT-VC, JSON-LD", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "JSON, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "-", - "identifierHolder": "did:ebsi, did:ion, did:web, did:tz, did:key", - "identifierIssuer": "did:ebsi, did:ion, did:web, did:tz, did:key", - "issuerCapability": "-", - "keyHistoryHolder": "Yes", - "keyHistoryIssuer": "No", - "keyRotationHolder": "Yes", - "keyRotationIssuer": "No", - "logo": "static/talao.png", - "mdoc": "-", - "name": "Talao", - "observability": "Yes", - "offlineFriendly": "-", - "openSource": "Yes", - "organisationalWallet": "-", - "peer2PeerProtocols": "OIDC, SIOP, DID Exchange Protocol", - "portability": "-", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Status List 2021", - "scope": "-", - "selectiveDisclosure": "No", - "signatureAlgorithm": "ECDSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Anchor DID & DID Documents", - "blockchainType": "Depending on DID method", - "blockchainUsed": "Yes", - "company": "Gimly", - "connectionTypes": "Direct communication, Connection-based communication, Direct NFC-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "JWT, JWT-VC, LDP-VC", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "did:ethr, did:ion, did:web, did:jwk, did:key", - "identifierIssuer": "did:web, did:ion, did:key, did:jwk", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/tap-id.png", - "mdoc": "-", - "name": "Tap ID", - "observability": "-", - "offlineFriendly": "Yes", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "OIDC, SIOP, DIDComm", - "portability": "-", - "predicates": "Yes", - "quantumSafe": "-", - "revocationAlgorithm": "Status List 2021", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+, ECDSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Trust Anchor, Trust registry, root of trust", - "blockchainType": "EBSI, Alastria, Ethereum", - "blockchainUsed": "Yes", - "company": "Validated ID", - "connectionTypes": "both", - "credExchangeProtocol": "OIDC4CI, OIDC4VP", - "credentialFormat": "JWT-VC, JSON-LD, JWT", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "JSON, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "-", - "identifierHolder": "did:key, did:jwk, did:ala, did:ebsi, did:eth", - "identifierIssuer": "did:key, did:jwk, did:ala, did:ebsi, did:eth", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/vidwallet.png", - "mdoc": "-", - "name": "VIDwallet", - "observability": "Yes", - "offlineFriendly": "-", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "OIDC, SIOP", - "portability": "-", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Status List 2021", - "scope": "-", - "selectiveDisclosure": "No", - "signatureAlgorithm": "ECDSA, EdDSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "EBSI - The aim of EBSI is to develop a secure and scalable blockchain infrastructure that can provide cross-border digital public services to citizens and businesses in Europe.\n\nIOTA - it's purpose is to provide a scalable, feeless, and decentralized transactional settlement and data transfer platform for the Internet of Things (IoT) ecosystem.\n\nVelocity - The purpose of the Velocity Network is to create a decentralized, global credentialing ecosystem that enables individuals to own, control, and securely share their verified career credentials while giving organizations access to a trusted talent marketplace.\n\nChqed - The purpose of the cheqd ecosystem is to provide a decentralized, privacy-preserving digital identity solution that allows individuals to have control over their personal data while enabling secure and verifiable credential exchange between individuals and organizations.", - "blockchainType": "ebsi, iota, cheqd, velocity", - "blockchainUsed": "Yes", - "company": "walt.id", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "JWT, LDP-VC", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "compact and JSON serialization", - "hardwareSupport": "Yes", - "holderCapability": "-", - "identifierHolder": "did:key, did:web, did:ebsi, did:iota, did:jwk, did:cheqd, did:velocity", - "identifierIssuer": "did:key, did:web, did:ebsi, did:iota, did:jwk, did:cheqd, did:velocity", - "issuerCapability": "-", - "keyHistoryHolder": "Yes", - "keyHistoryIssuer": "Yes", - "keyRotationHolder": "Yes", - "keyRotationIssuer": "Yes", - "logo": "static/walt-id.png", - "mdoc": "-", - "name": "walt.id", - "observability": "-", - "offlineFriendly": "-", - "openSource": "Yes", - "organisationalWallet": "-", - "peer2PeerProtocols": "OIDC, SIOP", - "portability": "-", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Revocation not supported", - "scope": "-", - "selectiveDisclosure": "No", - "signatureAlgorithm": "ECDSA, EdDSA, RSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "N/A", - "blockchainType": "N/A", - "blockchainUsed": "No", - "company": "Privacy by Design Foundation", - "connectionTypes": "Direct communication, Interpreted as direct wallet to IDP and wallet to RP connections. No communication through centralized components in our infrastructure. IRMA is fully decentralized. ", - "credExchangeProtocol": "IRMA protocol", - "credentialFormat": "Idemix ABC", - "cryptoAgility": "No", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "Yes", - "ebsi": "-", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "-", - "identifierHolder": "Link secret", - "identifierIssuer": "Issuer identifier inside issuer scheme including issuer public key", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/yivi.png", - "mdoc": "-", - "name": "Yivi", - "observability": "No", - "offlineFriendly": "No", - "openSource": "Yes", - "organisationalWallet": "-", - "peer2PeerProtocols": "IRMA protocol ", - "portability": "-", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Own implementation on top of Idemix", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL, Schnorr", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "Yes" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Public DIDs and associated DID documents with verification keys and endpoints, schemas and credential definitions, revocation registries, agent authorisation policies", - "blockchainType": "Sovrin", - "blockchainUsed": "Yes", - "company": "ZADA Solutions", - "connectionTypes": "-", - "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "AnonCred, RSA", - "cryptoAgility": "No", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "JSON", - "hardwareSupport": "Yes", - "holderCapability": "-", - "identifierHolder": "Raw public key, did:sov", - "identifierIssuer": "Raw public key, did:sov", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/zada.png", - "mdoc": "-", - "name": "ZADA", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "Yes", - "organisationalWallet": "-", - "peer2PeerProtocols": "DIDComm", - "portability": "-", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL, RSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "Yes" - } -] \ No newline at end of file + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "AceBlock blockchain framework", + "blockchainUsed": "Yes", + "company": "AceBlock", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/aceid-wallet.png", + "mdoc": "", + "name": "AceID Wallet", + "observability": "", + "offlineFriendly": "", + "openSource": "", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "", + "blockchainUsed": "", + "company": "Apple", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/apple-wallet.png", + "mdoc": "", + "name": "Apple Wallet", + "observability": "", + "offlineFriendly": "", + "openSource": "", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Anchoring public DIDs for issuers and/or verifiers (ie: enabling trust registry)", + "blockchainType": "Cardano", + "blockchainUsed": "Yes", + "company": "IOHK", + "connectionTypes": "Connection-based communication", + "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "JWT-VC, soon:AnonCreds", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "No", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "JSON, JSON-LD", + "hardwareSupport": "Yes", + "holderCapability": "", + "identifierHolder": "did:prism", + "identifierIssuer": "did:prism", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/atala-prism.png", + "mdoc": "", + "name": "Atala PRISM", + "observability": "", + "offlineFriendly": "", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "DIDComm", + "portability": "", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Revocation not supported, soon: Revocation List 2021", + "scope": "", + "selectiveDisclosure": "No", + "signatureAlgorithm": "ECDSA, soon: CL", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "", + "blockchainUsed": "", + "company": "Microsoft", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/authenticator.png", + "mdoc": "", + "name": "Authenticator", + "observability": "", + "offlineFriendly": "", + "openSource": "", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "", + "blockchainUsed": "", + "company": "Government of BC", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/bc-wallet.png", + "mdoc": "", + "name": "BC Wallet", + "observability": "", + "offlineFriendly": "", + "openSource": "", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "Bitcoin and Ethereum, with Merkle proof linking credential to blockchain transaction", + "blockchainUsed": "Yes", + "company": "Hyland Credentials (formerly: Learning Machine)", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/blockcerts-wallet.png", + "mdoc": "", + "name": "Blockcerts Wallet", + "observability": "", + "offlineFriendly": "", + "openSource": "Yes", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "Ethereum or Blockpass", + "blockchainUsed": "Yes", + "company": "Blockpass IDN", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/blockpass.png", + "mdoc": "", + "name": "Blockpass", + "observability": "", + "offlineFriendly": "", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Schema, CredentialDefinitions, DID, Revocation", + "blockchainType": "Hyperledger Indy", + "blockchainUsed": "Yes", + "company": "The Ego Company", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "AnonCred, JSON-LD", + "cryptoAgility": "No", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "holderCapability": "", + "identifierHolder": "did:", + "identifierIssuer": "did:sov", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/certishare-wallet.png", + "mdoc": "", + "name": "CertiShare Wallet", + "observability": "No", + "offlineFriendly": "", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "DIDComm, DID Exchange Protocol, openID", + "portability": "", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "Yes", + "api": "", + "blockchainPurpose": "For publishing schema IDs, credential def IDs and public DID", + "blockchainType": "Hyperledger Indy, Ethereum, EBSI blockchain", + "blockchainUsed": "Yes", + "company": "iGrant.io", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange, DEXA", + "credentialFormat": "AnonCreds, JWT-VC, ICAO DTC, x.509", + "cryptoAgility": "No", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "Yes", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "holderCapability": "", + "identifierHolder": "did:ebsi, did:key, link secrets, X.509", + "identifierIssuer": "did:ebsi, did:key, did:sov, X.509", + "issuerCapability": "", + "keyHistoryHolder": "Yes", + "keyHistoryIssuer": "Yes", + "keyRotationHolder": "Yes", + "keyRotationIssuer": "Yes", + "logo": "logos/data-wallet.png", + "mdoc": "Planned", + "name": "Data Wallet", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": "No", + "organisationalWallet": "Yes, but branded as Enterprise Wallet Platform by iGrant.io", + "peer2PeerProtocols": "OIDC4VC, OIDC4VP, SIOPv2, DIDComm, DID Exchange Protocol, Connection protocols in AIP 1.0", + "portability": "", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation, EBSI revocation, W3C Status List 2021, SLTD database (travel and identity documents), CRL - certificate revocation list", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL, ES256, ECDSA", + "support": "support@igrant.io", + "urlAppStore": "https://apple.co/2Mz9nJp", + "urlGooglePlayStore": "https://play.google.com/store/apps/details?id=io.igrant.mobileagent", + "urlWebApp": "https://business.igrant.io/", + "urlWebsite": "https://igrant.io/datawallet.html", + "verifierCapability": "", + "verifierUnlinkability": "Yes" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", + "company": "Rabobank Nederland", + "connectionTypes": "Direct communication", + "credExchangeProtocol": "Datakeeper protocol (Verifiable Presentation)", + "credentialFormat": "LDP-VC", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "Yes", + "ebsi": "", + "encodingScheme": "JSON-LD", + "hardwareSupport": "Yes", + "holderCapability": "", + "identifierHolder": "did:eth", + "identifierIssuer": "did:eth", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/datakeeper.png", + "mdoc": "", + "name": "Datakeeper", + "observability": "No", + "offlineFriendly": "No", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "Datakeeper protocol", + "portability": "", + "predicates": "Depending on ...", + "quantumSafe": "No", + "revocationAlgorithm": "Validity credential, Revocation not supported", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "ECDSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "", + "blockchainUsed": "", + "company": "Thales", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/digital-id-wallet.png", + "mdoc": "", + "name": "Digital ID Wallet", + "observability": "", + "offlineFriendly": "", + "openSource": "", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", + "company": "esatus AG", + "connectionTypes": "Connection-based communication", + "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "AnonCred", + "cryptoAgility": "No", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "Yes", + "ebsi": "", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "holderCapability": "", + "identifierHolder": "Link secret", + "identifierIssuer": "Link secret", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/esatus-wallet.png", + "mdoc": "", + "name": "esatus Wallet", + "observability": "No", + "offlineFriendly": "No", + "openSource": "A new version of the wallet - called SOWL wallet - will be available soon, together with an open source wallet SDK on which SOWL Wallet is based.", + "organisationalWallet": "", + "peer2PeerProtocols": "DIDComm", + "portability": "", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL", + "support": "", + "urlAppStore": "https://apps.apple.com/us/app/esatus-wallet/id1496769057?itsct=apps_box&itscg=30200", + "urlGooglePlayStore": "https://play.google.com/store/apps/details?id=com.esatus.wallet&hl=de_DE&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1", + "urlWebApp": "", + "urlWebsite": "https://esatus.com/index.html%3Fp=7663&lang=en.html", + "verifierCapability": "", + "verifierUnlinkability": "Yes" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "To anchor DIDs (legal entities), and to anchor the trust framework", + "blockchainType": "We are agnostic to the infra, so the platform right now supports Ethereum, Fabric and EBSI", + "blockchainUsed": "Yes", + "company": "Gataca Inc.", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "LDP-VC, JTW-VC", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "JSON-LD", + "hardwareSupport": "No", + "holderCapability": "", + "identifierHolder": "did:key", + "identifierIssuer": "did:gatc", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/gataca.png", + "mdoc": "", + "name": "Gataca", + "observability": "Yes", + "offlineFriendly": "Yes, implemntation according to ARF", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "OIDC, SIOP", + "portability": "", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Status List 2017, Status List 2021", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "EdDSA, RSA, secp256k, P-256, CadEs", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Anchor DID & DID Documents", + "blockchainType": "Depending on DID method", + "blockchainUsed": "Yes", + "company": "Gimly", + "connectionTypes": "Direct communication, Connection-based communication, Direct NFC-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "JWT, JWT-VC, LDP-VC", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "Yes, NFC HWW", + "holderCapability": "", + "identifierHolder": "did:ethr, did:ion, did:web, did:jwk, did:key", + "identifierIssuer": "did:web, did:ion, did:key, did:jwk", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/Gimly-wallet.png", + "mdoc": "", + "name": "Tap ID", + "observability": "", + "offlineFriendly": "Yes", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "OIDC, SIOP, DIDComm", + "portability": "", + "predicates": "No", + "quantumSafe": "", + "revocationAlgorithm": "Status List 2021", + "scope": "Travel, Hospitality, Access Control", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+, ECDSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "https://www.gimly.io", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "No personal data", + "blockchainType": "public permissioned Ethereum, IPFS", + "blockchainUsed": "Yes", + "company": "Blockchain Helix AG", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "JWT, JWT-VC", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "compact and JSON serialization, JSON, JSON-LD", + "hardwareSupport": "Yes", + "holderCapability": "", + "identifierHolder": "did:key, ENS, did:eth", + "identifierIssuer": "did:key, ENS, did:eth", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/helix-id.png", + "mdoc": "", + "name": "helix id", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": "partly open sourced", + "organisationalWallet": "", + "peer2PeerProtocols": "OIDC, DIDComm, DID Exchange Protocol", + "portability": "", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "DID Revocation", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+, ECDSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "", + "blockchainUsed": "", + "company": "IDEMIA Group", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/idema.png", + "mdoc": "", + "name": "IDEMIA Mobile ID", + "observability": "", + "offlineFriendly": "", + "openSource": "", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "", + "blockchainUsed": "", + "company": "", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/idento-one.png", + "mdoc": "", + "name": "idento.one", + "observability": "", + "offlineFriendly": "", + "openSource": "", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Authorization, Credentials Schemas, Revocation registry", + "blockchainType": "HyperLedger Indy", + "blockchainUsed": "Yes", + "company": "", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "Present Proof Protocol", + "credentialFormat": "AnonCred", + "cryptoAgility": "No", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "holderCapability": "", + "identifierHolder": "did:sov", + "identifierIssuer": "did:sov", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/identry.png", + "mdoc": "", + "name": "Identry", + "observability": "No", + "offlineFriendly": "", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "DIDComm", + "portability": "", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "Yes" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "Blockchain network based on Ethereum", + "blockchainUsed": "Yes", + "company": "KayTrust", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/kaytrust-wallet.png", + "mdoc": "", + "name": "KayTrust Wallet", + "observability": "", + "offlineFriendly": "", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Decentralized Public Key Infrastructure", + "blockchainType": "Hyperledger Indy", + "blockchainUsed": "Yes", + "company": "main incubator GmbH", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, soon: OpenID4VCI and OpenID4VP", + "credentialFormat": "AnonCred", + "cryptoAgility": "No", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "Soon", + "ebsi": "", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "holderCapability": "", + "identifierHolder": "Link secret", + "identifierIssuer": "did:sovrin (did:indy)", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/lissi-wallet.png", + "mdoc": "", + "name": "Lissi Wallet", + "observability": "No", + "offlineFriendly": "", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "DIDComm", + "portability": "", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "Yes" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Storing public keys", + "blockchainType": "ION - if ION DID menthod used", + "blockchainUsed": "Yes", + "company": "Mattr Limited", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI", + "credentialFormat": "LDP-VC", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "JSON-LD", + "hardwareSupport": "No", + "holderCapability": "", + "identifierHolder": "did:key", + "identifierIssuer": "did:web, did:ion, did:key", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/mattr-wallet.png", + "mdoc": "", + "name": "MATTR Wallet", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "OIDC, DIDComm", + "portability": "", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "RevocationList2020", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+, EdDSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "", + "blockchainUsed": "", + "company": "Microsoft", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/microsoft-entra.png", + "mdoc": "", + "name": "Microsoft Entra", + "observability": "", + "offlineFriendly": "", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Scale up for DID", + "blockchainType": "Metadium", + "blockchainUsed": "Yes", + "company": "Metadium Technology Inc", + "connectionTypes": "Direct communication", + "credExchangeProtocol": "N/A", + "credentialFormat": "JWT, JWT-VC", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "compact and JSON serialization, JSON, JSON-LD", + "hardwareSupport": "Yes", + "holderCapability": "", + "identifierHolder": "Raw public key", + "identifierIssuer": "Raw public key", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/mykeepin.png", + "mdoc": "", + "name": "MYKEEPiN", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "N/A", + "portability": "", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Non-revocation token", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "ECDSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", + "company": "Animo Solutions", + "connectionTypes": "Direct communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "JWT-VC", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "compact and JSON serialization, JSON", + "hardwareSupport": "No", + "holderCapability": "", + "identifierHolder": "did:jwk, did:key", + "identifierIssuer": "did:jwk, did:key, did:web", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/paradym-wallet.png", + "mdoc": "", + "name": "Paradym Wallet", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": "Yes", + "organisationalWallet": "", + "peer2PeerProtocols": "OID4VC", + "portability": "", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "No", + "scope": "", + "selectiveDisclosure": "No", + "signatureAlgorithm": "EdDSA, ES256", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", + "company": "Sphereon", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "JWT, JWT-VC, LDP-VC", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "compact and JSON serialization, JSON, JSON-LD, JSON-LD", + "hardwareSupport": "Yes", + "holderCapability": "", + "identifierHolder": "X.509 certificate, did:jwk, did:key, did:ion, did:cheqd, did:web, did:lto, did:factom, did:ethr, did:pkh", + "identifierIssuer": "X.509 certificate, did:jwk, did:key, did:ion, did:cheqd, did:web, did:lto, did:factom, did:ethr, did:pkh", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/sphereon-wallet.png", + "mdoc": "", + "name": "Sphereon Wallet", + "observability": "Yes", + "offlineFriendly": "No", + "openSource": "Yes", + "organisationalWallet": "", + "peer2PeerProtocols": "OIDC, SIOP, DIDComm", + "portability": "", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Status List 2021, Validity credential", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+, ECDSA, EdDSA, RSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Anchor DID & DID Documents, Trust Registry, Revocation Registry", + "blockchainType": "Ethereum", + "blockchainUsed": "Yes", + "company": "Spherity GmbH", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "AnonCred, JSON-LD", + "cryptoAgility": "No", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "No", + "holderCapability": "", + "identifierHolder": "did:ethr", + "identifierIssuer": "did:ethr", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/spherity-wallet.png", + "mdoc": "", + "name": "Spherity Wallet", + "observability": "No", + "offlineFriendly": "", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "OIDC, SIOP, DIDComm, DID Exchange Protocol", + "portability": "", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Indy Revocation, Revocation 5539, Status List 2021", + "scope": "", + "selectiveDisclosure": "No", + "signatureAlgorithm": "CL, BBS+, EdDSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "identity, crypto", + "blockchainType": "Ethereum, ION, EBSI, PolygonID", + "blockchainUsed": "Yes", + "company": "Talao", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "JWT-VC, JSON-LD", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "JSON, JSON-LD", + "hardwareSupport": "Yes", + "holderCapability": "", + "identifierHolder": "did:ebsi, did:ion, did:web, did:tz, did:key", + "identifierIssuer": "did:ebsi, did:ion, did:web, did:tz, did:key", + "issuerCapability": "", + "keyHistoryHolder": "Yes", + "keyHistoryIssuer": "No", + "keyRotationHolder": "Yes", + "keyRotationIssuer": "No", + "logo": "logos/talao.png", + "mdoc": "", + "name": "Talao", + "observability": "Yes", + "offlineFriendly": "", + "openSource": "Yes", + "organisationalWallet": "", + "peer2PeerProtocols": "OIDC, SIOP, DID Exchange Protocol", + "portability": "", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Status List 2021", + "scope": "", + "selectiveDisclosure": "No", + "signatureAlgorithm": "ECDSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Anchor DID & DID Documents", + "blockchainType": "Depending on DID method", + "blockchainUsed": "Yes", + "company": "Gimly", + "connectionTypes": "Direct communication, Connection-based communication, Direct NFC-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "JWT, JWT-VC, LDP-VC", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "did:ethr, did:ion, did:web, did:jwk, did:key", + "identifierIssuer": "did:web, did:ion, did:key, did:jwk", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/tap-id.png", + "mdoc": "", + "name": "Tap ID", + "observability": "", + "offlineFriendly": "Yes", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "OIDC, SIOP, DIDComm", + "portability": "", + "predicates": "Yes", + "quantumSafe": "", + "revocationAlgorithm": "Status List 2021", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+, ECDSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Trust Anchor, Trust registry, root of trust", + "blockchainType": "EBSI, Alastria, Ethereum", + "blockchainUsed": "Yes", + "company": "Validated ID", + "connectionTypes": "both", + "credExchangeProtocol": "OIDC4CI, OIDC4VP", + "credentialFormat": "JWT-VC, JSON-LD, JWT", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "JSON, JSON-LD", + "hardwareSupport": "Yes", + "holderCapability": "", + "identifierHolder": "did:key, did:jwk, did:ala, did:ebsi, did:eth", + "identifierIssuer": "did:key, did:jwk, did:ala, did:ebsi, did:eth", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/vidwallet.png", + "mdoc": "", + "name": "VIDwallet", + "observability": "Yes", + "offlineFriendly": "", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "OIDC, SIOP", + "portability": "", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Status List 2021", + "scope": "", + "selectiveDisclosure": "No", + "signatureAlgorithm": "ECDSA, EdDSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "EBSI - The aim of EBSI is to develop a secure and scalable blockchain infrastructure that can provide cross-border digital public services to citizens and businesses in Europe.\n\nIOTA - it's purpose is to provide a scalable, feeless, and decentralized transactional settlement and data transfer platform for the Internet of Things (IoT) ecosystem.\n\nVelocity - The purpose of the Velocity Network is to create a decentralized, global credentialing ecosystem that enables individuals to own, control, and securely share their verified career credentials while giving organizations access to a trusted talent marketplace.\n\nChqed - The purpose of the cheqd ecosystem is to provide a decentralized, privacy-preserving digital identity solution that allows individuals to have control over their personal data while enabling secure and verifiable credential exchange between individuals and organizations.", + "blockchainType": "ebsi, iota, cheqd, velocity", + "blockchainUsed": "Yes", + "company": "walt.id", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "JWT, LDP-VC", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "compact and JSON serialization", + "hardwareSupport": "Yes", + "holderCapability": "", + "identifierHolder": "did:key, did:web, did:ebsi, did:iota, did:jwk, did:cheqd, did:velocity", + "identifierIssuer": "did:key, did:web, did:ebsi, did:iota, did:jwk, did:cheqd, did:velocity", + "issuerCapability": "", + "keyHistoryHolder": "Yes", + "keyHistoryIssuer": "Yes", + "keyRotationHolder": "Yes", + "keyRotationIssuer": "Yes", + "logo": "logos/walt-id.png", + "mdoc": "", + "name": "walt.id", + "observability": "", + "offlineFriendly": "", + "openSource": "Yes", + "organisationalWallet": "", + "peer2PeerProtocols": "OIDC, SIOP", + "portability": "", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Revocation not supported", + "scope": "", + "selectiveDisclosure": "No", + "signatureAlgorithm": "ECDSA, EdDSA, RSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", + "company": "Privacy by Design Foundation", + "connectionTypes": "Direct communication, Interpreted as direct wallet to IDP and wallet to RP connections. No communication through centralized components in our infrastructure. IRMA is fully decentralized. ", + "credExchangeProtocol": "IRMA protocol", + "credentialFormat": "Idemix ABC", + "cryptoAgility": "No", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "Yes", + "ebsi": "", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "holderCapability": "", + "identifierHolder": "Link secret", + "identifierIssuer": "Issuer identifier inside issuer scheme including issuer public key", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/yivi.png", + "mdoc": "", + "name": "Yivi", + "observability": "No", + "offlineFriendly": "No", + "openSource": "Yes", + "organisationalWallet": "", + "peer2PeerProtocols": "IRMA protocol ", + "portability": "", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Own implementation on top of Idemix", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL, Schnorr", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "Yes" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Public DIDs and associated DID documents with verification keys and endpoints, schemas and credential definitions, revocation registries, agent authorisation policies", + "blockchainType": "Sovrin", + "blockchainUsed": "Yes", + "company": "ZADA Solutions", + "connectionTypes": "", + "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "AnonCred, RSA", + "cryptoAgility": "No", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "JSON", + "hardwareSupport": "Yes", + "holderCapability": "", + "identifierHolder": "Raw public key, did:sov", + "identifierIssuer": "Raw public key, did:sov", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/zada.png", + "mdoc": "", + "name": "ZADA", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": "Yes", + "organisationalWallet": "", + "peer2PeerProtocols": "DIDComm", + "portability": "", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL, RSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "Yes" + } +] diff --git a/index.html b/index.html deleted file mode 100644 index d625416..0000000 --- a/index.html +++ /dev/null @@ -1,471 +0,0 @@ - - - - - - - - - - - -Wallet Characteristics Overview - - - -

Wallet Overview

-

- GitHub - - -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GeneralTechnology StackUser-FriendlinessPrivacySecurityInteroperability
LogoWallet - - - The name of the wallet and the link to the website. - - Company - - - The developer of the wallet. - - Holder Capability - - - Does the wallet or agent have holder capabilities? - - Issuer Capability - - - Does the wallet or agent have issuer capabilities? - - Verifier Capability - - - Does the wallet or agent have verifier capabilities? - - Scope - - - General-purpose or domain-specific, and for which domain. - - Deployment - - - Running on edge-devices or in the cloud. - - Organisational Wallet - - - Organisations are the target users. - - Open Source - - - Whether the wallet is open source and if so, the link to their code base. - - Links to app - - - The links to the downloads in Google Play, the App Store or the link to the web app / cloud service agent. - - Support - - - The emailaddress for support. - - API - - - The link to the provided API. - - Credential Format - - - The credential profile(s) supported by the wallet. - - Encoding Scheme - - - The encoding scheme(s) supported by the wallet. - - Signature Algorithm - - - The signature algorithm(s) supported by the wallet. - - Holder Identifier - - - The type of identifier used to identify the holder. - - Issuer Identifier - - - The type of identifier used to identify the issuer. - - Revocation Mechanism - - - The revocation mechanism(s) supported by the wallet. - - Peer-to-Peer Protocol - - - The peer-to-peer protocol(s) supported by the wallet. - - Credential Exchange Protocol - - - The credential exchange protocol(s) supported by the wallet. - - Blockchain Used - - - Does the wallet work with a blockchain? - - Blockchain Type - - - The type(s) of blockchain supported by the wallet? N/A for wallets that do not use blockchain. - - Blockchain Purpose - - - The purpose(s) for which the wallet uses blockchain. N/A for wallets that do not use blockchain. - - Connection Type - - - What types of connections can the wallet handle? Does the wallet support direct communication via QR-codes, bluetooth, etc. or connection-based, where a connection between holder and issuer/verifier can be reused? - - Deep-Linking - - - Does the wallet support deep-linking? Can the wallet redirect the holder to the wallet app instead of to a website (with a QR-code), such that the user can have a mobile-only workflow? Or for web-based wallets, does the wallet have the ability to link directly to a specific task like a credential offer? - - Offline Friendliness - - - Does the wallet support the exchange of credentials in an offline fashion, i.e. via bluetooth, NFC, et cetera? - - Key History Holder - - - Is it possible to retain and obtain the history of keys related to a certain identifier of a holder? - - Key History Issuer - - - Is it possible to retain and obtain the history of keys related to a certain identifier of an issuer? - - Portability - - - Can credentials be exported from the wallet, such that they can be imported by another wallet? - - Selective Disclosure - - - Does the wallet allow the user to present only selected claims from their credentials? - - Predicates - - - Can the wallet generate predicates, e.g. older than 18? This can be achieved through the support of zero-knowledge proofs. - - Verifier Unlinkability - - - Is the verifier unable to link multiple presentations by the same holder together? Note: this is only relevant if the presentations do not contain identifiable information. - - Observability - - - Can the verifier observe the revocation status of the credential beyond the presentation? - - Crypto Agility - - - Is the credential format able to work with a variety of signature algorithms? - - Post-Quantum Secure - - - Does the wallet support post-quantum secure signature algorithms? Does the wallet use post-quantum secure encryption in the exchange and storage of credentials? - - Key Rotation Holder - - - Can the key referred to in a credential can be replaced by a new key? - - Key Rotation Issuer - - - Can the key referred to in a credential can be replaced by a new key? - - Connected to TNO EASSI - - - Is the wallet connected to theTNO EASSI wallet gateway? - - EBSI Compliant - - - Is the wallet compliant withEBSIspecifications? - - AIP Compliant - - - Is the wallet compliant with theAries Interop Profile? - - DDIP Compliant - - - Is the wallet compliant with theDutch Decentralized Identity Profile? - - ISO 18013 Compliant - - - Is the wallet compliant withISO 18013-5 (mDL)? - -
-
- - - - - - - diff --git a/schema.json b/schema.json new file mode 100644 index 0000000..11e50a6 --- /dev/null +++ b/schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$ref": "#/definitions/Wallet", + "definitions": { + "Wallet": { + "type": "object", + "additionalProperties": true, + "properties": { + "$schema": { + "type": "string" + }, + "name": { + "type": "string", + "description": "The name of the wallet" + }, + "company": { + "type": "string", + "description": "The name of the company that created the wallet" + }, + "openSource": { + "type": "boolean", + "description": "Whether the wallet is open source or not" + } + }, + "required": ["$schema", "name"], + "title": "Wallet" + } + } +} diff --git a/script.js b/script.js deleted file mode 100644 index ba63c9d..0000000 --- a/script.js +++ /dev/null @@ -1,67 +0,0 @@ -fetch("flattened_wallets.json") -.then(function(response){ - return response.json(); -}) -.then(function(wallets){ - let placeholder = document.querySelector("#data-output"); - let out = ""; - for(let wallet of wallets){ - out += ` - - - ${wallet.urlWebsite == "-" ? wallet.name: ''+wallet.name+''} - ${wallet.company} - ${wallet.holderCapability} - ${wallet.issuerCapability} - ${wallet.verifierCapability} - ${wallet.scope} - ${wallet.deployment} - ${wallet.organisationalWallet} - ${wallet.openSource == 'Yes' ? ''+wallet.openSource+'' : wallet.openSource} - ${wallet.urlGooglePlayStore == '-' ? '-': ''} - ${wallet.urlAppStore == '-' ? '-': ''} - ${wallet.urlWebApp == '-' ? '-': ''} - ${wallet.support == '-' ? '-' : 'e-mail'} - ${wallet.api} - - ${wallet.credentialFormat} - ${wallet.encodingScheme} - ${wallet.signatureAlgorithm} - ${wallet.identifierHolder} - ${wallet.identifierIssuer} - ${wallet.revocationAlgorithm} - ${wallet.peer2PeerProtocols} - ${wallet.credExchangeProtocol} - ${wallet.blockchainUsed} - ${wallet.blockchainType} - ${wallet.blockchainPurpose} - - ${wallet.connectionTypes} - ${wallet.deepLinking} - ${wallet.offlineFriendly} - ${wallet.keyHistoryHolder} - ${wallet.keyHistoryIssuer} - ${wallet.portability} - - ${wallet.selectiveDisclosure} - ${wallet.predicates} - ${wallet.verifierUnlinkability} - ${wallet.observability} - - ${wallet.cryptoAgility} - ${wallet.quantumSafe} - ${wallet.keyRotationHolder} - ${wallet.keyRotationIssuer} - - ${wallet.eassi} - ${wallet.ebsi} - ${wallet.aip} - ${wallet.ddip} - ${wallet.mdoc} - - - `; - } - - placeholder.innerHTML = out; -}); diff --git a/styles.css b/styles.css deleted file mode 100644 index 0b108bf..0000000 --- a/styles.css +++ /dev/null @@ -1,203 +0,0 @@ -*{ - margin: 5px; - padding: 0; - box-sizing: border-box; -} - -body{ - font-family: sans-serif; - /* min-height: 100vh; */ - height: calc(100vh - 30px); - color: #555555; -} - -h1{ - text-align:center; - color: #555555; -} -table{ - width: 1100px; - /* width: auto; */ - margin: 30px auto; - table-layout: auto; -} - -table th{ - padding: 10px 15px; - background-color: #a4cdea; - border: thin solid #d4d4d4; - color: #373535; - margin: 0; -} - -table td{ - padding: 10px; - border: thin solid #d4d4d4; - width: 100%; - text-align: center; - /* background-color: #fff; */ -} - -tr:nth-child(even) td { - background-color: rgb(224, 232, 232); -} - -tr:nth-child(odd) td { - background-color: white; -} - -table { - margin-top: 0; - overflow-x: clip; -} - -table img{ - width: 100%; - margin: 0; -} - -table tr#table-headers{ - position: relative; -} - -table tr#top-headers th::before, -table tr#table-headers th::before { - content:''; - position:absolute; - left: 0; - top: -1px; - width:100%; - border-top: 2px solid #ccc; -} - -table tr#table-headers th { - white-space: nowrap; - z-index: 2; -} - -table tr#table-headers th:nth-child(2), table tbody tr td:nth-child(2) { /* make the second table column sticky */ - position: sticky; - left: 0; - z-index: 1; -} - -table tr#table-headers th:nth-child(2) { /* keep column header in front of column content when scrolling */ - z-index: 3; -} - -table tr#table-headers th:nth-child(2)::after, table tbody tr td:nth-child(2)::after { /* fix for keeping column border visible in combination with position sticky */ - content:''; - position:absolute; - top: 0; - right: -1px; - height:100%; - border-right: 1px solid #ccc; -} - -.tableFixHead { - margin-top: 35px; - /* overflow-y: auto; /* make the table scrollable if height is more than 200 px */ - height: calc(100vh - 2em - 50px - 10px); /* s.t. scroll bar is visible */ - } -.tableFixHead thead { - position: sticky; /* make the table heads sticky */ - top: 0px; /* table head will be placed from the top of the table and sticks to it */ - z-index: 2; -} -table { - border-collapse: collapse; /* make the table borders collapse to each other */ - width: 100%; -} -th, -td { - padding: 8px 16px; - border: 1px solid #ccc; -} - -.td-wrap{ /* for text wrapping */ - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - max-width:300px; -} - -.td-wrap:hover{ - white-space: pre-wrap; -} - -tr.verbose th { - vertical-align: top; -} - -tr.verbose th::after { - content: attr(title); - display: block; - font-size: smaller; - font-style: italic; - font-weight: normal; - white-space: pre-wrap; -} - -.btn{ - background-color: transparent; - border: transparent; -} - -a.clicked { - background-color: #DDD; - border-style: inset; - padding: 0.6em 0.4em 0.4em 0.6em; -} - -.tooltip { - position: relative; - display: inline-block; -} - -.tooltip .tooltiptext { - visibility: hidden; - /* width: 400px; */ - background-color: white; - text-align: center; - border-radius: 6px; - padding: 5px 5px; - /* Position the tooltip */ - position: absolute; - z-index: 1; - text-overflow: ellipsis; - white-space: nowrap; - /* overflow: hidden; */ - /* max-width:300px; */ - font-family: sans-serif; - color:#555555; - font-weight: 500; -} - -.tooltip:hover .tooltiptext { - visibility: visible; -} - -.btn{ - margin: 0; -} - -.fa { - margin: 0; - color: black; -} -.fas { - margin: 2px; - color: black; -} -.fa-brands { - margin: 2px; - color: black; -} - -a:link { - color: #4b7694; - } - -a:visited { - color: #4b7694; -} \ No newline at end of file diff --git a/viewer/.editorconfig b/viewer/.editorconfig new file mode 100644 index 0000000..59d9a3a --- /dev/null +++ b/viewer/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/viewer/.gitignore b/viewer/.gitignore new file mode 100644 index 0000000..644e26f --- /dev/null +++ b/viewer/.gitignore @@ -0,0 +1,43 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# Compiled output +/dist +/tmp +/out-tsc +/bazel-out +src/assets/wallets.json + +# Node +/node_modules +npm-debug.log +yarn-error.log + +# IDEs and editors +.idea/ +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# Visual Studio Code +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# Miscellaneous +/.angular/cache +.sass-cache/ +/connect.lock +/coverage +/libpeerconnection.log +testem.log +/typings + +# System files +.DS_Store +Thumbs.db diff --git a/viewer/.vscode/extensions.json b/viewer/.vscode/extensions.json new file mode 100644 index 0000000..77b3745 --- /dev/null +++ b/viewer/.vscode/extensions.json @@ -0,0 +1,4 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846 + "recommendations": ["angular.ng-template"] +} diff --git a/viewer/.vscode/launch.json b/viewer/.vscode/launch.json new file mode 100644 index 0000000..925af83 --- /dev/null +++ b/viewer/.vscode/launch.json @@ -0,0 +1,20 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "ng serve", + "type": "chrome", + "request": "launch", + "preLaunchTask": "npm: start", + "url": "http://localhost:4200/" + }, + { + "name": "ng test", + "type": "chrome", + "request": "launch", + "preLaunchTask": "npm: test", + "url": "http://localhost:9876/debug.html" + } + ] +} diff --git a/viewer/.vscode/tasks.json b/viewer/.vscode/tasks.json new file mode 100644 index 0000000..a298b5b --- /dev/null +++ b/viewer/.vscode/tasks.json @@ -0,0 +1,42 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558 + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "start", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "pattern": "$tsc", + "background": { + "activeOnStart": true, + "beginsPattern": { + "regexp": "(.*?)" + }, + "endsPattern": { + "regexp": "bundle generation complete" + } + } + } + }, + { + "type": "npm", + "script": "test", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "pattern": "$tsc", + "background": { + "activeOnStart": true, + "beginsPattern": { + "regexp": "(.*?)" + }, + "endsPattern": { + "regexp": "bundle generation complete" + } + } + } + } + ] +} diff --git a/viewer/README.md b/viewer/README.md new file mode 100644 index 0000000..a275320 --- /dev/null +++ b/viewer/README.md @@ -0,0 +1,27 @@ +# Viewer + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.0.7. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/viewer/angular.json b/viewer/angular.json new file mode 100644 index 0000000..4d68b65 --- /dev/null +++ b/viewer/angular.json @@ -0,0 +1,109 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "viewer": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:application", + "options": { + "outputPath": "dist/viewer", + "index": "src/index.html", + "browser": "src/main.ts", + "polyfills": [ + "zone.js" + ], + "tsConfig": "tsconfig.app.json", + "inlineStyleLanguage": "scss", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "@angular/material/prebuilt-themes/indigo-pink.css", + "src/styles.scss" + ], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kb", + "maximumError": "1mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kb", + "maximumError": "4kb" + } + ], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true, + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.development.ts" + } + ] + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "buildTarget": "viewer:build:production" + }, + "development": { + "buildTarget": "viewer:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "buildTarget": "viewer:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "polyfills": [ + "zone.js", + "zone.js/testing" + ], + "tsConfig": "tsconfig.spec.json", + "inlineStyleLanguage": "scss", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "@angular/material/prebuilt-themes/indigo-pink.css", + "src/styles.scss" + ], + "scripts": [] + } + } + } + } + } +} diff --git a/viewer/package-lock.json b/viewer/package-lock.json new file mode 100644 index 0000000..4cb9adc --- /dev/null +++ b/viewer/package-lock.json @@ -0,0 +1,12839 @@ +{ + "name": "viewer", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "viewer", + "version": "0.0.0", + "dependencies": { + "@angular/animations": "^17.0.0", + "@angular/cdk": "^17.1.2", + "@angular/common": "^17.0.0", + "@angular/compiler": "^17.0.0", + "@angular/core": "^17.0.0", + "@angular/forms": "^17.0.0", + "@angular/material": "^17.1.2", + "@angular/platform-browser": "^17.0.0", + "@angular/platform-browser-dynamic": "^17.0.0", + "@angular/router": "^17.0.0", + "@ngbracket/ngx-layout": "^17.0.1", + "ajv": "^8.12.0", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.14.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^17.0.7", + "@angular/cli": "^17.0.7", + "@angular/compiler-cli": "^17.0.0", + "@types/jasmine": "~5.1.0", + "jasmine-core": "~5.1.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "typescript": "~5.2.2" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1701.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1701.2.tgz", + "integrity": "sha512-g3gn5Ht6r9bCeFeAYF+HboZB8IvgvqqdeOnaWNaXJLI0ymEkpbqRdqrHGuVKHJV7JOMNXC7GPJEctBC6SXxOxA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.1.2", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-angular": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.1.2.tgz", + "integrity": "sha512-QIDTP+TjiCKCYRZYb8to4ymvIV1Djcfd5c17VdgMGhRqIQAAK1V4f4A1njdhGYOrgsLajZQAnKvFfk2ZMeI37A==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "2.2.1", + "@angular-devkit/architect": "0.1701.2", + "@angular-devkit/build-webpack": "0.1701.2", + "@angular-devkit/core": "17.1.2", + "@babel/core": "7.23.7", + "@babel/generator": "7.23.6", + "@babel/helper-annotate-as-pure": "7.22.5", + "@babel/helper-split-export-declaration": "7.22.6", + "@babel/plugin-transform-async-generator-functions": "7.23.7", + "@babel/plugin-transform-async-to-generator": "7.23.3", + "@babel/plugin-transform-runtime": "7.23.7", + "@babel/preset-env": "7.23.7", + "@babel/runtime": "7.23.7", + "@discoveryjs/json-ext": "0.5.7", + "@ngtools/webpack": "17.1.2", + "@vitejs/plugin-basic-ssl": "1.0.2", + "ansi-colors": "4.1.3", + "autoprefixer": "10.4.16", + "babel-loader": "9.1.3", + "babel-plugin-istanbul": "6.1.1", + "browserslist": "^4.21.5", + "copy-webpack-plugin": "11.0.0", + "critters": "0.0.20", + "css-loader": "6.8.1", + "esbuild-wasm": "0.19.11", + "fast-glob": "3.3.2", + "http-proxy-middleware": "2.0.6", + "https-proxy-agent": "7.0.2", + "inquirer": "9.2.12", + "jsonc-parser": "3.2.0", + "karma-source-map-support": "1.4.0", + "less": "4.2.0", + "less-loader": "11.1.0", + "license-webpack-plugin": "4.0.2", + "loader-utils": "3.2.1", + "magic-string": "0.30.5", + "mini-css-extract-plugin": "2.7.6", + "mrmime": "2.0.0", + "open": "8.4.2", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "3.0.1", + "piscina": "4.2.1", + "postcss": "8.4.33", + "postcss-loader": "7.3.4", + "resolve-url-loader": "5.0.0", + "rxjs": "7.8.1", + "sass": "1.69.7", + "sass-loader": "13.3.3", + "semver": "7.5.4", + "source-map-loader": "5.0.0", + "source-map-support": "0.5.21", + "terser": "5.26.0", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "tslib": "2.6.2", + "undici": "6.2.1", + "vite": "5.0.12", + "watchpack": "2.4.0", + "webpack": "5.89.0", + "webpack-dev-middleware": "6.1.1", + "webpack-dev-server": "4.15.1", + "webpack-merge": "5.10.0", + "webpack-subresource-integrity": "5.1.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "esbuild": "0.19.11" + }, + "peerDependencies": { + "@angular/compiler-cli": "^17.0.0", + "@angular/localize": "^17.0.0", + "@angular/platform-server": "^17.0.0", + "@angular/service-worker": "^17.0.0", + "@web/test-runner": "^0.18.0", + "browser-sync": "^3.0.2", + "jest": "^29.5.0", + "jest-environment-jsdom": "^29.5.0", + "karma": "^6.3.0", + "ng-packagr": "^17.0.0", + "protractor": "^7.0.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=5.2 <5.4" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "@web/test-runner": { + "optional": true + }, + "browser-sync": { + "optional": true + }, + "jest": { + "optional": true + }, + "jest-environment-jsdom": { + "optional": true + }, + "karma": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "protractor": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1701.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1701.2.tgz", + "integrity": "sha512-LqfSO5iTbiYByDadUET/8uIun8vSHMEdtoxiil/kdZ5T0NG0p7K8QqUMnWgg6suwO6kFfYJkMiS8Dq3Y/ONUNQ==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1701.2", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^4.0.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.1.2.tgz", + "integrity": "sha512-ku+/W/HMCBacSWFppenr9y6Lx8mDuTuQvn1IkTyBLiJOpWnzgVbx9kHDeaDchGa1PwLlJUBBrv27t3qgJOIDPw==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "picomatch": "3.0.1", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.1.2.tgz", + "integrity": "sha512-8S9RuM8olFN/gwN+mjbuF1CwHX61f0i59EGXz9tXLnKRUTjsRR+8vVMTAmX0dvVAT5fJTG/T69X+HX7FeumdqA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.1.2", + "jsonc-parser": "3.2.0", + "magic-string": "0.30.5", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/animations": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.1.2.tgz", + "integrity": "sha512-ZsHa/zoWBOZdispjcNgXCoF9MAtc6Zyzc/QFUjtOFI9vigOI8tWP6GY1Wfeg4cyL+R3uDGYBgMrdr8l84VfuKg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.1.2" + } + }, + "node_modules/@angular/cdk": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.1.2.tgz", + "integrity": "sha512-eu9D60RQv213qi7oh6ae9Z+d6+AG/aqi0y70Ag9BjwqTiatDiYvSySxswxYYKdzPp0hx0ZUTGi16LqtT6pyj6Q==", + "dependencies": { + "tslib": "^2.3.0" + }, + "optionalDependencies": { + "parse5": "^7.1.2" + }, + "peerDependencies": { + "@angular/common": "^17.0.0 || ^18.0.0", + "@angular/core": "^17.0.0 || ^18.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/cli": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.1.2.tgz", + "integrity": "sha512-U1W6XZNrfeRkXW2fO3AU25rRttqZahVkhzcK3lAtJ8+lSrStCOF7x1gz6tmFZFte1fNHQrXqD0yIDkd8H2/cvw==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1701.2", + "@angular-devkit/core": "17.1.2", + "@angular-devkit/schematics": "17.1.2", + "@schematics/angular": "17.1.2", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.3", + "ini": "4.1.1", + "inquirer": "9.2.12", + "jsonc-parser": "3.2.0", + "npm-package-arg": "11.0.1", + "npm-pick-manifest": "9.0.0", + "open": "8.4.2", + "ora": "5.4.1", + "pacote": "17.0.5", + "resolve": "1.22.8", + "semver": "7.5.4", + "symbol-observable": "4.0.0", + "yargs": "17.7.2" + }, + "bin": { + "ng": "bin/ng.js" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/common": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.1.2.tgz", + "integrity": "sha512-y/wD+zuPaPgK3dB80Q63qBtuu5TuryKuUgjWrOmrguBWV9oiJRhKQrcp1gVw9vVrowmbDBKGtPMS622Q4oxOWQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.1.2", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/compiler": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.1.2.tgz", + "integrity": "sha512-1vJuQRM5V01nC6qsLvBKrHVZXpzbK0YKubwVQUXCSfDNZBcDFak3SQcwU4C2t880rU3ZvFDB1UWfk7CKn5w9Kw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.1.2" + }, + "peerDependenciesMeta": { + "@angular/core": { + "optional": true + } + } + }, + "node_modules/@angular/compiler-cli": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.1.2.tgz", + "integrity": "sha512-4P4ttCe4IF9yq7bxCDxbVW7purN7qV0nqofP5Tth1xCsgIJeGmOMMQJN5RJCZNrAPMkvMv39eV878sgcDjbpOA==", + "dev": true, + "dependencies": { + "@babel/core": "7.23.2", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "reflect-metadata": "^0.1.2", + "semver": "^7.0.0", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/index.js" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/compiler": "17.1.2", + "typescript": ">=5.2 <5.4" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", + "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular/core": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.1.2.tgz", + "integrity": "sha512-0M787BZVgYSVogHCUzo/dFrT56TgfQoEsOQngHMpyERJZv6dycXZlRdHc6TzvHUa+Uu/MNjn/RclBR8063bdWA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.14.0" + } + }, + "node_modules/@angular/forms": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.1.2.tgz", + "integrity": "sha512-n1WsZAL2IVOB6ocROKR6CFOR14PIC9RGAB41SwTfPhJeBM1kjW48bXY0sw97TasxM4mWJKGCmFXu0jQwkoeSpQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.1.2", + "@angular/core": "17.1.2", + "@angular/platform-browser": "17.1.2", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/material": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-17.1.2.tgz", + "integrity": "sha512-50n7JDWtWGCxfrMKVKZ2wqkdozukA3IWeypQgXxzZc+4jqgT6Vj8/U4xNvcO9OgPLMOaTvktfT+wzUmCKJ0sng==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/auto-init": "15.0.0-canary.7f224ddd4.0", + "@material/banner": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/card": "15.0.0-canary.7f224ddd4.0", + "@material/checkbox": "15.0.0-canary.7f224ddd4.0", + "@material/chips": "15.0.0-canary.7f224ddd4.0", + "@material/circular-progress": "15.0.0-canary.7f224ddd4.0", + "@material/data-table": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dialog": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/drawer": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/fab": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/floating-label": "15.0.0-canary.7f224ddd4.0", + "@material/form-field": "15.0.0-canary.7f224ddd4.0", + "@material/icon-button": "15.0.0-canary.7f224ddd4.0", + "@material/image-list": "15.0.0-canary.7f224ddd4.0", + "@material/layout-grid": "15.0.0-canary.7f224ddd4.0", + "@material/line-ripple": "15.0.0-canary.7f224ddd4.0", + "@material/linear-progress": "15.0.0-canary.7f224ddd4.0", + "@material/list": "15.0.0-canary.7f224ddd4.0", + "@material/menu": "15.0.0-canary.7f224ddd4.0", + "@material/menu-surface": "15.0.0-canary.7f224ddd4.0", + "@material/notched-outline": "15.0.0-canary.7f224ddd4.0", + "@material/radio": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/segmented-button": "15.0.0-canary.7f224ddd4.0", + "@material/select": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/slider": "15.0.0-canary.7f224ddd4.0", + "@material/snackbar": "15.0.0-canary.7f224ddd4.0", + "@material/switch": "15.0.0-canary.7f224ddd4.0", + "@material/tab": "15.0.0-canary.7f224ddd4.0", + "@material/tab-bar": "15.0.0-canary.7f224ddd4.0", + "@material/tab-indicator": "15.0.0-canary.7f224ddd4.0", + "@material/tab-scroller": "15.0.0-canary.7f224ddd4.0", + "@material/textfield": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tooltip": "15.0.0-canary.7f224ddd4.0", + "@material/top-app-bar": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/animations": "^17.0.0 || ^18.0.0", + "@angular/cdk": "17.1.2", + "@angular/common": "^17.0.0 || ^18.0.0", + "@angular/core": "^17.0.0 || ^18.0.0", + "@angular/forms": "^17.0.0 || ^18.0.0", + "@angular/platform-browser": "^17.0.0 || ^18.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.1.2.tgz", + "integrity": "sha512-unfpA5OLnqDmDb/oAQR2t2iROpOg02qwZayxyFg4MUZdDdnghPCfX77L2sr6oVVa7OJfKYFlmwmBXX1H3zjcXA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/animations": "17.1.2", + "@angular/common": "17.1.2", + "@angular/core": "17.1.2" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.1.2.tgz", + "integrity": "sha512-xiWVDHbA+owDhKo5SAnzZtawA1ktGthlCl3YTI+vmkJpF6axkYOqR7YL+aEQX/y/5GSK+oR+03SgAnYcpOwKlQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.1.2", + "@angular/compiler": "17.1.2", + "@angular/core": "17.1.2", + "@angular/platform-browser": "17.1.2" + } + }, + "node_modules/@angular/router": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.1.2.tgz", + "integrity": "sha512-8OexxiiscRdfEiB6jOKlZFyAKZtvIQvh0ugW6U7nAXPV5XsA2UL80sXkc829eH0DnJn2Wj/HS6ZNGgG81PWDHg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.1.2", + "@angular/core": "17.1.2", + "@angular/platform-browser": "17.1.2", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@assemblyscript/loader": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", + "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", + "dev": true + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", + "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.7", + "@babel/parser": "^7.23.6", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.23.10", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz", + "integrity": "sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz", + "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", + "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", + "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz", + "integrity": "sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", + "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", + "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.7.tgz", + "integrity": "sha512-fa0hnfmiXc9fq/weK34MUV0drz2pOL/vfKWvN7Qw127hiUPabFCUMgAbYWcchRzMJit4o5ARsK/s+5h0249pLw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.7", + "babel-plugin-polyfill-corejs3": "^0.8.7", + "babel-plugin-polyfill-regenerator": "^0.5.4", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.7.tgz", + "integrity": "sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.7", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.5", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.7", + "babel-plugin-polyfill-corejs3": "^0.8.7", + "babel-plugin-polyfill-regenerator": "^0.5.4", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.7.tgz", + "integrity": "sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", + "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", + "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", + "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz", + "integrity": "sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.11.tgz", + "integrity": "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz", + "integrity": "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.11.tgz", + "integrity": "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz", + "integrity": "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz", + "integrity": "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz", + "integrity": "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz", + "integrity": "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz", + "integrity": "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz", + "integrity": "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz", + "integrity": "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz", + "integrity": "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz", + "integrity": "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz", + "integrity": "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz", + "integrity": "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz", + "integrity": "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz", + "integrity": "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz", + "integrity": "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz", + "integrity": "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz", + "integrity": "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz", + "integrity": "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz", + "integrity": "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz", + "integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", + "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", + "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "node_modules/@ljharb/through": { + "version": "2.3.12", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.12.tgz", + "integrity": "sha512-ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/@material/animation": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/animation/-/animation-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-1GSJaPKef+7HRuV+HusVZHps64cmZuOItDbt40tjJVaikcaZvwmHlcTxRIqzcRoCdt5ZKHh3NoO7GB9Khg4Jnw==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/auto-init": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-t7ZGpRJ3ec0QDUO0nJu/SMgLW7qcuG2KqIsEYD1Ej8qhI2xpdR2ydSDQOkVEitXmKoGol1oq4nYSBjTlB65GqA==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/banner": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/banner/-/banner-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-g9wBUZzYBizyBcBQXTIafnRUUPi7efU9gPJfzeGgkynXiccP/vh5XMmH+PBxl5v+4MlP/d4cZ2NUYoAN7UTqSA==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/base": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/base/-/base-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-I9KQOKXpLfJkP8MqZyr8wZIzdPHrwPjFvGd9zSK91/vPyE4hzHRJc/0njsh9g8Lm9PRYLbifXX+719uTbHxx+A==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/button": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/button/-/button-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-BHB7iyHgRVH+JF16+iscR+Qaic+p7LU1FOLgP8KucRlpF9tTwIxQA6mJwGRi5gUtcG+vyCmzVS+hIQ6DqT/7BA==", + "dependencies": { + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/card": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/card/-/card-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-kt7y9/IWOtJTr3Z/AoWJT3ZLN7CLlzXhx2udCLP9ootZU2bfGK0lzNwmo80bv/pJfrY9ihQKCtuGTtNxUy+vIw==", + "dependencies": { + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/checkbox": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-rURcrL5O1u6hzWR+dNgiQ/n89vk6tdmdP3mZgnxJx61q4I/k1yijKqNJSLrkXH7Rto3bM5NRKMOlgvMvVd7UMQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/chips": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/chips/-/chips-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-AYAivV3GSk/T/nRIpH27sOHFPaSMrE3L0WYbnb5Wa93FgY8a0fbsFYtSH2QmtwnzXveg+B1zGTt7/xIIcynKdQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/checkbox": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/circular-progress": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/circular-progress/-/circular-progress-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-DJrqCKb+LuGtjNvKl8XigvyK02y36GRkfhMUYTcJEi3PrOE00bwXtyj7ilhzEVshQiXg6AHGWXtf5UqwNrx3Ow==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/progress-indicator": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/data-table": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/data-table/-/data-table-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-/2WZsuBIq9z9RWYF5Jo6b7P6u0fwit+29/mN7rmAZ6akqUR54nXyNfoSNiyydMkzPlZZsep5KrSHododDhBZbA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/checkbox": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/icon-button": "15.0.0-canary.7f224ddd4.0", + "@material/linear-progress": "15.0.0-canary.7f224ddd4.0", + "@material/list": "15.0.0-canary.7f224ddd4.0", + "@material/menu": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/select": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/density": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/density/-/density-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-o9EXmGKVpiQ6mHhyV3oDDzc78Ow3E7v8dlaOhgaDSXgmqaE8v5sIlLNa/LKSyUga83/fpGk3QViSGXotpQx0jA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/dialog": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-u0XpTlv1JqWC/bQ3DavJ1JguofTelLT2wloj59l3/1b60jv42JQ6Am7jU3I8/SIUB1MKaW7dYocXjDWtWJakLA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/icon-button": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/dom": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/dom/-/dom-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-mQ1HT186GPQSkRg5S18i70typ5ZytfjL09R0gJ2Qg5/G+MLCGi7TAjZZSH65tuD/QGOjel4rDdWOTmYbPYV6HA==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/drawer": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-qyO0W0KBftfH8dlLR0gVAgv7ZHNvU8ae11Ao6zJif/YxcvK4+gph1z8AO4H410YmC2kZiwpSKyxM1iQCCzbb4g==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/list": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/elevation": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-tV6s4/pUBECedaI36Yj18KmRCk1vfue/JP/5yYRlFNnLMRVISePbZaKkn/BHXVf+26I3W879+XqIGlDVdmOoMA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/fab": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/fab/-/fab-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-4h76QrzfZTcPdd+awDPZ4Q0YdSqsXQnS540TPtyXUJ/5G99V6VwGpjMPIxAsW0y+pmI9UkLL/srrMaJec+7r4Q==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/feature-targeting": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-SAjtxYh6YlKZriU83diDEQ7jNSP2MnxKsER0TvFeyG1vX/DWsUyYDOIJTOEa9K1N+fgJEBkNK8hY55QhQaspew==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/floating-label": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-0KMo5ijjYaEHPiZ2pCVIcbaTS2LycvH9zEhEMKwPPGssBCX7iz5ffYQFk7e5yrQand1r3jnQQgYfHAwtykArnQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/focus-ring": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-Jmg1nltq4J6S6A10EGMZnvufrvU3YTi+8R8ZD9lkSbun0Fm2TVdICQt/Auyi6An9zP66oQN6c31eqO6KfIPsDg==", + "dependencies": { + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0" + } + }, + "node_modules/@material/form-field": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-fEPWgDQEPJ6WF7hNnIStxucHR9LE4DoDSMqCsGWS2Yu+NLZYLuCEecgR0UqQsl1EQdNRaFh8VH93KuxGd2hiPg==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/icon-button": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-DcK7IL4ICY/DW+48YQZZs9g0U1kRaW0Wb0BxhvppDMYziHo/CTpFdle4gjyuTyRxPOdHQz5a97ru48Z9O4muTw==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/image-list": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/image-list/-/image-list-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-voMjG2p80XbjL1B2lmF65zO5gEgJOVKClLdqh4wbYzYfwY/SR9c8eLvlYG7DLdFaFBl/7gGxD8TvvZ329HUFPw==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/layout-grid": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-veDABLxMn2RmvfnUO2RUmC1OFfWr4cU+MrxKPoDD2hl3l3eDYv5fxws6r5T1JoSyXoaN+oEZpheS0+M9Ure8Pg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/line-ripple": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-f60hVJhIU6I3/17Tqqzch1emUKEcfVVgHVqADbU14JD+oEIz429ZX9ksZ3VChoU3+eejFl+jVdZMLE/LrAuwpg==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/linear-progress": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-pRDEwPQielDiC9Sc5XhCXrGxP8wWOnAO8sQlMebfBYHYqy5hhiIzibezS8CSaW4MFQFyXmCmpmqWlbqGYRmiyg==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/progress-indicator": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/list": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/list/-/list-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-Is0NV91sJlXF5pOebYAtWLF4wU2MJDbYqztML/zQNENkQxDOvEXu3nWNb3YScMIYJJXvARO0Liur5K4yPagS1Q==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/menu": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/menu/-/menu-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-D11QU1dXqLbh5X1zKlEhS3QWh0b5BPNXlafc5MXfkdJHhOiieb7LC9hMJhbrHtj24FadJ7evaFW/T2ugJbJNnQ==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/list": "15.0.0-canary.7f224ddd4.0", + "@material/menu-surface": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/menu-surface": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-7RZHvw0gbwppaAJ/Oh5SWmfAKJ62aw1IMB3+3MRwsb5PLoV666wInYa+zJfE4i7qBeOn904xqT2Nko5hY0ssrg==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/notched-outline": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-Yg2usuKB2DKlKIBISbie9BFsOVuffF71xjbxPbybvqemxqUBd+bD5/t6H1fLE+F8/NCu5JMigho4ewUU+0RCiw==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/floating-label": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/progress-indicator": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/progress-indicator/-/progress-indicator-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-UPbDjE5CqT+SqTs0mNFG6uFEw7wBlgYmh+noSkQ6ty/EURm8lF125dmi4dv4kW0+octonMXqkGtAoZwLIHKf/w==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/radio": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/radio/-/radio-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-wR1X0Sr0KmQLu6+YOFKAI84G3L6psqd7Kys5kfb8WKBM36zxO5HQXC5nJm/Y0rdn22ixzsIz2GBo0MNU4V4k1A==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/ripple": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-JqOsWM1f4aGdotP0rh1vZlPZTg6lZgh39FIYHFMfOwfhR+LAikUJ+37ciqZuewgzXB6iiRO6a8aUH6HR5SJYPg==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/rtl": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-UVf14qAtmPiaaZjuJtmN36HETyoKWmsZM/qn1L5ciR2URb8O035dFWnz4ZWFMmAYBno/L7JiZaCkPurv2ZNrGA==", + "dependencies": { + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/segmented-button": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/segmented-button/-/segmented-button-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-LCnVRUSAhELTKI/9hSvyvIvQIpPpqF29BV+O9yM4WoNNmNWqTulvuiv7grHZl6Z+kJuxSg4BGbsPxxb9dXozPg==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/select": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/select/-/select-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-WioZtQEXRpglum0cMSzSqocnhsGRr+ZIhvKb3FlaNrTaK8H3Y4QA7rVjv3emRtrLOOjaT6/RiIaUMTo9AGzWQQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/floating-label": "15.0.0-canary.7f224ddd4.0", + "@material/line-ripple": "15.0.0-canary.7f224ddd4.0", + "@material/list": "15.0.0-canary.7f224ddd4.0", + "@material/menu": "15.0.0-canary.7f224ddd4.0", + "@material/menu-surface": "15.0.0-canary.7f224ddd4.0", + "@material/notched-outline": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/shape": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/shape/-/shape-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-8z8l1W3+cymObunJoRhwFPKZ+FyECfJ4MJykNiaZq7XJFZkV6xNmqAVrrbQj93FtLsECn9g4PjjIomguVn/OEw==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/slider": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/slider/-/slider-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-QU/WSaSWlLKQRqOhJrPgm29wqvvzRusMqwAcrCh1JTrCl+xwJ43q5WLDfjYhubeKtrEEgGu9tekkAiYfMG7EBw==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/snackbar": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-sm7EbVKddaXpT/aXAYBdPoN0k8yeg9+dprgBUkrdqGzWJAeCkxb4fv2B3He88YiCtvkTz2KLY4CThPQBSEsMFQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/icon-button": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/switch": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/switch/-/switch-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-lEDJfRvkVyyeHWIBfoxYjJVl+WlEAE2kZ/+6OqB1FW0OV8ftTODZGhHRSzjVBA1/p4FPuhAtKtoK9jTpa4AZjA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tab/-/tab-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-E1xGACImyCLurhnizyOTCgOiVezce4HlBFAI6YhJo/AyVwjN2Dtas4ZLQMvvWWqpyhITNkeYdOchwCC1mrz3AQ==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/tab-indicator": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-bar": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-p1Asb2NzrcECvAQU3b2SYrpyJGyJLQWR+nXTYzDKE8WOpLIRCXap2audNqD7fvN/A20UJ1J8U01ptrvCkwJ4eA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/tab": "15.0.0-canary.7f224ddd4.0", + "@material/tab-indicator": "15.0.0-canary.7f224ddd4.0", + "@material/tab-scroller": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-indicator": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-h9Td3MPqbs33spcPS7ecByRHraYgU4tNCZpZzZXw31RypjKvISDv/PS5wcA4RmWqNGih78T7xg4QIGsZg4Pk4w==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-scroller": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-LFeYNjQpdXecwECd8UaqHYbhscDCwhGln5Yh+3ctvcEgvmDPNjhKn/DL3sWprWvG8NAhP6sHMrsGhQFVdCWtTg==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/tab": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/textfield": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-AExmFvgE5nNF0UA4l2cSzPghtxSUQeeoyRjFLHLy+oAaE4eKZFrSy0zEpqPeWPQpEMDZk+6Y+6T3cOFYBeSvsw==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/floating-label": "15.0.0-canary.7f224ddd4.0", + "@material/line-ripple": "15.0.0-canary.7f224ddd4.0", + "@material/notched-outline": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/theme": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/theme/-/theme-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-hs45hJoE9yVnoVOcsN1jklyOa51U4lzWsEnQEuJTPOk2+0HqCQ0yv/q0InpSnm2i69fNSyZC60+8HADZGF8ugQ==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tokens": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-r9TDoicmcT7FhUXC4eYMFnt9TZsz0G8T3wXvkKncLppYvZ517gPyD/1+yhuGfGOxAzxTrM66S/oEc1fFE2q4hw==", + "dependencies": { + "@material/elevation": "15.0.0-canary.7f224ddd4.0" + } + }, + "node_modules/@material/tooltip": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tooltip/-/tooltip-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-8qNk3pmPLTnam3XYC1sZuplQXW9xLn4Z4MI3D+U17Q7pfNZfoOugGr+d2cLA9yWAEjVJYB0mj8Yu86+udo4N9w==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/top-app-bar": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-SARR5/ClYT4CLe9qAXakbr0i0cMY0V3V4pe3ElIJPfL2Z2c4wGR1mTR8m2LxU1MfGKK8aRoUdtfKaxWejp+eNA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/touch-target": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-BJo/wFKHPYLGsRaIpd7vsQwKr02LtO2e89Psv0on/p0OephlNIgeB9dD9W+bQmaeZsZ6liKSKRl6wJWDiK71PA==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/typography": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/typography/-/typography-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-kBaZeCGD50iq1DeRRH5OM5Jl7Gdk+/NOfKArkY4ksBZvJiStJ7ACAhpvb8MEGm4s3jvDInQFLsDq3hL+SA79sQ==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@ngbracket/ngx-layout": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@ngbracket/ngx-layout/-/ngx-layout-17.0.1.tgz", + "integrity": "sha512-HHPQXEIDpdb0FuJPWuy3noS7n49F6vr8e0kJ6lusmOgjFpRxUQeNua1eXWyPSnzw1QcWIJK6XXxKK4OidOHrPA==", + "dependencies": { + "tslib": "^2.5.0" + }, + "peerDependencies": { + "@angular/cdk": ">=17.0.0", + "@angular/common": ">=17.0.0", + "@angular/core": ">=17.0.0", + "@angular/platform-browser": ">=17.0.0", + "rxjs": "^6.5.3 || ^7.8.0" + } + }, + "node_modules/@ngtools/webpack": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.1.2.tgz", + "integrity": "sha512-MdNVSIp0x8AK26L+CxMTXH4weq2sNIp4C09RSdk7y6UkfBxMA3O0jTto9tW3ehkBaaGZ4dSiWkXA8L/ydMiQmA==", + "dev": true, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^17.0.0", + "typescript": ">=5.2 <5.4", + "webpack": "^5.54.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/agent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz", + "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@npmcli/fs": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.4.tgz", + "integrity": "sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ==", + "dev": true, + "dependencies": { + "@npmcli/promise-spawn": "^7.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^3.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@npmcli/git/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", + "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", + "dev": true, + "dependencies": { + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "lib/index.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/package-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.0.0.tgz", + "integrity": "sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g==", + "dev": true, + "dependencies": { + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^3.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@npmcli/package-json/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/package-json/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/promise-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz", + "integrity": "sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==", + "dev": true, + "dependencies": { + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.4.tgz", + "integrity": "sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==", + "dev": true, + "dependencies": { + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/run-script/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz", + "integrity": "sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz", + "integrity": "sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz", + "integrity": "sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz", + "integrity": "sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz", + "integrity": "sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz", + "integrity": "sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz", + "integrity": "sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz", + "integrity": "sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz", + "integrity": "sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz", + "integrity": "sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz", + "integrity": "sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz", + "integrity": "sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz", + "integrity": "sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@schematics/angular": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.1.2.tgz", + "integrity": "sha512-1GlH0POaN7hVDF1sAm90E5SvAqnKK+PbD1oKSpug9l+1AUQ3vOamyGhEAaO+IxUqvNdgqZexxd5o9MyySTT2Zw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.1.2", + "@angular-devkit/schematics": "17.1.2", + "jsonc-parser": "3.2.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@sigstore/bundle": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.1.1.tgz", + "integrity": "sha512-v3/iS+1nufZdKQ5iAlQKcCsoh0jffQyABvYIxKsZQFWc4ubuGjwZklFHpDgV6O6T7vvV78SW5NHI91HFKEcxKg==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/core": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-0.2.0.tgz", + "integrity": "sha512-THobAPPZR9pDH2CAvDLpkrYedt7BlZnsyxDe+Isq4ZmGfPy5juOFZq487vCU2EgKD7aHSiTfE/i7sN7aEdzQnA==", + "dev": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz", + "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/sign": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.1.tgz", + "integrity": "sha512-U5sKQEj+faE1MsnLou1f4DQQHeFZay+V9s9768lw48J4pKykPj34rWyI1lsMOGJ3Mae47Ye6q3HAJvgXO21rkQ==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^2.1.1", + "@sigstore/core": "^0.2.0", + "@sigstore/protobuf-specs": "^0.2.1", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/tuf": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.0.tgz", + "integrity": "sha512-S98jo9cpJwO1mtQ+2zY7bOdcYyfVYCUaofCG6wWRzk3pxKHVAkSfshkfecto2+LKsx7Ovtqbgb2LS8zTRhxJ9Q==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.1", + "tuf-js": "^2.2.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/verify": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-0.1.0.tgz", + "integrity": "sha512-2UzMNYAa/uaz11NhvgRnIQf4gpLTJ59bhb8ESXaoSS5sxedfS+eLak8bsdMc+qpNQfITUTFoSKFx5h8umlRRiA==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^2.1.1", + "@sigstore/core": "^0.2.0", + "@sigstore/protobuf-specs": "^0.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true + }, + "node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", + "dev": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz", + "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", + "dev": true, + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "node_modules/@types/cors": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.2", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.2.tgz", + "integrity": "sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.42", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.42.tgz", + "integrity": "sha512-ckM3jm2bf/MfB3+spLPWYPUH573plBFwpOhqQ2WottxYV85j1HQFlxmnTq57X1yHY9awZPig06hL/cLMgNWHIQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/jasmine": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.4.tgz", + "integrity": "sha512-px7OMFO/ncXxixDe1zR13V1iycqWae0MxTaw62RpFlksUi5QuNWgQJFkTQjIOvrmutJbI7Fp2Y2N1F6D2R4G6w==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.11.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.16.tgz", + "integrity": "sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/qs": { + "version": "6.9.11", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", + "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.2.tgz", + "integrity": "sha512-DKHKVtpI+eA5fvObVgQ3QtTGU70CcCnedalzqmGSR050AzKZMdUzgC8KmlOneHWH8dF2hJ3wkC9+8FDVAaDRCw==", + "dev": true, + "engines": { + "node": ">=14.6.0" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/autoprefixer": { + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/babel-loader": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", + "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.5.0", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.4", + "core-js-compat": "^3.33.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", + "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/bonjour-service": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", + "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.22.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", + "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001580", + "electron-to-chromium": "^1.4.648", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "18.0.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.2.tgz", + "integrity": "sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001583", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001583.tgz", + "integrity": "sha512-acWTYaha8xfhA/Du/z4sNZjHUWjkiuoAi2LM+T/aL+kemKQgPT1xBb/YKjlQ0Qo8gvbHsGNplrEJ+9G3gL7i4Q==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cliui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/core-js-compat": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.1.tgz", + "integrity": "sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==", + "dev": true, + "dependencies": { + "browserslist": "^4.22.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/critters": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.20.tgz", + "integrity": "sha512-CImNRorKOl5d8TWcnAz5n5izQ6HFsvz29k327/ELy6UFcmbiZNOsinaKvzv16WZR0P6etfSWYzE47C4/56B3Uw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "css-select": "^5.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.2", + "htmlparser2": "^8.0.2", + "postcss": "^8.4.23", + "pretty-bytes": "^5.3.0" + } + }, + "node_modules/critters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/critters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/critters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/critters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/critters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/critters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-loader": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", + "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.21", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.3", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", + "dev": true + }, + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", + "dev": true, + "dependencies": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.656", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.656.tgz", + "integrity": "sha512-9AQB5eFTHyR3Gvt2t/NwR0le2jBSUNwCnMbUCejFWHD+so4tH40/dRLgoE+jxlPeWS43XJewyvCv+I8LPMl49Q==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/engine.io": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz", + "integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==", + "dev": true, + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", + "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "devOptional": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", + "integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.11", + "@esbuild/android-arm": "0.19.11", + "@esbuild/android-arm64": "0.19.11", + "@esbuild/android-x64": "0.19.11", + "@esbuild/darwin-arm64": "0.19.11", + "@esbuild/darwin-x64": "0.19.11", + "@esbuild/freebsd-arm64": "0.19.11", + "@esbuild/freebsd-x64": "0.19.11", + "@esbuild/linux-arm": "0.19.11", + "@esbuild/linux-arm64": "0.19.11", + "@esbuild/linux-ia32": "0.19.11", + "@esbuild/linux-loong64": "0.19.11", + "@esbuild/linux-mips64el": "0.19.11", + "@esbuild/linux-ppc64": "0.19.11", + "@esbuild/linux-riscv64": "0.19.11", + "@esbuild/linux-s390x": "0.19.11", + "@esbuild/linux-x64": "0.19.11", + "@esbuild/netbsd-x64": "0.19.11", + "@esbuild/openbsd-x64": "0.19.11", + "@esbuild/sunos-x64": "0.19.11", + "@esbuild/win32-arm64": "0.19.11", + "@esbuild/win32-ia32": "0.19.11", + "@esbuild/win32-x64": "0.19.11" + } + }, + "node_modules/esbuild-wasm": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.19.11.tgz", + "integrity": "sha512-MIhnpc1TxERUHomteO/ZZHp+kUawGEc03D/8vMHGzffLvbFLeDe6mwxqEZwlqBNY7SLWbyp6bBQAcCen8+wpjQ==", + "dev": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "dev": true + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.0.tgz", + "integrity": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/figures": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/finalhandler/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hdr-histogram-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", + "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", + "dev": true, + "dependencies": { + "@assemblyscript/loader": "^0.10.1", + "base64-js": "^1.2.0", + "pako": "^1.0.3" + } + }, + "node_modules/hdr-histogram-percentiles-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", + "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", + "dev": true + }, + "node_modules/hosted-git-info": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", + "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", + "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz", + "integrity": "sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==", + "dev": true, + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immutable": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/inquirer": { + "version": "9.2.12", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz", + "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==", + "dev": true, + "dependencies": { + "@ljharb/through": "^2.3.11", + "ansi-escapes": "^4.3.2", + "chalk": "^5.3.0", + "cli-cursor": "^3.1.0", + "cli-width": "^4.1.0", + "external-editor": "^3.1.0", + "figures": "^5.0.0", + "lodash": "^4.17.21", + "mute-stream": "1.0.0", + "ora": "^5.4.1", + "run-async": "^3.0.0", + "rxjs": "^7.8.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "dev": true + }, + "node_modules/ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jasmine-core": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", + "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "dev": true + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", + "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/karma": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", + "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", + "dev": true, + "dependencies": { + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.4.1", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + }, + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/karma-chrome-launcher": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", + "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", + "dev": true, + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-coverage": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.1.tgz", + "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.0.5", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/karma-jasmine": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", + "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", + "dev": true, + "dependencies": { + "jasmine-core": "^4.1.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "karma": "^6.0.0" + } + }, + "node_modules/karma-jasmine-html-reporter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.1.0.tgz", + "integrity": "sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ==", + "dev": true, + "peerDependencies": { + "jasmine-core": "^4.0.0 || ^5.0.0", + "karma": "^6.0.0", + "karma-jasmine": "^5.0.0" + } + }, + "node_modules/karma-jasmine/node_modules/jasmine-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", + "dev": true + }, + "node_modules/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "node_modules/karma/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/karma/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/karma/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/karma/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/karma/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/karma/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/karma/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/karma/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/karma/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/launch-editor": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/less": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", + "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", + "dev": true, + "dependencies": { + "klona": "^2.0.4" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/license-webpack-plugin": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", + "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", + "dev": true, + "dependencies": { + "webpack-sources": "^3.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-sources": { + "optional": true + } + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log4js": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-fetch-happen": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "dev": true, + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", + "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-fetch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-json-stream/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-json-stream/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/nice-napi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "!win32" + ], + "dependencies": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" + } + }, + "node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true, + "optional": true + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz", + "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", + "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "dev": true, + "optional": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-gyp/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/node-gyp/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/nopt": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", + "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "dev": true, + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", + "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", + "dev": true, + "dependencies": { + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-bundled": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", + "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-install-checks": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "dev": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", + "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", + "dev": true, + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-packlist": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", + "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", + "dev": true, + "dependencies": { + "ignore-walk": "^6.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz", + "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==", + "dev": true, + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz", + "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==", + "dev": true, + "dependencies": { + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pacote": { + "version": "17.0.5", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.5.tgz", + "integrity": "sha512-TAE0m20zSDMnchPja9vtQjri19X3pZIyRpm2TJVeI+yU42leJBBDTRYhOcWFsPhaMxf+3iwQkFiKz16G9AEeeA==", + "dev": true, + "dependencies": { + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^7.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", + "proc-log": "^3.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^7.0.0", + "read-package-json-fast": "^3.0.0", + "sigstore": "^2.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-json/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "devOptional": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-html-rewriting-stream": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", + "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", + "dev": true, + "dependencies": { + "entities": "^4.3.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-sax-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", + "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", + "dev": true, + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/piscina": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.2.1.tgz", + "integrity": "sha512-LShp0+lrO+WIzB9LXO+ZmO4zGHxtTJNZhEO56H9SSu+JPaUQb6oLcTCzWi5IL2DS8/vIkCE88ElahuSSw4TAkA==", + "dev": true, + "dependencies": { + "hdr-histogram-js": "^2.0.1", + "hdr-histogram-percentiles-obj": "^3.0.0" + }, + "optionalDependencies": { + "nice-napi": "^1.0.2" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/postcss": { + "version": "8.4.33", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", + "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-loader": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz", + "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", + "dev": true, + "dependencies": { + "cosmiconfig": "^8.3.5", + "jiti": "^1.20.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz", + "integrity": "sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz", + "integrity": "sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true, + "engines": { + "node": ">=0.9" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-package-json": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz", + "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==", + "dev": true, + "dependencies": { + "glob": "^10.2.2", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/read-package-json-fast": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/read-package-json/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/read-package-json/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", + "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", + "dev": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", + "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", + "dev": true + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", + "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.6.tgz", + "integrity": "sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.9.6", + "@rollup/rollup-android-arm64": "4.9.6", + "@rollup/rollup-darwin-arm64": "4.9.6", + "@rollup/rollup-darwin-x64": "4.9.6", + "@rollup/rollup-linux-arm-gnueabihf": "4.9.6", + "@rollup/rollup-linux-arm64-gnu": "4.9.6", + "@rollup/rollup-linux-arm64-musl": "4.9.6", + "@rollup/rollup-linux-riscv64-gnu": "4.9.6", + "@rollup/rollup-linux-x64-gnu": "4.9.6", + "@rollup/rollup-linux-x64-musl": "4.9.6", + "@rollup/rollup-win32-arm64-msvc": "4.9.6", + "@rollup/rollup-win32-ia32-msvc": "4.9.6", + "@rollup/rollup-win32-x64-msvc": "4.9.6", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/safevalues": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/safevalues/-/safevalues-0.3.4.tgz", + "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==" + }, + "node_modules/sass": { + "version": "1.69.7", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.7.tgz", + "integrity": "sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-loader": { + "version": "13.3.3", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.3.tgz", + "integrity": "sha512-mt5YN2F1MOZr3d/wBRcZxeFgwgkH44wVc2zohO2YF6JiOMkiXe4BYRZpSu2sO1g71mo/j16txzUhsKZlqjVGzA==", + "dev": true, + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", + "dev": true, + "optional": true + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dev": true, + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", + "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.2", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sigstore": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.0.tgz", + "integrity": "sha512-fcU9clHwEss2/M/11FFM8Jwc4PjBgbhXoNskoK5guoK0qGQBSeUbQZRJ+B2fDFIvhyf0gqCaPrel9mszbhAxug==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^2.1.1", + "@sigstore/core": "^0.2.0", + "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/sign": "^2.2.1", + "@sigstore/tuf": "^2.3.0", + "@sigstore/verify": "^0.1.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socket.io": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.4.tgz", + "integrity": "sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", + "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", + "dev": true, + "dependencies": { + "ws": "~8.11.0" + } + }, + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dev": true, + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", + "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", + "dev": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.72.1" + } + }, + "node_modules/source-map-loader/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz", + "integrity": "sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/ssri": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/terser": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.26.0.tgz", + "integrity": "sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tuf-js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.0.tgz", + "integrity": "sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==", + "dev": true, + "dependencies": { + "@tufjs/models": "2.0.0", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-assert": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", + "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", + "dev": true + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz", + "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/undici": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.2.1.tgz", + "integrity": "sha512-7Wa9thEM6/LMnnKtxJHlc8SrTlDmxqJecgz1iy8KlsN0/iskQXOQCuPkrZLXbElPaSw5slFFyKIKXyJ3UtbApw==", + "dev": true, + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dev": true, + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "dev": true, + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.12.tgz", + "integrity": "sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==", + "dev": true, + "dependencies": { + "esbuild": "^0.19.3", + "postcss": "^8.4.32", + "rollup": "^4.2.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webpack": { + "version": "5.89.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", + "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.1.tgz", + "integrity": "sha512-y51HrHaFeeWir0YO4f0g+9GwZawuigzcAdRNon6jErXy/SqV/+O6eaVAzDqE6t3e3NpGeR5CS+cCDaTC+V3yEQ==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.12", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", + "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", + "dev": true, + "dependencies": { + "typed-assert": "^1.0.8" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", + "webpack": "^5.12.0" + }, + "peerDependenciesMeta": { + "html-webpack-plugin": { + "optional": true + } + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zone.js": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.3.tgz", + "integrity": "sha512-jYoNqF046Q+JfcZSItRSt+oXFcpXL88yq7XAZjb/NKTS7w2hHpKjRJ3VlFD1k75wMaRRXNUt5vrZVlygiMyHbA==", + "dependencies": { + "tslib": "^2.3.0" + } + } + } +} diff --git a/viewer/package.json b/viewer/package.json new file mode 100644 index 0000000..65ce6ef --- /dev/null +++ b/viewer/package.json @@ -0,0 +1,44 @@ +{ + "name": "viewer", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "npm run merge && ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test", + "validate": "node scripts/validate.mjs", + "merge": "node scripts/merge-wallets.mjs" + }, + "private": true, + "dependencies": { + "@angular/animations": "^17.0.0", + "@angular/cdk": "^17.1.2", + "@angular/common": "^17.0.0", + "@angular/compiler": "^17.0.0", + "@angular/core": "^17.0.0", + "@angular/forms": "^17.0.0", + "@angular/material": "^17.1.2", + "@angular/platform-browser": "^17.0.0", + "@angular/platform-browser-dynamic": "^17.0.0", + "@angular/router": "^17.0.0", + "@ngbracket/ngx-layout": "^17.0.1", + "ajv": "^8.12.0", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.14.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^17.0.7", + "@angular/cli": "^17.0.7", + "@angular/compiler-cli": "^17.0.0", + "@types/jasmine": "~5.1.0", + "jasmine-core": "~5.1.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "typescript": "~5.2.2" + } +} diff --git a/viewer/scripts/merge-wallets.mjs b/viewer/scripts/merge-wallets.mjs new file mode 100644 index 0000000..b5743d1 --- /dev/null +++ b/viewer/scripts/merge-wallets.mjs @@ -0,0 +1,23 @@ +import { readdirSync, readFileSync, writeFileSync } from 'fs'; + +// function to parse the flattened_wallets.json and create individual wallet files +const w = JSON.parse(readFileSync('../flattened_wallets.json')); +w.forEach(element => { + element["$schema"] = "../schema.json"; + + const keys = Object.keys(element); + keys.forEach(key => { + if(element[key] === "") { + delete element[key]; + } + }); + + //patch openSourceField to boolean + element.openSource = element.openSource === "Yes"; + writeFileSync(`../wallets/${element.name}.json`, JSON.stringify(element, null, 2)); +}); + +// function to merge all the individual wallet files into a single file +const files = readdirSync('../wallets'); +const wallets = files.map(file => JSON.parse(readFileSync(`../wallets/${file}`))); +writeFileSync('src/assets/wallets.json', JSON.stringify(wallets, null, 2)); diff --git a/viewer/scripts/validate.mjs b/viewer/scripts/validate.mjs new file mode 100644 index 0000000..fb1687f --- /dev/null +++ b/viewer/scripts/validate.mjs @@ -0,0 +1,21 @@ +import Ajv from 'ajv'; +import {readFileSync, readdirSync} from 'fs'; + +const ajv = new Ajv({allowUnionTypes: true}); +const validate = ajv.compile(JSON.parse(readFileSync('../schema.json'))); +const files = readdirSync('../wallets'); +let success = true; +files.map(file => { + const wallet = JSON.parse(readFileSync(`../wallets/${file}`)) + if(!validate(wallet)) { + console.error(`Error validating ${file}:`); + console.error(validate.errors); + success = false; + } +}); +if(success) { + console.info('All wallets are valid'); +} else { + console.error('Some wallets are invalid'); + process.exit(1); +} diff --git a/viewer/src/app/app.component.html b/viewer/src/app/app.component.html new file mode 100644 index 0000000..d216ae4 --- /dev/null +++ b/viewer/src/app/app.component.html @@ -0,0 +1,114 @@ + + Digital Wallet and agent overview +
+
+ Github Github +
+
+ +
+
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + +
+ Name + +
+ + {{ element.name }} +
+
+ Company + + {{ element.company }} + + Open Source + + {{ element.openSource }} + + Link to app + + android + phone_iphone +
+
+
+ + diff --git a/viewer/src/app/app.component.scss b/viewer/src/app/app.component.scss new file mode 100644 index 0000000..302fe19 --- /dev/null +++ b/viewer/src/app/app.component.scss @@ -0,0 +1,22 @@ +.github { + display: flex; + align-items: center; + + img { + float: left; + padding: 4px 8px; + } + + a { + display: flex; + align-items: center; + } +} + +.router-link-active { + background-color: rgba(0,0,0,.2) +} + +.logo { + height: 40px; +} diff --git a/viewer/src/app/app.component.spec.ts b/viewer/src/app/app.component.spec.ts new file mode 100644 index 0000000..3e9ca5c --- /dev/null +++ b/viewer/src/app/app.component.spec.ts @@ -0,0 +1,29 @@ +import { TestBed } from '@angular/core/testing'; +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [AppComponent], + }).compileComponents(); + }); + + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app).toBeTruthy(); + }); + + it(`should have the 'viewer' title`, () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app.title).toEqual('viewer'); + }); + + it('should render title', () => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.nativeElement as HTMLElement; + expect(compiled.querySelector('h1')?.textContent).toContain('Hello, viewer'); + }); +}); diff --git a/viewer/src/app/app.component.ts b/viewer/src/app/app.component.ts new file mode 100644 index 0000000..a15e021 --- /dev/null +++ b/viewer/src/app/app.component.ts @@ -0,0 +1,63 @@ +import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule, RouterOutlet } from '@angular/router'; +import { MatToolbarModule } from '@angular/material/toolbar'; +import { MatTableDataSource, MatTableModule } from '@angular/material/table'; +import { MatButtonModule } from '@angular/material/button'; +import { HttpClient, HttpClientModule } from '@angular/common/http'; +import { firstValueFrom } from 'rxjs'; +import { Wallet } from './types'; +import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator'; +import { MatSort, MatSortModule } from '@angular/material/sort'; +import { MatIconModule } from '@angular/material/icon'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { FlexLayoutModule } from '@ngbracket/ngx-layout'; + +@Component({ + selector: 'app-root', + standalone: true, + imports: [ + RouterModule, + HttpClientModule, + CommonModule, + RouterOutlet, + MatToolbarModule, + MatTableModule, + MatButtonModule, + MatIconModule, + MatPaginatorModule, + MatTooltipModule, + MatSortModule, + FlexLayoutModule, + ], + templateUrl: './app.component.html', + styleUrl: './app.component.scss', +}) +export class AppComponent implements OnInit, AfterViewInit { + updatedAt!: Date; + + dataSource = new MatTableDataSource(); + + columns: string[] = ['wallet', 'company', 'openSource', 'linkToApp']; + + @ViewChild(MatPaginator) paginator!: MatPaginator; + + @ViewChild(MatSort) sort!: MatSort; + + displayedColumns: string[] = []; + + constructor(private httpClient: HttpClient) {} + + async ngOnInit(): Promise { + const wallets = await firstValueFrom( + this.httpClient.get('/assets/wallets.json') + ); + this.dataSource.data = wallets; + this.displayedColumns = this.columns; + } + + ngAfterViewInit(): void { + this.dataSource.sort = this.sort; + this.dataSource.paginator = this.paginator; + } +} diff --git a/viewer/src/app/app.config.ts b/viewer/src/app/app.config.ts new file mode 100644 index 0000000..bcd5df3 --- /dev/null +++ b/viewer/src/app/app.config.ts @@ -0,0 +1,9 @@ +import { ApplicationConfig } from '@angular/core'; +import { provideRouter } from '@angular/router'; + +import { routes } from './app.routes'; +import { provideAnimationsAsync } from '@angular/platform-browser/animations/async'; + +export const appConfig: ApplicationConfig = { + providers: [provideRouter(routes), provideAnimationsAsync()], +}; diff --git a/viewer/src/app/app.routes.ts b/viewer/src/app/app.routes.ts new file mode 100644 index 0000000..dc39edb --- /dev/null +++ b/viewer/src/app/app.routes.ts @@ -0,0 +1,3 @@ +import { Routes } from '@angular/router'; + +export const routes: Routes = []; diff --git a/viewer/src/app/types.ts b/viewer/src/app/types.ts new file mode 100644 index 0000000..1a297d1 --- /dev/null +++ b/viewer/src/app/types.ts @@ -0,0 +1,85 @@ +export interface Wallet { + aip: Aip; + api: Aip; + blockchainPurpose: string; + blockchainType: string; + blockchainUsed: Aip; + company: string; + connectionTypes: string; + credExchangeProtocol: string; + credentialFormat: string; + cryptoAgility: Aip; + ddip: Aip; + deepLinking: Aip; + deployment: Aip; + downloadSource?: Aip; + eassi: Eassi; + ebsi: Aip; + encodingScheme: string; + hardwareSupport: Aip; + holderCapability: Aip; + identifierHolder: string; + identifierIssuer: string; + issuerCapability: Aip; + keyHistoryHolder: Aip; + keyHistoryIssuer: Aip; + keyRotationHolder: Aip; + keyRotationIssuer: Aip; + logo: string; + mdoc: Mdoc; + name: string; + observability: Aip; + offlineFriendly: Aip; + openSource: string; + organisationalWallet: OrganisationalWallet; + peer2PeerProtocols: string; + portability: Aip; + predicates: Aip; + quantumSafe: Aip; + revocationAlgorithm: string; + scope: Scope; + selectiveDisclosure: Aip; + signatureAlgorithm: string; + support: Support; + urlAppStore: string; + urlGooglePlayStore: string; + urlWebApp: string; + urlWebsite: string; + verifierCapability: Aip; + verifierUnlinkability: Aip; +} + +export enum Aip { + DependingOn = 'Depending on ...', + Empty = '-', + No = 'No', + Yes = 'Yes', + YesImplemntationAccordingToARF = 'Yes, implemntation according to ARF', + YesNFCHWW = 'Yes, NFC HWW', +} + +export enum Eassi { + No = 'No', + Soon = 'Soon', + Yes = 'Yes', +} + +export enum Mdoc { + Empty = '-', + Planned = 'Planned', +} + +export enum OrganisationalWallet { + Empty = '-', + YesButBrandedAsEnterpriseWalletPlatformByIGrantIo = 'Yes, but branded as Enterprise Wallet Platform by iGrant.io', +} + +export enum Scope { + Empty = '-', + TravelHospitalityAccessControl = 'Travel, Hospitality, Access Control', +} + +export enum Support { + Empty = '-', + SupportIgrantIo = 'support@igrant.io', +} diff --git a/viewer/src/assets/.gitkeep b/viewer/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/viewer/src/assets/default-image.png b/viewer/src/assets/default-image.png new file mode 100644 index 0000000000000000000000000000000000000000..e0d72cbab74862866abc42ac6318b6c5a52ebafa GIT binary patch literal 2568 zcmeAS@N?(olHy`uVBq!ia0y~y-~ci?7#M*h!>l{+<^m~}bVpxD28NCO++a3F{I+w+Y5$3D|wg{eowzvFUlt9F~6IEk%@&v zK*6D5lrb6zqbXrD7mVhD(OfW^3r2InaLxq}q&)wXca{j0lmMGcswJ)wB`Jv|saDBF zsX&Us$iT>0*T6#8$RNbP+{(n%%EV0Dz`)ADKqcYuIus4L`6-!cmAEy8+ExnzH86O( L`njxgN@xNAYHLGc literal 0 HcmV?d00001 diff --git a/viewer/src/assets/github.svg b/viewer/src/assets/github.svg new file mode 100644 index 0000000..715c08e --- /dev/null +++ b/viewer/src/assets/github.svg @@ -0,0 +1 @@ +github-circle-white-transparent \ No newline at end of file diff --git a/static/Gimly-wallet.png b/viewer/src/assets/logos/Gimly-wallet.png similarity index 100% rename from static/Gimly-wallet.png rename to viewer/src/assets/logos/Gimly-wallet.png diff --git a/static/VIDwallet.png b/viewer/src/assets/logos/VIDwallet.png similarity index 100% rename from static/VIDwallet.png rename to viewer/src/assets/logos/VIDwallet.png diff --git a/static/altme.png b/viewer/src/assets/logos/altme.png similarity index 100% rename from static/altme.png rename to viewer/src/assets/logos/altme.png diff --git a/static/atala-prism.png b/viewer/src/assets/logos/atala-prism.png similarity index 100% rename from static/atala-prism.png rename to viewer/src/assets/logos/atala-prism.png diff --git a/static/certishare-wallet.png b/viewer/src/assets/logos/certishare-wallet.png similarity index 100% rename from static/certishare-wallet.png rename to viewer/src/assets/logos/certishare-wallet.png diff --git a/static/data-wallet.png b/viewer/src/assets/logos/data-wallet.png similarity index 100% rename from static/data-wallet.png rename to viewer/src/assets/logos/data-wallet.png diff --git a/static/datakeeper.png b/viewer/src/assets/logos/datakeeper.png similarity index 100% rename from static/datakeeper.png rename to viewer/src/assets/logos/datakeeper.png diff --git a/static/esatus-wallet.png b/viewer/src/assets/logos/esatus-wallet.png similarity index 100% rename from static/esatus-wallet.png rename to viewer/src/assets/logos/esatus-wallet.png diff --git a/static/gataca.png b/viewer/src/assets/logos/gataca.png similarity index 100% rename from static/gataca.png rename to viewer/src/assets/logos/gataca.png diff --git a/static/helix-id.png b/viewer/src/assets/logos/helix-id.png similarity index 100% rename from static/helix-id.png rename to viewer/src/assets/logos/helix-id.png diff --git a/static/identry.png b/viewer/src/assets/logos/identry.png similarity index 100% rename from static/identry.png rename to viewer/src/assets/logos/identry.png diff --git a/static/lissi-wallet.png b/viewer/src/assets/logos/lissi-wallet.png similarity index 100% rename from static/lissi-wallet.png rename to viewer/src/assets/logos/lissi-wallet.png diff --git a/static/mattr-wallet.png b/viewer/src/assets/logos/mattr-wallet.png similarity index 100% rename from static/mattr-wallet.png rename to viewer/src/assets/logos/mattr-wallet.png diff --git a/static/mykeepin.png b/viewer/src/assets/logos/mykeepin.png similarity index 100% rename from static/mykeepin.png rename to viewer/src/assets/logos/mykeepin.png diff --git a/static/paradym-wallet.png b/viewer/src/assets/logos/paradym-wallet.png similarity index 100% rename from static/paradym-wallet.png rename to viewer/src/assets/logos/paradym-wallet.png diff --git a/static/sphereon-wallet.png b/viewer/src/assets/logos/sphereon-wallet.png similarity index 100% rename from static/sphereon-wallet.png rename to viewer/src/assets/logos/sphereon-wallet.png diff --git a/static/spherity-wallet.png b/viewer/src/assets/logos/spherity-wallet.png similarity index 100% rename from static/spherity-wallet.png rename to viewer/src/assets/logos/spherity-wallet.png diff --git a/static/talao.png b/viewer/src/assets/logos/talao.png similarity index 100% rename from static/talao.png rename to viewer/src/assets/logos/talao.png diff --git a/static/walt-id.png b/viewer/src/assets/logos/walt-id.png similarity index 100% rename from static/walt-id.png rename to viewer/src/assets/logos/walt-id.png diff --git a/static/yivi.png b/viewer/src/assets/logos/yivi.png similarity index 100% rename from static/yivi.png rename to viewer/src/assets/logos/yivi.png diff --git a/static/zada.png b/viewer/src/assets/logos/zada.png similarity index 100% rename from static/zada.png rename to viewer/src/assets/logos/zada.png diff --git a/viewer/src/assets/project-icon.png b/viewer/src/assets/project-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..297cba2bf7267099cb3922dd865cff58b5d9ed06 GIT binary patch literal 6777 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 Nr__JTFzvMr^FKp4S3v*( literal 0 HcmV?d00001 diff --git a/viewer/src/index.html b/viewer/src/index.html new file mode 100644 index 0000000..0d08fc5 --- /dev/null +++ b/viewer/src/index.html @@ -0,0 +1,21 @@ + + + + + Digital Wallet and agent overview + + + + + + + + + + diff --git a/viewer/src/main.ts b/viewer/src/main.ts new file mode 100644 index 0000000..35b00f3 --- /dev/null +++ b/viewer/src/main.ts @@ -0,0 +1,6 @@ +import { bootstrapApplication } from '@angular/platform-browser'; +import { appConfig } from './app/app.config'; +import { AppComponent } from './app/app.component'; + +bootstrapApplication(AppComponent, appConfig) + .catch((err) => console.error(err)); diff --git a/viewer/src/styles.scss b/viewer/src/styles.scss new file mode 100644 index 0000000..ebc8751 --- /dev/null +++ b/viewer/src/styles.scss @@ -0,0 +1,12 @@ +/* You can add global styles to this file, and also import other style files */ + +html, body { height: 100%; } +body { margin: 0; font-family: Roboto, "Helvetica Neue", sans-serif; } + +.spacer { + flex: 1 1 auto; +} + +.full { + width: calc(100%); +} diff --git a/viewer/tsconfig.app.json b/viewer/tsconfig.app.json new file mode 100644 index 0000000..374cc9d --- /dev/null +++ b/viewer/tsconfig.app.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": [ + "src/main.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/viewer/tsconfig.json b/viewer/tsconfig.json new file mode 100644 index 0000000..f37b67f --- /dev/null +++ b/viewer/tsconfig.json @@ -0,0 +1,33 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "outDir": "./dist/out-tsc", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "skipLibCheck": true, + "esModuleInterop": true, + "sourceMap": true, + "declaration": false, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022", + "useDefineForClassFields": false, + "lib": [ + "ES2022", + "dom" + ] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/viewer/tsconfig.spec.json b/viewer/tsconfig.spec.json new file mode 100644 index 0000000..be7e9da --- /dev/null +++ b/viewer/tsconfig.spec.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/wallets/AceID Wallet.json b/wallets/AceID Wallet.json new file mode 100644 index 0000000..b726aeb --- /dev/null +++ b/wallets/AceID Wallet.json @@ -0,0 +1,10 @@ +{ + "blockchainType": "AceBlock blockchain framework", + "blockchainUsed": "Yes", + "company": "AceBlock", + "eassi": "No", + "logo": "logos/aceid-wallet.png", + "name": "AceID Wallet", + "$schema": "../schema.json", + "openSource": false +} \ No newline at end of file diff --git a/wallets/Apple Wallet.json b/wallets/Apple Wallet.json new file mode 100644 index 0000000..2b52f65 --- /dev/null +++ b/wallets/Apple Wallet.json @@ -0,0 +1,8 @@ +{ + "company": "Apple", + "eassi": "No", + "logo": "logos/apple-wallet.png", + "name": "Apple Wallet", + "$schema": "../schema.json", + "openSource": false +} \ No newline at end of file diff --git a/wallets/Atala PRISM.json b/wallets/Atala PRISM.json new file mode 100644 index 0000000..9083919 --- /dev/null +++ b/wallets/Atala PRISM.json @@ -0,0 +1,31 @@ +{ + "blockchainPurpose": "Anchoring public DIDs for issuers and/or verifiers (ie: enabling trust registry)", + "blockchainType": "Cardano", + "blockchainUsed": "Yes", + "company": "IOHK", + "connectionTypes": "Connection-based communication", + "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "JWT-VC, soon:AnonCreds", + "cryptoAgility": "Yes", + "deepLinking": "No", + "eassi": "No", + "encodingScheme": "JSON, JSON-LD", + "hardwareSupport": "Yes", + "identifierHolder": "did:prism", + "identifierIssuer": "did:prism", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/atala-prism.png", + "name": "Atala PRISM", + "openSource": false, + "peer2PeerProtocols": "DIDComm", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Revocation not supported, soon: Revocation List 2021", + "selectiveDisclosure": "No", + "signatureAlgorithm": "ECDSA, soon: CL", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Authenticator.json b/wallets/Authenticator.json new file mode 100644 index 0000000..e0dbd1e --- /dev/null +++ b/wallets/Authenticator.json @@ -0,0 +1,8 @@ +{ + "company": "Microsoft", + "eassi": "No", + "logo": "logos/authenticator.png", + "name": "Authenticator", + "$schema": "../schema.json", + "openSource": false +} \ No newline at end of file diff --git a/wallets/BC Wallet.json b/wallets/BC Wallet.json new file mode 100644 index 0000000..99bcdaa --- /dev/null +++ b/wallets/BC Wallet.json @@ -0,0 +1,8 @@ +{ + "company": "Government of BC", + "eassi": "No", + "logo": "logos/bc-wallet.png", + "name": "BC Wallet", + "$schema": "../schema.json", + "openSource": false +} \ No newline at end of file diff --git a/wallets/Blockcerts Wallet.json b/wallets/Blockcerts Wallet.json new file mode 100644 index 0000000..bec4ce7 --- /dev/null +++ b/wallets/Blockcerts Wallet.json @@ -0,0 +1,10 @@ +{ + "blockchainType": "Bitcoin and Ethereum, with Merkle proof linking credential to blockchain transaction", + "blockchainUsed": "Yes", + "company": "Hyland Credentials (formerly: Learning Machine)", + "eassi": "No", + "logo": "logos/blockcerts-wallet.png", + "name": "Blockcerts Wallet", + "openSource": true, + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Blockpass.json b/wallets/Blockpass.json new file mode 100644 index 0000000..2094bc3 --- /dev/null +++ b/wallets/Blockpass.json @@ -0,0 +1,10 @@ +{ + "blockchainType": "Ethereum or Blockpass", + "blockchainUsed": "Yes", + "company": "Blockpass IDN", + "eassi": "No", + "logo": "logos/blockpass.png", + "name": "Blockpass", + "openSource": false, + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/CertiShare Wallet.json b/wallets/CertiShare Wallet.json new file mode 100644 index 0000000..ec0102b --- /dev/null +++ b/wallets/CertiShare Wallet.json @@ -0,0 +1,31 @@ +{ + "blockchainPurpose": "Schema, CredentialDefinitions, DID, Revocation", + "blockchainType": "Hyperledger Indy", + "blockchainUsed": "Yes", + "company": "The Ego Company", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "AnonCred, JSON-LD", + "cryptoAgility": "No", + "eassi": "No", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "identifierHolder": "did:", + "identifierIssuer": "did:sov", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/certishare-wallet.png", + "name": "CertiShare Wallet", + "observability": "No", + "openSource": false, + "peer2PeerProtocols": "DIDComm, DID Exchange Protocol, openID", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Data Wallet.json b/wallets/Data Wallet.json new file mode 100644 index 0000000..9714865 --- /dev/null +++ b/wallets/Data Wallet.json @@ -0,0 +1,42 @@ +{ + "aip": "Yes", + "blockchainPurpose": "For publishing schema IDs, credential def IDs and public DID", + "blockchainType": "Hyperledger Indy, Ethereum, EBSI blockchain", + "blockchainUsed": "Yes", + "company": "iGrant.io", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange, DEXA", + "credentialFormat": "AnonCreds, JWT-VC, ICAO DTC, x.509", + "cryptoAgility": "No", + "deepLinking": "Yes", + "eassi": "No", + "ebsi": "Yes", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "identifierHolder": "did:ebsi, did:key, link secrets, X.509", + "identifierIssuer": "did:ebsi, did:key, did:sov, X.509", + "keyHistoryHolder": "Yes", + "keyHistoryIssuer": "Yes", + "keyRotationHolder": "Yes", + "keyRotationIssuer": "Yes", + "logo": "logos/data-wallet.png", + "mdoc": "Planned", + "name": "Data Wallet", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": false, + "organisationalWallet": "Yes, but branded as Enterprise Wallet Platform by iGrant.io", + "peer2PeerProtocols": "OIDC4VC, OIDC4VP, SIOPv2, DIDComm, DID Exchange Protocol, Connection protocols in AIP 1.0", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation, EBSI revocation, W3C Status List 2021, SLTD database (travel and identity documents), CRL - certificate revocation list", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL, ES256, ECDSA", + "support": "support@igrant.io", + "urlAppStore": "https://apple.co/2Mz9nJp", + "urlGooglePlayStore": "https://play.google.com/store/apps/details?id=io.igrant.mobileagent", + "urlWebApp": "https://business.igrant.io/", + "urlWebsite": "https://igrant.io/datawallet.html", + "verifierUnlinkability": "Yes", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Datakeeper.json b/wallets/Datakeeper.json new file mode 100644 index 0000000..4ce0650 --- /dev/null +++ b/wallets/Datakeeper.json @@ -0,0 +1,33 @@ +{ + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", + "company": "Rabobank Nederland", + "connectionTypes": "Direct communication", + "credExchangeProtocol": "Datakeeper protocol (Verifiable Presentation)", + "credentialFormat": "LDP-VC", + "cryptoAgility": "Yes", + "deepLinking": "Yes", + "eassi": "Yes", + "encodingScheme": "JSON-LD", + "hardwareSupport": "Yes", + "identifierHolder": "did:eth", + "identifierIssuer": "did:eth", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/datakeeper.png", + "name": "Datakeeper", + "observability": "No", + "offlineFriendly": "No", + "openSource": false, + "peer2PeerProtocols": "Datakeeper protocol", + "predicates": "Depending on ...", + "quantumSafe": "No", + "revocationAlgorithm": "Validity credential, Revocation not supported", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "ECDSA", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Digital ID Wallet.json b/wallets/Digital ID Wallet.json new file mode 100644 index 0000000..8fc53b7 --- /dev/null +++ b/wallets/Digital ID Wallet.json @@ -0,0 +1,8 @@ +{ + "company": "Thales", + "eassi": "No", + "logo": "logos/digital-id-wallet.png", + "name": "Digital ID Wallet", + "$schema": "../schema.json", + "openSource": false +} \ No newline at end of file diff --git a/wallets/Gataca.json b/wallets/Gataca.json new file mode 100644 index 0000000..62fb652 --- /dev/null +++ b/wallets/Gataca.json @@ -0,0 +1,33 @@ +{ + "blockchainPurpose": "To anchor DIDs (legal entities), and to anchor the trust framework", + "blockchainType": "We are agnostic to the infra, so the platform right now supports Ethereum, Fabric and EBSI", + "blockchainUsed": "Yes", + "company": "Gataca Inc.", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "LDP-VC, JTW-VC", + "cryptoAgility": "Yes", + "deepLinking": "Yes", + "eassi": "No", + "encodingScheme": "JSON-LD", + "hardwareSupport": "No", + "identifierHolder": "did:key", + "identifierIssuer": "did:gatc", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/gataca.png", + "name": "Gataca", + "observability": "Yes", + "offlineFriendly": "Yes, implemntation according to ARF", + "openSource": false, + "peer2PeerProtocols": "OIDC, SIOP", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Status List 2017, Status List 2021", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "EdDSA, RSA, secp256k, P-256, CadEs", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/IDEMIA Mobile ID.json b/wallets/IDEMIA Mobile ID.json new file mode 100644 index 0000000..e9aa2a5 --- /dev/null +++ b/wallets/IDEMIA Mobile ID.json @@ -0,0 +1,8 @@ +{ + "company": "IDEMIA Group", + "eassi": "No", + "logo": "logos/idema.png", + "name": "IDEMIA Mobile ID", + "$schema": "../schema.json", + "openSource": false +} \ No newline at end of file diff --git a/wallets/Identry.json b/wallets/Identry.json new file mode 100644 index 0000000..15ea23f --- /dev/null +++ b/wallets/Identry.json @@ -0,0 +1,30 @@ +{ + "blockchainPurpose": "Authorization, Credentials Schemas, Revocation registry", + "blockchainType": "HyperLedger Indy", + "blockchainUsed": "Yes", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "Present Proof Protocol", + "credentialFormat": "AnonCred", + "cryptoAgility": "No", + "eassi": "No", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "identifierHolder": "did:sov", + "identifierIssuer": "did:sov", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/identry.png", + "name": "Identry", + "observability": "No", + "openSource": false, + "peer2PeerProtocols": "DIDComm", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL", + "verifierUnlinkability": "Yes", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/KayTrust Wallet.json b/wallets/KayTrust Wallet.json new file mode 100644 index 0000000..0ef1b68 --- /dev/null +++ b/wallets/KayTrust Wallet.json @@ -0,0 +1,10 @@ +{ + "blockchainType": "Blockchain network based on Ethereum", + "blockchainUsed": "Yes", + "company": "KayTrust", + "eassi": "No", + "logo": "logos/kaytrust-wallet.png", + "name": "KayTrust Wallet", + "openSource": false, + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Lissi Wallet.json b/wallets/Lissi Wallet.json new file mode 100644 index 0000000..f981f15 --- /dev/null +++ b/wallets/Lissi Wallet.json @@ -0,0 +1,32 @@ +{ + "blockchainPurpose": "Decentralized Public Key Infrastructure", + "blockchainType": "Hyperledger Indy", + "blockchainUsed": "Yes", + "company": "main incubator GmbH", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, soon: OpenID4VCI and OpenID4VP", + "credentialFormat": "AnonCred", + "cryptoAgility": "No", + "deepLinking": "Yes", + "eassi": "Soon", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "identifierHolder": "Link secret", + "identifierIssuer": "did:sovrin (did:indy)", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/lissi-wallet.png", + "name": "Lissi Wallet", + "observability": "No", + "openSource": false, + "peer2PeerProtocols": "DIDComm", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL", + "verifierUnlinkability": "Yes", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/MATTR Wallet.json b/wallets/MATTR Wallet.json new file mode 100644 index 0000000..0379d94 --- /dev/null +++ b/wallets/MATTR Wallet.json @@ -0,0 +1,33 @@ +{ + "blockchainPurpose": "Storing public keys", + "blockchainType": "ION - if ION DID menthod used", + "blockchainUsed": "Yes", + "company": "Mattr Limited", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI", + "credentialFormat": "LDP-VC", + "cryptoAgility": "Yes", + "deepLinking": "Yes", + "eassi": "No", + "encodingScheme": "JSON-LD", + "hardwareSupport": "No", + "identifierHolder": "did:key", + "identifierIssuer": "did:web, did:ion, did:key", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/mattr-wallet.png", + "name": "MATTR Wallet", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": false, + "peer2PeerProtocols": "OIDC, DIDComm", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "RevocationList2020", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+, EdDSA", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/MYKEEPiN.json b/wallets/MYKEEPiN.json new file mode 100644 index 0000000..1c53407 --- /dev/null +++ b/wallets/MYKEEPiN.json @@ -0,0 +1,33 @@ +{ + "blockchainPurpose": "Scale up for DID", + "blockchainType": "Metadium", + "blockchainUsed": "Yes", + "company": "Metadium Technology Inc", + "connectionTypes": "Direct communication", + "credExchangeProtocol": "N/A", + "credentialFormat": "JWT, JWT-VC", + "cryptoAgility": "Yes", + "deepLinking": "Yes", + "eassi": "No", + "encodingScheme": "compact and JSON serialization, JSON, JSON-LD", + "hardwareSupport": "Yes", + "identifierHolder": "Raw public key", + "identifierIssuer": "Raw public key", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/mykeepin.png", + "name": "MYKEEPiN", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": false, + "peer2PeerProtocols": "N/A", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Non-revocation token", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "ECDSA", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Microsoft Entra.json b/wallets/Microsoft Entra.json new file mode 100644 index 0000000..3fae836 --- /dev/null +++ b/wallets/Microsoft Entra.json @@ -0,0 +1,8 @@ +{ + "company": "Microsoft", + "eassi": "No", + "logo": "logos/microsoft-entra.png", + "name": "Microsoft Entra", + "openSource": false, + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Paradym Wallet.json b/wallets/Paradym Wallet.json new file mode 100644 index 0000000..24d6917 --- /dev/null +++ b/wallets/Paradym Wallet.json @@ -0,0 +1,33 @@ +{ + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", + "company": "Animo Solutions", + "connectionTypes": "Direct communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "JWT-VC", + "cryptoAgility": "Yes", + "deepLinking": "Yes", + "eassi": "No", + "encodingScheme": "compact and JSON serialization, JSON", + "hardwareSupport": "No", + "identifierHolder": "did:jwk, did:key", + "identifierIssuer": "did:jwk, did:key, did:web", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/paradym-wallet.png", + "name": "Paradym Wallet", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": true, + "peer2PeerProtocols": "OID4VC", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "No", + "selectiveDisclosure": "No", + "signatureAlgorithm": "EdDSA, ES256", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Sphereon Wallet.json b/wallets/Sphereon Wallet.json new file mode 100644 index 0000000..ea0df81 --- /dev/null +++ b/wallets/Sphereon Wallet.json @@ -0,0 +1,33 @@ +{ + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", + "company": "Sphereon", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "JWT, JWT-VC, LDP-VC", + "cryptoAgility": "Yes", + "deepLinking": "Yes", + "eassi": "No", + "encodingScheme": "compact and JSON serialization, JSON, JSON-LD, JSON-LD", + "hardwareSupport": "Yes", + "identifierHolder": "X.509 certificate, did:jwk, did:key, did:ion, did:cheqd, did:web, did:lto, did:factom, did:ethr, did:pkh", + "identifierIssuer": "X.509 certificate, did:jwk, did:key, did:ion, did:cheqd, did:web, did:lto, did:factom, did:ethr, did:pkh", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/sphereon-wallet.png", + "name": "Sphereon Wallet", + "observability": "Yes", + "offlineFriendly": "No", + "openSource": true, + "peer2PeerProtocols": "OIDC, SIOP, DIDComm", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Status List 2021, Validity credential", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+, ECDSA, EdDSA, RSA", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Spherity Wallet.json b/wallets/Spherity Wallet.json new file mode 100644 index 0000000..566dfe6 --- /dev/null +++ b/wallets/Spherity Wallet.json @@ -0,0 +1,30 @@ +{ + "blockchainPurpose": "Anchor DID & DID Documents, Trust Registry, Revocation Registry", + "blockchainType": "Ethereum", + "blockchainUsed": "Yes", + "company": "Spherity GmbH", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "AnonCred, JSON-LD", + "cryptoAgility": "No", + "eassi": "No", + "hardwareSupport": "No", + "identifierHolder": "did:ethr", + "identifierIssuer": "did:ethr", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/spherity-wallet.png", + "name": "Spherity Wallet", + "observability": "No", + "openSource": false, + "peer2PeerProtocols": "OIDC, SIOP, DIDComm, DID Exchange Protocol", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Indy Revocation, Revocation 5539, Status List 2021", + "selectiveDisclosure": "No", + "signatureAlgorithm": "CL, BBS+, EdDSA", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Talao.json b/wallets/Talao.json new file mode 100644 index 0000000..a819992 --- /dev/null +++ b/wallets/Talao.json @@ -0,0 +1,31 @@ +{ + "blockchainPurpose": "identity, crypto", + "blockchainType": "Ethereum, ION, EBSI, PolygonID", + "blockchainUsed": "Yes", + "company": "Talao", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "JWT-VC, JSON-LD", + "cryptoAgility": "Yes", + "eassi": "No", + "encodingScheme": "JSON, JSON-LD", + "hardwareSupport": "Yes", + "identifierHolder": "did:ebsi, did:ion, did:web, did:tz, did:key", + "identifierIssuer": "did:ebsi, did:ion, did:web, did:tz, did:key", + "keyHistoryHolder": "Yes", + "keyHistoryIssuer": "No", + "keyRotationHolder": "Yes", + "keyRotationIssuer": "No", + "logo": "logos/talao.png", + "name": "Talao", + "observability": "Yes", + "openSource": true, + "peer2PeerProtocols": "OIDC, SIOP, DID Exchange Protocol", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Status List 2021", + "selectiveDisclosure": "No", + "signatureAlgorithm": "ECDSA", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Tap ID.json b/wallets/Tap ID.json new file mode 100644 index 0000000..b71b6e8 --- /dev/null +++ b/wallets/Tap ID.json @@ -0,0 +1,23 @@ +{ + "blockchainPurpose": "Anchor DID & DID Documents", + "blockchainType": "Depending on DID method", + "blockchainUsed": "Yes", + "company": "Gimly", + "connectionTypes": "Direct communication, Connection-based communication, Direct NFC-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "JWT, JWT-VC, LDP-VC", + "deepLinking": "Yes", + "eassi": "No", + "identifierHolder": "did:ethr, did:ion, did:web, did:jwk, did:key", + "identifierIssuer": "did:web, did:ion, did:key, did:jwk", + "logo": "logos/tap-id.png", + "name": "Tap ID", + "offlineFriendly": "Yes", + "openSource": false, + "peer2PeerProtocols": "OIDC, SIOP, DIDComm", + "predicates": "Yes", + "revocationAlgorithm": "Status List 2021", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+, ECDSA", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/VIDwallet.json b/wallets/VIDwallet.json new file mode 100644 index 0000000..6a8f326 --- /dev/null +++ b/wallets/VIDwallet.json @@ -0,0 +1,32 @@ +{ + "blockchainPurpose": "Trust Anchor, Trust registry, root of trust", + "blockchainType": "EBSI, Alastria, Ethereum", + "blockchainUsed": "Yes", + "company": "Validated ID", + "connectionTypes": "both", + "credExchangeProtocol": "OIDC4CI, OIDC4VP", + "credentialFormat": "JWT-VC, JSON-LD, JWT", + "cryptoAgility": "Yes", + "deepLinking": "Yes", + "eassi": "No", + "encodingScheme": "JSON, JSON-LD", + "hardwareSupport": "Yes", + "identifierHolder": "did:key, did:jwk, did:ala, did:ebsi, did:eth", + "identifierIssuer": "did:key, did:jwk, did:ala, did:ebsi, did:eth", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/vidwallet.png", + "name": "VIDwallet", + "observability": "Yes", + "openSource": false, + "peer2PeerProtocols": "OIDC, SIOP", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Status List 2021", + "selectiveDisclosure": "No", + "signatureAlgorithm": "ECDSA, EdDSA", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Yivi.json b/wallets/Yivi.json new file mode 100644 index 0000000..0df6455 --- /dev/null +++ b/wallets/Yivi.json @@ -0,0 +1,33 @@ +{ + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", + "company": "Privacy by Design Foundation", + "connectionTypes": "Direct communication, Interpreted as direct wallet to IDP and wallet to RP connections. No communication through centralized components in our infrastructure. IRMA is fully decentralized. ", + "credExchangeProtocol": "IRMA protocol", + "credentialFormat": "Idemix ABC", + "cryptoAgility": "No", + "deepLinking": "Yes", + "eassi": "Yes", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "identifierHolder": "Link secret", + "identifierIssuer": "Issuer identifier inside issuer scheme including issuer public key", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/yivi.png", + "name": "Yivi", + "observability": "No", + "offlineFriendly": "No", + "openSource": true, + "peer2PeerProtocols": "IRMA protocol ", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Own implementation on top of Idemix", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL, Schnorr", + "verifierUnlinkability": "Yes", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/ZADA.json b/wallets/ZADA.json new file mode 100644 index 0000000..594a3ac --- /dev/null +++ b/wallets/ZADA.json @@ -0,0 +1,32 @@ +{ + "blockchainPurpose": "Public DIDs and associated DID documents with verification keys and endpoints, schemas and credential definitions, revocation registries, agent authorisation policies", + "blockchainType": "Sovrin", + "blockchainUsed": "Yes", + "company": "ZADA Solutions", + "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "AnonCred, RSA", + "cryptoAgility": "No", + "deepLinking": "Yes", + "eassi": "No", + "encodingScheme": "JSON", + "hardwareSupport": "Yes", + "identifierHolder": "Raw public key, did:sov", + "identifierIssuer": "Raw public key, did:sov", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/zada.png", + "name": "ZADA", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": true, + "peer2PeerProtocols": "DIDComm", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL, RSA", + "verifierUnlinkability": "Yes", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/esatus Wallet.json b/wallets/esatus Wallet.json new file mode 100644 index 0000000..56d0d71 --- /dev/null +++ b/wallets/esatus Wallet.json @@ -0,0 +1,36 @@ +{ + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", + "company": "esatus AG", + "connectionTypes": "Connection-based communication", + "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "AnonCred", + "cryptoAgility": "No", + "deepLinking": "Yes", + "eassi": "Yes", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "identifierHolder": "Link secret", + "identifierIssuer": "Link secret", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/esatus-wallet.png", + "name": "esatus Wallet", + "observability": "No", + "offlineFriendly": "No", + "openSource": false, + "peer2PeerProtocols": "DIDComm", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL", + "urlAppStore": "https://apps.apple.com/us/app/esatus-wallet/id1496769057?itsct=apps_box&itscg=30200", + "urlGooglePlayStore": "https://play.google.com/store/apps/details?id=com.esatus.wallet&hl=de_DE&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1", + "urlWebsite": "https://esatus.com/index.html%3Fp=7663&lang=en.html", + "verifierUnlinkability": "Yes", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/helix id.json b/wallets/helix id.json new file mode 100644 index 0000000..06215e9 --- /dev/null +++ b/wallets/helix id.json @@ -0,0 +1,33 @@ +{ + "blockchainPurpose": "No personal data", + "blockchainType": "public permissioned Ethereum, IPFS", + "blockchainUsed": "Yes", + "company": "Blockchain Helix AG", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "JWT, JWT-VC", + "cryptoAgility": "Yes", + "deepLinking": "Yes", + "eassi": "No", + "encodingScheme": "compact and JSON serialization, JSON, JSON-LD", + "hardwareSupport": "Yes", + "identifierHolder": "did:key, ENS, did:eth", + "identifierIssuer": "did:key, ENS, did:eth", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/helix-id.png", + "name": "helix id", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": false, + "peer2PeerProtocols": "OIDC, DIDComm, DID Exchange Protocol", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "DID Revocation", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+, ECDSA", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/idento.one.json b/wallets/idento.one.json new file mode 100644 index 0000000..c6956da --- /dev/null +++ b/wallets/idento.one.json @@ -0,0 +1,7 @@ +{ + "eassi": "No", + "logo": "logos/idento-one.png", + "name": "idento.one", + "$schema": "../schema.json", + "openSource": false +} \ No newline at end of file diff --git a/wallets/walt.id.json b/wallets/walt.id.json new file mode 100644 index 0000000..562a1d9 --- /dev/null +++ b/wallets/walt.id.json @@ -0,0 +1,30 @@ +{ + "blockchainPurpose": "EBSI - The aim of EBSI is to develop a secure and scalable blockchain infrastructure that can provide cross-border digital public services to citizens and businesses in Europe.\n\nIOTA - it's purpose is to provide a scalable, feeless, and decentralized transactional settlement and data transfer platform for the Internet of Things (IoT) ecosystem.\n\nVelocity - The purpose of the Velocity Network is to create a decentralized, global credentialing ecosystem that enables individuals to own, control, and securely share their verified career credentials while giving organizations access to a trusted talent marketplace.\n\nChqed - The purpose of the cheqd ecosystem is to provide a decentralized, privacy-preserving digital identity solution that allows individuals to have control over their personal data while enabling secure and verifiable credential exchange between individuals and organizations.", + "blockchainType": "ebsi, iota, cheqd, velocity", + "blockchainUsed": "Yes", + "company": "walt.id", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "JWT, LDP-VC", + "cryptoAgility": "Yes", + "eassi": "No", + "encodingScheme": "compact and JSON serialization", + "hardwareSupport": "Yes", + "identifierHolder": "did:key, did:web, did:ebsi, did:iota, did:jwk, did:cheqd, did:velocity", + "identifierIssuer": "did:key, did:web, did:ebsi, did:iota, did:jwk, did:cheqd, did:velocity", + "keyHistoryHolder": "Yes", + "keyHistoryIssuer": "Yes", + "keyRotationHolder": "Yes", + "keyRotationIssuer": "Yes", + "logo": "logos/walt-id.png", + "name": "walt.id", + "openSource": true, + "peer2PeerProtocols": "OIDC, SIOP", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Revocation not supported", + "selectiveDisclosure": "No", + "signatureAlgorithm": "ECDSA, EdDSA, RSA", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file From 04c7d654d93d517b07b5b2bf7b1270889c16ad21 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:26:12 +0100 Subject: [PATCH 03/76] let the ci also run on the angular branch for test purposes Signed-off-by: Mirko Mollik --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5955bc3..f45f665 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -8,6 +8,7 @@ on: push: branches: - main + - angular # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: From 12d2d13988a5682752663f3d34c6e94de317707e Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:29:17 +0100 Subject: [PATCH 04/76] update ci jobs Signed-off-by: Mirko Mollik --- .github/workflows/count.yml | 3 ++- .github/workflows/main.yml | 14 +++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/count.yml b/.github/workflows/count.yml index 26458be..b539367 100644 --- a/.github/workflows/count.yml +++ b/.github/workflows/count.yml @@ -4,6 +4,7 @@ on: push: branches: - main + - angular permissions: contents: write @@ -14,7 +15,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Count files in wallet folder id: file_count diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f45f665..032d501 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,10 +27,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 18 @@ -45,10 +45,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 18 @@ -66,7 +66,7 @@ jobs: publish: # only run on the main branch - if: github.ref == 'refs/heads/main' + # if: github.ref == 'refs/heads/main' needs: [validate, build] runs-on: ubuntu-latest environment: @@ -74,12 +74,12 @@ jobs: url: ${{ steps.deployment.outputs.page_url }} steps: - name: Download artifact from build job - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: viewer - name: Setup Pages - uses: actions/configure-pages@v3 + uses: actions/configure-pages@v4 - name: Upload artifact uses: actions/upload-pages-artifact@v1 From defde6747f0066b28a6e9bd3405e56f6a8fa4e18 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:32:07 +0100 Subject: [PATCH 05/76] fix ci errors Signed-off-by: Mirko Mollik --- .github/workflows/count.yml | 2 +- .github/workflows/main.yml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/count.yml b/.github/workflows/count.yml index b539367..8860105 100644 --- a/.github/workflows/count.yml +++ b/.github/workflows/count.yml @@ -26,7 +26,7 @@ jobs: - name: Create JSON file run: | mkdir values - echo "{ \"schemaVersion\": 1, \"label\": \"Profiles\", \"message\": \"${{ steps.file_count.outputs.wallet-count }}\", \"color\": \"green\" }" > values/profiles.json + echo "{ \"schemaVersion\": 1, \"label\": \"Wallets\", \"message\": \"${{ steps.file_count.outputs.wallet-count }}\", \"color\": \"green\" }" > values/wallets.json # Deploy to local repo - name: Deploy diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 032d501..537e4ad 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -66,7 +66,6 @@ jobs: publish: # only run on the main branch - # if: github.ref == 'refs/heads/main' needs: [validate, build] runs-on: ubuntu-latest environment: From cfb84f38d59bba31702beef819bc4f8ab7d1d383 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:37:38 +0100 Subject: [PATCH 06/76] set correct version for upload artifact Signed-off-by: Mirko Mollik --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 537e4ad..6b1b65f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -59,7 +59,7 @@ jobs: run: cd viewer && npm run build -- --configuration production - name: upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: viewer path: viewer/dist/browser From ce06edd9f1b838d41da9f4336914e5c8d4147d53 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:41:46 +0100 Subject: [PATCH 07/76] fix dist path Signed-off-by: Mirko Mollik --- README.md | 2 +- viewer/angular.json | 21 +++++---------------- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index b2b6a05..0998a36 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ //TODO: set correct path to repo -![Wallets](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fopenwallet-foundation%2Fcredential-format-comparison-sig%2Fbadge-info%2Fprofiles.json) +![Wallets](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fcre8%2Fdigital-wallet-and-agent-overviews-sig%2Fbadge-info%2Fwallets.json) # Digital Wallet and Agent Overviews Special Interest Group (SIG) diff --git a/viewer/angular.json b/viewer/angular.json index 4d68b65..0c3516d 100644 --- a/viewer/angular.json +++ b/viewer/angular.json @@ -17,18 +17,13 @@ "build": { "builder": "@angular-devkit/build-angular:application", "options": { - "outputPath": "dist/viewer", + "outputPath": "dist", "index": "src/index.html", "browser": "src/main.ts", - "polyfills": [ - "zone.js" - ], + "polyfills": ["zone.js"], "tsConfig": "tsconfig.app.json", "inlineStyleLanguage": "scss", - "assets": [ - "src/favicon.ico", - "src/assets" - ], + "assets": ["src/favicon.ico", "src/assets"], "styles": [ "@angular/material/prebuilt-themes/indigo-pink.css", "src/styles.scss" @@ -86,16 +81,10 @@ "test": { "builder": "@angular-devkit/build-angular:karma", "options": { - "polyfills": [ - "zone.js", - "zone.js/testing" - ], + "polyfills": ["zone.js", "zone.js/testing"], "tsConfig": "tsconfig.spec.json", "inlineStyleLanguage": "scss", - "assets": [ - "src/favicon.ico", - "src/assets" - ], + "assets": ["src/favicon.ico", "src/assets"], "styles": [ "@angular/material/prebuilt-themes/indigo-pink.css", "src/styles.scss" From 24f0af712b779f02c40ae532f50dba346119b9ac Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:42:48 +0100 Subject: [PATCH 08/76] increase build warnings Signed-off-by: Mirko Mollik --- viewer/angular.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/viewer/angular.json b/viewer/angular.json index 0c3516d..61d52b9 100644 --- a/viewer/angular.json +++ b/viewer/angular.json @@ -35,8 +35,8 @@ "budgets": [ { "type": "initial", - "maximumWarning": "500kb", - "maximumError": "1mb" + "maximumWarning": "1mb", + "maximumError": "2mb" }, { "type": "anyComponentStyle", From 9fa08c054a722b688313423338b24b6897b14bbd Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:44:13 +0100 Subject: [PATCH 09/76] set correct basehref Signed-off-by: Mirko Mollik --- viewer/angular.json | 1 + 1 file changed, 1 insertion(+) diff --git a/viewer/angular.json b/viewer/angular.json index 61d52b9..8b705a1 100644 --- a/viewer/angular.json +++ b/viewer/angular.json @@ -32,6 +32,7 @@ }, "configurations": { "production": { + "baseHref": "/digital-wallet-and-agent-overviews-sig/", "budgets": [ { "type": "initial", From 3223897c35ef9989077ab94e290eba8cf8f76b5a Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:44:39 +0100 Subject: [PATCH 10/76] remove angular icon Signed-off-by: Mirko Mollik --- viewer/angular.json | 2 +- viewer/src/favicon.ico | Bin 15086 -> 0 bytes 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 viewer/src/favicon.ico diff --git a/viewer/angular.json b/viewer/angular.json index 8b705a1..5ec2972 100644 --- a/viewer/angular.json +++ b/viewer/angular.json @@ -23,7 +23,7 @@ "polyfills": ["zone.js"], "tsConfig": "tsconfig.app.json", "inlineStyleLanguage": "scss", - "assets": ["src/favicon.ico", "src/assets"], + "assets": ["src/assets"], "styles": [ "@angular/material/prebuilt-themes/indigo-pink.css", "src/styles.scss" diff --git a/viewer/src/favicon.ico b/viewer/src/favicon.ico deleted file mode 100644 index 57614f9c967596fad0a3989bec2b1deff33034f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15086 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 Nr__JTFzvMr^FKp4S3v*( From b9c2604a81fdded85e52200b15cc3885d20ad062 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:46:24 +0100 Subject: [PATCH 11/76] set correct fetch path Signed-off-by: Mirko Mollik --- viewer/src/app/app.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/viewer/src/app/app.component.ts b/viewer/src/app/app.component.ts index a15e021..220ae79 100644 --- a/viewer/src/app/app.component.ts +++ b/viewer/src/app/app.component.ts @@ -50,7 +50,7 @@ export class AppComponent implements OnInit, AfterViewInit { async ngOnInit(): Promise { const wallets = await firstValueFrom( - this.httpClient.get('/assets/wallets.json') + this.httpClient.get('assets/wallets.json') ); this.dataSource.data = wallets; this.displayedColumns = this.columns; From 5f433f4f6a234d1d29a5d156765094ad196e7a49 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:48:39 +0100 Subject: [PATCH 12/76] add some comments Signed-off-by: Mirko Mollik --- viewer/src/app/app.component.ts | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/viewer/src/app/app.component.ts b/viewer/src/app/app.component.ts index 220ae79..e38215a 100644 --- a/viewer/src/app/app.component.ts +++ b/viewer/src/app/app.component.ts @@ -33,21 +33,28 @@ import { FlexLayoutModule } from '@ngbracket/ngx-layout'; templateUrl: './app.component.html', styleUrl: './app.component.scss', }) +/** + * The main component of the application + */ export class AppComponent implements OnInit, AfterViewInit { - updatedAt!: Date; - + //reference to the MatTableDataSource dataSource = new MatTableDataSource(); - + // columns that should be displayed in the table columns: string[] = ['wallet', 'company', 'openSource', 'linkToApp']; + //reference to the paginator to be added to the table @ViewChild(MatPaginator) paginator!: MatPaginator; - + //reference to the sort to be added to the table @ViewChild(MatSort) sort!: MatSort; + //columns to be displayed in the table, not implemeneted yet displayedColumns: string[] = []; constructor(private httpClient: HttpClient) {} + /** + * Fetches the wallets from the json file and sets the dataSource to the wallets + */ async ngOnInit(): Promise { const wallets = await firstValueFrom( this.httpClient.get('assets/wallets.json') @@ -56,6 +63,9 @@ export class AppComponent implements OnInit, AfterViewInit { this.displayedColumns = this.columns; } + /** + * After the view has been initialized, set the sort and paginator to the dataSource + */ ngAfterViewInit(): void { this.dataSource.sort = this.sort; this.dataSource.paginator = this.paginator; From d9f712b90ca0682c579090a2f2d3fd81c84b2b43 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:54:06 +0100 Subject: [PATCH 13/76] add info panel Signed-off-by: Mirko Mollik --- viewer/src/app/app.component.html | 1 + viewer/src/app/app.component.ts | 9 ++++++++- viewer/src/app/info/info.component.html | 11 +++++++++++ viewer/src/app/info/info.component.scss | 0 viewer/src/app/info/info.component.spec.ts | 23 ++++++++++++++++++++++ viewer/src/app/info/info.component.ts | 12 +++++++++++ 6 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 viewer/src/app/info/info.component.html create mode 100644 viewer/src/app/info/info.component.scss create mode 100644 viewer/src/app/info/info.component.spec.ts create mode 100644 viewer/src/app/info/info.component.ts diff --git a/viewer/src/app/app.component.html b/viewer/src/app/app.component.html index d216ae4..c605fcd 100644 --- a/viewer/src/app/app.component.html +++ b/viewer/src/app/app.component.html @@ -1,6 +1,7 @@ Digital Wallet and agent overview
+
Info + +

This is a project to create a digital wallet and agent overviews SIG.

+

+ The goal is to create a set of overviews that can be used to understand the + digital wallet and agent landscape. +

+
+ + diff --git a/viewer/src/app/info/info.component.scss b/viewer/src/app/info/info.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/viewer/src/app/info/info.component.spec.ts b/viewer/src/app/info/info.component.spec.ts new file mode 100644 index 0000000..2064c5e --- /dev/null +++ b/viewer/src/app/info/info.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { InfoComponent } from './info.component'; + +describe('InfoComponent', () => { + let component: InfoComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [InfoComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(InfoComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/viewer/src/app/info/info.component.ts b/viewer/src/app/info/info.component.ts new file mode 100644 index 0000000..ec29f76 --- /dev/null +++ b/viewer/src/app/info/info.component.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatDialogModule } from '@angular/material/dialog'; + +@Component({ + selector: 'app-info', + standalone: true, + imports: [MatDialogModule, MatButtonModule], + templateUrl: './info.component.html', + styleUrl: './info.component.scss', +}) +export class InfoComponent {} From 5fd881198e10b7476a1f83bdd4a1824aac141c99 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 14:38:06 +0100 Subject: [PATCH 14/76] include show page for wallets Signed-off-by: Mirko Mollik --- viewer/angular.json | 5 +- viewer/src/app/app.component.html | 104 +--------- viewer/src/app/app.component.scss | 8 - viewer/src/app/app.component.ts | 68 +------ viewer/src/app/app.routes.ts | 13 +- viewer/src/app/types.ts | 116 ++++------- .../wallets-list/wallets-list.component.html | 188 ++++++++++++++++++ .../wallets-list/wallets-list.component.scss | 3 + .../wallets-list.component.spec.ts | 23 +++ .../wallets-list/wallets-list.component.ts | 80 ++++++++ .../wallets-show/wallets-show.component.html | 93 +++++++++ .../wallets-show/wallets-show.component.scss | 28 +++ .../wallets-show.component.spec.ts | 23 +++ .../wallets-show/wallets-show.component.ts | 55 +++++ viewer/src/app/wallets.service.spec.ts | 16 ++ viewer/src/app/wallets.service.ts | 21 ++ viewer/src/assets/app-store-badge.svg | 82 ++++++++ viewer/src/assets/google-play-badge.svg | 125 ++++++++++++ viewer/src/theme.scss | 24 +++ 19 files changed, 817 insertions(+), 258 deletions(-) create mode 100644 viewer/src/app/wallets-list/wallets-list.component.html create mode 100644 viewer/src/app/wallets-list/wallets-list.component.scss create mode 100644 viewer/src/app/wallets-list/wallets-list.component.spec.ts create mode 100644 viewer/src/app/wallets-list/wallets-list.component.ts create mode 100644 viewer/src/app/wallets-show/wallets-show.component.html create mode 100644 viewer/src/app/wallets-show/wallets-show.component.scss create mode 100644 viewer/src/app/wallets-show/wallets-show.component.spec.ts create mode 100644 viewer/src/app/wallets-show/wallets-show.component.ts create mode 100644 viewer/src/app/wallets.service.spec.ts create mode 100644 viewer/src/app/wallets.service.ts create mode 100644 viewer/src/assets/app-store-badge.svg create mode 100644 viewer/src/assets/google-play-badge.svg create mode 100644 viewer/src/theme.scss diff --git a/viewer/angular.json b/viewer/angular.json index 5ec2972..788cbdf 100644 --- a/viewer/angular.json +++ b/viewer/angular.json @@ -24,10 +24,7 @@ "tsConfig": "tsconfig.app.json", "inlineStyleLanguage": "scss", "assets": ["src/assets"], - "styles": [ - "@angular/material/prebuilt-themes/indigo-pink.css", - "src/styles.scss" - ], + "styles": ["src/theme.scss", "src/styles.scss"], "scripts": [] }, "configurations": { diff --git a/viewer/src/app/app.component.html b/viewer/src/app/app.component.html index c605fcd..d5f7a19 100644 --- a/viewer/src/app/app.component.html +++ b/viewer/src/app/app.component.html @@ -10,106 +10,4 @@ >
- -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - -
- Name - -
- - {{ element.name }} -
-
- Company - - {{ element.company }} - - Open Source - - {{ element.openSource }} - - Link to app - - android - phone_iphone -
-
-
- - + diff --git a/viewer/src/app/app.component.scss b/viewer/src/app/app.component.scss index 302fe19..07abdbd 100644 --- a/viewer/src/app/app.component.scss +++ b/viewer/src/app/app.component.scss @@ -12,11 +12,3 @@ align-items: center; } } - -.router-link-active { - background-color: rgba(0,0,0,.2) -} - -.logo { - height: 40px; -} diff --git a/viewer/src/app/app.component.ts b/viewer/src/app/app.component.ts index 45cf792..3129138 100644 --- a/viewer/src/app/app.component.ts +++ b/viewer/src/app/app.component.ts @@ -1,78 +1,24 @@ -import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core'; +import { Component } from '@angular/core'; import { CommonModule } from '@angular/common'; import { RouterModule, RouterOutlet } from '@angular/router'; import { MatToolbarModule } from '@angular/material/toolbar'; -import { MatTableDataSource, MatTableModule } from '@angular/material/table'; -import { MatButtonModule } from '@angular/material/button'; -import { HttpClient, HttpClientModule } from '@angular/common/http'; -import { firstValueFrom } from 'rxjs'; -import { Wallet } from './types'; -import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator'; -import { MatSort, MatSortModule } from '@angular/material/sort'; -import { MatIconModule } from '@angular/material/icon'; -import { MatTooltipModule } from '@angular/material/tooltip'; -import { FlexLayoutModule } from '@ngbracket/ngx-layout'; -import { MatDialog, MatDialogModule } from '@angular/material/dialog'; +import { HttpClientModule } from '@angular/common/http'; +import { MatDialog } from '@angular/material/dialog'; import { InfoComponent } from './info/info.component'; +import { MatButtonModule } from '@angular/material/button'; @Component({ selector: 'app-root', standalone: true, - imports: [ - RouterModule, - HttpClientModule, - CommonModule, - RouterOutlet, - MatToolbarModule, - MatTableModule, - MatButtonModule, - MatIconModule, - MatPaginatorModule, - MatTooltipModule, - MatSortModule, - FlexLayoutModule, - MatDialogModule, - ], + imports: [RouterModule, CommonModule, MatToolbarModule, MatButtonModule], templateUrl: './app.component.html', styleUrl: './app.component.scss', }) /** * The main component of the application */ -export class AppComponent implements OnInit, AfterViewInit { - //reference to the MatTableDataSource - dataSource = new MatTableDataSource(); - // columns that should be displayed in the table - columns: string[] = ['wallet', 'company', 'openSource', 'linkToApp']; - - //reference to the paginator to be added to the table - @ViewChild(MatPaginator) paginator!: MatPaginator; - //reference to the sort to be added to the table - @ViewChild(MatSort) sort!: MatSort; - - //columns to be displayed in the table, not implemeneted yet - displayedColumns: string[] = []; - - constructor(private httpClient: HttpClient, private dialog: MatDialog) {} - - /** - * Fetches the wallets from the json file and sets the dataSource to the wallets - */ - async ngOnInit(): Promise { - const wallets = await firstValueFrom( - this.httpClient.get('assets/wallets.json') - ); - this.dataSource.data = wallets; - this.displayedColumns = this.columns; - } - - /** - * After the view has been initialized, set the sort and paginator to the dataSource - */ - ngAfterViewInit(): void { - this.dataSource.sort = this.sort; - this.dataSource.paginator = this.paginator; - } +export class AppComponent { + constructor(private dialog: MatDialog) {} showInfo() { this.dialog.open(InfoComponent); diff --git a/viewer/src/app/app.routes.ts b/viewer/src/app/app.routes.ts index dc39edb..dbd1c53 100644 --- a/viewer/src/app/app.routes.ts +++ b/viewer/src/app/app.routes.ts @@ -1,3 +1,14 @@ import { Routes } from '@angular/router'; +import { WalletsListComponent } from './wallets-list/wallets-list.component'; +import { WalletsShowComponent } from './wallets-show/wallets-show.component'; -export const routes: Routes = []; +export const routes: Routes = [ + { + path: '', + component: WalletsListComponent, + }, + { + path: ':id', + component: WalletsShowComponent, + }, +]; diff --git a/viewer/src/app/types.ts b/viewer/src/app/types.ts index 1a297d1..e4ff4f0 100644 --- a/viewer/src/app/types.ts +++ b/viewer/src/app/types.ts @@ -1,85 +1,39 @@ export interface Wallet { - aip: Aip; - api: Aip; - blockchainPurpose: string; - blockchainType: string; - blockchainUsed: Aip; - company: string; - connectionTypes: string; - credExchangeProtocol: string; - credentialFormat: string; - cryptoAgility: Aip; - ddip: Aip; - deepLinking: Aip; - deployment: Aip; - downloadSource?: Aip; - eassi: Eassi; - ebsi: Aip; - encodingScheme: string; - hardwareSupport: Aip; - holderCapability: Aip; - identifierHolder: string; - identifierIssuer: string; - issuerCapability: Aip; - keyHistoryHolder: Aip; - keyHistoryIssuer: Aip; - keyRotationHolder: Aip; - keyRotationIssuer: Aip; - logo: string; - mdoc: Mdoc; + // name of the wallet name: string; - observability: Aip; - offlineFriendly: Aip; - openSource: string; - organisationalWallet: OrganisationalWallet; - peer2PeerProtocols: string; - portability: Aip; - predicates: Aip; - quantumSafe: Aip; - revocationAlgorithm: string; - scope: Scope; - selectiveDisclosure: Aip; - signatureAlgorithm: string; - support: Support; - urlAppStore: string; - urlGooglePlayStore: string; - urlWebApp: string; + // url to the website of the wallet with more information urlWebsite: string; - verifierCapability: Aip; - verifierUnlinkability: Aip; -} - -export enum Aip { - DependingOn = 'Depending on ...', - Empty = '-', - No = 'No', - Yes = 'Yes', - YesImplemntationAccordingToARF = 'Yes, implemntation according to ARF', - YesNFCHWW = 'Yes, NFC HWW', -} - -export enum Eassi { - No = 'No', - Soon = 'Soon', - Yes = 'Yes', -} - -export enum Mdoc { - Empty = '-', - Planned = 'Planned', -} - -export enum OrganisationalWallet { - Empty = '-', - YesButBrandedAsEnterpriseWalletPlatformByIGrantIo = 'Yes, but branded as Enterprise Wallet Platform by iGrant.io', -} - -export enum Scope { - Empty = '-', - TravelHospitalityAccessControl = 'Travel, Hospitality, Access Control', -} - -export enum Support { - Empty = '-', - SupportIgrantIo = 'support@igrant.io', + // url to the logo of the wallet + logo?: string; + // name of the company. In case it's a community project, the name of the community + company: string; + // url to the company, not the url to the product + companyUrl?: string; + //provide a link to a contact formular or insert an email address for support requests + contact?: string; + // is the wallet open source + openSource: boolean; + // if the wallet is open source, provide the url to the source code, like a github link + downloadSource?: string; + // add the license of the wallet. In case you have multiple licences, add them here. + license?: string; + // is the wallet capable of the holder role + holderCapability?: boolean; + // is the wallet capable of the issuer role + issuerCapability?: boolean; + // is the wallet capable of the verifier role + verifierCapability?: boolean; + // it is a cloud or mobile wallet + type?: 'cloud' | 'mobile'; + // am I able to export my data from the wallet/agent and import them into another device/system + portability?: boolean; + // link to the app store from apple + urlAppStore?: string; + // link to the play store from google + urlGooglePlayStore?: string; + // link to the web app in case it's not a mobile wallet + urlWebApp?: string; + //TODO: do we need a link to the windows play store in case you can download it from the windows store? + // which profiles from the credential profile comparison SIG are supported + profiles?: string[]; } diff --git a/viewer/src/app/wallets-list/wallets-list.component.html b/viewer/src/app/wallets-list/wallets-list.component.html new file mode 100644 index 0000000..e7c02e2 --- /dev/null +++ b/viewer/src/app/wallets-list/wallets-list.component.html @@ -0,0 +1,188 @@ +
+
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Name + + + + Company + + {{ element.company }} + {{ element.company }} + + Open Source + + {{ element.openSource }} + + Link to app + + android + phone_iphone + desktop_windows + + License + + {{ element.license }} + + Capability + + Holder + Issuer + Verifier + + Type + + {{ element.type }} + + Portability + + {{ element.portability }} + + Supported profiles + + + {{ profile }} + +
+
+
+ + diff --git a/viewer/src/app/wallets-list/wallets-list.component.scss b/viewer/src/app/wallets-list/wallets-list.component.scss new file mode 100644 index 0000000..ed74c80 --- /dev/null +++ b/viewer/src/app/wallets-list/wallets-list.component.scss @@ -0,0 +1,3 @@ +.logo { + height: 40px; +} diff --git a/viewer/src/app/wallets-list/wallets-list.component.spec.ts b/viewer/src/app/wallets-list/wallets-list.component.spec.ts new file mode 100644 index 0000000..32339f9 --- /dev/null +++ b/viewer/src/app/wallets-list/wallets-list.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { WalletsListComponent } from './wallets-list.component'; + +describe('WalletsListComponent', () => { + let component: WalletsListComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [WalletsListComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(WalletsListComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/viewer/src/app/wallets-list/wallets-list.component.ts b/viewer/src/app/wallets-list/wallets-list.component.ts new file mode 100644 index 0000000..99651e8 --- /dev/null +++ b/viewer/src/app/wallets-list/wallets-list.component.ts @@ -0,0 +1,80 @@ +import { HttpClientModule } from '@angular/common/http'; +import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatDialogModule } from '@angular/material/dialog'; +import { MatIconModule } from '@angular/material/icon'; +import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator'; +import { MatSort, MatSortModule } from '@angular/material/sort'; +import { MatTableDataSource, MatTableModule } from '@angular/material/table'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { FlexLayoutModule } from '@ngbracket/ngx-layout'; +import { Wallet } from '../types'; +import { WalletsService } from '../wallets.service'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { MatChipsModule } from '@angular/material/chips'; + +@Component({ + selector: 'app-wallets-list', + standalone: true, + imports: [ + CommonModule, + RouterModule, + HttpClientModule, + MatTableModule, + MatButtonModule, + MatIconModule, + MatPaginatorModule, + MatTooltipModule, + MatSortModule, + FlexLayoutModule, + MatDialogModule, + MatChipsModule, + ], + providers: [WalletsService], + templateUrl: './wallets-list.component.html', + styleUrl: './wallets-list.component.scss', +}) +export class WalletsListComponent implements OnInit, AfterViewInit { + //reference to the MatTableDataSource + dataSource = new MatTableDataSource(); + // columns that should be displayed in the table + columns: string[] = [ + 'wallet', + 'company', + 'type', + 'openSource', + 'license', + 'capability', + 'portability', + 'linkToApp', + 'profiles', + ]; + + //reference to the paginator to be added to the table + @ViewChild(MatPaginator) paginator!: MatPaginator; + //reference to the sort to be added to the table + @ViewChild(MatSort) sort!: MatSort; + + //columns to be displayed in the table, not implemeneted yet + displayedColumns: string[] = []; + + constructor(private walletsService: WalletsService) {} + + /** + * Fetches the wallets from the json file and sets the dataSource to the wallets + */ + async ngOnInit(): Promise { + const wallets = await this.walletsService.loadWallets(); + this.dataSource.data = wallets; + this.displayedColumns = this.columns; + } + + /** + * After the view has been initialized, set the sort and paginator to the dataSource + */ + ngAfterViewInit(): void { + this.dataSource.sort = this.sort; + this.dataSource.paginator = this.paginator; + } +} diff --git a/viewer/src/app/wallets-show/wallets-show.component.html b/viewer/src/app/wallets-show/wallets-show.component.html new file mode 100644 index 0000000..cf10f64 --- /dev/null +++ b/viewer/src/app/wallets-show/wallets-show.component.html @@ -0,0 +1,93 @@ +
+ Back to overview +
+
+

{{ wallet.name }}

+ +
+ Google Play Store + Google Play Store +
+
+ +
+ +
+ + +
Open Source
+
+ {{ wallet.openSource }} +
+ {{ wallet.openSource }} +
+ +
License
+
{{ wallet.license ?? 'unknown' }}
+
+ +
Type
+
{{ wallet.type }}
+
+ +
Portability
+
{{ wallet.portability ?? 'unknown' }}
+
+
+ + +
Holder capability
+
{{ wallet.holderCapability ?? 'unknown' }}
+
+ +
Issuer capability
+
{{ wallet.issuerCapability ?? 'unknown' }}
+
+ +
Verifier capability
+
{{ wallet.verifierCapability ?? 'unknown' }}
+
+
+
+

Supported Credential profiles (placeholders)

+ + + {{ profile }} + + +
diff --git a/viewer/src/app/wallets-show/wallets-show.component.scss b/viewer/src/app/wallets-show/wallets-show.component.scss new file mode 100644 index 0000000..54ec065 --- /dev/null +++ b/viewer/src/app/wallets-show/wallets-show.component.scss @@ -0,0 +1,28 @@ +.content { + max-width: 600px; + margin: 20px auto 0 auto; +} + +.wallet { + padding: 50px 0; +} + +a { + text-decoration: none; +} + +.company { + font-weight: bold; +} + +a:hover { + text-decoration: underline; +} + +.logo { + max-height: 200px; + max-width: 50%; + border-radius: 20px; + // make a shadow for the box + box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.2); +} diff --git a/viewer/src/app/wallets-show/wallets-show.component.spec.ts b/viewer/src/app/wallets-show/wallets-show.component.spec.ts new file mode 100644 index 0000000..3b2eeca --- /dev/null +++ b/viewer/src/app/wallets-show/wallets-show.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { WalletsShowComponent } from './wallets-show.component'; + +describe('WalletsShowComponent', () => { + let component: WalletsShowComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [WalletsShowComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(WalletsShowComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/viewer/src/app/wallets-show/wallets-show.component.ts b/viewer/src/app/wallets-show/wallets-show.component.ts new file mode 100644 index 0000000..abdda33 --- /dev/null +++ b/viewer/src/app/wallets-show/wallets-show.component.ts @@ -0,0 +1,55 @@ +import { Component, OnInit } from '@angular/core'; +import { WalletsService } from '../wallets.service'; +import { ActivatedRoute, Router, RouterModule } from '@angular/router'; +import { Wallet } from '../types'; +import { CommonModule } from '@angular/common'; +import { HttpClientModule } from '@angular/common/http'; +import { MatSnackBar, MatSnackBarModule } from '@angular/material/snack-bar'; +import { FlexLayoutModule } from '@ngbracket/ngx-layout'; +import { MatIconModule } from '@angular/material/icon'; +import { MatButtonModule } from '@angular/material/button'; +import { MatListModule } from '@angular/material/list'; + +@Component({ + selector: 'app-wallets-show', + standalone: true, + imports: [ + CommonModule, + RouterModule, + MatSnackBarModule, + MatButtonModule, + HttpClientModule, + FlexLayoutModule, + MatIconModule, + MatListModule, + ], + providers: [WalletsService], + templateUrl: './wallets-show.component.html', + styleUrl: './wallets-show.component.scss', +}) +export class WalletsShowComponent implements OnInit { + supportedCredentialProfiles = ['AnonCreds with did:cheqd', 'ISO mDL']; + + wallet?: Wallet; + constructor( + private walletsService: WalletsService, + private route: ActivatedRoute, + private router: Router, + private snachBar: MatSnackBar + ) {} + + async ngOnInit(): Promise { + const id = this.route.snapshot.paramMap.get('id') as string; + this.wallet = await this.walletsService.find(id); + if (!this.wallet) { + this.router.navigate(['/']); + this.snachBar.open(`Wallet ${id} not found`, 'Close'); + } + } + + getSupport(value?: string) { + if (!value) return; + if (value.includes('@')) return `mailto:${value}`; + return value; + } +} diff --git a/viewer/src/app/wallets.service.spec.ts b/viewer/src/app/wallets.service.spec.ts new file mode 100644 index 0000000..6553220 --- /dev/null +++ b/viewer/src/app/wallets.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { WalletsService } from './wallets.service'; + +describe('WalletsService', () => { + let service: WalletsService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(WalletsService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/viewer/src/app/wallets.service.ts b/viewer/src/app/wallets.service.ts new file mode 100644 index 0000000..862ba76 --- /dev/null +++ b/viewer/src/app/wallets.service.ts @@ -0,0 +1,21 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { firstValueFrom } from 'rxjs'; +import { Wallet } from './types'; + +@Injectable({ + providedIn: 'root', +}) +export class WalletsService { + constructor(private httpClient: HttpClient) {} + + loadWallets() { + return firstValueFrom(this.httpClient.get('assets/wallets.json')); + } + + find(name: string) { + return this.loadWallets().then((wallets) => + wallets.find((wallet) => wallet.name === name) + ); + } +} diff --git a/viewer/src/assets/app-store-badge.svg b/viewer/src/assets/app-store-badge.svg new file mode 100644 index 0000000..51b23cc --- /dev/null +++ b/viewer/src/assets/app-store-badge.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/viewer/src/assets/google-play-badge.svg b/viewer/src/assets/google-play-badge.svg new file mode 100644 index 0000000..1b15604 --- /dev/null +++ b/viewer/src/assets/google-play-badge.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/viewer/src/theme.scss b/viewer/src/theme.scss new file mode 100644 index 0000000..a831123 --- /dev/null +++ b/viewer/src/theme.scss @@ -0,0 +1,24 @@ +@use '@angular/material' as mat; + +@include mat.core(); + +$my-primary: mat.define-palette(mat.$indigo-palette, 500); +$my-accent: mat.define-palette(mat.$pink-palette, A200, A100, A400); + +// The "warn" palette is optional and defaults to red if not specified. +$my-warn: mat.define-palette(mat.$red-palette); + +$my-theme: mat.define-light-theme(( + color: ( + primary: $my-primary, + accent: $my-accent, + ), + typography: mat.define-typography-config(), + density: 0, +)); + +@include mat.all-component-themes($my-theme); + +a { + color: mat.get-theme-color($my-theme, primary); +} From becf8454ec0f7f03a6414207b23e6fd75e5ca70c Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 14:42:57 +0100 Subject: [PATCH 15/76] update info Signed-off-by: Mirko Mollik --- viewer/src/app/app.component.html | 2 +- viewer/src/app/info/info.component.html | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/viewer/src/app/app.component.html b/viewer/src/app/app.component.html index d5f7a19..6a37c25 100644 --- a/viewer/src/app/app.component.html +++ b/viewer/src/app/app.component.html @@ -1,5 +1,5 @@ - Digital Wallet and agent overview + Digital Wallet and Agent overview
diff --git a/viewer/src/app/info/info.component.html b/viewer/src/app/info/info.component.html index 62bb035..f602555 100644 --- a/viewer/src/app/info/info.component.html +++ b/viewer/src/app/info/info.component.html @@ -1,10 +1,20 @@

Info

-

This is a project to create a digital wallet and agent overviews SIG.

+

+ This is a project to create a digital wallet and agent overviews SIG by the + OpenWallet Foundation. +

The goal is to create a set of overviews that can be used to understand the digital wallet and agent landscape.

+

+ If you want to contact the authors or join the upcoming meetings click + here. +

Date: Sat, 3 Feb 2024 14:45:04 +0100 Subject: [PATCH 16/76] outcomment migration job Signed-off-by: Mirko Mollik --- viewer/scripts/merge-wallets.mjs | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/viewer/scripts/merge-wallets.mjs b/viewer/scripts/merge-wallets.mjs index b5743d1..c37cbbe 100644 --- a/viewer/scripts/merge-wallets.mjs +++ b/viewer/scripts/merge-wallets.mjs @@ -1,21 +1,21 @@ import { readdirSync, readFileSync, writeFileSync } from 'fs'; // function to parse the flattened_wallets.json and create individual wallet files -const w = JSON.parse(readFileSync('../flattened_wallets.json')); -w.forEach(element => { - element["$schema"] = "../schema.json"; +// const w = JSON.parse(readFileSync('../flattened_wallets.json')); +// w.forEach(element => { +// element["$schema"] = "../schema.json"; - const keys = Object.keys(element); - keys.forEach(key => { - if(element[key] === "") { - delete element[key]; - } - }); +// const keys = Object.keys(element); +// keys.forEach(key => { +// if(element[key] === "") { +// delete element[key]; +// } +// }); - //patch openSourceField to boolean - element.openSource = element.openSource === "Yes"; - writeFileSync(`../wallets/${element.name}.json`, JSON.stringify(element, null, 2)); -}); +// //patch openSourceField to boolean +// element.openSource = element.openSource === "Yes"; +// writeFileSync(`../wallets/${element.name}.json`, JSON.stringify(element, null, 2)); +// }); // function to merge all the individual wallet files into a single file const files = readdirSync('../wallets'); From 1fa3eb12cb5a0e0f53a84f6e38086bfcf173c9cf Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 14:57:47 +0100 Subject: [PATCH 17/76] make contact button optional Signed-off-by: Mirko Mollik --- viewer/src/app/wallets-show/wallets-show.component.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/viewer/src/app/wallets-show/wallets-show.component.html b/viewer/src/app/wallets-show/wallets-show.component.html index cf10f64..7588881 100644 --- a/viewer/src/app/wallets-show/wallets-show.component.html +++ b/viewer/src/app/wallets-show/wallets-show.component.html @@ -5,7 +5,9 @@

{{ wallet.name }}

Date: Thu, 8 Feb 2024 15:57:50 +0100 Subject: [PATCH 18/76] add dummy for credential formats Signed-off-by: Mirko Mollik --- schema.json | 113 ++++++++++++++---- viewer/src/app/types.ts | 4 +- .../wallets-show/wallets-show.component.html | 42 ++++--- .../wallets-show/wallets-show.component.ts | 7 +- viewer/src/app/wallets.service.ts | 13 ++ 5 files changed, 133 insertions(+), 46 deletions(-) diff --git a/schema.json b/schema.json index 11e50a6..5501fb0 100644 --- a/schema.json +++ b/schema.json @@ -1,29 +1,92 @@ { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/Wallet", - "definitions": { - "Wallet": { - "type": "object", - "additionalProperties": true, - "properties": { - "$schema": { - "type": "string" - }, - "name": { - "type": "string", - "description": "The name of the wallet" - }, - "company": { - "type": "string", - "description": "The name of the company that created the wallet" - }, - "openSource": { - "type": "boolean", - "description": "Whether the wallet is open source or not" - } - }, - "required": ["$schema", "name"], - "title": "Wallet" + "title": "Wallet", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "name of the wallet" + }, + "urlWebsite": { + "type": "string", + "description": "url to the website of the wallet with more information", + "format": "uri" + }, + "logo": { + "type": "string", + "description": "url to the logo of the wallet", + "format": "uri" + }, + "company": { + "type": "string", + "description": "name of the company. In case it's a community project, the name of the community" + }, + "companyUrl": { + "type": "string", + "description": "url to the company, not the url to the product", + "format": "uri" + }, + "contact": { + "type": "string", + "description": "provide a link to a contact formular or insert an email address for support requests" + }, + "openSource": { + "type": "boolean", + "description": "is the wallet open source" + }, + "downloadSource": { + "type": "string", + "description": "if the wallet is open source, provide the url to the source code, like a github link", + "format": "uri" + }, + "license": { + "type": "string", + "description": "add the license of the wallet. In case you have multiple licences, add them here." + }, + "holderCapability": { + "type": "boolean", + "description": "is the wallet capable of the holder role" + }, + "issuerCapability": { + "type": "boolean", + "description": "is the wallet capable of the issuer role" + }, + "verifierCapability": { + "type": "boolean", + "description": "is the wallet capable of the verifier role" + }, + "type": { + "type": "string", + "description": "it is a cloud or mobile wallet", + "enum": ["cloud", "mobile"] + }, + "portability": { + "type": "boolean", + "description": "am I able to export my data from the wallet/agent and import them into another device/system" + }, + "urlAppStore": { + "type": "string", + "description": "link to the app store from apple", + "format": "uri" + }, + "urlGooglePlayStore": { + "type": "string", + "description": "link to the play store from google", + "format": "uri" + }, + "urlWebApp": { + "type": "string", + "description": "link to the web app in case it's not a mobile wallet", + "format": "uri" + }, + "profiles": { + "type": "array", + "description": "which profiles from the credential profile comparison SIG are supported", + "items": { + "type": "string" + } } - } + }, + "required": ["name", "urlWebsite", "company", "openSource"], + "additionalProperties": false } diff --git a/viewer/src/app/types.ts b/viewer/src/app/types.ts index e4ff4f0..f96578e 100644 --- a/viewer/src/app/types.ts +++ b/viewer/src/app/types.ts @@ -35,5 +35,7 @@ export interface Wallet { urlWebApp?: string; //TODO: do we need a link to the windows play store in case you can download it from the windows store? // which profiles from the credential profile comparison SIG are supported - profiles?: string[]; + credentialProfiles?: string[]; + // which formats from the credential format comparison SIG are supported + credentialFormats?: string[]; } diff --git a/viewer/src/app/wallets-show/wallets-show.component.html b/viewer/src/app/wallets-show/wallets-show.component.html index 7588881..f12e82a 100644 --- a/viewer/src/app/wallets-show/wallets-show.component.html +++ b/viewer/src/app/wallets-show/wallets-show.component.html @@ -1,5 +1,5 @@
- Back to overview + arrow_back_ios diff --git a/viewer/src/app/wallets-show/wallets-show.component.ts b/viewer/src/app/wallets-show/wallets-show.component.ts index abdda33..eece575 100644 --- a/viewer/src/app/wallets-show/wallets-show.component.ts +++ b/viewer/src/app/wallets-show/wallets-show.component.ts @@ -28,11 +28,14 @@ import { MatListModule } from '@angular/material/list'; styleUrl: './wallets-show.component.scss', }) export class WalletsShowComponent implements OnInit { - supportedCredentialProfiles = ['AnonCreds with did:cheqd', 'ISO mDL']; + //dummy entries + supportedCredentialProfiles = ['HAIP', 'ISO mDL']; + + supportedCredentialFormats = ['MDOC']; wallet?: Wallet; constructor( - private walletsService: WalletsService, + public walletsService: WalletsService, private route: ActivatedRoute, private router: Router, private snachBar: MatSnackBar diff --git a/viewer/src/app/wallets.service.ts b/viewer/src/app/wallets.service.ts index 862ba76..c44553f 100644 --- a/viewer/src/app/wallets.service.ts +++ b/viewer/src/app/wallets.service.ts @@ -3,6 +3,8 @@ import { Injectable } from '@angular/core'; import { firstValueFrom } from 'rxjs'; import { Wallet } from './types'; +export type ResourceType = 'profile' | 'format'; + @Injectable({ providedIn: 'root', }) @@ -18,4 +20,15 @@ export class WalletsService { wallets.find((wallet) => wallet.name === name) ); } + + getLink(resourceType: ResourceType, key: string) { + const url = + 'https://openwallet-foundation.github.io/credential-format-comparison-sig/#'; + switch (resourceType) { + case 'profile': + return `${url}/profiles/${key}`; + case 'format': + return `${url}/resources/Credential%20Format/${key}`; + } + } } From e9ae089767f3d257a541f6de650ce287704724ff Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Mon, 12 Feb 2024 13:41:50 +0100 Subject: [PATCH 19/76] add all entries for sig linking Signed-off-by: Mirko Mollik --- flattened_wallets.json | 1600 ----------------- schema.json | 77 +- viewer/package-lock.json | 60 + viewer/package.json | 8 +- viewer/scripts/merge-wallets.mjs | 17 - viewer/scripts/validate.mjs | 9 +- viewer/src/app/types.ts | 12 + .../wallets-list/wallets-list.component.html | 31 +- .../wallets-list/wallets-list.component.scss | 4 + .../wallets-list/wallets-list.component.ts | 7 +- .../wallets-show/wallets-show.component.html | 32 +- viewer/src/app/wallets.service.ts | 68 +- viewer/src/assets/logos/open-wallet.png | Bin 0 -> 6777 bytes wallets/example.json | 20 + 14 files changed, 281 insertions(+), 1664 deletions(-) delete mode 100644 flattened_wallets.json create mode 100644 viewer/src/assets/logos/open-wallet.png create mode 100644 wallets/example.json diff --git a/flattened_wallets.json b/flattened_wallets.json deleted file mode 100644 index b424c6f..0000000 --- a/flattened_wallets.json +++ /dev/null @@ -1,1600 +0,0 @@ -[ - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "AceBlock blockchain framework", - "blockchainUsed": "Yes", - "company": "AceBlock", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/aceid-wallet.png", - "mdoc": "", - "name": "AceID Wallet", - "observability": "", - "offlineFriendly": "", - "openSource": "", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "", - "blockchainUsed": "", - "company": "Apple", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/apple-wallet.png", - "mdoc": "", - "name": "Apple Wallet", - "observability": "", - "offlineFriendly": "", - "openSource": "", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Anchoring public DIDs for issuers and/or verifiers (ie: enabling trust registry)", - "blockchainType": "Cardano", - "blockchainUsed": "Yes", - "company": "IOHK", - "connectionTypes": "Connection-based communication", - "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "JWT-VC, soon:AnonCreds", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "No", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "JSON, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "", - "identifierHolder": "did:prism", - "identifierIssuer": "did:prism", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/atala-prism.png", - "mdoc": "", - "name": "Atala PRISM", - "observability": "", - "offlineFriendly": "", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "DIDComm", - "portability": "", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Revocation not supported, soon: Revocation List 2021", - "scope": "", - "selectiveDisclosure": "No", - "signatureAlgorithm": "ECDSA, soon: CL", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "", - "blockchainUsed": "", - "company": "Microsoft", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/authenticator.png", - "mdoc": "", - "name": "Authenticator", - "observability": "", - "offlineFriendly": "", - "openSource": "", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "", - "blockchainUsed": "", - "company": "Government of BC", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/bc-wallet.png", - "mdoc": "", - "name": "BC Wallet", - "observability": "", - "offlineFriendly": "", - "openSource": "", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "Bitcoin and Ethereum, with Merkle proof linking credential to blockchain transaction", - "blockchainUsed": "Yes", - "company": "Hyland Credentials (formerly: Learning Machine)", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/blockcerts-wallet.png", - "mdoc": "", - "name": "Blockcerts Wallet", - "observability": "", - "offlineFriendly": "", - "openSource": "Yes", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "Ethereum or Blockpass", - "blockchainUsed": "Yes", - "company": "Blockpass IDN", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/blockpass.png", - "mdoc": "", - "name": "Blockpass", - "observability": "", - "offlineFriendly": "", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Schema, CredentialDefinitions, DID, Revocation", - "blockchainType": "Hyperledger Indy", - "blockchainUsed": "Yes", - "company": "The Ego Company", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "AnonCred, JSON-LD", - "cryptoAgility": "No", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "", - "identifierHolder": "did:", - "identifierIssuer": "did:sov", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/certishare-wallet.png", - "mdoc": "", - "name": "CertiShare Wallet", - "observability": "No", - "offlineFriendly": "", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "DIDComm, DID Exchange Protocol, openID", - "portability": "", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "Yes", - "api": "", - "blockchainPurpose": "For publishing schema IDs, credential def IDs and public DID", - "blockchainType": "Hyperledger Indy, Ethereum, EBSI blockchain", - "blockchainUsed": "Yes", - "company": "iGrant.io", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange, DEXA", - "credentialFormat": "AnonCreds, JWT-VC, ICAO DTC, x.509", - "cryptoAgility": "No", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "Yes", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "", - "identifierHolder": "did:ebsi, did:key, link secrets, X.509", - "identifierIssuer": "did:ebsi, did:key, did:sov, X.509", - "issuerCapability": "", - "keyHistoryHolder": "Yes", - "keyHistoryIssuer": "Yes", - "keyRotationHolder": "Yes", - "keyRotationIssuer": "Yes", - "logo": "logos/data-wallet.png", - "mdoc": "Planned", - "name": "Data Wallet", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "No", - "organisationalWallet": "Yes, but branded as Enterprise Wallet Platform by iGrant.io", - "peer2PeerProtocols": "OIDC4VC, OIDC4VP, SIOPv2, DIDComm, DID Exchange Protocol, Connection protocols in AIP 1.0", - "portability": "", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation, EBSI revocation, W3C Status List 2021, SLTD database (travel and identity documents), CRL - certificate revocation list", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL, ES256, ECDSA", - "support": "support@igrant.io", - "urlAppStore": "https://apple.co/2Mz9nJp", - "urlGooglePlayStore": "https://play.google.com/store/apps/details?id=io.igrant.mobileagent", - "urlWebApp": "https://business.igrant.io/", - "urlWebsite": "https://igrant.io/datawallet.html", - "verifierCapability": "", - "verifierUnlinkability": "Yes" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "N/A", - "blockchainType": "N/A", - "blockchainUsed": "No", - "company": "Rabobank Nederland", - "connectionTypes": "Direct communication", - "credExchangeProtocol": "Datakeeper protocol (Verifiable Presentation)", - "credentialFormat": "LDP-VC", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "Yes", - "ebsi": "", - "encodingScheme": "JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "", - "identifierHolder": "did:eth", - "identifierIssuer": "did:eth", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/datakeeper.png", - "mdoc": "", - "name": "Datakeeper", - "observability": "No", - "offlineFriendly": "No", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "Datakeeper protocol", - "portability": "", - "predicates": "Depending on ...", - "quantumSafe": "No", - "revocationAlgorithm": "Validity credential, Revocation not supported", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "ECDSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "", - "blockchainUsed": "", - "company": "Thales", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/digital-id-wallet.png", - "mdoc": "", - "name": "Digital ID Wallet", - "observability": "", - "offlineFriendly": "", - "openSource": "", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "N/A", - "blockchainType": "N/A", - "blockchainUsed": "No", - "company": "esatus AG", - "connectionTypes": "Connection-based communication", - "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "AnonCred", - "cryptoAgility": "No", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "Yes", - "ebsi": "", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "", - "identifierHolder": "Link secret", - "identifierIssuer": "Link secret", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/esatus-wallet.png", - "mdoc": "", - "name": "esatus Wallet", - "observability": "No", - "offlineFriendly": "No", - "openSource": "A new version of the wallet - called SOWL wallet - will be available soon, together with an open source wallet SDK on which SOWL Wallet is based.", - "organisationalWallet": "", - "peer2PeerProtocols": "DIDComm", - "portability": "", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL", - "support": "", - "urlAppStore": "https://apps.apple.com/us/app/esatus-wallet/id1496769057?itsct=apps_box&itscg=30200", - "urlGooglePlayStore": "https://play.google.com/store/apps/details?id=com.esatus.wallet&hl=de_DE&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1", - "urlWebApp": "", - "urlWebsite": "https://esatus.com/index.html%3Fp=7663&lang=en.html", - "verifierCapability": "", - "verifierUnlinkability": "Yes" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "To anchor DIDs (legal entities), and to anchor the trust framework", - "blockchainType": "We are agnostic to the infra, so the platform right now supports Ethereum, Fabric and EBSI", - "blockchainUsed": "Yes", - "company": "Gataca Inc.", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "LDP-VC, JTW-VC", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "JSON-LD", - "hardwareSupport": "No", - "holderCapability": "", - "identifierHolder": "did:key", - "identifierIssuer": "did:gatc", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/gataca.png", - "mdoc": "", - "name": "Gataca", - "observability": "Yes", - "offlineFriendly": "Yes, implemntation according to ARF", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "OIDC, SIOP", - "portability": "", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Status List 2017, Status List 2021", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "EdDSA, RSA, secp256k, P-256, CadEs", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Anchor DID & DID Documents", - "blockchainType": "Depending on DID method", - "blockchainUsed": "Yes", - "company": "Gimly", - "connectionTypes": "Direct communication, Connection-based communication, Direct NFC-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "JWT, JWT-VC, LDP-VC", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "Yes, NFC HWW", - "holderCapability": "", - "identifierHolder": "did:ethr, did:ion, did:web, did:jwk, did:key", - "identifierIssuer": "did:web, did:ion, did:key, did:jwk", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/Gimly-wallet.png", - "mdoc": "", - "name": "Tap ID", - "observability": "", - "offlineFriendly": "Yes", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "OIDC, SIOP, DIDComm", - "portability": "", - "predicates": "No", - "quantumSafe": "", - "revocationAlgorithm": "Status List 2021", - "scope": "Travel, Hospitality, Access Control", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+, ECDSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "https://www.gimly.io", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "No personal data", - "blockchainType": "public permissioned Ethereum, IPFS", - "blockchainUsed": "Yes", - "company": "Blockchain Helix AG", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "JWT, JWT-VC", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "compact and JSON serialization, JSON, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "", - "identifierHolder": "did:key, ENS, did:eth", - "identifierIssuer": "did:key, ENS, did:eth", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/helix-id.png", - "mdoc": "", - "name": "helix id", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "partly open sourced", - "organisationalWallet": "", - "peer2PeerProtocols": "OIDC, DIDComm, DID Exchange Protocol", - "portability": "", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "DID Revocation", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+, ECDSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "", - "blockchainUsed": "", - "company": "IDEMIA Group", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/idema.png", - "mdoc": "", - "name": "IDEMIA Mobile ID", - "observability": "", - "offlineFriendly": "", - "openSource": "", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "", - "blockchainUsed": "", - "company": "", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/idento-one.png", - "mdoc": "", - "name": "idento.one", - "observability": "", - "offlineFriendly": "", - "openSource": "", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Authorization, Credentials Schemas, Revocation registry", - "blockchainType": "HyperLedger Indy", - "blockchainUsed": "Yes", - "company": "", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "Present Proof Protocol", - "credentialFormat": "AnonCred", - "cryptoAgility": "No", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "", - "identifierHolder": "did:sov", - "identifierIssuer": "did:sov", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/identry.png", - "mdoc": "", - "name": "Identry", - "observability": "No", - "offlineFriendly": "", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "DIDComm", - "portability": "", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "Yes" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "Blockchain network based on Ethereum", - "blockchainUsed": "Yes", - "company": "KayTrust", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/kaytrust-wallet.png", - "mdoc": "", - "name": "KayTrust Wallet", - "observability": "", - "offlineFriendly": "", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Decentralized Public Key Infrastructure", - "blockchainType": "Hyperledger Indy", - "blockchainUsed": "Yes", - "company": "main incubator GmbH", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, soon: OpenID4VCI and OpenID4VP", - "credentialFormat": "AnonCred", - "cryptoAgility": "No", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "Soon", - "ebsi": "", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "", - "identifierHolder": "Link secret", - "identifierIssuer": "did:sovrin (did:indy)", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/lissi-wallet.png", - "mdoc": "", - "name": "Lissi Wallet", - "observability": "No", - "offlineFriendly": "", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "DIDComm", - "portability": "", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "Yes" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Storing public keys", - "blockchainType": "ION - if ION DID menthod used", - "blockchainUsed": "Yes", - "company": "Mattr Limited", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI", - "credentialFormat": "LDP-VC", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "JSON-LD", - "hardwareSupport": "No", - "holderCapability": "", - "identifierHolder": "did:key", - "identifierIssuer": "did:web, did:ion, did:key", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/mattr-wallet.png", - "mdoc": "", - "name": "MATTR Wallet", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "OIDC, DIDComm", - "portability": "", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "RevocationList2020", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+, EdDSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "", - "blockchainUsed": "", - "company": "Microsoft", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/microsoft-entra.png", - "mdoc": "", - "name": "Microsoft Entra", - "observability": "", - "offlineFriendly": "", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Scale up for DID", - "blockchainType": "Metadium", - "blockchainUsed": "Yes", - "company": "Metadium Technology Inc", - "connectionTypes": "Direct communication", - "credExchangeProtocol": "N/A", - "credentialFormat": "JWT, JWT-VC", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "compact and JSON serialization, JSON, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "", - "identifierHolder": "Raw public key", - "identifierIssuer": "Raw public key", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/mykeepin.png", - "mdoc": "", - "name": "MYKEEPiN", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "N/A", - "portability": "", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Non-revocation token", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "ECDSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "N/A", - "blockchainType": "N/A", - "blockchainUsed": "No", - "company": "Animo Solutions", - "connectionTypes": "Direct communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "JWT-VC", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "compact and JSON serialization, JSON", - "hardwareSupport": "No", - "holderCapability": "", - "identifierHolder": "did:jwk, did:key", - "identifierIssuer": "did:jwk, did:key, did:web", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/paradym-wallet.png", - "mdoc": "", - "name": "Paradym Wallet", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "Yes", - "organisationalWallet": "", - "peer2PeerProtocols": "OID4VC", - "portability": "", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "No", - "scope": "", - "selectiveDisclosure": "No", - "signatureAlgorithm": "EdDSA, ES256", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "N/A", - "blockchainType": "N/A", - "blockchainUsed": "No", - "company": "Sphereon", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "JWT, JWT-VC, LDP-VC", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "compact and JSON serialization, JSON, JSON-LD, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "", - "identifierHolder": "X.509 certificate, did:jwk, did:key, did:ion, did:cheqd, did:web, did:lto, did:factom, did:ethr, did:pkh", - "identifierIssuer": "X.509 certificate, did:jwk, did:key, did:ion, did:cheqd, did:web, did:lto, did:factom, did:ethr, did:pkh", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/sphereon-wallet.png", - "mdoc": "", - "name": "Sphereon Wallet", - "observability": "Yes", - "offlineFriendly": "No", - "openSource": "Yes", - "organisationalWallet": "", - "peer2PeerProtocols": "OIDC, SIOP, DIDComm", - "portability": "", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Status List 2021, Validity credential", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+, ECDSA, EdDSA, RSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Anchor DID & DID Documents, Trust Registry, Revocation Registry", - "blockchainType": "Ethereum", - "blockchainUsed": "Yes", - "company": "Spherity GmbH", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "AnonCred, JSON-LD", - "cryptoAgility": "No", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "No", - "holderCapability": "", - "identifierHolder": "did:ethr", - "identifierIssuer": "did:ethr", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/spherity-wallet.png", - "mdoc": "", - "name": "Spherity Wallet", - "observability": "No", - "offlineFriendly": "", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "OIDC, SIOP, DIDComm, DID Exchange Protocol", - "portability": "", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Indy Revocation, Revocation 5539, Status List 2021", - "scope": "", - "selectiveDisclosure": "No", - "signatureAlgorithm": "CL, BBS+, EdDSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "identity, crypto", - "blockchainType": "Ethereum, ION, EBSI, PolygonID", - "blockchainUsed": "Yes", - "company": "Talao", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "JWT-VC, JSON-LD", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "JSON, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "", - "identifierHolder": "did:ebsi, did:ion, did:web, did:tz, did:key", - "identifierIssuer": "did:ebsi, did:ion, did:web, did:tz, did:key", - "issuerCapability": "", - "keyHistoryHolder": "Yes", - "keyHistoryIssuer": "No", - "keyRotationHolder": "Yes", - "keyRotationIssuer": "No", - "logo": "logos/talao.png", - "mdoc": "", - "name": "Talao", - "observability": "Yes", - "offlineFriendly": "", - "openSource": "Yes", - "organisationalWallet": "", - "peer2PeerProtocols": "OIDC, SIOP, DID Exchange Protocol", - "portability": "", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Status List 2021", - "scope": "", - "selectiveDisclosure": "No", - "signatureAlgorithm": "ECDSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Anchor DID & DID Documents", - "blockchainType": "Depending on DID method", - "blockchainUsed": "Yes", - "company": "Gimly", - "connectionTypes": "Direct communication, Connection-based communication, Direct NFC-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "JWT, JWT-VC, LDP-VC", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "did:ethr, did:ion, did:web, did:jwk, did:key", - "identifierIssuer": "did:web, did:ion, did:key, did:jwk", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/tap-id.png", - "mdoc": "", - "name": "Tap ID", - "observability": "", - "offlineFriendly": "Yes", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "OIDC, SIOP, DIDComm", - "portability": "", - "predicates": "Yes", - "quantumSafe": "", - "revocationAlgorithm": "Status List 2021", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+, ECDSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Trust Anchor, Trust registry, root of trust", - "blockchainType": "EBSI, Alastria, Ethereum", - "blockchainUsed": "Yes", - "company": "Validated ID", - "connectionTypes": "both", - "credExchangeProtocol": "OIDC4CI, OIDC4VP", - "credentialFormat": "JWT-VC, JSON-LD, JWT", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "JSON, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "", - "identifierHolder": "did:key, did:jwk, did:ala, did:ebsi, did:eth", - "identifierIssuer": "did:key, did:jwk, did:ala, did:ebsi, did:eth", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/vidwallet.png", - "mdoc": "", - "name": "VIDwallet", - "observability": "Yes", - "offlineFriendly": "", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "OIDC, SIOP", - "portability": "", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Status List 2021", - "scope": "", - "selectiveDisclosure": "No", - "signatureAlgorithm": "ECDSA, EdDSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "EBSI - The aim of EBSI is to develop a secure and scalable blockchain infrastructure that can provide cross-border digital public services to citizens and businesses in Europe.\n\nIOTA - it's purpose is to provide a scalable, feeless, and decentralized transactional settlement and data transfer platform for the Internet of Things (IoT) ecosystem.\n\nVelocity - The purpose of the Velocity Network is to create a decentralized, global credentialing ecosystem that enables individuals to own, control, and securely share their verified career credentials while giving organizations access to a trusted talent marketplace.\n\nChqed - The purpose of the cheqd ecosystem is to provide a decentralized, privacy-preserving digital identity solution that allows individuals to have control over their personal data while enabling secure and verifiable credential exchange between individuals and organizations.", - "blockchainType": "ebsi, iota, cheqd, velocity", - "blockchainUsed": "Yes", - "company": "walt.id", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "JWT, LDP-VC", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "compact and JSON serialization", - "hardwareSupport": "Yes", - "holderCapability": "", - "identifierHolder": "did:key, did:web, did:ebsi, did:iota, did:jwk, did:cheqd, did:velocity", - "identifierIssuer": "did:key, did:web, did:ebsi, did:iota, did:jwk, did:cheqd, did:velocity", - "issuerCapability": "", - "keyHistoryHolder": "Yes", - "keyHistoryIssuer": "Yes", - "keyRotationHolder": "Yes", - "keyRotationIssuer": "Yes", - "logo": "logos/walt-id.png", - "mdoc": "", - "name": "walt.id", - "observability": "", - "offlineFriendly": "", - "openSource": "Yes", - "organisationalWallet": "", - "peer2PeerProtocols": "OIDC, SIOP", - "portability": "", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Revocation not supported", - "scope": "", - "selectiveDisclosure": "No", - "signatureAlgorithm": "ECDSA, EdDSA, RSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "N/A", - "blockchainType": "N/A", - "blockchainUsed": "No", - "company": "Privacy by Design Foundation", - "connectionTypes": "Direct communication, Interpreted as direct wallet to IDP and wallet to RP connections. No communication through centralized components in our infrastructure. IRMA is fully decentralized. ", - "credExchangeProtocol": "IRMA protocol", - "credentialFormat": "Idemix ABC", - "cryptoAgility": "No", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "Yes", - "ebsi": "", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "", - "identifierHolder": "Link secret", - "identifierIssuer": "Issuer identifier inside issuer scheme including issuer public key", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/yivi.png", - "mdoc": "", - "name": "Yivi", - "observability": "No", - "offlineFriendly": "No", - "openSource": "Yes", - "organisationalWallet": "", - "peer2PeerProtocols": "IRMA protocol ", - "portability": "", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Own implementation on top of Idemix", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL, Schnorr", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "Yes" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Public DIDs and associated DID documents with verification keys and endpoints, schemas and credential definitions, revocation registries, agent authorisation policies", - "blockchainType": "Sovrin", - "blockchainUsed": "Yes", - "company": "ZADA Solutions", - "connectionTypes": "", - "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "AnonCred, RSA", - "cryptoAgility": "No", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "JSON", - "hardwareSupport": "Yes", - "holderCapability": "", - "identifierHolder": "Raw public key, did:sov", - "identifierIssuer": "Raw public key, did:sov", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/zada.png", - "mdoc": "", - "name": "ZADA", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "Yes", - "organisationalWallet": "", - "peer2PeerProtocols": "DIDComm", - "portability": "", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL, RSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "Yes" - } -] diff --git a/schema.json b/schema.json index 5501fb0..6c7d0a9 100644 --- a/schema.json +++ b/schema.json @@ -1,8 +1,13 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "Wallet", "title": "Wallet", "type": "object", "properties": { + "$schema": { + "type": "string", + "description": "the schema version of the wallet" + }, "name": { "type": "string", "description": "name of the wallet" @@ -14,8 +19,7 @@ }, "logo": { "type": "string", - "description": "url to the logo of the wallet", - "format": "uri" + "description": "url to the logo of the wallet" }, "company": { "type": "string", @@ -24,11 +28,11 @@ "companyUrl": { "type": "string", "description": "url to the company, not the url to the product", - "format": "uri" + "format": "url" }, "contact": { "type": "string", - "description": "provide a link to a contact formular or insert an email address for support requests" + "description": "provide a link to a contact formula or insert an email address for support requests" }, "openSource": { "type": "boolean", @@ -41,7 +45,7 @@ }, "license": { "type": "string", - "description": "add the license of the wallet. In case you have multiple licences, add them here." + "description": "add the license of the wallet. In case you have multiple licenses, add them here." }, "holderCapability": { "type": "boolean", @@ -79,11 +83,68 @@ "description": "link to the web app in case it's not a mobile wallet", "format": "uri" }, - "profiles": { + "credentialProfiles": { + "type": "array", + "description": "list of supported credential profiles, it has to be a valid credential profile from the Credential Profiles Comparison SIG", + "$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/", + "items": { + "$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Credential-Profile" + } + }, + "credentialFormats": { + "type": "array", + "description": "list of supported credential formats, it has to be a valid credential format from the Credential Formats Comparison SIG", + "$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Credential%20Format", + "items": { + "$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Credential-Format" + } + }, + "signingAlgorithms": { + "type": "array", + "description": "list of supported signing algorithms, it has to be a valid credential format from the Credential Formats Comparison SIG", + "$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Signing%20Algorithm", + "items": { + "$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Signing-Algorithm" + } + }, + "statusAlgorithms": { + "type": "array", + "description": "list of supported status algorithms, it has to be a valid credential format from the Credential Formats Comparison SIG", + "$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Status%20Algorithm", + "items": { + "$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Status-Algorithm" + } + }, + "keyManagements": { + "type": "array", + "description": "list of supported key managements, it has to be a valid credential format from the Credential Formats Comparison SIG", + "$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Key%20Management", + "items": { + "$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Key-Management" + } + }, + "issuanceProtocols": { + "type": "array", + "description": "list of supported issuance protocols , it has to be a valid credential format from the Credential Formats Comparison SIG", + "$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Issuance%20Protocol", + "items": { + "$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Issuance-Protocol" + } + }, + "presentationProtocols": { + "type": "array", + "description": "list of supported presentation protocols , it has to be a valid credential format from the Credential Formats Comparison SIG", + "$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Presentation%20Protocol", + "items": { + "$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Presentation-Protocol" + } + }, + "trustManagements": { "type": "array", - "description": "which profiles from the credential profile comparison SIG are supported", + "description": "list of supported trust managements , it has to be a valid credential format from the Credential Formats Comparison SIG", + "$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Trust%20Management", "items": { - "type": "string" + "$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Trust-Management" } } }, diff --git a/viewer/package-lock.json b/viewer/package-lock.json index 4cb9adc..1bfb99d 100644 --- a/viewer/package-lock.json +++ b/viewer/package-lock.json @@ -29,6 +29,8 @@ "@angular/cli": "^17.0.7", "@angular/compiler-cli": "^17.0.0", "@types/jasmine": "~5.1.0", + "ajv-formats": "^2.1.1", + "axios": "^1.6.7", "jasmine-core": "~5.1.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", @@ -4937,6 +4939,12 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, "node_modules/autoprefixer": { "version": "10.4.16", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", @@ -4974,6 +4982,17 @@ "postcss": "^8.1.0" } }, + "node_modules/axios": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.15.4", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/babel-loader": { "version": "9.1.3", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", @@ -5643,6 +5662,18 @@ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -6185,6 +6216,15 @@ "node": ">=8" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -7045,6 +7085,20 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -10400,6 +10454,12 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", diff --git a/viewer/package.json b/viewer/package.json index 65ce6ef..6f5f780 100644 --- a/viewer/package.json +++ b/viewer/package.json @@ -3,12 +3,14 @@ "version": "0.0.0", "scripts": { "ng": "ng", + "prestart": "npm run merge", "start": "ng serve", - "build": "npm run merge && ng build", + "build": "ng build", "watch": "ng build --watch --configuration development", "test": "ng test", "validate": "node scripts/validate.mjs", - "merge": "node scripts/merge-wallets.mjs" + "merge": "node scripts/merge-wallets.mjs", + "update:schemas": "node scripts/update-schemas.mjs" }, "private": true, "dependencies": { @@ -33,6 +35,8 @@ "@angular/cli": "^17.0.7", "@angular/compiler-cli": "^17.0.0", "@types/jasmine": "~5.1.0", + "ajv-formats": "^2.1.1", + "axios": "^1.6.7", "jasmine-core": "~5.1.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", diff --git a/viewer/scripts/merge-wallets.mjs b/viewer/scripts/merge-wallets.mjs index c37cbbe..9fb4b4a 100644 --- a/viewer/scripts/merge-wallets.mjs +++ b/viewer/scripts/merge-wallets.mjs @@ -1,22 +1,5 @@ import { readdirSync, readFileSync, writeFileSync } from 'fs'; -// function to parse the flattened_wallets.json and create individual wallet files -// const w = JSON.parse(readFileSync('../flattened_wallets.json')); -// w.forEach(element => { -// element["$schema"] = "../schema.json"; - -// const keys = Object.keys(element); -// keys.forEach(key => { -// if(element[key] === "") { -// delete element[key]; -// } -// }); - -// //patch openSourceField to boolean -// element.openSource = element.openSource === "Yes"; -// writeFileSync(`../wallets/${element.name}.json`, JSON.stringify(element, null, 2)); -// }); - // function to merge all the individual wallet files into a single file const files = readdirSync('../wallets'); const wallets = files.map(file => JSON.parse(readFileSync(`../wallets/${file}`))); diff --git a/viewer/scripts/validate.mjs b/viewer/scripts/validate.mjs index fb1687f..3b8e36d 100644 --- a/viewer/scripts/validate.mjs +++ b/viewer/scripts/validate.mjs @@ -1,7 +1,12 @@ import Ajv from 'ajv'; +import addFormats from 'ajv-formats'; import {readFileSync, readdirSync} from 'fs'; +import axios from 'axios'; const ajv = new Ajv({allowUnionTypes: true}); +addFormats(ajv); +const profileSIGSchema = await axios.get('https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json').then(res => res.data); +ajv.addSchema(profileSIGSchema, "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json"); const validate = ajv.compile(JSON.parse(readFileSync('../schema.json'))); const files = readdirSync('../wallets'); let success = true; @@ -17,5 +22,7 @@ if(success) { console.info('All wallets are valid'); } else { console.error('Some wallets are invalid'); - process.exit(1); + //TODO: Since all wallet entries are not updated yet, do not finish with an exit code 1 + // process.exit(1); } + diff --git a/viewer/src/app/types.ts b/viewer/src/app/types.ts index f96578e..7d8db91 100644 --- a/viewer/src/app/types.ts +++ b/viewer/src/app/types.ts @@ -38,4 +38,16 @@ export interface Wallet { credentialProfiles?: string[]; // which formats from the credential format comparison SIG are supported credentialFormats?: string[]; + // which issuance protocols from the issuance protocol comparison SIG are supported + issuanceProtocols?: string[]; + // which key management from the key management comparison SIG are supported + keyManagements?: string[]; + // which presentation protocols from the presentation protocol comparison SIG are supported + presentationProtocols?: string[]; + // which signing algorithms from the signing algorithm comparison SIG are supported + signingAlgorithms?: string[]; + // which status management from the status management comparison SIG are supported + statusManagements?: string[]; + // which trust management from the trust management comparison SIG are supported + trustManagements?: string[]; } diff --git a/viewer/src/app/wallets-list/wallets-list.component.html b/viewer/src/app/wallets-list/wallets-list.component.html index e7c02e2..f03aa9e 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.html +++ b/viewer/src/app/wallets-list/wallets-list.component.html @@ -124,9 +124,11 @@ Capability - Holder - Issuer - Verifier +
+ Holder + Issuer + Verifier +
@@ -155,23 +157,26 @@ {{ element.portability }} - + - Supported profiles + {{ resource.name }} - - {{ profile }} - + {{ profile }} diff --git a/viewer/src/app/wallets-list/wallets-list.component.scss b/viewer/src/app/wallets-list/wallets-list.component.scss index ed74c80..869b436 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.scss +++ b/viewer/src/app/wallets-list/wallets-list.component.scss @@ -1,3 +1,7 @@ .logo { height: 40px; } + +.link-list { + margin: 0 5px; +} diff --git a/viewer/src/app/wallets-list/wallets-list.component.ts b/viewer/src/app/wallets-list/wallets-list.component.ts index 99651e8..dcee421 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.ts +++ b/viewer/src/app/wallets-list/wallets-list.component.ts @@ -9,7 +9,7 @@ import { MatTableDataSource, MatTableModule } from '@angular/material/table'; import { MatTooltipModule } from '@angular/material/tooltip'; import { FlexLayoutModule } from '@ngbracket/ngx-layout'; import { Wallet } from '../types'; -import { WalletsService } from '../wallets.service'; +import { ResourceType, WalletsService } from '../wallets.service'; import { CommonModule } from '@angular/common'; import { RouterModule } from '@angular/router'; import { MatChipsModule } from '@angular/material/chips'; @@ -38,6 +38,7 @@ import { MatChipsModule } from '@angular/material/chips'; export class WalletsListComponent implements OnInit, AfterViewInit { //reference to the MatTableDataSource dataSource = new MatTableDataSource(); + // columns that should be displayed in the table columns: string[] = [ 'wallet', @@ -48,7 +49,6 @@ export class WalletsListComponent implements OnInit, AfterViewInit { 'capability', 'portability', 'linkToApp', - 'profiles', ]; //reference to the paginator to be added to the table @@ -59,12 +59,13 @@ export class WalletsListComponent implements OnInit, AfterViewInit { //columns to be displayed in the table, not implemeneted yet displayedColumns: string[] = []; - constructor(private walletsService: WalletsService) {} + constructor(public walletsService: WalletsService) {} /** * Fetches the wallets from the json file and sets the dataSource to the wallets */ async ngOnInit(): Promise { + this.walletsService.resources.forEach((res) => this.columns.push(res.id)); const wallets = await this.walletsService.loadWallets(); this.dataSource.data = wallets; this.displayedColumns = this.columns; diff --git a/viewer/src/app/wallets-show/wallets-show.component.html b/viewer/src/app/wallets-show/wallets-show.component.html index f12e82a..346ef99 100644 --- a/viewer/src/app/wallets-show/wallets-show.component.html +++ b/viewer/src/app/wallets-show/wallets-show.component.html @@ -4,7 +4,9 @@

{{ wallet.name }}

- {{ wallet.company }} + {{ + wallet.company + }} Contact provider @@ -82,20 +84,16 @@

{{ wallet.name }}

-

Supported Credential profiles

- - - {{ - profile - }} - - -

Supported Credential formats

- - - {{ - format - }} - - +
+

{{ resource.name }}

+ + + {{ element }} + + +
diff --git a/viewer/src/app/wallets.service.ts b/viewer/src/app/wallets.service.ts index c44553f..722f846 100644 --- a/viewer/src/app/wallets.service.ts +++ b/viewer/src/app/wallets.service.ts @@ -3,12 +3,72 @@ import { Injectable } from '@angular/core'; import { firstValueFrom } from 'rxjs'; import { Wallet } from './types'; -export type ResourceType = 'profile' | 'format'; +export type ResourceType = + | 'credentialProfiles' + | 'credentialFormats' + | 'issuanceProtocols' + | 'keyManagements' + | 'presentationProtocols' + | 'signingAlgorithms' + | 'statusManagements' + | 'trustManagements'; + +interface Resource { + // unique identifier of the column + id: ResourceType; + // name of the column + name: string; + //tooltip to show to the user + tooltip: string; +} @Injectable({ providedIn: 'root', }) export class WalletsService { + resources: Resource[] = [ + { + id: 'credentialProfiles', + name: 'Supported Profiles', + tooltip: 'Supported profiles', + }, + { + id: 'credentialFormats', + name: 'Supported Formats', + tooltip: 'Supported formats', + }, + { + id: 'issuanceProtocols', + name: 'Supported Issuance Protocols', + tooltip: 'Supported issuance protocols', + }, + { + id: 'keyManagements', + name: 'Supported Key Managements', + tooltip: 'Supported key managements', + }, + { + id: 'presentationProtocols', + name: 'Supported Presentation Protocols', + tooltip: 'Supported presentation protocols', + }, + { + id: 'signingAlgorithms', + name: 'Supported Signing Algorithms', + tooltip: 'Supported signing algorithms', + }, + { + id: 'statusManagements', + name: 'Supported Status Managements', + tooltip: 'Supported status managements', + }, + { + id: 'trustManagements', + name: 'Supported Trust Managements', + tooltip: 'Supported trust managements', + }, + ]; + constructor(private httpClient: HttpClient) {} loadWallets() { @@ -25,10 +85,12 @@ export class WalletsService { const url = 'https://openwallet-foundation.github.io/credential-format-comparison-sig/#'; switch (resourceType) { - case 'profile': + case 'credentialProfiles': return `${url}/profiles/${key}`; - case 'format': + case 'credentialFormats': return `${url}/resources/Credential%20Format/${key}`; + default: + throw new Error(`Unknown resource type: ${resourceType}`); } } } diff --git a/viewer/src/assets/logos/open-wallet.png b/viewer/src/assets/logos/open-wallet.png new file mode 100644 index 0000000000000000000000000000000000000000..297cba2bf7267099cb3922dd865cff58b5d9ed06 GIT binary patch literal 6777 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 Date: Mon, 12 Feb 2024 18:29:51 +0100 Subject: [PATCH 20/76] Add filter functions to list view Signed-off-by: Mirko Mollik --- viewer/src/app/tooltip.ts | 10 +++ .../wallets-list-filter.component.html | 64 +++++++++++++ .../wallets-list-filter.component.scss | 3 + .../wallets-list-filter.component.spec.ts | 23 +++++ .../wallets-list-filter.component.ts | 90 +++++++++++++++++++ .../wallets-list/wallets-list.component.html | 40 ++++----- .../wallets-list/wallets-list.component.scss | 5 ++ .../wallets-list/wallets-list.component.ts | 88 +++++++++++++++++- .../wallets-show/wallets-show.component.html | 8 +- viewer/src/app/wallets.service.ts | 29 +++++- 10 files changed, 332 insertions(+), 28 deletions(-) create mode 100644 viewer/src/app/tooltip.ts create mode 100644 viewer/src/app/wallets-list-filter/wallets-list-filter.component.html create mode 100644 viewer/src/app/wallets-list-filter/wallets-list-filter.component.scss create mode 100644 viewer/src/app/wallets-list-filter/wallets-list-filter.component.spec.ts create mode 100644 viewer/src/app/wallets-list-filter/wallets-list-filter.component.ts diff --git a/viewer/src/app/tooltip.ts b/viewer/src/app/tooltip.ts new file mode 100644 index 0000000..4e9e804 --- /dev/null +++ b/viewer/src/app/tooltip.ts @@ -0,0 +1,10 @@ +export const values = { + Name: 'Name of the wallet', + Company: 'Name of the company', + Type: 'Type of the wallet', + OpenSource: 'Is the wallet open source', + linkToApp: 'Link to the stores to download the app', + license: 'The license of the wallet or agent', + capability: 'Who can use the wallet? Holder, issuer, verifier.', + portability: 'Is it possible to export and import the data from the wallet?', +}; diff --git a/viewer/src/app/wallets-list-filter/wallets-list-filter.component.html b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.html new file mode 100644 index 0000000..ce6047c --- /dev/null +++ b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.html @@ -0,0 +1,64 @@ +@if(form) { +
+

Filter

+ +
+
+ + + Type + + + cloud + edge + + {{ walletsService.getTooltip('Type') }} + + + Open Source + + + true + false + + {{ walletsService.getTooltip('OpenSource') }} + + + Capability + + Holder + Issuer + Verifier + + {{ walletsService.getTooltip('capability') }} + + + Portability + + + true + false + + {{ walletsService.getTooltip('portability') }} + + @for (res of walletsService.resources; track res) { + + {{ res.name }} + + @for (resource of getValues(res.schemaId); track resource) { + {{ resource }} + } + + {{ res.tooltip }} + + } + + + + +
+} diff --git a/viewer/src/app/wallets-list-filter/wallets-list-filter.component.scss b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.scss new file mode 100644 index 0000000..75fbadb --- /dev/null +++ b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.scss @@ -0,0 +1,3 @@ +#filter { + width: 600px; +} diff --git a/viewer/src/app/wallets-list-filter/wallets-list-filter.component.spec.ts b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.spec.ts new file mode 100644 index 0000000..a176cc7 --- /dev/null +++ b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { WalletsListFilterComponent } from './wallets-list-filter.component'; + +describe('WalletsListFilterComponent', () => { + let component: WalletsListFilterComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [WalletsListFilterComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(WalletsListFilterComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/viewer/src/app/wallets-list-filter/wallets-list-filter.component.ts b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.ts new file mode 100644 index 0000000..2dab0ec --- /dev/null +++ b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.ts @@ -0,0 +1,90 @@ +import { Component, Inject, OnInit } from '@angular/core'; +import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; +import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog'; +import { FlexLayoutModule } from '@ngbracket/ngx-layout'; +import { MatInputModule } from '@angular/material/input'; +import { MatSelectModule } from '@angular/material/select'; +import { MatIconModule } from '@angular/material/icon'; +import { HttpClient, HttpClientModule } from '@angular/common/http'; +import { firstValueFrom } from 'rxjs'; +import { WalletsService } from '../wallets.service'; + +export interface WalletFilter { + type?: 'cloud' | 'edge'; + openSource?: 'true' | 'false'; + capability?: ('holder' | 'issuer' | 'verifier')[]; + portability?: 'true' | 'false'; + credentialFormats?: string[]; + credentialProfiles?: string[]; + issuanceProtocols?: string[]; + keyManagements?: string[]; + presentationProtocols?: string[]; + signingAlgorithms?: string[]; + statusManagements?: string[]; + trustManagements?: string[]; +} + +interface Resource { + description: string; + type: string; + enum: string[]; +} + +interface FieldResponse { + $schema: 'http://json-schema.org/draft-06/schema#'; + type: 'object'; + additionalProperties: {}; + definitions: { [key: string]: Resource }; +} + +@Component({ + selector: 'app-wallets-list-filter', + standalone: true, + imports: [ + MatDialogModule, + MatButtonModule, + FlexLayoutModule, + ReactiveFormsModule, + MatInputModule, + MatSelectModule, + MatIconModule, + HttpClientModule, + ], + providers: [WalletsService], + templateUrl: './wallets-list-filter.component.html', + styleUrl: './wallets-list-filter.component.scss', +}) +export class WalletsListFilterComponent implements OnInit { + form!: FormGroup; + values!: FieldResponse; + + constructor( + @Inject(MAT_DIALOG_DATA) private filter: WalletFilter, + private httpClient: HttpClient, + public walletsService: WalletsService + ) {} + async ngOnInit(): Promise { + this.values = await firstValueFrom( + this.httpClient.get( + 'https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json' + ) + ); + this.form = new FormGroup({ + type: new FormControl(), + openSource: new FormControl(), + capability: new FormControl(), + portability: new FormControl(), + }); + this.walletsService.resources.forEach((resource) => + this.form.addControl(resource.id, new FormControl()) + ); + if (this.filter) { + this.form.patchValue(this.filter); + } + } + + getValues(key: string) { + return this.values.definitions[key]?.enum; + } +} diff --git a/viewer/src/app/wallets-list/wallets-list.component.html b/viewer/src/app/wallets-list/wallets-list.component.html index f03aa9e..2d3bb73 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.html +++ b/viewer/src/app/wallets-list/wallets-list.component.html @@ -1,16 +1,14 @@
- + @for (filter of getFilterValues(); track filter) { + {{ filter }} + } +
@@ -20,7 +18,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - matTooltip="Name of the wallet" + [matTooltip]="walletsService.getTooltip('Name')" > Name @@ -41,7 +39,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - matTooltip="Provider" + [matTooltip]="walletsService.getTooltip('Company')" > Company @@ -60,7 +58,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - matTooltip="Is the wallet open source? If so, link to the codebase." + [matTooltip]="walletsService.getTooltip('OpenSource')" > Open Source @@ -73,7 +71,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - matTooltip="Link to the stores to download the app" + [matTooltip]="walletsService.getTooltip('linkToApp')" > Link to app @@ -106,7 +104,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - matTooltip="The license of the wallet or agent" + [matTooltip]="walletsService.getTooltip('license')" > License @@ -119,7 +117,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - matTooltip="Who can use the wallet? Holder, issuer, verifier." + [matTooltip]="walletsService.getTooltip('capability')" > Capability @@ -136,7 +134,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - matTooltip="Type of the wallet or agent" + [matTooltip]="walletsService.getTooltip('Type')" > Type @@ -149,7 +147,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - matTooltip="Portability of the wallet or agent" + [matTooltip]="walletsService.getTooltip('portability')" > Portability @@ -157,10 +155,8 @@ {{ element.portability }} - + @for (resource of walletsService.resources; track resource) { + + @for (profile of element[resource.id]; track profile) { {{ profile }} + } + } diff --git a/viewer/src/app/wallets-list/wallets-list.component.scss b/viewer/src/app/wallets-list/wallets-list.component.scss index 869b436..0b132ca 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.scss +++ b/viewer/src/app/wallets-list/wallets-list.component.scss @@ -5,3 +5,8 @@ .link-list { margin: 0 5px; } + +.container { + height: calc(100vh - 169px); + overflow: auto; +} diff --git a/viewer/src/app/wallets-list/wallets-list.component.ts b/viewer/src/app/wallets-list/wallets-list.component.ts index dcee421..3a8a2a1 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.ts +++ b/viewer/src/app/wallets-list/wallets-list.component.ts @@ -1,7 +1,7 @@ import { HttpClientModule } from '@angular/common/http'; import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; -import { MatDialogModule } from '@angular/material/dialog'; +import { MatDialog, MatDialogModule } from '@angular/material/dialog'; import { MatIconModule } from '@angular/material/icon'; import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator'; import { MatSort, MatSortModule } from '@angular/material/sort'; @@ -9,10 +9,14 @@ import { MatTableDataSource, MatTableModule } from '@angular/material/table'; import { MatTooltipModule } from '@angular/material/tooltip'; import { FlexLayoutModule } from '@ngbracket/ngx-layout'; import { Wallet } from '../types'; -import { ResourceType, WalletsService } from '../wallets.service'; +import { WalletsService } from '../wallets.service'; import { CommonModule } from '@angular/common'; import { RouterModule } from '@angular/router'; import { MatChipsModule } from '@angular/material/chips'; +import { + WalletFilter, + WalletsListFilterComponent, +} from '../wallets-list-filter/wallets-list-filter.component'; @Component({ selector: 'app-wallets-list', @@ -58,13 +62,20 @@ export class WalletsListComponent implements OnInit, AfterViewInit { //columns to be displayed in the table, not implemeneted yet displayedColumns: string[] = []; + filter?: WalletFilter; - constructor(public walletsService: WalletsService) {} + constructor( + public walletsService: WalletsService, + private dialog: MatDialog + ) {} /** * Fetches the wallets from the json file and sets the dataSource to the wallets */ async ngOnInit(): Promise { + if (localStorage.getItem('filter')) { + this.filter = JSON.parse(localStorage.getItem('filter')!); + } this.walletsService.resources.forEach((res) => this.columns.push(res.id)); const wallets = await this.walletsService.loadWallets(); this.dataSource.data = wallets; @@ -78,4 +89,75 @@ export class WalletsListComponent implements OnInit, AfterViewInit { this.dataSource.sort = this.sort; this.dataSource.paginator = this.paginator; } + + /** + * Filters the wallets based on the filter object + */ + openFilter() { + this.dialog + .open( + WalletsListFilterComponent, + { data: this.filter } + ) + .afterClosed() + .subscribe(async (res: WalletFilter) => { + localStorage.setItem('filter', JSON.stringify(res)); + this.filter = res; + let values = await this.walletsService.loadWallets(); + if (res.type) { + values = values.filter((wallet) => wallet.type === res.type); + } + if (res.openSource) { + values = values.filter( + (wallet) => wallet.openSource === (res.openSource === 'true') + ); + } + if (res.capability && res.capability.length > 0) { + values = values.filter( + (wallet) => + res.capability?.includes('holder') && wallet.holderCapability + ); + } + if (res.portability) { + values = values.filter( + (wallet) => wallet.portability === (res.portability === 'true') + ); + } + + const resources = this.walletsService.resources.map((res) => res.id); + resources.forEach((resource) => { + if (res[resource]) { + values = values.filter((wallet) => + res[resource]?.every((res) => wallet[resource]?.includes(res)) + ); + } + }); + this.dataSource.data = values; + }); + } + + /** + * Returns a list of all active filters + * @returns + */ + getFilterValues() { + if (!this.filter) return []; + const filtered: string[] = []; + Object.keys(this.filter).forEach((key) => { + const k = key as keyof WalletFilter; + if (this.filter && this.filter[k]) { + if (typeof this.filter[k] === 'string') { + filtered.push(`${key}: ${this.filter[k] as string}`); + } else if ( + this.filter[k] instanceof Array && + (this.filter[k] as Array).length > 0 + ) { + filtered.push( + `${key}: ${(this.filter[k] as Array).join(', ')}` + ); + } + } + }); + return filtered; + } } diff --git a/viewer/src/app/wallets-show/wallets-show.component.html b/viewer/src/app/wallets-show/wallets-show.component.html index 346ef99..61806a2 100644 --- a/viewer/src/app/wallets-show/wallets-show.component.html +++ b/viewer/src/app/wallets-show/wallets-show.component.html @@ -84,16 +84,20 @@

{{ wallet.name }}

-
+ @for (resource of walletsService.resources; track resource) { +

{{ resource.name }}

- + @for (element of wallet[resource.id]; track element) { + {{ element }} + }
+ }
diff --git a/viewer/src/app/wallets.service.ts b/viewer/src/app/wallets.service.ts index 722f846..fe4e8d8 100644 --- a/viewer/src/app/wallets.service.ts +++ b/viewer/src/app/wallets.service.ts @@ -2,6 +2,7 @@ import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { firstValueFrom } from 'rxjs'; import { Wallet } from './types'; +import { values } from './tooltip'; export type ResourceType = | 'credentialProfiles' @@ -16,6 +17,8 @@ export type ResourceType = interface Resource { // unique identifier of the column id: ResourceType; + // unique identifier of the schema + schemaId: string; // name of the column name: string; //tooltip to show to the user @@ -29,41 +32,49 @@ export class WalletsService { resources: Resource[] = [ { id: 'credentialProfiles', + schemaId: 'Credential-Profile', name: 'Supported Profiles', tooltip: 'Supported profiles', }, { id: 'credentialFormats', + schemaId: 'Credential-Format', name: 'Supported Formats', tooltip: 'Supported formats', }, { id: 'issuanceProtocols', + schemaId: 'Issuance-Protocol', name: 'Supported Issuance Protocols', tooltip: 'Supported issuance protocols', }, { id: 'keyManagements', + schemaId: 'Key-Management', name: 'Supported Key Managements', tooltip: 'Supported key managements', }, { id: 'presentationProtocols', + schemaId: 'Presentation-Protocol', name: 'Supported Presentation Protocols', tooltip: 'Supported presentation protocols', }, { id: 'signingAlgorithms', + schemaId: 'Signing-Algorithm', name: 'Supported Signing Algorithms', tooltip: 'Supported signing algorithms', }, { id: 'statusManagements', + schemaId: 'Status-Management', name: 'Supported Status Managements', tooltip: 'Supported status managements', }, { id: 'trustManagements', + schemaId: 'Trust-Management', name: 'Supported Trust Managements', tooltip: 'Supported trust managements', }, @@ -89,8 +100,22 @@ export class WalletsService { return `${url}/profiles/${key}`; case 'credentialFormats': return `${url}/resources/Credential%20Format/${key}`; - default: - throw new Error(`Unknown resource type: ${resourceType}`); + case 'issuanceProtocols': + return `${url}/resources/Issuance%20Protocol/${key}`; + case 'keyManagements': + return `${url}/resources/Key%20Management/${key}`; + case 'presentationProtocols': + return `${url}/resources/Presentation%20Protocol/${key}`; + case 'signingAlgorithms': + return `${url}/resources/Signing%20Algorithm/${key}`; + case 'statusManagements': + return `${url}/resources/Status%20Management/${key}`; + case 'trustManagements': + return `${url}/resources/Trust%20Management/${key}`; } } + + getTooltip(resourceType: keyof typeof values) { + return values[resourceType]; + } } From ff7ed5e486bfda85be32eba8528bd41e4b98a620 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Mon, 12 Feb 2024 18:32:41 +0100 Subject: [PATCH 21/76] update cli Signed-off-by: Mirko Mollik --- viewer/package-lock.json | 84 ++++++++++++++++++++-------------------- viewer/package.json | 6 +-- 2 files changed, 45 insertions(+), 45 deletions(-) diff --git a/viewer/package-lock.json b/viewer/package-lock.json index 1bfb99d..9b11ae6 100644 --- a/viewer/package-lock.json +++ b/viewer/package-lock.json @@ -25,8 +25,8 @@ "zone.js": "~0.14.2" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.0.7", - "@angular/cli": "^17.0.7", + "@angular-devkit/build-angular": "^17.1.3", + "@angular/cli": "^17.1.3", "@angular/compiler-cli": "^17.0.0", "@types/jasmine": "~5.1.0", "ajv-formats": "^2.1.1", @@ -54,12 +54,12 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1701.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1701.2.tgz", - "integrity": "sha512-g3gn5Ht6r9bCeFeAYF+HboZB8IvgvqqdeOnaWNaXJLI0ymEkpbqRdqrHGuVKHJV7JOMNXC7GPJEctBC6SXxOxA==", + "version": "0.1701.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1701.3.tgz", + "integrity": "sha512-K5rvhslbXNwx04cCLviEJCA27MwoJRMMzALFXySi9BqjZnZUOtZnOBuuCdrTPaRmFaYqGO4Im5GNzpbb/NB8zg==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.1.2", + "@angular-devkit/core": "17.1.3", "rxjs": "7.8.1" }, "engines": { @@ -69,15 +69,15 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.1.2.tgz", - "integrity": "sha512-QIDTP+TjiCKCYRZYb8to4ymvIV1Djcfd5c17VdgMGhRqIQAAK1V4f4A1njdhGYOrgsLajZQAnKvFfk2ZMeI37A==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.1.3.tgz", + "integrity": "sha512-pusFVSWMnrm2GrF3+Fw19OhA2rNw4WkfTMUruhaKAjW5QIvZ3wHYf+pH//1Ud+tuhFBi9BH7UALP2vnJMu1ehw==", "dev": true, "dependencies": { "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1701.2", - "@angular-devkit/build-webpack": "0.1701.2", - "@angular-devkit/core": "17.1.2", + "@angular-devkit/architect": "0.1701.3", + "@angular-devkit/build-webpack": "0.1701.3", + "@angular-devkit/core": "17.1.3", "@babel/core": "7.23.7", "@babel/generator": "7.23.6", "@babel/helper-annotate-as-pure": "7.22.5", @@ -88,7 +88,7 @@ "@babel/preset-env": "7.23.7", "@babel/runtime": "7.23.7", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "17.1.2", + "@ngtools/webpack": "17.1.3", "@vitejs/plugin-basic-ssl": "1.0.2", "ansi-colors": "4.1.3", "autoprefixer": "10.4.16", @@ -199,12 +199,12 @@ } }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1701.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1701.2.tgz", - "integrity": "sha512-LqfSO5iTbiYByDadUET/8uIun8vSHMEdtoxiil/kdZ5T0NG0p7K8QqUMnWgg6suwO6kFfYJkMiS8Dq3Y/ONUNQ==", + "version": "0.1701.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1701.3.tgz", + "integrity": "sha512-fpZtJf6yvXM7mX1T83caeYpa0e3zPv7sgKmx0ZIJKGL8+DETgNcCCeCTgui7HMBcHGCD8yj72DZ8xMMBWwVBIA==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1701.2", + "@angular-devkit/architect": "0.1701.3", "rxjs": "7.8.1" }, "engines": { @@ -218,9 +218,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.1.2.tgz", - "integrity": "sha512-ku+/W/HMCBacSWFppenr9y6Lx8mDuTuQvn1IkTyBLiJOpWnzgVbx9kHDeaDchGa1PwLlJUBBrv27t3qgJOIDPw==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.1.3.tgz", + "integrity": "sha512-iuVK4hyW3YhusxIi8zGBvvVA9pWtDT3H6LQbWdVk9D3jXCZBIrEMklvAiJErqficKnUurf6gtFOeA8Fop6GotA==", "dev": true, "dependencies": { "ajv": "8.12.0", @@ -245,12 +245,12 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.1.2.tgz", - "integrity": "sha512-8S9RuM8olFN/gwN+mjbuF1CwHX61f0i59EGXz9tXLnKRUTjsRR+8vVMTAmX0dvVAT5fJTG/T69X+HX7FeumdqA==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.1.3.tgz", + "integrity": "sha512-zKoWG1hDfvi1vR9Hqoca9hWo9vDg8evmQvGcBW5jXR5ndZi5Oit/uDcGdA8WUKvBd1EG7WMqp0FgcDR9EA9WCw==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.1.2", + "@angular-devkit/core": "17.1.3", "jsonc-parser": "3.2.0", "magic-string": "0.30.5", "ora": "5.4.1", @@ -293,15 +293,15 @@ } }, "node_modules/@angular/cli": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.1.2.tgz", - "integrity": "sha512-U1W6XZNrfeRkXW2fO3AU25rRttqZahVkhzcK3lAtJ8+lSrStCOF7x1gz6tmFZFte1fNHQrXqD0yIDkd8H2/cvw==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.1.3.tgz", + "integrity": "sha512-ysPWDdqo2cwfeskKVAg8p4C8xuezWcIWyW/ACSjWw6yp4OZvyVd6cGZrc0POVZzAPtTOYJSgWOpF/DCHQFluSg==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1701.2", - "@angular-devkit/core": "17.1.2", - "@angular-devkit/schematics": "17.1.2", - "@schematics/angular": "17.1.2", + "@angular-devkit/architect": "0.1701.3", + "@angular-devkit/core": "17.1.3", + "@angular-devkit/schematics": "17.1.3", + "@schematics/angular": "17.1.3", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "4.1.1", @@ -3684,9 +3684,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.1.2.tgz", - "integrity": "sha512-MdNVSIp0x8AK26L+CxMTXH4weq2sNIp4C09RSdk7y6UkfBxMA3O0jTto9tW3ehkBaaGZ4dSiWkXA8L/ydMiQmA==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.1.3.tgz", + "integrity": "sha512-mszRSb7aMNKHnkh3Jrfo83KVOguX/cUamJJcGIYe9o7tnLGRIoMp4vP0fx6Og4J0/CGDRhSDG4IiJ29aOU7K8A==", "dev": true, "engines": { "node": "^18.13.0 || >=20.9.0", @@ -4168,13 +4168,13 @@ ] }, "node_modules/@schematics/angular": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.1.2.tgz", - "integrity": "sha512-1GlH0POaN7hVDF1sAm90E5SvAqnKK+PbD1oKSpug9l+1AUQ3vOamyGhEAaO+IxUqvNdgqZexxd5o9MyySTT2Zw==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.1.3.tgz", + "integrity": "sha512-hmeasOvzmniy6urtzUKhEqGO67iPuLX/dVtkF4nWp2NTtcEKlvcJobNDMc+CTlX4+ZMPVOvmhDMQqrlfekZ+NQ==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.1.2", - "@angular-devkit/schematics": "17.1.2", + "@angular-devkit/core": "17.1.3", + "@angular-devkit/schematics": "17.1.3", "jsonc-parser": "3.2.0" }, "engines": { @@ -4399,9 +4399,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.42", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.42.tgz", - "integrity": "sha512-ckM3jm2bf/MfB3+spLPWYPUH573plBFwpOhqQ2WottxYV85j1HQFlxmnTq57X1yHY9awZPig06hL/cLMgNWHIQ==", + "version": "4.17.43", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", + "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", "dev": true, "dependencies": { "@types/node": "*", diff --git a/viewer/package.json b/viewer/package.json index 6f5f780..5de36dc 100644 --- a/viewer/package.json +++ b/viewer/package.json @@ -31,8 +31,8 @@ "zone.js": "~0.14.2" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.0.7", - "@angular/cli": "^17.0.7", + "@angular-devkit/build-angular": "^17.1.3", + "@angular/cli": "^17.1.3", "@angular/compiler-cli": "^17.0.0", "@types/jasmine": "~5.1.0", "ajv-formats": "^2.1.1", @@ -45,4 +45,4 @@ "karma-jasmine-html-reporter": "~2.1.0", "typescript": "~5.2.2" } -} +} \ No newline at end of file From 9652fd664ba0742f9933425ca2b0b38ad9c038a3 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Mon, 12 Feb 2024 18:34:41 +0100 Subject: [PATCH 22/76] fix: update dependencies Signed-off-by: Mirko Mollik --- viewer/package-lock.json | 433 +++++++++++++++++++++------------------ viewer/package.json | 18 +- 2 files changed, 245 insertions(+), 206 deletions(-) diff --git a/viewer/package-lock.json b/viewer/package-lock.json index 9b11ae6..aefece2 100644 --- a/viewer/package-lock.json +++ b/viewer/package-lock.json @@ -8,16 +8,16 @@ "name": "viewer", "version": "0.0.0", "dependencies": { - "@angular/animations": "^17.0.0", + "@angular/animations": "^17.1.3", "@angular/cdk": "^17.1.2", - "@angular/common": "^17.0.0", - "@angular/compiler": "^17.0.0", - "@angular/core": "^17.0.0", - "@angular/forms": "^17.0.0", + "@angular/common": "^17.1.3", + "@angular/compiler": "^17.1.3", + "@angular/core": "^17.1.3", + "@angular/forms": "^17.1.3", "@angular/material": "^17.1.2", - "@angular/platform-browser": "^17.0.0", - "@angular/platform-browser-dynamic": "^17.0.0", - "@angular/router": "^17.0.0", + "@angular/platform-browser": "^17.1.3", + "@angular/platform-browser-dynamic": "^17.1.3", + "@angular/router": "^17.1.3", "@ngbracket/ngx-layout": "^17.0.1", "ajv": "^8.12.0", "rxjs": "~7.8.0", @@ -27,7 +27,7 @@ "devDependencies": { "@angular-devkit/build-angular": "^17.1.3", "@angular/cli": "^17.1.3", - "@angular/compiler-cli": "^17.0.0", + "@angular/compiler-cli": "^17.1.3", "@types/jasmine": "~5.1.0", "ajv-formats": "^2.1.1", "axios": "^1.6.7", @@ -263,9 +263,9 @@ } }, "node_modules/@angular/animations": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.1.2.tgz", - "integrity": "sha512-ZsHa/zoWBOZdispjcNgXCoF9MAtc6Zyzc/QFUjtOFI9vigOI8tWP6GY1Wfeg4cyL+R3uDGYBgMrdr8l84VfuKg==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.1.3.tgz", + "integrity": "sha512-AS9CHOjjKqkuAzlKEMJfAkZfkIdSoagB3D8HwvH+ZHo6GVJc9KbtLQn/okNijFK+Fg7QK/hYbQ3lJhjgk0GQDA==", "dependencies": { "tslib": "^2.3.0" }, @@ -273,7 +273,7 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.1.2" + "@angular/core": "17.1.3" } }, "node_modules/@angular/cdk": { @@ -327,9 +327,9 @@ } }, "node_modules/@angular/common": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.1.2.tgz", - "integrity": "sha512-y/wD+zuPaPgK3dB80Q63qBtuu5TuryKuUgjWrOmrguBWV9oiJRhKQrcp1gVw9vVrowmbDBKGtPMS622Q4oxOWQ==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.1.3.tgz", + "integrity": "sha512-AzLzoNSeRSNGBQk0K+iG0XdYG36SDeJqYqE8rfoiWuv1NDFLL05UJM2/fQfaMNg0oX5bHOlHUqHFj3sFR/NVpw==", "dependencies": { "tslib": "^2.3.0" }, @@ -337,14 +337,14 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.1.2", + "@angular/core": "17.1.3", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.1.2.tgz", - "integrity": "sha512-1vJuQRM5V01nC6qsLvBKrHVZXpzbK0YKubwVQUXCSfDNZBcDFak3SQcwU4C2t880rU3ZvFDB1UWfk7CKn5w9Kw==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.1.3.tgz", + "integrity": "sha512-k/s21gPPKStxVOLr6l4Y145OIxyBY7BhTPVOl/qEAgE+IcZ9vkiA8dYl8yjL884Kl1ZKPmFA3AofMJjWjZGNag==", "dependencies": { "tslib": "^2.3.0" }, @@ -352,7 +352,7 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.1.2" + "@angular/core": "17.1.3" }, "peerDependenciesMeta": { "@angular/core": { @@ -361,9 +361,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.1.2.tgz", - "integrity": "sha512-4P4ttCe4IF9yq7bxCDxbVW7purN7qV0nqofP5Tth1xCsgIJeGmOMMQJN5RJCZNrAPMkvMv39eV878sgcDjbpOA==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.1.3.tgz", + "integrity": "sha512-bNDHXo3Twub0BZK9OmXly+0REs0RuR1SUXlTAeq+0XubCvnBDvpg9peL7UTTGS5YRo9sUTBnR6faSUA1F5objQ==", "dev": true, "dependencies": { "@babel/core": "7.23.2", @@ -384,7 +384,7 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/compiler": "17.1.2", + "@angular/compiler": "17.1.3", "typescript": ">=5.2 <5.4" } }, @@ -434,9 +434,9 @@ } }, "node_modules/@angular/core": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.1.2.tgz", - "integrity": "sha512-0M787BZVgYSVogHCUzo/dFrT56TgfQoEsOQngHMpyERJZv6dycXZlRdHc6TzvHUa+Uu/MNjn/RclBR8063bdWA==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.1.3.tgz", + "integrity": "sha512-2lZ4DRHN8KJ/aQads+YXIcx5Ri9yyeFIlw69m5Pn7wAi/+Rakg7IsclgLaWs7aBtWwMHG7LnqFKxAVq7CjXKtA==", "dependencies": { "tslib": "^2.3.0" }, @@ -449,9 +449,9 @@ } }, "node_modules/@angular/forms": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.1.2.tgz", - "integrity": "sha512-n1WsZAL2IVOB6ocROKR6CFOR14PIC9RGAB41SwTfPhJeBM1kjW48bXY0sw97TasxM4mWJKGCmFXu0jQwkoeSpQ==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.1.3.tgz", + "integrity": "sha512-aNa0jGLT5d+hnKVrSo8tk3TRo/NLNu1RxLNx8RhIczKAeCK3eD8SvTMy27iJtyXmNG2GWN7QPiDeGepd75nbxQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -459,9 +459,9 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.1.2", - "@angular/core": "17.1.2", - "@angular/platform-browser": "17.1.2", + "@angular/common": "17.1.3", + "@angular/core": "17.1.3", + "@angular/platform-browser": "17.1.3", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -530,9 +530,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.1.2.tgz", - "integrity": "sha512-unfpA5OLnqDmDb/oAQR2t2iROpOg02qwZayxyFg4MUZdDdnghPCfX77L2sr6oVVa7OJfKYFlmwmBXX1H3zjcXA==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.1.3.tgz", + "integrity": "sha512-onPCvdk9f/6OhOo2zP6nfGKpzLma1QIxpFqD3jymbmIJTcVMOOQDMYW3eLtY+uSX8ribcJ7GQcbDGIM4rliTFg==", "dependencies": { "tslib": "^2.3.0" }, @@ -540,9 +540,9 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/animations": "17.1.2", - "@angular/common": "17.1.2", - "@angular/core": "17.1.2" + "@angular/animations": "17.1.3", + "@angular/common": "17.1.3", + "@angular/core": "17.1.3" }, "peerDependenciesMeta": { "@angular/animations": { @@ -551,9 +551,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.1.2.tgz", - "integrity": "sha512-xiWVDHbA+owDhKo5SAnzZtawA1ktGthlCl3YTI+vmkJpF6axkYOqR7YL+aEQX/y/5GSK+oR+03SgAnYcpOwKlQ==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.1.3.tgz", + "integrity": "sha512-0lFhcFJfDzCSSVe8l8OY+UgUiwUwcbxwpvLod3XWBpf1iEUlr5720FIMA3VJYwpW3Oj4Uey3nVm13EMtRqpqdA==", "dependencies": { "tslib": "^2.3.0" }, @@ -561,16 +561,16 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.1.2", - "@angular/compiler": "17.1.2", - "@angular/core": "17.1.2", - "@angular/platform-browser": "17.1.2" + "@angular/common": "17.1.3", + "@angular/compiler": "17.1.3", + "@angular/core": "17.1.3", + "@angular/platform-browser": "17.1.3" } }, "node_modules/@angular/router": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.1.2.tgz", - "integrity": "sha512-8OexxiiscRdfEiB6jOKlZFyAKZtvIQvh0ugW6U7nAXPV5XsA2UL80sXkc829eH0DnJn2Wj/HS6ZNGgG81PWDHg==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.1.3.tgz", + "integrity": "sha512-6HigdtFjm+76UU2hiLGLE2SpOecQhD6TnAVTocDuRitpN5m0dyiffBrqxarfNwoZuMdIiXyqClJR4JRo1rJjoQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -578,9 +578,9 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.1.2", - "@angular/core": "17.1.2", - "@angular/platform-browser": "17.1.2", + "@angular/common": "17.1.3", + "@angular/core": "17.1.3", + "@angular/platform-browser": "17.1.3", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -3735,9 +3735,9 @@ } }, "node_modules/@npmcli/agent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz", - "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.1.tgz", + "integrity": "sha512-H4FrOVtNyWC8MUwL3UfjOsAihHvT1Pe8POj3JvjXhSTJipsZMtgUALCT4mGyYZNxymkUfOw3PUj6dE4QPp6osQ==", "dev": true, "dependencies": { "agent-base": "^7.1.0", @@ -3999,9 +3999,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz", - "integrity": "sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.10.0.tgz", + "integrity": "sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==", "cpu": [ "arm" ], @@ -4012,9 +4012,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz", - "integrity": "sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.10.0.tgz", + "integrity": "sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==", "cpu": [ "arm64" ], @@ -4025,9 +4025,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz", - "integrity": "sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.10.0.tgz", + "integrity": "sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==", "cpu": [ "arm64" ], @@ -4038,9 +4038,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz", - "integrity": "sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.10.0.tgz", + "integrity": "sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==", "cpu": [ "x64" ], @@ -4051,9 +4051,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz", - "integrity": "sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.10.0.tgz", + "integrity": "sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==", "cpu": [ "arm" ], @@ -4064,9 +4064,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz", - "integrity": "sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.10.0.tgz", + "integrity": "sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==", "cpu": [ "arm64" ], @@ -4077,9 +4077,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz", - "integrity": "sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.10.0.tgz", + "integrity": "sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==", "cpu": [ "arm64" ], @@ -4090,9 +4090,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz", - "integrity": "sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.10.0.tgz", + "integrity": "sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==", "cpu": [ "riscv64" ], @@ -4103,9 +4103,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz", - "integrity": "sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.10.0.tgz", + "integrity": "sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==", "cpu": [ "x64" ], @@ -4116,9 +4116,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz", - "integrity": "sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.10.0.tgz", + "integrity": "sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==", "cpu": [ "x64" ], @@ -4129,9 +4129,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz", - "integrity": "sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.10.0.tgz", + "integrity": "sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==", "cpu": [ "arm64" ], @@ -4142,9 +4142,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz", - "integrity": "sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.10.0.tgz", + "integrity": "sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==", "cpu": [ "ia32" ], @@ -4155,9 +4155,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz", - "integrity": "sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.10.0.tgz", + "integrity": "sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==", "cpu": [ "x64" ], @@ -4196,9 +4196,9 @@ } }, "node_modules/@sigstore/core": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-0.2.0.tgz", - "integrity": "sha512-THobAPPZR9pDH2CAvDLpkrYedt7BlZnsyxDe+Isq4ZmGfPy5juOFZq487vCU2EgKD7aHSiTfE/i7sN7aEdzQnA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.0.0.tgz", + "integrity": "sha512-dW2qjbWLRKGu6MIDUTBuJwXCnR8zivcSpf5inUzk7y84zqy/dji0/uahppoIgMoKeR+6pUZucrwHfkQQtiG9Rw==", "dev": true, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -4214,13 +4214,13 @@ } }, "node_modules/@sigstore/sign": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.1.tgz", - "integrity": "sha512-U5sKQEj+faE1MsnLou1f4DQQHeFZay+V9s9768lw48J4pKykPj34rWyI1lsMOGJ3Mae47Ye6q3HAJvgXO21rkQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.2.tgz", + "integrity": "sha512-mAifqvvGOCkb5BJ5d/SRrVP5+kKCGxtcHuti6lgqZalIfNxikxlJMMptOqFp9+xV5LAnJMSaMWtzvcgNZ3PlPA==", "dev": true, "dependencies": { "@sigstore/bundle": "^2.1.1", - "@sigstore/core": "^0.2.0", + "@sigstore/core": "^1.0.0", "@sigstore/protobuf-specs": "^0.2.1", "make-fetch-happen": "^13.0.0" }, @@ -4242,13 +4242,13 @@ } }, "node_modules/@sigstore/verify": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-0.1.0.tgz", - "integrity": "sha512-2UzMNYAa/uaz11NhvgRnIQf4gpLTJ59bhb8ESXaoSS5sxedfS+eLak8bsdMc+qpNQfITUTFoSKFx5h8umlRRiA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.0.0.tgz", + "integrity": "sha512-sRU6nblDBQ4pVTWni019Kij+XQj4RP75WXN5z3qHk81dt/L8A7r3v8RgRInTup4/Jf90WNods9CcbnWj7zJ26w==", "dev": true, "dependencies": { "@sigstore/bundle": "^2.1.1", - "@sigstore/core": "^0.2.0", + "@sigstore/core": "^1.0.0", "@sigstore/protobuf-specs": "^0.2.1" }, "engines": { @@ -4444,9 +4444,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.16", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.16.tgz", - "integrity": "sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==", + "version": "20.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", + "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -5396,14 +5396,18 @@ } }, "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.6.tgz", + "integrity": "sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==", "dev": true, "dependencies": { + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "get-intrinsic": "^1.2.3", + "set-function-length": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5428,9 +5432,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001583", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001583.tgz", - "integrity": "sha512-acWTYaha8xfhA/Du/z4sNZjHUWjkiuoAi2LM+T/aL+kemKQgPT1xBb/YKjlQ0Qo8gvbHsGNplrEJ+9G3gL7i4Q==", + "version": "1.0.30001587", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", + "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", "dev": true, "funding": [ { @@ -5468,16 +5472,10 @@ "dev": true }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -5490,6 +5488,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -6194,14 +6195,15 @@ } }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.2.tgz", + "integrity": "sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.2", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -6360,9 +6362,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.656", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.656.tgz", - "integrity": "sha512-9AQB5eFTHyR3Gvt2t/NwR0le2jBSUNwCnMbUCejFWHD+so4tH40/dRLgoE+jxlPeWS43XJewyvCv+I8LPMl49Q==", + "version": "1.4.665", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.665.tgz", + "integrity": "sha512-UpyCWObBoD+nSZgOC2ToaIdZB0r9GhqT2WahPKiSki6ckkSuKhQNso8V2PrFcHBMleI/eqbKgVQgVC4Wni4ilw==", "dev": true }, "node_modules/emoji-regex": { @@ -6434,9 +6436,9 @@ } }, "node_modules/engine.io-parser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", - "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", + "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", "dev": true, "engines": { "node": ">=10.0.0" @@ -6510,6 +6512,15 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-module-lexer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", @@ -6567,9 +6578,9 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -6888,9 +6899,9 @@ "dev": true }, "node_modules/fastq": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.0.tgz", - "integrity": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -7210,16 +7221,20 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, "dependencies": { + "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7381,9 +7396,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -7843,10 +7858,23 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", "dev": true }, "node_modules/ipaddr.js": { @@ -8180,9 +8208,9 @@ } }, "node_modules/jasmine-core": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", - "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", + "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", "dev": true }, "node_modules/jest-worker": { @@ -8251,6 +8279,12 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true + }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -10889,9 +10923,9 @@ } }, "node_modules/rollup": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.6.tgz", - "integrity": "sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.10.0.tgz", + "integrity": "sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -10904,19 +10938,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.9.6", - "@rollup/rollup-android-arm64": "4.9.6", - "@rollup/rollup-darwin-arm64": "4.9.6", - "@rollup/rollup-darwin-x64": "4.9.6", - "@rollup/rollup-linux-arm-gnueabihf": "4.9.6", - "@rollup/rollup-linux-arm64-gnu": "4.9.6", - "@rollup/rollup-linux-arm64-musl": "4.9.6", - "@rollup/rollup-linux-riscv64-gnu": "4.9.6", - "@rollup/rollup-linux-x64-gnu": "4.9.6", - "@rollup/rollup-linux-x64-musl": "4.9.6", - "@rollup/rollup-win32-arm64-msvc": "4.9.6", - "@rollup/rollup-win32-ia32-msvc": "4.9.6", - "@rollup/rollup-win32-x64-msvc": "4.9.6", + "@rollup/rollup-android-arm-eabi": "4.10.0", + "@rollup/rollup-android-arm64": "4.10.0", + "@rollup/rollup-darwin-arm64": "4.10.0", + "@rollup/rollup-darwin-x64": "4.10.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.10.0", + "@rollup/rollup-linux-arm64-gnu": "4.10.0", + "@rollup/rollup-linux-arm64-musl": "4.10.0", + "@rollup/rollup-linux-riscv64-gnu": "4.10.0", + "@rollup/rollup-linux-x64-gnu": "4.10.0", + "@rollup/rollup-linux-x64-musl": "4.10.0", + "@rollup/rollup-win32-arm64-msvc": "4.10.0", + "@rollup/rollup-win32-ia32-msvc": "4.10.0", + "@rollup/rollup-win32-x64-msvc": "4.10.0", "fsevents": "~2.3.2" } }, @@ -11283,14 +11317,15 @@ } }, "node_modules/set-function-length": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", - "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", "dev": true, "dependencies": { - "define-data-property": "^1.1.1", + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.2", + "get-intrinsic": "^1.2.3", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.1" }, @@ -11347,14 +11382,18 @@ } }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", + "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11367,17 +11406,17 @@ "dev": true }, "node_modules/sigstore": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.0.tgz", - "integrity": "sha512-fcU9clHwEss2/M/11FFM8Jwc4PjBgbhXoNskoK5guoK0qGQBSeUbQZRJ+B2fDFIvhyf0gqCaPrel9mszbhAxug==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.1.tgz", + "integrity": "sha512-OBBSKvmjr4DCyUb+IC2p7wooOCsCNwaqvCilTJVNPo0y8lJl+LsCrfz4LtMwnw3Gn+8frt816wi1+DWZTUCpBQ==", "dev": true, "dependencies": { "@sigstore/bundle": "^2.1.1", - "@sigstore/core": "^0.2.0", + "@sigstore/core": "^1.0.0", "@sigstore/protobuf-specs": "^0.2.1", - "@sigstore/sign": "^2.2.1", + "@sigstore/sign": "^2.2.2", "@sigstore/tuf": "^2.3.0", - "@sigstore/verify": "^0.1.0" + "@sigstore/verify": "^1.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -11457,16 +11496,16 @@ } }, "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.3.tgz", + "integrity": "sha512-vfuYK48HXCTFD03G/1/zkIls3Ebr2YNa4qU9gHDZdblHLiqhJrJGkY3+0Nx0JpN9qBhJbVObc1CNciT1bIZJxw==", "dev": true, "dependencies": { - "ip": "^2.0.0", + "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 10.13.0", + "node": ">= 10.0.0", "npm": ">= 3.0.0" } }, @@ -11580,9 +11619,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", "dev": true }, "node_modules/spdy": { diff --git a/viewer/package.json b/viewer/package.json index 5de36dc..5407f7f 100644 --- a/viewer/package.json +++ b/viewer/package.json @@ -14,16 +14,16 @@ }, "private": true, "dependencies": { - "@angular/animations": "^17.0.0", + "@angular/animations": "^17.1.3", "@angular/cdk": "^17.1.2", - "@angular/common": "^17.0.0", - "@angular/compiler": "^17.0.0", - "@angular/core": "^17.0.0", - "@angular/forms": "^17.0.0", + "@angular/common": "^17.1.3", + "@angular/compiler": "^17.1.3", + "@angular/core": "^17.1.3", + "@angular/forms": "^17.1.3", "@angular/material": "^17.1.2", - "@angular/platform-browser": "^17.0.0", - "@angular/platform-browser-dynamic": "^17.0.0", - "@angular/router": "^17.0.0", + "@angular/platform-browser": "^17.1.3", + "@angular/platform-browser-dynamic": "^17.1.3", + "@angular/router": "^17.1.3", "@ngbracket/ngx-layout": "^17.0.1", "ajv": "^8.12.0", "rxjs": "~7.8.0", @@ -33,7 +33,7 @@ "devDependencies": { "@angular-devkit/build-angular": "^17.1.3", "@angular/cli": "^17.1.3", - "@angular/compiler-cli": "^17.0.0", + "@angular/compiler-cli": "^17.1.3", "@types/jasmine": "~5.1.0", "ajv-formats": "^2.1.1", "axios": "^1.6.7", From de5d73fec3cb90d64a97cfbed0b3debc17ef4b33 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Mon, 12 Feb 2024 18:39:32 +0100 Subject: [PATCH 23/76] add merge script to build step Signed-off-by: Mirko Mollik --- viewer/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/viewer/package.json b/viewer/package.json index 5407f7f..9707864 100644 --- a/viewer/package.json +++ b/viewer/package.json @@ -4,13 +4,13 @@ "scripts": { "ng": "ng", "prestart": "npm run merge", + "prebuild": "npm run merge", "start": "ng serve", "build": "ng build", "watch": "ng build --watch --configuration development", "test": "ng test", "validate": "node scripts/validate.mjs", - "merge": "node scripts/merge-wallets.mjs", - "update:schemas": "node scripts/update-schemas.mjs" + "merge": "node scripts/merge-wallets.mjs" }, "private": true, "dependencies": { @@ -45,4 +45,4 @@ "karma-jasmine-html-reporter": "~2.1.0", "typescript": "~5.2.2" } -} \ No newline at end of file +} From 39e4e9a8bd7d1ac1bcbe6f3e7a5834ea92bc3b86 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Tue, 13 Feb 2024 08:28:02 +0100 Subject: [PATCH 24/76] improve tooltip handling Signed-off-by: Mirko Mollik --- viewer/src/app/app.component.html | 1 + viewer/src/app/app.component.ts | 4 + viewer/src/app/tooltip.ts | 10 -- viewer/src/app/types.ts | 50 ++++++++-- .../wallets-add/wallets-add.component.html | 96 +++++++++++++++++++ .../wallets-add/wallets-add.component.scss | 0 .../wallets-add/wallets-add.component.spec.ts | 23 +++++ .../app/wallets-add/wallets-add.component.ts | 73 ++++++++++++++ .../wallets-list-filter.component.html | 6 +- .../wallets-list-filter.component.ts | 20 +--- .../wallets-list/wallets-list.component.html | 20 ++-- .../wallets-list/wallets-list.component.ts | 3 +- .../wallets-show/wallets-show.component.html | 10 +- viewer/src/app/wallets.service.ts | 65 ++++++------- schema.json => viewer/src/assets/schema.json | 20 ++-- viewer/tsconfig.json | 6 +- wallets/AceID Wallet.json | 4 +- wallets/Apple Wallet.json | 4 +- wallets/Atala PRISM.json | 4 +- wallets/Authenticator.json | 4 +- wallets/BC Wallet.json | 4 +- wallets/Blockcerts Wallet.json | 4 +- wallets/Blockpass.json | 4 +- wallets/CertiShare Wallet.json | 4 +- wallets/Data Wallet.json | 4 +- wallets/Datakeeper.json | 4 +- wallets/Digital ID Wallet.json | 4 +- wallets/Gataca.json | 4 +- wallets/IDEMIA Mobile ID.json | 4 +- wallets/Identry.json | 4 +- wallets/KayTrust Wallet.json | 4 +- wallets/Lissi Wallet.json | 4 +- wallets/MATTR Wallet.json | 4 +- wallets/MYKEEPiN.json | 4 +- wallets/Microsoft Entra.json | 4 +- wallets/Paradym Wallet.json | 4 +- wallets/Sphereon Wallet.json | 4 +- wallets/Spherity Wallet.json | 4 +- wallets/Talao.json | 4 +- wallets/Tap ID.json | 4 +- wallets/VIDwallet.json | 4 +- wallets/Yivi.json | 4 +- wallets/ZADA.json | 4 +- wallets/esatus Wallet.json | 4 +- wallets/example.json | 6 +- wallets/helix id.json | 4 +- wallets/idento.one.json | 4 +- wallets/walt.id.json | 4 +- 48 files changed, 372 insertions(+), 165 deletions(-) delete mode 100644 viewer/src/app/tooltip.ts create mode 100644 viewer/src/app/wallets-add/wallets-add.component.html create mode 100644 viewer/src/app/wallets-add/wallets-add.component.scss create mode 100644 viewer/src/app/wallets-add/wallets-add.component.spec.ts create mode 100644 viewer/src/app/wallets-add/wallets-add.component.ts rename schema.json => viewer/src/assets/schema.json (94%) diff --git a/viewer/src/app/app.component.html b/viewer/src/app/app.component.html index 6a37c25..63b9fde 100644 --- a/viewer/src/app/app.component.html +++ b/viewer/src/app/app.component.html @@ -1,6 +1,7 @@ Digital Wallet and Agent overview
+ + +

+ This form will help you to generate the required JSON file that needs to be + added to the GitHub Repository +

+ +
+ + Name + + {{ walletsService.getTooltip('name') }} + @if(form.get('name')?.hasError('required')) { + Wallet name is required + } + + + Company + + {{ walletsService.getTooltip('company') }} + @if(form.get('company')?.hasError('required')) { + Company name is required + } + + + Company URL + + {{ walletsService.getTooltip('companyUrl') }} + + + Type + + Edge + Cloud + + {{ walletsService.getTooltip('type') }} + + + License + + {{ walletsService.getTooltip('license') }} + + + Capability + + Issuer + Holder + Verifier + + {{ walletsService.getTooltip('capability') }} + + + Portability + + Yes + No + + {{ walletsService.getTooltip('portability') }} + + @for (resource of walletsService.resources; track resource) { + + {{ resource.name }} + + @for (option of getValues(resource.schemaId); track option) { + {{ option }} + } + + {{ walletsService.getTooltip(resource.id) }} + + } +
+ + + JSON + + +
+} diff --git a/viewer/src/app/wallets-add/wallets-add.component.scss b/viewer/src/app/wallets-add/wallets-add.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/viewer/src/app/wallets-add/wallets-add.component.spec.ts b/viewer/src/app/wallets-add/wallets-add.component.spec.ts new file mode 100644 index 0000000..fc24dcc --- /dev/null +++ b/viewer/src/app/wallets-add/wallets-add.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { WalletsAddComponent } from './wallets-add.component'; + +describe('WalletsAddComponent', () => { + let component: WalletsAddComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [WalletsAddComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(WalletsAddComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/viewer/src/app/wallets-add/wallets-add.component.ts b/viewer/src/app/wallets-add/wallets-add.component.ts new file mode 100644 index 0000000..a3b30b8 --- /dev/null +++ b/viewer/src/app/wallets-add/wallets-add.component.ts @@ -0,0 +1,73 @@ +import { HttpClientModule } from '@angular/common/http'; +import { Component, OnInit } from '@angular/core'; +import { + FormControl, + FormGroup, + ReactiveFormsModule, + Validators, +} from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; +import { MatDialogModule } from '@angular/material/dialog'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; +import { MatSelectModule } from '@angular/material/select'; +import { FlexLayoutModule } from '@ngbracket/ngx-layout'; +import { WalletsService } from '../wallets.service'; +import { FieldResponse } from '../types'; +import { MatDividerModule } from '@angular/material/divider'; + +@Component({ + selector: 'app-wallets-add', + standalone: true, + imports: [ + MatDialogModule, + MatButtonModule, + FlexLayoutModule, + ReactiveFormsModule, + MatInputModule, + MatSelectModule, + MatIconModule, + MatDividerModule, + HttpClientModule, + ], + providers: [WalletsService], + templateUrl: './wallets-add.component.html', + styleUrl: './wallets-add.component.scss', +}) +export class WalletsAddComponent implements OnInit { + form!: FormGroup; + values!: FieldResponse; + + constructor(public walletsService: WalletsService) {} + + async ngOnInit(): Promise { + this.values = await this.walletsService.getDefinitions(); + this.form = new FormGroup({ + name: new FormControl('', [Validators.required]), + company: new FormControl('', [Validators.required]), + CompanyUrl: new FormControl('', []), + type: new FormControl('', [Validators.required]), + openSource: new FormControl(false, [Validators.required]), + license: new FormControl('', [Validators.required]), + capability: new FormControl([]), + portability: new FormControl(), + linkToApp: new FormControl(''), + }); + + this.walletsService.resources.forEach((resource) => { + this.form.addControl(resource.id, new FormControl([])); + }); + } + + getValues(key: string) { + return this.values.definitions[key]?.enum; + } + + getJSON() { + return JSON.stringify( + { ...this.form.value, $schema: '../schema.json' }, + null, + 2 + ); + } +} diff --git a/viewer/src/app/wallets-list-filter/wallets-list-filter.component.html b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.html index ce6047c..bbd1373 100644 --- a/viewer/src/app/wallets-list-filter/wallets-list-filter.component.html +++ b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.html @@ -14,7 +14,7 @@

Filter

cloud edge - {{ walletsService.getTooltip('Type') }} + {{ walletsService.getTooltip('type') }} Open Source @@ -23,7 +23,7 @@

Filter

true false - {{ walletsService.getTooltip('OpenSource') }} + {{ walletsService.getTooltip('openSource') }}
Capability @@ -51,7 +51,7 @@

Filter

{{ resource }} } - {{ res.tooltip }} + {{ walletsService.getTooltip(res.id) }}
} diff --git a/viewer/src/app/wallets-list-filter/wallets-list-filter.component.ts b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.ts index 2dab0ec..e5ab78a 100644 --- a/viewer/src/app/wallets-list-filter/wallets-list-filter.component.ts +++ b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.ts @@ -9,6 +9,7 @@ import { MatIconModule } from '@angular/material/icon'; import { HttpClient, HttpClientModule } from '@angular/common/http'; import { firstValueFrom } from 'rxjs'; import { WalletsService } from '../wallets.service'; +import { FieldResponse } from '../types'; export interface WalletFilter { type?: 'cloud' | 'edge'; @@ -25,19 +26,6 @@ export interface WalletFilter { trustManagements?: string[]; } -interface Resource { - description: string; - type: string; - enum: string[]; -} - -interface FieldResponse { - $schema: 'http://json-schema.org/draft-06/schema#'; - type: 'object'; - additionalProperties: {}; - definitions: { [key: string]: Resource }; -} - @Component({ selector: 'app-wallets-list-filter', standalone: true, @@ -65,11 +53,7 @@ export class WalletsListFilterComponent implements OnInit { public walletsService: WalletsService ) {} async ngOnInit(): Promise { - this.values = await firstValueFrom( - this.httpClient.get( - 'https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json' - ) - ); + this.values = await this.walletsService.getDefinitions(); this.form = new FormGroup({ type: new FormControl(), openSource: new FormControl(), diff --git a/viewer/src/app/wallets-list/wallets-list.component.html b/viewer/src/app/wallets-list/wallets-list.component.html index 2d3bb73..974cdf0 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.html +++ b/viewer/src/app/wallets-list/wallets-list.component.html @@ -18,7 +18,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - [matTooltip]="walletsService.getTooltip('Name')" + [matTooltip]="walletsService.getTooltip('name')" > Name @@ -39,7 +39,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - [matTooltip]="walletsService.getTooltip('Company')" + [matTooltip]="walletsService.getTooltip('company')" > Company @@ -58,7 +58,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - [matTooltip]="walletsService.getTooltip('OpenSource')" + [matTooltip]="walletsService.getTooltip('openSource')" > Open Source @@ -71,7 +71,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - [matTooltip]="walletsService.getTooltip('linkToApp')" + matTooltip="Link to the app stores" > Link to app @@ -123,9 +123,11 @@
- Holder - Issuer - Verifier + Holder + Issuer + Verifier
@@ -134,7 +136,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - [matTooltip]="walletsService.getTooltip('Type')" + [matTooltip]="walletsService.getTooltip('type')" > Type @@ -161,7 +163,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - [matTooltip]="resource.tooltip" + [matTooltip]="walletsService.getTooltip(resource.id)" > {{ resource.name }} diff --git a/viewer/src/app/wallets-list/wallets-list.component.ts b/viewer/src/app/wallets-list/wallets-list.component.ts index 3a8a2a1..68741e6 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.ts +++ b/viewer/src/app/wallets-list/wallets-list.component.ts @@ -115,7 +115,8 @@ export class WalletsListComponent implements OnInit, AfterViewInit { if (res.capability && res.capability.length > 0) { values = values.filter( (wallet) => - res.capability?.includes('holder') && wallet.holderCapability + wallet.capability && + res.capability?.every((cap) => wallet.capability?.includes(cap)) ); } if (res.portability) { diff --git a/viewer/src/app/wallets-show/wallets-show.component.html b/viewer/src/app/wallets-show/wallets-show.component.html index 61806a2..3f53dee 100644 --- a/viewer/src/app/wallets-show/wallets-show.component.html +++ b/viewer/src/app/wallets-show/wallets-show.component.html @@ -70,16 +70,20 @@

{{ wallet.name }}

Holder capability
- {{ wallet.holderCapability ?? 'unknown' }} + {{ + wallet.capability?.includes('holder') ?? 'unknown' + }}
Issuer capability
- {{ wallet.issuerCapability ?? 'unknown' }} + {{ + wallet.capability?.includes('issuer') ?? 'unknown' + }}
Verifier capability
{{ - wallet.verifierCapability ?? 'unknown' + wallet.capability?.includes('verifier') ?? 'unknown' }}
diff --git a/viewer/src/app/wallets.service.ts b/viewer/src/app/wallets.service.ts index fe4e8d8..a6ae17f 100644 --- a/viewer/src/app/wallets.service.ts +++ b/viewer/src/app/wallets.service.ts @@ -2,28 +2,10 @@ import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { firstValueFrom } from 'rxjs'; import { Wallet } from './types'; -import { values } from './tooltip'; - -export type ResourceType = - | 'credentialProfiles' - | 'credentialFormats' - | 'issuanceProtocols' - | 'keyManagements' - | 'presentationProtocols' - | 'signingAlgorithms' - | 'statusManagements' - | 'trustManagements'; - -interface Resource { - // unique identifier of the column - id: ResourceType; - // unique identifier of the schema - schemaId: string; - // name of the column - name: string; - //tooltip to show to the user - tooltip: string; -} +import schema from '../assets/schema.json'; +import { FieldResponse } from './types'; +import { ResourceType } from './types'; +import { Resource } from './types'; @Injectable({ providedIn: 'root', @@ -34,64 +16,78 @@ export class WalletsService { id: 'credentialProfiles', schemaId: 'Credential-Profile', name: 'Supported Profiles', - tooltip: 'Supported profiles', }, { id: 'credentialFormats', schemaId: 'Credential-Format', name: 'Supported Formats', - tooltip: 'Supported formats', }, { id: 'issuanceProtocols', schemaId: 'Issuance-Protocol', name: 'Supported Issuance Protocols', - tooltip: 'Supported issuance protocols', }, { id: 'keyManagements', schemaId: 'Key-Management', name: 'Supported Key Managements', - tooltip: 'Supported key managements', }, { id: 'presentationProtocols', schemaId: 'Presentation-Protocol', name: 'Supported Presentation Protocols', - tooltip: 'Supported presentation protocols', }, { id: 'signingAlgorithms', schemaId: 'Signing-Algorithm', name: 'Supported Signing Algorithms', - tooltip: 'Supported signing algorithms', }, { id: 'statusManagements', schemaId: 'Status-Management', name: 'Supported Status Managements', - tooltip: 'Supported status managements', }, { id: 'trustManagements', schemaId: 'Trust-Management', name: 'Supported Trust Managements', - tooltip: 'Supported trust managements', }, ]; constructor(private httpClient: HttpClient) {} + /** + * Loads the wallets from the assets folder + * @returns + */ loadWallets() { return firstValueFrom(this.httpClient.get('assets/wallets.json')); } + /** + * Gets the definitions from the Credential Profile comparison SIG + * @returns + */ + async getDefinitions() { + return firstValueFrom( + this.httpClient.get( + 'https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json' + ) + ); + } + find(name: string) { return this.loadWallets().then((wallets) => wallets.find((wallet) => wallet.name === name) ); } + /** + * Returns the link to the resource to the credential comparison SIG + * @param resourceType + * @param key + * @returns + */ getLink(resourceType: ResourceType, key: string) { const url = 'https://openwallet-foundation.github.io/credential-format-comparison-sig/#'; @@ -115,7 +111,12 @@ export class WalletsService { } } - getTooltip(resourceType: keyof typeof values) { - return values[resourceType]; + /** + * Returns the tooltip for the resource + * @param resourceType + * @returns + */ + getTooltip(resourceType: keyof typeof schema.properties) { + return schema.properties[resourceType].description; } } diff --git a/schema.json b/viewer/src/assets/schema.json similarity index 94% rename from schema.json rename to viewer/src/assets/schema.json index 6c7d0a9..1be488b 100644 --- a/schema.json +++ b/viewer/src/assets/schema.json @@ -47,17 +47,13 @@ "type": "string", "description": "add the license of the wallet. In case you have multiple licenses, add them here." }, - "holderCapability": { - "type": "boolean", - "description": "is the wallet capable of the holder role" - }, - "issuerCapability": { - "type": "boolean", - "description": "is the wallet capable of the issuer role" - }, - "verifierCapability": { - "type": "boolean", - "description": "is the wallet capable of the verifier role" + "capability": { + "type": "array", + "description": "list of capabilities of the wallet", + "items": { + "type": "string", + "enum": ["holder", "issuer", "verifier"] + } }, "type": { "type": "string", @@ -107,7 +103,7 @@ "$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Signing-Algorithm" } }, - "statusAlgorithms": { + "statusManagements": { "type": "array", "description": "list of supported status algorithms, it has to be a valid credential format from the Credential Formats Comparison SIG", "$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Status%20Algorithm", diff --git a/viewer/tsconfig.json b/viewer/tsconfig.json index f37b67f..40be380 100644 --- a/viewer/tsconfig.json +++ b/viewer/tsconfig.json @@ -19,10 +19,8 @@ "target": "ES2022", "module": "ES2022", "useDefineForClassFields": false, - "lib": [ - "ES2022", - "dom" - ] + "lib": ["ES2022", "dom"], + "resolveJsonModule": true }, "angularCompilerOptions": { "enableI18nLegacyMessageIdFormat": false, diff --git a/wallets/AceID Wallet.json b/wallets/AceID Wallet.json index b726aeb..1429d10 100644 --- a/wallets/AceID Wallet.json +++ b/wallets/AceID Wallet.json @@ -5,6 +5,6 @@ "eassi": "No", "logo": "logos/aceid-wallet.png", "name": "AceID Wallet", - "$schema": "../schema.json", + "$schema": "../viewer/src/assets/schema.json", "openSource": false -} \ No newline at end of file +} diff --git a/wallets/Apple Wallet.json b/wallets/Apple Wallet.json index 2b52f65..7ab9014 100644 --- a/wallets/Apple Wallet.json +++ b/wallets/Apple Wallet.json @@ -3,6 +3,6 @@ "eassi": "No", "logo": "logos/apple-wallet.png", "name": "Apple Wallet", - "$schema": "../schema.json", + "$schema": "../viewer/src/assets/schema.json", "openSource": false -} \ No newline at end of file +} diff --git a/wallets/Atala PRISM.json b/wallets/Atala PRISM.json index 9083919..467d1a2 100644 --- a/wallets/Atala PRISM.json +++ b/wallets/Atala PRISM.json @@ -27,5 +27,5 @@ "selectiveDisclosure": "No", "signatureAlgorithm": "ECDSA, soon: CL", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Authenticator.json b/wallets/Authenticator.json index e0dbd1e..0538f55 100644 --- a/wallets/Authenticator.json +++ b/wallets/Authenticator.json @@ -3,6 +3,6 @@ "eassi": "No", "logo": "logos/authenticator.png", "name": "Authenticator", - "$schema": "../schema.json", + "$schema": "../viewer/src/assets/schema.json", "openSource": false -} \ No newline at end of file +} diff --git a/wallets/BC Wallet.json b/wallets/BC Wallet.json index 99bcdaa..eb6bed1 100644 --- a/wallets/BC Wallet.json +++ b/wallets/BC Wallet.json @@ -3,6 +3,6 @@ "eassi": "No", "logo": "logos/bc-wallet.png", "name": "BC Wallet", - "$schema": "../schema.json", + "$schema": "../viewer/src/assets/schema.json", "openSource": false -} \ No newline at end of file +} diff --git a/wallets/Blockcerts Wallet.json b/wallets/Blockcerts Wallet.json index bec4ce7..a0e3241 100644 --- a/wallets/Blockcerts Wallet.json +++ b/wallets/Blockcerts Wallet.json @@ -6,5 +6,5 @@ "logo": "logos/blockcerts-wallet.png", "name": "Blockcerts Wallet", "openSource": true, - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Blockpass.json b/wallets/Blockpass.json index 2094bc3..2cc6d1b 100644 --- a/wallets/Blockpass.json +++ b/wallets/Blockpass.json @@ -6,5 +6,5 @@ "logo": "logos/blockpass.png", "name": "Blockpass", "openSource": false, - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/CertiShare Wallet.json b/wallets/CertiShare Wallet.json index ec0102b..6b7c099 100644 --- a/wallets/CertiShare Wallet.json +++ b/wallets/CertiShare Wallet.json @@ -27,5 +27,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "BBS+", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Data Wallet.json b/wallets/Data Wallet.json index 9714865..d15676b 100644 --- a/wallets/Data Wallet.json +++ b/wallets/Data Wallet.json @@ -38,5 +38,5 @@ "urlWebApp": "https://business.igrant.io/", "urlWebsite": "https://igrant.io/datawallet.html", "verifierUnlinkability": "Yes", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Datakeeper.json b/wallets/Datakeeper.json index 4ce0650..19c40ab 100644 --- a/wallets/Datakeeper.json +++ b/wallets/Datakeeper.json @@ -29,5 +29,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "ECDSA", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Digital ID Wallet.json b/wallets/Digital ID Wallet.json index 8fc53b7..92e0f5f 100644 --- a/wallets/Digital ID Wallet.json +++ b/wallets/Digital ID Wallet.json @@ -3,6 +3,6 @@ "eassi": "No", "logo": "logos/digital-id-wallet.png", "name": "Digital ID Wallet", - "$schema": "../schema.json", + "$schema": "../viewer/src/assets/schema.json", "openSource": false -} \ No newline at end of file +} diff --git a/wallets/Gataca.json b/wallets/Gataca.json index 62fb652..975f5fe 100644 --- a/wallets/Gataca.json +++ b/wallets/Gataca.json @@ -29,5 +29,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "EdDSA, RSA, secp256k, P-256, CadEs", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/IDEMIA Mobile ID.json b/wallets/IDEMIA Mobile ID.json index e9aa2a5..17c086e 100644 --- a/wallets/IDEMIA Mobile ID.json +++ b/wallets/IDEMIA Mobile ID.json @@ -3,6 +3,6 @@ "eassi": "No", "logo": "logos/idema.png", "name": "IDEMIA Mobile ID", - "$schema": "../schema.json", + "$schema": "../viewer/src/assets/schema.json", "openSource": false -} \ No newline at end of file +} diff --git a/wallets/Identry.json b/wallets/Identry.json index 15ea23f..c79bc0b 100644 --- a/wallets/Identry.json +++ b/wallets/Identry.json @@ -26,5 +26,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "CL", "verifierUnlinkability": "Yes", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/KayTrust Wallet.json b/wallets/KayTrust Wallet.json index 0ef1b68..35a22e2 100644 --- a/wallets/KayTrust Wallet.json +++ b/wallets/KayTrust Wallet.json @@ -6,5 +6,5 @@ "logo": "logos/kaytrust-wallet.png", "name": "KayTrust Wallet", "openSource": false, - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Lissi Wallet.json b/wallets/Lissi Wallet.json index f981f15..7ee008a 100644 --- a/wallets/Lissi Wallet.json +++ b/wallets/Lissi Wallet.json @@ -28,5 +28,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "CL", "verifierUnlinkability": "Yes", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/MATTR Wallet.json b/wallets/MATTR Wallet.json index 0379d94..790899b 100644 --- a/wallets/MATTR Wallet.json +++ b/wallets/MATTR Wallet.json @@ -29,5 +29,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "BBS+, EdDSA", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/MYKEEPiN.json b/wallets/MYKEEPiN.json index 1c53407..d30207f 100644 --- a/wallets/MYKEEPiN.json +++ b/wallets/MYKEEPiN.json @@ -29,5 +29,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "ECDSA", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Microsoft Entra.json b/wallets/Microsoft Entra.json index 3fae836..9546828 100644 --- a/wallets/Microsoft Entra.json +++ b/wallets/Microsoft Entra.json @@ -4,5 +4,5 @@ "logo": "logos/microsoft-entra.png", "name": "Microsoft Entra", "openSource": false, - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Paradym Wallet.json b/wallets/Paradym Wallet.json index 24d6917..c19315f 100644 --- a/wallets/Paradym Wallet.json +++ b/wallets/Paradym Wallet.json @@ -29,5 +29,5 @@ "selectiveDisclosure": "No", "signatureAlgorithm": "EdDSA, ES256", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Sphereon Wallet.json b/wallets/Sphereon Wallet.json index ea0df81..9b53845 100644 --- a/wallets/Sphereon Wallet.json +++ b/wallets/Sphereon Wallet.json @@ -29,5 +29,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "BBS+, ECDSA, EdDSA, RSA", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Spherity Wallet.json b/wallets/Spherity Wallet.json index 566dfe6..e7161be 100644 --- a/wallets/Spherity Wallet.json +++ b/wallets/Spherity Wallet.json @@ -26,5 +26,5 @@ "selectiveDisclosure": "No", "signatureAlgorithm": "CL, BBS+, EdDSA", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Talao.json b/wallets/Talao.json index a819992..c2a3872 100644 --- a/wallets/Talao.json +++ b/wallets/Talao.json @@ -27,5 +27,5 @@ "selectiveDisclosure": "No", "signatureAlgorithm": "ECDSA", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Tap ID.json b/wallets/Tap ID.json index b71b6e8..407bd89 100644 --- a/wallets/Tap ID.json +++ b/wallets/Tap ID.json @@ -19,5 +19,5 @@ "revocationAlgorithm": "Status List 2021", "selectiveDisclosure": "Yes", "signatureAlgorithm": "BBS+, ECDSA", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/VIDwallet.json b/wallets/VIDwallet.json index 6a8f326..d6b8352 100644 --- a/wallets/VIDwallet.json +++ b/wallets/VIDwallet.json @@ -28,5 +28,5 @@ "selectiveDisclosure": "No", "signatureAlgorithm": "ECDSA, EdDSA", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Yivi.json b/wallets/Yivi.json index 0df6455..e486464 100644 --- a/wallets/Yivi.json +++ b/wallets/Yivi.json @@ -29,5 +29,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "CL, Schnorr", "verifierUnlinkability": "Yes", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/ZADA.json b/wallets/ZADA.json index 594a3ac..72e708c 100644 --- a/wallets/ZADA.json +++ b/wallets/ZADA.json @@ -28,5 +28,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "CL, RSA", "verifierUnlinkability": "Yes", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/esatus Wallet.json b/wallets/esatus Wallet.json index 56d0d71..0ac6b01 100644 --- a/wallets/esatus Wallet.json +++ b/wallets/esatus Wallet.json @@ -32,5 +32,5 @@ "urlGooglePlayStore": "https://play.google.com/store/apps/details?id=com.esatus.wallet&hl=de_DE&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1", "urlWebsite": "https://esatus.com/index.html%3Fp=7663&lang=en.html", "verifierUnlinkability": "Yes", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/example.json b/wallets/example.json index 781dc46..30d8a38 100644 --- a/wallets/example.json +++ b/wallets/example.json @@ -1,5 +1,5 @@ { - "$schema": "../schema.json", + "$schema": "../viewer/src/assets/schema.json", "company": "Example Company", "companyUrl": "https://openwallet.foundation/", "urlWebsite": "https://github.com/openwallet-foundation/digital-wallet-and-agent-overviews-sig", @@ -9,9 +9,7 @@ "openSource": true, "type": "cloud", "portability": true, - "holderCapability": true, - "issuerCapability": true, - "verifierCapability": true, + "capability": ["holder", "issuer"], "credentialProfiles": ["EBSI", "HAIP"], "credentialFormats": ["MDOC"], "downloadSource": "https://github.com/openwallet-foundation/digital-wallet-and-agent-overviews-sig", diff --git a/wallets/helix id.json b/wallets/helix id.json index 06215e9..7c257be 100644 --- a/wallets/helix id.json +++ b/wallets/helix id.json @@ -29,5 +29,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "BBS+, ECDSA", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/idento.one.json b/wallets/idento.one.json index c6956da..9309f47 100644 --- a/wallets/idento.one.json +++ b/wallets/idento.one.json @@ -2,6 +2,6 @@ "eassi": "No", "logo": "logos/idento-one.png", "name": "idento.one", - "$schema": "../schema.json", + "$schema": "../viewer/src/assets/schema.json", "openSource": false -} \ No newline at end of file +} diff --git a/wallets/walt.id.json b/wallets/walt.id.json index 562a1d9..a0a9ae4 100644 --- a/wallets/walt.id.json +++ b/wallets/walt.id.json @@ -26,5 +26,5 @@ "selectiveDisclosure": "No", "signatureAlgorithm": "ECDSA, EdDSA, RSA", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} From 978fdace8c931c00207e8d22cb91f1c12d73df27 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Fri, 16 Feb 2024 14:25:41 +0100 Subject: [PATCH 25/76] improve add wallet dialog Signed-off-by: Mirko Mollik --- .../wallets-add/wallets-add.component.html | 39 +++++++++++++++++++ .../app/wallets-add/wallets-add.component.ts | 17 +++++++- 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/viewer/src/app/wallets-add/wallets-add.component.html b/viewer/src/app/wallets-add/wallets-add.component.html index d356430..673feaf 100644 --- a/viewer/src/app/wallets-add/wallets-add.component.html +++ b/viewer/src/app/wallets-add/wallets-add.component.html @@ -6,6 +6,35 @@

Add wallet

+

+ With the following steps you are able to add your wallet or agent to this + list. You need a Github Account to do so, every entry can be updated in the + future. +

+
+

This form will help you to generate the required JSON file that needs to be added to the GitHub Repository @@ -25,6 +54,11 @@

Add wallet

Wallet name is required } + + Logo + + {{ walletsService.getTooltip('logo') }} + Company @@ -93,4 +127,9 @@

Add wallet

>
+ + } diff --git a/viewer/src/app/wallets-add/wallets-add.component.ts b/viewer/src/app/wallets-add/wallets-add.component.ts index a3b30b8..83bdbce 100644 --- a/viewer/src/app/wallets-add/wallets-add.component.ts +++ b/viewer/src/app/wallets-add/wallets-add.component.ts @@ -15,6 +15,8 @@ import { FlexLayoutModule } from '@ngbracket/ngx-layout'; import { WalletsService } from '../wallets.service'; import { FieldResponse } from '../types'; import { MatDividerModule } from '@angular/material/divider'; +import { ClipboardModule, Clipboard } from '@angular/cdk/clipboard'; +import { MatSnackBar, MatSnackBarModule } from '@angular/material/snack-bar'; @Component({ selector: 'app-wallets-add', @@ -29,6 +31,8 @@ import { MatDividerModule } from '@angular/material/divider'; MatIconModule, MatDividerModule, HttpClientModule, + ClipboardModule, + MatSnackBarModule, ], providers: [WalletsService], templateUrl: './wallets-add.component.html', @@ -38,14 +42,19 @@ export class WalletsAddComponent implements OnInit { form!: FormGroup; values!: FieldResponse; - constructor(public walletsService: WalletsService) {} + constructor( + public walletsService: WalletsService, + private clipboard: Clipboard, + private snackBar: MatSnackBar + ) {} async ngOnInit(): Promise { this.values = await this.walletsService.getDefinitions(); this.form = new FormGroup({ name: new FormControl('', [Validators.required]), + logo: new FormControl(''), company: new FormControl('', [Validators.required]), - CompanyUrl: new FormControl('', []), + CompanyUrl: new FormControl(''), type: new FormControl('', [Validators.required]), openSource: new FormControl(false, [Validators.required]), license: new FormControl('', [Validators.required]), @@ -70,4 +79,8 @@ export class WalletsAddComponent implements OnInit { 2 ); } + copy() { + this.clipboard.copy(this.getJSON()); + this.snackBar.open('Copied to clipboard', 'Dismiss', { duration: 3000 }); + } } From 626ef452f6aa43ce8c40ab9ac2f7b6737a94d2dc Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Fri, 16 Feb 2024 14:40:29 +0100 Subject: [PATCH 26/76] add filter to fragment Signed-off-by: Mirko Mollik --- .../wallets-list/wallets-list.component.ts | 94 +++++++++++-------- 1 file changed, 57 insertions(+), 37 deletions(-) diff --git a/viewer/src/app/wallets-list/wallets-list.component.ts b/viewer/src/app/wallets-list/wallets-list.component.ts index 68741e6..331902b 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.ts +++ b/viewer/src/app/wallets-list/wallets-list.component.ts @@ -11,7 +11,7 @@ import { FlexLayoutModule } from '@ngbracket/ngx-layout'; import { Wallet } from '../types'; import { WalletsService } from '../wallets.service'; import { CommonModule } from '@angular/common'; -import { RouterModule } from '@angular/router'; +import { ActivatedRoute, Router, RouterModule } from '@angular/router'; import { MatChipsModule } from '@angular/material/chips'; import { WalletFilter, @@ -66,19 +66,21 @@ export class WalletsListComponent implements OnInit, AfterViewInit { constructor( public walletsService: WalletsService, - private dialog: MatDialog + private dialog: MatDialog, + private route: ActivatedRoute, + private router: Router ) {} /** * Fetches the wallets from the json file and sets the dataSource to the wallets */ async ngOnInit(): Promise { - if (localStorage.getItem('filter')) { - this.filter = JSON.parse(localStorage.getItem('filter')!); - } + //subscribe to the fragment of the route, if it changes, update the filter and load the wallets + this.route.fragment.subscribe(async (fragment) => { + this.filter = JSON.parse(fragment ?? '{}'); + this.loadWallets(); + }); this.walletsService.resources.forEach((res) => this.columns.push(res.id)); - const wallets = await this.walletsService.loadWallets(); - this.dataSource.data = wallets; this.displayedColumns = this.columns; } @@ -101,40 +103,58 @@ export class WalletsListComponent implements OnInit, AfterViewInit { ) .afterClosed() .subscribe(async (res: WalletFilter) => { - localStorage.setItem('filter', JSON.stringify(res)); + this.router.navigate([], { + relativeTo: this.route, + fragment: JSON.stringify(res), + replaceUrl: false, + }); this.filter = res; - let values = await this.walletsService.loadWallets(); - if (res.type) { - values = values.filter((wallet) => wallet.type === res.type); - } - if (res.openSource) { - values = values.filter( - (wallet) => wallet.openSource === (res.openSource === 'true') - ); - } - if (res.capability && res.capability.length > 0) { - values = values.filter( - (wallet) => - wallet.capability && - res.capability?.every((cap) => wallet.capability?.includes(cap)) - ); - } - if (res.portability) { - values = values.filter( - (wallet) => wallet.portability === (res.portability === 'true') + this.loadWallets(); + }); + } + + /** + * Load the filtered wallets + */ + private async loadWallets() { + let values = await this.walletsService.loadWallets(); + if (this.filter) { + if (this.filter.type) { + values = values.filter((wallet) => wallet.type === this.filter!.type); + } + if (this.filter.openSource) { + values = values.filter( + (wallet) => wallet.openSource === (this.filter!.openSource === 'true') + ); + } + if (this.filter.capability && this.filter.capability.length > 0) { + values = values.filter( + (wallet) => + wallet.capability && + this.filter!.capability?.every((cap) => + wallet.capability?.includes(cap) + ) + ); + } + if (this.filter.portability) { + values = values.filter( + (wallet) => + wallet.portability === (this.filter!.portability === 'true') + ); + } + + const resources = this.walletsService.resources.map((res) => res.id); + resources.forEach((resource) => { + if (this.filter![resource]) { + values = values.filter((wallet) => + this.filter![resource]?.every((res) => + wallet[resource]?.includes(res) + ) ); } - - const resources = this.walletsService.resources.map((res) => res.id); - resources.forEach((resource) => { - if (res[resource]) { - values = values.filter((wallet) => - res[resource]?.every((res) => wallet[resource]?.includes(res)) - ); - } - }); - this.dataSource.data = values; }); + } + this.dataSource.data = values; } /** From c947cd4637ba53141904cb6bc67b7110463088dc Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Thu, 22 Feb 2024 18:04:06 +0100 Subject: [PATCH 27/76] update angular Signed-off-by: Mirko Mollik --- viewer/package-lock.json | 1497 ++++++++++++++++++++++++-------------- viewer/package.json | 24 +- 2 files changed, 945 insertions(+), 576 deletions(-) diff --git a/viewer/package-lock.json b/viewer/package-lock.json index aefece2..b4557f8 100644 --- a/viewer/package-lock.json +++ b/viewer/package-lock.json @@ -8,16 +8,16 @@ "name": "viewer", "version": "0.0.0", "dependencies": { - "@angular/animations": "^17.1.3", + "@angular/animations": "^17.2.2", "@angular/cdk": "^17.1.2", - "@angular/common": "^17.1.3", - "@angular/compiler": "^17.1.3", - "@angular/core": "^17.1.3", - "@angular/forms": "^17.1.3", + "@angular/common": "^17.2.2", + "@angular/compiler": "^17.2.2", + "@angular/core": "^17.2.2", + "@angular/forms": "^17.2.2", "@angular/material": "^17.1.2", - "@angular/platform-browser": "^17.1.3", - "@angular/platform-browser-dynamic": "^17.1.3", - "@angular/router": "^17.1.3", + "@angular/platform-browser": "^17.2.2", + "@angular/platform-browser-dynamic": "^17.2.2", + "@angular/router": "^17.2.2", "@ngbracket/ngx-layout": "^17.0.1", "ajv": "^8.12.0", "rxjs": "~7.8.0", @@ -25,9 +25,9 @@ "zone.js": "~0.14.2" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.1.3", - "@angular/cli": "^17.1.3", - "@angular/compiler-cli": "^17.1.3", + "@angular-devkit/build-angular": "^17.2.0", + "@angular/cli": "^17.2.0", + "@angular/compiler-cli": "^17.2.2", "@types/jasmine": "~5.1.0", "ajv-formats": "^2.1.1", "axios": "^1.6.7", @@ -54,12 +54,12 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1701.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1701.3.tgz", - "integrity": "sha512-K5rvhslbXNwx04cCLviEJCA27MwoJRMMzALFXySi9BqjZnZUOtZnOBuuCdrTPaRmFaYqGO4Im5GNzpbb/NB8zg==", + "version": "0.1702.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1702.0.tgz", + "integrity": "sha512-+HkOYhdq8ez2+yqpxaQ6XtQevOYJNaDpM4oDmZ2lIpiIusFNsmpY2b9iL5PZGb4EfUgN8KsY3n9Q9fmRlRB9eA==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.1.3", + "@angular-devkit/core": "17.2.0", "rxjs": "7.8.1" }, "engines": { @@ -69,71 +69,70 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.1.3.tgz", - "integrity": "sha512-pusFVSWMnrm2GrF3+Fw19OhA2rNw4WkfTMUruhaKAjW5QIvZ3wHYf+pH//1Ud+tuhFBi9BH7UALP2vnJMu1ehw==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.2.0.tgz", + "integrity": "sha512-zO2YKcRRL3Ck3KZ3Ir/lWlciYIguJd3W9iYICKkeK4whi94y3NhrCy0Iualoo2WP7hE043uKQ0SwtVABft0SgA==", "dev": true, "dependencies": { "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1701.3", - "@angular-devkit/build-webpack": "0.1701.3", - "@angular-devkit/core": "17.1.3", - "@babel/core": "7.23.7", + "@angular-devkit/architect": "0.1702.0", + "@angular-devkit/build-webpack": "0.1702.0", + "@angular-devkit/core": "17.2.0", + "@babel/core": "7.23.9", "@babel/generator": "7.23.6", "@babel/helper-annotate-as-pure": "7.22.5", "@babel/helper-split-export-declaration": "7.22.6", - "@babel/plugin-transform-async-generator-functions": "7.23.7", + "@babel/plugin-transform-async-generator-functions": "7.23.9", "@babel/plugin-transform-async-to-generator": "7.23.3", - "@babel/plugin-transform-runtime": "7.23.7", - "@babel/preset-env": "7.23.7", - "@babel/runtime": "7.23.7", + "@babel/plugin-transform-runtime": "7.23.9", + "@babel/preset-env": "7.23.9", + "@babel/runtime": "7.23.9", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "17.1.3", - "@vitejs/plugin-basic-ssl": "1.0.2", + "@ngtools/webpack": "17.2.0", + "@vitejs/plugin-basic-ssl": "1.1.0", "ansi-colors": "4.1.3", - "autoprefixer": "10.4.16", + "autoprefixer": "10.4.17", "babel-loader": "9.1.3", "babel-plugin-istanbul": "6.1.1", "browserslist": "^4.21.5", "copy-webpack-plugin": "11.0.0", "critters": "0.0.20", - "css-loader": "6.8.1", - "esbuild-wasm": "0.19.11", + "css-loader": "6.10.0", + "esbuild-wasm": "0.20.0", "fast-glob": "3.3.2", "http-proxy-middleware": "2.0.6", "https-proxy-agent": "7.0.2", - "inquirer": "9.2.12", - "jsonc-parser": "3.2.0", + "inquirer": "9.2.14", + "jsonc-parser": "3.2.1", "karma-source-map-support": "1.4.0", "less": "4.2.0", "less-loader": "11.1.0", "license-webpack-plugin": "4.0.2", "loader-utils": "3.2.1", - "magic-string": "0.30.5", - "mini-css-extract-plugin": "2.7.6", + "magic-string": "0.30.7", + "mini-css-extract-plugin": "2.8.0", "mrmime": "2.0.0", "open": "8.4.2", "ora": "5.4.1", "parse5-html-rewriting-stream": "7.0.0", - "picomatch": "3.0.1", - "piscina": "4.2.1", - "postcss": "8.4.33", - "postcss-loader": "7.3.4", + "picomatch": "4.0.1", + "piscina": "4.3.1", + "postcss": "8.4.35", + "postcss-loader": "8.1.0", "resolve-url-loader": "5.0.0", "rxjs": "7.8.1", - "sass": "1.69.7", - "sass-loader": "13.3.3", - "semver": "7.5.4", + "sass": "1.70.0", + "sass-loader": "14.1.0", + "semver": "7.6.0", "source-map-loader": "5.0.0", "source-map-support": "0.5.21", - "terser": "5.26.0", - "text-table": "0.2.0", + "terser": "5.27.0", "tree-kill": "1.2.2", "tslib": "2.6.2", - "undici": "6.2.1", + "undici": "6.6.2", "vite": "5.0.12", "watchpack": "2.4.0", - "webpack": "5.89.0", + "webpack": "5.90.1", "webpack-dev-middleware": "6.1.1", "webpack-dev-server": "4.15.1", "webpack-merge": "5.10.0", @@ -145,7 +144,7 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.19.11" + "esbuild": "0.20.0" }, "peerDependencies": { "@angular/compiler-cli": "^17.0.0", @@ -198,13 +197,46 @@ } } }, + "node_modules/@angular-devkit/build-angular/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1701.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1701.3.tgz", - "integrity": "sha512-fpZtJf6yvXM7mX1T83caeYpa0e3zPv7sgKmx0ZIJKGL8+DETgNcCCeCTgui7HMBcHGCD8yj72DZ8xMMBWwVBIA==", + "version": "0.1702.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1702.0.tgz", + "integrity": "sha512-HrJ01MXlXNCeJeohIOIjpulWktUUJQpq01OWX4UazLnN0DAHKIFCwiKZZio5rYIFFUjdKI0+cCGxFbkzetRjWg==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1701.3", + "@angular-devkit/architect": "0.1702.0", "rxjs": "7.8.1" }, "engines": { @@ -218,15 +250,15 @@ } }, "node_modules/@angular-devkit/core": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.1.3.tgz", - "integrity": "sha512-iuVK4hyW3YhusxIi8zGBvvVA9pWtDT3H6LQbWdVk9D3jXCZBIrEMklvAiJErqficKnUurf6gtFOeA8Fop6GotA==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.2.0.tgz", + "integrity": "sha512-GIOYHChtDqSOvSiEefJ6hAledEl55J5Pxw8JuKXrM4IJBbviI3c40FAc0Lu5NCj2lYoELOhrLy/UP36sLy+DGA==", "dev": true, "dependencies": { "ajv": "8.12.0", "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "picomatch": "3.0.1", + "jsonc-parser": "3.2.1", + "picomatch": "4.0.1", "rxjs": "7.8.1", "source-map": "0.7.4" }, @@ -245,14 +277,14 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.1.3.tgz", - "integrity": "sha512-zKoWG1hDfvi1vR9Hqoca9hWo9vDg8evmQvGcBW5jXR5ndZi5Oit/uDcGdA8WUKvBd1EG7WMqp0FgcDR9EA9WCw==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.2.0.tgz", + "integrity": "sha512-gGyUVYRKTeRODW9S0MohfBlryoUHrbxqN27olhktrM/fZavyUVnZpyfb8okp6tTUz9HWmGac8ULE6IU+YW16gw==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.1.3", - "jsonc-parser": "3.2.0", - "magic-string": "0.30.5", + "@angular-devkit/core": "17.2.0", + "jsonc-parser": "3.2.1", + "magic-string": "0.30.7", "ora": "5.4.1", "rxjs": "7.8.1" }, @@ -263,9 +295,9 @@ } }, "node_modules/@angular/animations": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.1.3.tgz", - "integrity": "sha512-AS9CHOjjKqkuAzlKEMJfAkZfkIdSoagB3D8HwvH+ZHo6GVJc9KbtLQn/okNijFK+Fg7QK/hYbQ3lJhjgk0GQDA==", + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.2.2.tgz", + "integrity": "sha512-ENr35pDVslioJO8zBLo1QClzC7NqTc0Du36UMtWkw3cg+QRLnAZ7zfju5w0O8K7Z3omDtFzgVSPfyS0VDkrXPQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -273,7 +305,7 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.1.3" + "@angular/core": "17.2.2" } }, "node_modules/@angular/cdk": { @@ -293,27 +325,27 @@ } }, "node_modules/@angular/cli": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.1.3.tgz", - "integrity": "sha512-ysPWDdqo2cwfeskKVAg8p4C8xuezWcIWyW/ACSjWw6yp4OZvyVd6cGZrc0POVZzAPtTOYJSgWOpF/DCHQFluSg==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.2.0.tgz", + "integrity": "sha512-JSfNQB76qrc8QNPLUvvqR10T4+WUrfz+ogmOliO+jAdhbpfZQ4tIt0WwUYvo+0foM8x7hTe3Wdhg8zWwteBnuw==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1701.3", - "@angular-devkit/core": "17.1.3", - "@angular-devkit/schematics": "17.1.3", - "@schematics/angular": "17.1.3", + "@angular-devkit/architect": "0.1702.0", + "@angular-devkit/core": "17.2.0", + "@angular-devkit/schematics": "17.2.0", + "@schematics/angular": "17.2.0", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "4.1.1", - "inquirer": "9.2.12", - "jsonc-parser": "3.2.0", + "inquirer": "9.2.14", + "jsonc-parser": "3.2.1", "npm-package-arg": "11.0.1", "npm-pick-manifest": "9.0.0", "open": "8.4.2", "ora": "5.4.1", - "pacote": "17.0.5", + "pacote": "17.0.6", "resolve": "1.22.8", - "semver": "7.5.4", + "semver": "7.6.0", "symbol-observable": "4.0.0", "yargs": "17.7.2" }, @@ -326,10 +358,43 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@angular/cli/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/cli/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/cli/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@angular/common": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.1.3.tgz", - "integrity": "sha512-AzLzoNSeRSNGBQk0K+iG0XdYG36SDeJqYqE8rfoiWuv1NDFLL05UJM2/fQfaMNg0oX5bHOlHUqHFj3sFR/NVpw==", + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.2.2.tgz", + "integrity": "sha512-F2wQj/lYcZUNZuNmuuDb8RK8tU7e1w7IzN8J6nT2gQHq6NiZfYiUL2XrToGtdd/cZjBeYKGiWRBW/PsZzKyC3A==", "dependencies": { "tslib": "^2.3.0" }, @@ -337,14 +402,14 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.1.3", + "@angular/core": "17.2.2", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.1.3.tgz", - "integrity": "sha512-k/s21gPPKStxVOLr6l4Y145OIxyBY7BhTPVOl/qEAgE+IcZ9vkiA8dYl8yjL884Kl1ZKPmFA3AofMJjWjZGNag==", + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.2.2.tgz", + "integrity": "sha512-loRr4+9/JkSDszExZiS+iuhjXj7wvLF4gJeqlbp2PbPl4eUoGKYq0RVZ3a7IkIXxB5sgoYB5MjKsbdm/uaMK1A==", "dependencies": { "tslib": "^2.3.0" }, @@ -352,7 +417,7 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.1.3" + "@angular/core": "17.2.2" }, "peerDependenciesMeta": { "@angular/core": { @@ -361,16 +426,16 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.1.3.tgz", - "integrity": "sha512-bNDHXo3Twub0BZK9OmXly+0REs0RuR1SUXlTAeq+0XubCvnBDvpg9peL7UTTGS5YRo9sUTBnR6faSUA1F5objQ==", + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.2.2.tgz", + "integrity": "sha512-tFfbamdLhn8R30/aKxhXNG6CwelJOpVxfUnTizb7pWUJ/UQ4py0xzJp7s0QzKjR1lpRAq3rPtsE3f9BbcHD1HA==", "dev": true, "dependencies": { - "@babel/core": "7.23.2", + "@babel/core": "7.23.9", "@jridgewell/sourcemap-codec": "^1.4.14", "chokidar": "^3.0.0", "convert-source-map": "^1.5.1", - "reflect-metadata": "^0.1.2", + "reflect-metadata": "^0.2.0", "semver": "^7.0.0", "tslib": "^2.3.0", "yargs": "^17.2.1" @@ -384,59 +449,14 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/compiler": "17.1.3", + "@angular/compiler": "17.2.2", "typescript": ">=5.2 <5.4" } }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", - "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@angular/core": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.1.3.tgz", - "integrity": "sha512-2lZ4DRHN8KJ/aQads+YXIcx5Ri9yyeFIlw69m5Pn7wAi/+Rakg7IsclgLaWs7aBtWwMHG7LnqFKxAVq7CjXKtA==", + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.2.2.tgz", + "integrity": "sha512-jXnrOVsA9b34PJN383EOss3ejd5+xUTeijuUy5njPRXpxMxrGjV5gkk0lSxsALRxw2ICax2tMoGmHXfXO1x9gw==", "dependencies": { "tslib": "^2.3.0" }, @@ -449,9 +469,9 @@ } }, "node_modules/@angular/forms": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.1.3.tgz", - "integrity": "sha512-aNa0jGLT5d+hnKVrSo8tk3TRo/NLNu1RxLNx8RhIczKAeCK3eD8SvTMy27iJtyXmNG2GWN7QPiDeGepd75nbxQ==", + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.2.2.tgz", + "integrity": "sha512-xxy1Khpun2TpSDQch6BK4uHkqIxZvxsBU2LZgo/3W604lKoVjBGKPZqoYFRew2OPeCQ3VjK9P8a8ZhitsLLlKQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -459,9 +479,9 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.1.3", - "@angular/core": "17.1.3", - "@angular/platform-browser": "17.1.3", + "@angular/common": "17.2.2", + "@angular/core": "17.2.2", + "@angular/platform-browser": "17.2.2", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -530,9 +550,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.1.3.tgz", - "integrity": "sha512-onPCvdk9f/6OhOo2zP6nfGKpzLma1QIxpFqD3jymbmIJTcVMOOQDMYW3eLtY+uSX8ribcJ7GQcbDGIM4rliTFg==", + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.2.2.tgz", + "integrity": "sha512-6AZhQfZpo/apiRKwhy6es1RpoxgCXMR4y7Eo7GvVHpMKBwioWwP2H+qg83ed2xv0/GXIyqZsHjpEjsLPE83uyw==", "dependencies": { "tslib": "^2.3.0" }, @@ -540,9 +560,9 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/animations": "17.1.3", - "@angular/common": "17.1.3", - "@angular/core": "17.1.3" + "@angular/animations": "17.2.2", + "@angular/common": "17.2.2", + "@angular/core": "17.2.2" }, "peerDependenciesMeta": { "@angular/animations": { @@ -551,9 +571,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.1.3.tgz", - "integrity": "sha512-0lFhcFJfDzCSSVe8l8OY+UgUiwUwcbxwpvLod3XWBpf1iEUlr5720FIMA3VJYwpW3Oj4Uey3nVm13EMtRqpqdA==", + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.2.2.tgz", + "integrity": "sha512-I52zbDSic4LB0yhCFUEBZKg9QkLKVUCGTco0XFHNRy3EF54Jvs0uWBqG79egsuXmyBNQY0E3op9eqhhn6Mnwbw==", "dependencies": { "tslib": "^2.3.0" }, @@ -561,16 +581,16 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.1.3", - "@angular/compiler": "17.1.3", - "@angular/core": "17.1.3", - "@angular/platform-browser": "17.1.3" + "@angular/common": "17.2.2", + "@angular/compiler": "17.2.2", + "@angular/core": "17.2.2", + "@angular/platform-browser": "17.2.2" } }, "node_modules/@angular/router": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.1.3.tgz", - "integrity": "sha512-6HigdtFjm+76UU2hiLGLE2SpOecQhD6TnAVTocDuRitpN5m0dyiffBrqxarfNwoZuMdIiXyqClJR4JRo1rJjoQ==", + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.2.2.tgz", + "integrity": "sha512-3mT2+qBF8urFeY6eZVZX5bmAdK9ojJRZi7yB9ocpieE1Jdd/1NYCfIsQxJk032syEGc2NJftijTzuNiflLzlTA==", "dependencies": { "tslib": "^2.3.0" }, @@ -578,18 +598,12 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.1.3", - "@angular/core": "17.1.3", - "@angular/platform-browser": "17.1.3", + "@angular/common": "17.2.2", + "@angular/core": "17.2.2", + "@angular/platform-browser": "17.2.2", "rxjs": "^6.5.3 || ^7.4.0" } }, - "node_modules/@assemblyscript/loader": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", - "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", - "dev": true - }, "node_modules/@babel/code-frame": { "version": "7.23.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", @@ -613,9 +627,9 @@ } }, "node_modules/@babel/core": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", - "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", + "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", @@ -623,11 +637,11 @@ "@babel/generator": "^7.23.6", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.7", - "@babel/parser": "^7.23.6", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6", + "@babel/helpers": "^7.23.9", + "@babel/parser": "^7.23.9", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -1355,9 +1369,9 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz", - "integrity": "sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", + "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", @@ -1973,16 +1987,16 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.7.tgz", - "integrity": "sha512-fa0hnfmiXc9fq/weK34MUV0drz2pOL/vfKWvN7Qw127hiUPabFCUMgAbYWcchRzMJit4o5ARsK/s+5h0249pLw==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.9.tgz", + "integrity": "sha512-A7clW3a0aSjm3ONU9o2HAILSegJCYlEZmOhmBRReVtIpY/Z/p7yIZ+wR41Z+UipwdGuqwtID/V/dOdZXjwi9gQ==", "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.7", - "babel-plugin-polyfill-corejs3": "^0.8.7", - "babel-plugin-polyfill-regenerator": "^0.5.4", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", "semver": "^6.3.1" }, "engines": { @@ -2141,9 +2155,9 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.7.tgz", - "integrity": "sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz", + "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==", "dev": true, "dependencies": { "@babel/compat-data": "^7.23.5", @@ -2173,13 +2187,13 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.7", + "@babel/plugin-transform-async-generator-functions": "^7.23.9", "@babel/plugin-transform-async-to-generator": "^7.23.3", "@babel/plugin-transform-block-scoped-functions": "^7.23.3", "@babel/plugin-transform-block-scoping": "^7.23.4", "@babel/plugin-transform-class-properties": "^7.23.3", "@babel/plugin-transform-class-static-block": "^7.23.4", - "@babel/plugin-transform-classes": "^7.23.5", + "@babel/plugin-transform-classes": "^7.23.8", "@babel/plugin-transform-computed-properties": "^7.23.3", "@babel/plugin-transform-destructuring": "^7.23.3", "@babel/plugin-transform-dotall-regex": "^7.23.3", @@ -2195,7 +2209,7 @@ "@babel/plugin-transform-member-expression-literals": "^7.23.3", "@babel/plugin-transform-modules-amd": "^7.23.3", "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.9", "@babel/plugin-transform-modules-umd": "^7.23.3", "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", "@babel/plugin-transform-new-target": "^7.23.3", @@ -2221,9 +2235,9 @@ "@babel/plugin-transform-unicode-regex": "^7.23.3", "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.7", - "babel-plugin-polyfill-corejs3": "^0.8.7", - "babel-plugin-polyfill-regenerator": "^0.5.4", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", "core-js-compat": "^3.31.0", "semver": "^6.3.1" }, @@ -2264,9 +2278,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.7.tgz", - "integrity": "sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", + "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", "dev": true, "dependencies": { "regenerator-runtime": "^0.14.0" @@ -2343,9 +2357,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz", - "integrity": "sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.0.tgz", + "integrity": "sha512-fGFDEctNh0CcSwsiRPxiaqX0P5rq+AqE0SRhYGZ4PX46Lg1FNR6oCxJghf8YgY0WQEgQuh3lErUFE4KxLeRmmw==", "cpu": [ "ppc64" ], @@ -2359,9 +2373,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.11.tgz", - "integrity": "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.0.tgz", + "integrity": "sha512-3bMAfInvByLHfJwYPJRlpTeaQA75n8C/QKpEaiS4HrFWFiJlNI0vzq/zCjBrhAYcPyVPG7Eo9dMrcQXuqmNk5g==", "cpu": [ "arm" ], @@ -2375,9 +2389,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz", - "integrity": "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.0.tgz", + "integrity": "sha512-aVpnM4lURNkp0D3qPoAzSG92VXStYmoVPOgXveAUoQBWRSuQzt51yvSju29J6AHPmwY1BjH49uR29oyfH1ra8Q==", "cpu": [ "arm64" ], @@ -2391,9 +2405,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.11.tgz", - "integrity": "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.0.tgz", + "integrity": "sha512-uK7wAnlRvjkCPzh8jJ+QejFyrP8ObKuR5cBIsQZ+qbMunwR8sbd8krmMbxTLSrDhiPZaJYKQAU5Y3iMDcZPhyQ==", "cpu": [ "x64" ], @@ -2407,9 +2421,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz", - "integrity": "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.0.tgz", + "integrity": "sha512-AjEcivGAlPs3UAcJedMa9qYg9eSfU6FnGHJjT8s346HSKkrcWlYezGE8VaO2xKfvvlZkgAhyvl06OJOxiMgOYQ==", "cpu": [ "arm64" ], @@ -2423,9 +2437,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz", - "integrity": "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.0.tgz", + "integrity": "sha512-bsgTPoyYDnPv8ER0HqnJggXK6RyFy4PH4rtsId0V7Efa90u2+EifxytE9pZnsDgExgkARy24WUQGv9irVbTvIw==", "cpu": [ "x64" ], @@ -2439,9 +2453,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz", - "integrity": "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.0.tgz", + "integrity": "sha512-kQ7jYdlKS335mpGbMW5tEe3IrQFIok9r84EM3PXB8qBFJPSc6dpWfrtsC/y1pyrz82xfUIn5ZrnSHQQsd6jebQ==", "cpu": [ "arm64" ], @@ -2455,9 +2469,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz", - "integrity": "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.0.tgz", + "integrity": "sha512-uG8B0WSepMRsBNVXAQcHf9+Ko/Tr+XqmK7Ptel9HVmnykupXdS4J7ovSQUIi0tQGIndhbqWLaIL/qO/cWhXKyQ==", "cpu": [ "x64" ], @@ -2471,9 +2485,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz", - "integrity": "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.0.tgz", + "integrity": "sha512-2ezuhdiZw8vuHf1HKSf4TIk80naTbP9At7sOqZmdVwvvMyuoDiZB49YZKLsLOfKIr77+I40dWpHVeY5JHpIEIg==", "cpu": [ "arm" ], @@ -2487,9 +2501,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz", - "integrity": "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.0.tgz", + "integrity": "sha512-uTtyYAP5veqi2z9b6Gr0NUoNv9F/rOzI8tOD5jKcCvRUn7T60Bb+42NDBCWNhMjkQzI0qqwXkQGo1SY41G52nw==", "cpu": [ "arm64" ], @@ -2503,9 +2517,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz", - "integrity": "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.0.tgz", + "integrity": "sha512-c88wwtfs8tTffPaoJ+SQn3y+lKtgTzyjkD8NgsyCtCmtoIC8RDL7PrJU05an/e9VuAke6eJqGkoMhJK1RY6z4w==", "cpu": [ "ia32" ], @@ -2519,9 +2533,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz", - "integrity": "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.0.tgz", + "integrity": "sha512-lR2rr/128/6svngnVta6JN4gxSXle/yZEZL3o4XZ6esOqhyR4wsKyfu6qXAL04S4S5CgGfG+GYZnjFd4YiG3Aw==", "cpu": [ "loong64" ], @@ -2535,9 +2549,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz", - "integrity": "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.0.tgz", + "integrity": "sha512-9Sycc+1uUsDnJCelDf6ZNqgZQoK1mJvFtqf2MUz4ujTxGhvCWw+4chYfDLPepMEvVL9PDwn6HrXad5yOrNzIsQ==", "cpu": [ "mips64el" ], @@ -2551,9 +2565,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz", - "integrity": "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.0.tgz", + "integrity": "sha512-CoWSaaAXOZd+CjbUTdXIJE/t7Oz+4g90A3VBCHLbfuc5yUQU/nFDLOzQsN0cdxgXd97lYW/psIIBdjzQIwTBGw==", "cpu": [ "ppc64" ], @@ -2567,9 +2581,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz", - "integrity": "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.0.tgz", + "integrity": "sha512-mlb1hg/eYRJUpv8h/x+4ShgoNLL8wgZ64SUr26KwglTYnwAWjkhR2GpoKftDbPOCnodA9t4Y/b68H4J9XmmPzA==", "cpu": [ "riscv64" ], @@ -2583,9 +2597,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz", - "integrity": "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.0.tgz", + "integrity": "sha512-fgf9ubb53xSnOBqyvWEY6ukBNRl1mVX1srPNu06B6mNsNK20JfH6xV6jECzrQ69/VMiTLvHMicQR/PgTOgqJUQ==", "cpu": [ "s390x" ], @@ -2599,9 +2613,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz", - "integrity": "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.0.tgz", + "integrity": "sha512-H9Eu6MGse++204XZcYsse1yFHmRXEWgadk2N58O/xd50P9EvFMLJTQLg+lB4E1cF2xhLZU5luSWtGTb0l9UeSg==", "cpu": [ "x64" ], @@ -2615,9 +2629,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz", - "integrity": "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.0.tgz", + "integrity": "sha512-lCT675rTN1v8Fo+RGrE5KjSnfY0x9Og4RN7t7lVrN3vMSjy34/+3na0q7RIfWDAj0e0rCh0OL+P88lu3Rt21MQ==", "cpu": [ "x64" ], @@ -2631,9 +2645,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz", - "integrity": "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.0.tgz", + "integrity": "sha512-HKoUGXz/TOVXKQ+67NhxyHv+aDSZf44QpWLa3I1lLvAwGq8x1k0T+e2HHSRvxWhfJrFxaaqre1+YyzQ99KixoA==", "cpu": [ "x64" ], @@ -2647,9 +2661,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz", - "integrity": "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.0.tgz", + "integrity": "sha512-GDwAqgHQm1mVoPppGsoq4WJwT3vhnz/2N62CzhvApFD1eJyTroob30FPpOZabN+FgCjhG+AgcZyOPIkR8dfD7g==", "cpu": [ "x64" ], @@ -2663,9 +2677,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz", - "integrity": "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.0.tgz", + "integrity": "sha512-0vYsP8aC4TvMlOQYozoksiaxjlvUcQrac+muDqj1Fxy6jh9l9CZJzj7zmh8JGfiV49cYLTorFLxg7593pGldwQ==", "cpu": [ "arm64" ], @@ -2679,9 +2693,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz", - "integrity": "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.0.tgz", + "integrity": "sha512-p98u4rIgfh4gdpV00IqknBD5pC84LCub+4a3MO+zjqvU5MVXOc3hqR2UgT2jI2nh3h8s9EQxmOsVI3tyzv1iFg==", "cpu": [ "ia32" ], @@ -2695,9 +2709,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz", - "integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.0.tgz", + "integrity": "sha512-NgJnesu1RtWihtTtXGFMU5YSE6JyyHPMxCwBZK7a6/8d31GuSo9l0Ss7w1Jw5QnKUawG6UEehs883kcXf5fYwg==", "cpu": [ "x64" ], @@ -3684,9 +3698,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.1.3.tgz", - "integrity": "sha512-mszRSb7aMNKHnkh3Jrfo83KVOguX/cUamJJcGIYe9o7tnLGRIoMp4vP0fx6Og4J0/CGDRhSDG4IiJ29aOU7K8A==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.2.0.tgz", + "integrity": "sha512-3VilWAMylVpOqffhnLdc/UeElUWhBbG5j2XzxYWfQXb8OcVYoKNYPmJLc1vemoaYkkbaUX3zc5AEAN93Hk/q/g==", "dev": true, "engines": { "node": "^18.13.0 || >=20.9.0", @@ -3999,9 +4013,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.10.0.tgz", - "integrity": "sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz", + "integrity": "sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==", "cpu": [ "arm" ], @@ -4012,9 +4026,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.10.0.tgz", - "integrity": "sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz", + "integrity": "sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==", "cpu": [ "arm64" ], @@ -4025,9 +4039,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.10.0.tgz", - "integrity": "sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz", + "integrity": "sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==", "cpu": [ "arm64" ], @@ -4038,9 +4052,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.10.0.tgz", - "integrity": "sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz", + "integrity": "sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==", "cpu": [ "x64" ], @@ -4051,9 +4065,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.10.0.tgz", - "integrity": "sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz", + "integrity": "sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==", "cpu": [ "arm" ], @@ -4064,9 +4078,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.10.0.tgz", - "integrity": "sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz", + "integrity": "sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==", "cpu": [ "arm64" ], @@ -4077,9 +4091,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.10.0.tgz", - "integrity": "sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz", + "integrity": "sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==", "cpu": [ "arm64" ], @@ -4090,9 +4104,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.10.0.tgz", - "integrity": "sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz", + "integrity": "sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==", "cpu": [ "riscv64" ], @@ -4103,9 +4117,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.10.0.tgz", - "integrity": "sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz", + "integrity": "sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==", "cpu": [ "x64" ], @@ -4116,9 +4130,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.10.0.tgz", - "integrity": "sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz", + "integrity": "sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==", "cpu": [ "x64" ], @@ -4129,9 +4143,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.10.0.tgz", - "integrity": "sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz", + "integrity": "sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==", "cpu": [ "arm64" ], @@ -4142,9 +4156,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.10.0.tgz", - "integrity": "sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz", + "integrity": "sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==", "cpu": [ "ia32" ], @@ -4155,9 +4169,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.10.0.tgz", - "integrity": "sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz", + "integrity": "sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==", "cpu": [ "x64" ], @@ -4168,14 +4182,14 @@ ] }, "node_modules/@schematics/angular": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.1.3.tgz", - "integrity": "sha512-hmeasOvzmniy6urtzUKhEqGO67iPuLX/dVtkF4nWp2NTtcEKlvcJobNDMc+CTlX4+ZMPVOvmhDMQqrlfekZ+NQ==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.2.0.tgz", + "integrity": "sha512-k5SisAPTRXxP2WVjWHgQl2sQkaAkUiOZJrHhTmUghTowULN2eIiW+1SSdNBFCbv+qkl276NfavOi22j+C7uaKQ==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.1.3", - "@angular-devkit/schematics": "17.1.3", - "jsonc-parser": "3.2.0" + "@angular-devkit/core": "17.2.0", + "@angular-devkit/schematics": "17.2.0", + "jsonc-parser": "3.2.1" }, "engines": { "node": "^18.13.0 || >=20.9.0", @@ -4184,12 +4198,12 @@ } }, "node_modules/@sigstore/bundle": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.1.1.tgz", - "integrity": "sha512-v3/iS+1nufZdKQ5iAlQKcCsoh0jffQyABvYIxKsZQFWc4ubuGjwZklFHpDgV6O6T7vvV78SW5NHI91HFKEcxKg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.2.0.tgz", + "integrity": "sha512-5VI58qgNs76RDrwXNhpmyN/jKpq9evV/7f1XrcqcAfvxDl5SeVY/I5Rmfe96ULAV7/FK5dge9RBKGBJPhL1WsQ==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1" + "@sigstore/protobuf-specs": "^0.3.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -4205,23 +4219,23 @@ } }, "node_modules/@sigstore/protobuf-specs": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz", - "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.0.tgz", + "integrity": "sha512-zxiQ66JFOjVvP9hbhGj/F/qNdsZfkGb/dVXSanNRNuAzMlr4MC95voPUBX8//ZNnmv3uSYzdfR/JSkrgvZTGxA==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/@sigstore/sign": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.2.tgz", - "integrity": "sha512-mAifqvvGOCkb5BJ5d/SRrVP5+kKCGxtcHuti6lgqZalIfNxikxlJMMptOqFp9+xV5LAnJMSaMWtzvcgNZ3PlPA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.3.tgz", + "integrity": "sha512-LqlA+ffyN02yC7RKszCdMTS6bldZnIodiox+IkT8B2f8oRYXCB3LQ9roXeiEL21m64CVH1wyveYAORfD65WoSw==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.1.1", + "@sigstore/bundle": "^2.2.0", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/protobuf-specs": "^0.3.0", "make-fetch-happen": "^13.0.0" }, "engines": { @@ -4229,12 +4243,12 @@ } }, "node_modules/@sigstore/tuf": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.0.tgz", - "integrity": "sha512-S98jo9cpJwO1mtQ+2zY7bOdcYyfVYCUaofCG6wWRzk3pxKHVAkSfshkfecto2+LKsx7Ovtqbgb2LS8zTRhxJ9Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.1.tgz", + "integrity": "sha512-9Iv40z652td/QbV0o5n/x25H9w6IYRt2pIGbTX55yFDYlApDQn/6YZomjz6+KBx69rXHLzHcbtTS586mDdFD+Q==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/protobuf-specs": "^0.3.0", "tuf-js": "^2.2.0" }, "engines": { @@ -4242,14 +4256,14 @@ } }, "node_modules/@sigstore/verify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.0.0.tgz", - "integrity": "sha512-sRU6nblDBQ4pVTWni019Kij+XQj4RP75WXN5z3qHk81dt/L8A7r3v8RgRInTup4/Jf90WNods9CcbnWj7zJ26w==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.1.0.tgz", + "integrity": "sha512-1fTqnqyTBWvV7cftUUFtDcHPdSox0N3Ub7C0lRyReYx4zZUlNTZjCV+HPy4Lre+r45dV7Qx5JLKvqqsgxuyYfg==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.1.1", + "@sigstore/bundle": "^2.2.0", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.2.1" + "@sigstore/protobuf-specs": "^0.3.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -4528,9 +4542,9 @@ } }, "node_modules/@vitejs/plugin-basic-ssl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.2.tgz", - "integrity": "sha512-DKHKVtpI+eA5fvObVgQ3QtTGU70CcCnedalzqmGSR050AzKZMdUzgC8KmlOneHWH8dF2hJ3wkC9+8FDVAaDRCw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", + "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", "dev": true, "engines": { "node": ">=14.6.0" @@ -4946,9 +4960,9 @@ "dev": true }, "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "version": "10.4.17", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", + "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", "dev": true, "funding": [ { @@ -4965,9 +4979,9 @@ } ], "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", + "browserslist": "^4.22.2", + "caniuse-lite": "^1.0.30001578", + "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -5050,29 +5064,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.7", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", - "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.4", - "core-js-compat": "^3.33.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", - "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", + "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "@babel/helper-define-polyfill-provider": "^0.5.0", + "core-js-compat": "^3.34.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -5883,12 +5881,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.35.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.1.tgz", - "integrity": "sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==", + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz", + "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==", "dev": true, "dependencies": { - "browserslist": "^4.22.2" + "browserslist": "^4.22.3" }, "funding": { "type": "opencollective", @@ -5915,15 +5913,15 @@ } }, "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, "dependencies": { + "env-paths": "^2.2.1", "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" + "parse-json": "^5.2.0" }, "engines": { "node": ">=14" @@ -6073,19 +6071,19 @@ } }, "node_modules/css-loader": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", - "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.10.0.tgz", + "integrity": "sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==", "dev": true, "dependencies": { "icss-utils": "^5.1.0", - "postcss": "^8.4.21", + "postcss": "^8.4.33", "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.3", - "postcss-modules-scope": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.4", + "postcss-modules-scope": "^3.1.1", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" + "semver": "^7.5.4" }, "engines": { "node": ">= 12.13.0" @@ -6095,7 +6093,16 @@ "url": "https://opencollective.com/webpack" }, "peerDependencies": { + "@rspack/core": "0.x || 1.x", "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/css-select": { @@ -6528,11 +6535,12 @@ "dev": true }, "node_modules/esbuild": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", - "integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.0.tgz", + "integrity": "sha512-6iwE3Y2RVYCME1jLpBqq7LQWK3MW6vjV2bZy6gt/WrqkY+WE74Spyc0ThAOYpMtITvnjX09CrC6ym7A/m9mebA==", "dev": true, "hasInstallScript": true, + "optional": true, "bin": { "esbuild": "bin/esbuild" }, @@ -6540,35 +6548,35 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.11", - "@esbuild/android-arm": "0.19.11", - "@esbuild/android-arm64": "0.19.11", - "@esbuild/android-x64": "0.19.11", - "@esbuild/darwin-arm64": "0.19.11", - "@esbuild/darwin-x64": "0.19.11", - "@esbuild/freebsd-arm64": "0.19.11", - "@esbuild/freebsd-x64": "0.19.11", - "@esbuild/linux-arm": "0.19.11", - "@esbuild/linux-arm64": "0.19.11", - "@esbuild/linux-ia32": "0.19.11", - "@esbuild/linux-loong64": "0.19.11", - "@esbuild/linux-mips64el": "0.19.11", - "@esbuild/linux-ppc64": "0.19.11", - "@esbuild/linux-riscv64": "0.19.11", - "@esbuild/linux-s390x": "0.19.11", - "@esbuild/linux-x64": "0.19.11", - "@esbuild/netbsd-x64": "0.19.11", - "@esbuild/openbsd-x64": "0.19.11", - "@esbuild/sunos-x64": "0.19.11", - "@esbuild/win32-arm64": "0.19.11", - "@esbuild/win32-ia32": "0.19.11", - "@esbuild/win32-x64": "0.19.11" + "@esbuild/aix-ppc64": "0.20.0", + "@esbuild/android-arm": "0.20.0", + "@esbuild/android-arm64": "0.20.0", + "@esbuild/android-x64": "0.20.0", + "@esbuild/darwin-arm64": "0.20.0", + "@esbuild/darwin-x64": "0.20.0", + "@esbuild/freebsd-arm64": "0.20.0", + "@esbuild/freebsd-x64": "0.20.0", + "@esbuild/linux-arm": "0.20.0", + "@esbuild/linux-arm64": "0.20.0", + "@esbuild/linux-ia32": "0.20.0", + "@esbuild/linux-loong64": "0.20.0", + "@esbuild/linux-mips64el": "0.20.0", + "@esbuild/linux-ppc64": "0.20.0", + "@esbuild/linux-riscv64": "0.20.0", + "@esbuild/linux-s390x": "0.20.0", + "@esbuild/linux-x64": "0.20.0", + "@esbuild/netbsd-x64": "0.20.0", + "@esbuild/openbsd-x64": "0.20.0", + "@esbuild/sunos-x64": "0.20.0", + "@esbuild/win32-arm64": "0.20.0", + "@esbuild/win32-ia32": "0.20.0", + "@esbuild/win32-x64": "0.20.0" } }, "node_modules/esbuild-wasm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.19.11.tgz", - "integrity": "sha512-MIhnpc1TxERUHomteO/ZZHp+kUawGEc03D/8vMHGzffLvbFLeDe6mwxqEZwlqBNY7SLWbyp6bBQAcCen8+wpjQ==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.20.0.tgz", + "integrity": "sha512-Lc9KeQCg1Zf8kCtfDXgy29rx0x8dOuhDWbkP76Wc64q7ctOOc1Zv1C39AxiE+y4N6ONyXtJk4HKpM7jlU7/jSA==", "dev": true, "bin": { "esbuild": "bin/esbuild" @@ -6920,28 +6928,15 @@ } }, "node_modules/figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "dependencies": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" + "escape-string-regexp": "^1.0.5" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7407,23 +7402,6 @@ "node": ">= 0.4" } }, - "node_modules/hdr-histogram-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", - "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", - "dev": true, - "dependencies": { - "@assemblyscript/loader": "^0.10.1", - "base64-js": "^1.2.0", - "pako": "^1.0.3" - } - }, - "node_modules/hdr-histogram-percentiles-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", - "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", - "dev": true - }, "node_modules/hosted-git-info": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", @@ -7586,9 +7564,9 @@ } }, "node_modules/http-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", - "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "dependencies": { "agent-base": "^7.1.0", @@ -7821,18 +7799,18 @@ } }, "node_modules/inquirer": { - "version": "9.2.12", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz", - "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==", + "version": "9.2.14", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.14.tgz", + "integrity": "sha512-4ByIMt677Iz5AvjyKrDpzaepIyMewNvDcvwpVVRZNmy9dLakVoVgdCHZXbK1SlVJra1db0JZ6XkJyHsanpdrdQ==", "dev": true, "dependencies": { - "@ljharb/through": "^2.3.11", + "@ljharb/through": "^2.3.12", "ansi-escapes": "^4.3.2", "chalk": "^5.3.0", "cli-cursor": "^3.1.0", "cli-width": "^4.1.0", "external-editor": "^3.1.0", - "figures": "^5.0.0", + "figures": "^3.2.0", "lodash": "^4.17.21", "mute-stream": "1.0.0", "ora": "^5.4.1", @@ -7843,7 +7821,7 @@ "wrap-ansi": "^6.2.0" }, "engines": { - "node": ">=14.18.0" + "node": ">=18" } }, "node_modules/inquirer/node_modules/chalk": { @@ -8021,18 +7999,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-what": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", @@ -8324,9 +8290,9 @@ } }, "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", "dev": true }, "node_modules/jsonfile": { @@ -8871,9 +8837,9 @@ } }, "node_modules/magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "version": "0.30.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz", + "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==", "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" @@ -9038,12 +9004,13 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", - "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.0.tgz", + "integrity": "sha512-CxmUYPFcTgET1zImteG/LZOy/4T5rTojesQXkSNBiquhydn78tfbCE9sjIjnJ/UcjNjOC1bphTCCW5rrS7cXAg==", "dev": true, "dependencies": { - "schema-utils": "^4.0.0" + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" }, "engines": { "node": ">= 12.13.0" @@ -9964,9 +9931,9 @@ } }, "node_modules/pacote": { - "version": "17.0.5", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.5.tgz", - "integrity": "sha512-TAE0m20zSDMnchPja9vtQjri19X3pZIyRpm2TJVeI+yU42leJBBDTRYhOcWFsPhaMxf+3iwQkFiKz16G9AEeeA==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.6.tgz", + "integrity": "sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ==", "dev": true, "dependencies": { "@npmcli/git": "^5.0.0", @@ -9984,7 +9951,7 @@ "promise-retry": "^2.0.1", "read-package-json": "^7.0.0", "read-package-json-fast": "^3.0.0", - "sigstore": "^2.0.0", + "sigstore": "^2.2.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, @@ -9995,12 +9962,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -10173,12 +10134,12 @@ "dev": true }, "node_modules/picomatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", - "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz", + "integrity": "sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==", "dev": true, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -10195,14 +10156,10 @@ } }, "node_modules/piscina": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.2.1.tgz", - "integrity": "sha512-LShp0+lrO+WIzB9LXO+ZmO4zGHxtTJNZhEO56H9SSu+JPaUQb6oLcTCzWi5IL2DS8/vIkCE88ElahuSSw4TAkA==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.3.1.tgz", + "integrity": "sha512-MBj0QYm3hJQ/C/wIXTN1OCYC8uQ4BBJ4LVele2P4ZwVQAH04vkk8E1SpDbuemLAL1dZorbuOob9rYqJeWCcCRg==", "dev": true, - "dependencies": { - "hdr-histogram-js": "^2.0.1", - "hdr-histogram-percentiles-obj": "^3.0.0" - }, "optionalDependencies": { "nice-napi": "^1.0.2" } @@ -10293,9 +10250,9 @@ } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "dev": true, "funding": [ { @@ -10321,25 +10278,34 @@ } }, "node_modules/postcss-loader": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz", - "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.0.tgz", + "integrity": "sha512-AbperNcX3rlob7Ay7A/HQcrofug1caABBkopoFeOQMspZBqcqj6giYn1Bwey/0uiOPAcR+NQD0I2HC7rXzk91w==", "dev": true, "dependencies": { - "cosmiconfig": "^8.3.5", + "cosmiconfig": "^9.0.0", "jiti": "^1.20.0", "semver": "^7.5.4" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { + "@rspack/core": "0.x || 1.x", "postcss": "^7.0.0 || ^8.0.1", "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/postcss-modules-extract-imports": { @@ -10699,9 +10665,9 @@ } }, "node_modules/reflect-metadata": { - "version": "0.1.14", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", - "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.1.tgz", + "integrity": "sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==", "dev": true }, "node_modules/regenerate": { @@ -10923,9 +10889,9 @@ } }, "node_modules/rollup": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.10.0.tgz", - "integrity": "sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.12.0.tgz", + "integrity": "sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -10938,19 +10904,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.10.0", - "@rollup/rollup-android-arm64": "4.10.0", - "@rollup/rollup-darwin-arm64": "4.10.0", - "@rollup/rollup-darwin-x64": "4.10.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.10.0", - "@rollup/rollup-linux-arm64-gnu": "4.10.0", - "@rollup/rollup-linux-arm64-musl": "4.10.0", - "@rollup/rollup-linux-riscv64-gnu": "4.10.0", - "@rollup/rollup-linux-x64-gnu": "4.10.0", - "@rollup/rollup-linux-x64-musl": "4.10.0", - "@rollup/rollup-win32-arm64-msvc": "4.10.0", - "@rollup/rollup-win32-ia32-msvc": "4.10.0", - "@rollup/rollup-win32-x64-msvc": "4.10.0", + "@rollup/rollup-android-arm-eabi": "4.12.0", + "@rollup/rollup-android-arm64": "4.12.0", + "@rollup/rollup-darwin-arm64": "4.12.0", + "@rollup/rollup-darwin-x64": "4.12.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.12.0", + "@rollup/rollup-linux-arm64-gnu": "4.12.0", + "@rollup/rollup-linux-arm64-musl": "4.12.0", + "@rollup/rollup-linux-riscv64-gnu": "4.12.0", + "@rollup/rollup-linux-x64-gnu": "4.12.0", + "@rollup/rollup-linux-x64-musl": "4.12.0", + "@rollup/rollup-win32-arm64-msvc": "4.12.0", + "@rollup/rollup-win32-ia32-msvc": "4.12.0", + "@rollup/rollup-win32-x64-msvc": "4.12.0", "fsevents": "~2.3.2" } }, @@ -11026,9 +10992,9 @@ "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==" }, "node_modules/sass": { - "version": "1.69.7", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.7.tgz", - "integrity": "sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ==", + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.70.0.tgz", + "integrity": "sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -11043,29 +11009,29 @@ } }, "node_modules/sass-loader": { - "version": "13.3.3", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.3.tgz", - "integrity": "sha512-mt5YN2F1MOZr3d/wBRcZxeFgwgkH44wVc2zohO2YF6JiOMkiXe4BYRZpSu2sO1g71mo/j16txzUhsKZlqjVGzA==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-14.1.0.tgz", + "integrity": "sha512-LS2mLeFWA+orYxHNu+O18Xe4jR0kyamNOOUsE3NyBP4DvIL+8stHpNX0arYTItdPe80kluIiJ7Wfe/9iHSRO0Q==", "dev": true, "dependencies": { "neo-async": "^2.6.2" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "fibers": ">= 3.1.0", + "@rspack/core": "0.x || 1.x", "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", "sass": "^1.3.0", "sass-embedded": "*", "webpack": "^5.0.0" }, "peerDependenciesMeta": { - "fibers": { + "@rspack/core": { "optional": true }, "node-sass": { @@ -11076,6 +11042,9 @@ }, "sass-embedded": { "optional": true + }, + "webpack": { + "optional": true } } }, @@ -11406,17 +11375,17 @@ "dev": true }, "node_modules/sigstore": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.1.tgz", - "integrity": "sha512-OBBSKvmjr4DCyUb+IC2p7wooOCsCNwaqvCilTJVNPo0y8lJl+LsCrfz4LtMwnw3Gn+8frt816wi1+DWZTUCpBQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.2.tgz", + "integrity": "sha512-2A3WvXkQurhuMgORgT60r6pOWiCOO5LlEqY2ADxGBDGVYLSo5HN0uLtb68YpVpuL/Vi8mLTe7+0Dx2Fq8lLqEg==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.1.1", + "@sigstore/bundle": "^2.2.0", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.2.1", - "@sigstore/sign": "^2.2.2", - "@sigstore/tuf": "^2.3.0", - "@sigstore/verify": "^1.0.0" + "@sigstore/protobuf-specs": "^0.3.0", + "@sigstore/sign": "^2.2.3", + "@sigstore/tuf": "^2.3.1", + "@sigstore/verify": "^1.1.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -11603,9 +11572,9 @@ } }, "node_modules/spdx-exceptions": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz", - "integrity": "sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "dev": true }, "node_modules/spdx-expression-parse": { @@ -11878,9 +11847,9 @@ "dev": true }, "node_modules/terser": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.26.0.tgz", - "integrity": "sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", + "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -11992,12 +11961,6 @@ "node": ">=8" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -12142,9 +12105,9 @@ } }, "node_modules/undici": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.2.1.tgz", - "integrity": "sha512-7Wa9thEM6/LMnnKtxJHlc8SrTlDmxqJecgz1iy8KlsN0/iskQXOQCuPkrZLXbElPaSw5slFFyKIKXyJ3UtbApw==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.6.2.tgz", + "integrity": "sha512-vSqvUE5skSxQJ5sztTZ/CdeJb1Wq0Hf44hlYMciqHghvz+K88U0l7D6u1VsndoFgskDcnU+nG3gYmMzJVzd9Qg==", "dev": true, "dependencies": { "@fastify/busboy": "^2.0.0" @@ -12389,6 +12352,412 @@ } } }, + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, "node_modules/void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", @@ -12430,19 +12799,19 @@ } }, "node_modules/webpack": { - "version": "5.89.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", - "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", + "version": "5.90.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz", + "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", + "@types/estree": "^1.0.5", "@webassemblyjs/ast": "^1.11.5", "@webassemblyjs/wasm-edit": "^1.11.5", "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", + "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.15.0", "es-module-lexer": "^1.2.1", @@ -12456,7 +12825,7 @@ "neo-async": "^2.6.2", "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", + "terser-webpack-plugin": "^5.3.10", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, diff --git a/viewer/package.json b/viewer/package.json index 9707864..3ec77ff 100644 --- a/viewer/package.json +++ b/viewer/package.json @@ -14,16 +14,16 @@ }, "private": true, "dependencies": { - "@angular/animations": "^17.1.3", + "@angular/animations": "^17.2.2", "@angular/cdk": "^17.1.2", - "@angular/common": "^17.1.3", - "@angular/compiler": "^17.1.3", - "@angular/core": "^17.1.3", - "@angular/forms": "^17.1.3", + "@angular/common": "^17.2.2", + "@angular/compiler": "^17.2.2", + "@angular/core": "^17.2.2", + "@angular/forms": "^17.2.2", "@angular/material": "^17.1.2", - "@angular/platform-browser": "^17.1.3", - "@angular/platform-browser-dynamic": "^17.1.3", - "@angular/router": "^17.1.3", + "@angular/platform-browser": "^17.2.2", + "@angular/platform-browser-dynamic": "^17.2.2", + "@angular/router": "^17.2.2", "@ngbracket/ngx-layout": "^17.0.1", "ajv": "^8.12.0", "rxjs": "~7.8.0", @@ -31,9 +31,9 @@ "zone.js": "~0.14.2" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.1.3", - "@angular/cli": "^17.1.3", - "@angular/compiler-cli": "^17.1.3", + "@angular-devkit/build-angular": "^17.2.0", + "@angular/cli": "^17.2.0", + "@angular/compiler-cli": "^17.2.2", "@types/jasmine": "~5.1.0", "ajv-formats": "^2.1.1", "axios": "^1.6.7", @@ -45,4 +45,4 @@ "karma-jasmine-html-reporter": "~2.1.0", "typescript": "~5.2.2" } -} +} \ No newline at end of file From dd99856096606703a21ce80486839d90d4ff338d Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Thu, 22 Feb 2024 18:05:27 +0100 Subject: [PATCH 28/76] fix: update material Signed-off-by: Mirko Mollik --- viewer/package-lock.json | 18 +++++++++--------- viewer/package.json | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/viewer/package-lock.json b/viewer/package-lock.json index b4557f8..023339b 100644 --- a/viewer/package-lock.json +++ b/viewer/package-lock.json @@ -9,12 +9,12 @@ "version": "0.0.0", "dependencies": { "@angular/animations": "^17.2.2", - "@angular/cdk": "^17.1.2", + "@angular/cdk": "^17.2.1", "@angular/common": "^17.2.2", "@angular/compiler": "^17.2.2", "@angular/core": "^17.2.2", "@angular/forms": "^17.2.2", - "@angular/material": "^17.1.2", + "@angular/material": "^17.2.1", "@angular/platform-browser": "^17.2.2", "@angular/platform-browser-dynamic": "^17.2.2", "@angular/router": "^17.2.2", @@ -309,9 +309,9 @@ } }, "node_modules/@angular/cdk": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.1.2.tgz", - "integrity": "sha512-eu9D60RQv213qi7oh6ae9Z+d6+AG/aqi0y70Ag9BjwqTiatDiYvSySxswxYYKdzPp0hx0ZUTGi16LqtT6pyj6Q==", + "version": "17.2.1", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.2.1.tgz", + "integrity": "sha512-9cWV9MyWnpImns/WQApgoQBKblXA9Zx2CpCkDNipRgx9RyvGrvCLjpEfwQI4HjpPAQDI1trsbeJKihzgz4tFgw==", "dependencies": { "tslib": "^2.3.0" }, @@ -486,9 +486,9 @@ } }, "node_modules/@angular/material": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-17.1.2.tgz", - "integrity": "sha512-50n7JDWtWGCxfrMKVKZ2wqkdozukA3IWeypQgXxzZc+4jqgT6Vj8/U4xNvcO9OgPLMOaTvktfT+wzUmCKJ0sng==", + "version": "17.2.1", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-17.2.1.tgz", + "integrity": "sha512-NLQJkX4XiwIm32dGdNseoc+ARn6JvuB2xMY5XfWTtjJBbQaPk5sIvjH4wsAEeYqDKtZbRCjxGwRz0K1djyaVqQ==", "dependencies": { "@material/animation": "15.0.0-canary.7f224ddd4.0", "@material/auto-init": "15.0.0-canary.7f224ddd4.0", @@ -541,7 +541,7 @@ }, "peerDependencies": { "@angular/animations": "^17.0.0 || ^18.0.0", - "@angular/cdk": "17.1.2", + "@angular/cdk": "17.2.1", "@angular/common": "^17.0.0 || ^18.0.0", "@angular/core": "^17.0.0 || ^18.0.0", "@angular/forms": "^17.0.0 || ^18.0.0", diff --git a/viewer/package.json b/viewer/package.json index 3ec77ff..549b81f 100644 --- a/viewer/package.json +++ b/viewer/package.json @@ -15,12 +15,12 @@ "private": true, "dependencies": { "@angular/animations": "^17.2.2", - "@angular/cdk": "^17.1.2", + "@angular/cdk": "^17.2.1", "@angular/common": "^17.2.2", "@angular/compiler": "^17.2.2", "@angular/core": "^17.2.2", "@angular/forms": "^17.2.2", - "@angular/material": "^17.1.2", + "@angular/material": "^17.2.1", "@angular/platform-browser": "^17.2.2", "@angular/platform-browser-dynamic": "^17.2.2", "@angular/router": "^17.2.2", From 10bfe61f2bf7111c4b25dade9ba1129e32cd6b06 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Fri, 23 Feb 2024 10:26:50 +0100 Subject: [PATCH 29/76] fix: add maintainer file (#25) Signed-off-by: Mirko Mollik Co-authored-by: Mirko Mollik Signed-off-by: Mirko Mollik --- MAINTAINERS.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 MAINTAINERS.md diff --git a/MAINTAINERS.md b/MAINTAINERS.md new file mode 100644 index 0000000..980d799 --- /dev/null +++ b/MAINTAINERS.md @@ -0,0 +1,30 @@ +# Maintainers + +| Maintainer | GitHub ID | Company Affiliation | +| ----------------- | --------------- | ------------------- | +| Maaike van Leuken | maaikevanleuken | TNO | +| Samuel Rinnetmäki | samuelmr | Findynet | +| Mirko Mollik | cre8 | Fraunhofer FIT | + +## 1. What Does Being a Maintainer Entail + +- Reviewing code contributions. +- Managing issues and bugs. +- Maintaining documentation. +- Communicating with the community. +- Managing version control. +- Participating in project decisions. +- Building and sustaining a contributor community. + +## 2. How to Become a Maintainer + +Before being considered as a maintainer, contributors should meet the following requirements: + +- A history of substantial and consistent contributions to the project. +- A deep understanding of the project's goals, codebase, and best practices. +- Active involvement in the community, including helping others and engaging in discussions. +- Ultimately, the maintainers decide who will become the new maintainer through a majority vote. + +## 3. How Maintainers are Removed or Moved to Emeritus Status + +- Inactivity or consensus decision can lead to removal. From 18c51f6ca728763230b52a9b2904071cd2c85753 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Wed, 28 Feb 2024 20:37:47 +0100 Subject: [PATCH 30/76] fix: add info icon (but it's hidden right now) Signed-off-by: Mirko Mollik --- viewer/src/app/wallets-list/wallets-list.component.html | 9 +++++++++ viewer/src/app/wallets-list/wallets-list.component.scss | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/viewer/src/app/wallets-list/wallets-list.component.html b/viewer/src/app/wallets-list/wallets-list.component.html index 974cdf0..c305917 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.html +++ b/viewer/src/app/wallets-list/wallets-list.component.html @@ -21,6 +21,7 @@ [matTooltip]="walletsService.getTooltip('name')" > Name + info
@@ -42,6 +43,7 @@ [matTooltip]="walletsService.getTooltip('company')" > Company + info Open Source + info {{ element.openSource }} @@ -74,6 +77,7 @@ matTooltip="Link to the app stores" > Link to app + info License + info {{ element.license }} @@ -120,6 +125,7 @@ [matTooltip]="walletsService.getTooltip('capability')" > Capability + info
@@ -139,6 +145,7 @@ [matTooltip]="walletsService.getTooltip('type')" > Type + info {{ element.type }} @@ -152,6 +159,7 @@ [matTooltip]="walletsService.getTooltip('portability')" > Portability + info {{ element.portability }} @@ -166,6 +174,7 @@ [matTooltip]="walletsService.getTooltip(resource.id)" > {{ resource.name }} + info @for (profile of element[resource.id]; track profile) { diff --git a/viewer/src/app/wallets-list/wallets-list.component.scss b/viewer/src/app/wallets-list/wallets-list.component.scss index 0b132ca..626e73e 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.scss +++ b/viewer/src/app/wallets-list/wallets-list.component.scss @@ -10,3 +10,8 @@ height: calc(100vh - 169px); overflow: auto; } + +.info { + margin-left: 5px; + // display: none; +} From 9b0972ef97c212f9566c640da61b3ad3dffbb6bd Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Wed, 28 Feb 2024 20:40:48 +0100 Subject: [PATCH 31/76] fix: include vertical lines Signed-off-by: Mirko Mollik --- viewer/src/app/wallets-list/wallets-list.component.scss | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/viewer/src/app/wallets-list/wallets-list.component.scss b/viewer/src/app/wallets-list/wallets-list.component.scss index 626e73e..0632728 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.scss +++ b/viewer/src/app/wallets-list/wallets-list.component.scss @@ -15,3 +15,11 @@ margin-left: 5px; // display: none; } + +.mat-mdc-cell { + font-size: 14px; + min-height: 48px; + text-align: center; + border-right: 1px solid; + border-right-color: var(--mat-table-row-item-outline-color); +} From fc5642ae26e873eec4dfc40ab3cfcccea873ace4 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Wed, 28 Feb 2024 20:45:12 +0100 Subject: [PATCH 32/76] hide icons for now Signed-off-by: Mirko Mollik --- viewer/src/app/wallets-list/wallets-list.component.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/viewer/src/app/wallets-list/wallets-list.component.scss b/viewer/src/app/wallets-list/wallets-list.component.scss index 0632728..40abf20 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.scss +++ b/viewer/src/app/wallets-list/wallets-list.component.scss @@ -13,7 +13,7 @@ .info { margin-left: 5px; - // display: none; + display: none; } .mat-mdc-cell { From 388df9390db46dc98c960d8bdb8d3a62cdbfc9a0 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Tue, 5 Mar 2024 15:55:22 +0100 Subject: [PATCH 33/76] fix: sorting name column Signed-off-by: Mirko Mollik --- viewer/src/app/wallets-list/wallets-list.component.html | 2 +- viewer/src/app/wallets-list/wallets-list.component.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/viewer/src/app/wallets-list/wallets-list.component.html b/viewer/src/app/wallets-list/wallets-list.component.html index c305917..56b4678 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.html +++ b/viewer/src/app/wallets-list/wallets-list.component.html @@ -13,7 +13,7 @@
- + + + + @@ -100,6 +124,14 @@

Wallet Overview

The emailaddress for support. + - + + + + - + + @@ -28,9 +32,9 @@ fetch("wallets.json") - - - + + + @@ -45,7 +49,7 @@ fetch("wallets.json") - + From 1e5e0bac476016305d66682789cfcf8914d43846 Mon Sep 17 00:00:00 2001 From: Maaike van Leuken <97684325+maaikevanleuken@users.noreply.github.com> Date: Thu, 25 Jan 2024 09:09:11 +0100 Subject: [PATCH 36/76] Update script.js (#18) import new flattened wallets document Signed-off-by: Maaike van Leuken <97684325+maaikevanleuken@users.noreply.github.com> Signed-off-by: Mirko Mollik --- script.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/script.js b/script.js index 1f49486..381e79b 100644 --- a/script.js +++ b/script.js @@ -1,4 +1,4 @@ -fetch("wallets.json") +fetch("flattened_wallets.json") .then(function(response){ return response.json(); }) @@ -64,4 +64,4 @@ fetch("wallets.json") } placeholder.innerHTML = out; -}); \ No newline at end of file +}); From fcee41c449a107819947eeecfee8585092ff6d1a Mon Sep 17 00:00:00 2001 From: Maaike van Leuken <97684325+maaikevanleuken@users.noreply.github.com> Date: Thu, 25 Jan 2024 09:30:36 +0100 Subject: [PATCH 37/76] Maaikevanleuken patch 7 (#20) * Update script.js fixing names Signed-off-by: Maaike van Leuken <97684325+maaikevanleuken@users.noreply.github.com> * Update index.html Signed-off-by: Maaike van Leuken <97684325+maaikevanleuken@users.noreply.github.com> --------- Signed-off-by: Maaike van Leuken <97684325+maaikevanleuken@users.noreply.github.com> Signed-off-by: Mirko Mollik --- index.html | 6 +++--- script.js | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/index.html b/index.html index e27f2e4..d625416 100644 --- a/index.html +++ b/index.html @@ -24,7 +24,7 @@

Wallet Overview

- + @@ -91,7 +91,7 @@

Wallet Overview

- - - - + + @@ -30,7 +30,7 @@ fetch("flattened_wallets.json") - + @@ -54,10 +54,10 @@ fetch("flattened_wallets.json") - - - - + + + + `; From 28cdc8b531d118606b9be0f5333f740be76ddd96 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:24:30 +0100 Subject: [PATCH 38/76] replace application with angular, restructure wallet data Signed-off-by: Mirko Mollik --- .github/workflows/count.yml | 37 + .github/workflows/main.yml | 91 + README.md | 9 +- flattened_wallets.json | 3198 ++-- index.html | 471 - schema.json | 29 + script.js | 67 - styles.css | 203 - viewer/.editorconfig | 16 + viewer/.gitignore | 43 + viewer/.vscode/extensions.json | 4 + viewer/.vscode/launch.json | 20 + viewer/.vscode/tasks.json | 42 + viewer/README.md | 27 + viewer/angular.json | 109 + viewer/package-lock.json | 12839 ++++++++++++++++ viewer/package.json | 44 + viewer/scripts/merge-wallets.mjs | 23 + viewer/scripts/validate.mjs | 21 + viewer/src/app/app.component.html | 114 + viewer/src/app/app.component.scss | 22 + viewer/src/app/app.component.spec.ts | 29 + viewer/src/app/app.component.ts | 63 + viewer/src/app/app.config.ts | 9 + viewer/src/app/app.routes.ts | 3 + viewer/src/app/types.ts | 85 + viewer/src/assets/.gitkeep | 0 viewer/src/assets/default-image.png | Bin 0 -> 2568 bytes viewer/src/assets/github.svg | 1 + .../src/assets/logos}/Gimly-wallet.png | Bin .../src/assets/logos}/VIDwallet.png | Bin {static => viewer/src/assets/logos}/altme.png | Bin .../src/assets/logos}/atala-prism.png | Bin .../src/assets/logos}/certishare-wallet.png | Bin .../src/assets/logos}/data-wallet.png | Bin .../src/assets/logos}/datakeeper.png | Bin .../src/assets/logos}/esatus-wallet.png | Bin .../src/assets/logos}/gataca.png | Bin .../src/assets/logos}/helix-id.png | Bin .../src/assets/logos}/identry.png | Bin .../src/assets/logos}/lissi-wallet.png | Bin .../src/assets/logos}/mattr-wallet.png | Bin .../src/assets/logos}/mykeepin.png | Bin .../src/assets/logos}/paradym-wallet.png | Bin .../src/assets/logos}/sphereon-wallet.png | Bin .../src/assets/logos}/spherity-wallet.png | Bin {static => viewer/src/assets/logos}/talao.png | Bin .../src/assets/logos}/walt-id.png | Bin {static => viewer/src/assets/logos}/yivi.png | Bin {static => viewer/src/assets/logos}/zada.png | Bin viewer/src/assets/project-icon.png | Bin 0 -> 6777 bytes .../environments/environment.development.ts | 1 + viewer/src/environments/environment.ts | 1 + viewer/src/favicon.ico | Bin 0 -> 15086 bytes viewer/src/index.html | 21 + viewer/src/main.ts | 6 + viewer/src/styles.scss | 12 + viewer/tsconfig.app.json | 14 + viewer/tsconfig.json | 33 + viewer/tsconfig.spec.json | 14 + wallets/AceID Wallet.json | 10 + wallets/Apple Wallet.json | 8 + wallets/Atala PRISM.json | 31 + wallets/Authenticator.json | 8 + wallets/BC Wallet.json | 8 + wallets/Blockcerts Wallet.json | 10 + wallets/Blockpass.json | 10 + wallets/CertiShare Wallet.json | 31 + wallets/Data Wallet.json | 42 + wallets/Datakeeper.json | 33 + wallets/Digital ID Wallet.json | 8 + wallets/Gataca.json | 33 + wallets/IDEMIA Mobile ID.json | 8 + wallets/Identry.json | 30 + wallets/KayTrust Wallet.json | 10 + wallets/Lissi Wallet.json | 32 + wallets/MATTR Wallet.json | 33 + wallets/MYKEEPiN.json | 33 + wallets/Microsoft Entra.json | 8 + wallets/Paradym Wallet.json | 33 + wallets/Sphereon Wallet.json | 33 + wallets/Spherity Wallet.json | 30 + wallets/Talao.json | 31 + wallets/Tap ID.json | 23 + wallets/VIDwallet.json | 32 + wallets/Yivi.json | 33 + wallets/ZADA.json | 32 + wallets/esatus Wallet.json | 36 + wallets/helix id.json | 33 + wallets/idento.one.json | 7 + wallets/walt.id.json | 30 + 91 files changed, 16119 insertions(+), 2341 deletions(-) create mode 100644 .github/workflows/count.yml create mode 100644 .github/workflows/main.yml delete mode 100644 index.html create mode 100644 schema.json delete mode 100644 script.js delete mode 100644 styles.css create mode 100644 viewer/.editorconfig create mode 100644 viewer/.gitignore create mode 100644 viewer/.vscode/extensions.json create mode 100644 viewer/.vscode/launch.json create mode 100644 viewer/.vscode/tasks.json create mode 100644 viewer/README.md create mode 100644 viewer/angular.json create mode 100644 viewer/package-lock.json create mode 100644 viewer/package.json create mode 100644 viewer/scripts/merge-wallets.mjs create mode 100644 viewer/scripts/validate.mjs create mode 100644 viewer/src/app/app.component.html create mode 100644 viewer/src/app/app.component.scss create mode 100644 viewer/src/app/app.component.spec.ts create mode 100644 viewer/src/app/app.component.ts create mode 100644 viewer/src/app/app.config.ts create mode 100644 viewer/src/app/app.routes.ts create mode 100644 viewer/src/app/types.ts create mode 100644 viewer/src/assets/.gitkeep create mode 100644 viewer/src/assets/default-image.png create mode 100644 viewer/src/assets/github.svg rename {static => viewer/src/assets/logos}/Gimly-wallet.png (100%) rename {static => viewer/src/assets/logos}/VIDwallet.png (100%) rename {static => viewer/src/assets/logos}/altme.png (100%) rename {static => viewer/src/assets/logos}/atala-prism.png (100%) rename {static => viewer/src/assets/logos}/certishare-wallet.png (100%) rename {static => viewer/src/assets/logos}/data-wallet.png (100%) rename {static => viewer/src/assets/logos}/datakeeper.png (100%) rename {static => viewer/src/assets/logos}/esatus-wallet.png (100%) rename {static => viewer/src/assets/logos}/gataca.png (100%) rename {static => viewer/src/assets/logos}/helix-id.png (100%) rename {static => viewer/src/assets/logos}/identry.png (100%) rename {static => viewer/src/assets/logos}/lissi-wallet.png (100%) rename {static => viewer/src/assets/logos}/mattr-wallet.png (100%) rename {static => viewer/src/assets/logos}/mykeepin.png (100%) rename {static => viewer/src/assets/logos}/paradym-wallet.png (100%) rename {static => viewer/src/assets/logos}/sphereon-wallet.png (100%) rename {static => viewer/src/assets/logos}/spherity-wallet.png (100%) rename {static => viewer/src/assets/logos}/talao.png (100%) rename {static => viewer/src/assets/logos}/walt-id.png (100%) rename {static => viewer/src/assets/logos}/yivi.png (100%) rename {static => viewer/src/assets/logos}/zada.png (100%) create mode 100644 viewer/src/assets/project-icon.png create mode 100644 viewer/src/environments/environment.development.ts create mode 100644 viewer/src/environments/environment.ts create mode 100644 viewer/src/favicon.ico create mode 100644 viewer/src/index.html create mode 100644 viewer/src/main.ts create mode 100644 viewer/src/styles.scss create mode 100644 viewer/tsconfig.app.json create mode 100644 viewer/tsconfig.json create mode 100644 viewer/tsconfig.spec.json create mode 100644 wallets/AceID Wallet.json create mode 100644 wallets/Apple Wallet.json create mode 100644 wallets/Atala PRISM.json create mode 100644 wallets/Authenticator.json create mode 100644 wallets/BC Wallet.json create mode 100644 wallets/Blockcerts Wallet.json create mode 100644 wallets/Blockpass.json create mode 100644 wallets/CertiShare Wallet.json create mode 100644 wallets/Data Wallet.json create mode 100644 wallets/Datakeeper.json create mode 100644 wallets/Digital ID Wallet.json create mode 100644 wallets/Gataca.json create mode 100644 wallets/IDEMIA Mobile ID.json create mode 100644 wallets/Identry.json create mode 100644 wallets/KayTrust Wallet.json create mode 100644 wallets/Lissi Wallet.json create mode 100644 wallets/MATTR Wallet.json create mode 100644 wallets/MYKEEPiN.json create mode 100644 wallets/Microsoft Entra.json create mode 100644 wallets/Paradym Wallet.json create mode 100644 wallets/Sphereon Wallet.json create mode 100644 wallets/Spherity Wallet.json create mode 100644 wallets/Talao.json create mode 100644 wallets/Tap ID.json create mode 100644 wallets/VIDwallet.json create mode 100644 wallets/Yivi.json create mode 100644 wallets/ZADA.json create mode 100644 wallets/esatus Wallet.json create mode 100644 wallets/helix id.json create mode 100644 wallets/idento.one.json create mode 100644 wallets/walt.id.json diff --git a/.github/workflows/count.yml b/.github/workflows/count.yml new file mode 100644 index 0000000..26458be --- /dev/null +++ b/.github/workflows/count.yml @@ -0,0 +1,37 @@ +name: Count Files and Publish to badge-info + +on: + push: + branches: + - main + +permissions: + contents: write + +jobs: + count_files_and_publish_to_badgeinfo: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Count files in wallet folder + id: file_count + run: | + file_count=$(find wallets -type f | wc -l) + echo "wallet-count=$file_count" >> $GITHUB_OUTPUT + + - name: Create JSON file + run: | + mkdir values + echo "{ \"schemaVersion\": 1, \"label\": \"Profiles\", \"message\": \"${{ steps.file_count.outputs.wallet-count }}\", \"color\": \"green\" }" > values/profiles.json + + # Deploy to local repo + - name: Deploy + uses: s0/git-publish-subdir-action@develop + env: + REPO: self + BRANCH: badge-info + FOLDER: values + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..5955bc3 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,91 @@ +name: Publish GitHub Pages + +on: + pull_request: + types: + - opened + - synchronize + push: + branches: + - main + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: 'pages' + cancel-in-progress: false + +jobs: + validate: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: 18 + + - name: Install dependencies + run: cd viewer && npm ci + + #TODO: we are not validating the schemas of the data files yet. + # - name: Validate + # run: cd viewer && npm run validate + + build: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: 18 + + - name: Install dependencies + run: cd viewer && npm ci + + - name: Build Angular app + run: cd viewer && npm run build -- --configuration production + + - name: upload artifacts + uses: actions/upload-artifact@v3 + with: + name: viewer + path: viewer/dist/browser + + publish: + # only run on the main branch + if: github.ref == 'refs/heads/main' + needs: [validate, build] + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Download artifact from build job + uses: actions/download-artifact@v3 + with: + name: viewer + + - name: Setup Pages + uses: actions/configure-pages@v3 + + - name: Upload artifact + uses: actions/upload-pages-artifact@v1 + with: + # Upload entire repository + path: '.' + + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 diff --git a/README.md b/README.md index d3984af..b2b6a05 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ +//TODO: set correct path to repo +![Wallets](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fopenwallet-foundation%2Fcredential-format-comparison-sig%2Fbadge-info%2Fprofiles.json) + # Digital Wallet and Agent Overviews Special Interest Group (SIG) The objectives of this SIG is to further develop and maintain the Digital Wallet Overview and including the digital identity agents/SDKs in the overview. The overview can be found [here](https://openwallet-foundation.github.io/digital-wallet-and-agent-overviews-sig/). These overview should provide transparency of the characteristics of wallets and agents in order to allow for comparison and effective decision making on which wallet is applicable for your use case. By creating awareness of these overviews, this work can lead to less fragmentation of the SSI playing field and increase adoption. @@ -5,19 +8,23 @@ The objectives of this SIG is to further develop and maintain the Digital Wallet This SIG was accepted by the TAC on [September 20, 2023](../meetings/2023/2023-09-20.md). See [Digital Wallet and Agent Overviews SIG Proposal](https://github.com/openwallet-foundation/tac/issues/56) for more details. ## Participating + This SIG is an open group. Anyone in the OpenWallet Foundation community can join and participate. There is no formal sign up process. Just show up and participate. -If you are interested in participating, please join the [OpenWallet Foundation Discord](https://discord.gg/openwalletfoundation) and participate in the discussion in the [#digital-wallet-and-agent-overviews-sig](https://discord.com/channels/1022962884864643214/1154111877077532814) channel. +If you are interested in participating, please join the [OpenWallet Foundation Discord](https://discord.gg/openwalletfoundation) and participate in the discussion in the [#digital-wallet-and-agent-overviews-sig](https://discord.com/channels/1022962884864643214/1154111877077532814) channel. Upcoming meetings: + - November 16th, 7:00 AM PT / 16:00 CET - November 30th, 7:00 AM PT / 16:00 CET - December 14th, 7:00 AM PT / 16:00 CET ## Target Audience + This overview should be usable by persons and organisations. Anyone willing to use digital wallets or agents for digital credential purposes should be able to objectively compare the characteristics of wallets/agents and create a short-list of candidates for their use case. It can also serve as resource for market awareness and visibility of wallets/agents for wallet/agent vendors. ## Scoping + We use the terminilogy on digital credentials, wallets and agents as described in the [ToIP glossary](https://docs.google.com/document/d/1fZByfuSOwszDRkE7ARQLeElSYmVznoOyJK4sxRvJpyM/edit). Included in the overview are holder agents+wallets, issuer agents and verifier agents. Initially, we will only include wallets and agents that at least have the functionality to store and exchange digital credentials. diff --git a/flattened_wallets.json b/flattened_wallets.json index 149b1d1..b424c6f 100644 --- a/flattened_wallets.json +++ b/flattened_wallets.json @@ -1,1600 +1,1600 @@ [ - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "AceBlock blockchain framework", - "blockchainUsed": "Yes", - "company": "AceBlock", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/aceid-wallet.png", - "mdoc": "-", - "name": "AceID Wallet", - "observability": "-", - "offlineFriendly": "-", - "openSource": "-", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "-", - "blockchainUsed": "-", - "company": "Apple", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/apple-wallet.png", - "mdoc": "-", - "name": "Apple Wallet", - "observability": "-", - "offlineFriendly": "-", - "openSource": "-", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Anchoring public DIDs for issuers and/or verifiers (ie: enabling trust registry)", - "blockchainType": "Cardano", - "blockchainUsed": "Yes", - "company": "IOHK", - "connectionTypes": "Connection-based communication", - "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "JWT-VC, soon:AnonCreds", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "No", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "JSON, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "-", - "identifierHolder": "did:prism", - "identifierIssuer": "did:prism", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/atala-prism.png", - "mdoc": "-", - "name": "Atala PRISM", - "observability": "-", - "offlineFriendly": "-", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "DIDComm", - "portability": "-", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Revocation not supported, soon: Revocation List 2021", - "scope": "-", - "selectiveDisclosure": "No", - "signatureAlgorithm": "ECDSA, soon: CL", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "-", - "blockchainUsed": "-", - "company": "Microsoft", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/authenticator.png", - "mdoc": "-", - "name": "Authenticator", - "observability": "-", - "offlineFriendly": "-", - "openSource": "-", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "-", - "blockchainUsed": "-", - "company": "Government of BC", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/bc-wallet.png", - "mdoc": "-", - "name": "BC Wallet", - "observability": "-", - "offlineFriendly": "-", - "openSource": "-", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "Bitcoin and Ethereum, with Merkle proof linking credential to blockchain transaction", - "blockchainUsed": "Yes", - "company": "Hyland Credentials (formerly: Learning Machine)", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/blockcerts-wallet.png", - "mdoc": "-", - "name": "Blockcerts Wallet", - "observability": "-", - "offlineFriendly": "-", - "openSource": "Yes", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "Ethereum or Blockpass", - "blockchainUsed": "Yes", - "company": "Blockpass IDN", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/blockpass.png", - "mdoc": "-", - "name": "Blockpass", - "observability": "-", - "offlineFriendly": "-", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Schema, CredentialDefinitions, DID, Revocation", - "blockchainType": "Hyperledger Indy", - "blockchainUsed": "Yes", - "company": "The Ego Company", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "AnonCred, JSON-LD", - "cryptoAgility": "No", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "-", - "identifierHolder": "did:", - "identifierIssuer": "did:sov", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/certishare-wallet.png", - "mdoc": "-", - "name": "CertiShare Wallet", - "observability": "No", - "offlineFriendly": "-", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "DIDComm, DID Exchange Protocol, openID", - "portability": "-", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "Yes", - "api": "-", - "blockchainPurpose": "For publishing schema IDs, credential def IDs and public DID", - "blockchainType": "Hyperledger Indy, Ethereum, EBSI blockchain", - "blockchainUsed": "Yes", - "company": "iGrant.io", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange, DEXA", - "credentialFormat": "AnonCreds, JWT-VC, ICAO DTC, x.509", - "cryptoAgility": "No", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "Yes", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "-", - "identifierHolder": "did:ebsi, did:key, link secrets, X.509", - "identifierIssuer": "did:ebsi, did:key, did:sov, X.509", - "issuerCapability": "-", - "keyHistoryHolder": "Yes", - "keyHistoryIssuer": "Yes", - "keyRotationHolder": "Yes", - "keyRotationIssuer": "Yes", - "logo": "static/data-wallet.png", - "mdoc": "Planned", - "name": "Data Wallet", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "No", - "organisationalWallet": "Yes, but branded as Enterprise Wallet Platform by iGrant.io", - "peer2PeerProtocols": "OIDC4VC, OIDC4VP, SIOPv2, DIDComm, DID Exchange Protocol, Connection protocols in AIP 1.0", - "portability": "-", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation, EBSI revocation, W3C Status List 2021, SLTD database (travel and identity documents), CRL - certificate revocation list", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL, ES256, ECDSA", - "support": "support@igrant.io", - "urlAppStore": "https://apple.co/2Mz9nJp", - "urlGooglePlayStore": "https://play.google.com/store/apps/details?id=io.igrant.mobileagent", - "urlWebApp": "https://business.igrant.io/", - "urlWebsite": "https://igrant.io/datawallet.html", - "verifierCapability": "-", - "verifierUnlinkability": "Yes" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "N/A", - "blockchainType": "N/A", - "blockchainUsed": "No", - "company": "Rabobank Nederland", - "connectionTypes": "Direct communication", - "credExchangeProtocol": "Datakeeper protocol (Verifiable Presentation)", - "credentialFormat": "LDP-VC", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "Yes", - "ebsi": "-", - "encodingScheme": "JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "-", - "identifierHolder": "did:eth", - "identifierIssuer": "did:eth", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/datakeeper.png", - "mdoc": "-", - "name": "Datakeeper", - "observability": "No", - "offlineFriendly": "No", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "Datakeeper protocol", - "portability": "-", - "predicates": "Depending on ...", - "quantumSafe": "No", - "revocationAlgorithm": "Validity credential, Revocation not supported", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "ECDSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "-", - "blockchainUsed": "-", - "company": "Thales", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/digital-id-wallet.png", - "mdoc": "-", - "name": "Digital ID Wallet", - "observability": "-", - "offlineFriendly": "-", - "openSource": "-", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "N/A", - "blockchainType": "N/A", - "blockchainUsed": "No", - "company": "esatus AG", - "connectionTypes": "Connection-based communication", - "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "AnonCred", - "cryptoAgility": "No", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "Yes", - "ebsi": "-", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "-", - "identifierHolder": "Link secret", - "identifierIssuer": "Link secret", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/esatus-wallet.png", - "mdoc": "-", - "name": "esatus Wallet", - "observability": "No", - "offlineFriendly": "No", - "openSource": "A new version of the wallet - called SOWL wallet - will be available soon, together with an open source wallet SDK on which SOWL Wallet is based.", - "organisationalWallet": "-", - "peer2PeerProtocols": "DIDComm", - "portability": "-", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL", - "support": "-", - "urlAppStore": "https://apps.apple.com/us/app/esatus-wallet/id1496769057?itsct=apps_box&itscg=30200", - "urlGooglePlayStore": "https://play.google.com/store/apps/details?id=com.esatus.wallet&hl=de_DE&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1", - "urlWebApp": "-", - "urlWebsite": "https://esatus.com/index.html%3Fp=7663&lang=en.html", - "verifierCapability": "-", - "verifierUnlinkability": "Yes" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "To anchor DIDs (legal entities), and to anchor the trust framework", - "blockchainType": "We are agnostic to the infra, so the platform right now supports Ethereum, Fabric and EBSI", - "blockchainUsed": "Yes", - "company": "Gataca Inc.", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "LDP-VC, JTW-VC", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "JSON-LD", - "hardwareSupport": "No", - "holderCapability": "-", - "identifierHolder": "did:key", - "identifierIssuer": "did:gatc", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/gataca.png", - "mdoc": "-", - "name": "Gataca", - "observability": "Yes", - "offlineFriendly": "Yes, implemntation according to ARF", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "OIDC, SIOP", - "portability": "-", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Status List 2017, Status List 2021", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "EdDSA, RSA, secp256k, P-256, CadEs", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Anchor DID & DID Documents", - "blockchainType": "Depending on DID method", - "blockchainUsed": "Yes", - "company": "Gimly", - "connectionTypes": "Direct communication, Connection-based communication, Direct NFC-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "JWT, JWT-VC, LDP-VC", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "Yes, NFC HWW", - "holderCapability": "-", - "identifierHolder": "did:ethr, did:ion, did:web, did:jwk, did:key", - "identifierIssuer": "did:web, did:ion, did:key, did:jwk", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/Gimly-wallet.png", - "mdoc": "-", - "name": "Tap ID", - "observability": "-", - "offlineFriendly": "Yes", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "OIDC, SIOP, DIDComm", - "portability": "-", - "predicates": "No", - "quantumSafe": "-", - "revocationAlgorithm": "Status List 2021", - "scope": "Travel, Hospitality, Access Control", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+, ECDSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "https://www.gimly.io", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "No personal data", - "blockchainType": "public permissioned Ethereum, IPFS", - "blockchainUsed": "Yes", - "company": "Blockchain Helix AG", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "JWT, JWT-VC", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "compact and JSON serialization, JSON, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "-", - "identifierHolder": "did:key, ENS, did:eth", - "identifierIssuer": "did:key, ENS, did:eth", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/helix-id.png", - "mdoc": "-", - "name": "helix id", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "partly open sourced", - "organisationalWallet": "-", - "peer2PeerProtocols": "OIDC, DIDComm, DID Exchange Protocol", - "portability": "-", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "DID Revocation", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+, ECDSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "-", - "blockchainUsed": "-", - "company": "IDEMIA Group", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/idema.png", - "mdoc": "-", - "name": "IDEMIA Mobile ID", - "observability": "-", - "offlineFriendly": "-", - "openSource": "-", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "-", - "blockchainUsed": "-", - "company": "-", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/idento-one.png", - "mdoc": "-", - "name": "idento.one", - "observability": "-", - "offlineFriendly": "-", - "openSource": "-", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Authorization, Credentials Schemas, Revocation registry", - "blockchainType": "HyperLedger Indy", - "blockchainUsed": "Yes", - "company": "-", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "Present Proof Protocol", - "credentialFormat": "AnonCred", - "cryptoAgility": "No", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "-", - "identifierHolder": "did:sov", - "identifierIssuer": "did:sov", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/identry.png", - "mdoc": "-", - "name": "Identry", - "observability": "No", - "offlineFriendly": "-", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "DIDComm", - "portability": "-", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "Yes" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "Blockchain network based on Ethereum", - "blockchainUsed": "Yes", - "company": "KayTrust", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/kaytrust-wallet.png", - "mdoc": "-", - "name": "KayTrust Wallet", - "observability": "-", - "offlineFriendly": "-", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Decentralized Public Key Infrastructure", - "blockchainType": "Hyperledger Indy", - "blockchainUsed": "Yes", - "company": "main incubator GmbH", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, soon: OpenID4VCI and OpenID4VP", - "credentialFormat": "AnonCred", - "cryptoAgility": "No", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "Soon", - "ebsi": "-", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "-", - "identifierHolder": "Link secret", - "identifierIssuer": "did:sovrin (did:indy)", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/lissi-wallet.png", - "mdoc": "-", - "name": "Lissi Wallet", - "observability": "No", - "offlineFriendly": "-", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "DIDComm", - "portability": "-", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "Yes" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Storing public keys", - "blockchainType": "ION - if ION DID menthod used", - "blockchainUsed": "Yes", - "company": "Mattr Limited", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI", - "credentialFormat": "LDP-VC", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "JSON-LD", - "hardwareSupport": "No", - "holderCapability": "-", - "identifierHolder": "did:key", - "identifierIssuer": "did:web, did:ion, did:key", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/mattr-wallet.png", - "mdoc": "-", - "name": "MATTR Wallet", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "OIDC, DIDComm", - "portability": "-", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "RevocationList2020", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+, EdDSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "-", - "blockchainType": "-", - "blockchainUsed": "-", - "company": "Microsoft", - "connectionTypes": "-", - "credExchangeProtocol": "-", - "credentialFormat": "-", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "-", - "identifierIssuer": "-", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/microsoft-entra.png", - "mdoc": "-", - "name": "Microsoft Entra", - "observability": "-", - "offlineFriendly": "-", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "-", - "portability": "-", - "predicates": "-", - "quantumSafe": "-", - "revocationAlgorithm": "-", - "scope": "-", - "selectiveDisclosure": "-", - "signatureAlgorithm": "-", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Scale up for DID", - "blockchainType": "Metadium", - "blockchainUsed": "Yes", - "company": "Metadium Technology Inc", - "connectionTypes": "Direct communication", - "credExchangeProtocol": "N/A", - "credentialFormat": "JWT, JWT-VC", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "compact and JSON serialization, JSON, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "-", - "identifierHolder": "Raw public key", - "identifierIssuer": "Raw public key", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/mykeepin.png", - "mdoc": "-", - "name": "MYKEEPiN", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "N/A", - "portability": "-", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Non-revocation token", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "ECDSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "N/A", - "blockchainType": "N/A", - "blockchainUsed": "No", - "company": "Animo Solutions", - "connectionTypes": "Direct communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "JWT-VC", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "compact and JSON serialization, JSON", - "hardwareSupport": "No", - "holderCapability": "-", - "identifierHolder": "did:jwk, did:key", - "identifierIssuer": "did:jwk, did:key, did:web", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/paradym-wallet.png", - "mdoc": "-", - "name": "Paradym Wallet", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "Yes", - "organisationalWallet": "-", - "peer2PeerProtocols": "OID4VC", - "portability": "-", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "No", - "scope": "-", - "selectiveDisclosure": "No", - "signatureAlgorithm": "EdDSA, ES256", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "N/A", - "blockchainType": "N/A", - "blockchainUsed": "No", - "company": "Sphereon", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "JWT, JWT-VC, LDP-VC", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "compact and JSON serialization, JSON, JSON-LD, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "-", - "identifierHolder": "X.509 certificate, did:jwk, did:key, did:ion, did:cheqd, did:web, did:lto, did:factom, did:ethr, did:pkh", - "identifierIssuer": "X.509 certificate, did:jwk, did:key, did:ion, did:cheqd, did:web, did:lto, did:factom, did:ethr, did:pkh", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/sphereon-wallet.png", - "mdoc": "-", - "name": "Sphereon Wallet", - "observability": "Yes", - "offlineFriendly": "No", - "openSource": "Yes", - "organisationalWallet": "-", - "peer2PeerProtocols": "OIDC, SIOP, DIDComm", - "portability": "-", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Status List 2021, Validity credential", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+, ECDSA, EdDSA, RSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Anchor DID & DID Documents, Trust Registry, Revocation Registry", - "blockchainType": "Ethereum", - "blockchainUsed": "Yes", - "company": "Spherity GmbH", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "AnonCred, JSON-LD", - "cryptoAgility": "No", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "No", - "holderCapability": "-", - "identifierHolder": "did:ethr", - "identifierIssuer": "did:ethr", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/spherity-wallet.png", - "mdoc": "-", - "name": "Spherity Wallet", - "observability": "No", - "offlineFriendly": "-", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "OIDC, SIOP, DIDComm, DID Exchange Protocol", - "portability": "-", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Indy Revocation, Revocation 5539, Status List 2021", - "scope": "-", - "selectiveDisclosure": "No", - "signatureAlgorithm": "CL, BBS+, EdDSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "identity, crypto", - "blockchainType": "Ethereum, ION, EBSI, PolygonID", - "blockchainUsed": "Yes", - "company": "Talao", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "JWT-VC, JSON-LD", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "JSON, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "-", - "identifierHolder": "did:ebsi, did:ion, did:web, did:tz, did:key", - "identifierIssuer": "did:ebsi, did:ion, did:web, did:tz, did:key", - "issuerCapability": "-", - "keyHistoryHolder": "Yes", - "keyHistoryIssuer": "No", - "keyRotationHolder": "Yes", - "keyRotationIssuer": "No", - "logo": "static/talao.png", - "mdoc": "-", - "name": "Talao", - "observability": "Yes", - "offlineFriendly": "-", - "openSource": "Yes", - "organisationalWallet": "-", - "peer2PeerProtocols": "OIDC, SIOP, DID Exchange Protocol", - "portability": "-", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Status List 2021", - "scope": "-", - "selectiveDisclosure": "No", - "signatureAlgorithm": "ECDSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Anchor DID & DID Documents", - "blockchainType": "Depending on DID method", - "blockchainUsed": "Yes", - "company": "Gimly", - "connectionTypes": "Direct communication, Connection-based communication, Direct NFC-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "JWT, JWT-VC, LDP-VC", - "cryptoAgility": "-", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "-", - "hardwareSupport": "-", - "holderCapability": "-", - "identifierHolder": "did:ethr, did:ion, did:web, did:jwk, did:key", - "identifierIssuer": "did:web, did:ion, did:key, did:jwk", - "issuerCapability": "-", - "keyHistoryHolder": "-", - "keyHistoryIssuer": "-", - "keyRotationHolder": "-", - "keyRotationIssuer": "-", - "logo": "static/tap-id.png", - "mdoc": "-", - "name": "Tap ID", - "observability": "-", - "offlineFriendly": "Yes", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "OIDC, SIOP, DIDComm", - "portability": "-", - "predicates": "Yes", - "quantumSafe": "-", - "revocationAlgorithm": "Status List 2021", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+, ECDSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "-" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Trust Anchor, Trust registry, root of trust", - "blockchainType": "EBSI, Alastria, Ethereum", - "blockchainUsed": "Yes", - "company": "Validated ID", - "connectionTypes": "both", - "credExchangeProtocol": "OIDC4CI, OIDC4VP", - "credentialFormat": "JWT-VC, JSON-LD, JWT", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "JSON, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "-", - "identifierHolder": "did:key, did:jwk, did:ala, did:ebsi, did:eth", - "identifierIssuer": "did:key, did:jwk, did:ala, did:ebsi, did:eth", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/vidwallet.png", - "mdoc": "-", - "name": "VIDwallet", - "observability": "Yes", - "offlineFriendly": "-", - "openSource": "No", - "organisationalWallet": "-", - "peer2PeerProtocols": "OIDC, SIOP", - "portability": "-", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Status List 2021", - "scope": "-", - "selectiveDisclosure": "No", - "signatureAlgorithm": "ECDSA, EdDSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "EBSI - The aim of EBSI is to develop a secure and scalable blockchain infrastructure that can provide cross-border digital public services to citizens and businesses in Europe.\n\nIOTA - it's purpose is to provide a scalable, feeless, and decentralized transactional settlement and data transfer platform for the Internet of Things (IoT) ecosystem.\n\nVelocity - The purpose of the Velocity Network is to create a decentralized, global credentialing ecosystem that enables individuals to own, control, and securely share their verified career credentials while giving organizations access to a trusted talent marketplace.\n\nChqed - The purpose of the cheqd ecosystem is to provide a decentralized, privacy-preserving digital identity solution that allows individuals to have control over their personal data while enabling secure and verifiable credential exchange between individuals and organizations.", - "blockchainType": "ebsi, iota, cheqd, velocity", - "blockchainUsed": "Yes", - "company": "walt.id", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "JWT, LDP-VC", - "cryptoAgility": "Yes", - "ddip": "-", - "deepLinking": "-", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "compact and JSON serialization", - "hardwareSupport": "Yes", - "holderCapability": "-", - "identifierHolder": "did:key, did:web, did:ebsi, did:iota, did:jwk, did:cheqd, did:velocity", - "identifierIssuer": "did:key, did:web, did:ebsi, did:iota, did:jwk, did:cheqd, did:velocity", - "issuerCapability": "-", - "keyHistoryHolder": "Yes", - "keyHistoryIssuer": "Yes", - "keyRotationHolder": "Yes", - "keyRotationIssuer": "Yes", - "logo": "static/walt-id.png", - "mdoc": "-", - "name": "walt.id", - "observability": "-", - "offlineFriendly": "-", - "openSource": "Yes", - "organisationalWallet": "-", - "peer2PeerProtocols": "OIDC, SIOP", - "portability": "-", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Revocation not supported", - "scope": "-", - "selectiveDisclosure": "No", - "signatureAlgorithm": "ECDSA, EdDSA, RSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "No" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "N/A", - "blockchainType": "N/A", - "blockchainUsed": "No", - "company": "Privacy by Design Foundation", - "connectionTypes": "Direct communication, Interpreted as direct wallet to IDP and wallet to RP connections. No communication through centralized components in our infrastructure. IRMA is fully decentralized. ", - "credExchangeProtocol": "IRMA protocol", - "credentialFormat": "Idemix ABC", - "cryptoAgility": "No", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "Yes", - "ebsi": "-", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "-", - "identifierHolder": "Link secret", - "identifierIssuer": "Issuer identifier inside issuer scheme including issuer public key", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/yivi.png", - "mdoc": "-", - "name": "Yivi", - "observability": "No", - "offlineFriendly": "No", - "openSource": "Yes", - "organisationalWallet": "-", - "peer2PeerProtocols": "IRMA protocol ", - "portability": "-", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Own implementation on top of Idemix", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL, Schnorr", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "Yes" - }, - { - "aip": "-", - "api": "-", - "blockchainPurpose": "Public DIDs and associated DID documents with verification keys and endpoints, schemas and credential definitions, revocation registries, agent authorisation policies", - "blockchainType": "Sovrin", - "blockchainUsed": "Yes", - "company": "ZADA Solutions", - "connectionTypes": "-", - "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "AnonCred, RSA", - "cryptoAgility": "No", - "ddip": "-", - "deepLinking": "Yes", - "deployment": "-", - "downloadSource": "-", - "eassi": "No", - "ebsi": "-", - "encodingScheme": "JSON", - "hardwareSupport": "Yes", - "holderCapability": "-", - "identifierHolder": "Raw public key, did:sov", - "identifierIssuer": "Raw public key, did:sov", - "issuerCapability": "-", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "static/zada.png", - "mdoc": "-", - "name": "ZADA", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "Yes", - "organisationalWallet": "-", - "peer2PeerProtocols": "DIDComm", - "portability": "-", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation", - "scope": "-", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL, RSA", - "support": "-", - "urlAppStore": "-", - "urlGooglePlayStore": "-", - "urlWebApp": "-", - "urlWebsite": "-", - "verifierCapability": "-", - "verifierUnlinkability": "Yes" - } -] \ No newline at end of file + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "AceBlock blockchain framework", + "blockchainUsed": "Yes", + "company": "AceBlock", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/aceid-wallet.png", + "mdoc": "", + "name": "AceID Wallet", + "observability": "", + "offlineFriendly": "", + "openSource": "", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "", + "blockchainUsed": "", + "company": "Apple", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/apple-wallet.png", + "mdoc": "", + "name": "Apple Wallet", + "observability": "", + "offlineFriendly": "", + "openSource": "", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Anchoring public DIDs for issuers and/or verifiers (ie: enabling trust registry)", + "blockchainType": "Cardano", + "blockchainUsed": "Yes", + "company": "IOHK", + "connectionTypes": "Connection-based communication", + "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "JWT-VC, soon:AnonCreds", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "No", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "JSON, JSON-LD", + "hardwareSupport": "Yes", + "holderCapability": "", + "identifierHolder": "did:prism", + "identifierIssuer": "did:prism", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/atala-prism.png", + "mdoc": "", + "name": "Atala PRISM", + "observability": "", + "offlineFriendly": "", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "DIDComm", + "portability": "", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Revocation not supported, soon: Revocation List 2021", + "scope": "", + "selectiveDisclosure": "No", + "signatureAlgorithm": "ECDSA, soon: CL", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "", + "blockchainUsed": "", + "company": "Microsoft", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/authenticator.png", + "mdoc": "", + "name": "Authenticator", + "observability": "", + "offlineFriendly": "", + "openSource": "", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "", + "blockchainUsed": "", + "company": "Government of BC", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/bc-wallet.png", + "mdoc": "", + "name": "BC Wallet", + "observability": "", + "offlineFriendly": "", + "openSource": "", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "Bitcoin and Ethereum, with Merkle proof linking credential to blockchain transaction", + "blockchainUsed": "Yes", + "company": "Hyland Credentials (formerly: Learning Machine)", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/blockcerts-wallet.png", + "mdoc": "", + "name": "Blockcerts Wallet", + "observability": "", + "offlineFriendly": "", + "openSource": "Yes", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "Ethereum or Blockpass", + "blockchainUsed": "Yes", + "company": "Blockpass IDN", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/blockpass.png", + "mdoc": "", + "name": "Blockpass", + "observability": "", + "offlineFriendly": "", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Schema, CredentialDefinitions, DID, Revocation", + "blockchainType": "Hyperledger Indy", + "blockchainUsed": "Yes", + "company": "The Ego Company", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "AnonCred, JSON-LD", + "cryptoAgility": "No", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "holderCapability": "", + "identifierHolder": "did:", + "identifierIssuer": "did:sov", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/certishare-wallet.png", + "mdoc": "", + "name": "CertiShare Wallet", + "observability": "No", + "offlineFriendly": "", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "DIDComm, DID Exchange Protocol, openID", + "portability": "", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "Yes", + "api": "", + "blockchainPurpose": "For publishing schema IDs, credential def IDs and public DID", + "blockchainType": "Hyperledger Indy, Ethereum, EBSI blockchain", + "blockchainUsed": "Yes", + "company": "iGrant.io", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange, DEXA", + "credentialFormat": "AnonCreds, JWT-VC, ICAO DTC, x.509", + "cryptoAgility": "No", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "Yes", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "holderCapability": "", + "identifierHolder": "did:ebsi, did:key, link secrets, X.509", + "identifierIssuer": "did:ebsi, did:key, did:sov, X.509", + "issuerCapability": "", + "keyHistoryHolder": "Yes", + "keyHistoryIssuer": "Yes", + "keyRotationHolder": "Yes", + "keyRotationIssuer": "Yes", + "logo": "logos/data-wallet.png", + "mdoc": "Planned", + "name": "Data Wallet", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": "No", + "organisationalWallet": "Yes, but branded as Enterprise Wallet Platform by iGrant.io", + "peer2PeerProtocols": "OIDC4VC, OIDC4VP, SIOPv2, DIDComm, DID Exchange Protocol, Connection protocols in AIP 1.0", + "portability": "", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation, EBSI revocation, W3C Status List 2021, SLTD database (travel and identity documents), CRL - certificate revocation list", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL, ES256, ECDSA", + "support": "support@igrant.io", + "urlAppStore": "https://apple.co/2Mz9nJp", + "urlGooglePlayStore": "https://play.google.com/store/apps/details?id=io.igrant.mobileagent", + "urlWebApp": "https://business.igrant.io/", + "urlWebsite": "https://igrant.io/datawallet.html", + "verifierCapability": "", + "verifierUnlinkability": "Yes" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", + "company": "Rabobank Nederland", + "connectionTypes": "Direct communication", + "credExchangeProtocol": "Datakeeper protocol (Verifiable Presentation)", + "credentialFormat": "LDP-VC", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "Yes", + "ebsi": "", + "encodingScheme": "JSON-LD", + "hardwareSupport": "Yes", + "holderCapability": "", + "identifierHolder": "did:eth", + "identifierIssuer": "did:eth", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/datakeeper.png", + "mdoc": "", + "name": "Datakeeper", + "observability": "No", + "offlineFriendly": "No", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "Datakeeper protocol", + "portability": "", + "predicates": "Depending on ...", + "quantumSafe": "No", + "revocationAlgorithm": "Validity credential, Revocation not supported", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "ECDSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "", + "blockchainUsed": "", + "company": "Thales", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/digital-id-wallet.png", + "mdoc": "", + "name": "Digital ID Wallet", + "observability": "", + "offlineFriendly": "", + "openSource": "", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", + "company": "esatus AG", + "connectionTypes": "Connection-based communication", + "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "AnonCred", + "cryptoAgility": "No", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "Yes", + "ebsi": "", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "holderCapability": "", + "identifierHolder": "Link secret", + "identifierIssuer": "Link secret", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/esatus-wallet.png", + "mdoc": "", + "name": "esatus Wallet", + "observability": "No", + "offlineFriendly": "No", + "openSource": "A new version of the wallet - called SOWL wallet - will be available soon, together with an open source wallet SDK on which SOWL Wallet is based.", + "organisationalWallet": "", + "peer2PeerProtocols": "DIDComm", + "portability": "", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL", + "support": "", + "urlAppStore": "https://apps.apple.com/us/app/esatus-wallet/id1496769057?itsct=apps_box&itscg=30200", + "urlGooglePlayStore": "https://play.google.com/store/apps/details?id=com.esatus.wallet&hl=de_DE&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1", + "urlWebApp": "", + "urlWebsite": "https://esatus.com/index.html%3Fp=7663&lang=en.html", + "verifierCapability": "", + "verifierUnlinkability": "Yes" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "To anchor DIDs (legal entities), and to anchor the trust framework", + "blockchainType": "We are agnostic to the infra, so the platform right now supports Ethereum, Fabric and EBSI", + "blockchainUsed": "Yes", + "company": "Gataca Inc.", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "LDP-VC, JTW-VC", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "JSON-LD", + "hardwareSupport": "No", + "holderCapability": "", + "identifierHolder": "did:key", + "identifierIssuer": "did:gatc", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/gataca.png", + "mdoc": "", + "name": "Gataca", + "observability": "Yes", + "offlineFriendly": "Yes, implemntation according to ARF", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "OIDC, SIOP", + "portability": "", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Status List 2017, Status List 2021", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "EdDSA, RSA, secp256k, P-256, CadEs", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Anchor DID & DID Documents", + "blockchainType": "Depending on DID method", + "blockchainUsed": "Yes", + "company": "Gimly", + "connectionTypes": "Direct communication, Connection-based communication, Direct NFC-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "JWT, JWT-VC, LDP-VC", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "Yes, NFC HWW", + "holderCapability": "", + "identifierHolder": "did:ethr, did:ion, did:web, did:jwk, did:key", + "identifierIssuer": "did:web, did:ion, did:key, did:jwk", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/Gimly-wallet.png", + "mdoc": "", + "name": "Tap ID", + "observability": "", + "offlineFriendly": "Yes", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "OIDC, SIOP, DIDComm", + "portability": "", + "predicates": "No", + "quantumSafe": "", + "revocationAlgorithm": "Status List 2021", + "scope": "Travel, Hospitality, Access Control", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+, ECDSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "https://www.gimly.io", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "No personal data", + "blockchainType": "public permissioned Ethereum, IPFS", + "blockchainUsed": "Yes", + "company": "Blockchain Helix AG", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "JWT, JWT-VC", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "compact and JSON serialization, JSON, JSON-LD", + "hardwareSupport": "Yes", + "holderCapability": "", + "identifierHolder": "did:key, ENS, did:eth", + "identifierIssuer": "did:key, ENS, did:eth", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/helix-id.png", + "mdoc": "", + "name": "helix id", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": "partly open sourced", + "organisationalWallet": "", + "peer2PeerProtocols": "OIDC, DIDComm, DID Exchange Protocol", + "portability": "", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "DID Revocation", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+, ECDSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "", + "blockchainUsed": "", + "company": "IDEMIA Group", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/idema.png", + "mdoc": "", + "name": "IDEMIA Mobile ID", + "observability": "", + "offlineFriendly": "", + "openSource": "", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "", + "blockchainUsed": "", + "company": "", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/idento-one.png", + "mdoc": "", + "name": "idento.one", + "observability": "", + "offlineFriendly": "", + "openSource": "", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Authorization, Credentials Schemas, Revocation registry", + "blockchainType": "HyperLedger Indy", + "blockchainUsed": "Yes", + "company": "", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "Present Proof Protocol", + "credentialFormat": "AnonCred", + "cryptoAgility": "No", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "holderCapability": "", + "identifierHolder": "did:sov", + "identifierIssuer": "did:sov", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/identry.png", + "mdoc": "", + "name": "Identry", + "observability": "No", + "offlineFriendly": "", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "DIDComm", + "portability": "", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "Yes" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "Blockchain network based on Ethereum", + "blockchainUsed": "Yes", + "company": "KayTrust", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/kaytrust-wallet.png", + "mdoc": "", + "name": "KayTrust Wallet", + "observability": "", + "offlineFriendly": "", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Decentralized Public Key Infrastructure", + "blockchainType": "Hyperledger Indy", + "blockchainUsed": "Yes", + "company": "main incubator GmbH", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, soon: OpenID4VCI and OpenID4VP", + "credentialFormat": "AnonCred", + "cryptoAgility": "No", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "Soon", + "ebsi": "", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "holderCapability": "", + "identifierHolder": "Link secret", + "identifierIssuer": "did:sovrin (did:indy)", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/lissi-wallet.png", + "mdoc": "", + "name": "Lissi Wallet", + "observability": "No", + "offlineFriendly": "", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "DIDComm", + "portability": "", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "Yes" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Storing public keys", + "blockchainType": "ION - if ION DID menthod used", + "blockchainUsed": "Yes", + "company": "Mattr Limited", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI", + "credentialFormat": "LDP-VC", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "JSON-LD", + "hardwareSupport": "No", + "holderCapability": "", + "identifierHolder": "did:key", + "identifierIssuer": "did:web, did:ion, did:key", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/mattr-wallet.png", + "mdoc": "", + "name": "MATTR Wallet", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "OIDC, DIDComm", + "portability": "", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "RevocationList2020", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+, EdDSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "", + "blockchainType": "", + "blockchainUsed": "", + "company": "Microsoft", + "connectionTypes": "", + "credExchangeProtocol": "", + "credentialFormat": "", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "", + "identifierIssuer": "", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/microsoft-entra.png", + "mdoc": "", + "name": "Microsoft Entra", + "observability": "", + "offlineFriendly": "", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "", + "portability": "", + "predicates": "", + "quantumSafe": "", + "revocationAlgorithm": "", + "scope": "", + "selectiveDisclosure": "", + "signatureAlgorithm": "", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Scale up for DID", + "blockchainType": "Metadium", + "blockchainUsed": "Yes", + "company": "Metadium Technology Inc", + "connectionTypes": "Direct communication", + "credExchangeProtocol": "N/A", + "credentialFormat": "JWT, JWT-VC", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "compact and JSON serialization, JSON, JSON-LD", + "hardwareSupport": "Yes", + "holderCapability": "", + "identifierHolder": "Raw public key", + "identifierIssuer": "Raw public key", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/mykeepin.png", + "mdoc": "", + "name": "MYKEEPiN", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "N/A", + "portability": "", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Non-revocation token", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "ECDSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", + "company": "Animo Solutions", + "connectionTypes": "Direct communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "JWT-VC", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "compact and JSON serialization, JSON", + "hardwareSupport": "No", + "holderCapability": "", + "identifierHolder": "did:jwk, did:key", + "identifierIssuer": "did:jwk, did:key, did:web", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/paradym-wallet.png", + "mdoc": "", + "name": "Paradym Wallet", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": "Yes", + "organisationalWallet": "", + "peer2PeerProtocols": "OID4VC", + "portability": "", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "No", + "scope": "", + "selectiveDisclosure": "No", + "signatureAlgorithm": "EdDSA, ES256", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", + "company": "Sphereon", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "JWT, JWT-VC, LDP-VC", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "compact and JSON serialization, JSON, JSON-LD, JSON-LD", + "hardwareSupport": "Yes", + "holderCapability": "", + "identifierHolder": "X.509 certificate, did:jwk, did:key, did:ion, did:cheqd, did:web, did:lto, did:factom, did:ethr, did:pkh", + "identifierIssuer": "X.509 certificate, did:jwk, did:key, did:ion, did:cheqd, did:web, did:lto, did:factom, did:ethr, did:pkh", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/sphereon-wallet.png", + "mdoc": "", + "name": "Sphereon Wallet", + "observability": "Yes", + "offlineFriendly": "No", + "openSource": "Yes", + "organisationalWallet": "", + "peer2PeerProtocols": "OIDC, SIOP, DIDComm", + "portability": "", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Status List 2021, Validity credential", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+, ECDSA, EdDSA, RSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Anchor DID & DID Documents, Trust Registry, Revocation Registry", + "blockchainType": "Ethereum", + "blockchainUsed": "Yes", + "company": "Spherity GmbH", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "AnonCred, JSON-LD", + "cryptoAgility": "No", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "No", + "holderCapability": "", + "identifierHolder": "did:ethr", + "identifierIssuer": "did:ethr", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/spherity-wallet.png", + "mdoc": "", + "name": "Spherity Wallet", + "observability": "No", + "offlineFriendly": "", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "OIDC, SIOP, DIDComm, DID Exchange Protocol", + "portability": "", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Indy Revocation, Revocation 5539, Status List 2021", + "scope": "", + "selectiveDisclosure": "No", + "signatureAlgorithm": "CL, BBS+, EdDSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "identity, crypto", + "blockchainType": "Ethereum, ION, EBSI, PolygonID", + "blockchainUsed": "Yes", + "company": "Talao", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "JWT-VC, JSON-LD", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "JSON, JSON-LD", + "hardwareSupport": "Yes", + "holderCapability": "", + "identifierHolder": "did:ebsi, did:ion, did:web, did:tz, did:key", + "identifierIssuer": "did:ebsi, did:ion, did:web, did:tz, did:key", + "issuerCapability": "", + "keyHistoryHolder": "Yes", + "keyHistoryIssuer": "No", + "keyRotationHolder": "Yes", + "keyRotationIssuer": "No", + "logo": "logos/talao.png", + "mdoc": "", + "name": "Talao", + "observability": "Yes", + "offlineFriendly": "", + "openSource": "Yes", + "organisationalWallet": "", + "peer2PeerProtocols": "OIDC, SIOP, DID Exchange Protocol", + "portability": "", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Status List 2021", + "scope": "", + "selectiveDisclosure": "No", + "signatureAlgorithm": "ECDSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Anchor DID & DID Documents", + "blockchainType": "Depending on DID method", + "blockchainUsed": "Yes", + "company": "Gimly", + "connectionTypes": "Direct communication, Connection-based communication, Direct NFC-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "JWT, JWT-VC, LDP-VC", + "cryptoAgility": "", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "", + "hardwareSupport": "", + "holderCapability": "", + "identifierHolder": "did:ethr, did:ion, did:web, did:jwk, did:key", + "identifierIssuer": "did:web, did:ion, did:key, did:jwk", + "issuerCapability": "", + "keyHistoryHolder": "", + "keyHistoryIssuer": "", + "keyRotationHolder": "", + "keyRotationIssuer": "", + "logo": "logos/tap-id.png", + "mdoc": "", + "name": "Tap ID", + "observability": "", + "offlineFriendly": "Yes", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "OIDC, SIOP, DIDComm", + "portability": "", + "predicates": "Yes", + "quantumSafe": "", + "revocationAlgorithm": "Status List 2021", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+, ECDSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Trust Anchor, Trust registry, root of trust", + "blockchainType": "EBSI, Alastria, Ethereum", + "blockchainUsed": "Yes", + "company": "Validated ID", + "connectionTypes": "both", + "credExchangeProtocol": "OIDC4CI, OIDC4VP", + "credentialFormat": "JWT-VC, JSON-LD, JWT", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "JSON, JSON-LD", + "hardwareSupport": "Yes", + "holderCapability": "", + "identifierHolder": "did:key, did:jwk, did:ala, did:ebsi, did:eth", + "identifierIssuer": "did:key, did:jwk, did:ala, did:ebsi, did:eth", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/vidwallet.png", + "mdoc": "", + "name": "VIDwallet", + "observability": "Yes", + "offlineFriendly": "", + "openSource": "No", + "organisationalWallet": "", + "peer2PeerProtocols": "OIDC, SIOP", + "portability": "", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Status List 2021", + "scope": "", + "selectiveDisclosure": "No", + "signatureAlgorithm": "ECDSA, EdDSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "EBSI - The aim of EBSI is to develop a secure and scalable blockchain infrastructure that can provide cross-border digital public services to citizens and businesses in Europe.\n\nIOTA - it's purpose is to provide a scalable, feeless, and decentralized transactional settlement and data transfer platform for the Internet of Things (IoT) ecosystem.\n\nVelocity - The purpose of the Velocity Network is to create a decentralized, global credentialing ecosystem that enables individuals to own, control, and securely share their verified career credentials while giving organizations access to a trusted talent marketplace.\n\nChqed - The purpose of the cheqd ecosystem is to provide a decentralized, privacy-preserving digital identity solution that allows individuals to have control over their personal data while enabling secure and verifiable credential exchange between individuals and organizations.", + "blockchainType": "ebsi, iota, cheqd, velocity", + "blockchainUsed": "Yes", + "company": "walt.id", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "JWT, LDP-VC", + "cryptoAgility": "Yes", + "ddip": "", + "deepLinking": "", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "compact and JSON serialization", + "hardwareSupport": "Yes", + "holderCapability": "", + "identifierHolder": "did:key, did:web, did:ebsi, did:iota, did:jwk, did:cheqd, did:velocity", + "identifierIssuer": "did:key, did:web, did:ebsi, did:iota, did:jwk, did:cheqd, did:velocity", + "issuerCapability": "", + "keyHistoryHolder": "Yes", + "keyHistoryIssuer": "Yes", + "keyRotationHolder": "Yes", + "keyRotationIssuer": "Yes", + "logo": "logos/walt-id.png", + "mdoc": "", + "name": "walt.id", + "observability": "", + "offlineFriendly": "", + "openSource": "Yes", + "organisationalWallet": "", + "peer2PeerProtocols": "OIDC, SIOP", + "portability": "", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Revocation not supported", + "scope": "", + "selectiveDisclosure": "No", + "signatureAlgorithm": "ECDSA, EdDSA, RSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "No" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", + "company": "Privacy by Design Foundation", + "connectionTypes": "Direct communication, Interpreted as direct wallet to IDP and wallet to RP connections. No communication through centralized components in our infrastructure. IRMA is fully decentralized. ", + "credExchangeProtocol": "IRMA protocol", + "credentialFormat": "Idemix ABC", + "cryptoAgility": "No", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "Yes", + "ebsi": "", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "holderCapability": "", + "identifierHolder": "Link secret", + "identifierIssuer": "Issuer identifier inside issuer scheme including issuer public key", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/yivi.png", + "mdoc": "", + "name": "Yivi", + "observability": "No", + "offlineFriendly": "No", + "openSource": "Yes", + "organisationalWallet": "", + "peer2PeerProtocols": "IRMA protocol ", + "portability": "", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Own implementation on top of Idemix", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL, Schnorr", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "Yes" + }, + { + "aip": "", + "api": "", + "blockchainPurpose": "Public DIDs and associated DID documents with verification keys and endpoints, schemas and credential definitions, revocation registries, agent authorisation policies", + "blockchainType": "Sovrin", + "blockchainUsed": "Yes", + "company": "ZADA Solutions", + "connectionTypes": "", + "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "AnonCred, RSA", + "cryptoAgility": "No", + "ddip": "", + "deepLinking": "Yes", + "deployment": "", + "downloadSource": "", + "eassi": "No", + "ebsi": "", + "encodingScheme": "JSON", + "hardwareSupport": "Yes", + "holderCapability": "", + "identifierHolder": "Raw public key, did:sov", + "identifierIssuer": "Raw public key, did:sov", + "issuerCapability": "", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/zada.png", + "mdoc": "", + "name": "ZADA", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": "Yes", + "organisationalWallet": "", + "peer2PeerProtocols": "DIDComm", + "portability": "", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation", + "scope": "", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL, RSA", + "support": "", + "urlAppStore": "", + "urlGooglePlayStore": "", + "urlWebApp": "", + "urlWebsite": "", + "verifierCapability": "", + "verifierUnlinkability": "Yes" + } +] diff --git a/index.html b/index.html deleted file mode 100644 index d625416..0000000 --- a/index.html +++ /dev/null @@ -1,471 +0,0 @@ - - - - - - - - - - - -Wallet Characteristics Overview - - - -

Wallet Overview

-

- GitHub - - -

-
-
Date: Thu, 11 Jan 2024 15:21:52 +0100 Subject: [PATCH 34/76] Update wallets.json with igrant.io (#13) from PR old repo Signed-off-by: Maaike van Leuken <97684325+maaikevanleuken@users.noreply.github.com> Signed-off-by: Mirko Mollik --- wallets.json | 92 ++++++++++++++++++++++++++-------------------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/wallets.json b/wallets.json index 3cacff2..a819d41 100644 --- a/wallets.json +++ b/wallets.json @@ -17,7 +17,7 @@ "deepLinking": "-", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -67,7 +67,7 @@ "deepLinking": "-", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -117,7 +117,7 @@ "deepLinking": "No", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -167,7 +167,7 @@ "deepLinking": "-", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -217,7 +217,7 @@ "deepLinking": "-", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -267,7 +267,7 @@ "deepLinking": "-", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -317,7 +317,7 @@ "deepLinking": "-", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -367,7 +367,7 @@ "deepLinking": "-", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -400,10 +400,10 @@ "website": "-" }, { - "AIP": "-", + "AIP": "Yes", "DDIP": "-", - "EBSI": "-", - "MDOC": "-", + "EBSI": "Yes", + "MDOC": "Planned", "blockchain": { "purpose": "For publishing schema IDs, credential def IDs and public DID", "type": "Hyperledger Indy, Ethereum, EBSI blockchain", @@ -412,21 +412,21 @@ "company": "iGrant.io", "connectionTypes": "Direct communication, Connection-based communication", "credExchangeProtocol": "OIDC4CI, OIDC4VP, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange, DEXA", - "credentialFormat": "AnonCreds, VC(?)", + "credentialFormat": "AnonCreds, JWT-VC, ICAO DTC, x.509", "cryptoAgility": "No", "deepLinking": "Yes", "deployment": "-", "download": { - "source" : "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" + "source": "-", + "appStore": "https://apple.co/2Mz9nJp", + "googlePlay": "https://play.google.com/store/apps/details?id=io.igrant.mobileagent", + "webWallet": "https://business.igrant.io/" }, "eassi": "No", "encodingScheme": "JSON", "hardwareSupport": "No", - "identifierHolder": "did:ebsi, link secrets, X.509", - "identifierIssuer": "did:ebsi, did:sov, X.509", + "identifierHolder": "did:ebsi, did:key, link secrets, X.509", + "identifierIssuer": "did:ebsi, did:key, did:sov, X.509", "keyHistoryHolder": "Yes", "keyHistoryIssuer": "Yes", "keyRotationHolder": "Yes", @@ -434,20 +434,20 @@ "logo": "static/data-wallet.png", "name": "Data Wallet", "observability": "No", - "offlineFriendly": "-", + "offlineFriendly": "Yes", "openSource": "No", - "organizationalWallet": "-", - "peer2peerProtocols": "OIDC, SIOP, DIDComm, DID Exchange Protocol, Connection protocols in AIP 1.0", + "organizationalWallet": "Yes, but branded as Enterprise Wallet Platform by iGrant.io", + "peer2peerProtocols": "OIDC4VC, OIDC4VP, SIOPv2, DIDComm, DID Exchange Protocol, Connection protocols in AIP 1.0", "portability": "-", "postQuantumSecure": "No", "predicates": "Yes", - "revocationAlgorithm": "Indy revocation, EBSI revocation", + "revocationAlgorithm": "Indy revocation, EBSI revocation, W3C Status List 2021, SLTD database (travel and identity documents), CRL - certificate revocation list", "scope": "-", "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL, ES256", - "support": "-", + "signatureAlgorithm": "CL, ES256, ECDSA", + "support": "support@igrant.io", "verifierUnlinkability": "Yes", - "website": "-" + "website": "https://igrant.io/datawallet.html" }, { "AIP": "-", @@ -467,7 +467,7 @@ "deepLinking": "Yes", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -517,7 +517,7 @@ "deepLinking": "-", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -567,7 +567,7 @@ "deepLinking": "Yes", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "https://apps.apple.com/us/app/esatus-wallet/id1496769057?itsct=apps_box&itscg=30200", "googlePlay": "https://play.google.com/store/apps/details?id=com.esatus.wallet&hl=de_DE&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1", "webWallet": "-" @@ -617,7 +617,7 @@ "deepLinking": "Yes", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -716,7 +716,7 @@ "deepLinking": "Yes", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -766,7 +766,7 @@ "deepLinking": "-", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -816,7 +816,7 @@ "deepLinking": "-", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -866,7 +866,7 @@ "deepLinking": "-", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -916,7 +916,7 @@ "deepLinking": "-", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -966,7 +966,7 @@ "deepLinking": "Yes", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -1016,7 +1016,7 @@ "deepLinking": "Yes", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -1066,7 +1066,7 @@ "deepLinking": "-", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -1116,7 +1116,7 @@ "deepLinking": "Yes", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -1166,7 +1166,7 @@ "deepLinking": "Yes", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -1216,7 +1216,7 @@ "deepLinking": "Yes", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -1266,7 +1266,7 @@ "deepLinking": "-", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -1316,7 +1316,7 @@ "deepLinking": "-", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -1415,7 +1415,7 @@ "deepLinking": "Yes", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -1465,7 +1465,7 @@ "deepLinking": "-", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -1515,7 +1515,7 @@ "deepLinking": "Yes", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" @@ -1565,7 +1565,7 @@ "deepLinking": "Yes", "deployment": "-", "download": { - "source" : "-", + "source": "-", "appStore": "-", "googlePlay": "-", "webWallet": "-" From dffe1bfdaffce56c7092700eb51743c6603f78c5 Mon Sep 17 00:00:00 2001 From: Maaike van Leuken <97684325+maaikevanleuken@users.noreply.github.com> Date: Thu, 25 Jan 2024 09:05:16 +0100 Subject: [PATCH 35/76] Flatten and new chars (#17) * adding the stylesheet Signed-off-by: Maaike van Leuken * added new characteristics and flattened structure Signed-off-by: Maaike van Leuken * fix camel-casing, better naming of characteristics and removing of separate wallet files Signed-off-by: Maaike van Leuken * adjusted js file to new characteristics and flattening Signed-off-by: Maaike van Leuken * update js with flattening blockchain Signed-off-by: Maaike van Leuken * adjusted accordingly the index.html Signed-off-by: Maaike van Leuken * removed webApp boolean Signed-off-by: Maaike van Leuken --------- Signed-off-by: Maaike van Leuken Signed-off-by: Mirko Mollik --- .gitignore | 1 + wallets.json => flattened_wallets.json | 1282 ++++++++++++------------ index.html | 34 +- script.js | 20 +- 4 files changed, 687 insertions(+), 650 deletions(-) create mode 100644 .gitignore rename wallets.json => flattened_wallets.json (60%) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8e5bbf0 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.py \ No newline at end of file diff --git a/wallets.json b/flattened_wallets.json similarity index 60% rename from wallets.json rename to flattened_wallets.json index a819d41..149b1d1 100644 --- a/wallets.json +++ b/flattened_wallets.json @@ -1,1600 +1,1600 @@ [ { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "-", - "type": "AceBlock blockchain framework", - "used": "Yes" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "-", + "blockchainType": "AceBlock blockchain framework", + "blockchainUsed": "Yes", "company": "AceBlock", "connectionTypes": "-", "credExchangeProtocol": "-", "credentialFormat": "-", "cryptoAgility": "-", + "ddip": "-", "deepLinking": "-", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "-", "hardwareSupport": "-", + "holderCapability": "-", "identifierHolder": "-", "identifierIssuer": "-", + "issuerCapability": "-", "keyHistoryHolder": "-", "keyHistoryIssuer": "-", "keyRotationHolder": "-", "keyRotationIssuer": "-", - "logo": "static/aceid-wallet*.png", - "name": "AceID Wallet*", + "logo": "static/aceid-wallet.png", + "mdoc": "-", + "name": "AceID Wallet", "observability": "-", "offlineFriendly": "-", "openSource": "-", - "organizationalWallet": "-", - "peer2peerProtocols": "-", + "organisationalWallet": "-", + "peer2PeerProtocols": "-", "portability": "-", - "postQuantumSecure": "-", "predicates": "-", + "quantumSafe": "-", "revocationAlgorithm": "-", "scope": "-", "selectiveDisclosure": "-", "signatureAlgorithm": "-", "support": "-", - "verifierUnlinkability": "-", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "-" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "-", - "type": "-", - "used": "-" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "-", + "blockchainType": "-", + "blockchainUsed": "-", "company": "Apple", "connectionTypes": "-", "credExchangeProtocol": "-", "credentialFormat": "-", "cryptoAgility": "-", + "ddip": "-", "deepLinking": "-", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "-", "hardwareSupport": "-", + "holderCapability": "-", "identifierHolder": "-", "identifierIssuer": "-", + "issuerCapability": "-", "keyHistoryHolder": "-", "keyHistoryIssuer": "-", "keyRotationHolder": "-", "keyRotationIssuer": "-", "logo": "static/apple-wallet.png", + "mdoc": "-", "name": "Apple Wallet", "observability": "-", "offlineFriendly": "-", "openSource": "-", - "organizationalWallet": "-", - "peer2peerProtocols": "-", + "organisationalWallet": "-", + "peer2PeerProtocols": "-", "portability": "-", - "postQuantumSecure": "-", "predicates": "-", + "quantumSafe": "-", "revocationAlgorithm": "-", "scope": "-", "selectiveDisclosure": "-", "signatureAlgorithm": "-", "support": "-", - "verifierUnlinkability": "-", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "-" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "Anchoring public DIDs for issuers and/or verifiers (ie: enabling trust registry)", - "type": "Cardano", - "used": "Yes" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "Anchoring public DIDs for issuers and/or verifiers (ie: enabling trust registry)", + "blockchainType": "Cardano", + "blockchainUsed": "Yes", "company": "IOHK", "connectionTypes": "Connection-based communication", "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", "credentialFormat": "JWT-VC, soon:AnonCreds", "cryptoAgility": "Yes", + "ddip": "-", "deepLinking": "No", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "JSON, JSON-LD", "hardwareSupport": "Yes", + "holderCapability": "-", "identifierHolder": "did:prism", "identifierIssuer": "did:prism", + "issuerCapability": "-", "keyHistoryHolder": "No", "keyHistoryIssuer": "No", "keyRotationHolder": "No", "keyRotationIssuer": "No", "logo": "static/atala-prism.png", + "mdoc": "-", "name": "Atala PRISM", "observability": "-", "offlineFriendly": "-", "openSource": "No", - "organizationalWallet": "-", - "peer2peerProtocols": "DIDComm", + "organisationalWallet": "-", + "peer2PeerProtocols": "DIDComm", "portability": "-", - "postQuantumSecure": "No", "predicates": "No", + "quantumSafe": "No", "revocationAlgorithm": "Revocation not supported, soon: Revocation List 2021", "scope": "-", "selectiveDisclosure": "No", "signatureAlgorithm": "ECDSA, soon: CL", "support": "-", - "verifierUnlinkability": "No", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "No" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "-", - "type": "-", - "used": "-" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "-", + "blockchainType": "-", + "blockchainUsed": "-", "company": "Microsoft", "connectionTypes": "-", "credExchangeProtocol": "-", "credentialFormat": "-", "cryptoAgility": "-", + "ddip": "-", "deepLinking": "-", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "-", "hardwareSupport": "-", + "holderCapability": "-", "identifierHolder": "-", "identifierIssuer": "-", + "issuerCapability": "-", "keyHistoryHolder": "-", "keyHistoryIssuer": "-", "keyRotationHolder": "-", "keyRotationIssuer": "-", "logo": "static/authenticator.png", + "mdoc": "-", "name": "Authenticator", "observability": "-", "offlineFriendly": "-", "openSource": "-", - "organizationalWallet": "-", - "peer2peerProtocols": "-", + "organisationalWallet": "-", + "peer2PeerProtocols": "-", "portability": "-", - "postQuantumSecure": "-", "predicates": "-", + "quantumSafe": "-", "revocationAlgorithm": "-", "scope": "-", "selectiveDisclosure": "-", "signatureAlgorithm": "-", "support": "-", - "verifierUnlinkability": "-", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "-" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "-", - "type": "-", - "used": "-" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "-", + "blockchainType": "-", + "blockchainUsed": "-", "company": "Government of BC", "connectionTypes": "-", "credExchangeProtocol": "-", "credentialFormat": "-", "cryptoAgility": "-", + "ddip": "-", "deepLinking": "-", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "-", "hardwareSupport": "-", + "holderCapability": "-", "identifierHolder": "-", "identifierIssuer": "-", + "issuerCapability": "-", "keyHistoryHolder": "-", "keyHistoryIssuer": "-", "keyRotationHolder": "-", "keyRotationIssuer": "-", "logo": "static/bc-wallet.png", + "mdoc": "-", "name": "BC Wallet", "observability": "-", "offlineFriendly": "-", "openSource": "-", - "organizationalWallet": "-", - "peer2peerProtocols": "-", + "organisationalWallet": "-", + "peer2PeerProtocols": "-", "portability": "-", - "postQuantumSecure": "-", "predicates": "-", + "quantumSafe": "-", "revocationAlgorithm": "-", "scope": "-", "selectiveDisclosure": "-", "signatureAlgorithm": "-", "support": "-", - "verifierUnlinkability": "-", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "-" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "-", - "type": "Bitcoin and Ethereum, with Merkle proof linking credential to blockchain transaction", - "used": "Yes" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "-", + "blockchainType": "Bitcoin and Ethereum, with Merkle proof linking credential to blockchain transaction", + "blockchainUsed": "Yes", "company": "Hyland Credentials (formerly: Learning Machine)", "connectionTypes": "-", "credExchangeProtocol": "-", "credentialFormat": "-", "cryptoAgility": "-", + "ddip": "-", "deepLinking": "-", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "-", "hardwareSupport": "-", + "holderCapability": "-", "identifierHolder": "-", "identifierIssuer": "-", + "issuerCapability": "-", "keyHistoryHolder": "-", "keyHistoryIssuer": "-", "keyRotationHolder": "-", "keyRotationIssuer": "-", "logo": "static/blockcerts-wallet.png", + "mdoc": "-", "name": "Blockcerts Wallet", "observability": "-", "offlineFriendly": "-", "openSource": "Yes", - "organizationalWallet": "-", - "peer2peerProtocols": "-", + "organisationalWallet": "-", + "peer2PeerProtocols": "-", "portability": "-", - "postQuantumSecure": "-", "predicates": "-", + "quantumSafe": "-", "revocationAlgorithm": "-", "scope": "-", "selectiveDisclosure": "-", "signatureAlgorithm": "-", "support": "-", - "verifierUnlinkability": "-", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "-" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "-", - "type": "Ethereum or Blockpass", - "used": "Yes" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "-", + "blockchainType": "Ethereum or Blockpass", + "blockchainUsed": "Yes", "company": "Blockpass IDN", "connectionTypes": "-", "credExchangeProtocol": "-", "credentialFormat": "-", "cryptoAgility": "-", + "ddip": "-", "deepLinking": "-", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "-", "hardwareSupport": "-", + "holderCapability": "-", "identifierHolder": "-", "identifierIssuer": "-", + "issuerCapability": "-", "keyHistoryHolder": "-", "keyHistoryIssuer": "-", "keyRotationHolder": "-", "keyRotationIssuer": "-", "logo": "static/blockpass.png", + "mdoc": "-", "name": "Blockpass", "observability": "-", "offlineFriendly": "-", "openSource": "No", - "organizationalWallet": "-", - "peer2peerProtocols": "-", + "organisationalWallet": "-", + "peer2PeerProtocols": "-", "portability": "-", - "postQuantumSecure": "-", "predicates": "-", + "quantumSafe": "-", "revocationAlgorithm": "-", "scope": "-", "selectiveDisclosure": "-", "signatureAlgorithm": "-", "support": "-", - "verifierUnlinkability": "-", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "-" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "Schema, CredentialDefinitions, DID, Revocation", - "type": "Hyperledger Indy", - "used": "Yes" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "Schema, CredentialDefinitions, DID, Revocation", + "blockchainType": "Hyperledger Indy", + "blockchainUsed": "Yes", "company": "The Ego Company", "connectionTypes": "Direct communication, Connection-based communication", "credExchangeProtocol": "OIDC4CI, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", "credentialFormat": "AnonCred, JSON-LD", "cryptoAgility": "No", + "ddip": "-", "deepLinking": "-", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "JSON", "hardwareSupport": "No", + "holderCapability": "-", "identifierHolder": "did:", "identifierIssuer": "did:sov", + "issuerCapability": "-", "keyHistoryHolder": "No", "keyHistoryIssuer": "No", "keyRotationHolder": "No", "keyRotationIssuer": "No", "logo": "static/certishare-wallet.png", + "mdoc": "-", "name": "CertiShare Wallet", "observability": "No", "offlineFriendly": "-", "openSource": "No", - "organizationalWallet": "-", - "peer2peerProtocols": "DIDComm, DID Exchange Protocol, openID", + "organisationalWallet": "-", + "peer2PeerProtocols": "DIDComm, DID Exchange Protocol, openID", "portability": "-", - "postQuantumSecure": "No", "predicates": "Yes", + "quantumSafe": "No", "revocationAlgorithm": "Indy revocation", "scope": "-", "selectiveDisclosure": "Yes", "signatureAlgorithm": "BBS+", "support": "-", - "verifierUnlinkability": "No", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "No" }, { - "AIP": "Yes", - "DDIP": "-", - "EBSI": "Yes", - "MDOC": "Planned", - "blockchain": { - "purpose": "For publishing schema IDs, credential def IDs and public DID", - "type": "Hyperledger Indy, Ethereum, EBSI blockchain", - "used": "Yes" - }, + "aip": "Yes", + "api": "-", + "blockchainPurpose": "For publishing schema IDs, credential def IDs and public DID", + "blockchainType": "Hyperledger Indy, Ethereum, EBSI blockchain", + "blockchainUsed": "Yes", "company": "iGrant.io", "connectionTypes": "Direct communication, Connection-based communication", "credExchangeProtocol": "OIDC4CI, OIDC4VP, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange, DEXA", "credentialFormat": "AnonCreds, JWT-VC, ICAO DTC, x.509", "cryptoAgility": "No", + "ddip": "-", "deepLinking": "Yes", "deployment": "-", - "download": { - "source": "-", - "appStore": "https://apple.co/2Mz9nJp", - "googlePlay": "https://play.google.com/store/apps/details?id=io.igrant.mobileagent", - "webWallet": "https://business.igrant.io/" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "Yes", "encodingScheme": "JSON", "hardwareSupport": "No", + "holderCapability": "-", "identifierHolder": "did:ebsi, did:key, link secrets, X.509", "identifierIssuer": "did:ebsi, did:key, did:sov, X.509", + "issuerCapability": "-", "keyHistoryHolder": "Yes", "keyHistoryIssuer": "Yes", "keyRotationHolder": "Yes", "keyRotationIssuer": "Yes", "logo": "static/data-wallet.png", + "mdoc": "Planned", "name": "Data Wallet", "observability": "No", "offlineFriendly": "Yes", "openSource": "No", - "organizationalWallet": "Yes, but branded as Enterprise Wallet Platform by iGrant.io", - "peer2peerProtocols": "OIDC4VC, OIDC4VP, SIOPv2, DIDComm, DID Exchange Protocol, Connection protocols in AIP 1.0", + "organisationalWallet": "Yes, but branded as Enterprise Wallet Platform by iGrant.io", + "peer2PeerProtocols": "OIDC4VC, OIDC4VP, SIOPv2, DIDComm, DID Exchange Protocol, Connection protocols in AIP 1.0", "portability": "-", - "postQuantumSecure": "No", "predicates": "Yes", + "quantumSafe": "No", "revocationAlgorithm": "Indy revocation, EBSI revocation, W3C Status List 2021, SLTD database (travel and identity documents), CRL - certificate revocation list", "scope": "-", "selectiveDisclosure": "Yes", "signatureAlgorithm": "CL, ES256, ECDSA", "support": "support@igrant.io", - "verifierUnlinkability": "Yes", - "website": "https://igrant.io/datawallet.html" + "urlAppStore": "https://apple.co/2Mz9nJp", + "urlGooglePlayStore": "https://play.google.com/store/apps/details?id=io.igrant.mobileagent", + "urlWebApp": "https://business.igrant.io/", + "urlWebsite": "https://igrant.io/datawallet.html", + "verifierCapability": "-", + "verifierUnlinkability": "Yes" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "N/A", - "type": "N/A", - "used": "No" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", "company": "Rabobank Nederland", "connectionTypes": "Direct communication", "credExchangeProtocol": "Datakeeper protocol (Verifiable Presentation)", "credentialFormat": "LDP-VC", "cryptoAgility": "Yes", + "ddip": "-", "deepLinking": "Yes", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "Yes", + "ebsi": "-", "encodingScheme": "JSON-LD", "hardwareSupport": "Yes", + "holderCapability": "-", "identifierHolder": "did:eth", "identifierIssuer": "did:eth", + "issuerCapability": "-", "keyHistoryHolder": "No", "keyHistoryIssuer": "No", "keyRotationHolder": "No", "keyRotationIssuer": "No", "logo": "static/datakeeper.png", + "mdoc": "-", "name": "Datakeeper", "observability": "No", "offlineFriendly": "No", "openSource": "No", - "organizationalWallet": "-", - "peer2peerProtocols": "Datakeeper protocol", + "organisationalWallet": "-", + "peer2PeerProtocols": "Datakeeper protocol", "portability": "-", - "postQuantumSecure": "No", "predicates": "Depending on ...", + "quantumSafe": "No", "revocationAlgorithm": "Validity credential, Revocation not supported", "scope": "-", "selectiveDisclosure": "Yes", "signatureAlgorithm": "ECDSA", "support": "-", - "verifierUnlinkability": "No", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "No" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "-", - "type": "-", - "used": "-" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "-", + "blockchainType": "-", + "blockchainUsed": "-", "company": "Thales", "connectionTypes": "-", "credExchangeProtocol": "-", "credentialFormat": "-", "cryptoAgility": "-", + "ddip": "-", "deepLinking": "-", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "-", "hardwareSupport": "-", + "holderCapability": "-", "identifierHolder": "-", "identifierIssuer": "-", + "issuerCapability": "-", "keyHistoryHolder": "-", "keyHistoryIssuer": "-", "keyRotationHolder": "-", "keyRotationIssuer": "-", "logo": "static/digital-id-wallet.png", + "mdoc": "-", "name": "Digital ID Wallet", "observability": "-", "offlineFriendly": "-", "openSource": "-", - "organizationalWallet": "-", - "peer2peerProtocols": "-", + "organisationalWallet": "-", + "peer2PeerProtocols": "-", "portability": "-", - "postQuantumSecure": "-", "predicates": "-", + "quantumSafe": "-", "revocationAlgorithm": "-", "scope": "-", "selectiveDisclosure": "-", "signatureAlgorithm": "-", "support": "-", - "verifierUnlinkability": "-", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "-" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "N/A", - "type": "N/A", - "used": "No" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", "company": "esatus AG", "connectionTypes": "Connection-based communication", "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", "credentialFormat": "AnonCred", "cryptoAgility": "No", + "ddip": "-", "deepLinking": "Yes", "deployment": "-", - "download": { - "source": "-", - "appStore": "https://apps.apple.com/us/app/esatus-wallet/id1496769057?itsct=apps_box&itscg=30200", - "googlePlay": "https://play.google.com/store/apps/details?id=com.esatus.wallet&hl=de_DE&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "Yes", + "ebsi": "-", "encodingScheme": "JSON", "hardwareSupport": "No", + "holderCapability": "-", "identifierHolder": "Link secret", "identifierIssuer": "Link secret", + "issuerCapability": "-", "keyHistoryHolder": "No", "keyHistoryIssuer": "No", "keyRotationHolder": "No", "keyRotationIssuer": "No", "logo": "static/esatus-wallet.png", + "mdoc": "-", "name": "esatus Wallet", "observability": "No", "offlineFriendly": "No", "openSource": "A new version of the wallet - called SOWL wallet - will be available soon, together with an open source wallet SDK on which SOWL Wallet is based.", - "organizationalWallet": "-", - "peer2peerProtocols": "DIDComm", + "organisationalWallet": "-", + "peer2PeerProtocols": "DIDComm", "portability": "-", - "postQuantumSecure": "No", "predicates": "Yes", + "quantumSafe": "No", "revocationAlgorithm": "Indy revocation", "scope": "-", "selectiveDisclosure": "Yes", "signatureAlgorithm": "CL", "support": "-", - "verifierUnlinkability": "Yes", - "website": "https://esatus.com/index.html%3Fp=7663&lang=en.html" + "urlAppStore": "https://apps.apple.com/us/app/esatus-wallet/id1496769057?itsct=apps_box&itscg=30200", + "urlGooglePlayStore": "https://play.google.com/store/apps/details?id=com.esatus.wallet&hl=de_DE&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1", + "urlWebApp": "-", + "urlWebsite": "https://esatus.com/index.html%3Fp=7663&lang=en.html", + "verifierCapability": "-", + "verifierUnlinkability": "Yes" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "To anchor DIDs (legal entities), and to anchor the trust framework", - "type": "We are agnostic to the infra, so the platform right now supports Ethereum, Fabric and EBSI", - "used": "Yes" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "To anchor DIDs (legal entities), and to anchor the trust framework", + "blockchainType": "We are agnostic to the infra, so the platform right now supports Ethereum, Fabric and EBSI", + "blockchainUsed": "Yes", "company": "Gataca Inc.", "connectionTypes": "Direct communication, Connection-based communication", "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", "credentialFormat": "LDP-VC, JTW-VC", "cryptoAgility": "Yes", + "ddip": "-", "deepLinking": "Yes", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "JSON-LD", "hardwareSupport": "No", + "holderCapability": "-", "identifierHolder": "did:key", "identifierIssuer": "did:gatc", + "issuerCapability": "-", "keyHistoryHolder": "No", "keyHistoryIssuer": "No", "keyRotationHolder": "No", "keyRotationIssuer": "No", "logo": "static/gataca.png", + "mdoc": "-", "name": "Gataca", "observability": "Yes", "offlineFriendly": "Yes, implemntation according to ARF", "openSource": "No", - "organizationalWallet": "-", - "peer2peerProtocols": "OIDC, SIOP", + "organisationalWallet": "-", + "peer2PeerProtocols": "OIDC, SIOP", "portability": "-", - "postQuantumSecure": "No", "predicates": "No", + "quantumSafe": "No", "revocationAlgorithm": "Status List 2017, Status List 2021", "scope": "-", "selectiveDisclosure": "Yes", "signatureAlgorithm": "EdDSA, RSA, secp256k, P-256, CadEs", "support": "-", - "verifierUnlinkability": "No", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "No" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "Anchor DID & DID Documents", - "type": "Depending on DID method", - "used": "Yes" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "Anchor DID & DID Documents", + "blockchainType": "Depending on DID method", + "blockchainUsed": "Yes", "company": "Gimly", "connectionTypes": "Direct communication, Connection-based communication, Direct NFC-based communication", "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", "credentialFormat": "JWT, JWT-VC, LDP-VC", "cryptoAgility": "-", + "ddip": "-", "deepLinking": "Yes", "deployment": "-", - "download": { - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, "eassi": "No", + "ebsi": "-", "encodingScheme": "-", "hardwareSupport": "Yes, NFC HWW", + "holderCapability": "-", "identifierHolder": "did:ethr, did:ion, did:web, did:jwk, did:key", "identifierIssuer": "did:web, did:ion, did:key, did:jwk", + "issuerCapability": "-", "keyHistoryHolder": "-", "keyHistoryIssuer": "-", "keyRotationHolder": "-", "keyRotationIssuer": "-", "logo": "static/Gimly-wallet.png", + "mdoc": "-", "name": "Tap ID", "observability": "-", "offlineFriendly": "Yes", "openSource": "No", - "organizationalWallet": "-", - "peer2peerProtocols": "OIDC, SIOP, DIDComm", + "organisationalWallet": "-", + "peer2PeerProtocols": "OIDC, SIOP, DIDComm", "portability": "-", - "postQuantumSecure": "-", "predicates": "No", + "quantumSafe": "-", "revocationAlgorithm": "Status List 2021", "scope": "Travel, Hospitality, Access Control", "selectiveDisclosure": "Yes", "signatureAlgorithm": "BBS+, ECDSA", "support": "-", - "verifierUnlinkability": "-", - "website": "https://www.gimly.io" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "https://www.gimly.io", + "verifierCapability": "-", + "verifierUnlinkability": "-" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "No personal data", - "type": "public permissioned Ethereum, IPFS", - "used": "Yes" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "No personal data", + "blockchainType": "public permissioned Ethereum, IPFS", + "blockchainUsed": "Yes", "company": "Blockchain Helix AG", "connectionTypes": "Direct communication, Connection-based communication", "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", "credentialFormat": "JWT, JWT-VC", "cryptoAgility": "Yes", + "ddip": "-", "deepLinking": "Yes", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "compact and JSON serialization, JSON, JSON-LD", "hardwareSupport": "Yes", + "holderCapability": "-", "identifierHolder": "did:key, ENS, did:eth", "identifierIssuer": "did:key, ENS, did:eth", + "issuerCapability": "-", "keyHistoryHolder": "No", "keyHistoryIssuer": "No", "keyRotationHolder": "No", "keyRotationIssuer": "No", "logo": "static/helix-id.png", + "mdoc": "-", "name": "helix id", "observability": "No", "offlineFriendly": "Yes", "openSource": "partly open sourced", - "organizationalWallet": "-", - "peer2peerProtocols": "OIDC, DIDComm, DID Exchange Protocol", + "organisationalWallet": "-", + "peer2PeerProtocols": "OIDC, DIDComm, DID Exchange Protocol", "portability": "-", - "postQuantumSecure": "No", "predicates": "Yes", + "quantumSafe": "No", "revocationAlgorithm": "DID Revocation", "scope": "-", "selectiveDisclosure": "Yes", "signatureAlgorithm": "BBS+, ECDSA", "support": "-", - "verifierUnlinkability": "No", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "No" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "-", - "type": "-", - "used": "-" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "-", + "blockchainType": "-", + "blockchainUsed": "-", "company": "IDEMIA Group", "connectionTypes": "-", "credExchangeProtocol": "-", "credentialFormat": "-", "cryptoAgility": "-", + "ddip": "-", "deepLinking": "-", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "-", "hardwareSupport": "-", + "holderCapability": "-", "identifierHolder": "-", "identifierIssuer": "-", + "issuerCapability": "-", "keyHistoryHolder": "-", "keyHistoryIssuer": "-", "keyRotationHolder": "-", "keyRotationIssuer": "-", "logo": "static/idema.png", + "mdoc": "-", "name": "IDEMIA Mobile ID", "observability": "-", "offlineFriendly": "-", "openSource": "-", - "organizationalWallet": "-", - "peer2peerProtocols": "-", + "organisationalWallet": "-", + "peer2PeerProtocols": "-", "portability": "-", - "postQuantumSecure": "-", "predicates": "-", + "quantumSafe": "-", "revocationAlgorithm": "-", "scope": "-", "selectiveDisclosure": "-", "signatureAlgorithm": "-", "support": "-", - "verifierUnlinkability": "-", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "-" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "-", - "type": "-", - "used": "-" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "-", + "blockchainType": "-", + "blockchainUsed": "-", "company": "-", "connectionTypes": "-", "credExchangeProtocol": "-", "credentialFormat": "-", "cryptoAgility": "-", + "ddip": "-", "deepLinking": "-", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "-", "hardwareSupport": "-", + "holderCapability": "-", "identifierHolder": "-", "identifierIssuer": "-", + "issuerCapability": "-", "keyHistoryHolder": "-", "keyHistoryIssuer": "-", "keyRotationHolder": "-", "keyRotationIssuer": "-", "logo": "static/idento-one.png", + "mdoc": "-", "name": "idento.one", "observability": "-", "offlineFriendly": "-", "openSource": "-", - "organizationalWallet": "-", - "peer2peerProtocols": "-", + "organisationalWallet": "-", + "peer2PeerProtocols": "-", "portability": "-", - "postQuantumSecure": "-", "predicates": "-", + "quantumSafe": "-", "revocationAlgorithm": "-", "scope": "-", "selectiveDisclosure": "-", "signatureAlgorithm": "-", "support": "-", - "verifierUnlinkability": "-", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "-" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "Authorization, Credentials Schemas, Revocation registry", - "type": "HyperLedger Indy", - "used": "Yes" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "Authorization, Credentials Schemas, Revocation registry", + "blockchainType": "HyperLedger Indy", + "blockchainUsed": "Yes", "company": "-", "connectionTypes": "Direct communication, Connection-based communication", "credExchangeProtocol": "Present Proof Protocol", "credentialFormat": "AnonCred", "cryptoAgility": "No", + "ddip": "-", "deepLinking": "-", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "JSON", "hardwareSupport": "No", + "holderCapability": "-", "identifierHolder": "did:sov", "identifierIssuer": "did:sov", + "issuerCapability": "-", "keyHistoryHolder": "No", "keyHistoryIssuer": "No", "keyRotationHolder": "No", "keyRotationIssuer": "No", "logo": "static/identry.png", + "mdoc": "-", "name": "Identry", "observability": "No", "offlineFriendly": "-", "openSource": "No", - "organizationalWallet": "-", - "peer2peerProtocols": "DIDComm", + "organisationalWallet": "-", + "peer2PeerProtocols": "DIDComm", "portability": "-", - "postQuantumSecure": "No", "predicates": "Yes", + "quantumSafe": "No", "revocationAlgorithm": "Indy revocation", "scope": "-", "selectiveDisclosure": "Yes", "signatureAlgorithm": "CL", "support": "-", - "verifierUnlinkability": "Yes", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "Yes" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "-", - "type": "Blockchain network based on Ethereum", - "used": "Yes" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "-", + "blockchainType": "Blockchain network based on Ethereum", + "blockchainUsed": "Yes", "company": "KayTrust", "connectionTypes": "-", "credExchangeProtocol": "-", "credentialFormat": "-", "cryptoAgility": "-", + "ddip": "-", "deepLinking": "-", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "-", "hardwareSupport": "-", + "holderCapability": "-", "identifierHolder": "-", "identifierIssuer": "-", + "issuerCapability": "-", "keyHistoryHolder": "-", "keyHistoryIssuer": "-", "keyRotationHolder": "-", "keyRotationIssuer": "-", "logo": "static/kaytrust-wallet.png", + "mdoc": "-", "name": "KayTrust Wallet", "observability": "-", "offlineFriendly": "-", "openSource": "No", - "organizationalWallet": "-", - "peer2peerProtocols": "-", + "organisationalWallet": "-", + "peer2PeerProtocols": "-", "portability": "-", - "postQuantumSecure": "-", "predicates": "-", + "quantumSafe": "-", "revocationAlgorithm": "-", "scope": "-", "selectiveDisclosure": "-", "signatureAlgorithm": "-", "support": "-", - "verifierUnlinkability": "-", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "-" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "Decentralized Public Key Infrastructure", - "type": "Hyperledger Indy", - "used": "Yes" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "Decentralized Public Key Infrastructure", + "blockchainType": "Hyperledger Indy", + "blockchainUsed": "Yes", "company": "main incubator GmbH", "connectionTypes": "Direct communication, Connection-based communication", "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, soon: OpenID4VCI and OpenID4VP", "credentialFormat": "AnonCred", "cryptoAgility": "No", + "ddip": "-", "deepLinking": "Yes", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "Soon", + "ebsi": "-", "encodingScheme": "JSON", "hardwareSupport": "No", + "holderCapability": "-", "identifierHolder": "Link secret", "identifierIssuer": "did:sovrin (did:indy)", + "issuerCapability": "-", "keyHistoryHolder": "No", "keyHistoryIssuer": "No", "keyRotationHolder": "No", "keyRotationIssuer": "No", "logo": "static/lissi-wallet.png", + "mdoc": "-", "name": "Lissi Wallet", "observability": "No", "offlineFriendly": "-", "openSource": "No", - "organizationalWallet": "-", - "peer2peerProtocols": "DIDComm", + "organisationalWallet": "-", + "peer2PeerProtocols": "DIDComm", "portability": "-", - "postQuantumSecure": "No", "predicates": "Yes", + "quantumSafe": "No", "revocationAlgorithm": "Indy revocation", "scope": "-", "selectiveDisclosure": "Yes", "signatureAlgorithm": "CL", "support": "-", - "verifierUnlinkability": "Yes", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "Yes" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "Storing public keys", - "type": "ION - if ION DID menthod used", - "used": "Yes" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "Storing public keys", + "blockchainType": "ION - if ION DID menthod used", + "blockchainUsed": "Yes", "company": "Mattr Limited", "connectionTypes": "Direct communication, Connection-based communication", "credExchangeProtocol": "OIDC4CI", "credentialFormat": "LDP-VC", "cryptoAgility": "Yes", + "ddip": "-", "deepLinking": "Yes", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "JSON-LD", "hardwareSupport": "No", + "holderCapability": "-", "identifierHolder": "did:key", "identifierIssuer": "did:web, did:ion, did:key", + "issuerCapability": "-", "keyHistoryHolder": "No", "keyHistoryIssuer": "No", "keyRotationHolder": "No", "keyRotationIssuer": "No", "logo": "static/mattr-wallet.png", + "mdoc": "-", "name": "MATTR Wallet", "observability": "No", "offlineFriendly": "Yes", "openSource": "No", - "organizationalWallet": "-", - "peer2peerProtocols": "OIDC, DIDComm", + "organisationalWallet": "-", + "peer2PeerProtocols": "OIDC, DIDComm", "portability": "-", - "postQuantumSecure": "No", "predicates": "No", + "quantumSafe": "No", "revocationAlgorithm": "RevocationList2020", "scope": "-", "selectiveDisclosure": "Yes", "signatureAlgorithm": "BBS+, EdDSA", "support": "-", - "verifierUnlinkability": "No", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "No" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "-", - "type": "-", - "used": "-" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "-", + "blockchainType": "-", + "blockchainUsed": "-", "company": "Microsoft", "connectionTypes": "-", "credExchangeProtocol": "-", "credentialFormat": "-", "cryptoAgility": "-", + "ddip": "-", "deepLinking": "-", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "-", "hardwareSupport": "-", + "holderCapability": "-", "identifierHolder": "-", "identifierIssuer": "-", + "issuerCapability": "-", "keyHistoryHolder": "-", "keyHistoryIssuer": "-", "keyRotationHolder": "-", "keyRotationIssuer": "-", "logo": "static/microsoft-entra.png", + "mdoc": "-", "name": "Microsoft Entra", "observability": "-", "offlineFriendly": "-", "openSource": "No", - "organizationalWallet": "-", - "peer2peerProtocols": "-", + "organisationalWallet": "-", + "peer2PeerProtocols": "-", "portability": "-", - "postQuantumSecure": "-", "predicates": "-", + "quantumSafe": "-", "revocationAlgorithm": "-", "scope": "-", "selectiveDisclosure": "-", "signatureAlgorithm": "-", "support": "-", - "verifierUnlinkability": "-", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "-" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "Scale up for DID", - "type": "Metadium", - "used": "Yes" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "Scale up for DID", + "blockchainType": "Metadium", + "blockchainUsed": "Yes", "company": "Metadium Technology Inc", "connectionTypes": "Direct communication", "credExchangeProtocol": "N/A", "credentialFormat": "JWT, JWT-VC", "cryptoAgility": "Yes", + "ddip": "-", "deepLinking": "Yes", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "compact and JSON serialization, JSON, JSON-LD", "hardwareSupport": "Yes", + "holderCapability": "-", "identifierHolder": "Raw public key", "identifierIssuer": "Raw public key", + "issuerCapability": "-", "keyHistoryHolder": "No", "keyHistoryIssuer": "No", "keyRotationHolder": "No", "keyRotationIssuer": "No", "logo": "static/mykeepin.png", + "mdoc": "-", "name": "MYKEEPiN", "observability": "No", "offlineFriendly": "Yes", "openSource": "No", - "organizationalWallet": "-", - "peer2peerProtocols": "N/A", + "organisationalWallet": "-", + "peer2PeerProtocols": "N/A", "portability": "-", - "postQuantumSecure": "No", "predicates": "Yes", + "quantumSafe": "No", "revocationAlgorithm": "Non-revocation token", "scope": "-", "selectiveDisclosure": "Yes", "signatureAlgorithm": "ECDSA", "support": "-", - "verifierUnlinkability": "No", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "No" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "N/A", - "type": "N/A", - "used": "No" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", "company": "Animo Solutions", "connectionTypes": "Direct communication", "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", "credentialFormat": "JWT-VC", "cryptoAgility": "Yes", + "ddip": "-", "deepLinking": "Yes", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "compact and JSON serialization, JSON", "hardwareSupport": "No", + "holderCapability": "-", "identifierHolder": "did:jwk, did:key", "identifierIssuer": "did:jwk, did:key, did:web", + "issuerCapability": "-", "keyHistoryHolder": "No", "keyHistoryIssuer": "No", "keyRotationHolder": "No", "keyRotationIssuer": "No", "logo": "static/paradym-wallet.png", + "mdoc": "-", "name": "Paradym Wallet", "observability": "No", "offlineFriendly": "Yes", "openSource": "Yes", - "organizationalWallet": "-", - "peer2peerProtocols": "OID4VC", + "organisationalWallet": "-", + "peer2PeerProtocols": "OID4VC", "portability": "-", - "postQuantumSecure": "No", "predicates": "No", + "quantumSafe": "No", "revocationAlgorithm": "No", "scope": "-", "selectiveDisclosure": "No", "signatureAlgorithm": "EdDSA, ES256", "support": "-", - "verifierUnlinkability": "No", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "No" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "N/A", - "type": "N/A", - "used": "No" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", "company": "Sphereon", "connectionTypes": "Direct communication, Connection-based communication", "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", "credentialFormat": "JWT, JWT-VC, LDP-VC", "cryptoAgility": "Yes", + "ddip": "-", "deepLinking": "Yes", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "compact and JSON serialization, JSON, JSON-LD, JSON-LD", "hardwareSupport": "Yes", + "holderCapability": "-", "identifierHolder": "X.509 certificate, did:jwk, did:key, did:ion, did:cheqd, did:web, did:lto, did:factom, did:ethr, did:pkh", "identifierIssuer": "X.509 certificate, did:jwk, did:key, did:ion, did:cheqd, did:web, did:lto, did:factom, did:ethr, did:pkh", + "issuerCapability": "-", "keyHistoryHolder": "No", "keyHistoryIssuer": "No", "keyRotationHolder": "No", "keyRotationIssuer": "No", "logo": "static/sphereon-wallet.png", + "mdoc": "-", "name": "Sphereon Wallet", "observability": "Yes", "offlineFriendly": "No", "openSource": "Yes", - "organizationalWallet": "-", - "peer2peerProtocols": "OIDC, SIOP, DIDComm", + "organisationalWallet": "-", + "peer2PeerProtocols": "OIDC, SIOP, DIDComm", "portability": "-", - "postQuantumSecure": "No", "predicates": "No", + "quantumSafe": "No", "revocationAlgorithm": "Status List 2021, Validity credential", "scope": "-", "selectiveDisclosure": "Yes", "signatureAlgorithm": "BBS+, ECDSA, EdDSA, RSA", "support": "-", - "verifierUnlinkability": "No", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "No" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "Anchor DID & DID Documents, Trust Registry, Revocation Registry", - "type": "Ethereum", - "used": "Yes" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "Anchor DID & DID Documents, Trust Registry, Revocation Registry", + "blockchainType": "Ethereum", + "blockchainUsed": "Yes", "company": "Spherity GmbH", "connectionTypes": "Direct communication, Connection-based communication", "credExchangeProtocol": "OIDC4CI, OIDC4VP, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", "credentialFormat": "AnonCred, JSON-LD", "cryptoAgility": "No", + "ddip": "-", "deepLinking": "-", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "-", "hardwareSupport": "No", + "holderCapability": "-", "identifierHolder": "did:ethr", "identifierIssuer": "did:ethr", + "issuerCapability": "-", "keyHistoryHolder": "No", "keyHistoryIssuer": "No", "keyRotationHolder": "No", "keyRotationIssuer": "No", "logo": "static/spherity-wallet.png", + "mdoc": "-", "name": "Spherity Wallet", "observability": "No", "offlineFriendly": "-", "openSource": "No", - "organizationalWallet": "-", - "peer2peerProtocols": "OIDC, SIOP, DIDComm, DID Exchange Protocol", + "organisationalWallet": "-", + "peer2PeerProtocols": "OIDC, SIOP, DIDComm, DID Exchange Protocol", "portability": "-", - "postQuantumSecure": "No", "predicates": "No", + "quantumSafe": "No", "revocationAlgorithm": "Indy Revocation, Revocation 5539, Status List 2021", "scope": "-", "selectiveDisclosure": "No", "signatureAlgorithm": "CL, BBS+, EdDSA", "support": "-", - "verifierUnlinkability": "No", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "No" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "identity, crypto", - "type": "Ethereum, ION, EBSI, PolygonID", - "used": "Yes" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "identity, crypto", + "blockchainType": "Ethereum, ION, EBSI, PolygonID", + "blockchainUsed": "Yes", "company": "Talao", "connectionTypes": "Direct communication, Connection-based communication", "credExchangeProtocol": "OIDC4CI, OIDC4VP, Present Proof Protocol, Presentation Exchange", "credentialFormat": "JWT-VC, JSON-LD", "cryptoAgility": "Yes", + "ddip": "-", "deepLinking": "-", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "JSON, JSON-LD", "hardwareSupport": "Yes", + "holderCapability": "-", "identifierHolder": "did:ebsi, did:ion, did:web, did:tz, did:key", "identifierIssuer": "did:ebsi, did:ion, did:web, did:tz, did:key", + "issuerCapability": "-", "keyHistoryHolder": "Yes", "keyHistoryIssuer": "No", "keyRotationHolder": "Yes", "keyRotationIssuer": "No", "logo": "static/talao.png", + "mdoc": "-", "name": "Talao", "observability": "Yes", "offlineFriendly": "-", "openSource": "Yes", - "organizationalWallet": "-", - "peer2peerProtocols": "OIDC, SIOP, DID Exchange Protocol", + "organisationalWallet": "-", + "peer2PeerProtocols": "OIDC, SIOP, DID Exchange Protocol", "portability": "-", - "postQuantumSecure": "No", "predicates": "No", + "quantumSafe": "No", "revocationAlgorithm": "Status List 2021", "scope": "-", "selectiveDisclosure": "No", "signatureAlgorithm": "ECDSA", "support": "-", - "verifierUnlinkability": "No", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "No" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "Anchor DID & DID Documents", - "type": "Depending on DID method", - "used": "Yes" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "Anchor DID & DID Documents", + "blockchainType": "Depending on DID method", + "blockchainUsed": "Yes", "company": "Gimly", "connectionTypes": "Direct communication, Connection-based communication, Direct NFC-based communication", "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", "credentialFormat": "JWT, JWT-VC, LDP-VC", "cryptoAgility": "-", + "ddip": "-", "deepLinking": "Yes", "deployment": "-", - "download": { - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, "eassi": "No", + "ebsi": "-", "encodingScheme": "-", "hardwareSupport": "-", + "holderCapability": "-", "identifierHolder": "did:ethr, did:ion, did:web, did:jwk, did:key", "identifierIssuer": "did:web, did:ion, did:key, did:jwk", + "issuerCapability": "-", "keyHistoryHolder": "-", "keyHistoryIssuer": "-", "keyRotationHolder": "-", "keyRotationIssuer": "-", "logo": "static/tap-id.png", + "mdoc": "-", "name": "Tap ID", "observability": "-", "offlineFriendly": "Yes", "openSource": "No", - "organizationalWallet": "-", - "peer2peerProtocols": "OIDC, SIOP, DIDComm", + "organisationalWallet": "-", + "peer2PeerProtocols": "OIDC, SIOP, DIDComm", "portability": "-", - "postQuantumSecure": "-", "predicates": "Yes", + "quantumSafe": "-", "revocationAlgorithm": "Status List 2021", "scope": "-", "selectiveDisclosure": "Yes", "signatureAlgorithm": "BBS+, ECDSA", "support": "-", - "verifierUnlinkability": "-", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "-" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "Trust Anchor, Trust registry, root of trust", - "type": "EBSI, Alastria, Ethereum", - "used": "Yes" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "Trust Anchor, Trust registry, root of trust", + "blockchainType": "EBSI, Alastria, Ethereum", + "blockchainUsed": "Yes", "company": "Validated ID", "connectionTypes": "both", "credExchangeProtocol": "OIDC4CI, OIDC4VP", "credentialFormat": "JWT-VC, JSON-LD, JWT", "cryptoAgility": "Yes", + "ddip": "-", "deepLinking": "Yes", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "JSON, JSON-LD", "hardwareSupport": "Yes", + "holderCapability": "-", "identifierHolder": "did:key, did:jwk, did:ala, did:ebsi, did:eth", "identifierIssuer": "did:key, did:jwk, did:ala, did:ebsi, did:eth", + "issuerCapability": "-", "keyHistoryHolder": "No", "keyHistoryIssuer": "No", "keyRotationHolder": "No", "keyRotationIssuer": "No", "logo": "static/vidwallet.png", + "mdoc": "-", "name": "VIDwallet", "observability": "Yes", "offlineFriendly": "-", "openSource": "No", - "organizationalWallet": "-", - "peer2peerProtocols": "OIDC, SIOP", + "organisationalWallet": "-", + "peer2PeerProtocols": "OIDC, SIOP", "portability": "-", - "postQuantumSecure": "No", "predicates": "No", + "quantumSafe": "No", "revocationAlgorithm": "Status List 2021", "scope": "-", "selectiveDisclosure": "No", "signatureAlgorithm": "ECDSA, EdDSA", "support": "-", - "verifierUnlinkability": "No", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "No" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "EBSI - The aim of EBSI is to develop a secure and scalable blockchain infrastructure that can provide cross-border digital public services to citizens and businesses in Europe.\n\nIOTA - it's purpose is to provide a scalable, feeless, and decentralized transactional settlement and data transfer platform for the Internet of Things (IoT) ecosystem.\n\nVelocity - The purpose of the Velocity Network is to create a decentralized, global credentialing ecosystem that enables individuals to own, control, and securely share their verified career credentials while giving organizations access to a trusted talent marketplace.\n\nChqed - The purpose of the cheqd ecosystem is to provide a decentralized, privacy-preserving digital identity solution that allows individuals to have control over their personal data while enabling secure and verifiable credential exchange between individuals and organizations.", - "type": "ebsi, iota, cheqd, velocity", - "used": "Yes" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "EBSI - The aim of EBSI is to develop a secure and scalable blockchain infrastructure that can provide cross-border digital public services to citizens and businesses in Europe.\n\nIOTA - it's purpose is to provide a scalable, feeless, and decentralized transactional settlement and data transfer platform for the Internet of Things (IoT) ecosystem.\n\nVelocity - The purpose of the Velocity Network is to create a decentralized, global credentialing ecosystem that enables individuals to own, control, and securely share their verified career credentials while giving organizations access to a trusted talent marketplace.\n\nChqed - The purpose of the cheqd ecosystem is to provide a decentralized, privacy-preserving digital identity solution that allows individuals to have control over their personal data while enabling secure and verifiable credential exchange between individuals and organizations.", + "blockchainType": "ebsi, iota, cheqd, velocity", + "blockchainUsed": "Yes", "company": "walt.id", "connectionTypes": "Direct communication, Connection-based communication", "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", "credentialFormat": "JWT, LDP-VC", "cryptoAgility": "Yes", + "ddip": "-", "deepLinking": "-", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "compact and JSON serialization", "hardwareSupport": "Yes", + "holderCapability": "-", "identifierHolder": "did:key, did:web, did:ebsi, did:iota, did:jwk, did:cheqd, did:velocity", "identifierIssuer": "did:key, did:web, did:ebsi, did:iota, did:jwk, did:cheqd, did:velocity", + "issuerCapability": "-", "keyHistoryHolder": "Yes", "keyHistoryIssuer": "Yes", "keyRotationHolder": "Yes", "keyRotationIssuer": "Yes", "logo": "static/walt-id.png", + "mdoc": "-", "name": "walt.id", "observability": "-", "offlineFriendly": "-", "openSource": "Yes", - "organizationalWallet": "-", - "peer2peerProtocols": "OIDC, SIOP", + "organisationalWallet": "-", + "peer2PeerProtocols": "OIDC, SIOP", "portability": "-", - "postQuantumSecure": "No", "predicates": "No", + "quantumSafe": "No", "revocationAlgorithm": "Revocation not supported", "scope": "-", "selectiveDisclosure": "No", "signatureAlgorithm": "ECDSA, EdDSA, RSA", "support": "-", - "verifierUnlinkability": "No", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "No" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "N/A", - "type": "N/A", - "used": "No" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", "company": "Privacy by Design Foundation", "connectionTypes": "Direct communication, Interpreted as direct wallet to IDP and wallet to RP connections. No communication through centralized components in our infrastructure. IRMA is fully decentralized. ", "credExchangeProtocol": "IRMA protocol", "credentialFormat": "Idemix ABC", "cryptoAgility": "No", + "ddip": "-", "deepLinking": "Yes", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "Yes", + "ebsi": "-", "encodingScheme": "JSON", "hardwareSupport": "No", + "holderCapability": "-", "identifierHolder": "Link secret", "identifierIssuer": "Issuer identifier inside issuer scheme including issuer public key", + "issuerCapability": "-", "keyHistoryHolder": "No", "keyHistoryIssuer": "No", "keyRotationHolder": "No", "keyRotationIssuer": "No", "logo": "static/yivi.png", + "mdoc": "-", "name": "Yivi", "observability": "No", "offlineFriendly": "No", "openSource": "Yes", - "organizationalWallet": "-", - "peer2peerProtocols": "IRMA protocol ", + "organisationalWallet": "-", + "peer2PeerProtocols": "IRMA protocol ", "portability": "-", - "postQuantumSecure": "No", "predicates": "Yes", + "quantumSafe": "No", "revocationAlgorithm": "Own implementation on top of Idemix", "scope": "-", "selectiveDisclosure": "Yes", "signatureAlgorithm": "CL, Schnorr", "support": "-", - "verifierUnlinkability": "Yes", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "Yes" }, { - "AIP": "-", - "DDIP": "-", - "EBSI": "-", - "MDOC": "-", - "blockchain": { - "purpose": "Public DIDs and associated DID documents with verification keys and endpoints, schemas and credential definitions, revocation registries, agent authorisation policies", - "type": "Sovrin", - "used": "Yes" - }, + "aip": "-", + "api": "-", + "blockchainPurpose": "Public DIDs and associated DID documents with verification keys and endpoints, schemas and credential definitions, revocation registries, agent authorisation policies", + "blockchainType": "Sovrin", + "blockchainUsed": "Yes", "company": "ZADA Solutions", "connectionTypes": "-", "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", "credentialFormat": "AnonCred, RSA", "cryptoAgility": "No", + "ddip": "-", "deepLinking": "Yes", "deployment": "-", - "download": { - "source": "-", - "appStore": "-", - "googlePlay": "-", - "webWallet": "-" - }, + "downloadSource": "-", "eassi": "No", + "ebsi": "-", "encodingScheme": "JSON", "hardwareSupport": "Yes", + "holderCapability": "-", "identifierHolder": "Raw public key, did:sov", "identifierIssuer": "Raw public key, did:sov", + "issuerCapability": "-", "keyHistoryHolder": "No", "keyHistoryIssuer": "No", "keyRotationHolder": "No", "keyRotationIssuer": "No", "logo": "static/zada.png", + "mdoc": "-", "name": "ZADA", "observability": "No", "offlineFriendly": "Yes", "openSource": "Yes", - "organizationalWallet": "-", - "peer2peerProtocols": "DIDComm", + "organisationalWallet": "-", + "peer2PeerProtocols": "DIDComm", "portability": "-", - "postQuantumSecure": "No", "predicates": "Yes", + "quantumSafe": "No", "revocationAlgorithm": "Indy revocation", "scope": "-", "selectiveDisclosure": "Yes", "signatureAlgorithm": "CL, RSA", "support": "-", - "verifierUnlinkability": "Yes", - "website": "-" + "urlAppStore": "-", + "urlGooglePlayStore": "-", + "urlWebApp": "-", + "urlWebsite": "-", + "verifierCapability": "-", + "verifierUnlinkability": "Yes" } -] +] \ No newline at end of file diff --git a/index.html b/index.html index a789d6a..e27f2e4 100644 --- a/index.html +++ b/index.html @@ -50,6 +50,30 @@

Wallet Overview

The developer of the wallet.
Holder Capability + + + Does the wallet or agent have holder capabilities? + + Issuer Capability + + + Does the wallet or agent have issuer capabilities? + + Verifier Capability + + + Does the wallet or agent have verifier capabilities? + + Scope - The links to the downloads in Google Play, the App Store or the link to the web app. + The links to the downloads in Google Play, the App Store or the link to the web app / cloud service agent. API + + + The link to the provided API. + + Credential Format
${wallet.website == "-" ? wallet.name: ''+wallet.name+''}${wallet.urlWebsite == "-" ? wallet.name: ''+wallet.name+''} ${wallet.company}${wallet.holderCapability}${wallet.issuerCapability}${wallet.verifierCapability} ${wallet.scope} ${wallet.deployment} ${wallet.organizationalWallet} ${wallet.openSource == 'Yes' ? ''+wallet.openSource+'' : wallet.openSource}${wallet.download.googlePlay == '-' ? '-': ''} - ${wallet.download.appStore == '-' ? '-': ''} - ${wallet.download.webWallet == '-' ? '-': ''}${wallet.urlGooglePlayStore == '-' ? '-': ''} + ${wallet.urlAppStore == '-' ? '-': ''} + ${wallet.urlWebApp == '-' ? '-': ''} ${wallet.support == '-' ? '-' : 'e-mail'}${wallet.api} ${wallet.credentialFormat} ${wallet.encodingScheme}${wallet.revocationAlgorithm} ${wallet.peer2peerProtocols} ${wallet.credExchangeProtocol}${wallet.blockchain.used}${wallet.blockchain.type}${wallet.blockchain.purpose}${wallet.blockchainUsed}${wallet.blockchainType}${wallet.blockchainPurpose} ${wallet.connectionTypes} ${wallet.deepLinking}${wallet.observability} ${wallet.cryptoAgility}${wallet.postQuantumSecure}${wallet.quantumSafe} ${wallet.keyRotationHolder} ${wallet.keyRotationIssuer}
GeneralGeneral Technology Stack User-Friendliness Privacy Organizational Wallet + Organisational Wallet @@ -107,7 +107,7 @@

Wallet Overview

Whether the wallet is open source and if so, the link to their code base.
Download + Links to app diff --git a/script.js b/script.js index 381e79b..ba63c9d 100644 --- a/script.js +++ b/script.js @@ -16,8 +16,8 @@ fetch("flattened_wallets.json") ${wallet.verifierCapability} ${wallet.scope} ${wallet.deployment}${wallet.organizationalWallet}${wallet.openSource == 'Yes' ? ''+wallet.openSource+'' : wallet.openSource}${wallet.organisationalWallet}${wallet.openSource == 'Yes' ? ''+wallet.openSource+'' : wallet.openSource} ${wallet.urlGooglePlayStore == '-' ? '-': ''} ${wallet.urlAppStore == '-' ? '-': ''} ${wallet.urlWebApp == '-' ? '-': ''}${wallet.identifierHolder} ${wallet.identifierIssuer} ${wallet.revocationAlgorithm}${wallet.peer2peerProtocols}${wallet.peer2PeerProtocols} ${wallet.credExchangeProtocol} ${wallet.blockchainUsed} ${wallet.blockchainType}${wallet.keyRotationIssuer} ${wallet.eassi}${wallet.EBSI}${wallet.AIP}${wallet.DDIP}${wallet.MDOC}${wallet.ebsi}${wallet.aip}${wallet.ddip}${wallet.mdoc}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GeneralTechnology StackUser-FriendlinessPrivacySecurityInteroperability
LogoWallet - - - The name of the wallet and the link to the website. - - Company - - - The developer of the wallet. - - Holder Capability - - - Does the wallet or agent have holder capabilities? - - Issuer Capability - - - Does the wallet or agent have issuer capabilities? - - Verifier Capability - - - Does the wallet or agent have verifier capabilities? - - Scope - - - General-purpose or domain-specific, and for which domain. - - Deployment - - - Running on edge-devices or in the cloud. - - Organisational Wallet - - - Organisations are the target users. - - Open Source - - - Whether the wallet is open source and if so, the link to their code base. - - Links to app - - - The links to the downloads in Google Play, the App Store or the link to the web app / cloud service agent. - - Support - - - The emailaddress for support. - - API - - - The link to the provided API. - - Credential Format - - - The credential profile(s) supported by the wallet. - - Encoding Scheme - - - The encoding scheme(s) supported by the wallet. - - Signature Algorithm - - - The signature algorithm(s) supported by the wallet. - - Holder Identifier - - - The type of identifier used to identify the holder. - - Issuer Identifier - - - The type of identifier used to identify the issuer. - - Revocation Mechanism - - - The revocation mechanism(s) supported by the wallet. - - Peer-to-Peer Protocol - - - The peer-to-peer protocol(s) supported by the wallet. - - Credential Exchange Protocol - - - The credential exchange protocol(s) supported by the wallet. - - Blockchain Used - - - Does the wallet work with a blockchain? - - Blockchain Type - - - The type(s) of blockchain supported by the wallet? N/A for wallets that do not use blockchain. - - Blockchain Purpose - - - The purpose(s) for which the wallet uses blockchain. N/A for wallets that do not use blockchain. - - Connection Type - - - What types of connections can the wallet handle? Does the wallet support direct communication via QR-codes, bluetooth, etc. or connection-based, where a connection between holder and issuer/verifier can be reused? - - Deep-Linking - - - Does the wallet support deep-linking? Can the wallet redirect the holder to the wallet app instead of to a website (with a QR-code), such that the user can have a mobile-only workflow? Or for web-based wallets, does the wallet have the ability to link directly to a specific task like a credential offer? - - Offline Friendliness - - - Does the wallet support the exchange of credentials in an offline fashion, i.e. via bluetooth, NFC, et cetera? - - Key History Holder - - - Is it possible to retain and obtain the history of keys related to a certain identifier of a holder? - - Key History Issuer - - - Is it possible to retain and obtain the history of keys related to a certain identifier of an issuer? - - Portability - - - Can credentials be exported from the wallet, such that they can be imported by another wallet? - - Selective Disclosure - - - Does the wallet allow the user to present only selected claims from their credentials? - - Predicates - - - Can the wallet generate predicates, e.g. older than 18? This can be achieved through the support of zero-knowledge proofs. - - Verifier Unlinkability - - - Is the verifier unable to link multiple presentations by the same holder together? Note: this is only relevant if the presentations do not contain identifiable information. - - Observability - - - Can the verifier observe the revocation status of the credential beyond the presentation? - - Crypto Agility - - - Is the credential format able to work with a variety of signature algorithms? - - Post-Quantum Secure - - - Does the wallet support post-quantum secure signature algorithms? Does the wallet use post-quantum secure encryption in the exchange and storage of credentials? - - Key Rotation Holder - - - Can the key referred to in a credential can be replaced by a new key? - - Key Rotation Issuer - - - Can the key referred to in a credential can be replaced by a new key? - - Connected to TNO EASSI - - - Is the wallet connected to theTNO EASSI wallet gateway? - - EBSI Compliant - - - Is the wallet compliant withEBSIspecifications? - - AIP Compliant - - - Is the wallet compliant with theAries Interop Profile? - - DDIP Compliant - - - Is the wallet compliant with theDutch Decentralized Identity Profile? - - ISO 18013 Compliant - - - Is the wallet compliant withISO 18013-5 (mDL)? - -
-
- - - - - - - diff --git a/schema.json b/schema.json new file mode 100644 index 0000000..11e50a6 --- /dev/null +++ b/schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$ref": "#/definitions/Wallet", + "definitions": { + "Wallet": { + "type": "object", + "additionalProperties": true, + "properties": { + "$schema": { + "type": "string" + }, + "name": { + "type": "string", + "description": "The name of the wallet" + }, + "company": { + "type": "string", + "description": "The name of the company that created the wallet" + }, + "openSource": { + "type": "boolean", + "description": "Whether the wallet is open source or not" + } + }, + "required": ["$schema", "name"], + "title": "Wallet" + } + } +} diff --git a/script.js b/script.js deleted file mode 100644 index ba63c9d..0000000 --- a/script.js +++ /dev/null @@ -1,67 +0,0 @@ -fetch("flattened_wallets.json") -.then(function(response){ - return response.json(); -}) -.then(function(wallets){ - let placeholder = document.querySelector("#data-output"); - let out = ""; - for(let wallet of wallets){ - out += ` - - - ${wallet.urlWebsite == "-" ? wallet.name: ''+wallet.name+''} - ${wallet.company} - ${wallet.holderCapability} - ${wallet.issuerCapability} - ${wallet.verifierCapability} - ${wallet.scope} - ${wallet.deployment} - ${wallet.organisationalWallet} - ${wallet.openSource == 'Yes' ? ''+wallet.openSource+'' : wallet.openSource} - ${wallet.urlGooglePlayStore == '-' ? '-': ''} - ${wallet.urlAppStore == '-' ? '-': ''} - ${wallet.urlWebApp == '-' ? '-': ''} - ${wallet.support == '-' ? '-' : 'e-mail'} - ${wallet.api} - - ${wallet.credentialFormat} - ${wallet.encodingScheme} - ${wallet.signatureAlgorithm} - ${wallet.identifierHolder} - ${wallet.identifierIssuer} - ${wallet.revocationAlgorithm} - ${wallet.peer2PeerProtocols} - ${wallet.credExchangeProtocol} - ${wallet.blockchainUsed} - ${wallet.blockchainType} - ${wallet.blockchainPurpose} - - ${wallet.connectionTypes} - ${wallet.deepLinking} - ${wallet.offlineFriendly} - ${wallet.keyHistoryHolder} - ${wallet.keyHistoryIssuer} - ${wallet.portability} - - ${wallet.selectiveDisclosure} - ${wallet.predicates} - ${wallet.verifierUnlinkability} - ${wallet.observability} - - ${wallet.cryptoAgility} - ${wallet.quantumSafe} - ${wallet.keyRotationHolder} - ${wallet.keyRotationIssuer} - - ${wallet.eassi} - ${wallet.ebsi} - ${wallet.aip} - ${wallet.ddip} - ${wallet.mdoc} - - - `; - } - - placeholder.innerHTML = out; -}); diff --git a/styles.css b/styles.css deleted file mode 100644 index 0b108bf..0000000 --- a/styles.css +++ /dev/null @@ -1,203 +0,0 @@ -*{ - margin: 5px; - padding: 0; - box-sizing: border-box; -} - -body{ - font-family: sans-serif; - /* min-height: 100vh; */ - height: calc(100vh - 30px); - color: #555555; -} - -h1{ - text-align:center; - color: #555555; -} -table{ - width: 1100px; - /* width: auto; */ - margin: 30px auto; - table-layout: auto; -} - -table th{ - padding: 10px 15px; - background-color: #a4cdea; - border: thin solid #d4d4d4; - color: #373535; - margin: 0; -} - -table td{ - padding: 10px; - border: thin solid #d4d4d4; - width: 100%; - text-align: center; - /* background-color: #fff; */ -} - -tr:nth-child(even) td { - background-color: rgb(224, 232, 232); -} - -tr:nth-child(odd) td { - background-color: white; -} - -table { - margin-top: 0; - overflow-x: clip; -} - -table img{ - width: 100%; - margin: 0; -} - -table tr#table-headers{ - position: relative; -} - -table tr#top-headers th::before, -table tr#table-headers th::before { - content:''; - position:absolute; - left: 0; - top: -1px; - width:100%; - border-top: 2px solid #ccc; -} - -table tr#table-headers th { - white-space: nowrap; - z-index: 2; -} - -table tr#table-headers th:nth-child(2), table tbody tr td:nth-child(2) { /* make the second table column sticky */ - position: sticky; - left: 0; - z-index: 1; -} - -table tr#table-headers th:nth-child(2) { /* keep column header in front of column content when scrolling */ - z-index: 3; -} - -table tr#table-headers th:nth-child(2)::after, table tbody tr td:nth-child(2)::after { /* fix for keeping column border visible in combination with position sticky */ - content:''; - position:absolute; - top: 0; - right: -1px; - height:100%; - border-right: 1px solid #ccc; -} - -.tableFixHead { - margin-top: 35px; - /* overflow-y: auto; /* make the table scrollable if height is more than 200 px */ - height: calc(100vh - 2em - 50px - 10px); /* s.t. scroll bar is visible */ - } -.tableFixHead thead { - position: sticky; /* make the table heads sticky */ - top: 0px; /* table head will be placed from the top of the table and sticks to it */ - z-index: 2; -} -table { - border-collapse: collapse; /* make the table borders collapse to each other */ - width: 100%; -} -th, -td { - padding: 8px 16px; - border: 1px solid #ccc; -} - -.td-wrap{ /* for text wrapping */ - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - max-width:300px; -} - -.td-wrap:hover{ - white-space: pre-wrap; -} - -tr.verbose th { - vertical-align: top; -} - -tr.verbose th::after { - content: attr(title); - display: block; - font-size: smaller; - font-style: italic; - font-weight: normal; - white-space: pre-wrap; -} - -.btn{ - background-color: transparent; - border: transparent; -} - -a.clicked { - background-color: #DDD; - border-style: inset; - padding: 0.6em 0.4em 0.4em 0.6em; -} - -.tooltip { - position: relative; - display: inline-block; -} - -.tooltip .tooltiptext { - visibility: hidden; - /* width: 400px; */ - background-color: white; - text-align: center; - border-radius: 6px; - padding: 5px 5px; - /* Position the tooltip */ - position: absolute; - z-index: 1; - text-overflow: ellipsis; - white-space: nowrap; - /* overflow: hidden; */ - /* max-width:300px; */ - font-family: sans-serif; - color:#555555; - font-weight: 500; -} - -.tooltip:hover .tooltiptext { - visibility: visible; -} - -.btn{ - margin: 0; -} - -.fa { - margin: 0; - color: black; -} -.fas { - margin: 2px; - color: black; -} -.fa-brands { - margin: 2px; - color: black; -} - -a:link { - color: #4b7694; - } - -a:visited { - color: #4b7694; -} \ No newline at end of file diff --git a/viewer/.editorconfig b/viewer/.editorconfig new file mode 100644 index 0000000..59d9a3a --- /dev/null +++ b/viewer/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/viewer/.gitignore b/viewer/.gitignore new file mode 100644 index 0000000..644e26f --- /dev/null +++ b/viewer/.gitignore @@ -0,0 +1,43 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# Compiled output +/dist +/tmp +/out-tsc +/bazel-out +src/assets/wallets.json + +# Node +/node_modules +npm-debug.log +yarn-error.log + +# IDEs and editors +.idea/ +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# Visual Studio Code +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# Miscellaneous +/.angular/cache +.sass-cache/ +/connect.lock +/coverage +/libpeerconnection.log +testem.log +/typings + +# System files +.DS_Store +Thumbs.db diff --git a/viewer/.vscode/extensions.json b/viewer/.vscode/extensions.json new file mode 100644 index 0000000..77b3745 --- /dev/null +++ b/viewer/.vscode/extensions.json @@ -0,0 +1,4 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846 + "recommendations": ["angular.ng-template"] +} diff --git a/viewer/.vscode/launch.json b/viewer/.vscode/launch.json new file mode 100644 index 0000000..925af83 --- /dev/null +++ b/viewer/.vscode/launch.json @@ -0,0 +1,20 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "ng serve", + "type": "chrome", + "request": "launch", + "preLaunchTask": "npm: start", + "url": "http://localhost:4200/" + }, + { + "name": "ng test", + "type": "chrome", + "request": "launch", + "preLaunchTask": "npm: test", + "url": "http://localhost:9876/debug.html" + } + ] +} diff --git a/viewer/.vscode/tasks.json b/viewer/.vscode/tasks.json new file mode 100644 index 0000000..a298b5b --- /dev/null +++ b/viewer/.vscode/tasks.json @@ -0,0 +1,42 @@ +{ + // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558 + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "start", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "pattern": "$tsc", + "background": { + "activeOnStart": true, + "beginsPattern": { + "regexp": "(.*?)" + }, + "endsPattern": { + "regexp": "bundle generation complete" + } + } + } + }, + { + "type": "npm", + "script": "test", + "isBackground": true, + "problemMatcher": { + "owner": "typescript", + "pattern": "$tsc", + "background": { + "activeOnStart": true, + "beginsPattern": { + "regexp": "(.*?)" + }, + "endsPattern": { + "regexp": "bundle generation complete" + } + } + } + } + ] +} diff --git a/viewer/README.md b/viewer/README.md new file mode 100644 index 0000000..a275320 --- /dev/null +++ b/viewer/README.md @@ -0,0 +1,27 @@ +# Viewer + +This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.0.7. + +## Development server + +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. + +## Further help + +To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. diff --git a/viewer/angular.json b/viewer/angular.json new file mode 100644 index 0000000..4d68b65 --- /dev/null +++ b/viewer/angular.json @@ -0,0 +1,109 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "viewer": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:application", + "options": { + "outputPath": "dist/viewer", + "index": "src/index.html", + "browser": "src/main.ts", + "polyfills": [ + "zone.js" + ], + "tsConfig": "tsconfig.app.json", + "inlineStyleLanguage": "scss", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "@angular/material/prebuilt-themes/indigo-pink.css", + "src/styles.scss" + ], + "scripts": [] + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "500kb", + "maximumError": "1mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kb", + "maximumError": "4kb" + } + ], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true, + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.development.ts" + } + ] + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "buildTarget": "viewer:build:production" + }, + "development": { + "buildTarget": "viewer:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "buildTarget": "viewer:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "polyfills": [ + "zone.js", + "zone.js/testing" + ], + "tsConfig": "tsconfig.spec.json", + "inlineStyleLanguage": "scss", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "@angular/material/prebuilt-themes/indigo-pink.css", + "src/styles.scss" + ], + "scripts": [] + } + } + } + } + } +} diff --git a/viewer/package-lock.json b/viewer/package-lock.json new file mode 100644 index 0000000..4cb9adc --- /dev/null +++ b/viewer/package-lock.json @@ -0,0 +1,12839 @@ +{ + "name": "viewer", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "viewer", + "version": "0.0.0", + "dependencies": { + "@angular/animations": "^17.0.0", + "@angular/cdk": "^17.1.2", + "@angular/common": "^17.0.0", + "@angular/compiler": "^17.0.0", + "@angular/core": "^17.0.0", + "@angular/forms": "^17.0.0", + "@angular/material": "^17.1.2", + "@angular/platform-browser": "^17.0.0", + "@angular/platform-browser-dynamic": "^17.0.0", + "@angular/router": "^17.0.0", + "@ngbracket/ngx-layout": "^17.0.1", + "ajv": "^8.12.0", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.14.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^17.0.7", + "@angular/cli": "^17.0.7", + "@angular/compiler-cli": "^17.0.0", + "@types/jasmine": "~5.1.0", + "jasmine-core": "~5.1.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "typescript": "~5.2.2" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1701.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1701.2.tgz", + "integrity": "sha512-g3gn5Ht6r9bCeFeAYF+HboZB8IvgvqqdeOnaWNaXJLI0ymEkpbqRdqrHGuVKHJV7JOMNXC7GPJEctBC6SXxOxA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.1.2", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-angular": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.1.2.tgz", + "integrity": "sha512-QIDTP+TjiCKCYRZYb8to4ymvIV1Djcfd5c17VdgMGhRqIQAAK1V4f4A1njdhGYOrgsLajZQAnKvFfk2ZMeI37A==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "2.2.1", + "@angular-devkit/architect": "0.1701.2", + "@angular-devkit/build-webpack": "0.1701.2", + "@angular-devkit/core": "17.1.2", + "@babel/core": "7.23.7", + "@babel/generator": "7.23.6", + "@babel/helper-annotate-as-pure": "7.22.5", + "@babel/helper-split-export-declaration": "7.22.6", + "@babel/plugin-transform-async-generator-functions": "7.23.7", + "@babel/plugin-transform-async-to-generator": "7.23.3", + "@babel/plugin-transform-runtime": "7.23.7", + "@babel/preset-env": "7.23.7", + "@babel/runtime": "7.23.7", + "@discoveryjs/json-ext": "0.5.7", + "@ngtools/webpack": "17.1.2", + "@vitejs/plugin-basic-ssl": "1.0.2", + "ansi-colors": "4.1.3", + "autoprefixer": "10.4.16", + "babel-loader": "9.1.3", + "babel-plugin-istanbul": "6.1.1", + "browserslist": "^4.21.5", + "copy-webpack-plugin": "11.0.0", + "critters": "0.0.20", + "css-loader": "6.8.1", + "esbuild-wasm": "0.19.11", + "fast-glob": "3.3.2", + "http-proxy-middleware": "2.0.6", + "https-proxy-agent": "7.0.2", + "inquirer": "9.2.12", + "jsonc-parser": "3.2.0", + "karma-source-map-support": "1.4.0", + "less": "4.2.0", + "less-loader": "11.1.0", + "license-webpack-plugin": "4.0.2", + "loader-utils": "3.2.1", + "magic-string": "0.30.5", + "mini-css-extract-plugin": "2.7.6", + "mrmime": "2.0.0", + "open": "8.4.2", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "3.0.1", + "piscina": "4.2.1", + "postcss": "8.4.33", + "postcss-loader": "7.3.4", + "resolve-url-loader": "5.0.0", + "rxjs": "7.8.1", + "sass": "1.69.7", + "sass-loader": "13.3.3", + "semver": "7.5.4", + "source-map-loader": "5.0.0", + "source-map-support": "0.5.21", + "terser": "5.26.0", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "tslib": "2.6.2", + "undici": "6.2.1", + "vite": "5.0.12", + "watchpack": "2.4.0", + "webpack": "5.89.0", + "webpack-dev-middleware": "6.1.1", + "webpack-dev-server": "4.15.1", + "webpack-merge": "5.10.0", + "webpack-subresource-integrity": "5.1.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "esbuild": "0.19.11" + }, + "peerDependencies": { + "@angular/compiler-cli": "^17.0.0", + "@angular/localize": "^17.0.0", + "@angular/platform-server": "^17.0.0", + "@angular/service-worker": "^17.0.0", + "@web/test-runner": "^0.18.0", + "browser-sync": "^3.0.2", + "jest": "^29.5.0", + "jest-environment-jsdom": "^29.5.0", + "karma": "^6.3.0", + "ng-packagr": "^17.0.0", + "protractor": "^7.0.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=5.2 <5.4" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "@web/test-runner": { + "optional": true + }, + "browser-sync": { + "optional": true + }, + "jest": { + "optional": true + }, + "jest-environment-jsdom": { + "optional": true + }, + "karma": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "protractor": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1701.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1701.2.tgz", + "integrity": "sha512-LqfSO5iTbiYByDadUET/8uIun8vSHMEdtoxiil/kdZ5T0NG0p7K8QqUMnWgg6suwO6kFfYJkMiS8Dq3Y/ONUNQ==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1701.2", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^4.0.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.1.2.tgz", + "integrity": "sha512-ku+/W/HMCBacSWFppenr9y6Lx8mDuTuQvn1IkTyBLiJOpWnzgVbx9kHDeaDchGa1PwLlJUBBrv27t3qgJOIDPw==", + "dev": true, + "dependencies": { + "ajv": "8.12.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.2.0", + "picomatch": "3.0.1", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.1.2.tgz", + "integrity": "sha512-8S9RuM8olFN/gwN+mjbuF1CwHX61f0i59EGXz9tXLnKRUTjsRR+8vVMTAmX0dvVAT5fJTG/T69X+HX7FeumdqA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.1.2", + "jsonc-parser": "3.2.0", + "magic-string": "0.30.5", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/animations": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.1.2.tgz", + "integrity": "sha512-ZsHa/zoWBOZdispjcNgXCoF9MAtc6Zyzc/QFUjtOFI9vigOI8tWP6GY1Wfeg4cyL+R3uDGYBgMrdr8l84VfuKg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.1.2" + } + }, + "node_modules/@angular/cdk": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.1.2.tgz", + "integrity": "sha512-eu9D60RQv213qi7oh6ae9Z+d6+AG/aqi0y70Ag9BjwqTiatDiYvSySxswxYYKdzPp0hx0ZUTGi16LqtT6pyj6Q==", + "dependencies": { + "tslib": "^2.3.0" + }, + "optionalDependencies": { + "parse5": "^7.1.2" + }, + "peerDependencies": { + "@angular/common": "^17.0.0 || ^18.0.0", + "@angular/core": "^17.0.0 || ^18.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/cli": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.1.2.tgz", + "integrity": "sha512-U1W6XZNrfeRkXW2fO3AU25rRttqZahVkhzcK3lAtJ8+lSrStCOF7x1gz6tmFZFte1fNHQrXqD0yIDkd8H2/cvw==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1701.2", + "@angular-devkit/core": "17.1.2", + "@angular-devkit/schematics": "17.1.2", + "@schematics/angular": "17.1.2", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.3", + "ini": "4.1.1", + "inquirer": "9.2.12", + "jsonc-parser": "3.2.0", + "npm-package-arg": "11.0.1", + "npm-pick-manifest": "9.0.0", + "open": "8.4.2", + "ora": "5.4.1", + "pacote": "17.0.5", + "resolve": "1.22.8", + "semver": "7.5.4", + "symbol-observable": "4.0.0", + "yargs": "17.7.2" + }, + "bin": { + "ng": "bin/ng.js" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/common": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.1.2.tgz", + "integrity": "sha512-y/wD+zuPaPgK3dB80Q63qBtuu5TuryKuUgjWrOmrguBWV9oiJRhKQrcp1gVw9vVrowmbDBKGtPMS622Q4oxOWQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.1.2", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/compiler": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.1.2.tgz", + "integrity": "sha512-1vJuQRM5V01nC6qsLvBKrHVZXpzbK0YKubwVQUXCSfDNZBcDFak3SQcwU4C2t880rU3ZvFDB1UWfk7CKn5w9Kw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/core": "17.1.2" + }, + "peerDependenciesMeta": { + "@angular/core": { + "optional": true + } + } + }, + "node_modules/@angular/compiler-cli": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.1.2.tgz", + "integrity": "sha512-4P4ttCe4IF9yq7bxCDxbVW7purN7qV0nqofP5Tth1xCsgIJeGmOMMQJN5RJCZNrAPMkvMv39eV878sgcDjbpOA==", + "dev": true, + "dependencies": { + "@babel/core": "7.23.2", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "reflect-metadata": "^0.1.2", + "semver": "^7.0.0", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/index.js" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/compiler": "17.1.2", + "typescript": ">=5.2 <5.4" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", + "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.0", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular/core": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.1.2.tgz", + "integrity": "sha512-0M787BZVgYSVogHCUzo/dFrT56TgfQoEsOQngHMpyERJZv6dycXZlRdHc6TzvHUa+Uu/MNjn/RclBR8063bdWA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.14.0" + } + }, + "node_modules/@angular/forms": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.1.2.tgz", + "integrity": "sha512-n1WsZAL2IVOB6ocROKR6CFOR14PIC9RGAB41SwTfPhJeBM1kjW48bXY0sw97TasxM4mWJKGCmFXu0jQwkoeSpQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.1.2", + "@angular/core": "17.1.2", + "@angular/platform-browser": "17.1.2", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/material": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-17.1.2.tgz", + "integrity": "sha512-50n7JDWtWGCxfrMKVKZ2wqkdozukA3IWeypQgXxzZc+4jqgT6Vj8/U4xNvcO9OgPLMOaTvktfT+wzUmCKJ0sng==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/auto-init": "15.0.0-canary.7f224ddd4.0", + "@material/banner": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/card": "15.0.0-canary.7f224ddd4.0", + "@material/checkbox": "15.0.0-canary.7f224ddd4.0", + "@material/chips": "15.0.0-canary.7f224ddd4.0", + "@material/circular-progress": "15.0.0-canary.7f224ddd4.0", + "@material/data-table": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dialog": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/drawer": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/fab": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/floating-label": "15.0.0-canary.7f224ddd4.0", + "@material/form-field": "15.0.0-canary.7f224ddd4.0", + "@material/icon-button": "15.0.0-canary.7f224ddd4.0", + "@material/image-list": "15.0.0-canary.7f224ddd4.0", + "@material/layout-grid": "15.0.0-canary.7f224ddd4.0", + "@material/line-ripple": "15.0.0-canary.7f224ddd4.0", + "@material/linear-progress": "15.0.0-canary.7f224ddd4.0", + "@material/list": "15.0.0-canary.7f224ddd4.0", + "@material/menu": "15.0.0-canary.7f224ddd4.0", + "@material/menu-surface": "15.0.0-canary.7f224ddd4.0", + "@material/notched-outline": "15.0.0-canary.7f224ddd4.0", + "@material/radio": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/segmented-button": "15.0.0-canary.7f224ddd4.0", + "@material/select": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/slider": "15.0.0-canary.7f224ddd4.0", + "@material/snackbar": "15.0.0-canary.7f224ddd4.0", + "@material/switch": "15.0.0-canary.7f224ddd4.0", + "@material/tab": "15.0.0-canary.7f224ddd4.0", + "@material/tab-bar": "15.0.0-canary.7f224ddd4.0", + "@material/tab-indicator": "15.0.0-canary.7f224ddd4.0", + "@material/tab-scroller": "15.0.0-canary.7f224ddd4.0", + "@material/textfield": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tooltip": "15.0.0-canary.7f224ddd4.0", + "@material/top-app-bar": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/animations": "^17.0.0 || ^18.0.0", + "@angular/cdk": "17.1.2", + "@angular/common": "^17.0.0 || ^18.0.0", + "@angular/core": "^17.0.0 || ^18.0.0", + "@angular/forms": "^17.0.0 || ^18.0.0", + "@angular/platform-browser": "^17.0.0 || ^18.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.1.2.tgz", + "integrity": "sha512-unfpA5OLnqDmDb/oAQR2t2iROpOg02qwZayxyFg4MUZdDdnghPCfX77L2sr6oVVa7OJfKYFlmwmBXX1H3zjcXA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/animations": "17.1.2", + "@angular/common": "17.1.2", + "@angular/core": "17.1.2" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.1.2.tgz", + "integrity": "sha512-xiWVDHbA+owDhKo5SAnzZtawA1ktGthlCl3YTI+vmkJpF6axkYOqR7YL+aEQX/y/5GSK+oR+03SgAnYcpOwKlQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.1.2", + "@angular/compiler": "17.1.2", + "@angular/core": "17.1.2", + "@angular/platform-browser": "17.1.2" + } + }, + "node_modules/@angular/router": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.1.2.tgz", + "integrity": "sha512-8OexxiiscRdfEiB6jOKlZFyAKZtvIQvh0ugW6U7nAXPV5XsA2UL80sXkc829eH0DnJn2Wj/HS6ZNGgG81PWDHg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0" + }, + "peerDependencies": { + "@angular/common": "17.1.2", + "@angular/core": "17.1.2", + "@angular/platform-browser": "17.1.2", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@assemblyscript/loader": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", + "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", + "dev": true + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", + "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.7", + "@babel/parser": "^7.23.6", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.23.10", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.10.tgz", + "integrity": "sha512-2XpP2XhkXzgxecPNEEK8Vz8Asj9aRxt08oKOqtiZoqV2UGZ5T+EkyP9sXQ9nwMxBIG34a7jmasVqoMop7VdPUw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", + "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz", + "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", + "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", + "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz", + "integrity": "sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.23.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", + "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", + "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.7.tgz", + "integrity": "sha512-fa0hnfmiXc9fq/weK34MUV0drz2pOL/vfKWvN7Qw127hiUPabFCUMgAbYWcchRzMJit4o5ARsK/s+5h0249pLw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.7", + "babel-plugin-polyfill-corejs3": "^0.8.7", + "babel-plugin-polyfill-regenerator": "^0.5.4", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.7.tgz", + "integrity": "sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.7", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.5", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.7", + "babel-plugin-polyfill-corejs3": "^0.8.7", + "babel-plugin-polyfill-regenerator": "^0.5.4", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.7.tgz", + "integrity": "sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", + "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", + "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.9", + "@babel/types": "^7.23.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", + "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz", + "integrity": "sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.11.tgz", + "integrity": "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz", + "integrity": "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.11.tgz", + "integrity": "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz", + "integrity": "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz", + "integrity": "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz", + "integrity": "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz", + "integrity": "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz", + "integrity": "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz", + "integrity": "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz", + "integrity": "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz", + "integrity": "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz", + "integrity": "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz", + "integrity": "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz", + "integrity": "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz", + "integrity": "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz", + "integrity": "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz", + "integrity": "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz", + "integrity": "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz", + "integrity": "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz", + "integrity": "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz", + "integrity": "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz", + "integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@fastify/busboy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz", + "integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==", + "dev": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", + "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "node_modules/@ljharb/through": { + "version": "2.3.12", + "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.12.tgz", + "integrity": "sha512-ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/@material/animation": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/animation/-/animation-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-1GSJaPKef+7HRuV+HusVZHps64cmZuOItDbt40tjJVaikcaZvwmHlcTxRIqzcRoCdt5ZKHh3NoO7GB9Khg4Jnw==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/auto-init": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/auto-init/-/auto-init-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-t7ZGpRJ3ec0QDUO0nJu/SMgLW7qcuG2KqIsEYD1Ej8qhI2xpdR2ydSDQOkVEitXmKoGol1oq4nYSBjTlB65GqA==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/banner": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/banner/-/banner-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-g9wBUZzYBizyBcBQXTIafnRUUPi7efU9gPJfzeGgkynXiccP/vh5XMmH+PBxl5v+4MlP/d4cZ2NUYoAN7UTqSA==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/base": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/base/-/base-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-I9KQOKXpLfJkP8MqZyr8wZIzdPHrwPjFvGd9zSK91/vPyE4hzHRJc/0njsh9g8Lm9PRYLbifXX+719uTbHxx+A==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/button": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/button/-/button-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-BHB7iyHgRVH+JF16+iscR+Qaic+p7LU1FOLgP8KucRlpF9tTwIxQA6mJwGRi5gUtcG+vyCmzVS+hIQ6DqT/7BA==", + "dependencies": { + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/card": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/card/-/card-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-kt7y9/IWOtJTr3Z/AoWJT3ZLN7CLlzXhx2udCLP9ootZU2bfGK0lzNwmo80bv/pJfrY9ihQKCtuGTtNxUy+vIw==", + "dependencies": { + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/checkbox": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/checkbox/-/checkbox-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-rURcrL5O1u6hzWR+dNgiQ/n89vk6tdmdP3mZgnxJx61q4I/k1yijKqNJSLrkXH7Rto3bM5NRKMOlgvMvVd7UMQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/chips": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/chips/-/chips-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-AYAivV3GSk/T/nRIpH27sOHFPaSMrE3L0WYbnb5Wa93FgY8a0fbsFYtSH2QmtwnzXveg+B1zGTt7/xIIcynKdQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/checkbox": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/circular-progress": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/circular-progress/-/circular-progress-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-DJrqCKb+LuGtjNvKl8XigvyK02y36GRkfhMUYTcJEi3PrOE00bwXtyj7ilhzEVshQiXg6AHGWXtf5UqwNrx3Ow==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/progress-indicator": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/data-table": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/data-table/-/data-table-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-/2WZsuBIq9z9RWYF5Jo6b7P6u0fwit+29/mN7rmAZ6akqUR54nXyNfoSNiyydMkzPlZZsep5KrSHododDhBZbA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/checkbox": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/icon-button": "15.0.0-canary.7f224ddd4.0", + "@material/linear-progress": "15.0.0-canary.7f224ddd4.0", + "@material/list": "15.0.0-canary.7f224ddd4.0", + "@material/menu": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/select": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/density": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/density/-/density-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-o9EXmGKVpiQ6mHhyV3oDDzc78Ow3E7v8dlaOhgaDSXgmqaE8v5sIlLNa/LKSyUga83/fpGk3QViSGXotpQx0jA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/dialog": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/dialog/-/dialog-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-u0XpTlv1JqWC/bQ3DavJ1JguofTelLT2wloj59l3/1b60jv42JQ6Am7jU3I8/SIUB1MKaW7dYocXjDWtWJakLA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/icon-button": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/dom": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/dom/-/dom-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-mQ1HT186GPQSkRg5S18i70typ5ZytfjL09R0gJ2Qg5/G+MLCGi7TAjZZSH65tuD/QGOjel4rDdWOTmYbPYV6HA==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/drawer": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/drawer/-/drawer-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-qyO0W0KBftfH8dlLR0gVAgv7ZHNvU8ae11Ao6zJif/YxcvK4+gph1z8AO4H410YmC2kZiwpSKyxM1iQCCzbb4g==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/list": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/elevation": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/elevation/-/elevation-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-tV6s4/pUBECedaI36Yj18KmRCk1vfue/JP/5yYRlFNnLMRVISePbZaKkn/BHXVf+26I3W879+XqIGlDVdmOoMA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/fab": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/fab/-/fab-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-4h76QrzfZTcPdd+awDPZ4Q0YdSqsXQnS540TPtyXUJ/5G99V6VwGpjMPIxAsW0y+pmI9UkLL/srrMaJec+7r4Q==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/feature-targeting": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/feature-targeting/-/feature-targeting-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-SAjtxYh6YlKZriU83diDEQ7jNSP2MnxKsER0TvFeyG1vX/DWsUyYDOIJTOEa9K1N+fgJEBkNK8hY55QhQaspew==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/floating-label": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/floating-label/-/floating-label-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-0KMo5ijjYaEHPiZ2pCVIcbaTS2LycvH9zEhEMKwPPGssBCX7iz5ffYQFk7e5yrQand1r3jnQQgYfHAwtykArnQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/focus-ring": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/focus-ring/-/focus-ring-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-Jmg1nltq4J6S6A10EGMZnvufrvU3YTi+8R8ZD9lkSbun0Fm2TVdICQt/Auyi6An9zP66oQN6c31eqO6KfIPsDg==", + "dependencies": { + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0" + } + }, + "node_modules/@material/form-field": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/form-field/-/form-field-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-fEPWgDQEPJ6WF7hNnIStxucHR9LE4DoDSMqCsGWS2Yu+NLZYLuCEecgR0UqQsl1EQdNRaFh8VH93KuxGd2hiPg==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/icon-button": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/icon-button/-/icon-button-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-DcK7IL4ICY/DW+48YQZZs9g0U1kRaW0Wb0BxhvppDMYziHo/CTpFdle4gjyuTyRxPOdHQz5a97ru48Z9O4muTw==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/image-list": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/image-list/-/image-list-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-voMjG2p80XbjL1B2lmF65zO5gEgJOVKClLdqh4wbYzYfwY/SR9c8eLvlYG7DLdFaFBl/7gGxD8TvvZ329HUFPw==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/layout-grid": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/layout-grid/-/layout-grid-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-veDABLxMn2RmvfnUO2RUmC1OFfWr4cU+MrxKPoDD2hl3l3eDYv5fxws6r5T1JoSyXoaN+oEZpheS0+M9Ure8Pg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/line-ripple": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/line-ripple/-/line-ripple-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-f60hVJhIU6I3/17Tqqzch1emUKEcfVVgHVqADbU14JD+oEIz429ZX9ksZ3VChoU3+eejFl+jVdZMLE/LrAuwpg==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/linear-progress": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/linear-progress/-/linear-progress-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-pRDEwPQielDiC9Sc5XhCXrGxP8wWOnAO8sQlMebfBYHYqy5hhiIzibezS8CSaW4MFQFyXmCmpmqWlbqGYRmiyg==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/progress-indicator": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/list": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/list/-/list-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-Is0NV91sJlXF5pOebYAtWLF4wU2MJDbYqztML/zQNENkQxDOvEXu3nWNb3YScMIYJJXvARO0Liur5K4yPagS1Q==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/menu": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/menu/-/menu-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-D11QU1dXqLbh5X1zKlEhS3QWh0b5BPNXlafc5MXfkdJHhOiieb7LC9hMJhbrHtj24FadJ7evaFW/T2ugJbJNnQ==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/list": "15.0.0-canary.7f224ddd4.0", + "@material/menu-surface": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/menu-surface": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/menu-surface/-/menu-surface-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-7RZHvw0gbwppaAJ/Oh5SWmfAKJ62aw1IMB3+3MRwsb5PLoV666wInYa+zJfE4i7qBeOn904xqT2Nko5hY0ssrg==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/notched-outline": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/notched-outline/-/notched-outline-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-Yg2usuKB2DKlKIBISbie9BFsOVuffF71xjbxPbybvqemxqUBd+bD5/t6H1fLE+F8/NCu5JMigho4ewUU+0RCiw==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/floating-label": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/progress-indicator": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/progress-indicator/-/progress-indicator-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-UPbDjE5CqT+SqTs0mNFG6uFEw7wBlgYmh+noSkQ6ty/EURm8lF125dmi4dv4kW0+octonMXqkGtAoZwLIHKf/w==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@material/radio": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/radio/-/radio-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-wR1X0Sr0KmQLu6+YOFKAI84G3L6psqd7Kys5kfb8WKBM36zxO5HQXC5nJm/Y0rdn22ixzsIz2GBo0MNU4V4k1A==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/ripple": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/ripple/-/ripple-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-JqOsWM1f4aGdotP0rh1vZlPZTg6lZgh39FIYHFMfOwfhR+LAikUJ+37ciqZuewgzXB6iiRO6a8aUH6HR5SJYPg==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/rtl": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/rtl/-/rtl-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-UVf14qAtmPiaaZjuJtmN36HETyoKWmsZM/qn1L5ciR2URb8O035dFWnz4ZWFMmAYBno/L7JiZaCkPurv2ZNrGA==", + "dependencies": { + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/segmented-button": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/segmented-button/-/segmented-button-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-LCnVRUSAhELTKI/9hSvyvIvQIpPpqF29BV+O9yM4WoNNmNWqTulvuiv7grHZl6Z+kJuxSg4BGbsPxxb9dXozPg==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/touch-target": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/select": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/select/-/select-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-WioZtQEXRpglum0cMSzSqocnhsGRr+ZIhvKb3FlaNrTaK8H3Y4QA7rVjv3emRtrLOOjaT6/RiIaUMTo9AGzWQQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/floating-label": "15.0.0-canary.7f224ddd4.0", + "@material/line-ripple": "15.0.0-canary.7f224ddd4.0", + "@material/list": "15.0.0-canary.7f224ddd4.0", + "@material/menu": "15.0.0-canary.7f224ddd4.0", + "@material/menu-surface": "15.0.0-canary.7f224ddd4.0", + "@material/notched-outline": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/shape": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/shape/-/shape-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-8z8l1W3+cymObunJoRhwFPKZ+FyECfJ4MJykNiaZq7XJFZkV6xNmqAVrrbQj93FtLsECn9g4PjjIomguVn/OEw==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/slider": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/slider/-/slider-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-QU/WSaSWlLKQRqOhJrPgm29wqvvzRusMqwAcrCh1JTrCl+xwJ43q5WLDfjYhubeKtrEEgGu9tekkAiYfMG7EBw==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/snackbar": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/snackbar/-/snackbar-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-sm7EbVKddaXpT/aXAYBdPoN0k8yeg9+dprgBUkrdqGzWJAeCkxb4fv2B3He88YiCtvkTz2KLY4CThPQBSEsMFQ==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/icon-button": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/switch": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/switch/-/switch-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-lEDJfRvkVyyeHWIBfoxYjJVl+WlEAE2kZ/+6OqB1FW0OV8ftTODZGhHRSzjVBA1/p4FPuhAtKtoK9jTpa4AZjA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tab/-/tab-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-E1xGACImyCLurhnizyOTCgOiVezce4HlBFAI6YhJo/AyVwjN2Dtas4ZLQMvvWWqpyhITNkeYdOchwCC1mrz3AQ==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/focus-ring": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/tab-indicator": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-bar": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tab-bar/-/tab-bar-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-p1Asb2NzrcECvAQU3b2SYrpyJGyJLQWR+nXTYzDKE8WOpLIRCXap2audNqD7fvN/A20UJ1J8U01ptrvCkwJ4eA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/tab": "15.0.0-canary.7f224ddd4.0", + "@material/tab-indicator": "15.0.0-canary.7f224ddd4.0", + "@material/tab-scroller": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-indicator": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tab-indicator/-/tab-indicator-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-h9Td3MPqbs33spcPS7ecByRHraYgU4tNCZpZzZXw31RypjKvISDv/PS5wcA4RmWqNGih78T7xg4QIGsZg4Pk4w==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tab-scroller": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tab-scroller/-/tab-scroller-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-LFeYNjQpdXecwECd8UaqHYbhscDCwhGln5Yh+3ctvcEgvmDPNjhKn/DL3sWprWvG8NAhP6sHMrsGhQFVdCWtTg==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/tab": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/textfield": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/textfield/-/textfield-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-AExmFvgE5nNF0UA4l2cSzPghtxSUQeeoyRjFLHLy+oAaE4eKZFrSy0zEpqPeWPQpEMDZk+6Y+6T3cOFYBeSvsw==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/density": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/floating-label": "15.0.0-canary.7f224ddd4.0", + "@material/line-ripple": "15.0.0-canary.7f224ddd4.0", + "@material/notched-outline": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/theme": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/theme/-/theme-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-hs45hJoE9yVnoVOcsN1jklyOa51U4lzWsEnQEuJTPOk2+0HqCQ0yv/q0InpSnm2i69fNSyZC60+8HADZGF8ugQ==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/tokens": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tokens/-/tokens-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-r9TDoicmcT7FhUXC4eYMFnt9TZsz0G8T3wXvkKncLppYvZ517gPyD/1+yhuGfGOxAzxTrM66S/oEc1fFE2q4hw==", + "dependencies": { + "@material/elevation": "15.0.0-canary.7f224ddd4.0" + } + }, + "node_modules/@material/tooltip": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/tooltip/-/tooltip-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-8qNk3pmPLTnam3XYC1sZuplQXW9xLn4Z4MI3D+U17Q7pfNZfoOugGr+d2cLA9yWAEjVJYB0mj8Yu86+udo4N9w==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/button": "15.0.0-canary.7f224ddd4.0", + "@material/dom": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/tokens": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "safevalues": "^0.3.4", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/top-app-bar": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/top-app-bar/-/top-app-bar-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-SARR5/ClYT4CLe9qAXakbr0i0cMY0V3V4pe3ElIJPfL2Z2c4wGR1mTR8m2LxU1MfGKK8aRoUdtfKaxWejp+eNA==", + "dependencies": { + "@material/animation": "15.0.0-canary.7f224ddd4.0", + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/elevation": "15.0.0-canary.7f224ddd4.0", + "@material/ripple": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/shape": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "@material/typography": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/touch-target": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/touch-target/-/touch-target-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-BJo/wFKHPYLGsRaIpd7vsQwKr02LtO2e89Psv0on/p0OephlNIgeB9dD9W+bQmaeZsZ6liKSKRl6wJWDiK71PA==", + "dependencies": { + "@material/base": "15.0.0-canary.7f224ddd4.0", + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/rtl": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@material/typography": { + "version": "15.0.0-canary.7f224ddd4.0", + "resolved": "https://registry.npmjs.org/@material/typography/-/typography-15.0.0-canary.7f224ddd4.0.tgz", + "integrity": "sha512-kBaZeCGD50iq1DeRRH5OM5Jl7Gdk+/NOfKArkY4ksBZvJiStJ7ACAhpvb8MEGm4s3jvDInQFLsDq3hL+SA79sQ==", + "dependencies": { + "@material/feature-targeting": "15.0.0-canary.7f224ddd4.0", + "@material/theme": "15.0.0-canary.7f224ddd4.0", + "tslib": "^2.1.0" + } + }, + "node_modules/@ngbracket/ngx-layout": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/@ngbracket/ngx-layout/-/ngx-layout-17.0.1.tgz", + "integrity": "sha512-HHPQXEIDpdb0FuJPWuy3noS7n49F6vr8e0kJ6lusmOgjFpRxUQeNua1eXWyPSnzw1QcWIJK6XXxKK4OidOHrPA==", + "dependencies": { + "tslib": "^2.5.0" + }, + "peerDependencies": { + "@angular/cdk": ">=17.0.0", + "@angular/common": ">=17.0.0", + "@angular/core": ">=17.0.0", + "@angular/platform-browser": ">=17.0.0", + "rxjs": "^6.5.3 || ^7.8.0" + } + }, + "node_modules/@ngtools/webpack": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.1.2.tgz", + "integrity": "sha512-MdNVSIp0x8AK26L+CxMTXH4weq2sNIp4C09RSdk7y6UkfBxMA3O0jTto9tW3ehkBaaGZ4dSiWkXA8L/ydMiQmA==", + "dev": true, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^17.0.0", + "typescript": ">=5.2 <5.4", + "webpack": "^5.54.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/agent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz", + "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@npmcli/fs": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.4.tgz", + "integrity": "sha512-nr6/WezNzuYUppzXRaYu/W4aT5rLxdXqEFupbh6e/ovlYFQ8hpu1UUPV3Ir/YTl+74iXl2ZOMlGzudh9ZPUchQ==", + "dev": true, + "dependencies": { + "@npmcli/promise-spawn": "^7.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^3.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@npmcli/git/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", + "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", + "dev": true, + "dependencies": { + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "lib/index.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/package-json": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.0.0.tgz", + "integrity": "sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g==", + "dev": true, + "dependencies": { + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^3.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@npmcli/package-json/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/package-json/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/promise-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.1.tgz", + "integrity": "sha512-P4KkF9jX3y+7yFUxgcUdDtLy+t4OlDGuEBLNs57AZsfSfg+uV6MLndqGpnl4831ggaEdXwR50XFoZP4VFtHolg==", + "dev": true, + "dependencies": { + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.4.tgz", + "integrity": "sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==", + "dev": true, + "dependencies": { + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/run-script/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz", + "integrity": "sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz", + "integrity": "sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz", + "integrity": "sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz", + "integrity": "sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz", + "integrity": "sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz", + "integrity": "sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz", + "integrity": "sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz", + "integrity": "sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz", + "integrity": "sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz", + "integrity": "sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz", + "integrity": "sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz", + "integrity": "sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz", + "integrity": "sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@schematics/angular": { + "version": "17.1.2", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.1.2.tgz", + "integrity": "sha512-1GlH0POaN7hVDF1sAm90E5SvAqnKK+PbD1oKSpug9l+1AUQ3vOamyGhEAaO+IxUqvNdgqZexxd5o9MyySTT2Zw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "17.1.2", + "@angular-devkit/schematics": "17.1.2", + "jsonc-parser": "3.2.0" + }, + "engines": { + "node": "^18.13.0 || >=20.9.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@sigstore/bundle": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.1.1.tgz", + "integrity": "sha512-v3/iS+1nufZdKQ5iAlQKcCsoh0jffQyABvYIxKsZQFWc4ubuGjwZklFHpDgV6O6T7vvV78SW5NHI91HFKEcxKg==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/core": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-0.2.0.tgz", + "integrity": "sha512-THobAPPZR9pDH2CAvDLpkrYedt7BlZnsyxDe+Isq4ZmGfPy5juOFZq487vCU2EgKD7aHSiTfE/i7sN7aEdzQnA==", + "dev": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz", + "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/sign": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.1.tgz", + "integrity": "sha512-U5sKQEj+faE1MsnLou1f4DQQHeFZay+V9s9768lw48J4pKykPj34rWyI1lsMOGJ3Mae47Ye6q3HAJvgXO21rkQ==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^2.1.1", + "@sigstore/core": "^0.2.0", + "@sigstore/protobuf-specs": "^0.2.1", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/tuf": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.0.tgz", + "integrity": "sha512-S98jo9cpJwO1mtQ+2zY7bOdcYyfVYCUaofCG6wWRzk3pxKHVAkSfshkfecto2+LKsx7Ovtqbgb2LS8zTRhxJ9Q==", + "dev": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.2.1", + "tuf-js": "^2.2.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/verify": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-0.1.0.tgz", + "integrity": "sha512-2UzMNYAa/uaz11NhvgRnIQf4gpLTJ59bhb8ESXaoSS5sxedfS+eLak8bsdMc+qpNQfITUTFoSKFx5h8umlRRiA==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^2.1.1", + "@sigstore/core": "^0.2.0", + "@sigstore/protobuf-specs": "^0.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "dev": true + }, + "node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", + "dev": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz", + "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", + "dev": true, + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dev": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "node_modules/@types/cors": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.2", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.2.tgz", + "integrity": "sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.42", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.42.tgz", + "integrity": "sha512-ckM3jm2bf/MfB3+spLPWYPUH573plBFwpOhqQ2WottxYV85j1HQFlxmnTq57X1yHY9awZPig06hL/cLMgNWHIQ==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "dev": true + }, + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/jasmine": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.4.tgz", + "integrity": "sha512-px7OMFO/ncXxixDe1zR13V1iycqWae0MxTaw62RpFlksUi5QuNWgQJFkTQjIOvrmutJbI7Fp2Y2N1F6D2R4G6w==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.11.16", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.16.tgz", + "integrity": "sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/qs": { + "version": "6.9.11", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", + "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==", + "dev": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dev": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "dev": true, + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.2.tgz", + "integrity": "sha512-DKHKVtpI+eA5fvObVgQ3QtTGU70CcCnedalzqmGSR050AzKZMdUzgC8KmlOneHWH8dF2hJ3wkC9+8FDVAaDRCw==", + "dev": true, + "engines": { + "node": ">=14.6.0" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/autoprefixer": { + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/babel-loader": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", + "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.5.0", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.4", + "core-js-compat": "^3.33.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3/node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", + "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/bonjour-service": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", + "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.22.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", + "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001580", + "electron-to-chromium": "^1.4.648", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "18.0.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.2.tgz", + "integrity": "sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001583", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001583.tgz", + "integrity": "sha512-acWTYaha8xfhA/Du/z4sNZjHUWjkiuoAi2LM+T/aL+kemKQgPT1xBb/YKjlQ0Qo8gvbHsGNplrEJ+9G3gL7i4Q==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cliui/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/core-js-compat": { + "version": "3.35.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.1.tgz", + "integrity": "sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==", + "dev": true, + "dependencies": { + "browserslist": "^4.22.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/critters": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.20.tgz", + "integrity": "sha512-CImNRorKOl5d8TWcnAz5n5izQ6HFsvz29k327/ELy6UFcmbiZNOsinaKvzv16WZR0P6etfSWYzE47C4/56B3Uw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "css-select": "^5.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.2", + "htmlparser2": "^8.0.2", + "postcss": "^8.4.23", + "pretty-bytes": "^5.3.0" + } + }, + "node_modules/critters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/critters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/critters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/critters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/critters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/critters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-loader": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", + "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.21", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.3", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", + "dev": true + }, + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", + "dev": true, + "dependencies": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.656", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.656.tgz", + "integrity": "sha512-9AQB5eFTHyR3Gvt2t/NwR0le2jBSUNwCnMbUCejFWHD+so4tH40/dRLgoE+jxlPeWS43XJewyvCv+I8LPMl49Q==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/engine.io": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz", + "integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==", + "dev": true, + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", + "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "devOptional": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", + "integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.11", + "@esbuild/android-arm": "0.19.11", + "@esbuild/android-arm64": "0.19.11", + "@esbuild/android-x64": "0.19.11", + "@esbuild/darwin-arm64": "0.19.11", + "@esbuild/darwin-x64": "0.19.11", + "@esbuild/freebsd-arm64": "0.19.11", + "@esbuild/freebsd-x64": "0.19.11", + "@esbuild/linux-arm": "0.19.11", + "@esbuild/linux-arm64": "0.19.11", + "@esbuild/linux-ia32": "0.19.11", + "@esbuild/linux-loong64": "0.19.11", + "@esbuild/linux-mips64el": "0.19.11", + "@esbuild/linux-ppc64": "0.19.11", + "@esbuild/linux-riscv64": "0.19.11", + "@esbuild/linux-s390x": "0.19.11", + "@esbuild/linux-x64": "0.19.11", + "@esbuild/netbsd-x64": "0.19.11", + "@esbuild/openbsd-x64": "0.19.11", + "@esbuild/sunos-x64": "0.19.11", + "@esbuild/win32-arm64": "0.19.11", + "@esbuild/win32-ia32": "0.19.11", + "@esbuild/win32-x64": "0.19.11" + } + }, + "node_modules/esbuild-wasm": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.19.11.tgz", + "integrity": "sha512-MIhnpc1TxERUHomteO/ZZHp+kUawGEc03D/8vMHGzffLvbFLeDe6mwxqEZwlqBNY7SLWbyp6bBQAcCen8+wpjQ==", + "dev": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "dev": true + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.0.tgz", + "integrity": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/figures": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", + "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^5.0.0", + "is-unicode-supported": "^1.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/finalhandler/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hdr-histogram-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", + "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", + "dev": true, + "dependencies": { + "@assemblyscript/loader": "^0.10.1", + "base64-js": "^1.2.0", + "pako": "^1.0.3" + } + }, + "node_modules/hdr-histogram-percentiles-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", + "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", + "dev": true + }, + "node_modules/hosted-git-info": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", + "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", + "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.4.tgz", + "integrity": "sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==", + "dev": true, + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immutable": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/inquirer": { + "version": "9.2.12", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz", + "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==", + "dev": true, + "dependencies": { + "@ljharb/through": "^2.3.11", + "ansi-escapes": "^4.3.2", + "chalk": "^5.3.0", + "cli-cursor": "^3.1.0", + "cli-width": "^4.1.0", + "external-editor": "^3.1.0", + "figures": "^5.0.0", + "lodash": "^4.17.21", + "mute-stream": "1.0.0", + "ora": "^5.4.1", + "run-async": "^3.0.0", + "rxjs": "^7.8.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", + "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "dev": true, + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "dev": true + }, + "node_modules/ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jasmine-core": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", + "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "dev": true + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", + "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/karma": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.2.tgz", + "integrity": "sha512-C6SU/53LB31BEgRg+omznBEMY4SjHU3ricV6zBcAe1EeILKkeScr+fZXtaI5WyDbkVowJxxAI6h73NcFPmXolQ==", + "dev": true, + "dependencies": { + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.4.1", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + }, + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/karma-chrome-launcher": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", + "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", + "dev": true, + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-coverage": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.1.tgz", + "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.0.5", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/karma-jasmine": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", + "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", + "dev": true, + "dependencies": { + "jasmine-core": "^4.1.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "karma": "^6.0.0" + } + }, + "node_modules/karma-jasmine-html-reporter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.1.0.tgz", + "integrity": "sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ==", + "dev": true, + "peerDependencies": { + "jasmine-core": "^4.0.0 || ^5.0.0", + "karma": "^6.0.0", + "karma-jasmine": "^5.0.0" + } + }, + "node_modules/karma-jasmine/node_modules/jasmine-core": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.0.tgz", + "integrity": "sha512-O236+gd0ZXS8YAjFx8xKaJ94/erqUliEkJTDedyE7iHvv4ZVqi+q+8acJxu05/WJDKm512EUNn809In37nWlAQ==", + "dev": true + }, + "node_modules/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "node_modules/karma/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/karma/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/karma/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/karma/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/karma/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/karma/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/karma/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/karma/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/karma/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/launch-editor": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/less": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.0.tgz", + "integrity": "sha512-C+uDBV7kS7W5fJlUjq5mPBeBVhYpTIm5gB09APT9o3n/ILeaXVsiSFTbZpTJCJwQ/Crczfn3DmfQFwxYusWFug==", + "dev": true, + "dependencies": { + "klona": "^2.0.4" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/license-webpack-plugin": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", + "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", + "dev": true, + "dependencies": { + "webpack-sources": "^3.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-sources": { + "optional": true + } + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log4js": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-fetch-happen": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "dev": true, + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dev": true, + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", + "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-fetch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-json-stream/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-json-stream/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/nice-napi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "!win32" + ], + "dependencies": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" + } + }, + "node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true, + "optional": true + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz", + "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", + "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "dev": true, + "optional": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-gyp/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/node-gyp/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/nopt": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", + "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "dev": true, + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", + "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", + "dev": true, + "dependencies": { + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-bundled": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", + "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-install-checks": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "dev": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", + "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", + "dev": true, + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-packlist": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", + "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", + "dev": true, + "dependencies": { + "ignore-walk": "^6.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz", + "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==", + "dev": true, + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz", + "integrity": "sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==", + "dev": true, + "dependencies": { + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pacote": { + "version": "17.0.5", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.5.tgz", + "integrity": "sha512-TAE0m20zSDMnchPja9vtQjri19X3pZIyRpm2TJVeI+yU42leJBBDTRYhOcWFsPhaMxf+3iwQkFiKz16G9AEeeA==", + "dev": true, + "dependencies": { + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^7.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^16.0.0", + "proc-log": "^3.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^7.0.0", + "read-package-json-fast": "^3.0.0", + "sigstore": "^2.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-json/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "devOptional": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-html-rewriting-stream": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", + "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", + "dev": true, + "dependencies": { + "entities": "^4.3.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-sax-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", + "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", + "dev": true, + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", + "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/piscina": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.2.1.tgz", + "integrity": "sha512-LShp0+lrO+WIzB9LXO+ZmO4zGHxtTJNZhEO56H9SSu+JPaUQb6oLcTCzWi5IL2DS8/vIkCE88ElahuSSw4TAkA==", + "dev": true, + "dependencies": { + "hdr-histogram-js": "^2.0.1", + "hdr-histogram-percentiles-obj": "^3.0.0" + }, + "optionalDependencies": { + "nice-napi": "^1.0.2" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/postcss": { + "version": "8.4.33", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", + "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-loader": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz", + "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", + "dev": true, + "dependencies": { + "cosmiconfig": "^8.3.5", + "jiti": "^1.20.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz", + "integrity": "sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz", + "integrity": "sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true, + "engines": { + "node": ">=0.9" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-package-json": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz", + "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==", + "dev": true, + "dependencies": { + "glob": "^10.2.2", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/read-package-json-fast": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/read-package-json/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/read-package-json/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", + "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", + "dev": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", + "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", + "dev": true + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.1.tgz", + "integrity": "sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.6.tgz", + "integrity": "sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.9.6", + "@rollup/rollup-android-arm64": "4.9.6", + "@rollup/rollup-darwin-arm64": "4.9.6", + "@rollup/rollup-darwin-x64": "4.9.6", + "@rollup/rollup-linux-arm-gnueabihf": "4.9.6", + "@rollup/rollup-linux-arm64-gnu": "4.9.6", + "@rollup/rollup-linux-arm64-musl": "4.9.6", + "@rollup/rollup-linux-riscv64-gnu": "4.9.6", + "@rollup/rollup-linux-x64-gnu": "4.9.6", + "@rollup/rollup-linux-x64-musl": "4.9.6", + "@rollup/rollup-win32-arm64-msvc": "4.9.6", + "@rollup/rollup-win32-ia32-msvc": "4.9.6", + "@rollup/rollup-win32-x64-msvc": "4.9.6", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/safevalues": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/safevalues/-/safevalues-0.3.4.tgz", + "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==" + }, + "node_modules/sass": { + "version": "1.69.7", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.7.tgz", + "integrity": "sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-loader": { + "version": "13.3.3", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.3.tgz", + "integrity": "sha512-mt5YN2F1MOZr3d/wBRcZxeFgwgkH44wVc2zohO2YF6JiOMkiXe4BYRZpSu2sO1g71mo/j16txzUhsKZlqjVGzA==", + "dev": true, + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", + "dev": true, + "optional": true + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dev": true, + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", + "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.2", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sigstore": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.0.tgz", + "integrity": "sha512-fcU9clHwEss2/M/11FFM8Jwc4PjBgbhXoNskoK5guoK0qGQBSeUbQZRJ+B2fDFIvhyf0gqCaPrel9mszbhAxug==", + "dev": true, + "dependencies": { + "@sigstore/bundle": "^2.1.1", + "@sigstore/core": "^0.2.0", + "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/sign": "^2.2.1", + "@sigstore/tuf": "^2.3.0", + "@sigstore/verify": "^0.1.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socket.io": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.4.tgz", + "integrity": "sha512-DcotgfP1Zg9iP/dH9zvAQcWrE0TtbMVwXmlV4T4mqsvY+gw+LqUGPfx2AoVyRk0FLME+GQhufDMyacFmw7ksqw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", + "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", + "dev": true, + "dependencies": { + "ws": "~8.11.0" + } + }, + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dev": true, + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", + "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", + "dev": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.72.1" + } + }, + "node_modules/source-map-loader/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz", + "integrity": "sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", + "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/ssri": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/terser": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.26.0.tgz", + "integrity": "sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tuf-js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.0.tgz", + "integrity": "sha512-ZSDngmP1z6zw+FIkIBjvOp/II/mIub/O7Pp12j1WNsiCpg5R5wAc//i555bBQsE44O94btLt0xM/Zr2LQjwdCg==", + "dev": true, + "dependencies": { + "@tufjs/models": "2.0.0", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-assert": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", + "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", + "dev": true + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.37", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.37.tgz", + "integrity": "sha512-xV8kqRKM+jhMvcHWUKthV9fNebIzrNy//2O9ZwWcfiBFR5f25XVZPLlEajk/sf3Ra15V92isyQqnIEXRDaZWEA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/undici": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.2.1.tgz", + "integrity": "sha512-7Wa9thEM6/LMnnKtxJHlc8SrTlDmxqJecgz1iy8KlsN0/iskQXOQCuPkrZLXbElPaSw5slFFyKIKXyJ3UtbApw==", + "dev": true, + "dependencies": { + "@fastify/busboy": "^2.0.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dev": true, + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", + "dev": true, + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.12.tgz", + "integrity": "sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==", + "dev": true, + "dependencies": { + "esbuild": "^0.19.3", + "postcss": "^8.4.32", + "rollup": "^4.2.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webpack": { + "version": "5.89.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", + "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.1.1.tgz", + "integrity": "sha512-y51HrHaFeeWir0YO4f0g+9GwZawuigzcAdRNon6jErXy/SqV/+O6eaVAzDqE6t3e3NpGeR5CS+cCDaTC+V3yEQ==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.12", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", + "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", + "dev": true, + "dependencies": { + "typed-assert": "^1.0.8" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", + "webpack": "^5.12.0" + }, + "peerDependenciesMeta": { + "html-webpack-plugin": { + "optional": true + } + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zone.js": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.3.tgz", + "integrity": "sha512-jYoNqF046Q+JfcZSItRSt+oXFcpXL88yq7XAZjb/NKTS7w2hHpKjRJ3VlFD1k75wMaRRXNUt5vrZVlygiMyHbA==", + "dependencies": { + "tslib": "^2.3.0" + } + } + } +} diff --git a/viewer/package.json b/viewer/package.json new file mode 100644 index 0000000..65ce6ef --- /dev/null +++ b/viewer/package.json @@ -0,0 +1,44 @@ +{ + "name": "viewer", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "npm run merge && ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test", + "validate": "node scripts/validate.mjs", + "merge": "node scripts/merge-wallets.mjs" + }, + "private": true, + "dependencies": { + "@angular/animations": "^17.0.0", + "@angular/cdk": "^17.1.2", + "@angular/common": "^17.0.0", + "@angular/compiler": "^17.0.0", + "@angular/core": "^17.0.0", + "@angular/forms": "^17.0.0", + "@angular/material": "^17.1.2", + "@angular/platform-browser": "^17.0.0", + "@angular/platform-browser-dynamic": "^17.0.0", + "@angular/router": "^17.0.0", + "@ngbracket/ngx-layout": "^17.0.1", + "ajv": "^8.12.0", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.14.2" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^17.0.7", + "@angular/cli": "^17.0.7", + "@angular/compiler-cli": "^17.0.0", + "@types/jasmine": "~5.1.0", + "jasmine-core": "~5.1.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.0", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "~2.1.0", + "typescript": "~5.2.2" + } +} diff --git a/viewer/scripts/merge-wallets.mjs b/viewer/scripts/merge-wallets.mjs new file mode 100644 index 0000000..b5743d1 --- /dev/null +++ b/viewer/scripts/merge-wallets.mjs @@ -0,0 +1,23 @@ +import { readdirSync, readFileSync, writeFileSync } from 'fs'; + +// function to parse the flattened_wallets.json and create individual wallet files +const w = JSON.parse(readFileSync('../flattened_wallets.json')); +w.forEach(element => { + element["$schema"] = "../schema.json"; + + const keys = Object.keys(element); + keys.forEach(key => { + if(element[key] === "") { + delete element[key]; + } + }); + + //patch openSourceField to boolean + element.openSource = element.openSource === "Yes"; + writeFileSync(`../wallets/${element.name}.json`, JSON.stringify(element, null, 2)); +}); + +// function to merge all the individual wallet files into a single file +const files = readdirSync('../wallets'); +const wallets = files.map(file => JSON.parse(readFileSync(`../wallets/${file}`))); +writeFileSync('src/assets/wallets.json', JSON.stringify(wallets, null, 2)); diff --git a/viewer/scripts/validate.mjs b/viewer/scripts/validate.mjs new file mode 100644 index 0000000..fb1687f --- /dev/null +++ b/viewer/scripts/validate.mjs @@ -0,0 +1,21 @@ +import Ajv from 'ajv'; +import {readFileSync, readdirSync} from 'fs'; + +const ajv = new Ajv({allowUnionTypes: true}); +const validate = ajv.compile(JSON.parse(readFileSync('../schema.json'))); +const files = readdirSync('../wallets'); +let success = true; +files.map(file => { + const wallet = JSON.parse(readFileSync(`../wallets/${file}`)) + if(!validate(wallet)) { + console.error(`Error validating ${file}:`); + console.error(validate.errors); + success = false; + } +}); +if(success) { + console.info('All wallets are valid'); +} else { + console.error('Some wallets are invalid'); + process.exit(1); +} diff --git a/viewer/src/app/app.component.html b/viewer/src/app/app.component.html new file mode 100644 index 0000000..d216ae4 --- /dev/null +++ b/viewer/src/app/app.component.html @@ -0,0 +1,114 @@ + + Digital Wallet and agent overview +
+
+ Github Github +
+
+ +
+
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + +
+ Name + +
+ + {{ element.name }} +
+
+ Company + + {{ element.company }} + + Open Source + + {{ element.openSource }} + + Link to app + + android + phone_iphone +
+
+
+ + diff --git a/viewer/src/app/app.component.scss b/viewer/src/app/app.component.scss new file mode 100644 index 0000000..302fe19 --- /dev/null +++ b/viewer/src/app/app.component.scss @@ -0,0 +1,22 @@ +.github { + display: flex; + align-items: center; + + img { + float: left; + padding: 4px 8px; + } + + a { + display: flex; + align-items: center; + } +} + +.router-link-active { + background-color: rgba(0,0,0,.2) +} + +.logo { + height: 40px; +} diff --git a/viewer/src/app/app.component.spec.ts b/viewer/src/app/app.component.spec.ts new file mode 100644 index 0000000..3e9ca5c --- /dev/null +++ b/viewer/src/app/app.component.spec.ts @@ -0,0 +1,29 @@ +import { TestBed } from '@angular/core/testing'; +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [AppComponent], + }).compileComponents(); + }); + + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app).toBeTruthy(); + }); + + it(`should have the 'viewer' title`, () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app.title).toEqual('viewer'); + }); + + it('should render title', () => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.nativeElement as HTMLElement; + expect(compiled.querySelector('h1')?.textContent).toContain('Hello, viewer'); + }); +}); diff --git a/viewer/src/app/app.component.ts b/viewer/src/app/app.component.ts new file mode 100644 index 0000000..a15e021 --- /dev/null +++ b/viewer/src/app/app.component.ts @@ -0,0 +1,63 @@ +import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule, RouterOutlet } from '@angular/router'; +import { MatToolbarModule } from '@angular/material/toolbar'; +import { MatTableDataSource, MatTableModule } from '@angular/material/table'; +import { MatButtonModule } from '@angular/material/button'; +import { HttpClient, HttpClientModule } from '@angular/common/http'; +import { firstValueFrom } from 'rxjs'; +import { Wallet } from './types'; +import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator'; +import { MatSort, MatSortModule } from '@angular/material/sort'; +import { MatIconModule } from '@angular/material/icon'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { FlexLayoutModule } from '@ngbracket/ngx-layout'; + +@Component({ + selector: 'app-root', + standalone: true, + imports: [ + RouterModule, + HttpClientModule, + CommonModule, + RouterOutlet, + MatToolbarModule, + MatTableModule, + MatButtonModule, + MatIconModule, + MatPaginatorModule, + MatTooltipModule, + MatSortModule, + FlexLayoutModule, + ], + templateUrl: './app.component.html', + styleUrl: './app.component.scss', +}) +export class AppComponent implements OnInit, AfterViewInit { + updatedAt!: Date; + + dataSource = new MatTableDataSource(); + + columns: string[] = ['wallet', 'company', 'openSource', 'linkToApp']; + + @ViewChild(MatPaginator) paginator!: MatPaginator; + + @ViewChild(MatSort) sort!: MatSort; + + displayedColumns: string[] = []; + + constructor(private httpClient: HttpClient) {} + + async ngOnInit(): Promise { + const wallets = await firstValueFrom( + this.httpClient.get('/assets/wallets.json') + ); + this.dataSource.data = wallets; + this.displayedColumns = this.columns; + } + + ngAfterViewInit(): void { + this.dataSource.sort = this.sort; + this.dataSource.paginator = this.paginator; + } +} diff --git a/viewer/src/app/app.config.ts b/viewer/src/app/app.config.ts new file mode 100644 index 0000000..bcd5df3 --- /dev/null +++ b/viewer/src/app/app.config.ts @@ -0,0 +1,9 @@ +import { ApplicationConfig } from '@angular/core'; +import { provideRouter } from '@angular/router'; + +import { routes } from './app.routes'; +import { provideAnimationsAsync } from '@angular/platform-browser/animations/async'; + +export const appConfig: ApplicationConfig = { + providers: [provideRouter(routes), provideAnimationsAsync()], +}; diff --git a/viewer/src/app/app.routes.ts b/viewer/src/app/app.routes.ts new file mode 100644 index 0000000..dc39edb --- /dev/null +++ b/viewer/src/app/app.routes.ts @@ -0,0 +1,3 @@ +import { Routes } from '@angular/router'; + +export const routes: Routes = []; diff --git a/viewer/src/app/types.ts b/viewer/src/app/types.ts new file mode 100644 index 0000000..1a297d1 --- /dev/null +++ b/viewer/src/app/types.ts @@ -0,0 +1,85 @@ +export interface Wallet { + aip: Aip; + api: Aip; + blockchainPurpose: string; + blockchainType: string; + blockchainUsed: Aip; + company: string; + connectionTypes: string; + credExchangeProtocol: string; + credentialFormat: string; + cryptoAgility: Aip; + ddip: Aip; + deepLinking: Aip; + deployment: Aip; + downloadSource?: Aip; + eassi: Eassi; + ebsi: Aip; + encodingScheme: string; + hardwareSupport: Aip; + holderCapability: Aip; + identifierHolder: string; + identifierIssuer: string; + issuerCapability: Aip; + keyHistoryHolder: Aip; + keyHistoryIssuer: Aip; + keyRotationHolder: Aip; + keyRotationIssuer: Aip; + logo: string; + mdoc: Mdoc; + name: string; + observability: Aip; + offlineFriendly: Aip; + openSource: string; + organisationalWallet: OrganisationalWallet; + peer2PeerProtocols: string; + portability: Aip; + predicates: Aip; + quantumSafe: Aip; + revocationAlgorithm: string; + scope: Scope; + selectiveDisclosure: Aip; + signatureAlgorithm: string; + support: Support; + urlAppStore: string; + urlGooglePlayStore: string; + urlWebApp: string; + urlWebsite: string; + verifierCapability: Aip; + verifierUnlinkability: Aip; +} + +export enum Aip { + DependingOn = 'Depending on ...', + Empty = '-', + No = 'No', + Yes = 'Yes', + YesImplemntationAccordingToARF = 'Yes, implemntation according to ARF', + YesNFCHWW = 'Yes, NFC HWW', +} + +export enum Eassi { + No = 'No', + Soon = 'Soon', + Yes = 'Yes', +} + +export enum Mdoc { + Empty = '-', + Planned = 'Planned', +} + +export enum OrganisationalWallet { + Empty = '-', + YesButBrandedAsEnterpriseWalletPlatformByIGrantIo = 'Yes, but branded as Enterprise Wallet Platform by iGrant.io', +} + +export enum Scope { + Empty = '-', + TravelHospitalityAccessControl = 'Travel, Hospitality, Access Control', +} + +export enum Support { + Empty = '-', + SupportIgrantIo = 'support@igrant.io', +} diff --git a/viewer/src/assets/.gitkeep b/viewer/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/viewer/src/assets/default-image.png b/viewer/src/assets/default-image.png new file mode 100644 index 0000000000000000000000000000000000000000..e0d72cbab74862866abc42ac6318b6c5a52ebafa GIT binary patch literal 2568 zcmeAS@N?(olHy`uVBq!ia0y~y-~ci?7#M*h!>l{+<^m~}bVpxD28NCO++a3F{I+w+Y5$3D|wg{eowzvFUlt9F~6IEk%@&v zK*6D5lrb6zqbXrD7mVhD(OfW^3r2InaLxq}q&)wXca{j0lmMGcswJ)wB`Jv|saDBF zsX&Us$iT>0*T6#8$RNbP+{(n%%EV0Dz`)ADKqcYuIus4L`6-!cmAEy8+ExnzH86O( L`njxgN@xNAYHLGc literal 0 HcmV?d00001 diff --git a/viewer/src/assets/github.svg b/viewer/src/assets/github.svg new file mode 100644 index 0000000..715c08e --- /dev/null +++ b/viewer/src/assets/github.svg @@ -0,0 +1 @@ +github-circle-white-transparent \ No newline at end of file diff --git a/static/Gimly-wallet.png b/viewer/src/assets/logos/Gimly-wallet.png similarity index 100% rename from static/Gimly-wallet.png rename to viewer/src/assets/logos/Gimly-wallet.png diff --git a/static/VIDwallet.png b/viewer/src/assets/logos/VIDwallet.png similarity index 100% rename from static/VIDwallet.png rename to viewer/src/assets/logos/VIDwallet.png diff --git a/static/altme.png b/viewer/src/assets/logos/altme.png similarity index 100% rename from static/altme.png rename to viewer/src/assets/logos/altme.png diff --git a/static/atala-prism.png b/viewer/src/assets/logos/atala-prism.png similarity index 100% rename from static/atala-prism.png rename to viewer/src/assets/logos/atala-prism.png diff --git a/static/certishare-wallet.png b/viewer/src/assets/logos/certishare-wallet.png similarity index 100% rename from static/certishare-wallet.png rename to viewer/src/assets/logos/certishare-wallet.png diff --git a/static/data-wallet.png b/viewer/src/assets/logos/data-wallet.png similarity index 100% rename from static/data-wallet.png rename to viewer/src/assets/logos/data-wallet.png diff --git a/static/datakeeper.png b/viewer/src/assets/logos/datakeeper.png similarity index 100% rename from static/datakeeper.png rename to viewer/src/assets/logos/datakeeper.png diff --git a/static/esatus-wallet.png b/viewer/src/assets/logos/esatus-wallet.png similarity index 100% rename from static/esatus-wallet.png rename to viewer/src/assets/logos/esatus-wallet.png diff --git a/static/gataca.png b/viewer/src/assets/logos/gataca.png similarity index 100% rename from static/gataca.png rename to viewer/src/assets/logos/gataca.png diff --git a/static/helix-id.png b/viewer/src/assets/logos/helix-id.png similarity index 100% rename from static/helix-id.png rename to viewer/src/assets/logos/helix-id.png diff --git a/static/identry.png b/viewer/src/assets/logos/identry.png similarity index 100% rename from static/identry.png rename to viewer/src/assets/logos/identry.png diff --git a/static/lissi-wallet.png b/viewer/src/assets/logos/lissi-wallet.png similarity index 100% rename from static/lissi-wallet.png rename to viewer/src/assets/logos/lissi-wallet.png diff --git a/static/mattr-wallet.png b/viewer/src/assets/logos/mattr-wallet.png similarity index 100% rename from static/mattr-wallet.png rename to viewer/src/assets/logos/mattr-wallet.png diff --git a/static/mykeepin.png b/viewer/src/assets/logos/mykeepin.png similarity index 100% rename from static/mykeepin.png rename to viewer/src/assets/logos/mykeepin.png diff --git a/static/paradym-wallet.png b/viewer/src/assets/logos/paradym-wallet.png similarity index 100% rename from static/paradym-wallet.png rename to viewer/src/assets/logos/paradym-wallet.png diff --git a/static/sphereon-wallet.png b/viewer/src/assets/logos/sphereon-wallet.png similarity index 100% rename from static/sphereon-wallet.png rename to viewer/src/assets/logos/sphereon-wallet.png diff --git a/static/spherity-wallet.png b/viewer/src/assets/logos/spherity-wallet.png similarity index 100% rename from static/spherity-wallet.png rename to viewer/src/assets/logos/spherity-wallet.png diff --git a/static/talao.png b/viewer/src/assets/logos/talao.png similarity index 100% rename from static/talao.png rename to viewer/src/assets/logos/talao.png diff --git a/static/walt-id.png b/viewer/src/assets/logos/walt-id.png similarity index 100% rename from static/walt-id.png rename to viewer/src/assets/logos/walt-id.png diff --git a/static/yivi.png b/viewer/src/assets/logos/yivi.png similarity index 100% rename from static/yivi.png rename to viewer/src/assets/logos/yivi.png diff --git a/static/zada.png b/viewer/src/assets/logos/zada.png similarity index 100% rename from static/zada.png rename to viewer/src/assets/logos/zada.png diff --git a/viewer/src/assets/project-icon.png b/viewer/src/assets/project-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..297cba2bf7267099cb3922dd865cff58b5d9ed06 GIT binary patch literal 6777 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 Nr__JTFzvMr^FKp4S3v*( literal 0 HcmV?d00001 diff --git a/viewer/src/index.html b/viewer/src/index.html new file mode 100644 index 0000000..0d08fc5 --- /dev/null +++ b/viewer/src/index.html @@ -0,0 +1,21 @@ + + + + + Digital Wallet and agent overview + + + + + + + + + + diff --git a/viewer/src/main.ts b/viewer/src/main.ts new file mode 100644 index 0000000..35b00f3 --- /dev/null +++ b/viewer/src/main.ts @@ -0,0 +1,6 @@ +import { bootstrapApplication } from '@angular/platform-browser'; +import { appConfig } from './app/app.config'; +import { AppComponent } from './app/app.component'; + +bootstrapApplication(AppComponent, appConfig) + .catch((err) => console.error(err)); diff --git a/viewer/src/styles.scss b/viewer/src/styles.scss new file mode 100644 index 0000000..ebc8751 --- /dev/null +++ b/viewer/src/styles.scss @@ -0,0 +1,12 @@ +/* You can add global styles to this file, and also import other style files */ + +html, body { height: 100%; } +body { margin: 0; font-family: Roboto, "Helvetica Neue", sans-serif; } + +.spacer { + flex: 1 1 auto; +} + +.full { + width: calc(100%); +} diff --git a/viewer/tsconfig.app.json b/viewer/tsconfig.app.json new file mode 100644 index 0000000..374cc9d --- /dev/null +++ b/viewer/tsconfig.app.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": [ + "src/main.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/viewer/tsconfig.json b/viewer/tsconfig.json new file mode 100644 index 0000000..f37b67f --- /dev/null +++ b/viewer/tsconfig.json @@ -0,0 +1,33 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "outDir": "./dist/out-tsc", + "forceConsistentCasingInFileNames": true, + "strict": true, + "noImplicitOverride": true, + "noPropertyAccessFromIndexSignature": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "skipLibCheck": true, + "esModuleInterop": true, + "sourceMap": true, + "declaration": false, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "ES2022", + "module": "ES2022", + "useDefineForClassFields": false, + "lib": [ + "ES2022", + "dom" + ] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/viewer/tsconfig.spec.json b/viewer/tsconfig.spec.json new file mode 100644 index 0000000..be7e9da --- /dev/null +++ b/viewer/tsconfig.spec.json @@ -0,0 +1,14 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/wallets/AceID Wallet.json b/wallets/AceID Wallet.json new file mode 100644 index 0000000..b726aeb --- /dev/null +++ b/wallets/AceID Wallet.json @@ -0,0 +1,10 @@ +{ + "blockchainType": "AceBlock blockchain framework", + "blockchainUsed": "Yes", + "company": "AceBlock", + "eassi": "No", + "logo": "logos/aceid-wallet.png", + "name": "AceID Wallet", + "$schema": "../schema.json", + "openSource": false +} \ No newline at end of file diff --git a/wallets/Apple Wallet.json b/wallets/Apple Wallet.json new file mode 100644 index 0000000..2b52f65 --- /dev/null +++ b/wallets/Apple Wallet.json @@ -0,0 +1,8 @@ +{ + "company": "Apple", + "eassi": "No", + "logo": "logos/apple-wallet.png", + "name": "Apple Wallet", + "$schema": "../schema.json", + "openSource": false +} \ No newline at end of file diff --git a/wallets/Atala PRISM.json b/wallets/Atala PRISM.json new file mode 100644 index 0000000..9083919 --- /dev/null +++ b/wallets/Atala PRISM.json @@ -0,0 +1,31 @@ +{ + "blockchainPurpose": "Anchoring public DIDs for issuers and/or verifiers (ie: enabling trust registry)", + "blockchainType": "Cardano", + "blockchainUsed": "Yes", + "company": "IOHK", + "connectionTypes": "Connection-based communication", + "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "JWT-VC, soon:AnonCreds", + "cryptoAgility": "Yes", + "deepLinking": "No", + "eassi": "No", + "encodingScheme": "JSON, JSON-LD", + "hardwareSupport": "Yes", + "identifierHolder": "did:prism", + "identifierIssuer": "did:prism", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/atala-prism.png", + "name": "Atala PRISM", + "openSource": false, + "peer2PeerProtocols": "DIDComm", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Revocation not supported, soon: Revocation List 2021", + "selectiveDisclosure": "No", + "signatureAlgorithm": "ECDSA, soon: CL", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Authenticator.json b/wallets/Authenticator.json new file mode 100644 index 0000000..e0dbd1e --- /dev/null +++ b/wallets/Authenticator.json @@ -0,0 +1,8 @@ +{ + "company": "Microsoft", + "eassi": "No", + "logo": "logos/authenticator.png", + "name": "Authenticator", + "$schema": "../schema.json", + "openSource": false +} \ No newline at end of file diff --git a/wallets/BC Wallet.json b/wallets/BC Wallet.json new file mode 100644 index 0000000..99bcdaa --- /dev/null +++ b/wallets/BC Wallet.json @@ -0,0 +1,8 @@ +{ + "company": "Government of BC", + "eassi": "No", + "logo": "logos/bc-wallet.png", + "name": "BC Wallet", + "$schema": "../schema.json", + "openSource": false +} \ No newline at end of file diff --git a/wallets/Blockcerts Wallet.json b/wallets/Blockcerts Wallet.json new file mode 100644 index 0000000..bec4ce7 --- /dev/null +++ b/wallets/Blockcerts Wallet.json @@ -0,0 +1,10 @@ +{ + "blockchainType": "Bitcoin and Ethereum, with Merkle proof linking credential to blockchain transaction", + "blockchainUsed": "Yes", + "company": "Hyland Credentials (formerly: Learning Machine)", + "eassi": "No", + "logo": "logos/blockcerts-wallet.png", + "name": "Blockcerts Wallet", + "openSource": true, + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Blockpass.json b/wallets/Blockpass.json new file mode 100644 index 0000000..2094bc3 --- /dev/null +++ b/wallets/Blockpass.json @@ -0,0 +1,10 @@ +{ + "blockchainType": "Ethereum or Blockpass", + "blockchainUsed": "Yes", + "company": "Blockpass IDN", + "eassi": "No", + "logo": "logos/blockpass.png", + "name": "Blockpass", + "openSource": false, + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/CertiShare Wallet.json b/wallets/CertiShare Wallet.json new file mode 100644 index 0000000..ec0102b --- /dev/null +++ b/wallets/CertiShare Wallet.json @@ -0,0 +1,31 @@ +{ + "blockchainPurpose": "Schema, CredentialDefinitions, DID, Revocation", + "blockchainType": "Hyperledger Indy", + "blockchainUsed": "Yes", + "company": "The Ego Company", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "AnonCred, JSON-LD", + "cryptoAgility": "No", + "eassi": "No", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "identifierHolder": "did:", + "identifierIssuer": "did:sov", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/certishare-wallet.png", + "name": "CertiShare Wallet", + "observability": "No", + "openSource": false, + "peer2PeerProtocols": "DIDComm, DID Exchange Protocol, openID", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Data Wallet.json b/wallets/Data Wallet.json new file mode 100644 index 0000000..9714865 --- /dev/null +++ b/wallets/Data Wallet.json @@ -0,0 +1,42 @@ +{ + "aip": "Yes", + "blockchainPurpose": "For publishing schema IDs, credential def IDs and public DID", + "blockchainType": "Hyperledger Indy, Ethereum, EBSI blockchain", + "blockchainUsed": "Yes", + "company": "iGrant.io", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange, DEXA", + "credentialFormat": "AnonCreds, JWT-VC, ICAO DTC, x.509", + "cryptoAgility": "No", + "deepLinking": "Yes", + "eassi": "No", + "ebsi": "Yes", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "identifierHolder": "did:ebsi, did:key, link secrets, X.509", + "identifierIssuer": "did:ebsi, did:key, did:sov, X.509", + "keyHistoryHolder": "Yes", + "keyHistoryIssuer": "Yes", + "keyRotationHolder": "Yes", + "keyRotationIssuer": "Yes", + "logo": "logos/data-wallet.png", + "mdoc": "Planned", + "name": "Data Wallet", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": false, + "organisationalWallet": "Yes, but branded as Enterprise Wallet Platform by iGrant.io", + "peer2PeerProtocols": "OIDC4VC, OIDC4VP, SIOPv2, DIDComm, DID Exchange Protocol, Connection protocols in AIP 1.0", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation, EBSI revocation, W3C Status List 2021, SLTD database (travel and identity documents), CRL - certificate revocation list", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL, ES256, ECDSA", + "support": "support@igrant.io", + "urlAppStore": "https://apple.co/2Mz9nJp", + "urlGooglePlayStore": "https://play.google.com/store/apps/details?id=io.igrant.mobileagent", + "urlWebApp": "https://business.igrant.io/", + "urlWebsite": "https://igrant.io/datawallet.html", + "verifierUnlinkability": "Yes", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Datakeeper.json b/wallets/Datakeeper.json new file mode 100644 index 0000000..4ce0650 --- /dev/null +++ b/wallets/Datakeeper.json @@ -0,0 +1,33 @@ +{ + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", + "company": "Rabobank Nederland", + "connectionTypes": "Direct communication", + "credExchangeProtocol": "Datakeeper protocol (Verifiable Presentation)", + "credentialFormat": "LDP-VC", + "cryptoAgility": "Yes", + "deepLinking": "Yes", + "eassi": "Yes", + "encodingScheme": "JSON-LD", + "hardwareSupport": "Yes", + "identifierHolder": "did:eth", + "identifierIssuer": "did:eth", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/datakeeper.png", + "name": "Datakeeper", + "observability": "No", + "offlineFriendly": "No", + "openSource": false, + "peer2PeerProtocols": "Datakeeper protocol", + "predicates": "Depending on ...", + "quantumSafe": "No", + "revocationAlgorithm": "Validity credential, Revocation not supported", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "ECDSA", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Digital ID Wallet.json b/wallets/Digital ID Wallet.json new file mode 100644 index 0000000..8fc53b7 --- /dev/null +++ b/wallets/Digital ID Wallet.json @@ -0,0 +1,8 @@ +{ + "company": "Thales", + "eassi": "No", + "logo": "logos/digital-id-wallet.png", + "name": "Digital ID Wallet", + "$schema": "../schema.json", + "openSource": false +} \ No newline at end of file diff --git a/wallets/Gataca.json b/wallets/Gataca.json new file mode 100644 index 0000000..62fb652 --- /dev/null +++ b/wallets/Gataca.json @@ -0,0 +1,33 @@ +{ + "blockchainPurpose": "To anchor DIDs (legal entities), and to anchor the trust framework", + "blockchainType": "We are agnostic to the infra, so the platform right now supports Ethereum, Fabric and EBSI", + "blockchainUsed": "Yes", + "company": "Gataca Inc.", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "LDP-VC, JTW-VC", + "cryptoAgility": "Yes", + "deepLinking": "Yes", + "eassi": "No", + "encodingScheme": "JSON-LD", + "hardwareSupport": "No", + "identifierHolder": "did:key", + "identifierIssuer": "did:gatc", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/gataca.png", + "name": "Gataca", + "observability": "Yes", + "offlineFriendly": "Yes, implemntation according to ARF", + "openSource": false, + "peer2PeerProtocols": "OIDC, SIOP", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Status List 2017, Status List 2021", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "EdDSA, RSA, secp256k, P-256, CadEs", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/IDEMIA Mobile ID.json b/wallets/IDEMIA Mobile ID.json new file mode 100644 index 0000000..e9aa2a5 --- /dev/null +++ b/wallets/IDEMIA Mobile ID.json @@ -0,0 +1,8 @@ +{ + "company": "IDEMIA Group", + "eassi": "No", + "logo": "logos/idema.png", + "name": "IDEMIA Mobile ID", + "$schema": "../schema.json", + "openSource": false +} \ No newline at end of file diff --git a/wallets/Identry.json b/wallets/Identry.json new file mode 100644 index 0000000..15ea23f --- /dev/null +++ b/wallets/Identry.json @@ -0,0 +1,30 @@ +{ + "blockchainPurpose": "Authorization, Credentials Schemas, Revocation registry", + "blockchainType": "HyperLedger Indy", + "blockchainUsed": "Yes", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "Present Proof Protocol", + "credentialFormat": "AnonCred", + "cryptoAgility": "No", + "eassi": "No", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "identifierHolder": "did:sov", + "identifierIssuer": "did:sov", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/identry.png", + "name": "Identry", + "observability": "No", + "openSource": false, + "peer2PeerProtocols": "DIDComm", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL", + "verifierUnlinkability": "Yes", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/KayTrust Wallet.json b/wallets/KayTrust Wallet.json new file mode 100644 index 0000000..0ef1b68 --- /dev/null +++ b/wallets/KayTrust Wallet.json @@ -0,0 +1,10 @@ +{ + "blockchainType": "Blockchain network based on Ethereum", + "blockchainUsed": "Yes", + "company": "KayTrust", + "eassi": "No", + "logo": "logos/kaytrust-wallet.png", + "name": "KayTrust Wallet", + "openSource": false, + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Lissi Wallet.json b/wallets/Lissi Wallet.json new file mode 100644 index 0000000..f981f15 --- /dev/null +++ b/wallets/Lissi Wallet.json @@ -0,0 +1,32 @@ +{ + "blockchainPurpose": "Decentralized Public Key Infrastructure", + "blockchainType": "Hyperledger Indy", + "blockchainUsed": "Yes", + "company": "main incubator GmbH", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, soon: OpenID4VCI and OpenID4VP", + "credentialFormat": "AnonCred", + "cryptoAgility": "No", + "deepLinking": "Yes", + "eassi": "Soon", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "identifierHolder": "Link secret", + "identifierIssuer": "did:sovrin (did:indy)", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/lissi-wallet.png", + "name": "Lissi Wallet", + "observability": "No", + "openSource": false, + "peer2PeerProtocols": "DIDComm", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL", + "verifierUnlinkability": "Yes", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/MATTR Wallet.json b/wallets/MATTR Wallet.json new file mode 100644 index 0000000..0379d94 --- /dev/null +++ b/wallets/MATTR Wallet.json @@ -0,0 +1,33 @@ +{ + "blockchainPurpose": "Storing public keys", + "blockchainType": "ION - if ION DID menthod used", + "blockchainUsed": "Yes", + "company": "Mattr Limited", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI", + "credentialFormat": "LDP-VC", + "cryptoAgility": "Yes", + "deepLinking": "Yes", + "eassi": "No", + "encodingScheme": "JSON-LD", + "hardwareSupport": "No", + "identifierHolder": "did:key", + "identifierIssuer": "did:web, did:ion, did:key", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/mattr-wallet.png", + "name": "MATTR Wallet", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": false, + "peer2PeerProtocols": "OIDC, DIDComm", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "RevocationList2020", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+, EdDSA", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/MYKEEPiN.json b/wallets/MYKEEPiN.json new file mode 100644 index 0000000..1c53407 --- /dev/null +++ b/wallets/MYKEEPiN.json @@ -0,0 +1,33 @@ +{ + "blockchainPurpose": "Scale up for DID", + "blockchainType": "Metadium", + "blockchainUsed": "Yes", + "company": "Metadium Technology Inc", + "connectionTypes": "Direct communication", + "credExchangeProtocol": "N/A", + "credentialFormat": "JWT, JWT-VC", + "cryptoAgility": "Yes", + "deepLinking": "Yes", + "eassi": "No", + "encodingScheme": "compact and JSON serialization, JSON, JSON-LD", + "hardwareSupport": "Yes", + "identifierHolder": "Raw public key", + "identifierIssuer": "Raw public key", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/mykeepin.png", + "name": "MYKEEPiN", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": false, + "peer2PeerProtocols": "N/A", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Non-revocation token", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "ECDSA", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Microsoft Entra.json b/wallets/Microsoft Entra.json new file mode 100644 index 0000000..3fae836 --- /dev/null +++ b/wallets/Microsoft Entra.json @@ -0,0 +1,8 @@ +{ + "company": "Microsoft", + "eassi": "No", + "logo": "logos/microsoft-entra.png", + "name": "Microsoft Entra", + "openSource": false, + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Paradym Wallet.json b/wallets/Paradym Wallet.json new file mode 100644 index 0000000..24d6917 --- /dev/null +++ b/wallets/Paradym Wallet.json @@ -0,0 +1,33 @@ +{ + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", + "company": "Animo Solutions", + "connectionTypes": "Direct communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "JWT-VC", + "cryptoAgility": "Yes", + "deepLinking": "Yes", + "eassi": "No", + "encodingScheme": "compact and JSON serialization, JSON", + "hardwareSupport": "No", + "identifierHolder": "did:jwk, did:key", + "identifierIssuer": "did:jwk, did:key, did:web", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/paradym-wallet.png", + "name": "Paradym Wallet", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": true, + "peer2PeerProtocols": "OID4VC", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "No", + "selectiveDisclosure": "No", + "signatureAlgorithm": "EdDSA, ES256", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Sphereon Wallet.json b/wallets/Sphereon Wallet.json new file mode 100644 index 0000000..ea0df81 --- /dev/null +++ b/wallets/Sphereon Wallet.json @@ -0,0 +1,33 @@ +{ + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", + "company": "Sphereon", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "JWT, JWT-VC, LDP-VC", + "cryptoAgility": "Yes", + "deepLinking": "Yes", + "eassi": "No", + "encodingScheme": "compact and JSON serialization, JSON, JSON-LD, JSON-LD", + "hardwareSupport": "Yes", + "identifierHolder": "X.509 certificate, did:jwk, did:key, did:ion, did:cheqd, did:web, did:lto, did:factom, did:ethr, did:pkh", + "identifierIssuer": "X.509 certificate, did:jwk, did:key, did:ion, did:cheqd, did:web, did:lto, did:factom, did:ethr, did:pkh", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/sphereon-wallet.png", + "name": "Sphereon Wallet", + "observability": "Yes", + "offlineFriendly": "No", + "openSource": true, + "peer2PeerProtocols": "OIDC, SIOP, DIDComm", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Status List 2021, Validity credential", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+, ECDSA, EdDSA, RSA", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Spherity Wallet.json b/wallets/Spherity Wallet.json new file mode 100644 index 0000000..566dfe6 --- /dev/null +++ b/wallets/Spherity Wallet.json @@ -0,0 +1,30 @@ +{ + "blockchainPurpose": "Anchor DID & DID Documents, Trust Registry, Revocation Registry", + "blockchainType": "Ethereum", + "blockchainUsed": "Yes", + "company": "Spherity GmbH", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "AnonCred, JSON-LD", + "cryptoAgility": "No", + "eassi": "No", + "hardwareSupport": "No", + "identifierHolder": "did:ethr", + "identifierIssuer": "did:ethr", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/spherity-wallet.png", + "name": "Spherity Wallet", + "observability": "No", + "openSource": false, + "peer2PeerProtocols": "OIDC, SIOP, DIDComm, DID Exchange Protocol", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Indy Revocation, Revocation 5539, Status List 2021", + "selectiveDisclosure": "No", + "signatureAlgorithm": "CL, BBS+, EdDSA", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Talao.json b/wallets/Talao.json new file mode 100644 index 0000000..a819992 --- /dev/null +++ b/wallets/Talao.json @@ -0,0 +1,31 @@ +{ + "blockchainPurpose": "identity, crypto", + "blockchainType": "Ethereum, ION, EBSI, PolygonID", + "blockchainUsed": "Yes", + "company": "Talao", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "JWT-VC, JSON-LD", + "cryptoAgility": "Yes", + "eassi": "No", + "encodingScheme": "JSON, JSON-LD", + "hardwareSupport": "Yes", + "identifierHolder": "did:ebsi, did:ion, did:web, did:tz, did:key", + "identifierIssuer": "did:ebsi, did:ion, did:web, did:tz, did:key", + "keyHistoryHolder": "Yes", + "keyHistoryIssuer": "No", + "keyRotationHolder": "Yes", + "keyRotationIssuer": "No", + "logo": "logos/talao.png", + "name": "Talao", + "observability": "Yes", + "openSource": true, + "peer2PeerProtocols": "OIDC, SIOP, DID Exchange Protocol", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Status List 2021", + "selectiveDisclosure": "No", + "signatureAlgorithm": "ECDSA", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Tap ID.json b/wallets/Tap ID.json new file mode 100644 index 0000000..b71b6e8 --- /dev/null +++ b/wallets/Tap ID.json @@ -0,0 +1,23 @@ +{ + "blockchainPurpose": "Anchor DID & DID Documents", + "blockchainType": "Depending on DID method", + "blockchainUsed": "Yes", + "company": "Gimly", + "connectionTypes": "Direct communication, Connection-based communication, Direct NFC-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "JWT, JWT-VC, LDP-VC", + "deepLinking": "Yes", + "eassi": "No", + "identifierHolder": "did:ethr, did:ion, did:web, did:jwk, did:key", + "identifierIssuer": "did:web, did:ion, did:key, did:jwk", + "logo": "logos/tap-id.png", + "name": "Tap ID", + "offlineFriendly": "Yes", + "openSource": false, + "peer2PeerProtocols": "OIDC, SIOP, DIDComm", + "predicates": "Yes", + "revocationAlgorithm": "Status List 2021", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+, ECDSA", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/VIDwallet.json b/wallets/VIDwallet.json new file mode 100644 index 0000000..6a8f326 --- /dev/null +++ b/wallets/VIDwallet.json @@ -0,0 +1,32 @@ +{ + "blockchainPurpose": "Trust Anchor, Trust registry, root of trust", + "blockchainType": "EBSI, Alastria, Ethereum", + "blockchainUsed": "Yes", + "company": "Validated ID", + "connectionTypes": "both", + "credExchangeProtocol": "OIDC4CI, OIDC4VP", + "credentialFormat": "JWT-VC, JSON-LD, JWT", + "cryptoAgility": "Yes", + "deepLinking": "Yes", + "eassi": "No", + "encodingScheme": "JSON, JSON-LD", + "hardwareSupport": "Yes", + "identifierHolder": "did:key, did:jwk, did:ala, did:ebsi, did:eth", + "identifierIssuer": "did:key, did:jwk, did:ala, did:ebsi, did:eth", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/vidwallet.png", + "name": "VIDwallet", + "observability": "Yes", + "openSource": false, + "peer2PeerProtocols": "OIDC, SIOP", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Status List 2021", + "selectiveDisclosure": "No", + "signatureAlgorithm": "ECDSA, EdDSA", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/Yivi.json b/wallets/Yivi.json new file mode 100644 index 0000000..0df6455 --- /dev/null +++ b/wallets/Yivi.json @@ -0,0 +1,33 @@ +{ + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", + "company": "Privacy by Design Foundation", + "connectionTypes": "Direct communication, Interpreted as direct wallet to IDP and wallet to RP connections. No communication through centralized components in our infrastructure. IRMA is fully decentralized. ", + "credExchangeProtocol": "IRMA protocol", + "credentialFormat": "Idemix ABC", + "cryptoAgility": "No", + "deepLinking": "Yes", + "eassi": "Yes", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "identifierHolder": "Link secret", + "identifierIssuer": "Issuer identifier inside issuer scheme including issuer public key", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/yivi.png", + "name": "Yivi", + "observability": "No", + "offlineFriendly": "No", + "openSource": true, + "peer2PeerProtocols": "IRMA protocol ", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Own implementation on top of Idemix", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL, Schnorr", + "verifierUnlinkability": "Yes", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/ZADA.json b/wallets/ZADA.json new file mode 100644 index 0000000..594a3ac --- /dev/null +++ b/wallets/ZADA.json @@ -0,0 +1,32 @@ +{ + "blockchainPurpose": "Public DIDs and associated DID documents with verification keys and endpoints, schemas and credential definitions, revocation registries, agent authorisation policies", + "blockchainType": "Sovrin", + "blockchainUsed": "Yes", + "company": "ZADA Solutions", + "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "AnonCred, RSA", + "cryptoAgility": "No", + "deepLinking": "Yes", + "eassi": "No", + "encodingScheme": "JSON", + "hardwareSupport": "Yes", + "identifierHolder": "Raw public key, did:sov", + "identifierIssuer": "Raw public key, did:sov", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/zada.png", + "name": "ZADA", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": true, + "peer2PeerProtocols": "DIDComm", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL, RSA", + "verifierUnlinkability": "Yes", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/esatus Wallet.json b/wallets/esatus Wallet.json new file mode 100644 index 0000000..56d0d71 --- /dev/null +++ b/wallets/esatus Wallet.json @@ -0,0 +1,36 @@ +{ + "blockchainPurpose": "N/A", + "blockchainType": "N/A", + "blockchainUsed": "No", + "company": "esatus AG", + "connectionTypes": "Connection-based communication", + "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "AnonCred", + "cryptoAgility": "No", + "deepLinking": "Yes", + "eassi": "Yes", + "encodingScheme": "JSON", + "hardwareSupport": "No", + "identifierHolder": "Link secret", + "identifierIssuer": "Link secret", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/esatus-wallet.png", + "name": "esatus Wallet", + "observability": "No", + "offlineFriendly": "No", + "openSource": false, + "peer2PeerProtocols": "DIDComm", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "Indy revocation", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "CL", + "urlAppStore": "https://apps.apple.com/us/app/esatus-wallet/id1496769057?itsct=apps_box&itscg=30200", + "urlGooglePlayStore": "https://play.google.com/store/apps/details?id=com.esatus.wallet&hl=de_DE&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1", + "urlWebsite": "https://esatus.com/index.html%3Fp=7663&lang=en.html", + "verifierUnlinkability": "Yes", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/helix id.json b/wallets/helix id.json new file mode 100644 index 0000000..06215e9 --- /dev/null +++ b/wallets/helix id.json @@ -0,0 +1,33 @@ +{ + "blockchainPurpose": "No personal data", + "blockchainType": "public permissioned Ethereum, IPFS", + "blockchainUsed": "Yes", + "company": "Blockchain Helix AG", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", + "credentialFormat": "JWT, JWT-VC", + "cryptoAgility": "Yes", + "deepLinking": "Yes", + "eassi": "No", + "encodingScheme": "compact and JSON serialization, JSON, JSON-LD", + "hardwareSupport": "Yes", + "identifierHolder": "did:key, ENS, did:eth", + "identifierIssuer": "did:key, ENS, did:eth", + "keyHistoryHolder": "No", + "keyHistoryIssuer": "No", + "keyRotationHolder": "No", + "keyRotationIssuer": "No", + "logo": "logos/helix-id.png", + "name": "helix id", + "observability": "No", + "offlineFriendly": "Yes", + "openSource": false, + "peer2PeerProtocols": "OIDC, DIDComm, DID Exchange Protocol", + "predicates": "Yes", + "quantumSafe": "No", + "revocationAlgorithm": "DID Revocation", + "selectiveDisclosure": "Yes", + "signatureAlgorithm": "BBS+, ECDSA", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file diff --git a/wallets/idento.one.json b/wallets/idento.one.json new file mode 100644 index 0000000..c6956da --- /dev/null +++ b/wallets/idento.one.json @@ -0,0 +1,7 @@ +{ + "eassi": "No", + "logo": "logos/idento-one.png", + "name": "idento.one", + "$schema": "../schema.json", + "openSource": false +} \ No newline at end of file diff --git a/wallets/walt.id.json b/wallets/walt.id.json new file mode 100644 index 0000000..562a1d9 --- /dev/null +++ b/wallets/walt.id.json @@ -0,0 +1,30 @@ +{ + "blockchainPurpose": "EBSI - The aim of EBSI is to develop a secure and scalable blockchain infrastructure that can provide cross-border digital public services to citizens and businesses in Europe.\n\nIOTA - it's purpose is to provide a scalable, feeless, and decentralized transactional settlement and data transfer platform for the Internet of Things (IoT) ecosystem.\n\nVelocity - The purpose of the Velocity Network is to create a decentralized, global credentialing ecosystem that enables individuals to own, control, and securely share their verified career credentials while giving organizations access to a trusted talent marketplace.\n\nChqed - The purpose of the cheqd ecosystem is to provide a decentralized, privacy-preserving digital identity solution that allows individuals to have control over their personal data while enabling secure and verifiable credential exchange between individuals and organizations.", + "blockchainType": "ebsi, iota, cheqd, velocity", + "blockchainUsed": "Yes", + "company": "walt.id", + "connectionTypes": "Direct communication, Connection-based communication", + "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", + "credentialFormat": "JWT, LDP-VC", + "cryptoAgility": "Yes", + "eassi": "No", + "encodingScheme": "compact and JSON serialization", + "hardwareSupport": "Yes", + "identifierHolder": "did:key, did:web, did:ebsi, did:iota, did:jwk, did:cheqd, did:velocity", + "identifierIssuer": "did:key, did:web, did:ebsi, did:iota, did:jwk, did:cheqd, did:velocity", + "keyHistoryHolder": "Yes", + "keyHistoryIssuer": "Yes", + "keyRotationHolder": "Yes", + "keyRotationIssuer": "Yes", + "logo": "logos/walt-id.png", + "name": "walt.id", + "openSource": true, + "peer2PeerProtocols": "OIDC, SIOP", + "predicates": "No", + "quantumSafe": "No", + "revocationAlgorithm": "Revocation not supported", + "selectiveDisclosure": "No", + "signatureAlgorithm": "ECDSA, EdDSA, RSA", + "verifierUnlinkability": "No", + "$schema": "../schema.json" +} \ No newline at end of file From 73ef33c41104a5c767843c659cf2dfcc2cfff4a8 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:26:12 +0100 Subject: [PATCH 39/76] let the ci also run on the angular branch for test purposes Signed-off-by: Mirko Mollik --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5955bc3..f45f665 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -8,6 +8,7 @@ on: push: branches: - main + - angular # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: From ceed21388450ebd444f8c17059ba9b54d31b68f1 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:29:17 +0100 Subject: [PATCH 40/76] update ci jobs Signed-off-by: Mirko Mollik --- .github/workflows/count.yml | 3 ++- .github/workflows/main.yml | 14 +++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/count.yml b/.github/workflows/count.yml index 26458be..b539367 100644 --- a/.github/workflows/count.yml +++ b/.github/workflows/count.yml @@ -4,6 +4,7 @@ on: push: branches: - main + - angular permissions: contents: write @@ -14,7 +15,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Count files in wallet folder id: file_count diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f45f665..032d501 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,10 +27,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 18 @@ -45,10 +45,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 18 @@ -66,7 +66,7 @@ jobs: publish: # only run on the main branch - if: github.ref == 'refs/heads/main' + # if: github.ref == 'refs/heads/main' needs: [validate, build] runs-on: ubuntu-latest environment: @@ -74,12 +74,12 @@ jobs: url: ${{ steps.deployment.outputs.page_url }} steps: - name: Download artifact from build job - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: viewer - name: Setup Pages - uses: actions/configure-pages@v3 + uses: actions/configure-pages@v4 - name: Upload artifact uses: actions/upload-pages-artifact@v1 From 077af2c9ff57fe6dfcb15d77c692f3d010c8dc1f Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:32:07 +0100 Subject: [PATCH 41/76] fix ci errors Signed-off-by: Mirko Mollik --- .github/workflows/count.yml | 2 +- .github/workflows/main.yml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/count.yml b/.github/workflows/count.yml index b539367..8860105 100644 --- a/.github/workflows/count.yml +++ b/.github/workflows/count.yml @@ -26,7 +26,7 @@ jobs: - name: Create JSON file run: | mkdir values - echo "{ \"schemaVersion\": 1, \"label\": \"Profiles\", \"message\": \"${{ steps.file_count.outputs.wallet-count }}\", \"color\": \"green\" }" > values/profiles.json + echo "{ \"schemaVersion\": 1, \"label\": \"Wallets\", \"message\": \"${{ steps.file_count.outputs.wallet-count }}\", \"color\": \"green\" }" > values/wallets.json # Deploy to local repo - name: Deploy diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 032d501..537e4ad 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -66,7 +66,6 @@ jobs: publish: # only run on the main branch - # if: github.ref == 'refs/heads/main' needs: [validate, build] runs-on: ubuntu-latest environment: From 3fcbf7891a9d6b7149baca2a39c6c7aee4191be8 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:37:38 +0100 Subject: [PATCH 42/76] set correct version for upload artifact Signed-off-by: Mirko Mollik --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 537e4ad..6b1b65f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -59,7 +59,7 @@ jobs: run: cd viewer && npm run build -- --configuration production - name: upload artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: viewer path: viewer/dist/browser From 1708655b897e21527573a2330de0205bb7fa3086 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:41:46 +0100 Subject: [PATCH 43/76] fix dist path Signed-off-by: Mirko Mollik --- README.md | 2 +- viewer/angular.json | 21 +++++---------------- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index b2b6a05..0998a36 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ //TODO: set correct path to repo -![Wallets](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fopenwallet-foundation%2Fcredential-format-comparison-sig%2Fbadge-info%2Fprofiles.json) +![Wallets](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fcre8%2Fdigital-wallet-and-agent-overviews-sig%2Fbadge-info%2Fwallets.json) # Digital Wallet and Agent Overviews Special Interest Group (SIG) diff --git a/viewer/angular.json b/viewer/angular.json index 4d68b65..0c3516d 100644 --- a/viewer/angular.json +++ b/viewer/angular.json @@ -17,18 +17,13 @@ "build": { "builder": "@angular-devkit/build-angular:application", "options": { - "outputPath": "dist/viewer", + "outputPath": "dist", "index": "src/index.html", "browser": "src/main.ts", - "polyfills": [ - "zone.js" - ], + "polyfills": ["zone.js"], "tsConfig": "tsconfig.app.json", "inlineStyleLanguage": "scss", - "assets": [ - "src/favicon.ico", - "src/assets" - ], + "assets": ["src/favicon.ico", "src/assets"], "styles": [ "@angular/material/prebuilt-themes/indigo-pink.css", "src/styles.scss" @@ -86,16 +81,10 @@ "test": { "builder": "@angular-devkit/build-angular:karma", "options": { - "polyfills": [ - "zone.js", - "zone.js/testing" - ], + "polyfills": ["zone.js", "zone.js/testing"], "tsConfig": "tsconfig.spec.json", "inlineStyleLanguage": "scss", - "assets": [ - "src/favicon.ico", - "src/assets" - ], + "assets": ["src/favicon.ico", "src/assets"], "styles": [ "@angular/material/prebuilt-themes/indigo-pink.css", "src/styles.scss" From 4da4be8708d2eab47f0961ddb5f7dd9bd7b2435f Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:42:48 +0100 Subject: [PATCH 44/76] increase build warnings Signed-off-by: Mirko Mollik --- viewer/angular.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/viewer/angular.json b/viewer/angular.json index 0c3516d..61d52b9 100644 --- a/viewer/angular.json +++ b/viewer/angular.json @@ -35,8 +35,8 @@ "budgets": [ { "type": "initial", - "maximumWarning": "500kb", - "maximumError": "1mb" + "maximumWarning": "1mb", + "maximumError": "2mb" }, { "type": "anyComponentStyle", From bcd0ccbc902c06517cc50c97cc3b6e18c7be9bf8 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:44:13 +0100 Subject: [PATCH 45/76] set correct basehref Signed-off-by: Mirko Mollik --- viewer/angular.json | 1 + 1 file changed, 1 insertion(+) diff --git a/viewer/angular.json b/viewer/angular.json index 61d52b9..8b705a1 100644 --- a/viewer/angular.json +++ b/viewer/angular.json @@ -32,6 +32,7 @@ }, "configurations": { "production": { + "baseHref": "/digital-wallet-and-agent-overviews-sig/", "budgets": [ { "type": "initial", From d9029be601081e18ba6b110365f002edfdee99ba Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:44:39 +0100 Subject: [PATCH 46/76] remove angular icon Signed-off-by: Mirko Mollik --- viewer/angular.json | 2 +- viewer/src/favicon.ico | Bin 15086 -> 0 bytes 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 viewer/src/favicon.ico diff --git a/viewer/angular.json b/viewer/angular.json index 8b705a1..5ec2972 100644 --- a/viewer/angular.json +++ b/viewer/angular.json @@ -23,7 +23,7 @@ "polyfills": ["zone.js"], "tsConfig": "tsconfig.app.json", "inlineStyleLanguage": "scss", - "assets": ["src/favicon.ico", "src/assets"], + "assets": ["src/assets"], "styles": [ "@angular/material/prebuilt-themes/indigo-pink.css", "src/styles.scss" diff --git a/viewer/src/favicon.ico b/viewer/src/favicon.ico deleted file mode 100644 index 57614f9c967596fad0a3989bec2b1deff33034f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15086 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 Nr__JTFzvMr^FKp4S3v*( From d94cd98372d489c715dad0912f027cc18d10cd02 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:46:24 +0100 Subject: [PATCH 47/76] set correct fetch path Signed-off-by: Mirko Mollik --- viewer/src/app/app.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/viewer/src/app/app.component.ts b/viewer/src/app/app.component.ts index a15e021..220ae79 100644 --- a/viewer/src/app/app.component.ts +++ b/viewer/src/app/app.component.ts @@ -50,7 +50,7 @@ export class AppComponent implements OnInit, AfterViewInit { async ngOnInit(): Promise { const wallets = await firstValueFrom( - this.httpClient.get('/assets/wallets.json') + this.httpClient.get('assets/wallets.json') ); this.dataSource.data = wallets; this.displayedColumns = this.columns; From ccfc26c5938d3eed52ef0a1e70ce16309c102b66 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:48:39 +0100 Subject: [PATCH 48/76] add some comments Signed-off-by: Mirko Mollik --- viewer/src/app/app.component.ts | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/viewer/src/app/app.component.ts b/viewer/src/app/app.component.ts index 220ae79..e38215a 100644 --- a/viewer/src/app/app.component.ts +++ b/viewer/src/app/app.component.ts @@ -33,21 +33,28 @@ import { FlexLayoutModule } from '@ngbracket/ngx-layout'; templateUrl: './app.component.html', styleUrl: './app.component.scss', }) +/** + * The main component of the application + */ export class AppComponent implements OnInit, AfterViewInit { - updatedAt!: Date; - + //reference to the MatTableDataSource dataSource = new MatTableDataSource(); - + // columns that should be displayed in the table columns: string[] = ['wallet', 'company', 'openSource', 'linkToApp']; + //reference to the paginator to be added to the table @ViewChild(MatPaginator) paginator!: MatPaginator; - + //reference to the sort to be added to the table @ViewChild(MatSort) sort!: MatSort; + //columns to be displayed in the table, not implemeneted yet displayedColumns: string[] = []; constructor(private httpClient: HttpClient) {} + /** + * Fetches the wallets from the json file and sets the dataSource to the wallets + */ async ngOnInit(): Promise { const wallets = await firstValueFrom( this.httpClient.get('assets/wallets.json') @@ -56,6 +63,9 @@ export class AppComponent implements OnInit, AfterViewInit { this.displayedColumns = this.columns; } + /** + * After the view has been initialized, set the sort and paginator to the dataSource + */ ngAfterViewInit(): void { this.dataSource.sort = this.sort; this.dataSource.paginator = this.paginator; From 0d6c292a627db3b3b94174bd688c9394511c54e6 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 00:54:06 +0100 Subject: [PATCH 49/76] add info panel Signed-off-by: Mirko Mollik --- viewer/src/app/app.component.html | 1 + viewer/src/app/app.component.ts | 9 ++++++++- viewer/src/app/info/info.component.html | 11 +++++++++++ viewer/src/app/info/info.component.scss | 0 viewer/src/app/info/info.component.spec.ts | 23 ++++++++++++++++++++++ viewer/src/app/info/info.component.ts | 12 +++++++++++ 6 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 viewer/src/app/info/info.component.html create mode 100644 viewer/src/app/info/info.component.scss create mode 100644 viewer/src/app/info/info.component.spec.ts create mode 100644 viewer/src/app/info/info.component.ts diff --git a/viewer/src/app/app.component.html b/viewer/src/app/app.component.html index d216ae4..c605fcd 100644 --- a/viewer/src/app/app.component.html +++ b/viewer/src/app/app.component.html @@ -1,6 +1,7 @@ Digital Wallet and agent overview
+
Info + +

This is a project to create a digital wallet and agent overviews SIG.

+

+ The goal is to create a set of overviews that can be used to understand the + digital wallet and agent landscape. +

+
+ + diff --git a/viewer/src/app/info/info.component.scss b/viewer/src/app/info/info.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/viewer/src/app/info/info.component.spec.ts b/viewer/src/app/info/info.component.spec.ts new file mode 100644 index 0000000..2064c5e --- /dev/null +++ b/viewer/src/app/info/info.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { InfoComponent } from './info.component'; + +describe('InfoComponent', () => { + let component: InfoComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [InfoComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(InfoComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/viewer/src/app/info/info.component.ts b/viewer/src/app/info/info.component.ts new file mode 100644 index 0000000..ec29f76 --- /dev/null +++ b/viewer/src/app/info/info.component.ts @@ -0,0 +1,12 @@ +import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatDialogModule } from '@angular/material/dialog'; + +@Component({ + selector: 'app-info', + standalone: true, + imports: [MatDialogModule, MatButtonModule], + templateUrl: './info.component.html', + styleUrl: './info.component.scss', +}) +export class InfoComponent {} From c1e94b3f3fb7ca40107144854e0518cdc758f96e Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 14:38:06 +0100 Subject: [PATCH 50/76] include show page for wallets Signed-off-by: Mirko Mollik --- viewer/angular.json | 5 +- viewer/src/app/app.component.html | 104 +--------- viewer/src/app/app.component.scss | 8 - viewer/src/app/app.component.ts | 68 +------ viewer/src/app/app.routes.ts | 13 +- viewer/src/app/types.ts | 116 ++++------- .../wallets-list/wallets-list.component.html | 188 ++++++++++++++++++ .../wallets-list/wallets-list.component.scss | 3 + .../wallets-list.component.spec.ts | 23 +++ .../wallets-list/wallets-list.component.ts | 80 ++++++++ .../wallets-show/wallets-show.component.html | 93 +++++++++ .../wallets-show/wallets-show.component.scss | 28 +++ .../wallets-show.component.spec.ts | 23 +++ .../wallets-show/wallets-show.component.ts | 55 +++++ viewer/src/app/wallets.service.spec.ts | 16 ++ viewer/src/app/wallets.service.ts | 21 ++ viewer/src/assets/app-store-badge.svg | 82 ++++++++ viewer/src/assets/google-play-badge.svg | 125 ++++++++++++ viewer/src/theme.scss | 24 +++ 19 files changed, 817 insertions(+), 258 deletions(-) create mode 100644 viewer/src/app/wallets-list/wallets-list.component.html create mode 100644 viewer/src/app/wallets-list/wallets-list.component.scss create mode 100644 viewer/src/app/wallets-list/wallets-list.component.spec.ts create mode 100644 viewer/src/app/wallets-list/wallets-list.component.ts create mode 100644 viewer/src/app/wallets-show/wallets-show.component.html create mode 100644 viewer/src/app/wallets-show/wallets-show.component.scss create mode 100644 viewer/src/app/wallets-show/wallets-show.component.spec.ts create mode 100644 viewer/src/app/wallets-show/wallets-show.component.ts create mode 100644 viewer/src/app/wallets.service.spec.ts create mode 100644 viewer/src/app/wallets.service.ts create mode 100644 viewer/src/assets/app-store-badge.svg create mode 100644 viewer/src/assets/google-play-badge.svg create mode 100644 viewer/src/theme.scss diff --git a/viewer/angular.json b/viewer/angular.json index 5ec2972..788cbdf 100644 --- a/viewer/angular.json +++ b/viewer/angular.json @@ -24,10 +24,7 @@ "tsConfig": "tsconfig.app.json", "inlineStyleLanguage": "scss", "assets": ["src/assets"], - "styles": [ - "@angular/material/prebuilt-themes/indigo-pink.css", - "src/styles.scss" - ], + "styles": ["src/theme.scss", "src/styles.scss"], "scripts": [] }, "configurations": { diff --git a/viewer/src/app/app.component.html b/viewer/src/app/app.component.html index c605fcd..d5f7a19 100644 --- a/viewer/src/app/app.component.html +++ b/viewer/src/app/app.component.html @@ -10,106 +10,4 @@ >
- -
-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - -
- Name - -
- - {{ element.name }} -
-
- Company - - {{ element.company }} - - Open Source - - {{ element.openSource }} - - Link to app - - android - phone_iphone -
-
-
- - + diff --git a/viewer/src/app/app.component.scss b/viewer/src/app/app.component.scss index 302fe19..07abdbd 100644 --- a/viewer/src/app/app.component.scss +++ b/viewer/src/app/app.component.scss @@ -12,11 +12,3 @@ align-items: center; } } - -.router-link-active { - background-color: rgba(0,0,0,.2) -} - -.logo { - height: 40px; -} diff --git a/viewer/src/app/app.component.ts b/viewer/src/app/app.component.ts index 45cf792..3129138 100644 --- a/viewer/src/app/app.component.ts +++ b/viewer/src/app/app.component.ts @@ -1,78 +1,24 @@ -import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core'; +import { Component } from '@angular/core'; import { CommonModule } from '@angular/common'; import { RouterModule, RouterOutlet } from '@angular/router'; import { MatToolbarModule } from '@angular/material/toolbar'; -import { MatTableDataSource, MatTableModule } from '@angular/material/table'; -import { MatButtonModule } from '@angular/material/button'; -import { HttpClient, HttpClientModule } from '@angular/common/http'; -import { firstValueFrom } from 'rxjs'; -import { Wallet } from './types'; -import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator'; -import { MatSort, MatSortModule } from '@angular/material/sort'; -import { MatIconModule } from '@angular/material/icon'; -import { MatTooltipModule } from '@angular/material/tooltip'; -import { FlexLayoutModule } from '@ngbracket/ngx-layout'; -import { MatDialog, MatDialogModule } from '@angular/material/dialog'; +import { HttpClientModule } from '@angular/common/http'; +import { MatDialog } from '@angular/material/dialog'; import { InfoComponent } from './info/info.component'; +import { MatButtonModule } from '@angular/material/button'; @Component({ selector: 'app-root', standalone: true, - imports: [ - RouterModule, - HttpClientModule, - CommonModule, - RouterOutlet, - MatToolbarModule, - MatTableModule, - MatButtonModule, - MatIconModule, - MatPaginatorModule, - MatTooltipModule, - MatSortModule, - FlexLayoutModule, - MatDialogModule, - ], + imports: [RouterModule, CommonModule, MatToolbarModule, MatButtonModule], templateUrl: './app.component.html', styleUrl: './app.component.scss', }) /** * The main component of the application */ -export class AppComponent implements OnInit, AfterViewInit { - //reference to the MatTableDataSource - dataSource = new MatTableDataSource(); - // columns that should be displayed in the table - columns: string[] = ['wallet', 'company', 'openSource', 'linkToApp']; - - //reference to the paginator to be added to the table - @ViewChild(MatPaginator) paginator!: MatPaginator; - //reference to the sort to be added to the table - @ViewChild(MatSort) sort!: MatSort; - - //columns to be displayed in the table, not implemeneted yet - displayedColumns: string[] = []; - - constructor(private httpClient: HttpClient, private dialog: MatDialog) {} - - /** - * Fetches the wallets from the json file and sets the dataSource to the wallets - */ - async ngOnInit(): Promise { - const wallets = await firstValueFrom( - this.httpClient.get('assets/wallets.json') - ); - this.dataSource.data = wallets; - this.displayedColumns = this.columns; - } - - /** - * After the view has been initialized, set the sort and paginator to the dataSource - */ - ngAfterViewInit(): void { - this.dataSource.sort = this.sort; - this.dataSource.paginator = this.paginator; - } +export class AppComponent { + constructor(private dialog: MatDialog) {} showInfo() { this.dialog.open(InfoComponent); diff --git a/viewer/src/app/app.routes.ts b/viewer/src/app/app.routes.ts index dc39edb..dbd1c53 100644 --- a/viewer/src/app/app.routes.ts +++ b/viewer/src/app/app.routes.ts @@ -1,3 +1,14 @@ import { Routes } from '@angular/router'; +import { WalletsListComponent } from './wallets-list/wallets-list.component'; +import { WalletsShowComponent } from './wallets-show/wallets-show.component'; -export const routes: Routes = []; +export const routes: Routes = [ + { + path: '', + component: WalletsListComponent, + }, + { + path: ':id', + component: WalletsShowComponent, + }, +]; diff --git a/viewer/src/app/types.ts b/viewer/src/app/types.ts index 1a297d1..e4ff4f0 100644 --- a/viewer/src/app/types.ts +++ b/viewer/src/app/types.ts @@ -1,85 +1,39 @@ export interface Wallet { - aip: Aip; - api: Aip; - blockchainPurpose: string; - blockchainType: string; - blockchainUsed: Aip; - company: string; - connectionTypes: string; - credExchangeProtocol: string; - credentialFormat: string; - cryptoAgility: Aip; - ddip: Aip; - deepLinking: Aip; - deployment: Aip; - downloadSource?: Aip; - eassi: Eassi; - ebsi: Aip; - encodingScheme: string; - hardwareSupport: Aip; - holderCapability: Aip; - identifierHolder: string; - identifierIssuer: string; - issuerCapability: Aip; - keyHistoryHolder: Aip; - keyHistoryIssuer: Aip; - keyRotationHolder: Aip; - keyRotationIssuer: Aip; - logo: string; - mdoc: Mdoc; + // name of the wallet name: string; - observability: Aip; - offlineFriendly: Aip; - openSource: string; - organisationalWallet: OrganisationalWallet; - peer2PeerProtocols: string; - portability: Aip; - predicates: Aip; - quantumSafe: Aip; - revocationAlgorithm: string; - scope: Scope; - selectiveDisclosure: Aip; - signatureAlgorithm: string; - support: Support; - urlAppStore: string; - urlGooglePlayStore: string; - urlWebApp: string; + // url to the website of the wallet with more information urlWebsite: string; - verifierCapability: Aip; - verifierUnlinkability: Aip; -} - -export enum Aip { - DependingOn = 'Depending on ...', - Empty = '-', - No = 'No', - Yes = 'Yes', - YesImplemntationAccordingToARF = 'Yes, implemntation according to ARF', - YesNFCHWW = 'Yes, NFC HWW', -} - -export enum Eassi { - No = 'No', - Soon = 'Soon', - Yes = 'Yes', -} - -export enum Mdoc { - Empty = '-', - Planned = 'Planned', -} - -export enum OrganisationalWallet { - Empty = '-', - YesButBrandedAsEnterpriseWalletPlatformByIGrantIo = 'Yes, but branded as Enterprise Wallet Platform by iGrant.io', -} - -export enum Scope { - Empty = '-', - TravelHospitalityAccessControl = 'Travel, Hospitality, Access Control', -} - -export enum Support { - Empty = '-', - SupportIgrantIo = 'support@igrant.io', + // url to the logo of the wallet + logo?: string; + // name of the company. In case it's a community project, the name of the community + company: string; + // url to the company, not the url to the product + companyUrl?: string; + //provide a link to a contact formular or insert an email address for support requests + contact?: string; + // is the wallet open source + openSource: boolean; + // if the wallet is open source, provide the url to the source code, like a github link + downloadSource?: string; + // add the license of the wallet. In case you have multiple licences, add them here. + license?: string; + // is the wallet capable of the holder role + holderCapability?: boolean; + // is the wallet capable of the issuer role + issuerCapability?: boolean; + // is the wallet capable of the verifier role + verifierCapability?: boolean; + // it is a cloud or mobile wallet + type?: 'cloud' | 'mobile'; + // am I able to export my data from the wallet/agent and import them into another device/system + portability?: boolean; + // link to the app store from apple + urlAppStore?: string; + // link to the play store from google + urlGooglePlayStore?: string; + // link to the web app in case it's not a mobile wallet + urlWebApp?: string; + //TODO: do we need a link to the windows play store in case you can download it from the windows store? + // which profiles from the credential profile comparison SIG are supported + profiles?: string[]; } diff --git a/viewer/src/app/wallets-list/wallets-list.component.html b/viewer/src/app/wallets-list/wallets-list.component.html new file mode 100644 index 0000000..e7c02e2 --- /dev/null +++ b/viewer/src/app/wallets-list/wallets-list.component.html @@ -0,0 +1,188 @@ +
+
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Name + + + + Company + + {{ element.company }} + {{ element.company }} + + Open Source + + {{ element.openSource }} + + Link to app + + android + phone_iphone + desktop_windows + + License + + {{ element.license }} + + Capability + + Holder + Issuer + Verifier + + Type + + {{ element.type }} + + Portability + + {{ element.portability }} + + Supported profiles + + + {{ profile }} + +
+
+
+ + diff --git a/viewer/src/app/wallets-list/wallets-list.component.scss b/viewer/src/app/wallets-list/wallets-list.component.scss new file mode 100644 index 0000000..ed74c80 --- /dev/null +++ b/viewer/src/app/wallets-list/wallets-list.component.scss @@ -0,0 +1,3 @@ +.logo { + height: 40px; +} diff --git a/viewer/src/app/wallets-list/wallets-list.component.spec.ts b/viewer/src/app/wallets-list/wallets-list.component.spec.ts new file mode 100644 index 0000000..32339f9 --- /dev/null +++ b/viewer/src/app/wallets-list/wallets-list.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { WalletsListComponent } from './wallets-list.component'; + +describe('WalletsListComponent', () => { + let component: WalletsListComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [WalletsListComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(WalletsListComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/viewer/src/app/wallets-list/wallets-list.component.ts b/viewer/src/app/wallets-list/wallets-list.component.ts new file mode 100644 index 0000000..99651e8 --- /dev/null +++ b/viewer/src/app/wallets-list/wallets-list.component.ts @@ -0,0 +1,80 @@ +import { HttpClientModule } from '@angular/common/http'; +import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatDialogModule } from '@angular/material/dialog'; +import { MatIconModule } from '@angular/material/icon'; +import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator'; +import { MatSort, MatSortModule } from '@angular/material/sort'; +import { MatTableDataSource, MatTableModule } from '@angular/material/table'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { FlexLayoutModule } from '@ngbracket/ngx-layout'; +import { Wallet } from '../types'; +import { WalletsService } from '../wallets.service'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { MatChipsModule } from '@angular/material/chips'; + +@Component({ + selector: 'app-wallets-list', + standalone: true, + imports: [ + CommonModule, + RouterModule, + HttpClientModule, + MatTableModule, + MatButtonModule, + MatIconModule, + MatPaginatorModule, + MatTooltipModule, + MatSortModule, + FlexLayoutModule, + MatDialogModule, + MatChipsModule, + ], + providers: [WalletsService], + templateUrl: './wallets-list.component.html', + styleUrl: './wallets-list.component.scss', +}) +export class WalletsListComponent implements OnInit, AfterViewInit { + //reference to the MatTableDataSource + dataSource = new MatTableDataSource(); + // columns that should be displayed in the table + columns: string[] = [ + 'wallet', + 'company', + 'type', + 'openSource', + 'license', + 'capability', + 'portability', + 'linkToApp', + 'profiles', + ]; + + //reference to the paginator to be added to the table + @ViewChild(MatPaginator) paginator!: MatPaginator; + //reference to the sort to be added to the table + @ViewChild(MatSort) sort!: MatSort; + + //columns to be displayed in the table, not implemeneted yet + displayedColumns: string[] = []; + + constructor(private walletsService: WalletsService) {} + + /** + * Fetches the wallets from the json file and sets the dataSource to the wallets + */ + async ngOnInit(): Promise { + const wallets = await this.walletsService.loadWallets(); + this.dataSource.data = wallets; + this.displayedColumns = this.columns; + } + + /** + * After the view has been initialized, set the sort and paginator to the dataSource + */ + ngAfterViewInit(): void { + this.dataSource.sort = this.sort; + this.dataSource.paginator = this.paginator; + } +} diff --git a/viewer/src/app/wallets-show/wallets-show.component.html b/viewer/src/app/wallets-show/wallets-show.component.html new file mode 100644 index 0000000..cf10f64 --- /dev/null +++ b/viewer/src/app/wallets-show/wallets-show.component.html @@ -0,0 +1,93 @@ +
+ Back to overview +
+
+

{{ wallet.name }}

+ +
+ Google Play Store + Google Play Store +
+
+ +
+ +
+ + +
Open Source
+
+ {{ wallet.openSource }} +
+ {{ wallet.openSource }} +
+ +
License
+
{{ wallet.license ?? 'unknown' }}
+
+ +
Type
+
{{ wallet.type }}
+
+ +
Portability
+
{{ wallet.portability ?? 'unknown' }}
+
+
+ + +
Holder capability
+
{{ wallet.holderCapability ?? 'unknown' }}
+
+ +
Issuer capability
+
{{ wallet.issuerCapability ?? 'unknown' }}
+
+ +
Verifier capability
+
{{ wallet.verifierCapability ?? 'unknown' }}
+
+
+
+

Supported Credential profiles (placeholders)

+ + + {{ profile }} + + +
diff --git a/viewer/src/app/wallets-show/wallets-show.component.scss b/viewer/src/app/wallets-show/wallets-show.component.scss new file mode 100644 index 0000000..54ec065 --- /dev/null +++ b/viewer/src/app/wallets-show/wallets-show.component.scss @@ -0,0 +1,28 @@ +.content { + max-width: 600px; + margin: 20px auto 0 auto; +} + +.wallet { + padding: 50px 0; +} + +a { + text-decoration: none; +} + +.company { + font-weight: bold; +} + +a:hover { + text-decoration: underline; +} + +.logo { + max-height: 200px; + max-width: 50%; + border-radius: 20px; + // make a shadow for the box + box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.2); +} diff --git a/viewer/src/app/wallets-show/wallets-show.component.spec.ts b/viewer/src/app/wallets-show/wallets-show.component.spec.ts new file mode 100644 index 0000000..3b2eeca --- /dev/null +++ b/viewer/src/app/wallets-show/wallets-show.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { WalletsShowComponent } from './wallets-show.component'; + +describe('WalletsShowComponent', () => { + let component: WalletsShowComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [WalletsShowComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(WalletsShowComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/viewer/src/app/wallets-show/wallets-show.component.ts b/viewer/src/app/wallets-show/wallets-show.component.ts new file mode 100644 index 0000000..abdda33 --- /dev/null +++ b/viewer/src/app/wallets-show/wallets-show.component.ts @@ -0,0 +1,55 @@ +import { Component, OnInit } from '@angular/core'; +import { WalletsService } from '../wallets.service'; +import { ActivatedRoute, Router, RouterModule } from '@angular/router'; +import { Wallet } from '../types'; +import { CommonModule } from '@angular/common'; +import { HttpClientModule } from '@angular/common/http'; +import { MatSnackBar, MatSnackBarModule } from '@angular/material/snack-bar'; +import { FlexLayoutModule } from '@ngbracket/ngx-layout'; +import { MatIconModule } from '@angular/material/icon'; +import { MatButtonModule } from '@angular/material/button'; +import { MatListModule } from '@angular/material/list'; + +@Component({ + selector: 'app-wallets-show', + standalone: true, + imports: [ + CommonModule, + RouterModule, + MatSnackBarModule, + MatButtonModule, + HttpClientModule, + FlexLayoutModule, + MatIconModule, + MatListModule, + ], + providers: [WalletsService], + templateUrl: './wallets-show.component.html', + styleUrl: './wallets-show.component.scss', +}) +export class WalletsShowComponent implements OnInit { + supportedCredentialProfiles = ['AnonCreds with did:cheqd', 'ISO mDL']; + + wallet?: Wallet; + constructor( + private walletsService: WalletsService, + private route: ActivatedRoute, + private router: Router, + private snachBar: MatSnackBar + ) {} + + async ngOnInit(): Promise { + const id = this.route.snapshot.paramMap.get('id') as string; + this.wallet = await this.walletsService.find(id); + if (!this.wallet) { + this.router.navigate(['/']); + this.snachBar.open(`Wallet ${id} not found`, 'Close'); + } + } + + getSupport(value?: string) { + if (!value) return; + if (value.includes('@')) return `mailto:${value}`; + return value; + } +} diff --git a/viewer/src/app/wallets.service.spec.ts b/viewer/src/app/wallets.service.spec.ts new file mode 100644 index 0000000..6553220 --- /dev/null +++ b/viewer/src/app/wallets.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { WalletsService } from './wallets.service'; + +describe('WalletsService', () => { + let service: WalletsService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(WalletsService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/viewer/src/app/wallets.service.ts b/viewer/src/app/wallets.service.ts new file mode 100644 index 0000000..862ba76 --- /dev/null +++ b/viewer/src/app/wallets.service.ts @@ -0,0 +1,21 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { firstValueFrom } from 'rxjs'; +import { Wallet } from './types'; + +@Injectable({ + providedIn: 'root', +}) +export class WalletsService { + constructor(private httpClient: HttpClient) {} + + loadWallets() { + return firstValueFrom(this.httpClient.get('assets/wallets.json')); + } + + find(name: string) { + return this.loadWallets().then((wallets) => + wallets.find((wallet) => wallet.name === name) + ); + } +} diff --git a/viewer/src/assets/app-store-badge.svg b/viewer/src/assets/app-store-badge.svg new file mode 100644 index 0000000..51b23cc --- /dev/null +++ b/viewer/src/assets/app-store-badge.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/viewer/src/assets/google-play-badge.svg b/viewer/src/assets/google-play-badge.svg new file mode 100644 index 0000000..1b15604 --- /dev/null +++ b/viewer/src/assets/google-play-badge.svg @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/viewer/src/theme.scss b/viewer/src/theme.scss new file mode 100644 index 0000000..a831123 --- /dev/null +++ b/viewer/src/theme.scss @@ -0,0 +1,24 @@ +@use '@angular/material' as mat; + +@include mat.core(); + +$my-primary: mat.define-palette(mat.$indigo-palette, 500); +$my-accent: mat.define-palette(mat.$pink-palette, A200, A100, A400); + +// The "warn" palette is optional and defaults to red if not specified. +$my-warn: mat.define-palette(mat.$red-palette); + +$my-theme: mat.define-light-theme(( + color: ( + primary: $my-primary, + accent: $my-accent, + ), + typography: mat.define-typography-config(), + density: 0, +)); + +@include mat.all-component-themes($my-theme); + +a { + color: mat.get-theme-color($my-theme, primary); +} From f2a35085141e9e78ab9ebaa70c13627afd529939 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 14:42:57 +0100 Subject: [PATCH 51/76] update info Signed-off-by: Mirko Mollik --- viewer/src/app/app.component.html | 2 +- viewer/src/app/info/info.component.html | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/viewer/src/app/app.component.html b/viewer/src/app/app.component.html index d5f7a19..6a37c25 100644 --- a/viewer/src/app/app.component.html +++ b/viewer/src/app/app.component.html @@ -1,5 +1,5 @@ - Digital Wallet and agent overview + Digital Wallet and Agent overview
diff --git a/viewer/src/app/info/info.component.html b/viewer/src/app/info/info.component.html index 62bb035..f602555 100644 --- a/viewer/src/app/info/info.component.html +++ b/viewer/src/app/info/info.component.html @@ -1,10 +1,20 @@

Info

-

This is a project to create a digital wallet and agent overviews SIG.

+

+ This is a project to create a digital wallet and agent overviews SIG by the + OpenWallet Foundation. +

The goal is to create a set of overviews that can be used to understand the digital wallet and agent landscape.

+

+ If you want to contact the authors or join the upcoming meetings click + here. +

Date: Sat, 3 Feb 2024 14:45:04 +0100 Subject: [PATCH 52/76] outcomment migration job Signed-off-by: Mirko Mollik --- viewer/scripts/merge-wallets.mjs | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/viewer/scripts/merge-wallets.mjs b/viewer/scripts/merge-wallets.mjs index b5743d1..c37cbbe 100644 --- a/viewer/scripts/merge-wallets.mjs +++ b/viewer/scripts/merge-wallets.mjs @@ -1,21 +1,21 @@ import { readdirSync, readFileSync, writeFileSync } from 'fs'; // function to parse the flattened_wallets.json and create individual wallet files -const w = JSON.parse(readFileSync('../flattened_wallets.json')); -w.forEach(element => { - element["$schema"] = "../schema.json"; +// const w = JSON.parse(readFileSync('../flattened_wallets.json')); +// w.forEach(element => { +// element["$schema"] = "../schema.json"; - const keys = Object.keys(element); - keys.forEach(key => { - if(element[key] === "") { - delete element[key]; - } - }); +// const keys = Object.keys(element); +// keys.forEach(key => { +// if(element[key] === "") { +// delete element[key]; +// } +// }); - //patch openSourceField to boolean - element.openSource = element.openSource === "Yes"; - writeFileSync(`../wallets/${element.name}.json`, JSON.stringify(element, null, 2)); -}); +// //patch openSourceField to boolean +// element.openSource = element.openSource === "Yes"; +// writeFileSync(`../wallets/${element.name}.json`, JSON.stringify(element, null, 2)); +// }); // function to merge all the individual wallet files into a single file const files = readdirSync('../wallets'); From 1bbcdd14232645880fafaa22ad53310f73bafb87 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Sat, 3 Feb 2024 14:57:47 +0100 Subject: [PATCH 53/76] make contact button optional Signed-off-by: Mirko Mollik --- viewer/src/app/wallets-show/wallets-show.component.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/viewer/src/app/wallets-show/wallets-show.component.html b/viewer/src/app/wallets-show/wallets-show.component.html index cf10f64..7588881 100644 --- a/viewer/src/app/wallets-show/wallets-show.component.html +++ b/viewer/src/app/wallets-show/wallets-show.component.html @@ -5,7 +5,9 @@

{{ wallet.name }}

Date: Thu, 8 Feb 2024 15:57:50 +0100 Subject: [PATCH 54/76] add dummy for credential formats Signed-off-by: Mirko Mollik --- schema.json | 113 ++++++++++++++---- viewer/src/app/types.ts | 4 +- .../wallets-show/wallets-show.component.html | 42 ++++--- .../wallets-show/wallets-show.component.ts | 7 +- viewer/src/app/wallets.service.ts | 13 ++ 5 files changed, 133 insertions(+), 46 deletions(-) diff --git a/schema.json b/schema.json index 11e50a6..5501fb0 100644 --- a/schema.json +++ b/schema.json @@ -1,29 +1,92 @@ { "$schema": "http://json-schema.org/draft-07/schema#", - "$ref": "#/definitions/Wallet", - "definitions": { - "Wallet": { - "type": "object", - "additionalProperties": true, - "properties": { - "$schema": { - "type": "string" - }, - "name": { - "type": "string", - "description": "The name of the wallet" - }, - "company": { - "type": "string", - "description": "The name of the company that created the wallet" - }, - "openSource": { - "type": "boolean", - "description": "Whether the wallet is open source or not" - } - }, - "required": ["$schema", "name"], - "title": "Wallet" + "title": "Wallet", + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "name of the wallet" + }, + "urlWebsite": { + "type": "string", + "description": "url to the website of the wallet with more information", + "format": "uri" + }, + "logo": { + "type": "string", + "description": "url to the logo of the wallet", + "format": "uri" + }, + "company": { + "type": "string", + "description": "name of the company. In case it's a community project, the name of the community" + }, + "companyUrl": { + "type": "string", + "description": "url to the company, not the url to the product", + "format": "uri" + }, + "contact": { + "type": "string", + "description": "provide a link to a contact formular or insert an email address for support requests" + }, + "openSource": { + "type": "boolean", + "description": "is the wallet open source" + }, + "downloadSource": { + "type": "string", + "description": "if the wallet is open source, provide the url to the source code, like a github link", + "format": "uri" + }, + "license": { + "type": "string", + "description": "add the license of the wallet. In case you have multiple licences, add them here." + }, + "holderCapability": { + "type": "boolean", + "description": "is the wallet capable of the holder role" + }, + "issuerCapability": { + "type": "boolean", + "description": "is the wallet capable of the issuer role" + }, + "verifierCapability": { + "type": "boolean", + "description": "is the wallet capable of the verifier role" + }, + "type": { + "type": "string", + "description": "it is a cloud or mobile wallet", + "enum": ["cloud", "mobile"] + }, + "portability": { + "type": "boolean", + "description": "am I able to export my data from the wallet/agent and import them into another device/system" + }, + "urlAppStore": { + "type": "string", + "description": "link to the app store from apple", + "format": "uri" + }, + "urlGooglePlayStore": { + "type": "string", + "description": "link to the play store from google", + "format": "uri" + }, + "urlWebApp": { + "type": "string", + "description": "link to the web app in case it's not a mobile wallet", + "format": "uri" + }, + "profiles": { + "type": "array", + "description": "which profiles from the credential profile comparison SIG are supported", + "items": { + "type": "string" + } } - } + }, + "required": ["name", "urlWebsite", "company", "openSource"], + "additionalProperties": false } diff --git a/viewer/src/app/types.ts b/viewer/src/app/types.ts index e4ff4f0..f96578e 100644 --- a/viewer/src/app/types.ts +++ b/viewer/src/app/types.ts @@ -35,5 +35,7 @@ export interface Wallet { urlWebApp?: string; //TODO: do we need a link to the windows play store in case you can download it from the windows store? // which profiles from the credential profile comparison SIG are supported - profiles?: string[]; + credentialProfiles?: string[]; + // which formats from the credential format comparison SIG are supported + credentialFormats?: string[]; } diff --git a/viewer/src/app/wallets-show/wallets-show.component.html b/viewer/src/app/wallets-show/wallets-show.component.html index 7588881..f12e82a 100644 --- a/viewer/src/app/wallets-show/wallets-show.component.html +++ b/viewer/src/app/wallets-show/wallets-show.component.html @@ -1,5 +1,5 @@
- Back to overview + arrow_back_ios diff --git a/viewer/src/app/wallets-show/wallets-show.component.ts b/viewer/src/app/wallets-show/wallets-show.component.ts index abdda33..eece575 100644 --- a/viewer/src/app/wallets-show/wallets-show.component.ts +++ b/viewer/src/app/wallets-show/wallets-show.component.ts @@ -28,11 +28,14 @@ import { MatListModule } from '@angular/material/list'; styleUrl: './wallets-show.component.scss', }) export class WalletsShowComponent implements OnInit { - supportedCredentialProfiles = ['AnonCreds with did:cheqd', 'ISO mDL']; + //dummy entries + supportedCredentialProfiles = ['HAIP', 'ISO mDL']; + + supportedCredentialFormats = ['MDOC']; wallet?: Wallet; constructor( - private walletsService: WalletsService, + public walletsService: WalletsService, private route: ActivatedRoute, private router: Router, private snachBar: MatSnackBar diff --git a/viewer/src/app/wallets.service.ts b/viewer/src/app/wallets.service.ts index 862ba76..c44553f 100644 --- a/viewer/src/app/wallets.service.ts +++ b/viewer/src/app/wallets.service.ts @@ -3,6 +3,8 @@ import { Injectable } from '@angular/core'; import { firstValueFrom } from 'rxjs'; import { Wallet } from './types'; +export type ResourceType = 'profile' | 'format'; + @Injectable({ providedIn: 'root', }) @@ -18,4 +20,15 @@ export class WalletsService { wallets.find((wallet) => wallet.name === name) ); } + + getLink(resourceType: ResourceType, key: string) { + const url = + 'https://openwallet-foundation.github.io/credential-format-comparison-sig/#'; + switch (resourceType) { + case 'profile': + return `${url}/profiles/${key}`; + case 'format': + return `${url}/resources/Credential%20Format/${key}`; + } + } } From 9b3f065a431eaddb2bbf45e07b9ca9fad133fba4 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Mon, 12 Feb 2024 13:41:50 +0100 Subject: [PATCH 55/76] add all entries for sig linking Signed-off-by: Mirko Mollik --- flattened_wallets.json | 1600 ----------------- schema.json | 77 +- viewer/package-lock.json | 60 + viewer/package.json | 8 +- viewer/scripts/merge-wallets.mjs | 17 - viewer/scripts/validate.mjs | 9 +- viewer/src/app/types.ts | 12 + .../wallets-list/wallets-list.component.html | 31 +- .../wallets-list/wallets-list.component.scss | 4 + .../wallets-list/wallets-list.component.ts | 7 +- .../wallets-show/wallets-show.component.html | 32 +- viewer/src/app/wallets.service.ts | 68 +- viewer/src/assets/logos/open-wallet.png | Bin 0 -> 6777 bytes wallets/example.json | 20 + 14 files changed, 281 insertions(+), 1664 deletions(-) delete mode 100644 flattened_wallets.json create mode 100644 viewer/src/assets/logos/open-wallet.png create mode 100644 wallets/example.json diff --git a/flattened_wallets.json b/flattened_wallets.json deleted file mode 100644 index b424c6f..0000000 --- a/flattened_wallets.json +++ /dev/null @@ -1,1600 +0,0 @@ -[ - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "AceBlock blockchain framework", - "blockchainUsed": "Yes", - "company": "AceBlock", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/aceid-wallet.png", - "mdoc": "", - "name": "AceID Wallet", - "observability": "", - "offlineFriendly": "", - "openSource": "", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "", - "blockchainUsed": "", - "company": "Apple", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/apple-wallet.png", - "mdoc": "", - "name": "Apple Wallet", - "observability": "", - "offlineFriendly": "", - "openSource": "", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Anchoring public DIDs for issuers and/or verifiers (ie: enabling trust registry)", - "blockchainType": "Cardano", - "blockchainUsed": "Yes", - "company": "IOHK", - "connectionTypes": "Connection-based communication", - "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "JWT-VC, soon:AnonCreds", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "No", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "JSON, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "", - "identifierHolder": "did:prism", - "identifierIssuer": "did:prism", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/atala-prism.png", - "mdoc": "", - "name": "Atala PRISM", - "observability": "", - "offlineFriendly": "", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "DIDComm", - "portability": "", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Revocation not supported, soon: Revocation List 2021", - "scope": "", - "selectiveDisclosure": "No", - "signatureAlgorithm": "ECDSA, soon: CL", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "", - "blockchainUsed": "", - "company": "Microsoft", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/authenticator.png", - "mdoc": "", - "name": "Authenticator", - "observability": "", - "offlineFriendly": "", - "openSource": "", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "", - "blockchainUsed": "", - "company": "Government of BC", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/bc-wallet.png", - "mdoc": "", - "name": "BC Wallet", - "observability": "", - "offlineFriendly": "", - "openSource": "", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "Bitcoin and Ethereum, with Merkle proof linking credential to blockchain transaction", - "blockchainUsed": "Yes", - "company": "Hyland Credentials (formerly: Learning Machine)", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/blockcerts-wallet.png", - "mdoc": "", - "name": "Blockcerts Wallet", - "observability": "", - "offlineFriendly": "", - "openSource": "Yes", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "Ethereum or Blockpass", - "blockchainUsed": "Yes", - "company": "Blockpass IDN", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/blockpass.png", - "mdoc": "", - "name": "Blockpass", - "observability": "", - "offlineFriendly": "", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Schema, CredentialDefinitions, DID, Revocation", - "blockchainType": "Hyperledger Indy", - "blockchainUsed": "Yes", - "company": "The Ego Company", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "AnonCred, JSON-LD", - "cryptoAgility": "No", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "", - "identifierHolder": "did:", - "identifierIssuer": "did:sov", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/certishare-wallet.png", - "mdoc": "", - "name": "CertiShare Wallet", - "observability": "No", - "offlineFriendly": "", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "DIDComm, DID Exchange Protocol, openID", - "portability": "", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "Yes", - "api": "", - "blockchainPurpose": "For publishing schema IDs, credential def IDs and public DID", - "blockchainType": "Hyperledger Indy, Ethereum, EBSI blockchain", - "blockchainUsed": "Yes", - "company": "iGrant.io", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange, DEXA", - "credentialFormat": "AnonCreds, JWT-VC, ICAO DTC, x.509", - "cryptoAgility": "No", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "Yes", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "", - "identifierHolder": "did:ebsi, did:key, link secrets, X.509", - "identifierIssuer": "did:ebsi, did:key, did:sov, X.509", - "issuerCapability": "", - "keyHistoryHolder": "Yes", - "keyHistoryIssuer": "Yes", - "keyRotationHolder": "Yes", - "keyRotationIssuer": "Yes", - "logo": "logos/data-wallet.png", - "mdoc": "Planned", - "name": "Data Wallet", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "No", - "organisationalWallet": "Yes, but branded as Enterprise Wallet Platform by iGrant.io", - "peer2PeerProtocols": "OIDC4VC, OIDC4VP, SIOPv2, DIDComm, DID Exchange Protocol, Connection protocols in AIP 1.0", - "portability": "", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation, EBSI revocation, W3C Status List 2021, SLTD database (travel and identity documents), CRL - certificate revocation list", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL, ES256, ECDSA", - "support": "support@igrant.io", - "urlAppStore": "https://apple.co/2Mz9nJp", - "urlGooglePlayStore": "https://play.google.com/store/apps/details?id=io.igrant.mobileagent", - "urlWebApp": "https://business.igrant.io/", - "urlWebsite": "https://igrant.io/datawallet.html", - "verifierCapability": "", - "verifierUnlinkability": "Yes" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "N/A", - "blockchainType": "N/A", - "blockchainUsed": "No", - "company": "Rabobank Nederland", - "connectionTypes": "Direct communication", - "credExchangeProtocol": "Datakeeper protocol (Verifiable Presentation)", - "credentialFormat": "LDP-VC", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "Yes", - "ebsi": "", - "encodingScheme": "JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "", - "identifierHolder": "did:eth", - "identifierIssuer": "did:eth", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/datakeeper.png", - "mdoc": "", - "name": "Datakeeper", - "observability": "No", - "offlineFriendly": "No", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "Datakeeper protocol", - "portability": "", - "predicates": "Depending on ...", - "quantumSafe": "No", - "revocationAlgorithm": "Validity credential, Revocation not supported", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "ECDSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "", - "blockchainUsed": "", - "company": "Thales", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/digital-id-wallet.png", - "mdoc": "", - "name": "Digital ID Wallet", - "observability": "", - "offlineFriendly": "", - "openSource": "", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "N/A", - "blockchainType": "N/A", - "blockchainUsed": "No", - "company": "esatus AG", - "connectionTypes": "Connection-based communication", - "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "AnonCred", - "cryptoAgility": "No", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "Yes", - "ebsi": "", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "", - "identifierHolder": "Link secret", - "identifierIssuer": "Link secret", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/esatus-wallet.png", - "mdoc": "", - "name": "esatus Wallet", - "observability": "No", - "offlineFriendly": "No", - "openSource": "A new version of the wallet - called SOWL wallet - will be available soon, together with an open source wallet SDK on which SOWL Wallet is based.", - "organisationalWallet": "", - "peer2PeerProtocols": "DIDComm", - "portability": "", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL", - "support": "", - "urlAppStore": "https://apps.apple.com/us/app/esatus-wallet/id1496769057?itsct=apps_box&itscg=30200", - "urlGooglePlayStore": "https://play.google.com/store/apps/details?id=com.esatus.wallet&hl=de_DE&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1", - "urlWebApp": "", - "urlWebsite": "https://esatus.com/index.html%3Fp=7663&lang=en.html", - "verifierCapability": "", - "verifierUnlinkability": "Yes" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "To anchor DIDs (legal entities), and to anchor the trust framework", - "blockchainType": "We are agnostic to the infra, so the platform right now supports Ethereum, Fabric and EBSI", - "blockchainUsed": "Yes", - "company": "Gataca Inc.", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "LDP-VC, JTW-VC", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "JSON-LD", - "hardwareSupport": "No", - "holderCapability": "", - "identifierHolder": "did:key", - "identifierIssuer": "did:gatc", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/gataca.png", - "mdoc": "", - "name": "Gataca", - "observability": "Yes", - "offlineFriendly": "Yes, implemntation according to ARF", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "OIDC, SIOP", - "portability": "", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Status List 2017, Status List 2021", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "EdDSA, RSA, secp256k, P-256, CadEs", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Anchor DID & DID Documents", - "blockchainType": "Depending on DID method", - "blockchainUsed": "Yes", - "company": "Gimly", - "connectionTypes": "Direct communication, Connection-based communication, Direct NFC-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "JWT, JWT-VC, LDP-VC", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "Yes, NFC HWW", - "holderCapability": "", - "identifierHolder": "did:ethr, did:ion, did:web, did:jwk, did:key", - "identifierIssuer": "did:web, did:ion, did:key, did:jwk", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/Gimly-wallet.png", - "mdoc": "", - "name": "Tap ID", - "observability": "", - "offlineFriendly": "Yes", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "OIDC, SIOP, DIDComm", - "portability": "", - "predicates": "No", - "quantumSafe": "", - "revocationAlgorithm": "Status List 2021", - "scope": "Travel, Hospitality, Access Control", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+, ECDSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "https://www.gimly.io", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "No personal data", - "blockchainType": "public permissioned Ethereum, IPFS", - "blockchainUsed": "Yes", - "company": "Blockchain Helix AG", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "JWT, JWT-VC", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "compact and JSON serialization, JSON, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "", - "identifierHolder": "did:key, ENS, did:eth", - "identifierIssuer": "did:key, ENS, did:eth", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/helix-id.png", - "mdoc": "", - "name": "helix id", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "partly open sourced", - "organisationalWallet": "", - "peer2PeerProtocols": "OIDC, DIDComm, DID Exchange Protocol", - "portability": "", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "DID Revocation", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+, ECDSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "", - "blockchainUsed": "", - "company": "IDEMIA Group", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/idema.png", - "mdoc": "", - "name": "IDEMIA Mobile ID", - "observability": "", - "offlineFriendly": "", - "openSource": "", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "", - "blockchainUsed": "", - "company": "", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/idento-one.png", - "mdoc": "", - "name": "idento.one", - "observability": "", - "offlineFriendly": "", - "openSource": "", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Authorization, Credentials Schemas, Revocation registry", - "blockchainType": "HyperLedger Indy", - "blockchainUsed": "Yes", - "company": "", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "Present Proof Protocol", - "credentialFormat": "AnonCred", - "cryptoAgility": "No", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "", - "identifierHolder": "did:sov", - "identifierIssuer": "did:sov", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/identry.png", - "mdoc": "", - "name": "Identry", - "observability": "No", - "offlineFriendly": "", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "DIDComm", - "portability": "", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "Yes" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "Blockchain network based on Ethereum", - "blockchainUsed": "Yes", - "company": "KayTrust", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/kaytrust-wallet.png", - "mdoc": "", - "name": "KayTrust Wallet", - "observability": "", - "offlineFriendly": "", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Decentralized Public Key Infrastructure", - "blockchainType": "Hyperledger Indy", - "blockchainUsed": "Yes", - "company": "main incubator GmbH", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, soon: OpenID4VCI and OpenID4VP", - "credentialFormat": "AnonCred", - "cryptoAgility": "No", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "Soon", - "ebsi": "", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "", - "identifierHolder": "Link secret", - "identifierIssuer": "did:sovrin (did:indy)", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/lissi-wallet.png", - "mdoc": "", - "name": "Lissi Wallet", - "observability": "No", - "offlineFriendly": "", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "DIDComm", - "portability": "", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "Yes" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Storing public keys", - "blockchainType": "ION - if ION DID menthod used", - "blockchainUsed": "Yes", - "company": "Mattr Limited", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI", - "credentialFormat": "LDP-VC", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "JSON-LD", - "hardwareSupport": "No", - "holderCapability": "", - "identifierHolder": "did:key", - "identifierIssuer": "did:web, did:ion, did:key", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/mattr-wallet.png", - "mdoc": "", - "name": "MATTR Wallet", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "OIDC, DIDComm", - "portability": "", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "RevocationList2020", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+, EdDSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "", - "blockchainType": "", - "blockchainUsed": "", - "company": "Microsoft", - "connectionTypes": "", - "credExchangeProtocol": "", - "credentialFormat": "", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "", - "identifierIssuer": "", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/microsoft-entra.png", - "mdoc": "", - "name": "Microsoft Entra", - "observability": "", - "offlineFriendly": "", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "", - "portability": "", - "predicates": "", - "quantumSafe": "", - "revocationAlgorithm": "", - "scope": "", - "selectiveDisclosure": "", - "signatureAlgorithm": "", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Scale up for DID", - "blockchainType": "Metadium", - "blockchainUsed": "Yes", - "company": "Metadium Technology Inc", - "connectionTypes": "Direct communication", - "credExchangeProtocol": "N/A", - "credentialFormat": "JWT, JWT-VC", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "compact and JSON serialization, JSON, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "", - "identifierHolder": "Raw public key", - "identifierIssuer": "Raw public key", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/mykeepin.png", - "mdoc": "", - "name": "MYKEEPiN", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "N/A", - "portability": "", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Non-revocation token", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "ECDSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "N/A", - "blockchainType": "N/A", - "blockchainUsed": "No", - "company": "Animo Solutions", - "connectionTypes": "Direct communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "JWT-VC", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "compact and JSON serialization, JSON", - "hardwareSupport": "No", - "holderCapability": "", - "identifierHolder": "did:jwk, did:key", - "identifierIssuer": "did:jwk, did:key, did:web", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/paradym-wallet.png", - "mdoc": "", - "name": "Paradym Wallet", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "Yes", - "organisationalWallet": "", - "peer2PeerProtocols": "OID4VC", - "portability": "", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "No", - "scope": "", - "selectiveDisclosure": "No", - "signatureAlgorithm": "EdDSA, ES256", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "N/A", - "blockchainType": "N/A", - "blockchainUsed": "No", - "company": "Sphereon", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "JWT, JWT-VC, LDP-VC", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "compact and JSON serialization, JSON, JSON-LD, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "", - "identifierHolder": "X.509 certificate, did:jwk, did:key, did:ion, did:cheqd, did:web, did:lto, did:factom, did:ethr, did:pkh", - "identifierIssuer": "X.509 certificate, did:jwk, did:key, did:ion, did:cheqd, did:web, did:lto, did:factom, did:ethr, did:pkh", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/sphereon-wallet.png", - "mdoc": "", - "name": "Sphereon Wallet", - "observability": "Yes", - "offlineFriendly": "No", - "openSource": "Yes", - "organisationalWallet": "", - "peer2PeerProtocols": "OIDC, SIOP, DIDComm", - "portability": "", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Status List 2021, Validity credential", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+, ECDSA, EdDSA, RSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Anchor DID & DID Documents, Trust Registry, Revocation Registry", - "blockchainType": "Ethereum", - "blockchainUsed": "Yes", - "company": "Spherity GmbH", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "AnonCred, JSON-LD", - "cryptoAgility": "No", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "No", - "holderCapability": "", - "identifierHolder": "did:ethr", - "identifierIssuer": "did:ethr", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/spherity-wallet.png", - "mdoc": "", - "name": "Spherity Wallet", - "observability": "No", - "offlineFriendly": "", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "OIDC, SIOP, DIDComm, DID Exchange Protocol", - "portability": "", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Indy Revocation, Revocation 5539, Status List 2021", - "scope": "", - "selectiveDisclosure": "No", - "signatureAlgorithm": "CL, BBS+, EdDSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "identity, crypto", - "blockchainType": "Ethereum, ION, EBSI, PolygonID", - "blockchainUsed": "Yes", - "company": "Talao", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "JWT-VC, JSON-LD", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "JSON, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "", - "identifierHolder": "did:ebsi, did:ion, did:web, did:tz, did:key", - "identifierIssuer": "did:ebsi, did:ion, did:web, did:tz, did:key", - "issuerCapability": "", - "keyHistoryHolder": "Yes", - "keyHistoryIssuer": "No", - "keyRotationHolder": "Yes", - "keyRotationIssuer": "No", - "logo": "logos/talao.png", - "mdoc": "", - "name": "Talao", - "observability": "Yes", - "offlineFriendly": "", - "openSource": "Yes", - "organisationalWallet": "", - "peer2PeerProtocols": "OIDC, SIOP, DID Exchange Protocol", - "portability": "", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Status List 2021", - "scope": "", - "selectiveDisclosure": "No", - "signatureAlgorithm": "ECDSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Anchor DID & DID Documents", - "blockchainType": "Depending on DID method", - "blockchainUsed": "Yes", - "company": "Gimly", - "connectionTypes": "Direct communication, Connection-based communication, Direct NFC-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "JWT, JWT-VC, LDP-VC", - "cryptoAgility": "", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "", - "hardwareSupport": "", - "holderCapability": "", - "identifierHolder": "did:ethr, did:ion, did:web, did:jwk, did:key", - "identifierIssuer": "did:web, did:ion, did:key, did:jwk", - "issuerCapability": "", - "keyHistoryHolder": "", - "keyHistoryIssuer": "", - "keyRotationHolder": "", - "keyRotationIssuer": "", - "logo": "logos/tap-id.png", - "mdoc": "", - "name": "Tap ID", - "observability": "", - "offlineFriendly": "Yes", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "OIDC, SIOP, DIDComm", - "portability": "", - "predicates": "Yes", - "quantumSafe": "", - "revocationAlgorithm": "Status List 2021", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "BBS+, ECDSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Trust Anchor, Trust registry, root of trust", - "blockchainType": "EBSI, Alastria, Ethereum", - "blockchainUsed": "Yes", - "company": "Validated ID", - "connectionTypes": "both", - "credExchangeProtocol": "OIDC4CI, OIDC4VP", - "credentialFormat": "JWT-VC, JSON-LD, JWT", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "JSON, JSON-LD", - "hardwareSupport": "Yes", - "holderCapability": "", - "identifierHolder": "did:key, did:jwk, did:ala, did:ebsi, did:eth", - "identifierIssuer": "did:key, did:jwk, did:ala, did:ebsi, did:eth", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/vidwallet.png", - "mdoc": "", - "name": "VIDwallet", - "observability": "Yes", - "offlineFriendly": "", - "openSource": "No", - "organisationalWallet": "", - "peer2PeerProtocols": "OIDC, SIOP", - "portability": "", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Status List 2021", - "scope": "", - "selectiveDisclosure": "No", - "signatureAlgorithm": "ECDSA, EdDSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "EBSI - The aim of EBSI is to develop a secure and scalable blockchain infrastructure that can provide cross-border digital public services to citizens and businesses in Europe.\n\nIOTA - it's purpose is to provide a scalable, feeless, and decentralized transactional settlement and data transfer platform for the Internet of Things (IoT) ecosystem.\n\nVelocity - The purpose of the Velocity Network is to create a decentralized, global credentialing ecosystem that enables individuals to own, control, and securely share their verified career credentials while giving organizations access to a trusted talent marketplace.\n\nChqed - The purpose of the cheqd ecosystem is to provide a decentralized, privacy-preserving digital identity solution that allows individuals to have control over their personal data while enabling secure and verifiable credential exchange between individuals and organizations.", - "blockchainType": "ebsi, iota, cheqd, velocity", - "blockchainUsed": "Yes", - "company": "walt.id", - "connectionTypes": "Direct communication, Connection-based communication", - "credExchangeProtocol": "OIDC4CI, OIDC4VP, Presentation Exchange", - "credentialFormat": "JWT, LDP-VC", - "cryptoAgility": "Yes", - "ddip": "", - "deepLinking": "", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "compact and JSON serialization", - "hardwareSupport": "Yes", - "holderCapability": "", - "identifierHolder": "did:key, did:web, did:ebsi, did:iota, did:jwk, did:cheqd, did:velocity", - "identifierIssuer": "did:key, did:web, did:ebsi, did:iota, did:jwk, did:cheqd, did:velocity", - "issuerCapability": "", - "keyHistoryHolder": "Yes", - "keyHistoryIssuer": "Yes", - "keyRotationHolder": "Yes", - "keyRotationIssuer": "Yes", - "logo": "logos/walt-id.png", - "mdoc": "", - "name": "walt.id", - "observability": "", - "offlineFriendly": "", - "openSource": "Yes", - "organisationalWallet": "", - "peer2PeerProtocols": "OIDC, SIOP", - "portability": "", - "predicates": "No", - "quantumSafe": "No", - "revocationAlgorithm": "Revocation not supported", - "scope": "", - "selectiveDisclosure": "No", - "signatureAlgorithm": "ECDSA, EdDSA, RSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "No" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "N/A", - "blockchainType": "N/A", - "blockchainUsed": "No", - "company": "Privacy by Design Foundation", - "connectionTypes": "Direct communication, Interpreted as direct wallet to IDP and wallet to RP connections. No communication through centralized components in our infrastructure. IRMA is fully decentralized. ", - "credExchangeProtocol": "IRMA protocol", - "credentialFormat": "Idemix ABC", - "cryptoAgility": "No", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "Yes", - "ebsi": "", - "encodingScheme": "JSON", - "hardwareSupport": "No", - "holderCapability": "", - "identifierHolder": "Link secret", - "identifierIssuer": "Issuer identifier inside issuer scheme including issuer public key", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/yivi.png", - "mdoc": "", - "name": "Yivi", - "observability": "No", - "offlineFriendly": "No", - "openSource": "Yes", - "organisationalWallet": "", - "peer2PeerProtocols": "IRMA protocol ", - "portability": "", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Own implementation on top of Idemix", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL, Schnorr", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "Yes" - }, - { - "aip": "", - "api": "", - "blockchainPurpose": "Public DIDs and associated DID documents with verification keys and endpoints, schemas and credential definitions, revocation registries, agent authorisation policies", - "blockchainType": "Sovrin", - "blockchainUsed": "Yes", - "company": "ZADA Solutions", - "connectionTypes": "", - "credExchangeProtocol": "Issue Credential Protocol, Present Proof Protocol, Presentation Exchange", - "credentialFormat": "AnonCred, RSA", - "cryptoAgility": "No", - "ddip": "", - "deepLinking": "Yes", - "deployment": "", - "downloadSource": "", - "eassi": "No", - "ebsi": "", - "encodingScheme": "JSON", - "hardwareSupport": "Yes", - "holderCapability": "", - "identifierHolder": "Raw public key, did:sov", - "identifierIssuer": "Raw public key, did:sov", - "issuerCapability": "", - "keyHistoryHolder": "No", - "keyHistoryIssuer": "No", - "keyRotationHolder": "No", - "keyRotationIssuer": "No", - "logo": "logos/zada.png", - "mdoc": "", - "name": "ZADA", - "observability": "No", - "offlineFriendly": "Yes", - "openSource": "Yes", - "organisationalWallet": "", - "peer2PeerProtocols": "DIDComm", - "portability": "", - "predicates": "Yes", - "quantumSafe": "No", - "revocationAlgorithm": "Indy revocation", - "scope": "", - "selectiveDisclosure": "Yes", - "signatureAlgorithm": "CL, RSA", - "support": "", - "urlAppStore": "", - "urlGooglePlayStore": "", - "urlWebApp": "", - "urlWebsite": "", - "verifierCapability": "", - "verifierUnlinkability": "Yes" - } -] diff --git a/schema.json b/schema.json index 5501fb0..6c7d0a9 100644 --- a/schema.json +++ b/schema.json @@ -1,8 +1,13 @@ { "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "Wallet", "title": "Wallet", "type": "object", "properties": { + "$schema": { + "type": "string", + "description": "the schema version of the wallet" + }, "name": { "type": "string", "description": "name of the wallet" @@ -14,8 +19,7 @@ }, "logo": { "type": "string", - "description": "url to the logo of the wallet", - "format": "uri" + "description": "url to the logo of the wallet" }, "company": { "type": "string", @@ -24,11 +28,11 @@ "companyUrl": { "type": "string", "description": "url to the company, not the url to the product", - "format": "uri" + "format": "url" }, "contact": { "type": "string", - "description": "provide a link to a contact formular or insert an email address for support requests" + "description": "provide a link to a contact formula or insert an email address for support requests" }, "openSource": { "type": "boolean", @@ -41,7 +45,7 @@ }, "license": { "type": "string", - "description": "add the license of the wallet. In case you have multiple licences, add them here." + "description": "add the license of the wallet. In case you have multiple licenses, add them here." }, "holderCapability": { "type": "boolean", @@ -79,11 +83,68 @@ "description": "link to the web app in case it's not a mobile wallet", "format": "uri" }, - "profiles": { + "credentialProfiles": { + "type": "array", + "description": "list of supported credential profiles, it has to be a valid credential profile from the Credential Profiles Comparison SIG", + "$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/", + "items": { + "$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Credential-Profile" + } + }, + "credentialFormats": { + "type": "array", + "description": "list of supported credential formats, it has to be a valid credential format from the Credential Formats Comparison SIG", + "$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Credential%20Format", + "items": { + "$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Credential-Format" + } + }, + "signingAlgorithms": { + "type": "array", + "description": "list of supported signing algorithms, it has to be a valid credential format from the Credential Formats Comparison SIG", + "$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Signing%20Algorithm", + "items": { + "$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Signing-Algorithm" + } + }, + "statusAlgorithms": { + "type": "array", + "description": "list of supported status algorithms, it has to be a valid credential format from the Credential Formats Comparison SIG", + "$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Status%20Algorithm", + "items": { + "$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Status-Algorithm" + } + }, + "keyManagements": { + "type": "array", + "description": "list of supported key managements, it has to be a valid credential format from the Credential Formats Comparison SIG", + "$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Key%20Management", + "items": { + "$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Key-Management" + } + }, + "issuanceProtocols": { + "type": "array", + "description": "list of supported issuance protocols , it has to be a valid credential format from the Credential Formats Comparison SIG", + "$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Issuance%20Protocol", + "items": { + "$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Issuance-Protocol" + } + }, + "presentationProtocols": { + "type": "array", + "description": "list of supported presentation protocols , it has to be a valid credential format from the Credential Formats Comparison SIG", + "$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Presentation%20Protocol", + "items": { + "$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Presentation-Protocol" + } + }, + "trustManagements": { "type": "array", - "description": "which profiles from the credential profile comparison SIG are supported", + "description": "list of supported trust managements , it has to be a valid credential format from the Credential Formats Comparison SIG", + "$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Trust%20Management", "items": { - "type": "string" + "$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Trust-Management" } } }, diff --git a/viewer/package-lock.json b/viewer/package-lock.json index 4cb9adc..1bfb99d 100644 --- a/viewer/package-lock.json +++ b/viewer/package-lock.json @@ -29,6 +29,8 @@ "@angular/cli": "^17.0.7", "@angular/compiler-cli": "^17.0.0", "@types/jasmine": "~5.1.0", + "ajv-formats": "^2.1.1", + "axios": "^1.6.7", "jasmine-core": "~5.1.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", @@ -4937,6 +4939,12 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, "node_modules/autoprefixer": { "version": "10.4.16", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", @@ -4974,6 +4982,17 @@ "postcss": "^8.1.0" } }, + "node_modules/axios": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.15.4", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/babel-loader": { "version": "9.1.3", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", @@ -5643,6 +5662,18 @@ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -6185,6 +6216,15 @@ "node": ">=8" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -7045,6 +7085,20 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -10400,6 +10454,12 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", diff --git a/viewer/package.json b/viewer/package.json index 65ce6ef..6f5f780 100644 --- a/viewer/package.json +++ b/viewer/package.json @@ -3,12 +3,14 @@ "version": "0.0.0", "scripts": { "ng": "ng", + "prestart": "npm run merge", "start": "ng serve", - "build": "npm run merge && ng build", + "build": "ng build", "watch": "ng build --watch --configuration development", "test": "ng test", "validate": "node scripts/validate.mjs", - "merge": "node scripts/merge-wallets.mjs" + "merge": "node scripts/merge-wallets.mjs", + "update:schemas": "node scripts/update-schemas.mjs" }, "private": true, "dependencies": { @@ -33,6 +35,8 @@ "@angular/cli": "^17.0.7", "@angular/compiler-cli": "^17.0.0", "@types/jasmine": "~5.1.0", + "ajv-formats": "^2.1.1", + "axios": "^1.6.7", "jasmine-core": "~5.1.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", diff --git a/viewer/scripts/merge-wallets.mjs b/viewer/scripts/merge-wallets.mjs index c37cbbe..9fb4b4a 100644 --- a/viewer/scripts/merge-wallets.mjs +++ b/viewer/scripts/merge-wallets.mjs @@ -1,22 +1,5 @@ import { readdirSync, readFileSync, writeFileSync } from 'fs'; -// function to parse the flattened_wallets.json and create individual wallet files -// const w = JSON.parse(readFileSync('../flattened_wallets.json')); -// w.forEach(element => { -// element["$schema"] = "../schema.json"; - -// const keys = Object.keys(element); -// keys.forEach(key => { -// if(element[key] === "") { -// delete element[key]; -// } -// }); - -// //patch openSourceField to boolean -// element.openSource = element.openSource === "Yes"; -// writeFileSync(`../wallets/${element.name}.json`, JSON.stringify(element, null, 2)); -// }); - // function to merge all the individual wallet files into a single file const files = readdirSync('../wallets'); const wallets = files.map(file => JSON.parse(readFileSync(`../wallets/${file}`))); diff --git a/viewer/scripts/validate.mjs b/viewer/scripts/validate.mjs index fb1687f..3b8e36d 100644 --- a/viewer/scripts/validate.mjs +++ b/viewer/scripts/validate.mjs @@ -1,7 +1,12 @@ import Ajv from 'ajv'; +import addFormats from 'ajv-formats'; import {readFileSync, readdirSync} from 'fs'; +import axios from 'axios'; const ajv = new Ajv({allowUnionTypes: true}); +addFormats(ajv); +const profileSIGSchema = await axios.get('https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json').then(res => res.data); +ajv.addSchema(profileSIGSchema, "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json"); const validate = ajv.compile(JSON.parse(readFileSync('../schema.json'))); const files = readdirSync('../wallets'); let success = true; @@ -17,5 +22,7 @@ if(success) { console.info('All wallets are valid'); } else { console.error('Some wallets are invalid'); - process.exit(1); + //TODO: Since all wallet entries are not updated yet, do not finish with an exit code 1 + // process.exit(1); } + diff --git a/viewer/src/app/types.ts b/viewer/src/app/types.ts index f96578e..7d8db91 100644 --- a/viewer/src/app/types.ts +++ b/viewer/src/app/types.ts @@ -38,4 +38,16 @@ export interface Wallet { credentialProfiles?: string[]; // which formats from the credential format comparison SIG are supported credentialFormats?: string[]; + // which issuance protocols from the issuance protocol comparison SIG are supported + issuanceProtocols?: string[]; + // which key management from the key management comparison SIG are supported + keyManagements?: string[]; + // which presentation protocols from the presentation protocol comparison SIG are supported + presentationProtocols?: string[]; + // which signing algorithms from the signing algorithm comparison SIG are supported + signingAlgorithms?: string[]; + // which status management from the status management comparison SIG are supported + statusManagements?: string[]; + // which trust management from the trust management comparison SIG are supported + trustManagements?: string[]; } diff --git a/viewer/src/app/wallets-list/wallets-list.component.html b/viewer/src/app/wallets-list/wallets-list.component.html index e7c02e2..f03aa9e 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.html +++ b/viewer/src/app/wallets-list/wallets-list.component.html @@ -124,9 +124,11 @@ Capability - Holder - Issuer - Verifier +
+ Holder + Issuer + Verifier +
@@ -155,23 +157,26 @@ {{ element.portability }} - + - Supported profiles + {{ resource.name }} - - {{ profile }} - + {{ profile }} diff --git a/viewer/src/app/wallets-list/wallets-list.component.scss b/viewer/src/app/wallets-list/wallets-list.component.scss index ed74c80..869b436 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.scss +++ b/viewer/src/app/wallets-list/wallets-list.component.scss @@ -1,3 +1,7 @@ .logo { height: 40px; } + +.link-list { + margin: 0 5px; +} diff --git a/viewer/src/app/wallets-list/wallets-list.component.ts b/viewer/src/app/wallets-list/wallets-list.component.ts index 99651e8..dcee421 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.ts +++ b/viewer/src/app/wallets-list/wallets-list.component.ts @@ -9,7 +9,7 @@ import { MatTableDataSource, MatTableModule } from '@angular/material/table'; import { MatTooltipModule } from '@angular/material/tooltip'; import { FlexLayoutModule } from '@ngbracket/ngx-layout'; import { Wallet } from '../types'; -import { WalletsService } from '../wallets.service'; +import { ResourceType, WalletsService } from '../wallets.service'; import { CommonModule } from '@angular/common'; import { RouterModule } from '@angular/router'; import { MatChipsModule } from '@angular/material/chips'; @@ -38,6 +38,7 @@ import { MatChipsModule } from '@angular/material/chips'; export class WalletsListComponent implements OnInit, AfterViewInit { //reference to the MatTableDataSource dataSource = new MatTableDataSource(); + // columns that should be displayed in the table columns: string[] = [ 'wallet', @@ -48,7 +49,6 @@ export class WalletsListComponent implements OnInit, AfterViewInit { 'capability', 'portability', 'linkToApp', - 'profiles', ]; //reference to the paginator to be added to the table @@ -59,12 +59,13 @@ export class WalletsListComponent implements OnInit, AfterViewInit { //columns to be displayed in the table, not implemeneted yet displayedColumns: string[] = []; - constructor(private walletsService: WalletsService) {} + constructor(public walletsService: WalletsService) {} /** * Fetches the wallets from the json file and sets the dataSource to the wallets */ async ngOnInit(): Promise { + this.walletsService.resources.forEach((res) => this.columns.push(res.id)); const wallets = await this.walletsService.loadWallets(); this.dataSource.data = wallets; this.displayedColumns = this.columns; diff --git a/viewer/src/app/wallets-show/wallets-show.component.html b/viewer/src/app/wallets-show/wallets-show.component.html index f12e82a..346ef99 100644 --- a/viewer/src/app/wallets-show/wallets-show.component.html +++ b/viewer/src/app/wallets-show/wallets-show.component.html @@ -4,7 +4,9 @@

{{ wallet.name }}

- {{ wallet.company }} + {{ + wallet.company + }} Contact provider @@ -82,20 +84,16 @@

{{ wallet.name }}

-

Supported Credential profiles

- - - {{ - profile - }} - - -

Supported Credential formats

- - - {{ - format - }} - - +
+

{{ resource.name }}

+ + + {{ element }} + + +
diff --git a/viewer/src/app/wallets.service.ts b/viewer/src/app/wallets.service.ts index c44553f..722f846 100644 --- a/viewer/src/app/wallets.service.ts +++ b/viewer/src/app/wallets.service.ts @@ -3,12 +3,72 @@ import { Injectable } from '@angular/core'; import { firstValueFrom } from 'rxjs'; import { Wallet } from './types'; -export type ResourceType = 'profile' | 'format'; +export type ResourceType = + | 'credentialProfiles' + | 'credentialFormats' + | 'issuanceProtocols' + | 'keyManagements' + | 'presentationProtocols' + | 'signingAlgorithms' + | 'statusManagements' + | 'trustManagements'; + +interface Resource { + // unique identifier of the column + id: ResourceType; + // name of the column + name: string; + //tooltip to show to the user + tooltip: string; +} @Injectable({ providedIn: 'root', }) export class WalletsService { + resources: Resource[] = [ + { + id: 'credentialProfiles', + name: 'Supported Profiles', + tooltip: 'Supported profiles', + }, + { + id: 'credentialFormats', + name: 'Supported Formats', + tooltip: 'Supported formats', + }, + { + id: 'issuanceProtocols', + name: 'Supported Issuance Protocols', + tooltip: 'Supported issuance protocols', + }, + { + id: 'keyManagements', + name: 'Supported Key Managements', + tooltip: 'Supported key managements', + }, + { + id: 'presentationProtocols', + name: 'Supported Presentation Protocols', + tooltip: 'Supported presentation protocols', + }, + { + id: 'signingAlgorithms', + name: 'Supported Signing Algorithms', + tooltip: 'Supported signing algorithms', + }, + { + id: 'statusManagements', + name: 'Supported Status Managements', + tooltip: 'Supported status managements', + }, + { + id: 'trustManagements', + name: 'Supported Trust Managements', + tooltip: 'Supported trust managements', + }, + ]; + constructor(private httpClient: HttpClient) {} loadWallets() { @@ -25,10 +85,12 @@ export class WalletsService { const url = 'https://openwallet-foundation.github.io/credential-format-comparison-sig/#'; switch (resourceType) { - case 'profile': + case 'credentialProfiles': return `${url}/profiles/${key}`; - case 'format': + case 'credentialFormats': return `${url}/resources/Credential%20Format/${key}`; + default: + throw new Error(`Unknown resource type: ${resourceType}`); } } } diff --git a/viewer/src/assets/logos/open-wallet.png b/viewer/src/assets/logos/open-wallet.png new file mode 100644 index 0000000000000000000000000000000000000000..297cba2bf7267099cb3922dd865cff58b5d9ed06 GIT binary patch literal 6777 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 Date: Mon, 12 Feb 2024 18:29:51 +0100 Subject: [PATCH 56/76] Add filter functions to list view Signed-off-by: Mirko Mollik --- viewer/src/app/tooltip.ts | 10 +++ .../wallets-list-filter.component.html | 64 +++++++++++++ .../wallets-list-filter.component.scss | 3 + .../wallets-list-filter.component.spec.ts | 23 +++++ .../wallets-list-filter.component.ts | 90 +++++++++++++++++++ .../wallets-list/wallets-list.component.html | 40 ++++----- .../wallets-list/wallets-list.component.scss | 5 ++ .../wallets-list/wallets-list.component.ts | 88 +++++++++++++++++- .../wallets-show/wallets-show.component.html | 8 +- viewer/src/app/wallets.service.ts | 29 +++++- 10 files changed, 332 insertions(+), 28 deletions(-) create mode 100644 viewer/src/app/tooltip.ts create mode 100644 viewer/src/app/wallets-list-filter/wallets-list-filter.component.html create mode 100644 viewer/src/app/wallets-list-filter/wallets-list-filter.component.scss create mode 100644 viewer/src/app/wallets-list-filter/wallets-list-filter.component.spec.ts create mode 100644 viewer/src/app/wallets-list-filter/wallets-list-filter.component.ts diff --git a/viewer/src/app/tooltip.ts b/viewer/src/app/tooltip.ts new file mode 100644 index 0000000..4e9e804 --- /dev/null +++ b/viewer/src/app/tooltip.ts @@ -0,0 +1,10 @@ +export const values = { + Name: 'Name of the wallet', + Company: 'Name of the company', + Type: 'Type of the wallet', + OpenSource: 'Is the wallet open source', + linkToApp: 'Link to the stores to download the app', + license: 'The license of the wallet or agent', + capability: 'Who can use the wallet? Holder, issuer, verifier.', + portability: 'Is it possible to export and import the data from the wallet?', +}; diff --git a/viewer/src/app/wallets-list-filter/wallets-list-filter.component.html b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.html new file mode 100644 index 0000000..ce6047c --- /dev/null +++ b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.html @@ -0,0 +1,64 @@ +@if(form) { +
+

Filter

+ +
+
+ + + Type + + + cloud + edge + + {{ walletsService.getTooltip('Type') }} + + + Open Source + + + true + false + + {{ walletsService.getTooltip('OpenSource') }} + + + Capability + + Holder + Issuer + Verifier + + {{ walletsService.getTooltip('capability') }} + + + Portability + + + true + false + + {{ walletsService.getTooltip('portability') }} + + @for (res of walletsService.resources; track res) { + + {{ res.name }} + + @for (resource of getValues(res.schemaId); track resource) { + {{ resource }} + } + + {{ res.tooltip }} + + } + + + + +
+} diff --git a/viewer/src/app/wallets-list-filter/wallets-list-filter.component.scss b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.scss new file mode 100644 index 0000000..75fbadb --- /dev/null +++ b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.scss @@ -0,0 +1,3 @@ +#filter { + width: 600px; +} diff --git a/viewer/src/app/wallets-list-filter/wallets-list-filter.component.spec.ts b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.spec.ts new file mode 100644 index 0000000..a176cc7 --- /dev/null +++ b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { WalletsListFilterComponent } from './wallets-list-filter.component'; + +describe('WalletsListFilterComponent', () => { + let component: WalletsListFilterComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [WalletsListFilterComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(WalletsListFilterComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/viewer/src/app/wallets-list-filter/wallets-list-filter.component.ts b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.ts new file mode 100644 index 0000000..2dab0ec --- /dev/null +++ b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.ts @@ -0,0 +1,90 @@ +import { Component, Inject, OnInit } from '@angular/core'; +import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; +import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog'; +import { FlexLayoutModule } from '@ngbracket/ngx-layout'; +import { MatInputModule } from '@angular/material/input'; +import { MatSelectModule } from '@angular/material/select'; +import { MatIconModule } from '@angular/material/icon'; +import { HttpClient, HttpClientModule } from '@angular/common/http'; +import { firstValueFrom } from 'rxjs'; +import { WalletsService } from '../wallets.service'; + +export interface WalletFilter { + type?: 'cloud' | 'edge'; + openSource?: 'true' | 'false'; + capability?: ('holder' | 'issuer' | 'verifier')[]; + portability?: 'true' | 'false'; + credentialFormats?: string[]; + credentialProfiles?: string[]; + issuanceProtocols?: string[]; + keyManagements?: string[]; + presentationProtocols?: string[]; + signingAlgorithms?: string[]; + statusManagements?: string[]; + trustManagements?: string[]; +} + +interface Resource { + description: string; + type: string; + enum: string[]; +} + +interface FieldResponse { + $schema: 'http://json-schema.org/draft-06/schema#'; + type: 'object'; + additionalProperties: {}; + definitions: { [key: string]: Resource }; +} + +@Component({ + selector: 'app-wallets-list-filter', + standalone: true, + imports: [ + MatDialogModule, + MatButtonModule, + FlexLayoutModule, + ReactiveFormsModule, + MatInputModule, + MatSelectModule, + MatIconModule, + HttpClientModule, + ], + providers: [WalletsService], + templateUrl: './wallets-list-filter.component.html', + styleUrl: './wallets-list-filter.component.scss', +}) +export class WalletsListFilterComponent implements OnInit { + form!: FormGroup; + values!: FieldResponse; + + constructor( + @Inject(MAT_DIALOG_DATA) private filter: WalletFilter, + private httpClient: HttpClient, + public walletsService: WalletsService + ) {} + async ngOnInit(): Promise { + this.values = await firstValueFrom( + this.httpClient.get( + 'https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json' + ) + ); + this.form = new FormGroup({ + type: new FormControl(), + openSource: new FormControl(), + capability: new FormControl(), + portability: new FormControl(), + }); + this.walletsService.resources.forEach((resource) => + this.form.addControl(resource.id, new FormControl()) + ); + if (this.filter) { + this.form.patchValue(this.filter); + } + } + + getValues(key: string) { + return this.values.definitions[key]?.enum; + } +} diff --git a/viewer/src/app/wallets-list/wallets-list.component.html b/viewer/src/app/wallets-list/wallets-list.component.html index f03aa9e..2d3bb73 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.html +++ b/viewer/src/app/wallets-list/wallets-list.component.html @@ -1,16 +1,14 @@
- + @for (filter of getFilterValues(); track filter) { + {{ filter }} + } +
@@ -20,7 +18,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - matTooltip="Name of the wallet" + [matTooltip]="walletsService.getTooltip('Name')" > Name @@ -41,7 +39,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - matTooltip="Provider" + [matTooltip]="walletsService.getTooltip('Company')" > Company @@ -60,7 +58,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - matTooltip="Is the wallet open source? If so, link to the codebase." + [matTooltip]="walletsService.getTooltip('OpenSource')" > Open Source @@ -73,7 +71,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - matTooltip="Link to the stores to download the app" + [matTooltip]="walletsService.getTooltip('linkToApp')" > Link to app @@ -106,7 +104,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - matTooltip="The license of the wallet or agent" + [matTooltip]="walletsService.getTooltip('license')" > License @@ -119,7 +117,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - matTooltip="Who can use the wallet? Holder, issuer, verifier." + [matTooltip]="walletsService.getTooltip('capability')" > Capability @@ -136,7 +134,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - matTooltip="Type of the wallet or agent" + [matTooltip]="walletsService.getTooltip('Type')" > Type @@ -149,7 +147,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - matTooltip="Portability of the wallet or agent" + [matTooltip]="walletsService.getTooltip('portability')" > Portability @@ -157,10 +155,8 @@ {{ element.portability }} - + @for (resource of walletsService.resources; track resource) { + + @for (profile of element[resource.id]; track profile) { {{ profile }} + } + } diff --git a/viewer/src/app/wallets-list/wallets-list.component.scss b/viewer/src/app/wallets-list/wallets-list.component.scss index 869b436..0b132ca 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.scss +++ b/viewer/src/app/wallets-list/wallets-list.component.scss @@ -5,3 +5,8 @@ .link-list { margin: 0 5px; } + +.container { + height: calc(100vh - 169px); + overflow: auto; +} diff --git a/viewer/src/app/wallets-list/wallets-list.component.ts b/viewer/src/app/wallets-list/wallets-list.component.ts index dcee421..3a8a2a1 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.ts +++ b/viewer/src/app/wallets-list/wallets-list.component.ts @@ -1,7 +1,7 @@ import { HttpClientModule } from '@angular/common/http'; import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; -import { MatDialogModule } from '@angular/material/dialog'; +import { MatDialog, MatDialogModule } from '@angular/material/dialog'; import { MatIconModule } from '@angular/material/icon'; import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator'; import { MatSort, MatSortModule } from '@angular/material/sort'; @@ -9,10 +9,14 @@ import { MatTableDataSource, MatTableModule } from '@angular/material/table'; import { MatTooltipModule } from '@angular/material/tooltip'; import { FlexLayoutModule } from '@ngbracket/ngx-layout'; import { Wallet } from '../types'; -import { ResourceType, WalletsService } from '../wallets.service'; +import { WalletsService } from '../wallets.service'; import { CommonModule } from '@angular/common'; import { RouterModule } from '@angular/router'; import { MatChipsModule } from '@angular/material/chips'; +import { + WalletFilter, + WalletsListFilterComponent, +} from '../wallets-list-filter/wallets-list-filter.component'; @Component({ selector: 'app-wallets-list', @@ -58,13 +62,20 @@ export class WalletsListComponent implements OnInit, AfterViewInit { //columns to be displayed in the table, not implemeneted yet displayedColumns: string[] = []; + filter?: WalletFilter; - constructor(public walletsService: WalletsService) {} + constructor( + public walletsService: WalletsService, + private dialog: MatDialog + ) {} /** * Fetches the wallets from the json file and sets the dataSource to the wallets */ async ngOnInit(): Promise { + if (localStorage.getItem('filter')) { + this.filter = JSON.parse(localStorage.getItem('filter')!); + } this.walletsService.resources.forEach((res) => this.columns.push(res.id)); const wallets = await this.walletsService.loadWallets(); this.dataSource.data = wallets; @@ -78,4 +89,75 @@ export class WalletsListComponent implements OnInit, AfterViewInit { this.dataSource.sort = this.sort; this.dataSource.paginator = this.paginator; } + + /** + * Filters the wallets based on the filter object + */ + openFilter() { + this.dialog + .open( + WalletsListFilterComponent, + { data: this.filter } + ) + .afterClosed() + .subscribe(async (res: WalletFilter) => { + localStorage.setItem('filter', JSON.stringify(res)); + this.filter = res; + let values = await this.walletsService.loadWallets(); + if (res.type) { + values = values.filter((wallet) => wallet.type === res.type); + } + if (res.openSource) { + values = values.filter( + (wallet) => wallet.openSource === (res.openSource === 'true') + ); + } + if (res.capability && res.capability.length > 0) { + values = values.filter( + (wallet) => + res.capability?.includes('holder') && wallet.holderCapability + ); + } + if (res.portability) { + values = values.filter( + (wallet) => wallet.portability === (res.portability === 'true') + ); + } + + const resources = this.walletsService.resources.map((res) => res.id); + resources.forEach((resource) => { + if (res[resource]) { + values = values.filter((wallet) => + res[resource]?.every((res) => wallet[resource]?.includes(res)) + ); + } + }); + this.dataSource.data = values; + }); + } + + /** + * Returns a list of all active filters + * @returns + */ + getFilterValues() { + if (!this.filter) return []; + const filtered: string[] = []; + Object.keys(this.filter).forEach((key) => { + const k = key as keyof WalletFilter; + if (this.filter && this.filter[k]) { + if (typeof this.filter[k] === 'string') { + filtered.push(`${key}: ${this.filter[k] as string}`); + } else if ( + this.filter[k] instanceof Array && + (this.filter[k] as Array).length > 0 + ) { + filtered.push( + `${key}: ${(this.filter[k] as Array).join(', ')}` + ); + } + } + }); + return filtered; + } } diff --git a/viewer/src/app/wallets-show/wallets-show.component.html b/viewer/src/app/wallets-show/wallets-show.component.html index 346ef99..61806a2 100644 --- a/viewer/src/app/wallets-show/wallets-show.component.html +++ b/viewer/src/app/wallets-show/wallets-show.component.html @@ -84,16 +84,20 @@

{{ wallet.name }}

-
+ @for (resource of walletsService.resources; track resource) { +

{{ resource.name }}

- + @for (element of wallet[resource.id]; track element) { + {{ element }} + }
+ }
diff --git a/viewer/src/app/wallets.service.ts b/viewer/src/app/wallets.service.ts index 722f846..fe4e8d8 100644 --- a/viewer/src/app/wallets.service.ts +++ b/viewer/src/app/wallets.service.ts @@ -2,6 +2,7 @@ import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { firstValueFrom } from 'rxjs'; import { Wallet } from './types'; +import { values } from './tooltip'; export type ResourceType = | 'credentialProfiles' @@ -16,6 +17,8 @@ export type ResourceType = interface Resource { // unique identifier of the column id: ResourceType; + // unique identifier of the schema + schemaId: string; // name of the column name: string; //tooltip to show to the user @@ -29,41 +32,49 @@ export class WalletsService { resources: Resource[] = [ { id: 'credentialProfiles', + schemaId: 'Credential-Profile', name: 'Supported Profiles', tooltip: 'Supported profiles', }, { id: 'credentialFormats', + schemaId: 'Credential-Format', name: 'Supported Formats', tooltip: 'Supported formats', }, { id: 'issuanceProtocols', + schemaId: 'Issuance-Protocol', name: 'Supported Issuance Protocols', tooltip: 'Supported issuance protocols', }, { id: 'keyManagements', + schemaId: 'Key-Management', name: 'Supported Key Managements', tooltip: 'Supported key managements', }, { id: 'presentationProtocols', + schemaId: 'Presentation-Protocol', name: 'Supported Presentation Protocols', tooltip: 'Supported presentation protocols', }, { id: 'signingAlgorithms', + schemaId: 'Signing-Algorithm', name: 'Supported Signing Algorithms', tooltip: 'Supported signing algorithms', }, { id: 'statusManagements', + schemaId: 'Status-Management', name: 'Supported Status Managements', tooltip: 'Supported status managements', }, { id: 'trustManagements', + schemaId: 'Trust-Management', name: 'Supported Trust Managements', tooltip: 'Supported trust managements', }, @@ -89,8 +100,22 @@ export class WalletsService { return `${url}/profiles/${key}`; case 'credentialFormats': return `${url}/resources/Credential%20Format/${key}`; - default: - throw new Error(`Unknown resource type: ${resourceType}`); + case 'issuanceProtocols': + return `${url}/resources/Issuance%20Protocol/${key}`; + case 'keyManagements': + return `${url}/resources/Key%20Management/${key}`; + case 'presentationProtocols': + return `${url}/resources/Presentation%20Protocol/${key}`; + case 'signingAlgorithms': + return `${url}/resources/Signing%20Algorithm/${key}`; + case 'statusManagements': + return `${url}/resources/Status%20Management/${key}`; + case 'trustManagements': + return `${url}/resources/Trust%20Management/${key}`; } } + + getTooltip(resourceType: keyof typeof values) { + return values[resourceType]; + } } From 1ecb647d7d377d659b382fed6dafdc44bec42dc6 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Mon, 12 Feb 2024 18:32:41 +0100 Subject: [PATCH 57/76] update cli Signed-off-by: Mirko Mollik --- viewer/package-lock.json | 84 ++++++++++++++++++++-------------------- viewer/package.json | 6 +-- 2 files changed, 45 insertions(+), 45 deletions(-) diff --git a/viewer/package-lock.json b/viewer/package-lock.json index 1bfb99d..9b11ae6 100644 --- a/viewer/package-lock.json +++ b/viewer/package-lock.json @@ -25,8 +25,8 @@ "zone.js": "~0.14.2" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.0.7", - "@angular/cli": "^17.0.7", + "@angular-devkit/build-angular": "^17.1.3", + "@angular/cli": "^17.1.3", "@angular/compiler-cli": "^17.0.0", "@types/jasmine": "~5.1.0", "ajv-formats": "^2.1.1", @@ -54,12 +54,12 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1701.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1701.2.tgz", - "integrity": "sha512-g3gn5Ht6r9bCeFeAYF+HboZB8IvgvqqdeOnaWNaXJLI0ymEkpbqRdqrHGuVKHJV7JOMNXC7GPJEctBC6SXxOxA==", + "version": "0.1701.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1701.3.tgz", + "integrity": "sha512-K5rvhslbXNwx04cCLviEJCA27MwoJRMMzALFXySi9BqjZnZUOtZnOBuuCdrTPaRmFaYqGO4Im5GNzpbb/NB8zg==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.1.2", + "@angular-devkit/core": "17.1.3", "rxjs": "7.8.1" }, "engines": { @@ -69,15 +69,15 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.1.2.tgz", - "integrity": "sha512-QIDTP+TjiCKCYRZYb8to4ymvIV1Djcfd5c17VdgMGhRqIQAAK1V4f4A1njdhGYOrgsLajZQAnKvFfk2ZMeI37A==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.1.3.tgz", + "integrity": "sha512-pusFVSWMnrm2GrF3+Fw19OhA2rNw4WkfTMUruhaKAjW5QIvZ3wHYf+pH//1Ud+tuhFBi9BH7UALP2vnJMu1ehw==", "dev": true, "dependencies": { "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1701.2", - "@angular-devkit/build-webpack": "0.1701.2", - "@angular-devkit/core": "17.1.2", + "@angular-devkit/architect": "0.1701.3", + "@angular-devkit/build-webpack": "0.1701.3", + "@angular-devkit/core": "17.1.3", "@babel/core": "7.23.7", "@babel/generator": "7.23.6", "@babel/helper-annotate-as-pure": "7.22.5", @@ -88,7 +88,7 @@ "@babel/preset-env": "7.23.7", "@babel/runtime": "7.23.7", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "17.1.2", + "@ngtools/webpack": "17.1.3", "@vitejs/plugin-basic-ssl": "1.0.2", "ansi-colors": "4.1.3", "autoprefixer": "10.4.16", @@ -199,12 +199,12 @@ } }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1701.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1701.2.tgz", - "integrity": "sha512-LqfSO5iTbiYByDadUET/8uIun8vSHMEdtoxiil/kdZ5T0NG0p7K8QqUMnWgg6suwO6kFfYJkMiS8Dq3Y/ONUNQ==", + "version": "0.1701.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1701.3.tgz", + "integrity": "sha512-fpZtJf6yvXM7mX1T83caeYpa0e3zPv7sgKmx0ZIJKGL8+DETgNcCCeCTgui7HMBcHGCD8yj72DZ8xMMBWwVBIA==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1701.2", + "@angular-devkit/architect": "0.1701.3", "rxjs": "7.8.1" }, "engines": { @@ -218,9 +218,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.1.2.tgz", - "integrity": "sha512-ku+/W/HMCBacSWFppenr9y6Lx8mDuTuQvn1IkTyBLiJOpWnzgVbx9kHDeaDchGa1PwLlJUBBrv27t3qgJOIDPw==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.1.3.tgz", + "integrity": "sha512-iuVK4hyW3YhusxIi8zGBvvVA9pWtDT3H6LQbWdVk9D3jXCZBIrEMklvAiJErqficKnUurf6gtFOeA8Fop6GotA==", "dev": true, "dependencies": { "ajv": "8.12.0", @@ -245,12 +245,12 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.1.2.tgz", - "integrity": "sha512-8S9RuM8olFN/gwN+mjbuF1CwHX61f0i59EGXz9tXLnKRUTjsRR+8vVMTAmX0dvVAT5fJTG/T69X+HX7FeumdqA==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.1.3.tgz", + "integrity": "sha512-zKoWG1hDfvi1vR9Hqoca9hWo9vDg8evmQvGcBW5jXR5ndZi5Oit/uDcGdA8WUKvBd1EG7WMqp0FgcDR9EA9WCw==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.1.2", + "@angular-devkit/core": "17.1.3", "jsonc-parser": "3.2.0", "magic-string": "0.30.5", "ora": "5.4.1", @@ -293,15 +293,15 @@ } }, "node_modules/@angular/cli": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.1.2.tgz", - "integrity": "sha512-U1W6XZNrfeRkXW2fO3AU25rRttqZahVkhzcK3lAtJ8+lSrStCOF7x1gz6tmFZFte1fNHQrXqD0yIDkd8H2/cvw==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.1.3.tgz", + "integrity": "sha512-ysPWDdqo2cwfeskKVAg8p4C8xuezWcIWyW/ACSjWw6yp4OZvyVd6cGZrc0POVZzAPtTOYJSgWOpF/DCHQFluSg==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1701.2", - "@angular-devkit/core": "17.1.2", - "@angular-devkit/schematics": "17.1.2", - "@schematics/angular": "17.1.2", + "@angular-devkit/architect": "0.1701.3", + "@angular-devkit/core": "17.1.3", + "@angular-devkit/schematics": "17.1.3", + "@schematics/angular": "17.1.3", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "4.1.1", @@ -3684,9 +3684,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.1.2.tgz", - "integrity": "sha512-MdNVSIp0x8AK26L+CxMTXH4weq2sNIp4C09RSdk7y6UkfBxMA3O0jTto9tW3ehkBaaGZ4dSiWkXA8L/ydMiQmA==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.1.3.tgz", + "integrity": "sha512-mszRSb7aMNKHnkh3Jrfo83KVOguX/cUamJJcGIYe9o7tnLGRIoMp4vP0fx6Og4J0/CGDRhSDG4IiJ29aOU7K8A==", "dev": true, "engines": { "node": "^18.13.0 || >=20.9.0", @@ -4168,13 +4168,13 @@ ] }, "node_modules/@schematics/angular": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.1.2.tgz", - "integrity": "sha512-1GlH0POaN7hVDF1sAm90E5SvAqnKK+PbD1oKSpug9l+1AUQ3vOamyGhEAaO+IxUqvNdgqZexxd5o9MyySTT2Zw==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.1.3.tgz", + "integrity": "sha512-hmeasOvzmniy6urtzUKhEqGO67iPuLX/dVtkF4nWp2NTtcEKlvcJobNDMc+CTlX4+ZMPVOvmhDMQqrlfekZ+NQ==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.1.2", - "@angular-devkit/schematics": "17.1.2", + "@angular-devkit/core": "17.1.3", + "@angular-devkit/schematics": "17.1.3", "jsonc-parser": "3.2.0" }, "engines": { @@ -4399,9 +4399,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.42", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.42.tgz", - "integrity": "sha512-ckM3jm2bf/MfB3+spLPWYPUH573plBFwpOhqQ2WottxYV85j1HQFlxmnTq57X1yHY9awZPig06hL/cLMgNWHIQ==", + "version": "4.17.43", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", + "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", "dev": true, "dependencies": { "@types/node": "*", diff --git a/viewer/package.json b/viewer/package.json index 6f5f780..5de36dc 100644 --- a/viewer/package.json +++ b/viewer/package.json @@ -31,8 +31,8 @@ "zone.js": "~0.14.2" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.0.7", - "@angular/cli": "^17.0.7", + "@angular-devkit/build-angular": "^17.1.3", + "@angular/cli": "^17.1.3", "@angular/compiler-cli": "^17.0.0", "@types/jasmine": "~5.1.0", "ajv-formats": "^2.1.1", @@ -45,4 +45,4 @@ "karma-jasmine-html-reporter": "~2.1.0", "typescript": "~5.2.2" } -} +} \ No newline at end of file From 2bc51191dd322d35c6ab17183fd2a9c92636d370 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Mon, 12 Feb 2024 18:34:41 +0100 Subject: [PATCH 58/76] fix: update dependencies Signed-off-by: Mirko Mollik --- viewer/package-lock.json | 433 +++++++++++++++++++++------------------ viewer/package.json | 18 +- 2 files changed, 245 insertions(+), 206 deletions(-) diff --git a/viewer/package-lock.json b/viewer/package-lock.json index 9b11ae6..aefece2 100644 --- a/viewer/package-lock.json +++ b/viewer/package-lock.json @@ -8,16 +8,16 @@ "name": "viewer", "version": "0.0.0", "dependencies": { - "@angular/animations": "^17.0.0", + "@angular/animations": "^17.1.3", "@angular/cdk": "^17.1.2", - "@angular/common": "^17.0.0", - "@angular/compiler": "^17.0.0", - "@angular/core": "^17.0.0", - "@angular/forms": "^17.0.0", + "@angular/common": "^17.1.3", + "@angular/compiler": "^17.1.3", + "@angular/core": "^17.1.3", + "@angular/forms": "^17.1.3", "@angular/material": "^17.1.2", - "@angular/platform-browser": "^17.0.0", - "@angular/platform-browser-dynamic": "^17.0.0", - "@angular/router": "^17.0.0", + "@angular/platform-browser": "^17.1.3", + "@angular/platform-browser-dynamic": "^17.1.3", + "@angular/router": "^17.1.3", "@ngbracket/ngx-layout": "^17.0.1", "ajv": "^8.12.0", "rxjs": "~7.8.0", @@ -27,7 +27,7 @@ "devDependencies": { "@angular-devkit/build-angular": "^17.1.3", "@angular/cli": "^17.1.3", - "@angular/compiler-cli": "^17.0.0", + "@angular/compiler-cli": "^17.1.3", "@types/jasmine": "~5.1.0", "ajv-formats": "^2.1.1", "axios": "^1.6.7", @@ -263,9 +263,9 @@ } }, "node_modules/@angular/animations": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.1.2.tgz", - "integrity": "sha512-ZsHa/zoWBOZdispjcNgXCoF9MAtc6Zyzc/QFUjtOFI9vigOI8tWP6GY1Wfeg4cyL+R3uDGYBgMrdr8l84VfuKg==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.1.3.tgz", + "integrity": "sha512-AS9CHOjjKqkuAzlKEMJfAkZfkIdSoagB3D8HwvH+ZHo6GVJc9KbtLQn/okNijFK+Fg7QK/hYbQ3lJhjgk0GQDA==", "dependencies": { "tslib": "^2.3.0" }, @@ -273,7 +273,7 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.1.2" + "@angular/core": "17.1.3" } }, "node_modules/@angular/cdk": { @@ -327,9 +327,9 @@ } }, "node_modules/@angular/common": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.1.2.tgz", - "integrity": "sha512-y/wD+zuPaPgK3dB80Q63qBtuu5TuryKuUgjWrOmrguBWV9oiJRhKQrcp1gVw9vVrowmbDBKGtPMS622Q4oxOWQ==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.1.3.tgz", + "integrity": "sha512-AzLzoNSeRSNGBQk0K+iG0XdYG36SDeJqYqE8rfoiWuv1NDFLL05UJM2/fQfaMNg0oX5bHOlHUqHFj3sFR/NVpw==", "dependencies": { "tslib": "^2.3.0" }, @@ -337,14 +337,14 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.1.2", + "@angular/core": "17.1.3", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.1.2.tgz", - "integrity": "sha512-1vJuQRM5V01nC6qsLvBKrHVZXpzbK0YKubwVQUXCSfDNZBcDFak3SQcwU4C2t880rU3ZvFDB1UWfk7CKn5w9Kw==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.1.3.tgz", + "integrity": "sha512-k/s21gPPKStxVOLr6l4Y145OIxyBY7BhTPVOl/qEAgE+IcZ9vkiA8dYl8yjL884Kl1ZKPmFA3AofMJjWjZGNag==", "dependencies": { "tslib": "^2.3.0" }, @@ -352,7 +352,7 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.1.2" + "@angular/core": "17.1.3" }, "peerDependenciesMeta": { "@angular/core": { @@ -361,9 +361,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.1.2.tgz", - "integrity": "sha512-4P4ttCe4IF9yq7bxCDxbVW7purN7qV0nqofP5Tth1xCsgIJeGmOMMQJN5RJCZNrAPMkvMv39eV878sgcDjbpOA==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.1.3.tgz", + "integrity": "sha512-bNDHXo3Twub0BZK9OmXly+0REs0RuR1SUXlTAeq+0XubCvnBDvpg9peL7UTTGS5YRo9sUTBnR6faSUA1F5objQ==", "dev": true, "dependencies": { "@babel/core": "7.23.2", @@ -384,7 +384,7 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/compiler": "17.1.2", + "@angular/compiler": "17.1.3", "typescript": ">=5.2 <5.4" } }, @@ -434,9 +434,9 @@ } }, "node_modules/@angular/core": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.1.2.tgz", - "integrity": "sha512-0M787BZVgYSVogHCUzo/dFrT56TgfQoEsOQngHMpyERJZv6dycXZlRdHc6TzvHUa+Uu/MNjn/RclBR8063bdWA==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.1.3.tgz", + "integrity": "sha512-2lZ4DRHN8KJ/aQads+YXIcx5Ri9yyeFIlw69m5Pn7wAi/+Rakg7IsclgLaWs7aBtWwMHG7LnqFKxAVq7CjXKtA==", "dependencies": { "tslib": "^2.3.0" }, @@ -449,9 +449,9 @@ } }, "node_modules/@angular/forms": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.1.2.tgz", - "integrity": "sha512-n1WsZAL2IVOB6ocROKR6CFOR14PIC9RGAB41SwTfPhJeBM1kjW48bXY0sw97TasxM4mWJKGCmFXu0jQwkoeSpQ==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.1.3.tgz", + "integrity": "sha512-aNa0jGLT5d+hnKVrSo8tk3TRo/NLNu1RxLNx8RhIczKAeCK3eD8SvTMy27iJtyXmNG2GWN7QPiDeGepd75nbxQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -459,9 +459,9 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.1.2", - "@angular/core": "17.1.2", - "@angular/platform-browser": "17.1.2", + "@angular/common": "17.1.3", + "@angular/core": "17.1.3", + "@angular/platform-browser": "17.1.3", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -530,9 +530,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.1.2.tgz", - "integrity": "sha512-unfpA5OLnqDmDb/oAQR2t2iROpOg02qwZayxyFg4MUZdDdnghPCfX77L2sr6oVVa7OJfKYFlmwmBXX1H3zjcXA==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.1.3.tgz", + "integrity": "sha512-onPCvdk9f/6OhOo2zP6nfGKpzLma1QIxpFqD3jymbmIJTcVMOOQDMYW3eLtY+uSX8ribcJ7GQcbDGIM4rliTFg==", "dependencies": { "tslib": "^2.3.0" }, @@ -540,9 +540,9 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/animations": "17.1.2", - "@angular/common": "17.1.2", - "@angular/core": "17.1.2" + "@angular/animations": "17.1.3", + "@angular/common": "17.1.3", + "@angular/core": "17.1.3" }, "peerDependenciesMeta": { "@angular/animations": { @@ -551,9 +551,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.1.2.tgz", - "integrity": "sha512-xiWVDHbA+owDhKo5SAnzZtawA1ktGthlCl3YTI+vmkJpF6axkYOqR7YL+aEQX/y/5GSK+oR+03SgAnYcpOwKlQ==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.1.3.tgz", + "integrity": "sha512-0lFhcFJfDzCSSVe8l8OY+UgUiwUwcbxwpvLod3XWBpf1iEUlr5720FIMA3VJYwpW3Oj4Uey3nVm13EMtRqpqdA==", "dependencies": { "tslib": "^2.3.0" }, @@ -561,16 +561,16 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.1.2", - "@angular/compiler": "17.1.2", - "@angular/core": "17.1.2", - "@angular/platform-browser": "17.1.2" + "@angular/common": "17.1.3", + "@angular/compiler": "17.1.3", + "@angular/core": "17.1.3", + "@angular/platform-browser": "17.1.3" } }, "node_modules/@angular/router": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.1.2.tgz", - "integrity": "sha512-8OexxiiscRdfEiB6jOKlZFyAKZtvIQvh0ugW6U7nAXPV5XsA2UL80sXkc829eH0DnJn2Wj/HS6ZNGgG81PWDHg==", + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.1.3.tgz", + "integrity": "sha512-6HigdtFjm+76UU2hiLGLE2SpOecQhD6TnAVTocDuRitpN5m0dyiffBrqxarfNwoZuMdIiXyqClJR4JRo1rJjoQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -578,9 +578,9 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.1.2", - "@angular/core": "17.1.2", - "@angular/platform-browser": "17.1.2", + "@angular/common": "17.1.3", + "@angular/core": "17.1.3", + "@angular/platform-browser": "17.1.3", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -3735,9 +3735,9 @@ } }, "node_modules/@npmcli/agent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz", - "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.1.tgz", + "integrity": "sha512-H4FrOVtNyWC8MUwL3UfjOsAihHvT1Pe8POj3JvjXhSTJipsZMtgUALCT4mGyYZNxymkUfOw3PUj6dE4QPp6osQ==", "dev": true, "dependencies": { "agent-base": "^7.1.0", @@ -3999,9 +3999,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz", - "integrity": "sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.10.0.tgz", + "integrity": "sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==", "cpu": [ "arm" ], @@ -4012,9 +4012,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz", - "integrity": "sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.10.0.tgz", + "integrity": "sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==", "cpu": [ "arm64" ], @@ -4025,9 +4025,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz", - "integrity": "sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.10.0.tgz", + "integrity": "sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==", "cpu": [ "arm64" ], @@ -4038,9 +4038,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz", - "integrity": "sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.10.0.tgz", + "integrity": "sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==", "cpu": [ "x64" ], @@ -4051,9 +4051,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz", - "integrity": "sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.10.0.tgz", + "integrity": "sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==", "cpu": [ "arm" ], @@ -4064,9 +4064,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz", - "integrity": "sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.10.0.tgz", + "integrity": "sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==", "cpu": [ "arm64" ], @@ -4077,9 +4077,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz", - "integrity": "sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.10.0.tgz", + "integrity": "sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==", "cpu": [ "arm64" ], @@ -4090,9 +4090,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz", - "integrity": "sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.10.0.tgz", + "integrity": "sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==", "cpu": [ "riscv64" ], @@ -4103,9 +4103,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz", - "integrity": "sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.10.0.tgz", + "integrity": "sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==", "cpu": [ "x64" ], @@ -4116,9 +4116,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz", - "integrity": "sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.10.0.tgz", + "integrity": "sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==", "cpu": [ "x64" ], @@ -4129,9 +4129,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz", - "integrity": "sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.10.0.tgz", + "integrity": "sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==", "cpu": [ "arm64" ], @@ -4142,9 +4142,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz", - "integrity": "sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.10.0.tgz", + "integrity": "sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==", "cpu": [ "ia32" ], @@ -4155,9 +4155,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz", - "integrity": "sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.10.0.tgz", + "integrity": "sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==", "cpu": [ "x64" ], @@ -4196,9 +4196,9 @@ } }, "node_modules/@sigstore/core": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-0.2.0.tgz", - "integrity": "sha512-THobAPPZR9pDH2CAvDLpkrYedt7BlZnsyxDe+Isq4ZmGfPy5juOFZq487vCU2EgKD7aHSiTfE/i7sN7aEdzQnA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.0.0.tgz", + "integrity": "sha512-dW2qjbWLRKGu6MIDUTBuJwXCnR8zivcSpf5inUzk7y84zqy/dji0/uahppoIgMoKeR+6pUZucrwHfkQQtiG9Rw==", "dev": true, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -4214,13 +4214,13 @@ } }, "node_modules/@sigstore/sign": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.1.tgz", - "integrity": "sha512-U5sKQEj+faE1MsnLou1f4DQQHeFZay+V9s9768lw48J4pKykPj34rWyI1lsMOGJ3Mae47Ye6q3HAJvgXO21rkQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.2.tgz", + "integrity": "sha512-mAifqvvGOCkb5BJ5d/SRrVP5+kKCGxtcHuti6lgqZalIfNxikxlJMMptOqFp9+xV5LAnJMSaMWtzvcgNZ3PlPA==", "dev": true, "dependencies": { "@sigstore/bundle": "^2.1.1", - "@sigstore/core": "^0.2.0", + "@sigstore/core": "^1.0.0", "@sigstore/protobuf-specs": "^0.2.1", "make-fetch-happen": "^13.0.0" }, @@ -4242,13 +4242,13 @@ } }, "node_modules/@sigstore/verify": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-0.1.0.tgz", - "integrity": "sha512-2UzMNYAa/uaz11NhvgRnIQf4gpLTJ59bhb8ESXaoSS5sxedfS+eLak8bsdMc+qpNQfITUTFoSKFx5h8umlRRiA==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.0.0.tgz", + "integrity": "sha512-sRU6nblDBQ4pVTWni019Kij+XQj4RP75WXN5z3qHk81dt/L8A7r3v8RgRInTup4/Jf90WNods9CcbnWj7zJ26w==", "dev": true, "dependencies": { "@sigstore/bundle": "^2.1.1", - "@sigstore/core": "^0.2.0", + "@sigstore/core": "^1.0.0", "@sigstore/protobuf-specs": "^0.2.1" }, "engines": { @@ -4444,9 +4444,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.16", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.16.tgz", - "integrity": "sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==", + "version": "20.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.17.tgz", + "integrity": "sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -5396,14 +5396,18 @@ } }, "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.6.tgz", + "integrity": "sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==", "dev": true, "dependencies": { + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "get-intrinsic": "^1.2.3", + "set-function-length": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5428,9 +5432,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001583", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001583.tgz", - "integrity": "sha512-acWTYaha8xfhA/Du/z4sNZjHUWjkiuoAi2LM+T/aL+kemKQgPT1xBb/YKjlQ0Qo8gvbHsGNplrEJ+9G3gL7i4Q==", + "version": "1.0.30001587", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", + "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", "dev": true, "funding": [ { @@ -5468,16 +5472,10 @@ "dev": true }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -5490,6 +5488,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -6194,14 +6195,15 @@ } }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.2.tgz", + "integrity": "sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.2", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -6360,9 +6362,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.656", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.656.tgz", - "integrity": "sha512-9AQB5eFTHyR3Gvt2t/NwR0le2jBSUNwCnMbUCejFWHD+so4tH40/dRLgoE+jxlPeWS43XJewyvCv+I8LPMl49Q==", + "version": "1.4.665", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.665.tgz", + "integrity": "sha512-UpyCWObBoD+nSZgOC2ToaIdZB0r9GhqT2WahPKiSki6ckkSuKhQNso8V2PrFcHBMleI/eqbKgVQgVC4Wni4ilw==", "dev": true }, "node_modules/emoji-regex": { @@ -6434,9 +6436,9 @@ } }, "node_modules/engine.io-parser": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", - "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", + "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", "dev": true, "engines": { "node": ">=10.0.0" @@ -6510,6 +6512,15 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-module-lexer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", @@ -6567,9 +6578,9 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -6888,9 +6899,9 @@ "dev": true }, "node_modules/fastq": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.0.tgz", - "integrity": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -7210,16 +7221,20 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, "dependencies": { + "es-errors": "^1.3.0", "function-bind": "^1.1.2", "has-proto": "^1.0.1", "has-symbols": "^1.0.3", "hasown": "^2.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7381,9 +7396,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", "dev": true, "dependencies": { "function-bind": "^1.1.2" @@ -7843,10 +7858,23 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dev": true, + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", "dev": true }, "node_modules/ipaddr.js": { @@ -8180,9 +8208,9 @@ } }, "node_modules/jasmine-core": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.1.tgz", - "integrity": "sha512-UrzO3fL7nnxlQXlvTynNAenL+21oUQRlzqQFsA2U11ryb4+NLOCOePZ70PTojEaUKhiFugh7dG0Q+I58xlPdWg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", + "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", "dev": true }, "node_modules/jest-worker": { @@ -8251,6 +8279,12 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true + }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -10889,9 +10923,9 @@ } }, "node_modules/rollup": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.6.tgz", - "integrity": "sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.10.0.tgz", + "integrity": "sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -10904,19 +10938,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.9.6", - "@rollup/rollup-android-arm64": "4.9.6", - "@rollup/rollup-darwin-arm64": "4.9.6", - "@rollup/rollup-darwin-x64": "4.9.6", - "@rollup/rollup-linux-arm-gnueabihf": "4.9.6", - "@rollup/rollup-linux-arm64-gnu": "4.9.6", - "@rollup/rollup-linux-arm64-musl": "4.9.6", - "@rollup/rollup-linux-riscv64-gnu": "4.9.6", - "@rollup/rollup-linux-x64-gnu": "4.9.6", - "@rollup/rollup-linux-x64-musl": "4.9.6", - "@rollup/rollup-win32-arm64-msvc": "4.9.6", - "@rollup/rollup-win32-ia32-msvc": "4.9.6", - "@rollup/rollup-win32-x64-msvc": "4.9.6", + "@rollup/rollup-android-arm-eabi": "4.10.0", + "@rollup/rollup-android-arm64": "4.10.0", + "@rollup/rollup-darwin-arm64": "4.10.0", + "@rollup/rollup-darwin-x64": "4.10.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.10.0", + "@rollup/rollup-linux-arm64-gnu": "4.10.0", + "@rollup/rollup-linux-arm64-musl": "4.10.0", + "@rollup/rollup-linux-riscv64-gnu": "4.10.0", + "@rollup/rollup-linux-x64-gnu": "4.10.0", + "@rollup/rollup-linux-x64-musl": "4.10.0", + "@rollup/rollup-win32-arm64-msvc": "4.10.0", + "@rollup/rollup-win32-ia32-msvc": "4.10.0", + "@rollup/rollup-win32-x64-msvc": "4.10.0", "fsevents": "~2.3.2" } }, @@ -11283,14 +11317,15 @@ } }, "node_modules/set-function-length": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", - "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", "dev": true, "dependencies": { - "define-data-property": "^1.1.1", + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.2", + "get-intrinsic": "^1.2.3", "gopd": "^1.0.1", "has-property-descriptors": "^1.0.1" }, @@ -11347,14 +11382,18 @@ } }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", + "integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11367,17 +11406,17 @@ "dev": true }, "node_modules/sigstore": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.0.tgz", - "integrity": "sha512-fcU9clHwEss2/M/11FFM8Jwc4PjBgbhXoNskoK5guoK0qGQBSeUbQZRJ+B2fDFIvhyf0gqCaPrel9mszbhAxug==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.1.tgz", + "integrity": "sha512-OBBSKvmjr4DCyUb+IC2p7wooOCsCNwaqvCilTJVNPo0y8lJl+LsCrfz4LtMwnw3Gn+8frt816wi1+DWZTUCpBQ==", "dev": true, "dependencies": { "@sigstore/bundle": "^2.1.1", - "@sigstore/core": "^0.2.0", + "@sigstore/core": "^1.0.0", "@sigstore/protobuf-specs": "^0.2.1", - "@sigstore/sign": "^2.2.1", + "@sigstore/sign": "^2.2.2", "@sigstore/tuf": "^2.3.0", - "@sigstore/verify": "^0.1.0" + "@sigstore/verify": "^1.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -11457,16 +11496,16 @@ } }, "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.3.tgz", + "integrity": "sha512-vfuYK48HXCTFD03G/1/zkIls3Ebr2YNa4qU9gHDZdblHLiqhJrJGkY3+0Nx0JpN9qBhJbVObc1CNciT1bIZJxw==", "dev": true, "dependencies": { - "ip": "^2.0.0", + "ip-address": "^9.0.5", "smart-buffer": "^4.2.0" }, "engines": { - "node": ">= 10.13.0", + "node": ">= 10.0.0", "npm": ">= 3.0.0" } }, @@ -11580,9 +11619,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", - "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", "dev": true }, "node_modules/spdy": { diff --git a/viewer/package.json b/viewer/package.json index 5de36dc..5407f7f 100644 --- a/viewer/package.json +++ b/viewer/package.json @@ -14,16 +14,16 @@ }, "private": true, "dependencies": { - "@angular/animations": "^17.0.0", + "@angular/animations": "^17.1.3", "@angular/cdk": "^17.1.2", - "@angular/common": "^17.0.0", - "@angular/compiler": "^17.0.0", - "@angular/core": "^17.0.0", - "@angular/forms": "^17.0.0", + "@angular/common": "^17.1.3", + "@angular/compiler": "^17.1.3", + "@angular/core": "^17.1.3", + "@angular/forms": "^17.1.3", "@angular/material": "^17.1.2", - "@angular/platform-browser": "^17.0.0", - "@angular/platform-browser-dynamic": "^17.0.0", - "@angular/router": "^17.0.0", + "@angular/platform-browser": "^17.1.3", + "@angular/platform-browser-dynamic": "^17.1.3", + "@angular/router": "^17.1.3", "@ngbracket/ngx-layout": "^17.0.1", "ajv": "^8.12.0", "rxjs": "~7.8.0", @@ -33,7 +33,7 @@ "devDependencies": { "@angular-devkit/build-angular": "^17.1.3", "@angular/cli": "^17.1.3", - "@angular/compiler-cli": "^17.0.0", + "@angular/compiler-cli": "^17.1.3", "@types/jasmine": "~5.1.0", "ajv-formats": "^2.1.1", "axios": "^1.6.7", From f6ad4066534b535c39533e170bd7d548daa0a788 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Mon, 12 Feb 2024 18:39:32 +0100 Subject: [PATCH 59/76] add merge script to build step Signed-off-by: Mirko Mollik --- viewer/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/viewer/package.json b/viewer/package.json index 5407f7f..9707864 100644 --- a/viewer/package.json +++ b/viewer/package.json @@ -4,13 +4,13 @@ "scripts": { "ng": "ng", "prestart": "npm run merge", + "prebuild": "npm run merge", "start": "ng serve", "build": "ng build", "watch": "ng build --watch --configuration development", "test": "ng test", "validate": "node scripts/validate.mjs", - "merge": "node scripts/merge-wallets.mjs", - "update:schemas": "node scripts/update-schemas.mjs" + "merge": "node scripts/merge-wallets.mjs" }, "private": true, "dependencies": { @@ -45,4 +45,4 @@ "karma-jasmine-html-reporter": "~2.1.0", "typescript": "~5.2.2" } -} \ No newline at end of file +} From 20660921fac09832aad6b94a3150491e1d82a0db Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Tue, 13 Feb 2024 08:28:02 +0100 Subject: [PATCH 60/76] improve tooltip handling Signed-off-by: Mirko Mollik --- viewer/src/app/app.component.html | 1 + viewer/src/app/app.component.ts | 4 + viewer/src/app/tooltip.ts | 10 -- viewer/src/app/types.ts | 50 ++++++++-- .../wallets-add/wallets-add.component.html | 96 +++++++++++++++++++ .../wallets-add/wallets-add.component.scss | 0 .../wallets-add/wallets-add.component.spec.ts | 23 +++++ .../app/wallets-add/wallets-add.component.ts | 73 ++++++++++++++ .../wallets-list-filter.component.html | 6 +- .../wallets-list-filter.component.ts | 20 +--- .../wallets-list/wallets-list.component.html | 20 ++-- .../wallets-list/wallets-list.component.ts | 3 +- .../wallets-show/wallets-show.component.html | 10 +- viewer/src/app/wallets.service.ts | 65 ++++++------- schema.json => viewer/src/assets/schema.json | 20 ++-- viewer/tsconfig.json | 6 +- wallets/AceID Wallet.json | 4 +- wallets/Apple Wallet.json | 4 +- wallets/Atala PRISM.json | 4 +- wallets/Authenticator.json | 4 +- wallets/BC Wallet.json | 4 +- wallets/Blockcerts Wallet.json | 4 +- wallets/Blockpass.json | 4 +- wallets/CertiShare Wallet.json | 4 +- wallets/Data Wallet.json | 4 +- wallets/Datakeeper.json | 4 +- wallets/Digital ID Wallet.json | 4 +- wallets/Gataca.json | 4 +- wallets/IDEMIA Mobile ID.json | 4 +- wallets/Identry.json | 4 +- wallets/KayTrust Wallet.json | 4 +- wallets/Lissi Wallet.json | 4 +- wallets/MATTR Wallet.json | 4 +- wallets/MYKEEPiN.json | 4 +- wallets/Microsoft Entra.json | 4 +- wallets/Paradym Wallet.json | 4 +- wallets/Sphereon Wallet.json | 4 +- wallets/Spherity Wallet.json | 4 +- wallets/Talao.json | 4 +- wallets/Tap ID.json | 4 +- wallets/VIDwallet.json | 4 +- wallets/Yivi.json | 4 +- wallets/ZADA.json | 4 +- wallets/esatus Wallet.json | 4 +- wallets/example.json | 6 +- wallets/helix id.json | 4 +- wallets/idento.one.json | 4 +- wallets/walt.id.json | 4 +- 48 files changed, 372 insertions(+), 165 deletions(-) delete mode 100644 viewer/src/app/tooltip.ts create mode 100644 viewer/src/app/wallets-add/wallets-add.component.html create mode 100644 viewer/src/app/wallets-add/wallets-add.component.scss create mode 100644 viewer/src/app/wallets-add/wallets-add.component.spec.ts create mode 100644 viewer/src/app/wallets-add/wallets-add.component.ts rename schema.json => viewer/src/assets/schema.json (94%) diff --git a/viewer/src/app/app.component.html b/viewer/src/app/app.component.html index 6a37c25..63b9fde 100644 --- a/viewer/src/app/app.component.html +++ b/viewer/src/app/app.component.html @@ -1,6 +1,7 @@ Digital Wallet and Agent overview
+ + +

+ This form will help you to generate the required JSON file that needs to be + added to the GitHub Repository +

+ +
+ + Name + + {{ walletsService.getTooltip('name') }} + @if(form.get('name')?.hasError('required')) { + Wallet name is required + } + + + Company + + {{ walletsService.getTooltip('company') }} + @if(form.get('company')?.hasError('required')) { + Company name is required + } + + + Company URL + + {{ walletsService.getTooltip('companyUrl') }} + + + Type + + Edge + Cloud + + {{ walletsService.getTooltip('type') }} + + + License + + {{ walletsService.getTooltip('license') }} + + + Capability + + Issuer + Holder + Verifier + + {{ walletsService.getTooltip('capability') }} + + + Portability + + Yes + No + + {{ walletsService.getTooltip('portability') }} + + @for (resource of walletsService.resources; track resource) { + + {{ resource.name }} + + @for (option of getValues(resource.schemaId); track option) { + {{ option }} + } + + {{ walletsService.getTooltip(resource.id) }} + + } +
+ + + JSON + + +
+} diff --git a/viewer/src/app/wallets-add/wallets-add.component.scss b/viewer/src/app/wallets-add/wallets-add.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/viewer/src/app/wallets-add/wallets-add.component.spec.ts b/viewer/src/app/wallets-add/wallets-add.component.spec.ts new file mode 100644 index 0000000..fc24dcc --- /dev/null +++ b/viewer/src/app/wallets-add/wallets-add.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { WalletsAddComponent } from './wallets-add.component'; + +describe('WalletsAddComponent', () => { + let component: WalletsAddComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [WalletsAddComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(WalletsAddComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/viewer/src/app/wallets-add/wallets-add.component.ts b/viewer/src/app/wallets-add/wallets-add.component.ts new file mode 100644 index 0000000..a3b30b8 --- /dev/null +++ b/viewer/src/app/wallets-add/wallets-add.component.ts @@ -0,0 +1,73 @@ +import { HttpClientModule } from '@angular/common/http'; +import { Component, OnInit } from '@angular/core'; +import { + FormControl, + FormGroup, + ReactiveFormsModule, + Validators, +} from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; +import { MatDialogModule } from '@angular/material/dialog'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; +import { MatSelectModule } from '@angular/material/select'; +import { FlexLayoutModule } from '@ngbracket/ngx-layout'; +import { WalletsService } from '../wallets.service'; +import { FieldResponse } from '../types'; +import { MatDividerModule } from '@angular/material/divider'; + +@Component({ + selector: 'app-wallets-add', + standalone: true, + imports: [ + MatDialogModule, + MatButtonModule, + FlexLayoutModule, + ReactiveFormsModule, + MatInputModule, + MatSelectModule, + MatIconModule, + MatDividerModule, + HttpClientModule, + ], + providers: [WalletsService], + templateUrl: './wallets-add.component.html', + styleUrl: './wallets-add.component.scss', +}) +export class WalletsAddComponent implements OnInit { + form!: FormGroup; + values!: FieldResponse; + + constructor(public walletsService: WalletsService) {} + + async ngOnInit(): Promise { + this.values = await this.walletsService.getDefinitions(); + this.form = new FormGroup({ + name: new FormControl('', [Validators.required]), + company: new FormControl('', [Validators.required]), + CompanyUrl: new FormControl('', []), + type: new FormControl('', [Validators.required]), + openSource: new FormControl(false, [Validators.required]), + license: new FormControl('', [Validators.required]), + capability: new FormControl([]), + portability: new FormControl(), + linkToApp: new FormControl(''), + }); + + this.walletsService.resources.forEach((resource) => { + this.form.addControl(resource.id, new FormControl([])); + }); + } + + getValues(key: string) { + return this.values.definitions[key]?.enum; + } + + getJSON() { + return JSON.stringify( + { ...this.form.value, $schema: '../schema.json' }, + null, + 2 + ); + } +} diff --git a/viewer/src/app/wallets-list-filter/wallets-list-filter.component.html b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.html index ce6047c..bbd1373 100644 --- a/viewer/src/app/wallets-list-filter/wallets-list-filter.component.html +++ b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.html @@ -14,7 +14,7 @@

Filter

cloud edge - {{ walletsService.getTooltip('Type') }} + {{ walletsService.getTooltip('type') }} Open Source @@ -23,7 +23,7 @@

Filter

true false - {{ walletsService.getTooltip('OpenSource') }} + {{ walletsService.getTooltip('openSource') }}
Capability @@ -51,7 +51,7 @@

Filter

{{ resource }} } - {{ res.tooltip }} + {{ walletsService.getTooltip(res.id) }}
} diff --git a/viewer/src/app/wallets-list-filter/wallets-list-filter.component.ts b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.ts index 2dab0ec..e5ab78a 100644 --- a/viewer/src/app/wallets-list-filter/wallets-list-filter.component.ts +++ b/viewer/src/app/wallets-list-filter/wallets-list-filter.component.ts @@ -9,6 +9,7 @@ import { MatIconModule } from '@angular/material/icon'; import { HttpClient, HttpClientModule } from '@angular/common/http'; import { firstValueFrom } from 'rxjs'; import { WalletsService } from '../wallets.service'; +import { FieldResponse } from '../types'; export interface WalletFilter { type?: 'cloud' | 'edge'; @@ -25,19 +26,6 @@ export interface WalletFilter { trustManagements?: string[]; } -interface Resource { - description: string; - type: string; - enum: string[]; -} - -interface FieldResponse { - $schema: 'http://json-schema.org/draft-06/schema#'; - type: 'object'; - additionalProperties: {}; - definitions: { [key: string]: Resource }; -} - @Component({ selector: 'app-wallets-list-filter', standalone: true, @@ -65,11 +53,7 @@ export class WalletsListFilterComponent implements OnInit { public walletsService: WalletsService ) {} async ngOnInit(): Promise { - this.values = await firstValueFrom( - this.httpClient.get( - 'https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json' - ) - ); + this.values = await this.walletsService.getDefinitions(); this.form = new FormGroup({ type: new FormControl(), openSource: new FormControl(), diff --git a/viewer/src/app/wallets-list/wallets-list.component.html b/viewer/src/app/wallets-list/wallets-list.component.html index 2d3bb73..974cdf0 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.html +++ b/viewer/src/app/wallets-list/wallets-list.component.html @@ -18,7 +18,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - [matTooltip]="walletsService.getTooltip('Name')" + [matTooltip]="walletsService.getTooltip('name')" > Name @@ -39,7 +39,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - [matTooltip]="walletsService.getTooltip('Company')" + [matTooltip]="walletsService.getTooltip('company')" > Company @@ -58,7 +58,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - [matTooltip]="walletsService.getTooltip('OpenSource')" + [matTooltip]="walletsService.getTooltip('openSource')" > Open Source @@ -71,7 +71,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - [matTooltip]="walletsService.getTooltip('linkToApp')" + matTooltip="Link to the app stores" > Link to app @@ -123,9 +123,11 @@
- Holder - Issuer - Verifier + Holder + Issuer + Verifier
@@ -134,7 +136,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - [matTooltip]="walletsService.getTooltip('Type')" + [matTooltip]="walletsService.getTooltip('type')" > Type @@ -161,7 +163,7 @@ mat-header-cell *matHeaderCellDef mat-sort-header - [matTooltip]="resource.tooltip" + [matTooltip]="walletsService.getTooltip(resource.id)" > {{ resource.name }} diff --git a/viewer/src/app/wallets-list/wallets-list.component.ts b/viewer/src/app/wallets-list/wallets-list.component.ts index 3a8a2a1..68741e6 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.ts +++ b/viewer/src/app/wallets-list/wallets-list.component.ts @@ -115,7 +115,8 @@ export class WalletsListComponent implements OnInit, AfterViewInit { if (res.capability && res.capability.length > 0) { values = values.filter( (wallet) => - res.capability?.includes('holder') && wallet.holderCapability + wallet.capability && + res.capability?.every((cap) => wallet.capability?.includes(cap)) ); } if (res.portability) { diff --git a/viewer/src/app/wallets-show/wallets-show.component.html b/viewer/src/app/wallets-show/wallets-show.component.html index 61806a2..3f53dee 100644 --- a/viewer/src/app/wallets-show/wallets-show.component.html +++ b/viewer/src/app/wallets-show/wallets-show.component.html @@ -70,16 +70,20 @@

{{ wallet.name }}

Holder capability
- {{ wallet.holderCapability ?? 'unknown' }} + {{ + wallet.capability?.includes('holder') ?? 'unknown' + }}
Issuer capability
- {{ wallet.issuerCapability ?? 'unknown' }} + {{ + wallet.capability?.includes('issuer') ?? 'unknown' + }}
Verifier capability
{{ - wallet.verifierCapability ?? 'unknown' + wallet.capability?.includes('verifier') ?? 'unknown' }}
diff --git a/viewer/src/app/wallets.service.ts b/viewer/src/app/wallets.service.ts index fe4e8d8..a6ae17f 100644 --- a/viewer/src/app/wallets.service.ts +++ b/viewer/src/app/wallets.service.ts @@ -2,28 +2,10 @@ import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { firstValueFrom } from 'rxjs'; import { Wallet } from './types'; -import { values } from './tooltip'; - -export type ResourceType = - | 'credentialProfiles' - | 'credentialFormats' - | 'issuanceProtocols' - | 'keyManagements' - | 'presentationProtocols' - | 'signingAlgorithms' - | 'statusManagements' - | 'trustManagements'; - -interface Resource { - // unique identifier of the column - id: ResourceType; - // unique identifier of the schema - schemaId: string; - // name of the column - name: string; - //tooltip to show to the user - tooltip: string; -} +import schema from '../assets/schema.json'; +import { FieldResponse } from './types'; +import { ResourceType } from './types'; +import { Resource } from './types'; @Injectable({ providedIn: 'root', @@ -34,64 +16,78 @@ export class WalletsService { id: 'credentialProfiles', schemaId: 'Credential-Profile', name: 'Supported Profiles', - tooltip: 'Supported profiles', }, { id: 'credentialFormats', schemaId: 'Credential-Format', name: 'Supported Formats', - tooltip: 'Supported formats', }, { id: 'issuanceProtocols', schemaId: 'Issuance-Protocol', name: 'Supported Issuance Protocols', - tooltip: 'Supported issuance protocols', }, { id: 'keyManagements', schemaId: 'Key-Management', name: 'Supported Key Managements', - tooltip: 'Supported key managements', }, { id: 'presentationProtocols', schemaId: 'Presentation-Protocol', name: 'Supported Presentation Protocols', - tooltip: 'Supported presentation protocols', }, { id: 'signingAlgorithms', schemaId: 'Signing-Algorithm', name: 'Supported Signing Algorithms', - tooltip: 'Supported signing algorithms', }, { id: 'statusManagements', schemaId: 'Status-Management', name: 'Supported Status Managements', - tooltip: 'Supported status managements', }, { id: 'trustManagements', schemaId: 'Trust-Management', name: 'Supported Trust Managements', - tooltip: 'Supported trust managements', }, ]; constructor(private httpClient: HttpClient) {} + /** + * Loads the wallets from the assets folder + * @returns + */ loadWallets() { return firstValueFrom(this.httpClient.get('assets/wallets.json')); } + /** + * Gets the definitions from the Credential Profile comparison SIG + * @returns + */ + async getDefinitions() { + return firstValueFrom( + this.httpClient.get( + 'https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json' + ) + ); + } + find(name: string) { return this.loadWallets().then((wallets) => wallets.find((wallet) => wallet.name === name) ); } + /** + * Returns the link to the resource to the credential comparison SIG + * @param resourceType + * @param key + * @returns + */ getLink(resourceType: ResourceType, key: string) { const url = 'https://openwallet-foundation.github.io/credential-format-comparison-sig/#'; @@ -115,7 +111,12 @@ export class WalletsService { } } - getTooltip(resourceType: keyof typeof values) { - return values[resourceType]; + /** + * Returns the tooltip for the resource + * @param resourceType + * @returns + */ + getTooltip(resourceType: keyof typeof schema.properties) { + return schema.properties[resourceType].description; } } diff --git a/schema.json b/viewer/src/assets/schema.json similarity index 94% rename from schema.json rename to viewer/src/assets/schema.json index 6c7d0a9..1be488b 100644 --- a/schema.json +++ b/viewer/src/assets/schema.json @@ -47,17 +47,13 @@ "type": "string", "description": "add the license of the wallet. In case you have multiple licenses, add them here." }, - "holderCapability": { - "type": "boolean", - "description": "is the wallet capable of the holder role" - }, - "issuerCapability": { - "type": "boolean", - "description": "is the wallet capable of the issuer role" - }, - "verifierCapability": { - "type": "boolean", - "description": "is the wallet capable of the verifier role" + "capability": { + "type": "array", + "description": "list of capabilities of the wallet", + "items": { + "type": "string", + "enum": ["holder", "issuer", "verifier"] + } }, "type": { "type": "string", @@ -107,7 +103,7 @@ "$ref": "https://openwallet-foundation.github.io/credential-format-comparison-sig/assets/schemas/fields.json#/definitions/Signing-Algorithm" } }, - "statusAlgorithms": { + "statusManagements": { "type": "array", "description": "list of supported status algorithms, it has to be a valid credential format from the Credential Formats Comparison SIG", "$comment": "All values can be found here: https://openwallet-foundation.github.io/credential-format-comparison-sig/#/resources/Status%20Algorithm", diff --git a/viewer/tsconfig.json b/viewer/tsconfig.json index f37b67f..40be380 100644 --- a/viewer/tsconfig.json +++ b/viewer/tsconfig.json @@ -19,10 +19,8 @@ "target": "ES2022", "module": "ES2022", "useDefineForClassFields": false, - "lib": [ - "ES2022", - "dom" - ] + "lib": ["ES2022", "dom"], + "resolveJsonModule": true }, "angularCompilerOptions": { "enableI18nLegacyMessageIdFormat": false, diff --git a/wallets/AceID Wallet.json b/wallets/AceID Wallet.json index b726aeb..1429d10 100644 --- a/wallets/AceID Wallet.json +++ b/wallets/AceID Wallet.json @@ -5,6 +5,6 @@ "eassi": "No", "logo": "logos/aceid-wallet.png", "name": "AceID Wallet", - "$schema": "../schema.json", + "$schema": "../viewer/src/assets/schema.json", "openSource": false -} \ No newline at end of file +} diff --git a/wallets/Apple Wallet.json b/wallets/Apple Wallet.json index 2b52f65..7ab9014 100644 --- a/wallets/Apple Wallet.json +++ b/wallets/Apple Wallet.json @@ -3,6 +3,6 @@ "eassi": "No", "logo": "logos/apple-wallet.png", "name": "Apple Wallet", - "$schema": "../schema.json", + "$schema": "../viewer/src/assets/schema.json", "openSource": false -} \ No newline at end of file +} diff --git a/wallets/Atala PRISM.json b/wallets/Atala PRISM.json index 9083919..467d1a2 100644 --- a/wallets/Atala PRISM.json +++ b/wallets/Atala PRISM.json @@ -27,5 +27,5 @@ "selectiveDisclosure": "No", "signatureAlgorithm": "ECDSA, soon: CL", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Authenticator.json b/wallets/Authenticator.json index e0dbd1e..0538f55 100644 --- a/wallets/Authenticator.json +++ b/wallets/Authenticator.json @@ -3,6 +3,6 @@ "eassi": "No", "logo": "logos/authenticator.png", "name": "Authenticator", - "$schema": "../schema.json", + "$schema": "../viewer/src/assets/schema.json", "openSource": false -} \ No newline at end of file +} diff --git a/wallets/BC Wallet.json b/wallets/BC Wallet.json index 99bcdaa..eb6bed1 100644 --- a/wallets/BC Wallet.json +++ b/wallets/BC Wallet.json @@ -3,6 +3,6 @@ "eassi": "No", "logo": "logos/bc-wallet.png", "name": "BC Wallet", - "$schema": "../schema.json", + "$schema": "../viewer/src/assets/schema.json", "openSource": false -} \ No newline at end of file +} diff --git a/wallets/Blockcerts Wallet.json b/wallets/Blockcerts Wallet.json index bec4ce7..a0e3241 100644 --- a/wallets/Blockcerts Wallet.json +++ b/wallets/Blockcerts Wallet.json @@ -6,5 +6,5 @@ "logo": "logos/blockcerts-wallet.png", "name": "Blockcerts Wallet", "openSource": true, - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Blockpass.json b/wallets/Blockpass.json index 2094bc3..2cc6d1b 100644 --- a/wallets/Blockpass.json +++ b/wallets/Blockpass.json @@ -6,5 +6,5 @@ "logo": "logos/blockpass.png", "name": "Blockpass", "openSource": false, - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/CertiShare Wallet.json b/wallets/CertiShare Wallet.json index ec0102b..6b7c099 100644 --- a/wallets/CertiShare Wallet.json +++ b/wallets/CertiShare Wallet.json @@ -27,5 +27,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "BBS+", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Data Wallet.json b/wallets/Data Wallet.json index 9714865..d15676b 100644 --- a/wallets/Data Wallet.json +++ b/wallets/Data Wallet.json @@ -38,5 +38,5 @@ "urlWebApp": "https://business.igrant.io/", "urlWebsite": "https://igrant.io/datawallet.html", "verifierUnlinkability": "Yes", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Datakeeper.json b/wallets/Datakeeper.json index 4ce0650..19c40ab 100644 --- a/wallets/Datakeeper.json +++ b/wallets/Datakeeper.json @@ -29,5 +29,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "ECDSA", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Digital ID Wallet.json b/wallets/Digital ID Wallet.json index 8fc53b7..92e0f5f 100644 --- a/wallets/Digital ID Wallet.json +++ b/wallets/Digital ID Wallet.json @@ -3,6 +3,6 @@ "eassi": "No", "logo": "logos/digital-id-wallet.png", "name": "Digital ID Wallet", - "$schema": "../schema.json", + "$schema": "../viewer/src/assets/schema.json", "openSource": false -} \ No newline at end of file +} diff --git a/wallets/Gataca.json b/wallets/Gataca.json index 62fb652..975f5fe 100644 --- a/wallets/Gataca.json +++ b/wallets/Gataca.json @@ -29,5 +29,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "EdDSA, RSA, secp256k, P-256, CadEs", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/IDEMIA Mobile ID.json b/wallets/IDEMIA Mobile ID.json index e9aa2a5..17c086e 100644 --- a/wallets/IDEMIA Mobile ID.json +++ b/wallets/IDEMIA Mobile ID.json @@ -3,6 +3,6 @@ "eassi": "No", "logo": "logos/idema.png", "name": "IDEMIA Mobile ID", - "$schema": "../schema.json", + "$schema": "../viewer/src/assets/schema.json", "openSource": false -} \ No newline at end of file +} diff --git a/wallets/Identry.json b/wallets/Identry.json index 15ea23f..c79bc0b 100644 --- a/wallets/Identry.json +++ b/wallets/Identry.json @@ -26,5 +26,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "CL", "verifierUnlinkability": "Yes", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/KayTrust Wallet.json b/wallets/KayTrust Wallet.json index 0ef1b68..35a22e2 100644 --- a/wallets/KayTrust Wallet.json +++ b/wallets/KayTrust Wallet.json @@ -6,5 +6,5 @@ "logo": "logos/kaytrust-wallet.png", "name": "KayTrust Wallet", "openSource": false, - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Lissi Wallet.json b/wallets/Lissi Wallet.json index f981f15..7ee008a 100644 --- a/wallets/Lissi Wallet.json +++ b/wallets/Lissi Wallet.json @@ -28,5 +28,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "CL", "verifierUnlinkability": "Yes", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/MATTR Wallet.json b/wallets/MATTR Wallet.json index 0379d94..790899b 100644 --- a/wallets/MATTR Wallet.json +++ b/wallets/MATTR Wallet.json @@ -29,5 +29,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "BBS+, EdDSA", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/MYKEEPiN.json b/wallets/MYKEEPiN.json index 1c53407..d30207f 100644 --- a/wallets/MYKEEPiN.json +++ b/wallets/MYKEEPiN.json @@ -29,5 +29,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "ECDSA", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Microsoft Entra.json b/wallets/Microsoft Entra.json index 3fae836..9546828 100644 --- a/wallets/Microsoft Entra.json +++ b/wallets/Microsoft Entra.json @@ -4,5 +4,5 @@ "logo": "logos/microsoft-entra.png", "name": "Microsoft Entra", "openSource": false, - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Paradym Wallet.json b/wallets/Paradym Wallet.json index 24d6917..c19315f 100644 --- a/wallets/Paradym Wallet.json +++ b/wallets/Paradym Wallet.json @@ -29,5 +29,5 @@ "selectiveDisclosure": "No", "signatureAlgorithm": "EdDSA, ES256", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Sphereon Wallet.json b/wallets/Sphereon Wallet.json index ea0df81..9b53845 100644 --- a/wallets/Sphereon Wallet.json +++ b/wallets/Sphereon Wallet.json @@ -29,5 +29,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "BBS+, ECDSA, EdDSA, RSA", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Spherity Wallet.json b/wallets/Spherity Wallet.json index 566dfe6..e7161be 100644 --- a/wallets/Spherity Wallet.json +++ b/wallets/Spherity Wallet.json @@ -26,5 +26,5 @@ "selectiveDisclosure": "No", "signatureAlgorithm": "CL, BBS+, EdDSA", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Talao.json b/wallets/Talao.json index a819992..c2a3872 100644 --- a/wallets/Talao.json +++ b/wallets/Talao.json @@ -27,5 +27,5 @@ "selectiveDisclosure": "No", "signatureAlgorithm": "ECDSA", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Tap ID.json b/wallets/Tap ID.json index b71b6e8..407bd89 100644 --- a/wallets/Tap ID.json +++ b/wallets/Tap ID.json @@ -19,5 +19,5 @@ "revocationAlgorithm": "Status List 2021", "selectiveDisclosure": "Yes", "signatureAlgorithm": "BBS+, ECDSA", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/VIDwallet.json b/wallets/VIDwallet.json index 6a8f326..d6b8352 100644 --- a/wallets/VIDwallet.json +++ b/wallets/VIDwallet.json @@ -28,5 +28,5 @@ "selectiveDisclosure": "No", "signatureAlgorithm": "ECDSA, EdDSA", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/Yivi.json b/wallets/Yivi.json index 0df6455..e486464 100644 --- a/wallets/Yivi.json +++ b/wallets/Yivi.json @@ -29,5 +29,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "CL, Schnorr", "verifierUnlinkability": "Yes", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/ZADA.json b/wallets/ZADA.json index 594a3ac..72e708c 100644 --- a/wallets/ZADA.json +++ b/wallets/ZADA.json @@ -28,5 +28,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "CL, RSA", "verifierUnlinkability": "Yes", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/esatus Wallet.json b/wallets/esatus Wallet.json index 56d0d71..0ac6b01 100644 --- a/wallets/esatus Wallet.json +++ b/wallets/esatus Wallet.json @@ -32,5 +32,5 @@ "urlGooglePlayStore": "https://play.google.com/store/apps/details?id=com.esatus.wallet&hl=de_DE&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1", "urlWebsite": "https://esatus.com/index.html%3Fp=7663&lang=en.html", "verifierUnlinkability": "Yes", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/example.json b/wallets/example.json index 781dc46..30d8a38 100644 --- a/wallets/example.json +++ b/wallets/example.json @@ -1,5 +1,5 @@ { - "$schema": "../schema.json", + "$schema": "../viewer/src/assets/schema.json", "company": "Example Company", "companyUrl": "https://openwallet.foundation/", "urlWebsite": "https://github.com/openwallet-foundation/digital-wallet-and-agent-overviews-sig", @@ -9,9 +9,7 @@ "openSource": true, "type": "cloud", "portability": true, - "holderCapability": true, - "issuerCapability": true, - "verifierCapability": true, + "capability": ["holder", "issuer"], "credentialProfiles": ["EBSI", "HAIP"], "credentialFormats": ["MDOC"], "downloadSource": "https://github.com/openwallet-foundation/digital-wallet-and-agent-overviews-sig", diff --git a/wallets/helix id.json b/wallets/helix id.json index 06215e9..7c257be 100644 --- a/wallets/helix id.json +++ b/wallets/helix id.json @@ -29,5 +29,5 @@ "selectiveDisclosure": "Yes", "signatureAlgorithm": "BBS+, ECDSA", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} diff --git a/wallets/idento.one.json b/wallets/idento.one.json index c6956da..9309f47 100644 --- a/wallets/idento.one.json +++ b/wallets/idento.one.json @@ -2,6 +2,6 @@ "eassi": "No", "logo": "logos/idento-one.png", "name": "idento.one", - "$schema": "../schema.json", + "$schema": "../viewer/src/assets/schema.json", "openSource": false -} \ No newline at end of file +} diff --git a/wallets/walt.id.json b/wallets/walt.id.json index 562a1d9..a0a9ae4 100644 --- a/wallets/walt.id.json +++ b/wallets/walt.id.json @@ -26,5 +26,5 @@ "selectiveDisclosure": "No", "signatureAlgorithm": "ECDSA, EdDSA, RSA", "verifierUnlinkability": "No", - "$schema": "../schema.json" -} \ No newline at end of file + "$schema": "../viewer/src/assets/schema.json" +} From 625afc244e3a937528c28d0c1d797c460c330064 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Fri, 16 Feb 2024 14:25:41 +0100 Subject: [PATCH 61/76] improve add wallet dialog Signed-off-by: Mirko Mollik --- .../wallets-add/wallets-add.component.html | 39 +++++++++++++++++++ .../app/wallets-add/wallets-add.component.ts | 17 +++++++- 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/viewer/src/app/wallets-add/wallets-add.component.html b/viewer/src/app/wallets-add/wallets-add.component.html index d356430..673feaf 100644 --- a/viewer/src/app/wallets-add/wallets-add.component.html +++ b/viewer/src/app/wallets-add/wallets-add.component.html @@ -6,6 +6,35 @@

Add wallet

+

+ With the following steps you are able to add your wallet or agent to this + list. You need a Github Account to do so, every entry can be updated in the + future. +

+
+

This form will help you to generate the required JSON file that needs to be added to the GitHub Repository @@ -25,6 +54,11 @@

Add wallet

Wallet name is required } + + Logo + + {{ walletsService.getTooltip('logo') }} + Company @@ -93,4 +127,9 @@

Add wallet

>
+ + } diff --git a/viewer/src/app/wallets-add/wallets-add.component.ts b/viewer/src/app/wallets-add/wallets-add.component.ts index a3b30b8..83bdbce 100644 --- a/viewer/src/app/wallets-add/wallets-add.component.ts +++ b/viewer/src/app/wallets-add/wallets-add.component.ts @@ -15,6 +15,8 @@ import { FlexLayoutModule } from '@ngbracket/ngx-layout'; import { WalletsService } from '../wallets.service'; import { FieldResponse } from '../types'; import { MatDividerModule } from '@angular/material/divider'; +import { ClipboardModule, Clipboard } from '@angular/cdk/clipboard'; +import { MatSnackBar, MatSnackBarModule } from '@angular/material/snack-bar'; @Component({ selector: 'app-wallets-add', @@ -29,6 +31,8 @@ import { MatDividerModule } from '@angular/material/divider'; MatIconModule, MatDividerModule, HttpClientModule, + ClipboardModule, + MatSnackBarModule, ], providers: [WalletsService], templateUrl: './wallets-add.component.html', @@ -38,14 +42,19 @@ export class WalletsAddComponent implements OnInit { form!: FormGroup; values!: FieldResponse; - constructor(public walletsService: WalletsService) {} + constructor( + public walletsService: WalletsService, + private clipboard: Clipboard, + private snackBar: MatSnackBar + ) {} async ngOnInit(): Promise { this.values = await this.walletsService.getDefinitions(); this.form = new FormGroup({ name: new FormControl('', [Validators.required]), + logo: new FormControl(''), company: new FormControl('', [Validators.required]), - CompanyUrl: new FormControl('', []), + CompanyUrl: new FormControl(''), type: new FormControl('', [Validators.required]), openSource: new FormControl(false, [Validators.required]), license: new FormControl('', [Validators.required]), @@ -70,4 +79,8 @@ export class WalletsAddComponent implements OnInit { 2 ); } + copy() { + this.clipboard.copy(this.getJSON()); + this.snackBar.open('Copied to clipboard', 'Dismiss', { duration: 3000 }); + } } From 3f149f7523c0a1b3a6d4837cc316aaa4453fddc4 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Fri, 16 Feb 2024 14:40:29 +0100 Subject: [PATCH 62/76] add filter to fragment Signed-off-by: Mirko Mollik --- .../wallets-list/wallets-list.component.ts | 94 +++++++++++-------- 1 file changed, 57 insertions(+), 37 deletions(-) diff --git a/viewer/src/app/wallets-list/wallets-list.component.ts b/viewer/src/app/wallets-list/wallets-list.component.ts index 68741e6..331902b 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.ts +++ b/viewer/src/app/wallets-list/wallets-list.component.ts @@ -11,7 +11,7 @@ import { FlexLayoutModule } from '@ngbracket/ngx-layout'; import { Wallet } from '../types'; import { WalletsService } from '../wallets.service'; import { CommonModule } from '@angular/common'; -import { RouterModule } from '@angular/router'; +import { ActivatedRoute, Router, RouterModule } from '@angular/router'; import { MatChipsModule } from '@angular/material/chips'; import { WalletFilter, @@ -66,19 +66,21 @@ export class WalletsListComponent implements OnInit, AfterViewInit { constructor( public walletsService: WalletsService, - private dialog: MatDialog + private dialog: MatDialog, + private route: ActivatedRoute, + private router: Router ) {} /** * Fetches the wallets from the json file and sets the dataSource to the wallets */ async ngOnInit(): Promise { - if (localStorage.getItem('filter')) { - this.filter = JSON.parse(localStorage.getItem('filter')!); - } + //subscribe to the fragment of the route, if it changes, update the filter and load the wallets + this.route.fragment.subscribe(async (fragment) => { + this.filter = JSON.parse(fragment ?? '{}'); + this.loadWallets(); + }); this.walletsService.resources.forEach((res) => this.columns.push(res.id)); - const wallets = await this.walletsService.loadWallets(); - this.dataSource.data = wallets; this.displayedColumns = this.columns; } @@ -101,40 +103,58 @@ export class WalletsListComponent implements OnInit, AfterViewInit { ) .afterClosed() .subscribe(async (res: WalletFilter) => { - localStorage.setItem('filter', JSON.stringify(res)); + this.router.navigate([], { + relativeTo: this.route, + fragment: JSON.stringify(res), + replaceUrl: false, + }); this.filter = res; - let values = await this.walletsService.loadWallets(); - if (res.type) { - values = values.filter((wallet) => wallet.type === res.type); - } - if (res.openSource) { - values = values.filter( - (wallet) => wallet.openSource === (res.openSource === 'true') - ); - } - if (res.capability && res.capability.length > 0) { - values = values.filter( - (wallet) => - wallet.capability && - res.capability?.every((cap) => wallet.capability?.includes(cap)) - ); - } - if (res.portability) { - values = values.filter( - (wallet) => wallet.portability === (res.portability === 'true') + this.loadWallets(); + }); + } + + /** + * Load the filtered wallets + */ + private async loadWallets() { + let values = await this.walletsService.loadWallets(); + if (this.filter) { + if (this.filter.type) { + values = values.filter((wallet) => wallet.type === this.filter!.type); + } + if (this.filter.openSource) { + values = values.filter( + (wallet) => wallet.openSource === (this.filter!.openSource === 'true') + ); + } + if (this.filter.capability && this.filter.capability.length > 0) { + values = values.filter( + (wallet) => + wallet.capability && + this.filter!.capability?.every((cap) => + wallet.capability?.includes(cap) + ) + ); + } + if (this.filter.portability) { + values = values.filter( + (wallet) => + wallet.portability === (this.filter!.portability === 'true') + ); + } + + const resources = this.walletsService.resources.map((res) => res.id); + resources.forEach((resource) => { + if (this.filter![resource]) { + values = values.filter((wallet) => + this.filter![resource]?.every((res) => + wallet[resource]?.includes(res) + ) ); } - - const resources = this.walletsService.resources.map((res) => res.id); - resources.forEach((resource) => { - if (res[resource]) { - values = values.filter((wallet) => - res[resource]?.every((res) => wallet[resource]?.includes(res)) - ); - } - }); - this.dataSource.data = values; }); + } + this.dataSource.data = values; } /** From bc4184acf0804d48f8d7e7475d4a8907000aa005 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Thu, 22 Feb 2024 18:04:06 +0100 Subject: [PATCH 63/76] update angular Signed-off-by: Mirko Mollik --- viewer/package-lock.json | 1497 ++++++++++++++++++++++++-------------- viewer/package.json | 24 +- 2 files changed, 945 insertions(+), 576 deletions(-) diff --git a/viewer/package-lock.json b/viewer/package-lock.json index aefece2..b4557f8 100644 --- a/viewer/package-lock.json +++ b/viewer/package-lock.json @@ -8,16 +8,16 @@ "name": "viewer", "version": "0.0.0", "dependencies": { - "@angular/animations": "^17.1.3", + "@angular/animations": "^17.2.2", "@angular/cdk": "^17.1.2", - "@angular/common": "^17.1.3", - "@angular/compiler": "^17.1.3", - "@angular/core": "^17.1.3", - "@angular/forms": "^17.1.3", + "@angular/common": "^17.2.2", + "@angular/compiler": "^17.2.2", + "@angular/core": "^17.2.2", + "@angular/forms": "^17.2.2", "@angular/material": "^17.1.2", - "@angular/platform-browser": "^17.1.3", - "@angular/platform-browser-dynamic": "^17.1.3", - "@angular/router": "^17.1.3", + "@angular/platform-browser": "^17.2.2", + "@angular/platform-browser-dynamic": "^17.2.2", + "@angular/router": "^17.2.2", "@ngbracket/ngx-layout": "^17.0.1", "ajv": "^8.12.0", "rxjs": "~7.8.0", @@ -25,9 +25,9 @@ "zone.js": "~0.14.2" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.1.3", - "@angular/cli": "^17.1.3", - "@angular/compiler-cli": "^17.1.3", + "@angular-devkit/build-angular": "^17.2.0", + "@angular/cli": "^17.2.0", + "@angular/compiler-cli": "^17.2.2", "@types/jasmine": "~5.1.0", "ajv-formats": "^2.1.1", "axios": "^1.6.7", @@ -54,12 +54,12 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1701.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1701.3.tgz", - "integrity": "sha512-K5rvhslbXNwx04cCLviEJCA27MwoJRMMzALFXySi9BqjZnZUOtZnOBuuCdrTPaRmFaYqGO4Im5GNzpbb/NB8zg==", + "version": "0.1702.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1702.0.tgz", + "integrity": "sha512-+HkOYhdq8ez2+yqpxaQ6XtQevOYJNaDpM4oDmZ2lIpiIusFNsmpY2b9iL5PZGb4EfUgN8KsY3n9Q9fmRlRB9eA==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.1.3", + "@angular-devkit/core": "17.2.0", "rxjs": "7.8.1" }, "engines": { @@ -69,71 +69,70 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.1.3.tgz", - "integrity": "sha512-pusFVSWMnrm2GrF3+Fw19OhA2rNw4WkfTMUruhaKAjW5QIvZ3wHYf+pH//1Ud+tuhFBi9BH7UALP2vnJMu1ehw==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.2.0.tgz", + "integrity": "sha512-zO2YKcRRL3Ck3KZ3Ir/lWlciYIguJd3W9iYICKkeK4whi94y3NhrCy0Iualoo2WP7hE043uKQ0SwtVABft0SgA==", "dev": true, "dependencies": { "@ampproject/remapping": "2.2.1", - "@angular-devkit/architect": "0.1701.3", - "@angular-devkit/build-webpack": "0.1701.3", - "@angular-devkit/core": "17.1.3", - "@babel/core": "7.23.7", + "@angular-devkit/architect": "0.1702.0", + "@angular-devkit/build-webpack": "0.1702.0", + "@angular-devkit/core": "17.2.0", + "@babel/core": "7.23.9", "@babel/generator": "7.23.6", "@babel/helper-annotate-as-pure": "7.22.5", "@babel/helper-split-export-declaration": "7.22.6", - "@babel/plugin-transform-async-generator-functions": "7.23.7", + "@babel/plugin-transform-async-generator-functions": "7.23.9", "@babel/plugin-transform-async-to-generator": "7.23.3", - "@babel/plugin-transform-runtime": "7.23.7", - "@babel/preset-env": "7.23.7", - "@babel/runtime": "7.23.7", + "@babel/plugin-transform-runtime": "7.23.9", + "@babel/preset-env": "7.23.9", + "@babel/runtime": "7.23.9", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "17.1.3", - "@vitejs/plugin-basic-ssl": "1.0.2", + "@ngtools/webpack": "17.2.0", + "@vitejs/plugin-basic-ssl": "1.1.0", "ansi-colors": "4.1.3", - "autoprefixer": "10.4.16", + "autoprefixer": "10.4.17", "babel-loader": "9.1.3", "babel-plugin-istanbul": "6.1.1", "browserslist": "^4.21.5", "copy-webpack-plugin": "11.0.0", "critters": "0.0.20", - "css-loader": "6.8.1", - "esbuild-wasm": "0.19.11", + "css-loader": "6.10.0", + "esbuild-wasm": "0.20.0", "fast-glob": "3.3.2", "http-proxy-middleware": "2.0.6", "https-proxy-agent": "7.0.2", - "inquirer": "9.2.12", - "jsonc-parser": "3.2.0", + "inquirer": "9.2.14", + "jsonc-parser": "3.2.1", "karma-source-map-support": "1.4.0", "less": "4.2.0", "less-loader": "11.1.0", "license-webpack-plugin": "4.0.2", "loader-utils": "3.2.1", - "magic-string": "0.30.5", - "mini-css-extract-plugin": "2.7.6", + "magic-string": "0.30.7", + "mini-css-extract-plugin": "2.8.0", "mrmime": "2.0.0", "open": "8.4.2", "ora": "5.4.1", "parse5-html-rewriting-stream": "7.0.0", - "picomatch": "3.0.1", - "piscina": "4.2.1", - "postcss": "8.4.33", - "postcss-loader": "7.3.4", + "picomatch": "4.0.1", + "piscina": "4.3.1", + "postcss": "8.4.35", + "postcss-loader": "8.1.0", "resolve-url-loader": "5.0.0", "rxjs": "7.8.1", - "sass": "1.69.7", - "sass-loader": "13.3.3", - "semver": "7.5.4", + "sass": "1.70.0", + "sass-loader": "14.1.0", + "semver": "7.6.0", "source-map-loader": "5.0.0", "source-map-support": "0.5.21", - "terser": "5.26.0", - "text-table": "0.2.0", + "terser": "5.27.0", "tree-kill": "1.2.2", "tslib": "2.6.2", - "undici": "6.2.1", + "undici": "6.6.2", "vite": "5.0.12", "watchpack": "2.4.0", - "webpack": "5.89.0", + "webpack": "5.90.1", "webpack-dev-middleware": "6.1.1", "webpack-dev-server": "4.15.1", "webpack-merge": "5.10.0", @@ -145,7 +144,7 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.19.11" + "esbuild": "0.20.0" }, "peerDependencies": { "@angular/compiler-cli": "^17.0.0", @@ -198,13 +197,46 @@ } } }, + "node_modules/@angular-devkit/build-angular/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1701.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1701.3.tgz", - "integrity": "sha512-fpZtJf6yvXM7mX1T83caeYpa0e3zPv7sgKmx0ZIJKGL8+DETgNcCCeCTgui7HMBcHGCD8yj72DZ8xMMBWwVBIA==", + "version": "0.1702.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1702.0.tgz", + "integrity": "sha512-HrJ01MXlXNCeJeohIOIjpulWktUUJQpq01OWX4UazLnN0DAHKIFCwiKZZio5rYIFFUjdKI0+cCGxFbkzetRjWg==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1701.3", + "@angular-devkit/architect": "0.1702.0", "rxjs": "7.8.1" }, "engines": { @@ -218,15 +250,15 @@ } }, "node_modules/@angular-devkit/core": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.1.3.tgz", - "integrity": "sha512-iuVK4hyW3YhusxIi8zGBvvVA9pWtDT3H6LQbWdVk9D3jXCZBIrEMklvAiJErqficKnUurf6gtFOeA8Fop6GotA==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.2.0.tgz", + "integrity": "sha512-GIOYHChtDqSOvSiEefJ6hAledEl55J5Pxw8JuKXrM4IJBbviI3c40FAc0Lu5NCj2lYoELOhrLy/UP36sLy+DGA==", "dev": true, "dependencies": { "ajv": "8.12.0", "ajv-formats": "2.1.1", - "jsonc-parser": "3.2.0", - "picomatch": "3.0.1", + "jsonc-parser": "3.2.1", + "picomatch": "4.0.1", "rxjs": "7.8.1", "source-map": "0.7.4" }, @@ -245,14 +277,14 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.1.3.tgz", - "integrity": "sha512-zKoWG1hDfvi1vR9Hqoca9hWo9vDg8evmQvGcBW5jXR5ndZi5Oit/uDcGdA8WUKvBd1EG7WMqp0FgcDR9EA9WCw==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-17.2.0.tgz", + "integrity": "sha512-gGyUVYRKTeRODW9S0MohfBlryoUHrbxqN27olhktrM/fZavyUVnZpyfb8okp6tTUz9HWmGac8ULE6IU+YW16gw==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.1.3", - "jsonc-parser": "3.2.0", - "magic-string": "0.30.5", + "@angular-devkit/core": "17.2.0", + "jsonc-parser": "3.2.1", + "magic-string": "0.30.7", "ora": "5.4.1", "rxjs": "7.8.1" }, @@ -263,9 +295,9 @@ } }, "node_modules/@angular/animations": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.1.3.tgz", - "integrity": "sha512-AS9CHOjjKqkuAzlKEMJfAkZfkIdSoagB3D8HwvH+ZHo6GVJc9KbtLQn/okNijFK+Fg7QK/hYbQ3lJhjgk0GQDA==", + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-17.2.2.tgz", + "integrity": "sha512-ENr35pDVslioJO8zBLo1QClzC7NqTc0Du36UMtWkw3cg+QRLnAZ7zfju5w0O8K7Z3omDtFzgVSPfyS0VDkrXPQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -273,7 +305,7 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.1.3" + "@angular/core": "17.2.2" } }, "node_modules/@angular/cdk": { @@ -293,27 +325,27 @@ } }, "node_modules/@angular/cli": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.1.3.tgz", - "integrity": "sha512-ysPWDdqo2cwfeskKVAg8p4C8xuezWcIWyW/ACSjWw6yp4OZvyVd6cGZrc0POVZzAPtTOYJSgWOpF/DCHQFluSg==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-17.2.0.tgz", + "integrity": "sha512-JSfNQB76qrc8QNPLUvvqR10T4+WUrfz+ogmOliO+jAdhbpfZQ4tIt0WwUYvo+0foM8x7hTe3Wdhg8zWwteBnuw==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1701.3", - "@angular-devkit/core": "17.1.3", - "@angular-devkit/schematics": "17.1.3", - "@schematics/angular": "17.1.3", + "@angular-devkit/architect": "0.1702.0", + "@angular-devkit/core": "17.2.0", + "@angular-devkit/schematics": "17.2.0", + "@schematics/angular": "17.2.0", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "4.1.1", - "inquirer": "9.2.12", - "jsonc-parser": "3.2.0", + "inquirer": "9.2.14", + "jsonc-parser": "3.2.1", "npm-package-arg": "11.0.1", "npm-pick-manifest": "9.0.0", "open": "8.4.2", "ora": "5.4.1", - "pacote": "17.0.5", + "pacote": "17.0.6", "resolve": "1.22.8", - "semver": "7.5.4", + "semver": "7.6.0", "symbol-observable": "4.0.0", "yargs": "17.7.2" }, @@ -326,10 +358,43 @@ "yarn": ">= 1.13.0" } }, + "node_modules/@angular/cli/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/cli/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/cli/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@angular/common": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.1.3.tgz", - "integrity": "sha512-AzLzoNSeRSNGBQk0K+iG0XdYG36SDeJqYqE8rfoiWuv1NDFLL05UJM2/fQfaMNg0oX5bHOlHUqHFj3sFR/NVpw==", + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-17.2.2.tgz", + "integrity": "sha512-F2wQj/lYcZUNZuNmuuDb8RK8tU7e1w7IzN8J6nT2gQHq6NiZfYiUL2XrToGtdd/cZjBeYKGiWRBW/PsZzKyC3A==", "dependencies": { "tslib": "^2.3.0" }, @@ -337,14 +402,14 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.1.3", + "@angular/core": "17.2.2", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.1.3.tgz", - "integrity": "sha512-k/s21gPPKStxVOLr6l4Y145OIxyBY7BhTPVOl/qEAgE+IcZ9vkiA8dYl8yjL884Kl1ZKPmFA3AofMJjWjZGNag==", + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-17.2.2.tgz", + "integrity": "sha512-loRr4+9/JkSDszExZiS+iuhjXj7wvLF4gJeqlbp2PbPl4eUoGKYq0RVZ3a7IkIXxB5sgoYB5MjKsbdm/uaMK1A==", "dependencies": { "tslib": "^2.3.0" }, @@ -352,7 +417,7 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/core": "17.1.3" + "@angular/core": "17.2.2" }, "peerDependenciesMeta": { "@angular/core": { @@ -361,16 +426,16 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.1.3.tgz", - "integrity": "sha512-bNDHXo3Twub0BZK9OmXly+0REs0RuR1SUXlTAeq+0XubCvnBDvpg9peL7UTTGS5YRo9sUTBnR6faSUA1F5objQ==", + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-17.2.2.tgz", + "integrity": "sha512-tFfbamdLhn8R30/aKxhXNG6CwelJOpVxfUnTizb7pWUJ/UQ4py0xzJp7s0QzKjR1lpRAq3rPtsE3f9BbcHD1HA==", "dev": true, "dependencies": { - "@babel/core": "7.23.2", + "@babel/core": "7.23.9", "@jridgewell/sourcemap-codec": "^1.4.14", "chokidar": "^3.0.0", "convert-source-map": "^1.5.1", - "reflect-metadata": "^0.1.2", + "reflect-metadata": "^0.2.0", "semver": "^7.0.0", "tslib": "^2.3.0", "yargs": "^17.2.1" @@ -384,59 +449,14 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/compiler": "17.1.3", + "@angular/compiler": "17.2.2", "typescript": ">=5.2 <5.4" } }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", - "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/@angular/core": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.1.3.tgz", - "integrity": "sha512-2lZ4DRHN8KJ/aQads+YXIcx5Ri9yyeFIlw69m5Pn7wAi/+Rakg7IsclgLaWs7aBtWwMHG7LnqFKxAVq7CjXKtA==", + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-17.2.2.tgz", + "integrity": "sha512-jXnrOVsA9b34PJN383EOss3ejd5+xUTeijuUy5njPRXpxMxrGjV5gkk0lSxsALRxw2ICax2tMoGmHXfXO1x9gw==", "dependencies": { "tslib": "^2.3.0" }, @@ -449,9 +469,9 @@ } }, "node_modules/@angular/forms": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.1.3.tgz", - "integrity": "sha512-aNa0jGLT5d+hnKVrSo8tk3TRo/NLNu1RxLNx8RhIczKAeCK3eD8SvTMy27iJtyXmNG2GWN7QPiDeGepd75nbxQ==", + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-17.2.2.tgz", + "integrity": "sha512-xxy1Khpun2TpSDQch6BK4uHkqIxZvxsBU2LZgo/3W604lKoVjBGKPZqoYFRew2OPeCQ3VjK9P8a8ZhitsLLlKQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -459,9 +479,9 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.1.3", - "@angular/core": "17.1.3", - "@angular/platform-browser": "17.1.3", + "@angular/common": "17.2.2", + "@angular/core": "17.2.2", + "@angular/platform-browser": "17.2.2", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -530,9 +550,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.1.3.tgz", - "integrity": "sha512-onPCvdk9f/6OhOo2zP6nfGKpzLma1QIxpFqD3jymbmIJTcVMOOQDMYW3eLtY+uSX8ribcJ7GQcbDGIM4rliTFg==", + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-17.2.2.tgz", + "integrity": "sha512-6AZhQfZpo/apiRKwhy6es1RpoxgCXMR4y7Eo7GvVHpMKBwioWwP2H+qg83ed2xv0/GXIyqZsHjpEjsLPE83uyw==", "dependencies": { "tslib": "^2.3.0" }, @@ -540,9 +560,9 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/animations": "17.1.3", - "@angular/common": "17.1.3", - "@angular/core": "17.1.3" + "@angular/animations": "17.2.2", + "@angular/common": "17.2.2", + "@angular/core": "17.2.2" }, "peerDependenciesMeta": { "@angular/animations": { @@ -551,9 +571,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.1.3.tgz", - "integrity": "sha512-0lFhcFJfDzCSSVe8l8OY+UgUiwUwcbxwpvLod3XWBpf1iEUlr5720FIMA3VJYwpW3Oj4Uey3nVm13EMtRqpqdA==", + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.2.2.tgz", + "integrity": "sha512-I52zbDSic4LB0yhCFUEBZKg9QkLKVUCGTco0XFHNRy3EF54Jvs0uWBqG79egsuXmyBNQY0E3op9eqhhn6Mnwbw==", "dependencies": { "tslib": "^2.3.0" }, @@ -561,16 +581,16 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.1.3", - "@angular/compiler": "17.1.3", - "@angular/core": "17.1.3", - "@angular/platform-browser": "17.1.3" + "@angular/common": "17.2.2", + "@angular/compiler": "17.2.2", + "@angular/core": "17.2.2", + "@angular/platform-browser": "17.2.2" } }, "node_modules/@angular/router": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.1.3.tgz", - "integrity": "sha512-6HigdtFjm+76UU2hiLGLE2SpOecQhD6TnAVTocDuRitpN5m0dyiffBrqxarfNwoZuMdIiXyqClJR4JRo1rJjoQ==", + "version": "17.2.2", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-17.2.2.tgz", + "integrity": "sha512-3mT2+qBF8urFeY6eZVZX5bmAdK9ojJRZi7yB9ocpieE1Jdd/1NYCfIsQxJk032syEGc2NJftijTzuNiflLzlTA==", "dependencies": { "tslib": "^2.3.0" }, @@ -578,18 +598,12 @@ "node": "^18.13.0 || >=20.9.0" }, "peerDependencies": { - "@angular/common": "17.1.3", - "@angular/core": "17.1.3", - "@angular/platform-browser": "17.1.3", + "@angular/common": "17.2.2", + "@angular/core": "17.2.2", + "@angular/platform-browser": "17.2.2", "rxjs": "^6.5.3 || ^7.4.0" } }, - "node_modules/@assemblyscript/loader": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", - "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", - "dev": true - }, "node_modules/@babel/code-frame": { "version": "7.23.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", @@ -613,9 +627,9 @@ } }, "node_modules/@babel/core": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", - "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", + "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", @@ -623,11 +637,11 @@ "@babel/generator": "^7.23.6", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.7", - "@babel/parser": "^7.23.6", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.7", - "@babel/types": "^7.23.6", + "@babel/helpers": "^7.23.9", + "@babel/parser": "^7.23.9", + "@babel/template": "^7.23.9", + "@babel/traverse": "^7.23.9", + "@babel/types": "^7.23.9", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -1355,9 +1369,9 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz", - "integrity": "sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", + "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", @@ -1973,16 +1987,16 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.7.tgz", - "integrity": "sha512-fa0hnfmiXc9fq/weK34MUV0drz2pOL/vfKWvN7Qw127hiUPabFCUMgAbYWcchRzMJit4o5ARsK/s+5h0249pLw==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.9.tgz", + "integrity": "sha512-A7clW3a0aSjm3ONU9o2HAILSegJCYlEZmOhmBRReVtIpY/Z/p7yIZ+wR41Z+UipwdGuqwtID/V/dOdZXjwi9gQ==", "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.7", - "babel-plugin-polyfill-corejs3": "^0.8.7", - "babel-plugin-polyfill-regenerator": "^0.5.4", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", "semver": "^6.3.1" }, "engines": { @@ -2141,9 +2155,9 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.7.tgz", - "integrity": "sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz", + "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==", "dev": true, "dependencies": { "@babel/compat-data": "^7.23.5", @@ -2173,13 +2187,13 @@ "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.7", + "@babel/plugin-transform-async-generator-functions": "^7.23.9", "@babel/plugin-transform-async-to-generator": "^7.23.3", "@babel/plugin-transform-block-scoped-functions": "^7.23.3", "@babel/plugin-transform-block-scoping": "^7.23.4", "@babel/plugin-transform-class-properties": "^7.23.3", "@babel/plugin-transform-class-static-block": "^7.23.4", - "@babel/plugin-transform-classes": "^7.23.5", + "@babel/plugin-transform-classes": "^7.23.8", "@babel/plugin-transform-computed-properties": "^7.23.3", "@babel/plugin-transform-destructuring": "^7.23.3", "@babel/plugin-transform-dotall-regex": "^7.23.3", @@ -2195,7 +2209,7 @@ "@babel/plugin-transform-member-expression-literals": "^7.23.3", "@babel/plugin-transform-modules-amd": "^7.23.3", "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.9", "@babel/plugin-transform-modules-umd": "^7.23.3", "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", "@babel/plugin-transform-new-target": "^7.23.3", @@ -2221,9 +2235,9 @@ "@babel/plugin-transform-unicode-regex": "^7.23.3", "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.7", - "babel-plugin-polyfill-corejs3": "^0.8.7", - "babel-plugin-polyfill-regenerator": "^0.5.4", + "babel-plugin-polyfill-corejs2": "^0.4.8", + "babel-plugin-polyfill-corejs3": "^0.9.0", + "babel-plugin-polyfill-regenerator": "^0.5.5", "core-js-compat": "^3.31.0", "semver": "^6.3.1" }, @@ -2264,9 +2278,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.7.tgz", - "integrity": "sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==", + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", + "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", "dev": true, "dependencies": { "regenerator-runtime": "^0.14.0" @@ -2343,9 +2357,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz", - "integrity": "sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.0.tgz", + "integrity": "sha512-fGFDEctNh0CcSwsiRPxiaqX0P5rq+AqE0SRhYGZ4PX46Lg1FNR6oCxJghf8YgY0WQEgQuh3lErUFE4KxLeRmmw==", "cpu": [ "ppc64" ], @@ -2359,9 +2373,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.11.tgz", - "integrity": "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.0.tgz", + "integrity": "sha512-3bMAfInvByLHfJwYPJRlpTeaQA75n8C/QKpEaiS4HrFWFiJlNI0vzq/zCjBrhAYcPyVPG7Eo9dMrcQXuqmNk5g==", "cpu": [ "arm" ], @@ -2375,9 +2389,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz", - "integrity": "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.0.tgz", + "integrity": "sha512-aVpnM4lURNkp0D3qPoAzSG92VXStYmoVPOgXveAUoQBWRSuQzt51yvSju29J6AHPmwY1BjH49uR29oyfH1ra8Q==", "cpu": [ "arm64" ], @@ -2391,9 +2405,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.11.tgz", - "integrity": "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.0.tgz", + "integrity": "sha512-uK7wAnlRvjkCPzh8jJ+QejFyrP8ObKuR5cBIsQZ+qbMunwR8sbd8krmMbxTLSrDhiPZaJYKQAU5Y3iMDcZPhyQ==", "cpu": [ "x64" ], @@ -2407,9 +2421,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz", - "integrity": "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.0.tgz", + "integrity": "sha512-AjEcivGAlPs3UAcJedMa9qYg9eSfU6FnGHJjT8s346HSKkrcWlYezGE8VaO2xKfvvlZkgAhyvl06OJOxiMgOYQ==", "cpu": [ "arm64" ], @@ -2423,9 +2437,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz", - "integrity": "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.0.tgz", + "integrity": "sha512-bsgTPoyYDnPv8ER0HqnJggXK6RyFy4PH4rtsId0V7Efa90u2+EifxytE9pZnsDgExgkARy24WUQGv9irVbTvIw==", "cpu": [ "x64" ], @@ -2439,9 +2453,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz", - "integrity": "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.0.tgz", + "integrity": "sha512-kQ7jYdlKS335mpGbMW5tEe3IrQFIok9r84EM3PXB8qBFJPSc6dpWfrtsC/y1pyrz82xfUIn5ZrnSHQQsd6jebQ==", "cpu": [ "arm64" ], @@ -2455,9 +2469,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz", - "integrity": "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.0.tgz", + "integrity": "sha512-uG8B0WSepMRsBNVXAQcHf9+Ko/Tr+XqmK7Ptel9HVmnykupXdS4J7ovSQUIi0tQGIndhbqWLaIL/qO/cWhXKyQ==", "cpu": [ "x64" ], @@ -2471,9 +2485,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz", - "integrity": "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.0.tgz", + "integrity": "sha512-2ezuhdiZw8vuHf1HKSf4TIk80naTbP9At7sOqZmdVwvvMyuoDiZB49YZKLsLOfKIr77+I40dWpHVeY5JHpIEIg==", "cpu": [ "arm" ], @@ -2487,9 +2501,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz", - "integrity": "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.0.tgz", + "integrity": "sha512-uTtyYAP5veqi2z9b6Gr0NUoNv9F/rOzI8tOD5jKcCvRUn7T60Bb+42NDBCWNhMjkQzI0qqwXkQGo1SY41G52nw==", "cpu": [ "arm64" ], @@ -2503,9 +2517,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz", - "integrity": "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.0.tgz", + "integrity": "sha512-c88wwtfs8tTffPaoJ+SQn3y+lKtgTzyjkD8NgsyCtCmtoIC8RDL7PrJU05an/e9VuAke6eJqGkoMhJK1RY6z4w==", "cpu": [ "ia32" ], @@ -2519,9 +2533,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz", - "integrity": "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.0.tgz", + "integrity": "sha512-lR2rr/128/6svngnVta6JN4gxSXle/yZEZL3o4XZ6esOqhyR4wsKyfu6qXAL04S4S5CgGfG+GYZnjFd4YiG3Aw==", "cpu": [ "loong64" ], @@ -2535,9 +2549,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz", - "integrity": "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.0.tgz", + "integrity": "sha512-9Sycc+1uUsDnJCelDf6ZNqgZQoK1mJvFtqf2MUz4ujTxGhvCWw+4chYfDLPepMEvVL9PDwn6HrXad5yOrNzIsQ==", "cpu": [ "mips64el" ], @@ -2551,9 +2565,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz", - "integrity": "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.0.tgz", + "integrity": "sha512-CoWSaaAXOZd+CjbUTdXIJE/t7Oz+4g90A3VBCHLbfuc5yUQU/nFDLOzQsN0cdxgXd97lYW/psIIBdjzQIwTBGw==", "cpu": [ "ppc64" ], @@ -2567,9 +2581,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz", - "integrity": "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.0.tgz", + "integrity": "sha512-mlb1hg/eYRJUpv8h/x+4ShgoNLL8wgZ64SUr26KwglTYnwAWjkhR2GpoKftDbPOCnodA9t4Y/b68H4J9XmmPzA==", "cpu": [ "riscv64" ], @@ -2583,9 +2597,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz", - "integrity": "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.0.tgz", + "integrity": "sha512-fgf9ubb53xSnOBqyvWEY6ukBNRl1mVX1srPNu06B6mNsNK20JfH6xV6jECzrQ69/VMiTLvHMicQR/PgTOgqJUQ==", "cpu": [ "s390x" ], @@ -2599,9 +2613,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz", - "integrity": "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.0.tgz", + "integrity": "sha512-H9Eu6MGse++204XZcYsse1yFHmRXEWgadk2N58O/xd50P9EvFMLJTQLg+lB4E1cF2xhLZU5luSWtGTb0l9UeSg==", "cpu": [ "x64" ], @@ -2615,9 +2629,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz", - "integrity": "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.0.tgz", + "integrity": "sha512-lCT675rTN1v8Fo+RGrE5KjSnfY0x9Og4RN7t7lVrN3vMSjy34/+3na0q7RIfWDAj0e0rCh0OL+P88lu3Rt21MQ==", "cpu": [ "x64" ], @@ -2631,9 +2645,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz", - "integrity": "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.0.tgz", + "integrity": "sha512-HKoUGXz/TOVXKQ+67NhxyHv+aDSZf44QpWLa3I1lLvAwGq8x1k0T+e2HHSRvxWhfJrFxaaqre1+YyzQ99KixoA==", "cpu": [ "x64" ], @@ -2647,9 +2661,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz", - "integrity": "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.0.tgz", + "integrity": "sha512-GDwAqgHQm1mVoPppGsoq4WJwT3vhnz/2N62CzhvApFD1eJyTroob30FPpOZabN+FgCjhG+AgcZyOPIkR8dfD7g==", "cpu": [ "x64" ], @@ -2663,9 +2677,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz", - "integrity": "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.0.tgz", + "integrity": "sha512-0vYsP8aC4TvMlOQYozoksiaxjlvUcQrac+muDqj1Fxy6jh9l9CZJzj7zmh8JGfiV49cYLTorFLxg7593pGldwQ==", "cpu": [ "arm64" ], @@ -2679,9 +2693,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz", - "integrity": "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.0.tgz", + "integrity": "sha512-p98u4rIgfh4gdpV00IqknBD5pC84LCub+4a3MO+zjqvU5MVXOc3hqR2UgT2jI2nh3h8s9EQxmOsVI3tyzv1iFg==", "cpu": [ "ia32" ], @@ -2695,9 +2709,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz", - "integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.0.tgz", + "integrity": "sha512-NgJnesu1RtWihtTtXGFMU5YSE6JyyHPMxCwBZK7a6/8d31GuSo9l0Ss7w1Jw5QnKUawG6UEehs883kcXf5fYwg==", "cpu": [ "x64" ], @@ -3684,9 +3698,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.1.3.tgz", - "integrity": "sha512-mszRSb7aMNKHnkh3Jrfo83KVOguX/cUamJJcGIYe9o7tnLGRIoMp4vP0fx6Og4J0/CGDRhSDG4IiJ29aOU7K8A==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.2.0.tgz", + "integrity": "sha512-3VilWAMylVpOqffhnLdc/UeElUWhBbG5j2XzxYWfQXb8OcVYoKNYPmJLc1vemoaYkkbaUX3zc5AEAN93Hk/q/g==", "dev": true, "engines": { "node": "^18.13.0 || >=20.9.0", @@ -3999,9 +4013,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.10.0.tgz", - "integrity": "sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.12.0.tgz", + "integrity": "sha512-+ac02NL/2TCKRrJu2wffk1kZ+RyqxVUlbjSagNgPm94frxtr+XDL12E5Ll1enWskLrtrZ2r8L3wED1orIibV/w==", "cpu": [ "arm" ], @@ -4012,9 +4026,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.10.0.tgz", - "integrity": "sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.12.0.tgz", + "integrity": "sha512-OBqcX2BMe6nvjQ0Nyp7cC90cnumt8PXmO7Dp3gfAju/6YwG0Tj74z1vKrfRz7qAv23nBcYM8BCbhrsWqO7PzQQ==", "cpu": [ "arm64" ], @@ -4025,9 +4039,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.10.0.tgz", - "integrity": "sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.12.0.tgz", + "integrity": "sha512-X64tZd8dRE/QTrBIEs63kaOBG0b5GVEd3ccoLtyf6IdXtHdh8h+I56C2yC3PtC9Ucnv0CpNFJLqKFVgCYe0lOQ==", "cpu": [ "arm64" ], @@ -4038,9 +4052,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.10.0.tgz", - "integrity": "sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.12.0.tgz", + "integrity": "sha512-cc71KUZoVbUJmGP2cOuiZ9HSOP14AzBAThn3OU+9LcA1+IUqswJyR1cAJj3Mg55HbjZP6OLAIscbQsQLrpgTOg==", "cpu": [ "x64" ], @@ -4051,9 +4065,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.10.0.tgz", - "integrity": "sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.12.0.tgz", + "integrity": "sha512-a6w/Y3hyyO6GlpKL2xJ4IOh/7d+APaqLYdMf86xnczU3nurFTaVN9s9jOXQg97BE4nYm/7Ga51rjec5nfRdrvA==", "cpu": [ "arm" ], @@ -4064,9 +4078,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.10.0.tgz", - "integrity": "sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.12.0.tgz", + "integrity": "sha512-0fZBq27b+D7Ar5CQMofVN8sggOVhEtzFUwOwPppQt0k+VR+7UHMZZY4y+64WJ06XOhBTKXtQB/Sv0NwQMXyNAA==", "cpu": [ "arm64" ], @@ -4077,9 +4091,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.10.0.tgz", - "integrity": "sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.12.0.tgz", + "integrity": "sha512-eTvzUS3hhhlgeAv6bfigekzWZjaEX9xP9HhxB0Dvrdbkk5w/b+1Sxct2ZuDxNJKzsRStSq1EaEkVSEe7A7ipgQ==", "cpu": [ "arm64" ], @@ -4090,9 +4104,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.10.0.tgz", - "integrity": "sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.12.0.tgz", + "integrity": "sha512-ix+qAB9qmrCRiaO71VFfY8rkiAZJL8zQRXveS27HS+pKdjwUfEhqo2+YF2oI+H/22Xsiski+qqwIBxVewLK7sw==", "cpu": [ "riscv64" ], @@ -4103,9 +4117,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.10.0.tgz", - "integrity": "sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.12.0.tgz", + "integrity": "sha512-TenQhZVOtw/3qKOPa7d+QgkeM6xY0LtwzR8OplmyL5LrgTWIXpTQg2Q2ycBf8jm+SFW2Wt/DTn1gf7nFp3ssVA==", "cpu": [ "x64" ], @@ -4116,9 +4130,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.10.0.tgz", - "integrity": "sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.12.0.tgz", + "integrity": "sha512-LfFdRhNnW0zdMvdCb5FNuWlls2WbbSridJvxOvYWgSBOYZtgBfW9UGNJG//rwMqTX1xQE9BAodvMH9tAusKDUw==", "cpu": [ "x64" ], @@ -4129,9 +4143,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.10.0.tgz", - "integrity": "sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.12.0.tgz", + "integrity": "sha512-JPDxovheWNp6d7AHCgsUlkuCKvtu3RB55iNEkaQcf0ttsDU/JZF+iQnYcQJSk/7PtT4mjjVG8N1kpwnI9SLYaw==", "cpu": [ "arm64" ], @@ -4142,9 +4156,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.10.0.tgz", - "integrity": "sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.12.0.tgz", + "integrity": "sha512-fjtuvMWRGJn1oZacG8IPnzIV6GF2/XG+h71FKn76OYFqySXInJtseAqdprVTDTyqPxQOG9Exak5/E9Z3+EJ8ZA==", "cpu": [ "ia32" ], @@ -4155,9 +4169,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.10.0.tgz", - "integrity": "sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.12.0.tgz", + "integrity": "sha512-ZYmr5mS2wd4Dew/JjT0Fqi2NPB/ZhZ2VvPp7SmvPZb4Y1CG/LRcS6tcRo2cYU7zLK5A7cdbhWnnWmUjoI4qapg==", "cpu": [ "x64" ], @@ -4168,14 +4182,14 @@ ] }, "node_modules/@schematics/angular": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.1.3.tgz", - "integrity": "sha512-hmeasOvzmniy6urtzUKhEqGO67iPuLX/dVtkF4nWp2NTtcEKlvcJobNDMc+CTlX4+ZMPVOvmhDMQqrlfekZ+NQ==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-17.2.0.tgz", + "integrity": "sha512-k5SisAPTRXxP2WVjWHgQl2sQkaAkUiOZJrHhTmUghTowULN2eIiW+1SSdNBFCbv+qkl276NfavOi22j+C7uaKQ==", "dev": true, "dependencies": { - "@angular-devkit/core": "17.1.3", - "@angular-devkit/schematics": "17.1.3", - "jsonc-parser": "3.2.0" + "@angular-devkit/core": "17.2.0", + "@angular-devkit/schematics": "17.2.0", + "jsonc-parser": "3.2.1" }, "engines": { "node": "^18.13.0 || >=20.9.0", @@ -4184,12 +4198,12 @@ } }, "node_modules/@sigstore/bundle": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.1.1.tgz", - "integrity": "sha512-v3/iS+1nufZdKQ5iAlQKcCsoh0jffQyABvYIxKsZQFWc4ubuGjwZklFHpDgV6O6T7vvV78SW5NHI91HFKEcxKg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.2.0.tgz", + "integrity": "sha512-5VI58qgNs76RDrwXNhpmyN/jKpq9evV/7f1XrcqcAfvxDl5SeVY/I5Rmfe96ULAV7/FK5dge9RBKGBJPhL1WsQ==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1" + "@sigstore/protobuf-specs": "^0.3.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -4205,23 +4219,23 @@ } }, "node_modules/@sigstore/protobuf-specs": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz", - "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.0.tgz", + "integrity": "sha512-zxiQ66JFOjVvP9hbhGj/F/qNdsZfkGb/dVXSanNRNuAzMlr4MC95voPUBX8//ZNnmv3uSYzdfR/JSkrgvZTGxA==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/@sigstore/sign": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.2.tgz", - "integrity": "sha512-mAifqvvGOCkb5BJ5d/SRrVP5+kKCGxtcHuti6lgqZalIfNxikxlJMMptOqFp9+xV5LAnJMSaMWtzvcgNZ3PlPA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.2.3.tgz", + "integrity": "sha512-LqlA+ffyN02yC7RKszCdMTS6bldZnIodiox+IkT8B2f8oRYXCB3LQ9roXeiEL21m64CVH1wyveYAORfD65WoSw==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.1.1", + "@sigstore/bundle": "^2.2.0", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/protobuf-specs": "^0.3.0", "make-fetch-happen": "^13.0.0" }, "engines": { @@ -4229,12 +4243,12 @@ } }, "node_modules/@sigstore/tuf": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.0.tgz", - "integrity": "sha512-S98jo9cpJwO1mtQ+2zY7bOdcYyfVYCUaofCG6wWRzk3pxKHVAkSfshkfecto2+LKsx7Ovtqbgb2LS8zTRhxJ9Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.1.tgz", + "integrity": "sha512-9Iv40z652td/QbV0o5n/x25H9w6IYRt2pIGbTX55yFDYlApDQn/6YZomjz6+KBx69rXHLzHcbtTS586mDdFD+Q==", "dev": true, "dependencies": { - "@sigstore/protobuf-specs": "^0.2.1", + "@sigstore/protobuf-specs": "^0.3.0", "tuf-js": "^2.2.0" }, "engines": { @@ -4242,14 +4256,14 @@ } }, "node_modules/@sigstore/verify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.0.0.tgz", - "integrity": "sha512-sRU6nblDBQ4pVTWni019Kij+XQj4RP75WXN5z3qHk81dt/L8A7r3v8RgRInTup4/Jf90WNods9CcbnWj7zJ26w==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.1.0.tgz", + "integrity": "sha512-1fTqnqyTBWvV7cftUUFtDcHPdSox0N3Ub7C0lRyReYx4zZUlNTZjCV+HPy4Lre+r45dV7Qx5JLKvqqsgxuyYfg==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.1.1", + "@sigstore/bundle": "^2.2.0", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.2.1" + "@sigstore/protobuf-specs": "^0.3.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -4528,9 +4542,9 @@ } }, "node_modules/@vitejs/plugin-basic-ssl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.2.tgz", - "integrity": "sha512-DKHKVtpI+eA5fvObVgQ3QtTGU70CcCnedalzqmGSR050AzKZMdUzgC8KmlOneHWH8dF2hJ3wkC9+8FDVAaDRCw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", + "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", "dev": true, "engines": { "node": ">=14.6.0" @@ -4946,9 +4960,9 @@ "dev": true }, "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "version": "10.4.17", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", + "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", "dev": true, "funding": [ { @@ -4965,9 +4979,9 @@ } ], "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", + "browserslist": "^4.22.2", + "caniuse-lite": "^1.0.30001578", + "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -5050,29 +5064,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.7", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", - "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.4", - "core-js-compat": "^3.33.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3/node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", - "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", + "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "@babel/helper-define-polyfill-provider": "^0.5.0", + "core-js-compat": "^3.34.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -5883,12 +5881,12 @@ } }, "node_modules/core-js-compat": { - "version": "3.35.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.1.tgz", - "integrity": "sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==", + "version": "3.36.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz", + "integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==", "dev": true, "dependencies": { - "browserslist": "^4.22.2" + "browserslist": "^4.22.3" }, "funding": { "type": "opencollective", @@ -5915,15 +5913,15 @@ } }, "node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, "dependencies": { + "env-paths": "^2.2.1", "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" + "parse-json": "^5.2.0" }, "engines": { "node": ">=14" @@ -6073,19 +6071,19 @@ } }, "node_modules/css-loader": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", - "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.10.0.tgz", + "integrity": "sha512-LTSA/jWbwdMlk+rhmElbDR2vbtQoTBPr7fkJE+mxrHj+7ru0hUmHafDRzWIjIHTwpitWVaqY2/UWGRca3yUgRw==", "dev": true, "dependencies": { "icss-utils": "^5.1.0", - "postcss": "^8.4.21", + "postcss": "^8.4.33", "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.3", - "postcss-modules-scope": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.4", + "postcss-modules-scope": "^3.1.1", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" + "semver": "^7.5.4" }, "engines": { "node": ">= 12.13.0" @@ -6095,7 +6093,16 @@ "url": "https://opencollective.com/webpack" }, "peerDependencies": { + "@rspack/core": "0.x || 1.x", "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/css-select": { @@ -6528,11 +6535,12 @@ "dev": true }, "node_modules/esbuild": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", - "integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.0.tgz", + "integrity": "sha512-6iwE3Y2RVYCME1jLpBqq7LQWK3MW6vjV2bZy6gt/WrqkY+WE74Spyc0ThAOYpMtITvnjX09CrC6ym7A/m9mebA==", "dev": true, "hasInstallScript": true, + "optional": true, "bin": { "esbuild": "bin/esbuild" }, @@ -6540,35 +6548,35 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.11", - "@esbuild/android-arm": "0.19.11", - "@esbuild/android-arm64": "0.19.11", - "@esbuild/android-x64": "0.19.11", - "@esbuild/darwin-arm64": "0.19.11", - "@esbuild/darwin-x64": "0.19.11", - "@esbuild/freebsd-arm64": "0.19.11", - "@esbuild/freebsd-x64": "0.19.11", - "@esbuild/linux-arm": "0.19.11", - "@esbuild/linux-arm64": "0.19.11", - "@esbuild/linux-ia32": "0.19.11", - "@esbuild/linux-loong64": "0.19.11", - "@esbuild/linux-mips64el": "0.19.11", - "@esbuild/linux-ppc64": "0.19.11", - "@esbuild/linux-riscv64": "0.19.11", - "@esbuild/linux-s390x": "0.19.11", - "@esbuild/linux-x64": "0.19.11", - "@esbuild/netbsd-x64": "0.19.11", - "@esbuild/openbsd-x64": "0.19.11", - "@esbuild/sunos-x64": "0.19.11", - "@esbuild/win32-arm64": "0.19.11", - "@esbuild/win32-ia32": "0.19.11", - "@esbuild/win32-x64": "0.19.11" + "@esbuild/aix-ppc64": "0.20.0", + "@esbuild/android-arm": "0.20.0", + "@esbuild/android-arm64": "0.20.0", + "@esbuild/android-x64": "0.20.0", + "@esbuild/darwin-arm64": "0.20.0", + "@esbuild/darwin-x64": "0.20.0", + "@esbuild/freebsd-arm64": "0.20.0", + "@esbuild/freebsd-x64": "0.20.0", + "@esbuild/linux-arm": "0.20.0", + "@esbuild/linux-arm64": "0.20.0", + "@esbuild/linux-ia32": "0.20.0", + "@esbuild/linux-loong64": "0.20.0", + "@esbuild/linux-mips64el": "0.20.0", + "@esbuild/linux-ppc64": "0.20.0", + "@esbuild/linux-riscv64": "0.20.0", + "@esbuild/linux-s390x": "0.20.0", + "@esbuild/linux-x64": "0.20.0", + "@esbuild/netbsd-x64": "0.20.0", + "@esbuild/openbsd-x64": "0.20.0", + "@esbuild/sunos-x64": "0.20.0", + "@esbuild/win32-arm64": "0.20.0", + "@esbuild/win32-ia32": "0.20.0", + "@esbuild/win32-x64": "0.20.0" } }, "node_modules/esbuild-wasm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.19.11.tgz", - "integrity": "sha512-MIhnpc1TxERUHomteO/ZZHp+kUawGEc03D/8vMHGzffLvbFLeDe6mwxqEZwlqBNY7SLWbyp6bBQAcCen8+wpjQ==", + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.20.0.tgz", + "integrity": "sha512-Lc9KeQCg1Zf8kCtfDXgy29rx0x8dOuhDWbkP76Wc64q7ctOOc1Zv1C39AxiE+y4N6ONyXtJk4HKpM7jlU7/jSA==", "dev": true, "bin": { "esbuild": "bin/esbuild" @@ -6920,28 +6928,15 @@ } }, "node_modules/figures": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-5.0.0.tgz", - "integrity": "sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "dependencies": { - "escape-string-regexp": "^5.0.0", - "is-unicode-supported": "^1.2.0" + "escape-string-regexp": "^1.0.5" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "dev": true, - "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7407,23 +7402,6 @@ "node": ">= 0.4" } }, - "node_modules/hdr-histogram-js": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", - "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", - "dev": true, - "dependencies": { - "@assemblyscript/loader": "^0.10.1", - "base64-js": "^1.2.0", - "pako": "^1.0.3" - } - }, - "node_modules/hdr-histogram-percentiles-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", - "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", - "dev": true - }, "node_modules/hosted-git-info": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", @@ -7586,9 +7564,9 @@ } }, "node_modules/http-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", - "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "dependencies": { "agent-base": "^7.1.0", @@ -7821,18 +7799,18 @@ } }, "node_modules/inquirer": { - "version": "9.2.12", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.12.tgz", - "integrity": "sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q==", + "version": "9.2.14", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-9.2.14.tgz", + "integrity": "sha512-4ByIMt677Iz5AvjyKrDpzaepIyMewNvDcvwpVVRZNmy9dLakVoVgdCHZXbK1SlVJra1db0JZ6XkJyHsanpdrdQ==", "dev": true, "dependencies": { - "@ljharb/through": "^2.3.11", + "@ljharb/through": "^2.3.12", "ansi-escapes": "^4.3.2", "chalk": "^5.3.0", "cli-cursor": "^3.1.0", "cli-width": "^4.1.0", "external-editor": "^3.1.0", - "figures": "^5.0.0", + "figures": "^3.2.0", "lodash": "^4.17.21", "mute-stream": "1.0.0", "ora": "^5.4.1", @@ -7843,7 +7821,7 @@ "wrap-ansi": "^6.2.0" }, "engines": { - "node": ">=14.18.0" + "node": ">=18" } }, "node_modules/inquirer/node_modules/chalk": { @@ -8021,18 +7999,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-what": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", @@ -8324,9 +8290,9 @@ } }, "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", "dev": true }, "node_modules/jsonfile": { @@ -8871,9 +8837,9 @@ } }, "node_modules/magic-string": { - "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "version": "0.30.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz", + "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==", "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" @@ -9038,12 +9004,13 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", - "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.0.tgz", + "integrity": "sha512-CxmUYPFcTgET1zImteG/LZOy/4T5rTojesQXkSNBiquhydn78tfbCE9sjIjnJ/UcjNjOC1bphTCCW5rrS7cXAg==", "dev": true, "dependencies": { - "schema-utils": "^4.0.0" + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" }, "engines": { "node": ">= 12.13.0" @@ -9964,9 +9931,9 @@ } }, "node_modules/pacote": { - "version": "17.0.5", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.5.tgz", - "integrity": "sha512-TAE0m20zSDMnchPja9vtQjri19X3pZIyRpm2TJVeI+yU42leJBBDTRYhOcWFsPhaMxf+3iwQkFiKz16G9AEeeA==", + "version": "17.0.6", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.6.tgz", + "integrity": "sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ==", "dev": true, "dependencies": { "@npmcli/git": "^5.0.0", @@ -9984,7 +9951,7 @@ "promise-retry": "^2.0.1", "read-package-json": "^7.0.0", "read-package-json-fast": "^3.0.0", - "sigstore": "^2.0.0", + "sigstore": "^2.2.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, @@ -9995,12 +9962,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -10173,12 +10134,12 @@ "dev": true }, "node_modules/picomatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", - "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz", + "integrity": "sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==", "dev": true, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -10195,14 +10156,10 @@ } }, "node_modules/piscina": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.2.1.tgz", - "integrity": "sha512-LShp0+lrO+WIzB9LXO+ZmO4zGHxtTJNZhEO56H9SSu+JPaUQb6oLcTCzWi5IL2DS8/vIkCE88ElahuSSw4TAkA==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.3.1.tgz", + "integrity": "sha512-MBj0QYm3hJQ/C/wIXTN1OCYC8uQ4BBJ4LVele2P4ZwVQAH04vkk8E1SpDbuemLAL1dZorbuOob9rYqJeWCcCRg==", "dev": true, - "dependencies": { - "hdr-histogram-js": "^2.0.1", - "hdr-histogram-percentiles-obj": "^3.0.0" - }, "optionalDependencies": { "nice-napi": "^1.0.2" } @@ -10293,9 +10250,9 @@ } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "dev": true, "funding": [ { @@ -10321,25 +10278,34 @@ } }, "node_modules/postcss-loader": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz", - "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.0.tgz", + "integrity": "sha512-AbperNcX3rlob7Ay7A/HQcrofug1caABBkopoFeOQMspZBqcqj6giYn1Bwey/0uiOPAcR+NQD0I2HC7rXzk91w==", "dev": true, "dependencies": { - "cosmiconfig": "^8.3.5", + "cosmiconfig": "^9.0.0", "jiti": "^1.20.0", "semver": "^7.5.4" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { + "@rspack/core": "0.x || 1.x", "postcss": "^7.0.0 || ^8.0.1", "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/postcss-modules-extract-imports": { @@ -10699,9 +10665,9 @@ } }, "node_modules/reflect-metadata": { - "version": "0.1.14", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", - "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.1.tgz", + "integrity": "sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==", "dev": true }, "node_modules/regenerate": { @@ -10923,9 +10889,9 @@ } }, "node_modules/rollup": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.10.0.tgz", - "integrity": "sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g==", + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.12.0.tgz", + "integrity": "sha512-wz66wn4t1OHIJw3+XU7mJJQV/2NAfw5OAk6G6Hoo3zcvz/XOfQ52Vgi+AN4Uxoxi0KBBwk2g8zPrTDA4btSB/Q==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -10938,19 +10904,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.10.0", - "@rollup/rollup-android-arm64": "4.10.0", - "@rollup/rollup-darwin-arm64": "4.10.0", - "@rollup/rollup-darwin-x64": "4.10.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.10.0", - "@rollup/rollup-linux-arm64-gnu": "4.10.0", - "@rollup/rollup-linux-arm64-musl": "4.10.0", - "@rollup/rollup-linux-riscv64-gnu": "4.10.0", - "@rollup/rollup-linux-x64-gnu": "4.10.0", - "@rollup/rollup-linux-x64-musl": "4.10.0", - "@rollup/rollup-win32-arm64-msvc": "4.10.0", - "@rollup/rollup-win32-ia32-msvc": "4.10.0", - "@rollup/rollup-win32-x64-msvc": "4.10.0", + "@rollup/rollup-android-arm-eabi": "4.12.0", + "@rollup/rollup-android-arm64": "4.12.0", + "@rollup/rollup-darwin-arm64": "4.12.0", + "@rollup/rollup-darwin-x64": "4.12.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.12.0", + "@rollup/rollup-linux-arm64-gnu": "4.12.0", + "@rollup/rollup-linux-arm64-musl": "4.12.0", + "@rollup/rollup-linux-riscv64-gnu": "4.12.0", + "@rollup/rollup-linux-x64-gnu": "4.12.0", + "@rollup/rollup-linux-x64-musl": "4.12.0", + "@rollup/rollup-win32-arm64-msvc": "4.12.0", + "@rollup/rollup-win32-ia32-msvc": "4.12.0", + "@rollup/rollup-win32-x64-msvc": "4.12.0", "fsevents": "~2.3.2" } }, @@ -11026,9 +10992,9 @@ "integrity": "sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw==" }, "node_modules/sass": { - "version": "1.69.7", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.7.tgz", - "integrity": "sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ==", + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.70.0.tgz", + "integrity": "sha512-uUxNQ3zAHeAx5nRFskBnrWzDUJrrvpCPD5FNAoRvTi0WwremlheES3tg+56PaVtCs5QDRX5CBLxxKMDJMEa1WQ==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -11043,29 +11009,29 @@ } }, "node_modules/sass-loader": { - "version": "13.3.3", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.3.tgz", - "integrity": "sha512-mt5YN2F1MOZr3d/wBRcZxeFgwgkH44wVc2zohO2YF6JiOMkiXe4BYRZpSu2sO1g71mo/j16txzUhsKZlqjVGzA==", + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-14.1.0.tgz", + "integrity": "sha512-LS2mLeFWA+orYxHNu+O18Xe4jR0kyamNOOUsE3NyBP4DvIL+8stHpNX0arYTItdPe80kluIiJ7Wfe/9iHSRO0Q==", "dev": true, "dependencies": { "neo-async": "^2.6.2" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "fibers": ">= 3.1.0", + "@rspack/core": "0.x || 1.x", "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", "sass": "^1.3.0", "sass-embedded": "*", "webpack": "^5.0.0" }, "peerDependenciesMeta": { - "fibers": { + "@rspack/core": { "optional": true }, "node-sass": { @@ -11076,6 +11042,9 @@ }, "sass-embedded": { "optional": true + }, + "webpack": { + "optional": true } } }, @@ -11406,17 +11375,17 @@ "dev": true }, "node_modules/sigstore": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.1.tgz", - "integrity": "sha512-OBBSKvmjr4DCyUb+IC2p7wooOCsCNwaqvCilTJVNPo0y8lJl+LsCrfz4LtMwnw3Gn+8frt816wi1+DWZTUCpBQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.2.2.tgz", + "integrity": "sha512-2A3WvXkQurhuMgORgT60r6pOWiCOO5LlEqY2ADxGBDGVYLSo5HN0uLtb68YpVpuL/Vi8mLTe7+0Dx2Fq8lLqEg==", "dev": true, "dependencies": { - "@sigstore/bundle": "^2.1.1", + "@sigstore/bundle": "^2.2.0", "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.2.1", - "@sigstore/sign": "^2.2.2", - "@sigstore/tuf": "^2.3.0", - "@sigstore/verify": "^1.0.0" + "@sigstore/protobuf-specs": "^0.3.0", + "@sigstore/sign": "^2.2.3", + "@sigstore/tuf": "^2.3.1", + "@sigstore/verify": "^1.1.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -11603,9 +11572,9 @@ } }, "node_modules/spdx-exceptions": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz", - "integrity": "sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "dev": true }, "node_modules/spdx-expression-parse": { @@ -11878,9 +11847,9 @@ "dev": true }, "node_modules/terser": { - "version": "5.26.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.26.0.tgz", - "integrity": "sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==", + "version": "5.27.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", + "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -11992,12 +11961,6 @@ "node": ">=8" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -12142,9 +12105,9 @@ } }, "node_modules/undici": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.2.1.tgz", - "integrity": "sha512-7Wa9thEM6/LMnnKtxJHlc8SrTlDmxqJecgz1iy8KlsN0/iskQXOQCuPkrZLXbElPaSw5slFFyKIKXyJ3UtbApw==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.6.2.tgz", + "integrity": "sha512-vSqvUE5skSxQJ5sztTZ/CdeJb1Wq0Hf44hlYMciqHghvz+K88U0l7D6u1VsndoFgskDcnU+nG3gYmMzJVzd9Qg==", "dev": true, "dependencies": { "@fastify/busboy": "^2.0.0" @@ -12389,6 +12352,412 @@ } } }, + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, "node_modules/void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", @@ -12430,19 +12799,19 @@ } }, "node_modules/webpack": { - "version": "5.89.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", - "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", + "version": "5.90.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz", + "integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", + "@types/estree": "^1.0.5", "@webassemblyjs/ast": "^1.11.5", "@webassemblyjs/wasm-edit": "^1.11.5", "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", + "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.15.0", "es-module-lexer": "^1.2.1", @@ -12456,7 +12825,7 @@ "neo-async": "^2.6.2", "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", + "terser-webpack-plugin": "^5.3.10", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, diff --git a/viewer/package.json b/viewer/package.json index 9707864..3ec77ff 100644 --- a/viewer/package.json +++ b/viewer/package.json @@ -14,16 +14,16 @@ }, "private": true, "dependencies": { - "@angular/animations": "^17.1.3", + "@angular/animations": "^17.2.2", "@angular/cdk": "^17.1.2", - "@angular/common": "^17.1.3", - "@angular/compiler": "^17.1.3", - "@angular/core": "^17.1.3", - "@angular/forms": "^17.1.3", + "@angular/common": "^17.2.2", + "@angular/compiler": "^17.2.2", + "@angular/core": "^17.2.2", + "@angular/forms": "^17.2.2", "@angular/material": "^17.1.2", - "@angular/platform-browser": "^17.1.3", - "@angular/platform-browser-dynamic": "^17.1.3", - "@angular/router": "^17.1.3", + "@angular/platform-browser": "^17.2.2", + "@angular/platform-browser-dynamic": "^17.2.2", + "@angular/router": "^17.2.2", "@ngbracket/ngx-layout": "^17.0.1", "ajv": "^8.12.0", "rxjs": "~7.8.0", @@ -31,9 +31,9 @@ "zone.js": "~0.14.2" }, "devDependencies": { - "@angular-devkit/build-angular": "^17.1.3", - "@angular/cli": "^17.1.3", - "@angular/compiler-cli": "^17.1.3", + "@angular-devkit/build-angular": "^17.2.0", + "@angular/cli": "^17.2.0", + "@angular/compiler-cli": "^17.2.2", "@types/jasmine": "~5.1.0", "ajv-formats": "^2.1.1", "axios": "^1.6.7", @@ -45,4 +45,4 @@ "karma-jasmine-html-reporter": "~2.1.0", "typescript": "~5.2.2" } -} +} \ No newline at end of file From bbe83e5d6f8448f6e6f169cf9bfd8697a437ed92 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Thu, 22 Feb 2024 18:05:27 +0100 Subject: [PATCH 64/76] fix: update material Signed-off-by: Mirko Mollik --- viewer/package-lock.json | 18 +++++++++--------- viewer/package.json | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/viewer/package-lock.json b/viewer/package-lock.json index b4557f8..023339b 100644 --- a/viewer/package-lock.json +++ b/viewer/package-lock.json @@ -9,12 +9,12 @@ "version": "0.0.0", "dependencies": { "@angular/animations": "^17.2.2", - "@angular/cdk": "^17.1.2", + "@angular/cdk": "^17.2.1", "@angular/common": "^17.2.2", "@angular/compiler": "^17.2.2", "@angular/core": "^17.2.2", "@angular/forms": "^17.2.2", - "@angular/material": "^17.1.2", + "@angular/material": "^17.2.1", "@angular/platform-browser": "^17.2.2", "@angular/platform-browser-dynamic": "^17.2.2", "@angular/router": "^17.2.2", @@ -309,9 +309,9 @@ } }, "node_modules/@angular/cdk": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.1.2.tgz", - "integrity": "sha512-eu9D60RQv213qi7oh6ae9Z+d6+AG/aqi0y70Ag9BjwqTiatDiYvSySxswxYYKdzPp0hx0ZUTGi16LqtT6pyj6Q==", + "version": "17.2.1", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-17.2.1.tgz", + "integrity": "sha512-9cWV9MyWnpImns/WQApgoQBKblXA9Zx2CpCkDNipRgx9RyvGrvCLjpEfwQI4HjpPAQDI1trsbeJKihzgz4tFgw==", "dependencies": { "tslib": "^2.3.0" }, @@ -486,9 +486,9 @@ } }, "node_modules/@angular/material": { - "version": "17.1.2", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-17.1.2.tgz", - "integrity": "sha512-50n7JDWtWGCxfrMKVKZ2wqkdozukA3IWeypQgXxzZc+4jqgT6Vj8/U4xNvcO9OgPLMOaTvktfT+wzUmCKJ0sng==", + "version": "17.2.1", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-17.2.1.tgz", + "integrity": "sha512-NLQJkX4XiwIm32dGdNseoc+ARn6JvuB2xMY5XfWTtjJBbQaPk5sIvjH4wsAEeYqDKtZbRCjxGwRz0K1djyaVqQ==", "dependencies": { "@material/animation": "15.0.0-canary.7f224ddd4.0", "@material/auto-init": "15.0.0-canary.7f224ddd4.0", @@ -541,7 +541,7 @@ }, "peerDependencies": { "@angular/animations": "^17.0.0 || ^18.0.0", - "@angular/cdk": "17.1.2", + "@angular/cdk": "17.2.1", "@angular/common": "^17.0.0 || ^18.0.0", "@angular/core": "^17.0.0 || ^18.0.0", "@angular/forms": "^17.0.0 || ^18.0.0", diff --git a/viewer/package.json b/viewer/package.json index 3ec77ff..549b81f 100644 --- a/viewer/package.json +++ b/viewer/package.json @@ -15,12 +15,12 @@ "private": true, "dependencies": { "@angular/animations": "^17.2.2", - "@angular/cdk": "^17.1.2", + "@angular/cdk": "^17.2.1", "@angular/common": "^17.2.2", "@angular/compiler": "^17.2.2", "@angular/core": "^17.2.2", "@angular/forms": "^17.2.2", - "@angular/material": "^17.1.2", + "@angular/material": "^17.2.1", "@angular/platform-browser": "^17.2.2", "@angular/platform-browser-dynamic": "^17.2.2", "@angular/router": "^17.2.2", From 95d0927f9794858b90d9e180155abb25e3059bff Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Fri, 23 Feb 2024 10:26:50 +0100 Subject: [PATCH 65/76] fix: add maintainer file (#25) Signed-off-by: Mirko Mollik Co-authored-by: Mirko Mollik Signed-off-by: Mirko Mollik --- MAINTAINERS.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 MAINTAINERS.md diff --git a/MAINTAINERS.md b/MAINTAINERS.md new file mode 100644 index 0000000..980d799 --- /dev/null +++ b/MAINTAINERS.md @@ -0,0 +1,30 @@ +# Maintainers + +| Maintainer | GitHub ID | Company Affiliation | +| ----------------- | --------------- | ------------------- | +| Maaike van Leuken | maaikevanleuken | TNO | +| Samuel Rinnetmäki | samuelmr | Findynet | +| Mirko Mollik | cre8 | Fraunhofer FIT | + +## 1. What Does Being a Maintainer Entail + +- Reviewing code contributions. +- Managing issues and bugs. +- Maintaining documentation. +- Communicating with the community. +- Managing version control. +- Participating in project decisions. +- Building and sustaining a contributor community. + +## 2. How to Become a Maintainer + +Before being considered as a maintainer, contributors should meet the following requirements: + +- A history of substantial and consistent contributions to the project. +- A deep understanding of the project's goals, codebase, and best practices. +- Active involvement in the community, including helping others and engaging in discussions. +- Ultimately, the maintainers decide who will become the new maintainer through a majority vote. + +## 3. How Maintainers are Removed or Moved to Emeritus Status + +- Inactivity or consensus decision can lead to removal. From 74d37acadb7a5f6a3a8cb61aeda8682bf47a7098 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Wed, 28 Feb 2024 20:37:47 +0100 Subject: [PATCH 66/76] fix: add info icon (but it's hidden right now) Signed-off-by: Mirko Mollik --- viewer/src/app/wallets-list/wallets-list.component.html | 9 +++++++++ viewer/src/app/wallets-list/wallets-list.component.scss | 5 +++++ 2 files changed, 14 insertions(+) diff --git a/viewer/src/app/wallets-list/wallets-list.component.html b/viewer/src/app/wallets-list/wallets-list.component.html index 974cdf0..c305917 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.html +++ b/viewer/src/app/wallets-list/wallets-list.component.html @@ -21,6 +21,7 @@ [matTooltip]="walletsService.getTooltip('name')" > Name + info
@@ -42,6 +43,7 @@ [matTooltip]="walletsService.getTooltip('company')" > Company + info Open Source + info {{ element.openSource }} @@ -74,6 +77,7 @@ matTooltip="Link to the app stores" > Link to app + info License + info {{ element.license }} @@ -120,6 +125,7 @@ [matTooltip]="walletsService.getTooltip('capability')" > Capability + info
@@ -139,6 +145,7 @@ [matTooltip]="walletsService.getTooltip('type')" > Type + info {{ element.type }} @@ -152,6 +159,7 @@ [matTooltip]="walletsService.getTooltip('portability')" > Portability + info {{ element.portability }} @@ -166,6 +174,7 @@ [matTooltip]="walletsService.getTooltip(resource.id)" > {{ resource.name }} + info @for (profile of element[resource.id]; track profile) { diff --git a/viewer/src/app/wallets-list/wallets-list.component.scss b/viewer/src/app/wallets-list/wallets-list.component.scss index 0b132ca..626e73e 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.scss +++ b/viewer/src/app/wallets-list/wallets-list.component.scss @@ -10,3 +10,8 @@ height: calc(100vh - 169px); overflow: auto; } + +.info { + margin-left: 5px; + // display: none; +} From e36c01edb598adbb7a003af0614c71fb1b109653 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Wed, 28 Feb 2024 20:40:48 +0100 Subject: [PATCH 67/76] fix: include vertical lines Signed-off-by: Mirko Mollik --- viewer/src/app/wallets-list/wallets-list.component.scss | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/viewer/src/app/wallets-list/wallets-list.component.scss b/viewer/src/app/wallets-list/wallets-list.component.scss index 626e73e..0632728 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.scss +++ b/viewer/src/app/wallets-list/wallets-list.component.scss @@ -15,3 +15,11 @@ margin-left: 5px; // display: none; } + +.mat-mdc-cell { + font-size: 14px; + min-height: 48px; + text-align: center; + border-right: 1px solid; + border-right-color: var(--mat-table-row-item-outline-color); +} From ea770973b2bd814146fbc65bd258b98370a6781b Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Wed, 28 Feb 2024 20:45:12 +0100 Subject: [PATCH 68/76] hide icons for now Signed-off-by: Mirko Mollik --- viewer/src/app/wallets-list/wallets-list.component.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/viewer/src/app/wallets-list/wallets-list.component.scss b/viewer/src/app/wallets-list/wallets-list.component.scss index 0632728..40abf20 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.scss +++ b/viewer/src/app/wallets-list/wallets-list.component.scss @@ -13,7 +13,7 @@ .info { margin-left: 5px; - // display: none; + display: none; } .mat-mdc-cell { From 9036f24cc04a2219349ee9f0e03c318f3fdda146 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Tue, 5 Mar 2024 15:55:22 +0100 Subject: [PATCH 69/76] fix: sorting name column Signed-off-by: Mirko Mollik --- viewer/src/app/wallets-list/wallets-list.component.html | 2 +- viewer/src/app/wallets-list/wallets-list.component.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/viewer/src/app/wallets-list/wallets-list.component.html b/viewer/src/app/wallets-list/wallets-list.component.html index c305917..56b4678 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.html +++ b/viewer/src/app/wallets-list/wallets-list.component.html @@ -13,7 +13,7 @@
- + -
Date: Thu, 7 Mar 2024 15:12:01 +0100 Subject: [PATCH 70/76] Update readme with motivation for contributors (#22) * adding the stylesheet Signed-off-by: Maaike van Leuken * added slides of previous meetings Signed-off-by: Maaike van Leuken * Update README.md Added motivation for contributors Signed-off-by: Maaike van Leuken <97684325+maaikevanleuken@users.noreply.github.com> --------- Signed-off-by: Maaike van Leuken Signed-off-by: Maaike van Leuken <97684325+maaikevanleuken@users.noreply.github.com> --- README.md | 53 ++++++++++++++++++++++++++--------- meetings/2023/16-11-2023.pdf | Bin 0 -> 161623 bytes meetings/2023/30-11-2023.pdf | Bin 0 -> 249964 bytes meetings/2024/11-01-2024.pdf | Bin 0 -> 204171 bytes meetings/2024/25-01-2024.pdf | Bin 0 -> 184659 bytes 5 files changed, 39 insertions(+), 14 deletions(-) create mode 100644 meetings/2023/16-11-2023.pdf create mode 100644 meetings/2023/30-11-2023.pdf create mode 100644 meetings/2024/11-01-2024.pdf create mode 100644 meetings/2024/25-01-2024.pdf diff --git a/README.md b/README.md index 0998a36..a1bd57d 100644 --- a/README.md +++ b/README.md @@ -3,21 +3,9 @@ # Digital Wallet and Agent Overviews Special Interest Group (SIG) -The objectives of this SIG is to further develop and maintain the Digital Wallet Overview and including the digital identity agents/SDKs in the overview. The overview can be found [here](https://openwallet-foundation.github.io/digital-wallet-and-agent-overviews-sig/). These overview should provide transparency of the characteristics of wallets and agents in order to allow for comparison and effective decision making on which wallet is applicable for your use case. By creating awareness of these overviews, this work can lead to less fragmentation of the SSI playing field and increase adoption. +The objectives of this SIG is to further develop and maintain the Digital Wallet Overview and including the digital identity agents/SDKs in the overview. The overview can be found [here](https://openwallet-foundation.github.io/digital-wallet-and-agent-overviews-sig/). These overview should provide transparency of the characteristics of wallets and agents in order to allow for comparison and effective decision-making on which wallet is applicable for your use case. By creating awareness of these overviews, this work can lead to less fragmentation of the SSI playing field and increase adoption. -This SIG was accepted by the TAC on [September 20, 2023](../meetings/2023/2023-09-20.md). See [Digital Wallet and Agent Overviews SIG Proposal](https://github.com/openwallet-foundation/tac/issues/56) for more details. - -## Participating - -This SIG is an open group. Anyone in the OpenWallet Foundation community can join and participate. There is no formal sign up process. Just show up and participate. - -If you are interested in participating, please join the [OpenWallet Foundation Discord](https://discord.gg/openwalletfoundation) and participate in the discussion in the [#digital-wallet-and-agent-overviews-sig](https://discord.com/channels/1022962884864643214/1154111877077532814) channel. - -Upcoming meetings: - -- November 16th, 7:00 AM PT / 16:00 CET -- November 30th, 7:00 AM PT / 16:00 CET -- December 14th, 7:00 AM PT / 16:00 CET +The characteristics that form the basis for comparison of wallets or agents are collaboratively defined and regularly updated by a diverse group of contributors, ensuring that no single provider can unduly influence the overview. This approach guarantees a level playing field, with each provider fairly represented. Moreover, to ensure unbiased access, the entries are randomized, giving each provider an equal opportunity to be noticed. Importantly, our commitment to transparency is underscored by the absence of affiliate links, ensuring that our recommendations are guided solely by the merit of the solutions and not by commercial incentives. This matrix is not just a list - it's a user-centric guide shaped by collective expertise and a commitment to fairness. ## Target Audience @@ -28,3 +16,40 @@ This overview should be usable by persons and organisations. Anyone willing to u We use the terminilogy on digital credentials, wallets and agents as described in the [ToIP glossary](https://docs.google.com/document/d/1fZByfuSOwszDRkE7ARQLeElSYmVznoOyJK4sxRvJpyM/edit). Included in the overview are holder agents+wallets, issuer agents and verifier agents. Initially, we will only include wallets and agents that at least have the functionality to store and exchange digital credentials. + +## Connection to other OWF groups + +This SIG was accepted by the TAC on [September 20, 2023](../meetings/2023/2023-09-20.md). See [Digital Wallet and Agent Overviews SIG Proposal](https://github.com/openwallet-foundation/tac/issues/56) for more details. + +There is a strong connection with the credential format comparison SIG. The credential formats are incorporated as separate characterics (columns) in the overview, forming the basis of the technology stack. + +We foresee that the safe wallet SIG provided us with new characteristics in the category of 'Security'. + +## Contributing + +### Why should I add my digital wallet or agent? + +We strive to create a comprehensive and unbiased platform where every provider can showcase their solution at no cost. Recognising the challenge in quantifying subjective aspects, such as user-friendliness, our focus is on objective parameters. These include resource links and compliance with specific standards, ensuring clear, fact-based comparisons. By allowing and encouraging community contributions through pull requests, we maintain an up-to-date and inclusive matrix. Your active participation by submitting updates or new entries is invaluable, as it not only ensures the overview is correct and complete, but also supports a more informed and diverse user base. + +### How can I add my digital wallet or agent? +Contributing to the overview can be done through filling in the form provided when clicking "Add Wallet/agent" in the upper right corner of the overview (soon to be added). This creates the JSON that should be added to `wallets.json` via a pull request. + +## Participating +This SIG is an open group. Anyone in the OpenWallet Foundation community can join and participate. There is no formal sign-up process. Just show up and participate. + +If you are interested in participating, please join the [OpenWallet Foundation Discord](https://discord.gg/openwalletfoundation) and participate in the discussion in the [#digital-wallet-and-agent-overviews-sig](https://discord.com/channels/1022962884864643214/1154111877077532814) channel. +### Upcoming meetings +- February 22th, 2024 +- March 7th, 2024 +- March 21th, 2024 +- April 4th, 2024 + +### Slides past meetings +- [November 16, 2023](meetings/2023/16-11-2023.pdf) +- [November 30, 2023](meetings/2023/30-11-2023.pdf) +- [January 11, 2024](meetings/2024/11-01-2024.pdf) +- [January 25, 2024](meetings/2024/25-01-2024.pdf) +- [TAC quarterly update meeting, February 21st, 2024](https://docs.google.com/presentation/d/19jO1Mi4-7d8-XdjyuGsEjuiwH6KCb5We9S99tjYgSmQ/edit?usp=sharing) + +### Meeting recordings +See the [LFX meetings](https://zoom-lfx.platform.linuxfoundation.org/meeting/92821499615?password=bfd9bdad-249d-454e-97a5-727bc5fc2190). diff --git a/meetings/2023/16-11-2023.pdf b/meetings/2023/16-11-2023.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f7ab8a8e99f8c71b1e28c9b5b2eeb1865cfad7af GIT binary patch literal 161623 zcmc$_WmH^CvoMTHu)siqBxJC`Wd;Tb5L|}L;DO-o8l2#oK#+vNHE3`P?hqunyC*mV z2oOB*O_K9G=iKk!yVmpLUGLkgX3g$hUDZ{+tE;Pa_hwR-mgNL<2@u_3szw!}J76FW z(81W6=#Gd8x4NgJ8Ml;?i;=B^1-G)1g_$!DfP}{6 zstyh=KtZA3cqLaCTPu51b3uXMb%c?V4b0x$0mbvzrI{%ZMP~No2{*#b#mE%Z0T9CX zr=^CKnY)>jvXhy)nUk5l$*&&y1b^{(@`UJ)nZ4<6(S8Z>Uu66(8@H5$tGx>l%>C5L z)L93}`-@5s_)ofDxBeR)N-V)bSC8~^vi=3K^k&7AXT22iLg#O}) zx&jLTQSe(P?&nIz)@CLys1`6g)By1V`F}V1T@eKSmi!L}%mYNhF9yGHU_l@X{#}Le z08#LF6#|6(8R_4RA$+J&_y?9B2>C}h5J4ac{!Pov14O~!RS1yxAFO!!fGGGI%MaxJ z2PLXO;O{B~$oCIce0)F@{Eg)Y^8JGq>Z$#CaDViL@&Hlr@5WFF5Cwl% z`GC-Wu!8afQSdib5D5K;RQxtozz0OZ-&lU2z&}_C2m(>?Z>%5>5Cwl%Awa=@uoC10q5y?O*}SZS{V#iw z1p~pqTcB@8d@ zfnYwK-&D>nPG&}SM0Y$=tF;jh3^I3{b&mYD7>cDEce7h_Sjb@Ulk^%G{A9SDblObl zVOV%qw=$Cv77NIvs@b7)vi|k$(w)sh&B@_epR1FL=*ASKjKQu~PmhP)zD9f;5)yYA zU0aE;ut>MBO)*$X?D=MXwx2C} zOTRi{or%E7j~QmXKpGzn&d%Jd1rE4c zmK;93b+y0&Z8Eh8nbUHZZv`eY}?P`a`bfn{Qs z0L4)IvnI9dvo|)gH^MwCcElT(_KmY&4L|D$wHSFKj(VkPHC@OGWTs-nM>b=ZnQa()S}z6F*V>Pm97Cpp-^_;cbTEPC%8B_Dt0?a@jWnwly*RM< zr4{9son>bi^FUY%@Ptg+^@syW`U&vGwx|y{v9vJtZr*r}ga@}De&`$+&Eh8PWP~=F zI%*@J_A5+TK2CbeY6fl+O8(giuXE7?xcu)@&3jY3{CD+GVS=vW42S-BzUpL#G z)zoM)$oebofvfwYyZaE0kn{7uOcerKNkI=-@8QJ2 zV9!qt4Kp}LW9YOudjGAK5uq*5gnvZQ+h`0{b;|qx#i|B2*~;AQ3Hx;ZAr!7{*RYxCzLU|O+*^fXqWTNL$J)6o; z_2Avl3iSo1GR|?ESkjGkyQaR=u9GFkAJQjB73nqtSE-MGLiD+`v>%mDeb=8aJ0l=M z&&@V7`0|VaVw*df?I96cest+y4dIp@^Dw`_erLxLM^Fmpu7Mo9Xj+4I?0Bf`zEvz7 zkPy&ie!VJ*ZXkqmoQv!PIM@^9;Q61j@Az$cOqA#x*R#R3mlf(LDCa<2DQU)n+9l)#~HM zZE~i}sK4Wn6<1^8jjOR#?8LykHo_Pwt*?hmu1U;xzlYiCI_YJr+M6G7cnY~@BrIxP zY>`)bW-yXX;&&?BuOG0Gn5Hs^6Y?;5z1rbcwkbcO*Jd%GEsKtKU~;G*{g{$KamO{@ z#Icz4tysv&QZ@zo+aIIW_vR#C3k{7P`LYdmQR8217-%*t9N=!^2k9qlF4>5z>0D^; zZ-CG-H92`i!efm4LY?QaBiqQnRp7!ex%a&u>>jZ9k-N z8blrrt5$a_(G|KtiNiR%fA}FCavjy*F%Oav8K+yj6=;0TjEi26u~}^K`f-bvZA^TA zA=U;DzZM&zEZq7XE&a<0|0{6%6~X+=h5ud|{vG0QOCq=x9h~fpY`IO0fZ%`n{aL17;5cua&-8$ngGp>Y@N-x)euI`Ho!kI;s3ta@I%48zeN3) zo*t>+(q8G%$lbiEE}FDv`ev<(5&Tx#Axj}&K%6Yk%B4-)2QOYgMSy(`Bxjo#jfGi zipw?}Ce+Svr)rBwpFoGFlr##Z)r8^457`u&-Nab$m0~~J7S{iYdrH;JoHJs^>hx(# zbcn>)!O=IrnlnGrhfTY&{Y4I+tzMwB2u9kRA(4(CHNn0%;@nr@Pfx+7HrN9_S1m=rX>7PK{?(smdLLGW9U>X3mhZt$BS6mEsABaB!vT3!@dAx_i14 zB1e8^64fDPVK-{J<7(sGWfbQ-omWmA$Iw? zV%8+;pJNHtfBdAU`(0*BXX!y<1A~65U6gNYPLEmxxDW?;wogR4MUrDKAAJ~71hUOgnVWjNN% zF@dkxHU81LETKNnrJ^L$)`rCfwo15-_XDmH8_yQYyCdy2_gSmaYu}pDY@FY4XZo^w zf7-gmY}wpjAM+OA`?PgM^y6_u=b0boCS>gGwT|Mx_Bf!A*k*vPWM-XeL?`7A!uicBL%OW|65CSZJ3hbw(DnX;kN=X+h&ADViS zAR$fEoI#oTNWAEVuf{i*VIub3*0=}US(oMiM! zQk*lX))fw^gP!`HFDsKnYS!5f?XIYVNq!(~_OkLphJzs+cdsqOe-;!xC65i`Ivx_O8Vcyg zT8Er3s*sm(nuT+rC(ltP6MVwc)}hwfC(=4?8|-Wo;(Iw&u-Ep&`+(U|+SkIL^kvtI z3`@|4LALNKa%{}WD=Pa#d(#7QDJ#a(3#*Cc6)j4)bFjq^8Bp&;@Vb@qT&R{MPuJlH z&%y>pi5=ZIw{46(cjI!;PcllRK{|780nOq}>oc<7C8i{v(=6us{7_LOX8lIVIHOhR z_6x_j#wE7wvpR*rGXAKdq&3LkEbl9p>Mb#B-1zP6sYc}AYiMV#;2YaQPFX*U z&Z5>8^S{$)@ghp@Fyp;PH{u=a$j2ZH{QYOBLG(cUb`Ned^U7RdDvbCR_JXJ$GQzlU z_CbRN_Ltz_kR|3ZTD7F>8zudWRHK|BrM9xjw%2vta++R7m6fpY_TzA;s+Ajj;+;8t zHV$VxgJ4yf=GH7o3HN(I9S*AtK7Jxc{H$a{)bwcB4U!G2T_L9ih%@d-MUlvtBfAMB z=8iIEG*)S8)r#Bm2I$OdxGfYv{Sv?L7Hpj|C_V$hY|N;p+*@)vva3I=yeDr0vRBx~ z7_UTBMvOXR{V4jm9{x%GFJD%Y1-?S;>M~kBJK4>d%biJ`Y-LHDinkl~4p_`gc87z4QpN|Qx*R}PswdKv_algXx= zG%G5*$z_oiuZs^N6|%473Qg0p;QWJ(5=;`O%7a6TePSsqvVKsb!>a{e_v(se@+&|U z(#Cg;yt$=}6@2GO}oe5)n>OoRVgb31G@Lm$8WCj&!$5f~;lEqoMNx%1#h zOzGFwVzY?qh+Ss zyCoD}O4;z%YlrjxD~(?LR|0|30&KGlMi*(Sxv-AJ#H@bRb2j;cquddCq-n`GnQyIz zz674PD(8v(yOhIWf1BC3?fc+AmLKD%$db%o1{3+GHzD>KubJ1&DM@)O?WkN~`5-C9x3fi8Z~Jejd;>a!nSITYpC zTW;BN>?(vu_Ogg7Q4^eZ(ZyGJM8;Y0IN^wPy1E%FPCoMuRkOOtqgU_V1>QHa*uZTW zt!`m?#I2zB#uoYmd;d+OrZ>w>+BoD`D^R_RVd=M3|02W@w9xGQ7eRK>y_$mE@jyjZ_ zc*FczzZs#ZSF9^lYNHC34x3+kHx`EZ$u)fl*PF~Yfmd=vE%`A5Wh&_f4j}*u4PJKw zifOYFUd!*tBQjtYnB&8d#7|W%R1|Ix(bNWSyWS^m;w3Wb%1_^fd#g`h;KU9L3dpI@ zy!Y%FG0G?6c^SQ}o&HLe?efX1%gIK~**j8axOE48_n-Ww6zz;HHnK@4(U_f3yQlFw zmMYo#^)r!;A*y&Bw`*eR zpML4*E4^qja(c^@ZRA#z@=G7Iz|cM=D6;9Xwtr2f z&Sv-ZtLy<-YWS79c?*9RRE$XOi2eBU;@eQHX_6yv>ruZuO2M-`nRlcTr1dD1%@wj# za2^?KLZo(xiP1%(!X-%ri>e`iv_9o(WKKCnVkWf%;JBT5frgDbOWcUjjW5jbc zX%nGjws8)Vf$_?FC3ogx@w%!s1La%}HxyhjLc?9YLl+@0oi%CI5{4%9h?zC-^%lsS z#CC+soM2F6M^wD_t*(d`2i`42ADq#4BOiPLtJjmB>P-s#}ezTNq>#LfU^`?z_)ke*Z!2k-If#AoEqkMNl{(dCa}VDt>u> z;D?ls#mUdmZeGWsm23Zl*&?=jllsXl<(>#q^I&coQR3mC^mbfs|A4TpQ5Fg5^Jsiy z{uG-*C=^=#wxQwi)3n?rj0v6H5~3*_9jTy2b7wR+uk6LqHA`E2YikLL=RgG7Dym!1gRJlOemc0%Mq z8q{(lvFzV3wjxW|fLWUPz8~P^*y-JH-p_o6Ec$&y?)!;c*hx=f^Y@b_=}Q1G{e~}HG9phbnxO?vcHAH;ujK*4 z4?7~Kl~xa{g-XI(xU!DKZ$CP>l}7OZ*SO#yd;7p-8*_9b!17WYt0jj-R#i-TTugRM ztT%Z4m1Kd`A(di#LPk)*r}hbMal=)4o)CZTfD4141g)2&o8a5)7t0vtH+AltFAlC9 z{4H+WJBOBE`PYl-3g0>or(x(if55R&BI?*&ND7$c#pJcPG!OXb!`oKBl;kW58Q)A* zyWjAE+eJwqt09leMNw}rwP^zES#R=1_3AvgCam8MpgHHJYxl5q4&s~Z*;Bpoa5^Bb zVi(c78&yFQwMOLiB~R4zQ+$)v(*^6-%Y{A9WfM3UYIk|6+YX%&wp}7kw%s(oqov=!yRdl75x&5a7XItNp(0>UJzFdTmg_s`H^ zzOnVNI&^MJQ(Kmzcj;{`mO1x@bGWfg`N#+u=_%9RK7?QqGQ1+hWT1-d9FTh_-bb7i z&NNn$v-g&SC|WcEn@ng8k0f~ zd+2l;vbN_J^O2i=Ltk;IIatg7BST5vQJsyx<9&2@`mP47IMpBQnJqeik60q78RB_Ti^QE1|TT7an zO6Quj!9yNY=^>c!J!yT~U>s~s;P1fma*0Z5;f1Azi_WJRl!}{aBwuM=A$In75y32bP zEwcp8AMd|3HRlri!0kG$yOZ8P=z=iVNo`pWa?Lf_vF=%mb94OMTV#ivp6f2FRn&Dz zs+$t=&Gx(ojZ}R#AD=<=L^1WuaC$lQK5^^kuQ7ePWG}x^+VlKNfBb0NV>l;|(+8ZN zO3M$Am**oQ#DUjRcXh>V&5&5EW7Vydt4rI$%X}x^Ri$d;x}>`o8OlbEV$Uk`==YgR zHiRir>A+~{6W!xhs;~aZ2dXMNaP(v~nyZ=17bTosuY>w1nnt;Q3@WFabCR1F!k-M? z@I0$r^C*CgHFOU=d#iq=EH-^qOttt{#YERC`&|s#j*%)y6rMxr02=GyLVO1mh z_S)y^;e%&j3@4@%Y!1yk1_G;c^2%_>pPv&k>pv0=i7KZ%i{v@@VLJrXsj_*QrQ5qV zMU@67@MA=hOWn`iL+I6E6_&3HT{Gv)F-avHwlk^O&Td^H)BuAz`#wZqm~qT+!SI6Z z+NT6y6vu4X!zvN!r3`7u zJU=nfp2x76r6b(OWu=fxnDGAK4OzZoeL#xS5=TFsdDWen!CF(Zg;CVXj89~;+w)`b zpq(^dYxj9DPChns1pe|Fle+y$n&B=PwR574Cr+=mOM!=Q*A@9+av>S-;>`!z8O7Ya z?pSMZ;G{g_FKM}J=7POzmq;^sI0tOC|47Qwn|2T?7I$%`>_%|pMe|?! z{bn4)rjUK$Vb|P@M3ANFbUlIYV)Mm3T4+7BAI$~9z}IcH=AO0oUFVJnr7UZc{zI>4 zQ;fMIOvxXg6?#d5U{npua&jVaR%w`Q2}ZljhwG(l_TfuCsB{VhgU2K?28hqxv!y{w z3w$dMyc%hEnE;0Ik#yOg&^9(o;nv8OLCl1g=Z%p$Gt?IWjV;HnX1LJmPlg}zW*(lP zJ+_J2y2n&fq<$6(kKrf&X)9ZXSR(uR;RtJ#(cRL&`+;_&TFQg}qK}QZO<@PE@z%aO4++86$O72tTcg)lm1iwh5JZ#s{z&XzT^)H$&A|O^ZeX02}OHp9gHdylA2JRN2O6#=iJ$6 z!E-YP)f90ei+Nh@u4wL#+}^_!6La?mkH+n46ytbdoBNG+F|nDOCN7<><#SvM$NzPd z1{hsAho3$3WJ0QgCvElBh8RZ|?n-T@o3f}=#erzAUI6LFm9_D>J9b4o3 zFzA_mcVww+0#$RYN74}Io|KK}v;=QV8{mjM9l;Bu*z}+*5hhn1s8dm~9%ZWY8xt0L zD|&hpn#lNPX5eFW)EJt83JSv1zdFSs$oRIAP$h1M82Lf0rTWHXoY-W>I}Da~1eOFT zKh7D+`Cmp^er|`~3 zCRqX$*@_RDb0brz>MJRa+D^k&`>=ozgVpg`$AN@J&e5V7&KH(9XLLnM-Yli(n}PCdG!6V*4@G)B@QndZQm7Xd#;Kso2kjC~ke zIJOD;H!ZzQ4KNJ4j84rUW1qyftILFxp0v$5&bqgb;%JsAlJgnc7JWd2`p9cT>xJNeUGkjTXyfh*4sMQQtdJ-m7KL-3iG$`kxcK z$|rcDWpb1!IHox`L5AXr)~F<4;JyS#1ic}d4B&=73=heY#28Ga#-3zdIgva7arLjq zDgQiyR{g_sr&ydbD|3q8r0C-e2SfumYstRAeXWAuI2n!I(5BDpQhSgjOYa&`;>0ucYQP`j}&^{V0csl3AKK4H`000 zvNQyk?@{2~^;5}*_pxfL)P*8wzoBzV3AM07Pkak)yhwjmOzDnV9v|O239jh!`zjw1M=$ZyNFPLjT*Qk-M&%CXN3vLXy!RlP`2# zLtR^XSG+j8P9^+{{bH8?x?0X;Lv>WmrPZsC#zocp&7+SCF6r{$u>k{R9*~=|NntY5 zZ3=HLq&OnW12tBskFVdQrh3Unob`GQH#=~lDYHz*Z1|$b8E3gS#whZSS50OM<9i0d z<`4wL?5+eZu!Z~K&MYvz3HX#0@X=(nU&Pg4*Z+esM*e;QDW|I%Rf+)|$O!&K9 z(6Ripp9e=zx9=XKXA7i!h6mGz7?a-Bdj47hHXE@x^qQ0LOH3$QVi={W4XhCRi&Y`B zn>ogk+eA8?Zj1(%KSd>)(s;{bylJtctIHexF($kgaqm0mqxQq_#gpa}yZ%MiUW>-J zM}1TI-qZ;Jrk7n7VHVy4XdhWzh^Y8adK%j34|Sb<$LibB>hxZsQQVih!YpTVVV&ck ze#r*iCh>DtKWVM1oZO#il@e|pB#D*;sGO&C_(_mv7Lwk{(B;_uJF6;7Tsz8_8MG7*Pe# z_-x+en{=1_LJyIek}X4>?Yqyu%cBKSU}x{}onvfx25qn^h>;U0u`~wkZ?k?Hpn5fa z=wF{?iw$>+hY8MmJH5fooyu14)0(Nt^0A}wD45J>$tH=BEVv7>3o3Yo&M+_i=1u=L zsYP}Q+(JjirfTgaVS>?oY{>}SDxePUd3XC8%OXMAP_Utx2!Z&Us{G6MM$`Knl40u@ zlvYG-BJx8qze1Gs&hBSr-|qXQvc|jbKXPJ= zhTC_z&eW)@-|KEW5bt-XyBn8uH}N@cgz~-T{sp$nQ@%7x2EKRzyB~HRy|MhdvT;7~ zF`Mc@xRwKGmToNMGu4T?L&9pTi1CSR0ip5BUz7G9`w!K;@}H@}pLZj1tohOR4AEH< z|7n814XgnGKGB*W?`o^|>^nCRrjM|7RtRE$aaFL>)bhEe)iG&KwxGMtBH5BgedzAa z{FHE6Anlv#1oXbz5?7qm$i9Jl=QH=@>J}f;zT)*yD%RkrNWi;K(^JEE4xn|72QB`h zN0(pEo5SI4+?lPhD{8-x&z*ZOl@ps%>^)yhwu-LK--ulnhPL%AwZ3@E8I2Kl^`RHq zz!_jZ(5Mn~#TFplCht9DE_U4?ieiQD0V$2 z!%qpxP=6F_QoQ-I-RM!_H;=v{b}pmYf3SdKT4x#yYq#qFv>$JV6@1Om1fF5nKpW7G zmD0TmZm>T{-f0PR6x(0JG+JmtZhNgV2%~A|wx>Q7bF7(M!ap85QRht=hkdo)zI8t0 z`!j8?iss|)yYAAXl=O2g%DZv#wEN?VwEM4<&t*1E?Xd=ikA7IHHEY%KLJmqQjxXLpP&>q}g=o5`PjbCs^2+4LB z2b5P;Rnbp$PtZ+tO?-N;qceYZ$AsE2CpeTc32y$T;?oS^0bW#8Bwi#KfrkJO;ti(M z0;@W!Is{3zP3C}e^r`phsOu{y0wdn02*U?G67Bg5S)lv=mfSbpo z;cK+KJuxE#=qwh-T0A8cQ$@M-?Ivu|ov-z5Dt@|_I z=ZEwf-413yx-Z{g;*vak;=Q(2@s(LIRmAl%-^sx2@^G54-}f)M{YFN9y7e!=`K?Zu z$w@EOc^=1KyG>-c?=M6~g@r{n`iVVRZ4c_~dX(mStF zFF}h;m(H+Hw~KUMykySf2>mdmsO^wn(xI219B*Ot%4*S0q|=;N60YR}G9*3I7#;RnhM2+z=eGTz(2;Khvo>B^O`e}9R>b&A*bhV`iq|Yi!PD52?=X^Wg zXO)kvh#j(>5eOLd_+B{X%H8Khvp!2DTbL)-Z1A3_+kap0>RBV?RfoPyTVz-nEk}UH znAU?hvzD;Su9-9}G)<9zIqi}2Hk0DoQjRx;!2F(3ey#$kUWS#Mpk^-D>l4X}-NPao z8iPXZ*qLtIXA9_}W22dt0me{E>KLu}${<34?b9a{{MI_vS=Ke^0$-hD>AuVyeF&fC zYLS*gg+C{cOt^?%y=X_4T0$Do92J~}&ScaX((ODJ%>_J31`@w6BfM(_jhco9%I@H( z&ga`fzR-Q94*YTJ2ojX8_6N{VaGd&>bsgU6!t zxx~{v#?m8ZF#9D1BDb&xCP^rF2Yo}hFG=2cu+WrvivMH(AtCK8`*YJs+kVF}d;ZGE zSpt*!$3j9E9ky!rdUB|-c*b66O=IcXZs=|?-*1AgeTa+z9 zky@TzAWObSuzUcuntdhw50x#ABky@HO=aYEo*#vO4?{C{!cdLt`N9oeWFbxEx3^qx z#%5}yDSt4%VXuyy(@-nOu_K;sQkdd5H-EPzzoy@7uk&}PdQ(c+^S`hA{eLHJBJfIuYR4^$v^VADmH~Je^_9= zHD)l4NsEA22g8tx_-oP~+mxaq7pc>e`sy;#wTO6*p!%3?ke@dT>q?SR-iFgJ#x|&9O zR0<6k2kdNPv$|$MTW95h+-k^%ktX_i@eHxa!U4&y3iD8@xH6g{*v8R27zmOQIXo9@esY=#6acxCvD$6y$Xxmp;E8k`~tKYHbw^htM$ z2S#a*44IWS;+L68%fUk~7^c>SH^~N&uLcBKIjjj}J!&x;K*I_zN>2~E8-#1JEOshO zNCh$7QhqeR^T1jTc%@SJ5c-nul9)0md;fz8>DTU6ZcK6?QsjsxMtHlLw~x;U#k9vn ztFMB<>lqf$S;Y?bz(Vr!>;s-kGhPAd236$R~fci4YBZBGG(_z1ljlO2&s@_RW8BVvu>7sFuyFyz*QO zjZkRke@yOv9eMwclRL=2&H_UIaTHJob==R?%)`v|?=yiwFi?bthliI(LiTrg@;_yH z;Q#fQ;Gd69{yKmT`R9Q^G_?OwiC+Z&u@Za`fq$t1<`MdbB7e#MJ4O9(IVqU?f6qV# zAp-vt5_M{E8eF;nyo;vHaYrGlP38089?N|Og?Bc0bLFXW$TJVmf|JlO`A_$6&8p^$ zn?HTxp#AjxHHr6t+{n}BiKn6^E=`0=JR-8#D`V}UtzL9{Z02Y)f`p`BXMjJcX>!q( z>~>(1^6eBU=$&D$za`DO)(o8;R8Tl0e)Wg+_ z71W+;oa-!5Ls*T1~*}8a5<)ZK=OS_vbHFixWWn!$zu|QYDDo&`tBlARJ zTXsE6D%Yc&8G4_Ix_Yr-TfvBWu?W%j$PstFbfTj-a)()PoTc4{id{gRzott?UOJ7KjocwRXmE3SnKhftzSjEP+aRjBz6VO0w9#Vu4~)&;`+WUO zW2{o~?16FadoSh~&$=pQRb1!KD!sh}&bs}cFQ-4|j$W7~Gb4UDygs;Xn)qe%KVR)U z@(xVA^FPk+-``pN$J6`&l8*xa`mhf5<=mgIWd0K;^_${9R|CSs_b)fa%O~)E!c9T> zc>n)?YEdhusGI^#`EeSXUkr9mR<5O0IbVDS*$J#r7i32RbB`H8v#-s*TCaiXJ~YQV zaMdFq`{}@Z7&;2~-~-SO2FvlT{=dAONcLXbaaMNrp^=j<3DZZ|-C5q%p6{$su{x?Q zon#N!p02Nnl*%4kt1R7pp43rZ`qT{2Bb(bh3@O$7ELNobv%$?$J$WkwJ*ffY>&EO* zBUQk6p>;5AqX#$}bV%Eo6Xf54@9+A23-?>TUb11j)AFtzPdc=QQ z*ek$0OP%HAjZN|+r;N_tSSPkG*hJ4LT4)u1xu^K(1%C3|`1if{!T2seH4!h($NGze z_%6DcTAmC@^8%PsMDB2vt7(3Tv4?!HIQ0TajRcbigYKjRH|&2u@C42GX*!YZz|~I! zJ+Kb6`g_Fzk%$S4B=6&NT%n|%>5U7|E|6417;I?o49?ZG$?4TVhl%7iuG~+|Z#5gk zMQrtw@l+H2?!(mc+ZX2AYe~oSCk(=b>ub3>qG8=A*4JV^TX*#XVi;e zR%y6PL+_yifHS370x);?d@SmP_l9;9H(~BPFg!%?aRqR~w{lohXbj{Zs?=J7Z(xD*+x-RiZ?HEuluI-?v|)9-?QO zX9j}r;-2cmwe@4$rA>tMEhX~J+nrOQ!LF1#)S3St0OE9m!go1m6O^fTwG{bz`30>} zNO>4{h0PIm_xmmp)sCdSfrHmtyKrR6!RY$FL)PfjZC-C1Lh{4ulC%*(Nm}PVqI=8o zeHhuXJibLGuK|bIH{_2=$@}$v6wYtgSjhR%$Au3Zz912N^$qdf`{}PW3i!6yWdSJ0 zB7XF)EAH4!IV5ZQ@V0oKhR|`ub2{>sfy3*~*p{5&SVQC1Y$D5fqQpc>VZN2Hsad#q z4CKs}|NV660`G#O(32K!8w}t<{Vo>Z zx%sAeAVOi81{+jyCW{TIV|PrOUw;yFx&NHFN5D8MY@&dlmB^9|za4A;P9lDZ17gcn z?Akdi?j}7f22Or4AG-J`(|PR0=8+;K%;GX0^w=75FNts)v=ayNNyoQ2xScia&#?P( z+L<}W=*!~y6bZE+qeyCl_|0^VT;BG8PL+lGe~|EmEi;al@u^sW+SRUn*`FB(Dq7vV zhn>G@wnpwA_8^{X?C=1l_#%)9@=M5QjsYftnq4z_qODn}HXqfmO^UP_O}cG+^@xY+ z^N}Lo>`}aC~`oOin+X2zAL)(BuS@R!pas-_*X%!&u< zDJ;5B^Dl3*xbNv$EkH*-%6mcW{SO7=R2+=24=`yh2Tc82#R2n|rTBfqpBO!?4NNM3 z@Xq^iT1}Af8Do?&RD>Cq^nuDlgnDx176To}h1Wp<-heoF_&Iqo)HA+APN5fz-~J1z z|E&?k4zWzmzwHe7KCP*>P*VXsp8z7;b)A4PM zB2yw_dYv*YD)*BL<(7E)D=bW`K(r6c>pKyKqZG++&x$%g`5|EIK<<)szv5fHZ7Ul7 zr1CJ)J{)+cKYjx_Eb|rCsJ@Dgc4hl9Jc>T-JBs)r^uuTBS6b^gB^&M9}EKtm_yz#!3VJJV>=9RVCLWDRjCRo z$8X7H-s@vT;-?I}0JQcNb4k_R*j99+7&#Kh+h$o2NFdqyx2@to4=1_In8Kk{Z}F38 zn`Ghgqdn~&yrkW6#*k3NJ=-j0(U~`MkLx#m7(jY4y>ZDaL~%nO=m4rGqwnaKzaJb zwXO#vwye-*;u=r595Gu{{HH-?$S0$n!3azJYg3=$HRIM7XB<)>2L4Prx$=3ZX8o0b zLwjQdgr!CQ1?a|He`IareuC{6Tzt5!Ercm~;83kcVB$4C`^({gq(mR2*Smvnwf?PwatC?tzSIZhy>%8@`C%yQmjKitHd9XQ(F|T7LlT1r1RbnBPWD4F1>_!mav#n%;j-@77qbsI0kPvw2QPfOqQ9qr}ol()E%Wbl{l;0C1+ zDQ#D6ULXc*#KjXMl*2ko)er6cGORwJA>Z0zx&%g-abO8C1;iKy_G%oYr^LhCk`s(D z&ipa+`OnL0ha~{-cgC?hu|NfC@Y0p1VhS0EaC}8@yXh`*dLc*o z2zN?bkMT!D4dIKZZP3}?H&#vvSO#<$p%CP>yECue1zOR6o{TRd2NTfp{*H-=*8`Mu zNCPk%CGYw~;fup~sKl4&H`$AQ@_X;Y%WL(*Kn8)mb-8HvK6%OKRLL$#D${7Vh+`Ct z1Ri@3kSyXAo+R={e+Qx4j)kO%Rgp`foHd=>ad?Yw&sy-=b~KWyktHPtyrXScsYOjQ!3#F&yNE5j zD-0xzpN_&9lrNnd2IG^cg?{&9!cEa-hcAd9!9Ood{%}X&9MWuknFL`%=xWa@;Tj{j zO)nB0AT4pd;mLDQEyL*yldOu~lOhni0J?jLzIoO!CxXGf6BahtkPk)oD$qDZPEjr2(Lu}mB_TEk+rTfTHyw%UdX%B zH_`k_2ENe^*}}2)W5J6x!#wRtJOI^oIN-Dlmm+yV-{i=9_Nytt+bY$Jej!?PF{c){ zdar);0iY@Y3In~CI5)wH8$-mJ8lOM7Ji+&t%3FLPmnlj3N}O&8eqts1 z*F`Y+MyHPGwxzdO;F4If1%JkJ9C3bJ(HE87CQTop^wsTQ?Ca!()*qV)R2mZ+hR6_; z^U3So!lmXLed6h-5^s@pZRrw#pZG4YB-Iph5umuX7oVI+OiMz-3&sbXy|dT*G>+>r z-!g>-Um0q-tTUl+X3#SH!fu{8aPl+l4&cR0++>c2a}m#Lg%8Fwk_cPE-uA8tSJl%P ztT6)o@GwA*Ot_#9;b|?Vkk+0p#`KHhVGIEr8~dT|MP#JT;F=1_j}g2-nC|}JNKTm_t|IP-us;2{rZ0U zpx(5h*FCW;j!pBIwTmZ1kyxAO4 z-|^`W&^dlZc@*__a$fv0zmulO9^_-QuEf&3Ko5K(l3JyCAsk*?7$a(Ca~rc#56}`4 zdV^bjqgUFC$D3hh9>Q^x^OaWw{W<3IH2fup@(GUU>TMj!@1tvTREIPxK#pWT3h#>C z+l$j^3mjsKgkZ{3<=&?hE_Y8oT~NDZCH*&shISrJIx=UF!FIS7;|pgBo)5JpBb~Q~CJ$;!RhRxyA;sWwj*5ub!GUHjLrAXWeNq@xQqsS8Ok$_(FjW3wcPDixW zzUqxfK`I29y6uwIf%OruY;2q3n@A(pybl|P4;9db){5f*c@3qae32z$G?lNaVXAZ0 zqnL*85d8g!4A{y$O~m{2@Sz2U*o(PD&4iQ_2f2C0AaL+yGR;V^eQoA&Mx8Y`+&A z%jT*eifwT65;iM^i3dLbUFuabmy|)Q1{%k+2L@_D9o7WL+!_JxAF|RPHKsiSQ6}O9 z^ioo^h|gaI<-dP}Rh394TA@U9;vMmR3CBlL2UYSq?e;y#XhZR@ci-OgNoJc%a7Z(x z-I6T5v*GY^Evcjb`pGT?TTZhWpe=H6K_nVSF(`yy5X#@o9Y0PLG}=5F7SyUR8|=Iq z_hIzJJwzaT^I+Sq&HSZmnwnwbsQJ=bTmfr!O1uEi%e=_9%Wd6ChDmNp-$aXlxT!~B zC1hHeUKqe%>P^KtfKnmw1Uz~!ihQD=B2E)PupWDt^Z&CZr$TD^|JB**OBT!0H}W#;{5}M`d?s; zKZp)N0R=O6tG}D&-E7SqH1!0OoKV0eTPGUPX(2Va<@QHKFpjv{#12m z5&DZi6VP*h;bi*<&x8Vq{R@BUuOWZi{9EVmKO+>j=}&n24a>hN{kOcQ|762I*&iTP z#Xk-Hu~hgUu&KYMqBiR}E2}DMnz{ThD+Lq{PzW?ZK><|Zb6z^5U_m|jqPlA4@-H+LF=255c`uuPP*MN@A=IE& zpMR_fi;4pOHe~P*ZVC#ZCGhfJq=bQjsFZ=(pS{f@B7&lGSvl&XsB3?#EBvK^@u8&u zwuJ)738HXj!s4jh=^tmJ(vMasj2z&vd;gvL{?qu}|B3;zm@tG5)~BvXHrE7_&<_V5djMR$E3=%58{4<$B;=`)pZpiTe-um3Z2NyYsqtXT%`7`}Ij+Ta z`!w#-d<%{;EIX?c>(JPoa}L`&wTtlw{ZhIVQyB27?rvh;%h5W?@n#Fy*;=x$+^fvF zJj+^)mGmCr^kZGX%Dh;z_G2a^TA}95?AH z^C;=Yz0ZR|Z;96Y&Ul&5?w|L}-1fu-zg~(F>}WboU+$JGdmx7swTA7>uX0Y#0>8i` z3y-~HljArHi7E(H@do0Ht7&233k9I{;0P7Qpy7)sR5!hi;$v}r)kG@W?{+uz!6%T~ zB&;LQYIZj4q|J8%NxRhml~nvZ;Sc81QQ$ zTl!`J)E@T6|J;6{hVX@`HnYmQQdBRCjH3ADlQ($%-H693QKmWi9#TX3dG0{E#=5xoMs-umMnoH)!5Ws*VLBpEpc4g3dec+5dxStmP<5YxSB zvB;&LOg0dS%-&dhF)g$aa$#1*l{jUx40*~kpL@0v?{K-Gm{?l*i-Sypqk`27rcCjO ztxEIF*Yxb!>k0^M7n+Y%DJ!g9G2}xyQC-%P%CTheN+^?vX{h?}WN*n?lTghy>%|T; z$|4RcLx21PlQ#9_HRJN(0+piN0d`;`(7`Ng-;rGp5gF*W9rf@2Ej1PB4_nq%6zhmjpb?7vvb^72<_Qtl*hBz9^GlKLc zJ?)}Ss6aN+Z`zQHF55)p>O9|$F*`uwQgV`#l}`jBiOinPqmN( zuBu}b!MYCN;n9DsoFf?$#$WzujhSd0f0ROzNzO9lWWEefhtU;>&h}l`qWsdYkN%0h ziPIT}iIL`yJ)nHoeI5tcfaOnxksDo=o&HCjdoDn-+3LFHXSyr9f`5xwv7>?g@A6&hso zqpX(X+)|2>r)8)XElD8l-E_2Z3b=$X#jL#YZ5$M=n0v&`0a~qt zc&Um5ICueHQ%au*ghmnMpjB#*(^;DK_+gV%u|pSHRy{~-8FuFBZ3qDG;A0q;ltNPS zg;6h!LrO5p?9eJ0Kepm;X?Q-4TF3ulC+C9G#>ubHpm(T7mI1<&14q${&AIS(8v{A; zG#UGj+@h9x_X%Ue+l0P`vPX%B9>fXz@%C^=KqV~uS<@OcxhTq#gcx=+usvH!zGGBI z1fIu^`(Wq7FeS!4~lc}Uum%d;Gu1m z)R}>=vdya=B*t`w@|}tgrUSJo#2FY|9(Y*w_w}>pM?igCe_O0R#zRc7S6&+8Y*Sb+ z$SY`x^>edJo`RQBKWBgyYcs6`F3Vlt&BCxZesSkJKS7}m;nC7M0u=iwJEpw3k~ zESwuesJ0h=Z+}0l*=0}(%dU6C)&%K~J)+9i2oLXipfDq)g1W}w`G5~tS<1qoOC;PIhGw=F&0$2s@-%$aW;+Fz z#;~<@DzcXb4)PJAmN#}iv^>VBYeB3FbV=FKAJ1wkR?nCszWIo_yte5uC>LAk;(?N@ z#rjVel@jCB)OqZ$S04Jt=p)_{9)PB2aeMn@{$kr4Se5E3#>OE}Fqi}9>4c5t0v7xh zKwSQ$bfm0TUt;mWTG4t`WY-fY)#y40KVqlIM0%zpG;Cr4XuMGzc(o)HQLENf9A*xB z17JKccVlCUM`}G{PmrI;R_;70EPJB|Sw8eoZ|$JE{WL_wvF8S-hitL$ecX|+h;7p; zFY9Y#>{Prqqh@Rr?D*}~>uR$%7JUU1K7Mr+lZx!5SS0C-XYaMpQQ|7Ek2mTcg1h_o zsMw_yAfPVkj!CivPy>cA6Uco2j7<1ZhbT(}@mFSEK}Av4%wd{Xtx&!zan~d@qN~(?LuHA*L~dy(cejbL(4|t}36L2?pQFEfKO9OIGK2TtLW;MX zc*Q1>k?Hk?7uoV;Oaa|!!I#f09C}aig+EYI03ruiD((R+6{*KZA6cwC7@E#>`DNH`p5 z_^~=7Oy#5}c#_P|z^d!_iBo?p=!VqJ4iuo@GLNBShD*h|QjK048P;2=NoF9oC7q2& z=aR|i0Mjg^uv{@#)5LVXoyJ=E70$8k_qESn0izN=r}S<)x{E~N0~!`x18Zp5oaUe- zRm1&DeFwAfkec&v1Iv|Bp!4q9QZKT5*I(Q5zQnD0jA2`%iZ5bSVc1v(iCoZE&&HF; zD|5-(I0Fv(6VvF+-$h|%pQe8QE{zo@p;*njE(If)jCs(pM)schQ|Nn1F<;3#b$jIp zY?D-q98plI&2=E_q0-BCt6G*@?l3lq5C{(i#mzTMa^5~$Idc&ckRpCC+x@isyX$cE z)|V8D>#>U?_6Eg0T?%Jv^)M;*+PtoQRt8W56T74rnUM#d_|X^%#{AMp7U6wE^2&~A zt6v)0#`CE`rI;-h{joCgij&nzgi-l#Y;`#6&Z~#`GnQOI@iKe=b`+71~b)L z&oB(YA>jM#$op3gRIZ@}gaxm0UMrYBnq}oDr4*2)rP4(7-)k1HZm+1;cQ$vm6IBUm zXs&+cied3oYYJJN_qsL>yRkh_ua9nA_$l+jTtMx~p2@ehTh@xAb<=+0mcw5UjwrWn zLQwm-iN#x0pvOOKe9A%tcj}#T9s^50v4przjG8P(M-A)7t^90NNGQc=p$F!gsh_(` z&cjb-tjfoTg|(xKZR(!+0ol)yG8}I}mJFjUQc-qGOpF%~lZIGzqbAFxe?>abU8#;@ zTT-`8oWHHBbdGUeeHcH)8YJ_Wp(W-;gB$uK-6(eM%baNZsRxl#;i&f*OiNj+IL9T> zn1o_2D=z0w_BKw>-L(Q$KXN$E>D@r1!^D|1U;!=FYo_S8KcoR&_*dnNv-#y$qn$M7 z?j@`7w;33I_L7kvxE3pyT~`yiI<<|lcCgRg`NcE)*LA~GVhcOXF@Ij6uEb;SF%j!= zB>!b7=P$nf|F-vI;s5ra!@m;$``r)`5&YNpWAXoyL5IRZ;{RcA^nzApm1qr`3l|R2 zjJ!Sf>?A|=){Z=>KmIGVtv;4^f=)&~y{64oxwza*!zUpt9a(uBKR1@Ag zqJ^`r`$O!zDAA@6?_;U13&O)zH0qGR5kD6{3LT?>$^ewBO0)oO1U@q z?(?mwQs#J}R16Mvy7YH4Q-+1bv2flo8d)(Td?H^R!OuI}{OgSQ^C zU8B>Eu9#H&5*9utXf?toDju@6y9g z8W>->eh%#1+PR#i0kjo;p`{w0(hV%pc?bG2aeOD>H2#n=HhS~cpRG?BUVN- z2uTdE)cY)3H2D6laP%3VETy?l$J@%(-D$kNcoPs}iUC7&7Ov#H({fsSXs0LJ6xTS& z)fo;3otA)ouKq};>wE(<(E*3;DSLZb`XMD>Ch^o_02tp#xH4Ry*6Y;G_0T|PY4dAK z4p;)w;Rn0^(EJ@+SUv$%ds&q2IcyN31mAlPy9>oQd;=!4u9bn4i{4w0x68`5v~&G} z?VP|`+A@)=_Fta`C13~6_PjQ+UR(aK4StZCP{9e(EtDRKi0Qul(2uaZ^s`!;Ooj#x zK^xwS>{5Qc{J8pcH)A9uGdOOQd>czcGuOzvp%fmDE^1E?u~e30GB%?M{9JwTo8scz z#_C4&I#O+n985@T>t$2y$hp6Tg^{|gE4Wnht(roVD$}%1)tbR9@T>jLA~8m2DAaVQ zIh`9yUNqBpL;j2isK;EK1f>={f__twbIg65t>#*oElH-|U!6m#QWDpC#RK+aJZS%D zzDPi*f%%yDQ*(zxEz)DdS&E#v606Atu_$i`>p$?t3EJ5NLmE;Ly8~OwuWzaERNj~s zE4RDH>S=jI39HA_U1pGD-FXWik@rV83Av3B0qjaw<#uD19>YmwP97N%Vm<-xLu=A( z_kT?qE*=spFZgPtbBmXywa|I$Y_3;hcWiOmW8p!@O$`LWbu+m9HqMBjhU0iU2bgr> zDwz4h?E95o!GQFv zZEulerq?+1p3_uN@{-Dpt6#ABAw2zaLb}!?vTjSL16i(cRNOG^=FDu65K)m3jr+cx zHdR1DQOAfvc8>rIv=Tgg!iUS3JqvXFa&H4$W`L}H<7J1_`&qVY+Hu~FL`kO6%WJ+> zX8X?Z9-R|DizCkirwyOS^Mcon;!l31ig}AkBW1g|`t#o~Np2gP@!!x# zxI}qiYZdS-vQH%ymL~#uOG4XTW$hWEPrC*Rflh)&RBXloI-p%xJ0^GEJwMR9M!9kX z0+oDUx5!W(5Ei$3FjN>B(oy&f%#=tj5mZ)E1xEa88v)dhkRI@rgLPf~fR9&|9x>0T zO!jofP#z5RIP%5^?Cn;Zi3!*InH2G+vUVi zBCW=hvhoXteTYKn-UvpF;S>O11=mqX8u1^(4%@57GFMqTUMGmv;jOq@tu*V6Ig0s@`0eYK$ zTN^ZB&C|o*Wmv@S3{a7f(HBYUDZ}nyx9-;<2L2#t_89Q_)mQEM-pFUpjK4wDP7&(x zZ@D*oq*7EFwn#p~@vtt)%7>b7Qz_gYHZUKJJ~7(g(6sr&xt!t|ye1pJ{)udsaY%_z zmV{ma;d5cb%LwWiFfT6Y{th7 zw%dWWa~xw@`SzkXxZkRo|4-9UA;ZguuT?&V?B`JjHi%Sp{Z6xZSXeK`Q!FfYn5!^R z3J?A9MDyFInFO+|CAnENKcIOVdo@L3Z2)gyjsyP5Uv^(Pp4{{Kz_vHosdS`J3oKni z2?H0gH0SM%>m|~ko5;0uU>Wu#c-Zf~R*pY>>_iK0O z1=um!6~8wq0?#G0a>&+B2m6l2F2vAJP%ii2))BHjb@LHDij%_o9q!{0k2(jxL@;79 zl-7^rhEByzejMzGgxH706*D;U_brBrGd?#fe8ch)WNU!gGpD7 zl?lzL`5X(sxe#wp*NN=-=8fy%5;Sj&6{)i&)7f%;g9wi{*XVI%!Y)db1XwCZXj9;gX%m6TUaYfJr_+Q0P|Wdnsr#9 z0qKXJ^L>(<*5g)Va745^yd{&i)o9d}20RzxwGhSQ@1Q8fCYmz0Zf<vh)X%z--u;JqFd z>l#;CoVeaWJ_q(oJIX$=*`B^|JT}97W!Q3Hl<-2JEr1=)Ay$NXQk>>us!GuDiP1@* zE2RMs&cUcfN3rK}Q2jkA*K)#|;~K(VbX3;6gN66wV3)?}BNDdStIGk1q-YyxM&Raj*nZp@JU6sO z!p1eJB%4mr7&5|K0B#8iVoPaHU8{+kgSEXMarQBEaZs$~m#rdS3=EopL~ke23DbLl z5B1^eqVUT%V8J|O<0TT}6RPu6sBL$_96$waBL=&XU%|iudoBfW9raCaB8$><`*y<< zTnyE2sc>l^y-S(?z7f!>c;sr6w*J(K?X44H;$Rx`-D&*V*#WR%2B3sqv9Z;mdp5K} znr5P$WhF(AT!p|PN7ksBcskDo8&YH|!ECgA&Hy)mc!ZbT6zocjVZtBIEfPQBE^lEy zZbHlbRcJ>5RyJ7in5|AaUl`0SOK0WofDH$<$gF`qiZcP*d2v#rJi`@vNZ3e_Q?7%@ z@l$q=?^K7x;ARKC4pR`Nks)J}v=UZ_?UVa0aHc)9HAlqgvb93@nrg5uP18|`R| zjyi6)aeX6yt5qi7V5!$DgW63`MGd{cR||bl)bC-*V1=R#VPF=J9$FwYx&TTM%4$NH zg0Fksy9l9z8$=3hTy0v0$xnSPf_d+{R)PqY%2N<(De#8{|gR@08ksz=6 zF;EmddwR=E?)2>{$cFtAf+geUyfPHExLy5F=%}lwJbx~e*6gi&ugapDCx<=4&A}3j zuwy_)wL~6asypTVc3I5}oE8JtTWRfhDcq)IZEPe6=AV`BP1P|u47`&j z{6_w}&_k9-zKwa_(3Z#920({;?nPa|dGP^P>6gQcg~`j1teabe$PSELkCqr=#t)-! zl4UUB7Te*LGnA+2y#^pC*&<;X48Fh|qYK0LnjecT5o*o!Bkdv?jFMxzQt-|#PPRy^ z8&bNJ?-owEm(%*%g0j{*-~@^2Vx3~}2(4!w5JdF$E04d74j`>alul<3wC?jGW^VDv zQXFbfy6D;v-lCteze?_mj?@chXGEZ$fB{r|$>J2-kooc}KlB^$!j*q3rHgBUgW(x$ z`OL)`#<8RSJrf4W2U~Owm%|j1>)?w)dLu|)6^F4JtPa^H)4~CM`BJ$Xn-MEtGkEww zocW8?Pi5C69%)H^;Wka5vbFcL_E?_s5|ee-9TeMcXT331@{vxEp;6Tm?WrVl2Ht?H z?rsR|AhKEfGdgdY>~KLi$;mHmC#8Bx|pWA9~^2keb%<3LbGL zByxJTi#lSkZbzy{mi?MXvnSp^U=SV5X*r06<_gxYDXObl*;rGqd$UhglCNKT zNTBjoNDJMRb1?ctk1*5hxz2e!FW&$GFwTK(V?YG>&k3C54rz=~5h=TQfk zf^|n@Qc93*8};lyY!ozrNLM$3TLEOT^Om^iU=M~%($$4?B6Sz7b4ls?-}qJr6@8>g zqFn0%ziCy;aRwGwJ$#k@>UN=MR|YT|P`)Rh_VY)Nx>0o-EBGWAMwtuB$ssqqD+8a1 z&}awHY@g#nUD!LV3B$j}FSDaPhsf-&=xps3Fu@5`E zDRpT*C7FW#I4ZEja!$4!SDR9mKVy_BJKLNuT>X?^4xDVKPRlHB_%t;*H>)cg zk5Vv%Fzv-#y?iE`Y*M20GFSEbIor#IKz*rd1= zmnQ8tK3d4F(xJV8M2fBVd}ncnx+6}>32PT_%SA9rUz(qg{=5uz_HqoumgnMdPUAj) zv3~BVYx3}6*UL@tWw}*hG1!#gQyLxonO`{Viy7gx{fU=veZaek4DwGuz{jMnQaOP+ z?mT74_d21nf_Y%=M&oGaLWkct8RN;BR}129Y?Q6io9C6`zGI|$NV4-ea(dwCB?**$ z>7LcKCq|!%PTpSQqgZlv1z23@5iI`7d<3tHtP3wl4jM$yZ>qfIU^BTyyu0<8iXZb? zYTSn##k zz9<)fuGUN^G_w!9^Ug-Ft$UeO7MmvTdEhI}7>;$yVAAr@Zd#xKn!-lj%n?7Y%~KOW2vwLzZd+u`rbmHd}G#gXRXEXTBn8>`FR;c#mk z&-#N!ny*t76Q?q%-C69%{Y!885pEmVpR;CiU-h5Co^l=2Ca&>5KC4I0mn?WwAcVOW z=W9u^D+Ey6DS7DKyNaOU<|p|db;}Z`v45*aCSA9_MxNG4+}^ybgQxqXDoVsu$F#`%5O_^NY3+6L(m^;12h#^sj<7z-ak7AHn9 z>!5gm0oep&6>|m-OuLitL8aLcGtDYYJL}ccj^+=RM;2c_;M}7g9(Dt@ zzfSNO!9hmvH|7cehynjJF7Df?iaHet0mCB!vm_deuWdTwR?W&q2VWrKUzP`?JE=T5 zL(PT>SqXM`L2_x4`wb}{%08q{zF0c zIYEh7=bUgY5l37*_bCrz`Fn1PX-!bduP!&bZ;C?7>=<;*8ab#>cq*JS6(EOP;nBPKr7Jbjxj!ZSwE*hR%hHePDaz(C%cI3h9V13^g7ZRm}kCAo4?x|L}iLS4kA5-HER(2k&>|)I> z-P{O|{#9fSbwaj=kJ7q`QI^vvK|Wd1S#&P*Sa;UjE>NbKgr6~e=|>7j*oY5Ko3kLG zV^6qOLw<5kXWY|ZM<5yfiI{`bvH}O`p2&yBHg9its4fu;U6|G#gxN?YnWeb2YzdjX z2``m99#At3$n&S1J@?@U^*8a~#6N*RB$&Mtg&HdyX75#kSrO5E5u~!5$h)DhPvqNY zN5!^()&PkgMmW z_T01W2U*(76ES4-%BXROHJu^YRPY#&Z~oKa%Yy6|(m*qHq}wpRg_F+t*1~ZlB|X@X zq0>qw`&C4jtDfbkYux4A=cZ`CX-Ei;)w2Q{u}du>pSi60BMWwevMi*%M5eM|FgmQz zseO7$0};Cg?0U))XU9F?EBNFf?MC+;vd%~!`KH2qI2au;+!?#1kU*4_Rc{3uz{n1l z$qDU8U_QbtJqS#Cje+cXJ3QBc zF@l6PFG8P~QN?8#-4oKeaykpjAu8=M|90R>PzqxHfXuS*G9{ARb)_H$*|%3L3kHkY zf{u!Cp2w7}NXuacQtcF>)WJRrBXk@&Lr9%SG)bO~#3)XBY9DjqqCG<5%(Cg34|4>A z>7IZXY)P4DJ%Jx5`8M_ZBGBp$d}xZX({zvo5)`7sW+KE%yNc(6h%`RWE*I8V;(n{I zS*oG9$mXB#3`t7XZ^PI?yWv3;=a=MwK2v4O3N&5%D2mC83!d$u{hKq*Wsxp&~~ zZ_*J-N)TxfVUbnXTnTgd~k4H zYuW-xjSv~pVRiT#l0s42Ii2!LE`i#HQqn;rIEfoqIco+8VFKApq%)4U=aN;o9It2b zDA*HK-vdN4w-#|r$sx3)ml$$_)=@~wh%PlE$K|C_^{%n0UE~fGM4|BoQsYktcF_z2 zaS?j}#LYuUK!awYS5|AhmHkf)Grv;Cur6OP1oDUiLM5-hi4^L3y~pp1p}GAqe3Anx zsI(EBY+j91`Yg)~=1#ia$Th%_0q>4fG3DJDzZAA|&$O zB5UG=Y5WVGV@>nJY}XC(_7|t`_f#PujM9Y&l<^ImAOLFwR(F(6a(@TgLmCdBaE3dx>GP&RxXiZkZWTZWp3 zZg_r*{G9w-(iv?K3jzeW8!yS$W^*r0fvS+S-$@ZpA)-LY;~~!-7;p}mxVM`fKKJbW z8Pe??&anmUoDf6}C9Xgy`JEe(FpppJSCA0adLe@>!cQZIoUtJIM{dy|m;Um*$KMj5 zV2;#9{Cd37=aH|@F|)#-bxX&jFk;!GeuF!*NrSNyGPaY`F03Dpvs^6hCEg@TRbNkN1a5*a-rSuf}f`R$y@ z>1k3E*uQm)MRpPQ>p-S&ekts-Ap~1khr#(saA-zf-DPC}2LcRQtr4XlVL%2DIKB?E z-VcqK(;35&1AQ=h!FlT(>Krsc`pZ!GH?1MH#h4Rwqkq>=DwFVwBI^Aw!dR_T`$@p6!8%`?bb{+{BvDBV>Wth zjYg2tigP&zV%cySN&8a*M8r||CflKEPi1JVm0R4yQY;9i>&J2_vNzZ;bX&+%-3$x+u zbF+Mpr<5QGZzwXqery&bh@~{dm0w3tQZITd4s$(^7lE8PLF|Cu#PsxzD`<7O*H4}C zgx6rJ0urJLb=#jb1wK3{H|)HYwnj42miE*gg)ek7Kn^B)lqN@p<- zXA^O+iCbgLF5fo%s_vNGMA{nQ0=@7zTo+^$n#0u!Q9)y}y_D_U|m!CuE zLS%`E1A^E(D~b3h@O&tAk@R-v#DPL87Q$*b0luQ7@>NiU03GXufVYIDtB-cKZ2Bcg z#E?X@;zWEGL=+z)Oo|X#gLqg0keMz*xIR+BA#fdExb%6>gl-Yfj0YjIj|!sy=mis% zC?58S=j^&E_;K8N=AmSUyu0bDAYj_`Imw#Y%ixXNSbW3&3Ob4@8IW5kd=j6JU4THi z&$=FMuuP7ZeN^1M`Ze^RwjmlT4N_@vxQA^+P>RJ6nT;*=MuK*Rs2Z>IWd0F1Bz5yV zEpEm%oBL9s{ie|GTiG;%5NRoPOk~I(*Cphe9X)c+4d4>VS6-z(kpaFw38|$tL>K)C zNT9BC@s57%J(pZ z(gL5U?vFJO{Lk-KYDB}S_ngn=2rY=`;8ulSFX%AiYirnzf_x<7uF`}X-jS<4!^Bl+ zb1`p8bm+QP5I074pw)-BdSXV{RoX)k!%v^P5;~-d>XHhqA@pyLYF}2h%7KeHkYeeh33IcHcG5>_ywa3I$ zjI%@M5w{MI6clbnrM$fWhatlrq4w^oE{*V+)j-PZJe4n)SYAJ~ra zMKNJXj?m*J&6=#sn6Mfd=Yyb1e8+;#6FrDO=7M)TG2}8*;W~svq9%*Vs9LbcJv&eW zGz^6J4)(`09KD8^3~|{}8J6eIPOa5D&bqNUbMqnzE+`%hp4AVBPs)tV+FMbj8TK0| zYYy+uabC|BBA}w5HA6TX;UGV^i}f0*Tk&1MTAd&A_2vGpvDohrQHpd2 z6~j0}L!Qgv>mS&^H?D6{3rGIRed3&;PNaUa$k|52U^(q9+rNqGtly(EG}_br*O9t^ zJ5TlR9M1n6B6a_m)cW6v)cuk8-;UIY{f`IgghVBP{~=H}ry2iQloHKU?+N0=$1HnG zDko~4PvJ3CUd9^)YE~{~d4hzbjuH^9}0hF2#ad~_u>-M7`>^e^50 z{^yS&Kne&mE<0|lwY&5h&5{OPXih! zn!m+(D;{389d8z2moKzz-l^|uh2M`}y;^OlyqmfJmd~}^qJDNQ8MQ%#;rjuptYxF3 zN^`#Rr2`sRY9!AkX=n2en51o(&`f2Bxr^9l(CqmRR-drMO8X?PYot&L@V--}3F_xx zCQOfWtnSG@4jPvw*EU8J&9 zGA_iOV)lFE#v0(Miq+-vm%1m{0|nL!d%X25GQL5lQryF8K>77UtJe~D-syyi?{ikT~% z@+DH=Ano1XcACF(2T2bEU6c$4P{~X@byBI4O*zHUc3iPg_6%Rb&VxU+eyheya&2+3 z4Km)5vg;Yh`yH?*xdWf~9xvKD{=A)_RnIi(*p?r!1&_NtIcE&~s=i^dCv-m8Rr{cr z;UQU(Gjre<>`bf1UFw14>z9>%H?c-ysm$>=VX93x7{;VuE=6L@Hng}jdt>O}!~4WZ z>VvsoEk-fOZ^HxA>iCbT1b9ZA#hRZ52@HmLHqkH(+*KU7VlMbB40+qgl(vm)6q#*^ z6}LoLi)3<2dCk=?v9~N-F=t+u-d^8)3^?y0rJ=eMUA(Fv9!6`t zYVX=SvUE*L*jK;DBx{>tzUZF|s6KsLe0GZ}*lNyZ2ZYow4X&NX1j?|9s5i89wZ*L0 zZ}&L&?&p`(Xx-Yb#=HnJ`Ypilw(Q7tLGp;T^#0YB{BBD}?3zV>hSu0oeTxIC(sSJU z!=9?kl?g@cFvkM(GCI0K9Tm4JWgH{V=&3M1|2kh)hyOrDL8#{RWsd!B>Js& zv&YxWb0z?2YmZ~T%41ksb_ZmzI-N43foJdukJ&bh0P=Nahif0o~okQRn#mFW2B3v(57t zcZ{;r*G^%Z%|XlF3`-eTW>zmd?)|#Xkkz~V;4zNbB6Vib=WZf> zc+bl0emFjKTQeGod2dp*x!>y@F1r`N*k#gx3A$!0>R+tAk8hXJ=Ud7wLwDSWL1?|X zb-6y!8M0uW?j|*DynnG>7#``ed{yI-PyVz0i_q*r8l|ektw%s_8{L(E&_X8Q~h-Y1$*`Q(|`oV-$6 zFFBmD>(dijTxuZ=)kA?Yzk6>FeAYSDXcZh_M?9WM1H&&J>GM~R1uYdB^lOhUKPo3ipB)0EuQW?) zaC*G_hHpvkuQ4>EUX{I~lV9w6Rc8H~xzNPCdnhLGF_X&MND`)Pw~R^U_h&yBLc{_sKm^jN&$!d(By=k4WV&yQU{b#ERmXXQ_UAy@Nz~dt zVGpLPw2AJ!#EcTla+>DM8m~5;9Msj>d3Dn!yY_zdlG7ySdg*$@t>w`OVRO^;KL1%2 z{EF}gw+4?zOG=?7e#J-}TRTM>D4SSnFd*rAWtfa;~W4)LMSA80ai8DeuZM2NnI;^^ZDc<}#1 zaNH0o_)FVOl)6cnTAuP~SIo10iwkX_-F}-XMEg83qkLq2dZo*z+%QP<^TIEWRDK<* z=>=_$a;{*qgYJ_B!cwk|uMB1Es;UcxG-X8;WgfXtsMbB6KYm;D2}d9IZBec6j|*yR zh5}&BWUCgAes+`Oi(K#FK%B}Ee;QG(7n;{GMC8vW7fLosfcqkBKb$p3@iKziG7 zzUW1lVIF8fXJOV^8_m=yT^6>?&-@ZHXPux*D!luXKvkFzc(SRXIL+AHkcBv zP4tp7&F7gv@~RY&$-WO$$zFM7skE#plgg=V&d- z?}EOUC*Zy+E-8MTi8y>VI>+TGQJ84ys^n8G1_4i%+z4yh~Ogv|OlK82;f zz6|3hgO*TytLCgKN;fQok{m^!b5e7?*Tauz`;3{Sicb_T?N@;8^V2%gn9}8tmWvN4 ze@;D@vBa{$UTlkZq4ceW6InI;v1Q>XBSNUYNBG+mm;700Arqg>u-!L{j;>P9J^tbk zU3wcG>WyQtQ610-UFkf7HP{6Np1nu~+xw{d=5cs&MziictB?TqP~8!+F%%&{H)Pg% zA5T5>;RJbwYi!>ZN*qI9P0d0+OM&}8H~JnzDy}YGoZ~lszN6hf9J^qfbd4AKGxM+pWNXjPl6zBUOBCwkdtiFEr@n^yM{*9kzD^ zuak(nV&=A@yuzB4l5AEza0s=?b;pME(u5{V18BX?XuqB0;WWQ-Uog<1CMOy3tq`(i zs|j#Zi`wX;jyQNu`E7BW!M6}Cl~3u}t=$62AfHiamiPY2f<&=KQC0-aPHOfE-M2~e zmd_i=ci#wvZE#L*+T`pmmlM@^qi9suHwq)agMIIKb#Q_%l@Fdsf8f<&U3?eKJj#fH z!=tNfcpPw=6j)xkYCGz$?vr$YfwNCV-oY~ocFH8V5ni7q<80~W%A$5XV?H!dzJ5vg zOV58HYBkg}TF8|s4C6qGzD;g;&HOQtr{+u2*hPSrs<}*^^pbVb(G1aJC*f}s2kC_o zz3MpMrKA$S_6x96Dkz_2l>eA6E-fnvSPZS>8c3^Ud-=_*MC@#SzA)J~#j8P2-bHdb zeDXZyJi6`{78t%QHn~N3d-ei8hkGOA*yZQ4vyZp_qvgv{h?hd^kJnLQ3p$kdEXAp( zJzXhRFzw5SO&b>ch+#V_@$b(u|BeArg#KwBoWDu@!*h%fNbFzDgCh!(_`iT5nhCog z_Yf}IM^1QS-;Jp>8T%g9uCOA1@aPTjw(qhcb(Qf2pbv~VqV0#DFnm5nP89ZETItAU ze*4DTiju~Fni;CS0j{trVFniop^`@_@9&+uFPJG&dTWS)7*n|Rd)yN)cZiG-t^*AaWrGO;hRSoI$m7qL<72|s<|dX(h2CY_{6FR|T=MA1%ck9c?+Yq~TK z8U=I$-WmSuNj*VBkYd1y*taWqqtqi$ZWIkih-`a} zg91NNUq8#egfZyiOAY?j96S;K^Z+5%UIW$c6hXPNL;c@)Uwm|jC?BcVoHM523diJ^ zYVPgWpRXa}+#x}n2R*xsjhn4(l+aY%69r#F)M1U%C|@h^zF0B?RP zLvnvQ5iHQPvrE_RFiLSbBCOP_?Ub5PdN!|izgxLsg~9BV=^0UqKjyf!CO93y<~r`2 zXEMSo0-f=o`%xSzE|OJN(HKTPOYJe-<~>{`{&Pq}rt!#cBvSMdM)Jc)q5|Vlu*IR= zFK~5t%o=m{&>*|i!u$4ek^%;`+VwcJlaFn-nwy_SRE4+er0gWE3=C=JmbGHJgQ|SG zp3&z)tE43qef-4GE9G%3T1Z~gWXK`4@|Ww%KH6EgrH^j>xQz?%4Ds&ex({wS07( zHb4h>WC`6&lD10l$pjMmJVfpMB$MoTZ%25-nCbkQ&Jy=SbKZ&Wj;bwY-|h#?4abmK zFwTJKI9JLnLKQyl9^YD`DC5FU3Z*PgFSIzf5Z{V-e9Zy><*2!frgs)6uw9x8Bs^AE zVk3n{5-8murR>6 z1hJvOGR++B0lKAx0Y@&~RF3Fe{1@sk2k20r3&l|bFTZp0Pa%Wcf0hqA)bAQwVD_h2 zJXGb@kXmzAs)vqq`i4jlwYKcy55MoDtEL)?SVZ05XzcgwVGCl}sx>@cOM*Zq8QK$T1v75_;Vb$b0tA!6?4;F><>0ZG_zf}9D$X4ByG)P7dsO+fJ~@`jHE_j$+BW(@im9$#3dK6LyL?2q#&JfS;V zrIUv^OVDm)D;&_!QbL;I_^fK0f!|37>BcW~ai-x|H4$+Vyub!aFJUV!4tr7|o|H!e zj;lKA&D3SsD~^^C#;5MEWFnmg(OH_$?l0i<;lFz5J`BG>qK$;VIFgUZ=6m`SSw5=K z>`#UFZZ=0?SpFQi==w$Ej|^7dif2V9ZR9y9Hiip~jtuTGcqTGw%r4|KFt1Q+&p{~7 zomX~-fm&0=34dWhg@YtmO3b0Jz9){N`wM}N-* z-=cE()F+6-*{K|bADur6f4rsD@TM)Xb?}9~ZF>qC!Ef96QL%yEt!CJjO_K`vZ+;HjIkXAW z3e#sk*-Bsht%U4R{D9OC*>|nNR0&bh6{Jp7hm45%AA7p#7kIC*8XKa0i%u#0pS}!) zeo)X^jx>|M(0~66O@>_+6;)MR>ind45hhW789sogZ9TDq4e#uh8kaTrGLeP(YFu64 zz9&F$Y7CZ>hkYV2qg)Y)G(zJdwshVik>rm}kxrkp5dCZ5|T!-;Vf&FDv>4$n1f;eVoE$PCN_P|gvpO7|7-l-|zek$7l^uJfbpu!Mzr_>K4y z8Y9e{L%E8cAU`&t*x~*W5>nl}qNt)wzHxZCl$hr)ZRP%$WvEZ6HCDsr$oj9s6W5fl zC;8lMxqHNc1Q~QMHhU|39guXDdlm!ya1{!=h%~b^JS%Sy)Pcx@FSh85o{^=O$bqBi zLyir)aHlsm95RV_R33xy*=`cy$_eN zB{3*+I~~3=Z@bo&M^SkWOw_g-A&#_>%4drt9?qQpaA^oM zm>lI6O+9)(!5x#U%A*x$e~rF*YKE;A z9Q)ZhrjEkstQAvZ=jc|$aNq0NhaypBuChbL%YXUCr={Z_Sa?x;)Se1KLnGiW$&Y~E zv~a8}pFIl(0*ieNVZ!YqL%S#GQe;r%{5Cntvd7qJfX4D!J)Hc(StYPfMX-VV8Ql0c zF1++L@=JX2@d?AWAaa=I>=q&^-DHAQ5vRa!4xx6iFRe+BW}0TriQQ zfo@hla7L~-#7#^~J7zg+koeO0St8t|XC50>F!?UZW!}RZ z-@$D%O^n=QfKtoIylZ7gS`Kr;Zz=od4=kbS0v0tgF|%Aq*MU7^Xt(RfD;6r$)HX7 zz{E8;NDj{G#05p-SCivFv9+pXN|R$g|A9A{Dg5#$?lm%cW8)x%qEl9$BMZQ3=t#_L zd_WK;cs6eDMt;fAQ5{O4&PV6y9e;_Vc zinD3f6Bp|LM+9}f3TO4@gGY@b<{5jD=|@MSqA1A%pl&C>dNf>294%@r8PM(xfZmM=N12$`U|du|-NZgbizp8vWs7XV zJ0O7YPm5F#T16Uue`UQe0r$5a8Wi*>pBv%MUpKWd2yR+>46UA4_YtDagDzYEDMNHS zb&;+yZ%Ku_`fNuAq}(&(X6d@6dft>@eS+`2Mh>&1_JJrsS9{!SjbJl0dbY={w=){$ z1UKaI`~x?scA*vCz2`=@mOb|yj%$@k@V(>XqjiF?cVxqT1!W*IpQ;$&80Q1Oe<>Qs zX_stSKt@&xCYE#ucz4Y53i`*lmW}IJIuDDXz%I&zaK>u!j6y-#R)3+3Z7XEzvwixha^Hd)B`aLLHXY=hf^acBrBgA?51%btaBtb9SMHxeV)RKVa z|;U+1>2ap8E0vQTB1uX+f6av zm+7^()s$O+uj3g5s{abgsHAY`9c?_li3x3vFy0xqv3~HyGrRJNB^g!meB|-GIeZoy zl`e73Mg7Xj0<-o(6Sxpmh^7{PI@7&t)`uM76QuN`jkxM^8~pIQ*VM(b#G`}cMW0&) zHGJDGb*L9N_A0jk1NGZ5;FSXW?V45p&$HLJ(S#NPp z225($pu079(Shp9=jzCszMMt(+o&o5>l=BiCLZKvI?o+OC=!gbLV{%?`7=zK z6M3mzX;EU>g2jDk-XOC%Ap)I-c>m%=dc2sXS*%zl0%AE=Iy_A3GDtN6$jB5Yk_+N@ zU0?_)6-IfoB^X%;#Y+UnGC`5z?jntcr;L~Sq2?A^!z4g&Niu3&BHs}!yh$Ys*C5XlC5b8Sy=ZSBfh8K?*z>Qt>3R#hsnghFl{B;uylrr!c zyOAZPZPzDqGfy2(qgugm!}~Tw&L?}MypzMjg3zo+_x&lehO3PJjEQd!8H~j+nPc9`}qqBxhpd*|7{1F-Z{=FRDoA9*3{{ zyTF}|AegjHp&wN`KX)n3rlLHzGRUFL-N>JW;0PWh*A-l_bh3`!7DT(5a$fdCGBQ)p zzkTgx$1%UrL=I_#nxtnWZM{KVtsq#u)Q zn1t^SYb4j(18SGiYrJ4ykX5?yl^Jka*OG8cB;51Ui=qKuM&^Y1p5J59KWHLm2kBPQ zZ7kb$<3Yc>oGi469h(rb#js2#L%74Gr=^XBsNUZDf$Ra(oLr6$zYW3PXJOPVZiBt) zo1_Oqs8siEb5zxxvW!>RCjr5X+ShhSjbRV0X&$6yJYu(q-C)s$zgx73+uGY`8ts<< zdsMj`0;Tde6*+$L{WHaTelfeDtkah_Jde`%zM@1#9NAvt=UP);X;WGBh+mUpUR54S zTl5%9t=W}{+Y=j+sj%dNb8UanWQeJ7aj)_WkvMA=k*z>)^BpEd5W z^7X1yY2M;ZH}mm(JCs@HF-Fu4U-y!&{xaSYSS?6u`F+*>FVH<-&kRbU4E3*-pfG?Q9DuEJ3xyFgAKJm_=OJ99Z#6(t2GCsnyaZh;M$r@hQ zd@wtXqwATcYPg|Q&yeDX0upYkerIER&kEmrn(dGgpg{mh7skm5&>^tuoRT+xxc)oh z>ZL^7RTg?DOOzmCzSCE6z9_+q|2#JT$FYQC8gN-b*JJvcb*a+bc5CRh-X7)p49@RH zg|kAsg`zKOwA6|C={g+jTe+j#wpxA#S z7yLb0kKf0HhoQqtnHty4NxdgT^AY&OItF0wF*CKr%Ceq?`;*6%>F{206)2tL7^jq( zb)mxjbYyQp$0-@VkawJY`s20<5uaB8{8Ud`wE_sGvx0s=MEEZSGq+)LPIy3$&rs+ki zvZu6K@HcUZ#S-ej-y{AVU6h6YX&2?cN&Le-;{O0X{)@WA{~O>VnM{{TMb{r?X5i2L*8Vyz9q=q*FATDyKza7+Bt z`rwzqT3zDH?-!*Ga@kj`dwPbl^D+UcCo@>*M`$zq!7nB4mzn8WI{9+#V3&0^aboT4 zN+c$-^ybIT9W&;7-=j7YcO7D+dlM5oUDj@v$GkrS(t<9nrOfS8HG~v4*qLSWFH4F} zuq5Bk{81jE4?4>U=qGkw{dY2x}#Q9z;-s3CR={3M#N&Oj7>)OX)7aUX~9kKMrVS=QT+4@xlHbs zDi7ne$MIIc8R_A}Vq1ns&0YIZsdD63*;A8pxkXjkprJtL){U_C=ecYr!UoxqcA(QO z7spb}R@Kf`;^M+UDb2(n(#q<`pK=#Gx_a+BL!s7QYHXqf->N#VVmfrseob>vpY%;8b}Xa;X>icj;B=Hg5eSUXuS2IZxd%3Cw) z)@8q{mAAGVV0SVXsL3kLa`orQakutp1{sqz2hZ$I#6f9wu50S%xy${Z%PZr}y?dX# zuhXk{C!MYHwW_CKE&}ImvA4TrcTes&&R;FAFaBs5SX8397Y=TpxiGwbB>KHqJxKEt z0awxpLMMz8+j4vf76_K|>k@A5(`H8x5cnbf7yd zbuR;44@K&f11xWol%i8TM_QX*%s=C7?t6F|^;aa`lNB3mr%xB%+G5Fc%>&HSX_vpd zvj!MD!vwy^A6mB(ck+rOG9E~`KK&y%e^i)9yS%*64GOTd`+3mc?AKB>$r~kWSmQsJ z-<&iz9wo4rBRCWvxU30_i5u!+7E%&x12U5wCq?3?QNf5hPleTJXEV;`h2S% zME^B&OCY{3J*`99xgci^2Q1#cHvK*)^X?d+Bz8?#;FUpS;2bbq|0yTy&J`9((=Z}# z-*D~y7_v9g_LF0M(o@bTu)Ndt-J+C?y68B{VQm8pYR@1APZ9gZE$(jTu*qP+yw*J) zLsmyrN*k2n zr$4NCjoMo;DL4Q|k7|lqh{u;w$w--mH6Mu1MkJ|rfEHOoA}8Af1=9}nMibQl6C+Dv zzFfyZ=;_=hyGnzyjgL3o8T01c+sX|7^4}zoG^U%jk9C;5*`l3UUR6CbWz`OFL8TVI zOEkyUgiC8CMjK~~x|pZ0%I~shn!dU!%Vn}yYHZ|szxjgb3v%dlUz_41XZidnf=JR> z%UAlQ?#tJoV;X6zcJ$j0_l7&_gT?YTM0e^er=4hsMh0GN@VoIZdwZXM-UUAatH@Bh zsxVDT?c)X>G-&e^O_?siwOAa7yxR2XlJ7$R_mmP4xgLP3yvtMZ*3PVls8&^r;3G37 zkWa?}I4)$&;m(-lG(msF3A!W-Qv>h}rf3|3nTl{qi-I&^=!o?1Av4&pPNEO90(cmk zH~2(BQMy+Dkseh1nR3}{N3hK6)h@eIcR=qghZJBvC>0=$F1N{d$3%qqLR7f_6rs%G zxVeGjK@RvDKi4{Q``I5xCs3RM;2U?L)I!G$LWeC{O}+!()aV<#=&qr<0emTio*}OE zhc(Qw%`T7KKNpj4rYUHM5e&064r~Oly5dm_YYIT?F#EM%;+Rf*suqiexn?@=>PB?vlTfEcB-Z0C?lxrtd*%UWWSvw5RPjDx7Suf3 zV<=en5zLh{a+7&TWJpd$OCSz-lkoFRtkkGQ?m5{43onOl2{NxFb zd!(RA_{p-72ceo4?*@Q2+O^~(eh~L#2`!&z5yY?PjFz=iX-Zw< zToGr*T^283EesfOXd5!Rw*-K|5+Z@pSitmpNrj!__TxDFx{ps_9kng*fK<#P#?m0y zjf~B9sJILfsDS)*dZoI4Dvwo!n0YD=n_FTkCB)TWGggz>@&pEAelo$lZoqOXA;S8T z!@aEEhYgH>q$QZExViTPXVXMwlirmNKgjPlj!kbk2+v?FTwTW=tu(u?Uh$S360Y|d z7r?Bl*kU0V()gUEPY^R`t5D)tjmh!ry5AgA6#$|@V8?q*2GQ;S6~_V!md4sL=|Y9% zV7Ni7us7&MMH{r_aTbr4RlCpw_nN6{m`ocYm`X9fITTVTzc!aMf{;?#+7h6^npm)% zE__BnY9;Ba0A7ozzIT0)BN4cy^NWXMD3P=8>QGUgoang}z2rO$+O13kksmdr?OHWG z+tt+eSo}a}g7;eq)|sm%s?AYPA)pU~B~frl|7?9%mjQTBfZX|cuL@&juMD8L3M zi0{&1!gQ+RK7v2K0%MGSn2t+|w@6Tut`8i-_=ZaoxiArFhzZG%2l>H7`O(>rdlX^y zPsDx{67-|f>#2A}*)jr*72#63Z+!LmSzuqR(&1W6eQY8h>x9!np)hjRH>@z=$L29M ziC@A)mSorX$zPcrS-=1XTMR_#r$&zxtdkNj^1Ug~Nx+jB z3Zmp`VrBtGg3~5In&P|47gTIDOuHSl1VomHGBop6u>jG1FgM%in$Cy`%t`Kw30xz@ z_HeQs{0MEB08-{n3{fVuT)<48x@c7UVSFHjNGC#cL@iS>H_@0Xe9KV~l#TC=w5x>^O9B_t+uf@9mns+iJD29XvFSYhA~Bk!l3z=m}ow9<8W z_2V%R)Td#@VE8yKIluGz9WHZD(L*GHEeXUcCXK>q03?+HZA}odP68f*MAbc0DWg_W zw0!}4O;L~l_=5-D>bu^{z#_Uf>4^eB7LpXG?EP$=jA6o%*or~GAU?QA9}Q;&%(VL) z5bGC`WEjd^iVvPYYz-rNhERZsRE9}8VKb|YTr~GhW_`dZ6$UuO81CjP!X7%zxT+`f zcyAof+_O1mvTGDEjFov_k(78Fs9y@OdgzjR*vxM=Eo%i)NeV->1y}&9x4tw5Gfm%_ zC;2CraRJ$+Fm}A3QGg5<@G00am7dj8o5_?xnbY782COPDQpXpzO;oT>!EiUir2l!b zQ>CmtXbzM|$F!^P1s}{9NL-*re2$2S%e(*euEsa2?qWnb#MNG#$g;8f+8gG|&HON0 zeqQ4RpTi%Ta$5*Y?PX9)2(VJ80EElr5`BS8i&lw8d7Ivt^oTNf~ z_WS72!JVX5$=7)P7Z_yJuw^fTsFt6rZJcxc%FINVfnNsQ@Rv0J;RWomV@|}!%<1o3 zd6`WC%sk@$uy{qzZ4U-WuF6afa}^t6j8kzo&<7b-OoM0&M_SdiH9U*f6a-lTSGL!59uuJyBU$$I8XD
hr6ZZa1+*pYW59k>gKM3>0iMattP?kVova#oe25MqY@=~61t#h| zGuquHp3?U<@sf7#elt6CDm>%dEY>Iiw1az$CcX}NyGs9%4~{D7iH;n zjm})+4_LkdfrHrO7z%>)V4m%VWDkFgZ!BvW8C$V{w-k_vc1wc0F0}Po6v`5YCB~L(CdzBb#jEZa)bM#sn6F=2)w!AZ}ecJ&+K3 zaHE0|IkEG8K3TJAxLx$&czkerp;@;ljL4=}0@hx}47-z?zMd9DDDwvq5?v3S026A7JfD3zMcM;~bCz+ZC00ha{aDIyAX{ z+Tnt&JPHbPwUq6pdrQ*1;vbqssgy-b5I6R|So7A0h?%-S?!hDG9r3%P)O~KSM*!YcEa_R>vn`yQh^LZ6ANXqdPkbYgkqxCJ>_GA+l6U zu9uv5cO{Bc1aZq8CB9^0dSip#HB?Zlk+OtLWkO%_Cxb=-1(PS#zpy%!5<|wsag`rN zzL&O%N%}K7F=L7LXvPpW$$l+>zmjm$d)|c49fuCbcZA#{qi$F~bPaLZaMHt9JwaqW z#wnR)E;{HiK3;vSG?}IJY1WP4O3OeJfbrr8(rSj~Gx0L#ei1rMQ*IL-yzAM%?V|V= z-R}l3kB0oMsSNemu4~1L_}VQa8(77gV^f-hl=|2Jlq=UVM&F1J{tggj#Zx9)Hq%B+ z7L8rBCdLdj64V+5{3Kw0L%|?Y&4$37lMs<%i2`7e=b=|ak%R;>uKc%uz+?;)6^bHd!FWV2G_f~Tdl7{d#S-8u&$VoHN9rk4`HdG$Qi|T~wX{g|4 z5Mwu*kge&4e-9WKQ3fn)5#ltS0sep@q5;NTD|c3Z!fvc!hZbx~!j>U%L>&0ePfDMF z1DYr+SooRi%uhKIA1{wB@qA=2!)bY}T|txAJ22Hg0uj^*Uh_}bnyP8q-fS5O`KeNP z7%t01SJ%R$5u*G?p3QH;yo{&t7X{!WDQm3+`z8_t0r;t90;34SR1of*1+u`dBgLB$ z%LADC8s>oIs!L_bg_J15ScEu%hR#Gd6@U3@sLn#)RjvqRGM3U^#t^wsMNC8A{_W%z^W2!ubJ3$i_vuDXpE;;^CIJ^uo&L9E+)?rDav>R_(d|tmp z8t>ShAET_xbQ{zPg5P$nJgYK@qLWINTH?D{4 zj4g7ewNJnb6rk7iLp9Y5g-<%}UG4G^w8pdQDD*`HPk; z7#C14_s8}r>eIMGIjoUWCp77F7y&qAfEX%oeh;2(!B{bW%td5hqx>;ug3Far%zL&p z@7CZ=b#Y#>Q%`%&M?3&E0ywyu%*(J;WlX77jFxpl&w$ZRidi(4%?nk)|rF|ZA_TSVs zZyPjhENWycY@aC!^3-^Qngy@s(J z*WBPw8a+F%v{e(_Mkxx(`3F~530;WN0Gi|B+F}|S3(mKABeiHI_Q9l`PSd@c){;JL zc<`D_a`>Zy{&#`odq7(N&SF>aY{p&GAJ~^S5APq$xXN{UL@Qoa$N&DQ>ef^_Smr zL)-o;q-1~YLwC8pZrrx4t^Ao|yQ)P`F&vS4Dh^KGOFw_>`^t?qpR^zv-@lE~|Ftvh zX~h0%*aJUowIWEy#`=#rrYv7RSpikO3rt%z+v1m2NX_$GgZIHfuyf_hmd{^_EI;ui zdDx|&h-9qku~aQSfdn00#1)K2*Cj5VrZjH-Qf~20-1IOwO$pr8lHo#V1^5d+nFsix zU8MphhRZo<-KB_*3Im?QxaBY3ga=f{XKBYAUaZh|ncV35R25!>x?Ep<72&<$Trel6hbU^{OxCe@PAq;iyw~Me_1N8dLJ=z{HMt>z#6c)%Z{W> zt;KtYllp&KHuvt)YM}l)f8TWd@948H{7?Jr|4rf_HeCzY-_kO>A4V@(sa~2%?@wAH-#}PuXAe>jT%C2O;#0(bCm%UKrrD!>pu8u^YxMim zGgHXidrSOL$>N*(!OL9APMLZ`32g`UL)kquRKUS>Wj&?D=nVoicfVrwc23>o)~74( zG5uap6r$>|*JJy+xPW&27HV}A4efl{Sxq)VE1uJ`XPy^XiU z=+$Q8S2eSv@n@NH0oylCsh2Y-lhOQ-HXV0o_bK~j`GOJ_15U^PWY4~XXeGT1c3G(O07Y)Sp^6A#d`^wRcgg-m3KR=PJav4O} zZ1dbC@wmfqSI9xD*;fSLTcDZ8QX^>2Y4^Wder)*d?zm1hi|-F~FmB9w4sx`;3cSc& zs=-5CJ?qh<4wh~r(g_7;?rCKdO6WWy|~_iDbk#j%|T%Wah* zp7z3azC~qqK$=E;fBcfcO&RLY^0>v0LZ~uFmTXm~22pO8<24vhQZeneV84+iRg<~} zbVAQ55mopZ#kB=Yv-060F1d-wcNLkPXh#C}5SHA=-ueq3z4dz|;%gHVip{5xPxLIg zKZN*^(a&Z#iEW}CF#Gkaqh{Z{IJnhe2XX6Zh3|+^SQURw5OYi{hM|oavWg1Uw1U&v zmVWd<%Gh}0GV{SkIIjg7!dt!ce1SeFfolZcBPY}nM~hC}(OhTZR<&hK)oJxGgj- zjb?P4a$M|vS);tquq=JFnkRGt*W82V{AW&dCEIVT09?Tv$H=8t9F=M6M#RYiMuNK6 zVx1JnhC~SoNuLA!SEQaMzbYS`%=G!%Yk7 z$A+|Yss3f?&O!-p%P|ZDuFT|jSof6$IQTg+Zlbbz+stR(6fKq2t}-i_N>6#K zb66^LD0)I=nBZpQrb+un&nE$Q?w4?itBy~+Y%EzRB}hb-da{XlFpMV1L=Vb4b&Zx2 zIiDu-*|uCW#+6UM2ZYO}Z@PkGI0RpJB|X4qp&5$z_H(%r7&2@5eTPk`fD{asvOOPl z&%X1BOR0YnY=B+!;Yh=^w+ipZXgO)p4XXrAO_)@|*aW2d66vbhSH9uqW=vAckHEM8 z<{8)EHuiM|=PObePBzWq(Da(_JOme%rCH@>)rT)^T8}8#oF96b{?6eAU14lW3;&2O zz=mZ6r^edUKhCNT=3omiQh2G^axPRuVVa|~zdE19JLb#x6hDAKr6IcRJk_orQ|o$A zl&+Yci1K^nXGLF8XZxFr&<4RhtmW&({zjo~e%IfRYy4@j3>)9~ezYM=M{Xc$WrdyLosl>4Ew{yxuRqt^eqt@J z@E-Bjyk6cV(5iTo^I3zxE6_9tk!PxJ<95U18n5RuZ>byjI73EyWSP^0n9*AUB%IX% zvYS=QA@ir1evQDkj8->ib6PEGrs|4KvHt{OG>qh#ubS3KEHiZ+W*9N;8y}UZnHy-u zBQSK}aBE!J4xCR~+I?bUMfqyQvX(jLO#+7_B?sa7&r=cU#1#AF(lZWM;-190ryf%5 zSS-e0*+>c-k_v zi!ox6a?b|x>FO02VH%Vrbn_|lRcLdMq)56NRoqxPQ(}P8sF{?^W5587XtY( zS3Ix6y0&YM{%Cl5cDhoFh})AP=z{Ah(Y13QC1pN1l)7#W4YoWnFuM_|4b^Ll2)AD< z>o+VBHf;+HZ*InTgb~%VceJ%h{^h%@5a^v`=gh*uxDbvRj>oDA18vOfoD0&Cr=U5w zYiE;s4oQw=_tv{r%jJIF&V_~EG!IjxX_c#3kcMjlPg<>-x7^ZcOXtP9>rt#^v1c)U&a&qi z%KY${A)+x{L6Opp`J_9%D?fNkX~Q+fV|Ab<(4~K#o>|3I@sH1er=FqN%JZ#pwCSxj zJAebJX=cCi>`vXWX3pBwrBZGd>doiK=3gM^PfJTUS<2XHOOvP8vhym8&n4Q^N-37k zKU|trmKfedycpE`;`$V4R}A9v6)l*TEQR7TdTK%Sx@8OK75>&%p5bxbc=_AD!q@xF zdP8XM?TzjR;=W6(U0S=FRkSLVoCGrl@Oimamhl${N$!>oRBN4@nLZoQ9xNT;gVsOH zz$J&%t{IX&6YuF|#8+Pt28zXu#yiwL^>*n`qjbyg+icJ+8Kp>Aom)R~+*EH_>1g>W zyH!t1DUff|Yl_(NUacvrsd+6k8u=`K;(7Ib@w-I);A?1k+bqik{`-4xfltJ!%sKPz zf>EVegUXi(sQy>UdwN~J;Gm`F(^m%oV~2d4li=<~8&cZfb&xFMoO#PlT$g)Jeq#Sb z!7cFan_G}f1y4r)kzv+xfd1W$YT>DWZPaNf(v9q(gJG@y@GJ13!&fs{Ac%Y6nM&7c zLdub>lV8)*zpK59{5t~kMgD1E{@*12VeM5&E%pHz8j zWG2)uvph2Ai6G`yT^34QQmHpBK4n!@#>p^9LP!o7#a%95rX+hoZM?KbplaQqXRJr( z(S@8ZSj9E*MJII>{-1ZohZDbwR#B@5!|Oe;y+YZJmu`&Mkf3bO8~2-z*Nhr7N*-!A zWi5;CM1P9(2_wAar_@-m`ki`x*Y?Nf6A^7pJ4)*xT3%CWv0ezcK5y~+)Xe;A^>q@p zt^}tuDGr9b{90?|Ha&2Mzs}v{i1Lw1&X)0 zQ@l6?4_3Ss2%$)eTX2U2x1uc)thjq{iaRY7cL?sKxLa|!`Jea0dB-!(xc50@oDb*Q z&R%=Y%srRvxqfTPU#3y1-&zZ=o+sgNY_Jh`Nk#r?<;}MDvjY$Umod?zvD90wh5kre zcxSFDL#3J6!JDaA!sTfM}MBUK1H4!gM7h`U4s)dfW%0*kHF z8m{*?;=cT3iG#(VOF5`v51h4J$9h=O#|(e@AcLvqv`9H{1_*y*15jwRCvlkse}te5 zwR1Bt5A~89wla&inspU_GU8v1$HRp1uu*%w)}o__m*=}PZvft$&wooTY*L^YZe?U5Num*jHIM}<8_2(Gt*9aCJw*Kh9 z#P8A^7_|hfO>tTQ?EeBzeK=gT_RMf2(FKFmKuQA63bYXht8XL{59~Yeq}v@kh8@gn zil!msQR`IiAi_+wE}D%)m!~HN0Bj{l6)pjz!d4XC(Et|neyv6rxBh83)A@M9Q*IpN z#wE++^13dSPs4ioGmkCr&+%8XNungFc;R2l2QV!w;|IKYA$$xX>mKj705z_^w)5la zOYDjnm55Mh2W3i?^jYP&j5+-h*%j|CpYk8LNDRB@ z+x~Nf9WS5kFs_7ySDj;`2gvVtPV5CCEL0!?r@MlA9v&VkLT1jpaJSdAWGZo~p>c16 zSXIiF5B-JTN+uUrjtkCnrMn~mK@r2~+^TdMYR}b+)(lIxLmGVWOqbjrtGU&C^O+8)4LzNnO7H>7!+vYyWEuxrgMQ7=n);a|p-xmo&eiZT+`1$ssv z*_kujV62IX-kSS&oQSL%sBgLN=Vl8N4Kp)+pi1W%$wr{q*k_Tb@zcG9uNFUjG8J&f zO@2%L&R}IwA;V1)i9fYubPI=Ie!}RoPwh1`qE0QR!K>Sj?>GDR-m=-AAA@1vrXJ;k z_pa5w?S6csprwyXKZ_3@a4_%(ZD61wgBMEoE+lIB;~&TM=WlCbw{)GDH4PPPUC5@e zYd?)V|0MJDJe|v`ofM`9aiNa)626p49Eg2Uu{Jk-au%H1eor&&W)dD67tlXo$z=>; ztvw@QU^=fG;f_k~Z+TT9?cr0S5iLQ`|1t7B1$3RvB|9G1*PL!M3a8YOW2X_vqt5dl&cLl1l;Z*&NcI}RSvy@62ZC<(=(?M~o#FuQU9+fug zfUmE&TO;Tkcyg8P4sqEZODiV^MC1&t9h3G`@W$y%czYyhXq9h|hZr}%(F!_TJ^o`H zuvz{CVdJTK7oJU7I@Z4fely-Sox&NseVo)Do-cT=q$l^=bzK#=+z>2*l1eOyb)RKX zJw7{DMx$4=X8o&u>@tMA&I-W(HMgzh#P5Fp7;oANqSNm$#=If-OEPA&bSjD4hfvAp zH6mv~hjHKN4XzKM+otL1VBkI&BH%Oy!8JdrwOuUf*G-Qa#!mHhfcH0T%K+Ml1Ss!M zze%4(1e9vDeZ3S1h<&E{;!X6XHX|+Jo`^E!TgGJ53U8YV)hbb{5kT0WKI4FqLiQi7 zm4g5vJ3+asXSbKV?NwU5{d>Y$Fj41eA1Gn|9mGwz&TLB3}*>hJ1or<8l8syfor;OU&AssP{RzkUo( zG^ZYS`-$?ija|p)cav{=-t{Oe+|_PH7_9x?`e(`I+|S%NAMZDgU5P*sc%EE2CEJ2HtAJ<*h0Ht&M36n3@oi0_CE+^e6dA;J z^5hain~em|Cng=3)P*&JoL84kQ~+~Zr$342Ln|3bTz-D7V2!k!z;xtOviHAceyMdR z>+n;VYwkSI{%1U&ZX|k+uF@;OLesce)A}ggfR2z2Vw)w_o)jTpl+7A%giSR=Z=*Yg z$>EO$aUrypmz@1LV*!*JrkHRxEO>ho*gyLMN!ZjeZOSW$HLpoHzxEKfSybMS*;H#M zq}xZ#%Mrw=kH93rYM`8-ESRZhs-5kJ=%IbM7tgB&pHnIz?B~qYKUWCHsX;NvpM^xE z_ggC=KB+*T;csAdenjsZC0w*m2%D2Uk}@H6tI_Qj4T_ymJW_!GinnWx9V@$Er~1VW zpG%-C6vj;lQgFx0kfmJ8`v7!fqQeHf*?AIl7vheGV+nY^^Tq3yTr_Fz@YWSiLw@AV zK}jiBfaV@OuSw>aOI-ZLQpH(X4VY?ujYa9>gp?o#BFeZOdE)5oj>@dTsZqmpu@!22 zPP<3prKrzJ+yHY>?0RoXHSP%9-aBgeBzmKuUn`Dm;jgEvGCePiUrvxFK*H@~yq8~) z*^9QG9JO}l{pJ^HOl(rx3mgC@2)nGzR!aGN!n^>$BeA^uwGX2{^CntCbE5q~gb%1! zJBNCnx__9Ta@+U4FyDL&8#O(X-OZ6jTdMtVzxQbN>DYKFol|!_z7zne>gWJ#oi;)o*l=9dfrb}PbE zJ74k+_qs8maE9%24rf9oU=$Kx8*$RyZy&oqrrEz0KCooPl3tnc>wb)V{`L)}RQk#D zdC$;;=gEhy{gaMPsxz3ofqbMEXgDm@|(BWkz_vYmC_E0=4jagbs^{r%xog(Y@ z6Si)j2xJ4!H6E|1ENltkJc#a`1u`VO{OEZFsS(9(WOHLfSt#c|HEpr9D~1OHx5PC^ zvBL-b%-cuN1HE!J3`~)3!|F_SUZgu9K+0Z9wvrAAGR5&0msS;G4pe8hd(PdwszRnk zc-s@(qr1BucM~{7d>m%q^rhU7BNhL;GC_R6EOj&Dk+T0by+5rup7L|9Z=k((=Q}{B zR2*J*U2A%I3}j=Q*^Z#!UU@4^nM}NPh+MUobZnqEo{QWk&fX*D#=A7mw~8#XNFV z-QDj@$@C|PY@jHJ>lbUyvTE;QT#tph?u8GxF7-g#UB6>0Z)@~0eQf4PGHt9yg0#Q% z%|=Zs9)cZS;R>+v5U<&dwSPMxYDLNrw=B_Ptx{vpaPQD>BxW48+Zj~OJ+PIsF=c5n zw8|&OoQ_)~=zS*v(RcC|nNO5>m@jj3BYz2OXq*>#@eT0UwIi&|WU z+mA!;FKHoD*z*~2HyCkEudpCQxo>@!F6$wWU%C8rAP=aeRSoksjP(?5r8Khwau;LP zr#4Ux_#PD*7w1yewcH{(pN8r5X@F1Zh>)9HA}-auW>XQM+D`&$nrE+J+`hj7>`6Ml z;aoL&XHI^Un4;=#TR^1*>BgQ%40NH*J5y7V=QHaA03P3#aV1sq2R@FX1du2P8M3IH zW4*&H#91}$7&z;T+$@~~D}H%%>gdFjAkJz(A}?$MxS9Wq zxB62g8IseVBnP-9?Ft>@ON5wk{OHUJs`{;XQwZa3peGn;i5ez>M7F%@Y5Zn3TU$732e3ap=TC*Qx->)& zEM(XhWoW)oXsF&60uT;7DfcT5liVt$x*(@4<`}p_{092}_`7orJe%dyz0HheY!%#1 zcD3vp;-C=`hd>sK9OvV7huhwqJ3D2?xs0+06}+%QGuU=~6Zw&Rp~M_u-7KiS{V||V z{a7~ql~1mA+=SB>LI1ON{XF;&$moF_?tW_UaL~xJ*v%u}B!U0|4|%fr&?q|EvvI$Q z9eTS=SJ3PGLXG0Dt>5q@RApv1TD87%J>1siN)4Fr8|6GO1L$=))IedKQ*F-APh=g{ zF!6OJI~{0Z;WZKvz4CJTC0&EOC1>9P6YJa`&MtsAa3;69$CVm*Nl_}Npb7vR2aHT z%T^Hdg4z?!cBTY1*0m~8v91{s+Jq5`Q;yW!dL>qB1j||wgClppGqEJ7Xkdw*QaiEV ztiOLejb{q(e&h~$V5j7sQGOj4WlJ{Z+=jJXQ~Z)&z^^Txy8o?vFmKiN?z76E3D^V# z-P{hKLcx+sLKn21AKSl#N=LL&H1Jo507DlTl@>Kv*)MUN%*YJrvuOL!dwkbNe!!PH zHqgZPpTR1?203})RmHTplVU=j3b3w8jY(%sNDd`I-F8Y-rRuIq!*lB`V^R1jM!4%~ z?8sn;3(&5R7iI>q3$NP%j{H6Vt{;_HgKL_j@M>;A32MGef|QI$>Z;d|39%C=G=oCE+DOUCJu|P~E{=qry5bBxBby}41cc$# z{s4)tdK!x^mt|T1$)AHY(KT>QA3Ga`aukOw8w8*3NWb4(D%A{c=rXU@;yK&*AYb!p z+lb+uW4L{HCNiD7@gr(Jl`X%8xg#s}C72`13#D?IgEdy+!$0k`sVM$TL4enIz##9Y z$kl6DVibX`j3Rgc0Trch_(1)ISsC^t9Tms30KSyV5bY067@?dgnKr~^G`*Es4MU6O zCm{SO7Xebczl6Fx`V3PFgUUCU*Tyk(o(g|5(uE?|Ojb++0VZmP@n?2#7!^T%8CxHm z4J@_8g9VZ|pXe$y2w76+=C|0S++Sv|h4f%KWPhE^!cVtHP^b0Q5hsk7I*1$-?(?zQ@MM!^f&G+28cU zV%*v~c&@;9%STSQ^{t_(*krl-;{2AzX#E4KuGz@al}>O>q7Pyu^wzUE1{n5<2Wh?u zLE;#BQHlDhRQ>>9q|Nj1YZ; z+xb$i3WYkY9txL2IW1Ef^v(Z1l`Xgadjf*BM~ic$04k_P5fxbO?ODHXsnOx6@7||C zy^NUK_sTkV(|M1E%7!Q|p)HyqdG2L(a*jl{yhjBgSS}qW`5s8@b-n9q$qgL$@^f>f zo*_bu2YF!ENrYV3efJ-M>GoW6UA?GE+rfnrueCWy;M03H^xEDgQO00g_*)6(Pgg** z!_h|huHKwRi+cR~S*H3HQf&n)t%9$ zvdFIHtkUFaI)tfGjIG!0bPLAg{yjH>ROtvNBq~?i@|xE27};AvyB*5gGFnBXb5QJo z`_%Z9tyEeq_TDEttn{6sJy?NyZ^Nf)OBAc^roN#9oNo|yKwb^Pa;R!m9k^PUG45F3 zTq~TM08-SyMhZ1yXv}6P;Sh&mV%$%t(oM&O|9VD6|DLd-DKtHoxyjVJZnD;t`-|Yg z)a;4=u73K%#YM{sk<}x0I0GI9zV??lY%8+)vZ1#W{Is4f1pbFAuk#g~-w6cg!agq9 zy`P!TL;YXBD@D@6!0YL+*>0=6-}kwA|8*#QwFn~kJcEmmW80(OoJZw|5G+ls_;N&y zvH7b0ivtn3BIl2H0|MVkfz$yJb0|_8c z&TYkG<4d7Yh1`E{zD5Rg1IN(@Ts=uj)6=;t!x(KT>cOT-*tXr`sXa?C>Ngdd!l=s? zwNvHz=nCB1s2>BXULcb+0=h2k!MJ4O6JfVannLHoSfBTkQ7n6$jnRfQzHWL8srTuz zBk(tWc5WP6;5^(CjEyKZJK{? z^+z+l?EwFtwcG=ldJ>B7%bWl3Ws%)%dT1kV*T=S1;nlYDAj*eV-*`sywlQI&qIz6u z?W>8APhvCfbqdSl99m+w7QtX|0`KPR6H=K6MQ{m9Qw(^+;0?BX zqPf+>jijcY%%*YaWvQSnEL>yuQ#tb2LVFHSk(2!|=`=g?LqiyLyNL=eX?1`N(#ag@ z7-{PjDu#q-3C-omdZg#EHoprY&YdCg*nMn~Nrd-}W!rzG?)-EI-+0}jl=N6;6&7Ky+yNSFk!#pswf@m7i+)> zSisB(AbBXxr&Np>l^s17LtTYMlP>fe*FBeum(#MOG!GZ+c>)TT)Kz_$4^QZ&>Q&u# z?{NG6NqZ@LrK-&2{7J)?L-sM)+$h&yUA_4G%kMImaV8@9`H8nPKP=ONjqPZ2S)1h% z6|0ndv9HlFH^{JfAFYEs)FgRk{ydu{+6&Y+8P;|JUC_ucj2}W?}l{j_RJH*RH8wSdvwB&md5?!HBQ1A|k zK`!%Bc5{L;Cuv+Je~3yE*DfrI0v6f!|~2cHMT^4(O6%26AnD#DM0BO+McaY=!tHd5xI_!hhSoj zS|q^0l2zchRvw9Nq+qqzZqsY1Yjgs)RwtS&a65@AZpynL`OhVo^BZsyt)N`ITH|kx za{u8>L%`S$@ADFG#k7XeW*miV<0C^FdJXg5%A4x2a(P8@?_P zwpZYEUG)!6VDih_5CXRk8sdty{9#-i1Psu+kDXnQh{dgU%N7x~Oj_3?qbWpiMJ=XMqU;DpOZ3~o$gR(Vir(=RqfJLb%^ zdF@MZzzCOxu_$M8Q9`Y69S*14=Y`qzWhQfdLMv_Ym^Bkx*vrqU$#`*5n?t3z34682 zh(H%2CirHE)CKpwfW1ck8mFx$No4$n(w9Cm`$}WO;6;6ENvL~X*z0MEdYZh_J12e) zyZ3Ej%`<_wYi-?HgyR7c@$n00FU+?i$ zaBM}Lm=R2w)O$S$8+~iWC^-5aa|MGfFTyRV#U6YbWU;Iz9NuzLXv2z?oLAIL0WVAy zZ4F!~yd%uw(smC5F3CJRM?2N8kfP+&A_m*cwFLt$HB>@@3J7;{*kIlQ4afEyC54EE zLPSN*8D-gm9PJg@M^T$tf@J(BB4ZFUG3KwK7A$ZlQfOL_uD&yzN`bm2unfVH(9M8! zja(4eQ$?&FnMB|u$M`x?To9Is1R##&agsMV``eR91_H zQEgVssJZ=e$84EK!#>FQ7X zRaV>t7J1~IncLBa*&0fP2P2$s57gx^$0FBl{xKjm@{?|b&-{>&^N9Fv)KQNYN&OVU zwCG4`?}855HE@_XCZ8#V32O@0yAB*~)sR_d(y&{NAy}j#$m^0?ZYND7Yxx2!N2|!3 z5Z9n4&pLYaM8#1iQ%Un9)(SOyuNzi5WsLhB#&&*n4)0YA)SmG^>8lS?%n=n z=Gcc^R{?4*rlB4Li}cGA8ZA1EE1o`g&-t3)_AqTMj zuEgk#PX{QoS;&rz7E7VS%9+U$yJe7<3gYxK+>ZI~QB)&$Chs24$=hY|w*wD+ZOKTp zC2=$ZE-rQ!!7Piy0xAj!SX6{qh`8seuPt4o+$_R0sdNk#SiULJpc$~gZj&9d@Eftk zj__&Jj8fDVJ5c-R1ioX9Nz1%Z2fKV*L`=DXT`Zj5Inc?6R%{pPISQi$%&X)LQ|VXI zNWMb|ytt?cc=AIC<-=RT!~+M>LvG)2NQ{cj2U59u3fnd-IJ|_l1?xG2!zH!gC(k&t z%~yg3=a2Fl*lm>&8<;|)p+PilS(~3~5Hv8d`d86mP7^9y`=Re^6}bO_ho}+0!u}NX zne17C940PxA6K9H!tR9w6O$K}3KPT7clk=S5zCUu z&|`3)7z8z&%#e=+wwW@S&r7Q&c}Sc}!20y#>XC{CB9HkIa?(Cr(AcwCH|NT&~UJJ^UMjc)TpFD=pbTjSGS zoVwoE+EQ;4@&Kw4RE)zpfFe!l{d|O52*-Ty#8J*3%|a*@5t5lan#ze=_Rx1kMs^|Z z51>OA@rNwpQ@$+vQ<}M!ku+U6P9js3MnIJ_bp%>hE#Qq3(k7BhDjOr)Ka_*W7^S!4 zD^MtvYoHn>$~2F~_mj2!ps~vYLwAUBSJuFdZW)&+lK*U{m0cdGamwD|5{ctQE*Ei& z6&jI!ou578r#0|Q+EH0M$4)gL|ME0;?C&$g0NZ1pLA78tPlj$;%S#yF^@P$Kg(La& zl_SAFbHsD&EAXt&&^Kx%!pL4#Bb_HBXH9M2INh0sq7EO&BS1 zTN|xGFuwX5p~1t?f#-eulC*}#Ga#iAfnFa-O(SM}0ZJW88 zKmFzMyL6y!;h*%8A9HUHr%fVGHl2LQ#`0%IS3jr!K)=hEz5MnGP)(wh!kfeTfc2LP zL(8m+7)*ZN`Vv;~K-@X<4D3fbcSyCgt5uiVF+oo;Ew)yChcX~kLiRd!o{OO8-+nzM z9(ep395cVI!JRYeNuAme%4DGOj#XbvX|+Wl(L4&rLrhcaX_^=lo%RCUDqz@_K{IQvbb*fkHqs4M{S-qloVIMHkx@#rIz(amwuBS@8a<$)`QvA!0V zOH!8~_1d=Q%UXgJTK#B#S6P0+`!650L-&rc`w*Z2jMrg*Xsj05P^LD@(98W3w$`0S z08e>K&ULLucE&A;mPohvWt3>O^@|>^t;g4@DOdJ;vec)b6W}(Jm6kwJLJdXOe zUH6)~x6Cahq%jNi_tZ)aAcArRR9}zf5ws~k6>B6IP{4%SxXrcZBDjzCUVR7}M6XTT zcq&e}-WSA~w%5R4EJR=wC(3MUH+r+}ALqk|FJl7r&MhPIv{yBfb3PEf8svpWbiX#q zz$I(R9ewDOz0`NHDP-bn1m_MC!a=f;+INY$6P1b%p2_dQ8n#P#CDspMDx$4yocht+ zf4$D0wA$FM$|Md5CuF#JKFyn-ysuFo(EPK1I>N4 zZH6cuII+#_Pz}9|N%DxW2_DpJzt|M=|N8D>^YgMyh3GA-OodH$l!i(@aX)?HhSM!6 z5}=rP+!S&-%wiNHezf3hO6!2AlA@u`pQ%2-@Z`7hQVBBUnWzh zNz|^D?}lW14Lt)NC2iDyHtj;a2=F>}fvIDPu#@*SZ-#}sWa}Y*<_)sqeK+y2PTa34(ru_%?q)Yz;&)wggUHk{1Goq?*0%sco%-0Cnd874=5M#WX zaYJ3igDUwtO%=}C~Y-e6}{j$T53!_4ZKn&*Q$!XRW^T` zReUITJ&l_`lkI*MV2V7OYC)1KMnC5E#&GjS-Fp2OIC0?#{gI|b=6{VC|KFI2Pw;;` z6W{-!`0pde08xSei5UMMiDg3hmkRt>#CW8p0EHNvye{qHv2VxmiYhNBS5atcJDH4$ zRl?@sZ5w6^VdrfVWanMd{PlL{e)oM~TE`XKiZyyL^=NTqVhro0vYJO!^Q7sXlsksh zE_C<%WTEDVWDvU{$`AX0>xX*Yc@O#`!Rc-sNW3$T$G@o+n>@frfuFE|cWgF?ZaV$c zrbf51t&Jm*9`~5_uDipM%>=l)e|vFkDOxTg-n0Fq687hG9lDhB=-CePE6r2Rwc9J| zruyAj2iiz*kV*laZSBJ*ZL>K9zjG=r6=CYoMrjmZwl8c2?`ru^YJ1g#^bWga`z|op zHXUI|+{}wk!^vcSzRZPvc%Dx^$YYD>m95rPn6~G|WScnf;KT)Lq=C2TtjN|csKx2Y zwX?&aK$~8-8@wxM^lAGN*f2MsocnOw`7JBP4!^K*!KhYC>7Os~urQ%;{7)EY*9REA zx0S74>|>XS)pw@^j2%&$!0ySIF3}bV*h{-yL;QV@Rde%pmJ6B6Zo*|$o2Ab7eHi!; z4zKh>vPUJZeq^KN>@?a&ex`&~bB&|!T)}Y8%NvpWPBS;=K%p_$M%7}zF@WurLS`4u zgBmP;_iP^q8kwkv<5utvPoSRO7k4U6C_ipPF}VdOEI20Oi5dRe<=^d-Kj%8t2f#FtGf)!_2PK1 zU?gc#kn6?CK|#8wfNpZ>LlL78H?qXc^IUYy#T<{|)WG|I;xQ{JCwSVGceg1TB)R)R z2@g`tAafHQ|9ct3P%gRi z1EYekPQo@{2n$cRqsmLBO5a#_$bd8INoK@R*ZI(#X%R!$()#l_Hgx}K=II@lj`mv} z-psw}s*_apR}{M8e17kDa+BC+hb<{S1j72r2QLT2k*A-fMW(;1%>Q(^(`jU#ULU62 zsOdut`keyUO!<};n?1mf(V{5uup?QmfUnmz60lH0Ul9x~e4E z7B!+^T~d)e@Dh!&oiJ4qnc&o83-n9af!dOX>`gyXBOd$2baXz6pirAmh4VHiIi!&e_?t8ZX4)z_S0_4V(>%j#Y4A9a_*fhzT zd_JK#G7T7HmwUk1Z809#*f-Jn2G18&5}SUcU!R{PF}Mjh?Qp3}&Y^xsyAq(w*EngL z$-W2G3pZB*f_6`o6tvtWZ14nLWLC+kaUcFcFeM$$R)E?k;vNSzLG@2op8tY(?$fWL z$uq;C9NsL1qtFF|zIYIuRc}RkcOqWZnbwM_%E`z#6-cI&Y&(sWgIKU0^m9;6F6oJC z`0kHffzCjs;V$pEOz{DEHo~Nq8qhPEd^i&=C&n-vl(oEpi{Xza0NFFZA~_vbPAeh{ zeB;}rBFu3056l+DVQTOm|2{P+AJjfwGMl%%145})^t~e-x>Rms83Cw(;DuBGpGyYP@Nqa?3uorZnX>#j%Rc%zX-$ zjP&r+@=S}ybp4V+lL0CL1vY#G;U-e^g}{Sfd-LOkZLW<+$_nTqf8c)d(biKXl1TOB zjhX@m@3dWcl7z~bMse?r8xrL(DY5Q`d>9Ntc1u8~zjOm=vUAWMroTQR5dx;=lRwsS zU_r@WJ}C{C6n*I$#^}x-kNUP+CsOXd<5)Hi`K4W{=>)}`Ox3bi#=0%0EHx}_rwTiJ zMj~A5luIXq8A`XN=mG1>Wcu10V3SElXkJJxyt5m(+DrIKFT-&HWPPfN*}}e;(n(2M zzE1^P>oAyDM{j`(g_K?VAc%U<2oE33t4*0BUw05C=AIJvi)U#$D$Rckfc73Pr$O$Jyb5Xg|+=@{gYH^uEa>ske^b`aDmnu{Nmf4}agEF*SxgH40!A3nt&?Alxr zA6=Wlpyo;qHmG7dX(q;^qMSuUd$IYC1&7Mue90AWW|olMI7AQS#`|YUustml8m|`~ zqZ}zP@#UJflJ*B^Zt#yi9@M+sUBoE}W~fO^470SSrr{?lyIqVPrGNobHFas2)q49Q zeNEOGH6x=bPLz>xE;5yFkv(8^OO#VBd+hFsf3RhpFSatYW)0OdhOU{^4QfC%+fL3s z=w}BpzIuW&p6ee)--NKCc}zZI>wgkw7_2M0?{GQ3EwdfGRsU76QAi2Jp5H^}O%(xa zzsQ75rdB)5<+|D{TYa5Q`t@c%sukF_f<_HpqGGyqBl7*Qtuwj%k=CCTXj8r8IjOs9 zEPjFzFk3v4*q%!Ox)cs6elm(bD)0co{=Q@1k4l9{(Lv~%Cf5JSE?>cF)+$Evw&jcD zXr=mArcdX>2NVkgQs!3WGw0v8DjkrR*`*-_*fU#l1SX8XjTXQS=wa8C+wmAfhX_3@ z9U!_Et-9Q|_Ts4^5G}904{)GKX`y{$x1@6f8Wug;wD=Q_RrSFte(nR$o|2I&sglB$mCJ6Z}>~r&|RF1ht(|I5~^1)07 ztJXUe1epYOi_vx#Z?t(C^!1EMN;71d8e0L&HX4Bb{4x9ecp?+)1dMx88ru!iltu*` zj(0#%39_hPE{Ma z;fnbAHXne8oX|Z#+APe~3Ca~v@sk0RLw*0$1J(Q3EIV@S1;av|46bA2et3v zX;@iiK0fL9c^SBOl$~!Z?nY%t6C4e-0;fx-j(6~4_V2F*CT&cOlVJAaH!M5DC8Jfm z6E`gB`2mAKArgPt?OEE)Y}uKZy|$ql4=D@UHvZ#ExGrp1ar^GVyU%>FX7r?Kv~GGn z)2h84&3C+EveNMM#Ne&Ob0dj;86rU{;a z5v-Z?T|B+w>RVV2u@w1ma3k>KbX&)20wWu_>zZk_J14JH`9*4UB0L_Hy^G8fSed5u zfC2sYU1(c(g4Fjf^oqsuH$b~fh7Z7I*HW0Ce_6rQ;r=z$;p98WJ^5F0&Xl)X0aIjY zI8Y>5B*p;>OxfbhJPiTW7I*V56zDqT2ykTXVE~2pwXUEo2F0YAd#`C%BB0Q3sRYLN ziK7VPL0HqKekS|+2o$KUPqS0-D-Rt5i}rICs>8H?ohJ0R;* zpi9@xEf(OsU+`zf0AX5bC3WZlJ1x!!D1ytgoDfE~kheTFfO^l7N&*^8A|JhQA7UG~ zwkn3H^)LB`^5HffuwJ=LYKxXKVp)?&^h`ldb*rW6RIOitHSYZsNm`w6SI2<_gwfwY zlNzg2aW!i{#3o(XplLy%_AhnZ2#jb`g$F@?sub1!|T6wt5e3qSIh&jyl|Jk`EV7ZaCiaoZ0fjk8vNVfb z`q+Hx<0)OE(3!Cz_Tl)~3p6#O?mNh3R_f*s2bx-~*1-iyYit3TugrJ$Nr&L0X4m`d zrUywobxb&rUz5ZC;2dwD+y5LUur}ee0qlGD%zdv5*&S`}^JufJ~Sf{jn zx30298@2flD%;tmWSO};j-8Alos*9vyf@3Mg4&kYmC?C7kL8H=Aq%j72=X-8Dfb=n=*G@W{_kF}n4AdeMBA2|@LzF*g}rivvcp5g&h zoS|G~;G$i3GLD7EWTW?c2%X*qn>w@>;uE3RNVTr>iuSM1Pi~8w`pxx(8dU_d{G{9k z(B4{_l5qh~3K01?@J6v@7=&s;wnyCd8EY}@uTMv!FL=rx#z&3B#$I5WeK*{e8{Ukev-CSl zouJg z+csO}i#M0EFi{g6KFZzO+fynIl(;Ezo)x7JpnFy}RBNhPYhaSLBc4RU0!-X_r-L8G z)69_>BOOdcz6i+t(s<7^5oheI9IQ~>l8+va)|WLCXY;mU>eh1ru=}7BcEv?Qf1&Wc z+!e{M(HCaSc4liCRE{||XQRGtMHI+gD$fRKOHn)Vq7~`;{1EV3d*<7a@RAWWUe$6Q ze6uCo!9+rPq5}+!#iv$1i8QSFAbS-}^>|YrJsRVy*Zt5~0x#rY$A@b^r^rr*CQ+0* zu3|qCY80S%MqpNiXJZ6z5=go0b?E(mH#P3WacN-TOIY+mK&l%iH^<=k*M3bmh2ke~ zjR({AHsX|k5Pg`U^tJ5F^6_;Y0WnTmGdOWmWIlfF+RlwnD!YkauxB@?>%>W80i$@3S$y*7 zuJ3(;)LTy(S1YKfWcH|UKze(8mRz3^Fci`#Ic+*=IP10pO$IT*9v_7>(u${S=qGnK zZ)$fg2<@q}rNcpPyCjppUU`e`(%nxEB=`X{mGUn8Pj#V1Q;RLdQ~WVI2+IA0ou>1N z8Ujd`Qn7Tq4GOM6;T@YdYIfS=2|K>0KO5wHZ<&F-s{dce$wl){3f7F&DvzHqke=m# zf-K8V&$5SrN&jp7?El7eV1obK>A?O6#eW|^6B7aaAI8sw#036pLa=4EntEYx6n^%x zhnds@t%Oyj|M^E#PF>kB$^t3_I>?;L$;UJvLhm^hJ|02|K|?x09&?h5$KAwN;clbt z$;U_st;*w-p%{OdfbeyIw6ww2cKFc!y>n_dJtfw5I#sI&6|c);fIqk9W9p@khzcBw_RWM%WOO4c2)V{$09u z<%R)`(o=S$`O9C?;VypQ*si4RkwdBy(|WxHR;4_b)ULzu7``#fHH8s}21b>aTMqO| zMO&lGHH#sHe7rT=hmmQsjp>6Xl`x|7Gi{Jc;jVpL58H$VG! zufq&6K3;mhs+#Ycc4>{NDy=wXM!?OCltuINk520&vxdEL=UM(fD{ZS>cg$OtKWvb*$wn=<>i<(I8LgN7uCj{wH{TYoIMta-$B?d^EZeVfMatHoaoTX43r zK8$VG)wYBy-=YZK*BwCym`6u-;by4fBl7YYd99#40s_$dJ$sSHpb zufK8Jx_M0c&;7@w*5O%O+SIC6e+bUSha>5Z{_OI$N)c6bCLdoP1dzzR$KkzWJSKl@f9uUO`dV|R;d*w219L)PnnXnEtP|fucgZ&MaA1GG>|lK z@iuF(+V)|Sb9X3neP+^Ph61{$3*F_v_wD$eobyw;;CeH%JoX<4R1st1F-x zE*SRm*w-52w$WEN1lH>m^)`6NQ_2U5~9i-y$u1reZB@Ek4hO zw6y6!`5F+Arl1!^e7h;2xv@##(avEAY8*kJq-0hlOLei~5M2;RDxJeI}KknP^6Q4>bYV zuzt1yDI@&0>GwTWSa6Ba)J&VkmIH)`J>sU3M)yn8H?gskpAzTnM8ml5Hq$nNSegF* z`__l@xR#@0$Lj#Zu}-9!G8c)O>@ z!5$7v7_oAwWDC!|F&5PqY-HkZG#iEg5L5b$U@jR(7g7aPu;4|xYi+#}Ct0KBF>Dtq z-WhM3-Re}Bj$yP5(C(>kDo?`43Q!Lw^#s43o$$0)*WwwSZr_S^(59WZ7w7TwGpWP~ zYA$@4pUPl*OU%t(-#%tm!Plh`^!(ms^}eyZd5oJ5Aj~_zRJdhm?IC$#`I)(M)_^09{ye@hYh+ z5z9W)hVUE;9xS>l`l(2PTcpdr>RXIz0!gQCDL%@g>Q!(E^=*@7AL>+SY)v8^hpAa# z;`>01?({3aNw&{ z>2QGd>-}c8d)bmPI!UW_m&KGSC8*)>R%FW92`Ud-Gey4FCr!;(x}PILB!rx4Rn&uC zgIkXr!CQ}C3b!YlD}VXCFm~*Gct%`!;PB?keD|5~_e%soUhVgtQoiH)u z?Bz4qg7lfqdDqi7>c?lq8*j?&DmK2VI2cWgp0pX8nGta4*&f+&tklDY{cLkLOxF6> z3NCb4Q@THvi`SNPd2wvvx@QW4=P`|s=70(H>S7tGsJ8sKV#b2Bg9mo0j0;&*D zLr*B%If#h;qgxvO-}8uPv^s5bG=n&rpJ&R7pU8!KJ`yw~rr{cj9d$k@eQ)2(QOAFk zLhZJLr5DwLMrDoPQS>+Glezg(0>x>zncb0-!eQWM{ko24h*Ub&BKfeqnCYm=7FYkp zucbzHj8qSUmQY(QzU?!`EtWtvEj}gEoM-16^Bz+Lq#mXZ;pK z|AqGj&9$xL^AT8+V*;|fUl0I}`ShzxGl<*_BDUnd3JUXLMdjf&c1e-b-gC_@y*IV8 zg)zB}qqzkq27VwtbFpp7&+I%gwEv7CuhJwx zuxBc)BbR<}!AJ1_ALiaVCa$mB8*fXY#ak#)ye(FAuz})j@gk+T4({$VNGa|vgS$f+ zoB{(Bw;9}BhZcvy^~d+g@6DS$xo>ix|KAWZZ(>dij5 zUs@E0v0XQOllYyrqW?4Jm6$B`6ld4j3zkEI z1G=x>5$2o+^(gMJbgo_@*jdnJG4fW@Pqt+nwvX#>l3Fwe@Ecn6nvQr)}0HN@xjt`hU$P?duf1$o@><%5V?}d8j>>R}muV`U zfvjJ)!@TkY60X0FI5DEQ4Oz`aLmPK<5pu5B-S*jaAEulPXeI?_;Ag17-=YQ_rn5l( zGvrax!nq`>)I#}WMi^@_mCRs&XZ$)PIut_Pnu1QgJaI&6wu+cyQQk(N4~9=- z{t`IVXFc6(~E`*99m^!3H#S}dRJLO47Ga*;`?j6xbg^)U~;O&=_ECDD ztW^2Sc}BZ=83))jRCYsea@LYcf5_EH3?qBhbm+(}m60>Lr9P=+7THA_0bv(x-4bql+O>x?e+B=SDM5FFV zuP_kSjf_j&z4a0)#@#-7jhN1D{nDxY0Q0B@dTCV8Q2;YHEI0g*IgdW=xGrtl*WtAD z5&?M<6SV2{f|YaIFYmHOpIaNzPPkii8ldbl_0xR_qH;L-+)Be1bg7=F9_c(qWhU{L zNK51$I{mUTb(-ho3p^cil!M}&-yK=F=x_TLdV*YwN1ZaG_>42pHW^WFzyr~-g(Xu^ zA?lP8c`K(mUV}oq0uS9x9@>`6IG!RC zH)Prt5^YS%x3BTk`95hT|9B8nWP8wd{m!{xftLcFDmS_IzA~l-8x2;OL(ZgE@VwFGbMg)ede=+J^((LEA8C~5D;od@`jUl7mK z#!DsiDb^W*^Un2S&pNF#Zgl?TMIa(g@@#?Yo?_pogN{3}%Zq2agC>PXyM>FEzSICz zfI{jZne6vh#$Sd)hINwRkZXA3#_9}Q(%HMjbHr<+aW>W6(3X={-bl1q<{i3U*c>Ec zC5jH?Px~sBc1<5R-S%l1b=nG{PKgdekcn&j>RK?5L)to#X__DhU9Qx<4Mfu%E}T%v z2^4bBoo{;hE;%^q;PEVcA^E!KZuG!yP}jm^AXGkdAywlUDv#bkwTmB-_oO%p{o6~k zAz<~O%S)-M2UWXDhjKO9|FG7zV4sb+-(?b1Fvuhbp-vUzi|7IHpjx89s$z8LZ<0hQ z!)C^<$rxw|5U@x~!=pbDgwk^EMe*5#Bv2WJqbQHN#<%5tx?9hA{?=Y*tIIJ_NEyFh zs|X=j&_V8qpgHfodg0(ccqmec<&B9z@-=wQ;Ev4xE*uciGVR4}vqTMG2``%J-{w4_J9l{Mf z2rXnP4~qYYMvk|@b94ZVsas6X{ByA-qZCQ?d+s-vy?6PzVT4GsnY-o)0qVI3fi4yR z4Ry*rZWp&Sss#%hC0fFHf{6kqODlY|saQ@EPYa6w!4IVLX3jo;KI_HjSk~VAjL)K5 zSim7NtMhl8klG_x(s@dhn{S65veVO903B7G#XsF$smYMeM|c4J47B_(7?aQKZm|?g z6Ffns@d=OJNR}usmVe4J@9}j#qRrSWycmmz=f$%sPJXwl&?Wc?VW!o`OKpLW&|b# zTmke_;wskn!AQd+idi2eGegY^`cEH3@8wb7BN?1;?wuoE6DIR8*Vk2D{w~>1bq{Lg zBv0$ixt*p)w~w$M3ZTDaA*Zra_z0JAi@99++`oG-Q7MLSShrTN{Ppdi?Ic1n`8(U^ zG&d(-I($mF>;Ij6NSaDLvoMWO8%%bwLo+O?xhhs)xe_Q-%5}3w1+Llc=-1Lh;muE22mB~bT>n&jimW2~?72W+@2F?F~{hM@E|HXr;wfRcJ$T1iw2P5owg z!6QB+P-DNu{j64AnCWw&rUb2eJS@B)I%;JL3Ke)d=e0&svudAX>8u!pg!Fhem`7!K zw3CYQHC&@GHIkkoglw0N@0603XBPI;_-$%|_R45|2JB43_jLqhKD{UrG9IGcMi!Tw zHnk)SjWH)KDB)`?XVHbP$r{%vspHFhNauCufc^|s+>MSEL1XDT(%O`O>xNDC=G$E6 zAzn?8{S18FNXpN}?q&dm0W)wWM!Y>^;0w-}Ge&Xwb7 zkhhL{cBud%lrFIo3SXm12vP9%8%mw!=l!N9Uod@J;@ZUV$ZM;QJ@9wDBp3`;6WhYs zyT8}Sf07!a@ETm`KcuFr*#5D}{#9Q3`i`W12 zNg{;#M{A6}q3!M=>>V(RGb^W>5p~o5Cux2xE>o#UP+Dp1#wayA4$z zrm=#2ucsmqFM9TtFSrqYS_LuZL%s4I(yexihDb6Fz+e2XW8-ZM8XD*}L2l;F=s2g! za&RFSn7GE63UrgF{*raFF+dD+-K?Yp06$mL(BLHm-0v%GBCGCbH;Qw8TGUi=bPFLj zG(bI^6C^fXf#}>ZC-K6rDat4ZI0_wCfb$teKj1-ARZOTlRgZy1te0W59zV2$YmRWD z03JF8`GWfGP%)tyuMJ~hFn-7HmtKR}k%-l)*10yZtph<*1Z)04ik$lXU;D?;X3B%* z>56m-r}eX)5J62vR=Jx`@Zg4h&R=6m@SbwT%W5bQ@wh~PH1gl*72BT0{=TXxTy#8m zuplTVGI_{DXA>o0=VIE4N#{oIqAd95^NM3^iYJYgDA2;i1{-(USn8H=0+%NYD)B|+ zEBx(^T)#rv_wIaL9R^$>3F`f~`e`rlhr4r9oZ5m(70;(huWWo@oFWH%UBP5S@3ZV5 zq(P=U=7vDlvl@?ArM5OixvPo179Xx{wqewMm$*R>D&a#dWH2DZpYs1Gg1=f-&|ZT$ z{!thYTiyi;9TImuXp1k>Q7OU0WH?#laP6puOQ(Nodnq~#(b}UoJGOY+M(;15tU9Oi zLoffX7BrKHm0cbdI6JUpsv?C2JJ)Jo!2z z<0>-k8lP>i=TR#u_S?Ei+awO2-&gh&*sYT`>wLd26vTJ3XUlIa_xXQSc;fG8fy6bU zA&4w)H&=RaUTJ2l7Z1mtN+gy}Wl0it2i8@f5`XP#zkzMU zBQ>6`hD1C`=*%`BpQQM?q}j)Koi^SR(cEvNGAk7ziq3U&zbGuvhkTHuzij+N6HAJ$ z`!_Cqku#;Mu5SdIsz*5qH(U42CV08pA1^Jw*F_pw<(wEjsSB$3U}y8H;Lc=iarBsZ zXxPjw-HQUvMXtq@isB)s#XqwyrHDQip>Uj$)4)o5V_~7akhc0)kSk2y0_euT)3a7E z`!rURV(y7PkITDQlR~dq3r1~Aegz9oOLY7Z%?+B`WW_ zAivcA%(;$$@$H8_8&vN%XhdP)A?x%F#Fm~iJsUV(3wkwd1b&rE`YMR0F6~07Kt$Rs zbdi?RBwMb#%He$%29@DLwAYBp>%&3|vo9iVpOx7hhn|f&j2%n!Bu2_HUyer<_3ZY1 zKSM$z8S*Zl|2D?&*3G??HQd~aW1z$j4!E*BDa$svlT z!+Yr)6IDN?A`lhxg}9^p%Axqf_3~K0)%=+vJ`!4Z=7BJ#K_@?~HyBsjA^DA50E@!w_+JiI{8|H~czN04Ipxp=t#jXh*2RG0rs{2|F{&{r$10O&G2 zjq`X+O&Uc3{=+b#92Q0a)|9hg5k4G|02{DGe9J?##`*<#^4OcT4iKxIGryFP-V!3Z z!iazj;)Z(HKCu^Ium{2ZM}AqWY8PkfRuW^2Z;|%W%Af)-KMmV z9s5iZbwzL!^;i}KRb+|c?ue%N^a*a8$J3`Rc;D{%||1Z)JbkF%v}1eN~P6XHCPZ8Y9DZ9FQbYV}BWl zSFF3N6&H484N;SQ`9oukOJhPyTBA2%Zc~lXQuna*Z_p^4W%}Bra1yi;8zu-GdNFny z8yZJTPW?tuGq-3tcw%`|jiGL#0s?gD{D2%>3e<2uxpPhHDQk5=vD8B@M(y+!M%#%n z3Q>fXu0a}e_sSr*(VJI*2K}VG>NQis=$CdKWwOfHa3X%2v&Txchd91;clCp1ilrxM z8tthCiTP50`Z+PXC)q035@7&Ml z)QPBZ_*huwKb2O!!5K2AjPQZejqO}TX1I-obNwD*)Z$^Mx!{Gl+&RQg&t6_STLb2g zH9>!GygnEcbh0S-KVX!CUPaayXa5!E{;{x`I5cd3EZBVKN(*9AZo!7R+_I)0iREO_ zCF)ip59*0GEKnpiI^L-o)pvEs!5c=%=1{SK<)cH|c?t(!t4JtG)@vVAUM~+&FaS;q zQwHzpza6!}Elqkh;eiM1EZYAvuyf%w06m-={+v5%N6LIN?W#c2z7t^TzKIPvQvIFC z?7QZt;i(jFA3S}u32Q!H^SN%R0aEPM^C;`|r%k_X6oPd&`G~`#>@DH606KWnzwWwu z385M~AG+QoJ8a?x1D4^Sl<82+Li>>EBgr~`7(ZxUga}UC=rX3n@PLW6*H|2Feg_kCDY-J?M_P zCG_E`7@2p7#>|f@`ZkMULUDGoc0ZYJ*3KN63ZCjCY_bEgf$~={`ya;M6@45 zv5&Qb(kRz503L0?#aRgChQiGitLS7sPi zSbyrQOh(pqviK*5{7GA-o{I#3cgapHu{RrnC+twmRUk2p6r>?1V2g9tEq4hSGVkp@K#JPrQd zx#PbeGbK3ZkoGnQ6H@!E|2`4pD+GcnOJuVv!Rt%JT>wdN927Qs?O!Sg9iQ? z@+o`uGceh*i&e8LmL(axxHnU~nApGi-U!6tITi*b1C4q2hBNk>IWohve|h)9w@Cnv z#QjUWZd~~Eqrc_$+mC?6)~FfA4mrN9f1ZUhG1bN?@hLiF8qhIV0PlF6`wH}0Mvgzn zGLbBeh6j6_WV>3#lToY~1KS$;6+$vlMhXH0Z}u=tBHAccPnl4YaM?v~~c;T>3%duM0xg{o3V{M!%K z|Ln|@2;9FPy5ZWg5MiC@0Gn(LIMtc=p(#~34qbAkb@7hy$Mwi{sTJTyN!FNY z{bC;FpAZF1G=)RboBXY6coIm!f+MjbSL}x(@AMcw{PR5!kNXZU^9kH zmF7$(lUoD#;#`tR#bmdlc=c@W$8-cS7tPvD7+Km14s6Ik`p&$(#PBuGZ}uuWkm%-v zehxb;2we9em#xHw{pP?3G?8b+9G{)J!1-nSZNOWq<97gpaYZBpEJi&NUcO}gn>OhW z#kDU_QnwyZ>fk8G2@!yu<%$w0W7I1gVYtN|N93&sa0@cgZ_?(Uo>&1CrK z&#Q?kDF1eoq~0Q_EBt`PAr}4P=`ppXD6yr%OW$b;^3P2Ja;z~0N}(L2m~nsD0NLXa z`C20#Z(!JR;*w85A`GSf`VP#zx(c%i7EER^%`zQiA+bd+L0II^v1)U6FiiQsE%L0K zw&-%_cqpr)0)ghTCfU;8D@Dz~r<&oc8B;YAcfsR~{)~<;qcNpH z&D`Z$3YpwcjiyDc4AVErK3V3E&fe?mmj2yfqNb*^ zjz~87`)!thP;FqayR(AEb{vhN;mtd;X0c(a0(w;VN4AFIHuWLTfZ_YGknRqNL};o( z*7Of`j$+Q1RTiOv+PyI7TZIf3e=c_Y>B&Ul|-{L$Z+38M_q-OF=wIEbpNRxopsEQiiy84X%6xQSG>ze+$KqP$dcaa+RVkS!nz5 z2bp%Ta<_{D#^58KZ;q_^!T8PazWU$RCZPD^&!;X7E!sz^(dalQz4b|>mvX}|SwWHN zY7}YNk=b;EzVw1?k}9Ow0FbmFLV{YJf&Nc#+7Z$G8(8dM^BPchebZNi5Kg6|3;z2> zzhFGHo;kKLoPb-S9gATEtR3^^vxk?kwrFFdtsd zh>4Du;@$(sNU*}*^;+|O&Q)=JA^Q`46{6u91kI>qmHj5H6T3C}H(wA@gJ z?15LB?*8Qc*j1(g{$%>+eK-m16E7_hXj`1)6to63e3l7LNrsN^W1YXJS3!zI4WUzi z$@quLltV^$St8>Sp~(hW8qK}9!C7X}WKiMW!M6YxeX^sm){fNalb4|QP}i$RFurQS zllOcO!xLsux^>q>_D2}kCeZfC${lP7atm-F17RFf1dx@Uhc9u~gO4y4h2U4l@Je~4 z1iM*~#>Ce< zb7l?4Ioh`c`I*K;c`>?J>y_X`ajSu&=3v>1X86>@@ds#s=(oz$pjQMr)q&p??hUFO zj_pfbkc74NQ$f$l&4qD zGGM|$A=JL{;nY)e3)!5M%^h6E1?}B}+d0EvVjb4`x;c~pxQE~X{04gLx8n}}3Bq}V z+oqZG1VBJPDh)o(ck2qr^%4T*%}9Y~sQ`SaRA`aj^VMKNxYZIt$}th{TbO{_RHW)J zJlK%#X1Auv*%Nm;3HS%HwaH#AKTFmv%j>|0y)Fc*_{cFQgzQTPF2k_3sh=@?feSQA z3V^c+m`tH_u05(r4gXc;Io0F^4X^jh2cMIV)#)_TT~ zm8ZDKO;N(f?p9Tfa*@Ii%4WqzG|M-H$({IQ4wK1y=Z7rUv3z?KYc1b!)*1VBhwx z)Zj+**#v4y8s=_OZJb*yCw+4aTH3G>2nj1Fcv_|MVVc0?WN7)aBz)`?R`=^$w7KF7 zP_4-TTo)ntu}rYkF>1Qx)D&ep4cASYPCOlWgH+`K#IJXo{m2)szw7q+3ErG$RX~(o zeg^HFei2AG7OcD5tcNIEOLs}1F+~Gpl6C`#0i*3qNluD}G{(cj%s14I z-_+6Rl<2jELHErm`(8mnHfcaW3fWT-=Fu8RzAOA|fH<&WfD1Nc0>MYI0H%V#j*s7g za!(lne5q+pqX_E>7Xa9C;3bShv=)_^`jNhO&>o#?{mJ2nMjq2Jk_O-z2~{^_ZFU#y zDZ6_P;7S!48f1jin|@%fWU(JE3$-;~`53<{$)vwZLUhZV|Mg2ZyzB33%z~sbNW?T{ z`>DrdGn|UjBA$%qI1L`;4e~#kWm1@yxZct+R%hQ<16dP?n1D-|+asjG_>9A>R>EYU zRdyP7;493NUC&Oqws17q74;qDL21{zrOKz^0|6S|kx zIz;*6DF9d?Oxq9NW&?PP?=Zl?ON&_lP*8l8szLTQDigX&QvHbMIpF=RD1cSm!ANgZ^c_6yS_GF}bafwG?LQ1IVF zS`jY-^PgbXizD(7|FSo|9T+bG39>f0P6_VI9jskU>ksd@02*d+Vojc!I>FFl1{v z+gp`->$z7csa`)rm7pZ3i}9HODc_Zd^XXa#&kIzmm{)CmuwkN|av;TDYnWeaw06Cj zVJl#UrRV^t9C(!#M+0u*{6%RP2ewlGzm{-7VeakcKI|M!w*sP;*#={R4Jr7%k8| zLeg#%W%JSO;k3ku$NM1WccFvVv_kR~o_wo4TubV#Ji=PVWWz60S*Lj8og>b^FMJ?l zMw|?UrGgV}@MJ)YDNJ`u#V>2(t4HGV3Lh_YbS;}E5<=F)XqIZQwb?>P zqr*RYywz117ko{rSX4TbW)anQC>g`@w?=nGkj|UkE>h=`GH4OFz%UQ~zO-Wg49|+U z(D!}Q+h-dT^2+|~5311}Q>7xReuB3E-U>4O{@9VHJyw3JP+11M76uZM#nxCH=jNC} zOwqhLemdR5Ta%fAexg{^$ z?qA+GMNQk;ukcm(ZXkDfVRxcd#k-4nXWL8m5<^FG)W{_%H^|~cy%VP-4R>0gs#P1c z`~A|;_@Dr2QsdC7A(z8U!^i)jlPE5GhDjRO>QbXvOZs}E9(Ci-g!#QykDpr&@692L zviONk&4ilEZ4KxXrzmK%7|f`TrUK74!cK7-?);J!GV8Qj%~{flho!d|LKcxeCVSs$1p0Trhv~-lh>huFN)H`*EO;26 z?%VxHZ}!1=A74*>b+C{1FkrVhWj;!Tl4JwnrHWR1=3|fb+{sC7UWbP5-_31j_m8E@ zjc5LAJL><&j2poJIOE2@TKu=|s2{jK{9iNb{|I~<7ate!-^{3U3Q_rduO1obuxUE^ z$}G^gYSI&%#%@v>R(wv7OcMAUVis%KXQi3#adcfZ$QM*m`gmeImzUyh3BC2iKe8-Q zaNSt(8wbkh|6J5uO+tYs*BQxKe9`rtq7gyJPBW%LKf9eu>T^S@Kl~|{w1vK_)SPBZ z!Ip*#!d}-h^28122bm@7^V`3Y+=x`V-47hU`nDwVXIcv0RriYIoEt6uu~%JqK}dz0 z-qjWThw!(ANV{*urKbGEDpg-CZCL1a9bwq1 zawbZQROiVwaIZJ!6B$(gHV+yw>3OaqM?G%xo- zf=KcOy2iX*^{pHY6tD05Kr+`cK=+y`*~k0V#^C!=#BP5)G~x_TrV;Mnh9N__Ch;5r z6NqQ{S{9+RhEMda%`ZLr_aBBlz0nFFTby|!!2}+kq`MG-9YkeLdQ3K%MgLoa>{f=I zu8HWkClv}6v96ZY%_VlYg@qyQ?B<)+e99Pm3yfTv6XnI_sVT$R0iP5Z`iU`7c%nsz zt6I+1c`}IJktFhk^s4fH+8bdW@rD%z)Be)F6_N45xFLT13+$R_x;uX;9JG>lI3*F$ zEVBEY7VS!rJ42FZVRw1&^frqBq&rL=wgnwX8%YiSG8QWqZe-_*nht|%dMoU887WEP zXYiBgS(mC|dW~?6Et~i2nsvNBj14P;l}sA{Tr4%`EZtI5>jxzHE0N*p%b9GuH zlw?5M-wm>94fX@Cf%uMu^|*P1cw$D;rU|r9X*y3@*;w;x{K+wdRX-$KS}b^eP#Fw4 zHIN#YIdi}Q4B1AKpBa}rzqT1Om1_I_tCFM#=(i6sYiZLmRPBa~|6x3E})$(3+p-=X@T z{jFYX&iUb)C}1V!OOjSKCyNm{NgQP^ADVNSBKta?yTv@tg#08wqRe*ws5Tt4&cwpc zI3bi=CfQ>{h+mF_lQ$SsB#~alNWg#VyQ=6r!wp@tegwT(`7gz!RvyJrwewgjgna4} zfHPN-+~Y%^mv(}#nZ-tkchjoY=tDw4L>N<%idjB?30umOv8+%QLl!YIZ8JfJm)PS2 z@>WT@2DO}qSPh8x3@=sl0#ej65%O1ZIU7Nyu{o)u192&;nFs(bvoS-*=bP>MrjE1#dp=^y^s>)jT zDhR(zoK8ax)Hl6*#m znr(yo)amRf8paKG>mnYmw5*NL?^HFtTSg$myJtypdmjJw*8RT``V{ydL!bVu#eaM2 z<^pp5PeV6w3vm6rhvb4>RQ?BwM+S7HO9>lv4zKi0qd1vfzn;uZ@(vIk=qe^_*`>pC z_A^tZ%$GWfzK7BpyyM~Kj>p3WC~K|snj8P-8{$S;ihJ^|_&Ur*V;9{f|38b~xxLfa ziIf)K)!6g}C!bWB!UjfQU`ya&T6N6G;&KrF?=gA%FJY@n&6tmxg^OBn-Q2xL6c_i= zd!jQ!UBj=vkd=eX)*Ar}CCF_6YE3_kNM5oXw{C?F&!;UyC(4 zE4ZTTn*!s*=Si=3_dBm1BEN(E+j@5w9o>WUlnK_UWN)o|YZ79PaF$2Wr&1k2jTTe%G~MDtT8pvOldmSgZB@ zN@A(5$kmqCxX{B@3twm4{EYOY&onojChipF;FJF};FEr_^N8zJDw>n;H}R^h^Qu>e zgt^iSB)B|c8FFWAq8X06ZK<$0>M-h%S#qY#IwWH!xD_(uC<81elJcDMtYd6>2*j=0b zX47+W|B(^2Y~C{_aIw8;r|k67JSly5?po(U&$A#>q;6Wg<%5ywMtj0+i!#@cy;}2h ztMRX3`@P@zA8pxQ3XNRdC?Tirf>FChB{8n5+}8=|yGc=JVA$C|otsZC_2M=e+tVvl z_I|n2%+jykV7>M^Q7uv)2tx&20u$wR5S%sEuPPiS2_7A}m7Jxhe<{4<$`6^r)xH4A zwN|qxSbIeFO5HM)$y*X?sdzJgtFhkVQF&*Z$-^N(nYp?ys zv#uefrDW!OXCqQMCU5{lRRK__Doyn?(R*!{wfhAAMd;XsYFcEmqd@5A z)tsoqJK<%uy_r`EUZ1CTf8{TZODF4}8p?FbMyFMm!gevlD*j3ru_EyMw&s(fqK;*T z_wZ-QWCI*`qeRkMEqhI<=f`Diy9BW-nRipg2)hmwOcUsHI*M(6#xicP_|2JLQvGmD zEnP(O+$G%(q|}z^_e#Ao@Twwp^H2u7TY(Xs$g~Xzjx6IxpSeB{=yvsadHne&GFl<5 z#(0`m=qw0uos4e+F`ACe07dmLnVo56M=k%3ujM2yTsMOymdpTO_Lj_Emub805u1+{ zZhe@X{3e!)E`^@SI&cu!nLZcy*F~Y!$gbbGDM)WnNMWkTQiN-}!7XbXTtXdt)zwmHVh2M3`Nr$HcyGi9OJJrfMF#_ofWrddlC8(~%-$KDcgC z)ZpBG7A>%h-^`YibQbeu4^7rEcsCqLJuPgm3~#tSwsU*X)_I;?%FT=Xq)a@++C%Nk z3lYKgj4OkO?z;C#!KUV>4JN&09dFMXLu$?WU249wH$#3dZo0|R>`q5l0uF5K|AZS| zHhkd3^nCqd1pkQRY`1e!Xzp+4cF%rP9dwlEnrM$qw5{qqUT4XGcG(CP;d{OZ+Dj$; z-6JX#<^sK)y6|2GQMQpS2TfKu6Kdc=L`<|8n=zX>Q}ocYa{$1MYxmE}=<74?t08#k z!1B!Pg6&@Pa2n1-NcK4OnFC4v*`-W#FtsPlO)sEE=lb*6LG9-|?dzYXDSDo0tLt}o zI$eyO6B3@yRng67T;^(93MAJiE(BF|gs|F%4+<>1i)+i%`};Mpv%iK`-<3Z#-SF>% znSFlr?@|?&&A6)VaWvmm87_+2?KZ9GR>0%DS#~v|X{mkmXN&Z%AJSOX5$asC-7n28 zMv43cxi#uZzj(Evv)j-*JHeN#9P8FAYPYjB!!wdz+{x44D~%K# zl&RE;n{;hI*fM3y|2(C_-{_rEoM)8hAw3(-x4%EZTqbWJ;f#x8L*9YI#|H@1gzf?; z-Im@P29Jrpp8cv+^{ga=TWF7|FK&h9x1?yK;fA{XOq0m<8SUOpdZZ33iyOcbjz^L- zYfNXi7eos8vdl8Q$JaGe$>c~?edsrD1y+|Ps&{Av|jQ>eE- ziKhk|>*4D!z8MugCozD+(w12KwDAGOcBRq_FUeTq*`Dv4xmcEc9hrL#^D}kK@gn=% z@y`DJXYY^ahS{3~+0+ahW;;|Dm#}$j%&)2V-E0RC70Lod(o!w-*4LUdC6#R#cpsn0 zcZ^iaHRowJ{uHt6FQ1wJxwunct2Srt|MNOxcCMr{3+S1r@NI71WLhNR@~Hx=ZdF=t zsmX!rTygC<7J4p&UdPzvRmN_@sy#1l=vWZIlSHgWhs4-K@Q1hQ%F>jC8E^({Zk+iCx zeiQykN5AJ{?-LSJOAjJd%}jg0o??8+%b*^sUw@=YdEi=I6n)OsMdx@nKRkzn7CdJB zfZ4>mu%%s2%8P!Z-=a6gdxSu}p#DC3e5D)aY*(U7bEhZgdGBMKex zKSrVZSBw9?D8tM5Kdpx376ATx-rt3q32?spvf?hcRVo;?>*uTbtkRh4bFF zO^eh2?_$RGChbWJYO3{K({X6{fO!k^d|BKTzt?_>{$M)Qrgzh!)ZN;L=<9Tb&${;{ zxo6S54FgRNk1Kv(>+D|9R#htdlp!2t`6*`Zys5!qIK1w=a1_~6xy=4gyB0~$J1(E# zX3w(b*<6u(-8vm(!HDUp+S-u})mQmei#d}b_V4wFsfU)(PRlD(ItPnt8)Yuf>h&|b zJ^bfwX!EjIjwc)Oe+^Do*&!?nz%d0=dhv2Vr>Zx89UM?jP$Z$Bt6G$)H26qc*WmDDY*TZF_gy!`yeX)n$l#X zw!8-4x+8_#i736%QcKF;E^(i)NhAQ!tn-ybh=2AAQMW66mu^8*$)UHqb+4PYio(n# zSSpqsrJWe0X7FQxsxn~1ZTBunPQuh(dPmw0Mc20``pZ)|U(|+6xVPK%WknF?;_6Cu za+(mIMDmQd>Gw{D{>7?m{s=V}>rDOTl;}6%^HuYQOTPwRfaWJcW{{VA6r@cn(nU0=W~~vDx6+HSd}KQXl!LB6N~T>Dz0SJv4jaL(^oOG{j5P~}dhhRZ2XP>(FoV)KnxAw03etcD3BlXT|nfG0*S9d?_S%};e-}Jo;wce$I zwtm(gE9MhmBE=IeFk_oF`6`burCXq{-=b&dz|lCVd%{s{QmXpO<-^z$8m=5B@xmoM z0cR-)-w)>xehq>A9Q|vUPs_dQW`XKKkM&|F^=(Wt@gjt24~%WH@p*T--7sH|fBB?*@ zGX$_O32#-X3>ZAwg`KtBPi+dj`k6y)3 zk%QEDdx7rOJ#y1x+#SV$aN1>-%uMUWRBBFl4T4K-eA+Uk-G_P}uE5t8JBbcjptEcec`qAPq8^juExJ%27CL*9bzk$?C*#*b0=yW2$hxemrNyeh+=x@F1(#=G- zv<{>u;0VzxrPQ)+Co((k;(quMI37PCeCYnH3aTvKyT5wqG#Czk{B<(fdZr3WLC zWk;qflbz#7(8qWGtQkEL^9UH$ z*`Q1PmDd`#aZIuJY~vWH-`ZlbCR@;v;0bZ-W?c69&VC*x?&G(dye{3oVWQtEMw6sc z`s;;{iRxp~-^d$vSudE6Usr#}XL@(~>cTJU%a;e`b4$WzyU25P(29O*+t&t6pMcfN zl^qv;A8pS`ozbgyws|>)>;ACN|>)F z^;+UpQW1^mjvl5+l+UvxP|N62LvG#p&{4|zhX3*PENxZkE}>kw-_CYxU(J2DLdCoc z&K1cL^Bc~NH`~H>t-r!LARXhO9l`4^uNFy>=D!zRNB6d09?^}uB<8j~;`p{qEaNa%Vt13tx5}4TCREQ&f!{hH2sW}OnWik>nPW6rd)}yJT=-R z2FDlq6dhX=*hIGIDje_nj=I5q7$^5p+#l$mp8}4ep1DU)R&E}>e>-@*2z+9^NV*zd zRd+awS}b<%`jcSvcXyd)T#>G>v;)$*R~|f1q7r9V5$|@K==Rd3Rp6)nk>=Vt5v`14 z$bxtB6^-*SFlV#$L@YW#_qZ8HL`s{2CwX<7>%vu`SIw>Lm*1CwzskoB6}YkG1A!d2r|%q3io9LmxgDpqY*OhgON=4~;{FG* zi)(xOdoB(H{mJI-{m?BJqq0xa`HibpVGAABCVMU^Q&O#a#5|L=p-Z&NmMyFz(uBfN zKD-AH0zMMb6^sAFH2c;nul<;Q(`FYDKynlX1u8t%a}^+xIR9nHNqKbUOm6E4B;qr9 zJ-JNKrhojijQGBo(vxkSt-eACy&WFZ)*(0P!oT0}R!y+7- zI1%UiD>Yy>?U7)T$=>1mX#k129c$^-j`)4F?vu1F*{toxi6l#je3^-_T60r7cGBLu z#`hXtudR1J*$@%awVPu7HNrOKAt4!<&x1Z07d>vLz>Z5=2jlE$Mr(+%&DyYp$k6x_ z^W85$|5}muwUnz&r*|+`bM`yG)^K&;c7i&J) zTb39{`+Do{5mF_nh~FraalP5ABy7k-y*#%3rdTJ)xc7;eCpU)&Coi&lZaQopsU=#g z_NR;kP}8t3B6Nb!%vjKSp6I2x!tAh_pdS|%8y4@FH4~#xEb?w)dx*BqdKE=?K*IxU6ItA19mf^n~jOY#-*#0xNt-H5Q zR`X6cfiZ%8fFk-1t8-ts&i}hirNh0_-aWN#;@fno=!`^j3-7hSfbahF6K%6Gql2$5 zEoR>X_qqk&5x$a$NE$b~VdZoNe3Yu}Eb&&)f05CfD*mqFDYcSUCA2oPG_zwN8+!3h z&2d}>c^STtwqV3sr+qb#v;W-jxH5po2!lPbp5fR~{Y6cFHg;L+jO{LOWG7}|p?MLD zB11)G-4Ql8kg-S+*McL>NYpmXU1zOM^9%nRtB$a8@2hkU6&4{6751|8G+wVjjT0rx zGVFAwQP_7mIW<$ScXeYSoGA>}rMWIVikNOE-N4I)F>aA(6(@14?TICRwrjQ~k!EJ+ z`q!vJ`gr{F_GAb&^^zP0ihBc&VHmSx@u;lUZMA$}PrOpbx5K3L4YGuOr5kAE3M4Jn z=X=6U#gA(8e(*Tw^9;DIhu(Z!^(A?41jwCMleLlronA28UQpkG>tLg~p ztm3w59TM1&8A18ZU%mb&ORL7He=0}|qC1!GE~{oE|@C4ao6?df5 zP%c}PE;ae6qe)#ikxPP*=&oq|+&GkdmN3H%SIww!x7~Ydn6AA|qh(XoRK>$ppgX^{ z^}V=mSm(yf!8~2cP)HXtUB*XCUe=)^4K{fI!RAIkDg-z3U->h0kX*>!82yy{%vxqy z6lk7Nge|1&=;YLlidhz8rK1}ZYLwQ#ki0}GM9S*){YR%Er5@7J?~udj3V!$7!}guK zBddzWmg~^8E?l47N5oXOPozo=k|4pMbf_bS03I#0t86E?bKpW6esgMmY&|6C(8SMu z&uSu6`O+H_oK}@s+3~V2Y30x3vi|>6iI49RZt*QG=VuOq?{6oa_=r!K%e(NVlzO&opV)tUVLeHr zYx<~4(%tk0YIEPO<{&pfhCt?Ja|+4K#=i;fube7A5Tbtg8fK0;&upQ2R)f;7Ecw3Q z{?0C>w=G%(%QI#C_D|!gJ}TkqU%oBbYrPP@KF_Cj^$@D53kh`jolNFG5~$wSegI_H z?|c*jLcXH})Z%#V?RFougOuvGA+KInu*FT-!x020VYJcc7W&oX%XmcJm(lL9Y_FI2 zv<44!s$RtbP^*?q0Sb^M=cZPh{vDH%YmIlosas9q*aTcRe*gj zcm*vspHhiuJcdrduY#tI=UxXd(@yk;+2ZXE^pM(PwGzQUL*5@7O@L6Pq z%>$*U#F&K)E@ztFod)#e?6`6 z`g5j64C}C&`4RJVM@WGq#v3{Td@-HCy8Gb9H?&xud+)IniZU(49|fF#V1MNFKI+54&uO>f5`X*2*JkZ}Q;4r*Q?(C)bivs|)-vZ`gsK&EE z3A`M+zmI1h0aNyqIIfDZ+}n>Mbv3|Ez|Zr=!B;3$wZsNgpnCfrnkbahwN#Fz5UFOr z;YW8gAZ}B%%n(Lv9;yS4U{@9ux5+nyLGqB&9!q3{*BoF9!$}VXHUKSpUet+RREs*J znu=fD80&$S9*auDp17ZwA2^RQbwfk17&ZHeCG@gAdA$8vx(N1Ia0{jvAV&!oC!mi_ zVxH4Oxm=}YWl$yL+w*+E(!}hN7>BVC_cHJ=SJ5vh)1jno{E*z6MA3!*59Vk_AciY+ z3qaRKH=!x^M~N`RQ@yGYi<2QPb*N$X5i;OzdC1^sk|y@u6nhVDT$+|nOi6D9X@gRa zlyr^&ZWH!p3p?uRFC(Cu9R8s~kKz|g<`bKV5W=B8=GDZP>L6v{<&erpjTG4czWYZh z^t@x#2_V4W6(xJZrO5sZ9}JzwVU`|RJOAwKDaLwsibiG<8{W}77)rTwtR^Nis$w?Ym82~&M$0Q8b^GYUUvdx+3Jj${ya@Y}FCL=UxoLDxvO;@jWU{PjYiM4~J@>*z zVO~sKTwSRc2FCU3^WIq~LjVovs`s;GR#5%!20Mz_MDdzMs*|vgtOtroF%S#dh4-2; z#MJMOH{?6(BTI3r`2{=55@oV*M^(s;&z)6|W#o%pyrN6wkFonAhdV(A#~^Yd4;Xzn znRV1I#>+ytoiKL%_fmd`CN^s=5DGFC?g;e{_gwg~HWNyCjIj zRXxWOv%Uk(*Ip>RTM>L04|zWnB96_)0|o#@=TOU9w0wQvwjs|QaKWJ(SlN04Y2s)L zG|A6M=~3U=z-Vha#4WsF;|BMXL{}zV5*F8#BCK_2XA_F5O#wgfi-G{YA_sXo%`pK~ z^$?Vfmm!jeQ^iBfJz^q6a7B_>ua6;In%GTWB0!b9#IB;K(u9lnJ*>aFM^HqN1;JRe zUa~>-MEvFRxnk(s(_^NxLm@BL$r(2DE%H&eWPJnhTt^BqhY}(;KaQcab*3rO)+-0o zVSJ@U-IC2l{r0fR-SdDUDur@zjKWj&+I~w}_9rr{=EvUQN6iO>9BI z(zgIn8q}Y`yHnO$fkWk36{A5;LU-hEMr!gfUQ_bDnC)Iq*QxqWXT~9yO$a@HcUCv!mSb!?#s=OU6>|ng@8RW}GLUeXLzyqfh?!X`{ zA(kBhgDcUj!{P>hhi`gvX z;#3m#S3s<;G^)BIn*E;k{PPfnU3mxu9sPViu__JY=B}V4CN;)M)v%)BHWTI4@(`GG=k!1?WsyaS=1Wi zxdva5zx}SwAuLsok3z0qBh-^fG;fLHN;=NUP(fS&Ny;>VMAnUXug{R`++0~U>(A4+ z8m|kwBhUDFdzs5<2Wa*v{34zcWe335;f(2Z^HV#k-ocT#{hZuZ!ucGX;Z1_O1D45C zulfPY7#=eMh)P})MWg4c2ZK*-zM02d@24!PPsNsv45@WxEZD5b;FoQEY2U{Et@Rff zPapRHg`50~4P3aIlgs(FYpGC47MU-d%SL_X6%j9K-iNQYXis5a0WM!vwWrYmvQP69 zcAtH2HeE%eS2~RyS4%!Q{^_3QVwrspU4l&r-Y;3!*v<1B<@i@%iVvR?m456_pQYzo z_P%U>N=AsL#5&Wu%Bcjcl@N|AHygOE_6(0^d9Ll_+RHT-6)vM1v^@I7Uxh2$`V?(2 zoo)axNe{P~X{~D1`2XdA{qO!*d-gl*5j)x1f9+TQcZ|#s{*NOw{vq*i`_)1sBL8b= z;J+p^LxBIEk3@e;%#;d0@n3?`BE`{^r$6U8RMChoGGBwYv82P?#9URL%T6oZC$|fY z-Ss3oeYF*yH^sWZm3sZT$U*v?{oQa|F?IX@D92$ItvFs5gi_TMjM&eDKs|KkQ79I7 z7_&im?(9WX+?P{@Azx@M@c*zEJF(WL`xCr5Z~s0tSG?r} zE4n7nnUvkOLjT;HdK@~qK@>>HPwQB8q+#%vZ}uJGZ9m4hV0?c;r)Nk8DT7B+H?HoP%QHj zrgfq08L;(mduCCbTpSX|DIbW9_J@Yif-8k*A2X>a3SGdWS`o~JNmWnOOsvE{MINLh zsr=dwoNq)4$8!Ani-A`|MVlNQ7E1FOosn=u3fI?89$a@^P*qc8s9VTj7zyeV5Rmr^ zI&S+56l8s=o`7XVJ;{Xw3k?$#QDD$0!eXh|`06)%G6vU}$VBnnW|`8GOZ;sGwyN|z zEYxaU3RR*zNbhz1_NA%7?s8k=AQ{bz0i8i3#}c(8xZ@_Vcv<#MJ9XGYs;*ynv*S+C z>%sf5esu@nY}o^D<>!-@i@IOpD;cp7Q?k!6)E{Ke!PVqBV&4`Sq}N*PK4a~>`eL48 zAYo6e7ntgM{Me^_wSTAd%1RpBP5}vb`hJ}C6ycFG42&1ajjWxB?9{5=nYXOyeeE9l zY~Uns{i50^y1b4I)S=wH?lAZ2)m252JS?F?*pF!-RW0-DQiATOfHh)uDLy8HTF*&lcOtrVyA2Zeb1m|%nvvYq>hQO~# z(W!QQ+M&YoHC}Wvqe5b^-|FY|h6LS;rO1f+NTbpDs0XyoaVabnr&0cr;w_9#4(pFU zggEIYWNGDU!?xKg-hC(LupHl*#}jk}(}nMSG2Wcf5c7FEjDh7CqtF;OBq4`02S66QOc*?gn-&Sun%B|Sub>T<mWHc}n=-#a5&%MEEZV-g zE`%(xzUiHea&n0FcQV$w5kIHM3mov+GsZr=e z*N`Z8EG;nmVheBIlhBe8d!N?$C#PGqD%os^U-0J5BX=iCF7*QzhXnM2;ipF?@erEd z{rj))Dgw@D+>Xy<5}O~#pLL0ND*Qj?5wc4kg7NJCu;ugLG4eq8KaM>3hs3`TTgalki_)9`+oua~iH$vmuA;l;(c8GW-@hwDqC)@09)kcM^q)84@=R+>TggHalGn4qT%iX8hFauA zBk|jo&5?rm!{ozweHHXkdd9w@-NF_XRYwx-vp6qMM3*dQSh$eTI#K)CqC1&Ea-EYnV zrIkqOhJ8RA(&sx@I)^TH4JmK^tJ+J??)jWY%Fi|LNIy&Rsmvt*I)68TVI?+Y8aHVL zuDtj%h%APiI2VqLbjLYz5^f4`ju^v5T&fy&^?=-z1a)`(@mt!~R(0+2a0 zoK*6zvHvx4+X$+IK_;DAvc(!7)Sk&1g)bkiYHrB1ts@Z|SgzAj5F zUQk!enmV+IR|j7z)~QX8cg&f&t8(QBD8s6ifAE-caBNmPQO-M7?I4poD(kNvG##*T zI807wAu8Oy)pxU2v0SsUf0~>`ZMHy?E(^*qY8cEuJqF)T5;DWb6Ud8fBBtRb6o-UY z1RqqWGb~y`uNiFO)s<{Jki-3N;HX!cgbFsfe_CUpMQ;T0^s|dYP~T&n?2Iv=T6M6- zue`nnL@mdLglfm2N@z9#O~2tU^}8m3mA4_kv5LfdK(XEHQs#*+8;Bl$aP*D6IB?Ua7(n~HTmv{l?sDy z-!Hwlp866J$89kN0nqdB5MkMZZeDaPS~QhGW9^c~8NkTe`oAD!YDC&1Pq zWcF8(2W9^&zZw#ydC4@(Y=QWC&TU2|cF^r2d3b?liyfP04U3a`PqsS%>)ImTkalV8 zc73nIG4%~Ufn@K=nM%Gj;2Gb^55oSh5ZI4C0nP=>`1on5Bsq9(WN*s!Y|MfI%Y}E>PZoG|_`}TcUAWdXoIFmyCioajNdiKu6 zY4<@23LZv5(pVg@?XSc_9W!Mx6@E~)n*-hB`}~>viJr-Xx_w!$7$x=MqJerwePq&_ zwsF#9K9ywerRx+pcaMJe`LIrtV67E24fMyXCf_t)R9{@i! z39%o}(;di$gHrb}N&?WB;h_?M=|`5q3Z-CnrJ*e87=N9H2SZGs$TP^qrC&Tn-y3_7 zvo^;fR(rKot3IC|)TCvI;hux@7DXZF0r!7A2VZ?lSZxrB4;V`JjoH?T(5@)PH`^P~ zS)qVhdtHJ;%L>vTpePEXSJp9~UO~N$ zvuox}AW9ubkU+fJE7rfMr65%vE75`7f}YhW1D|*~{6gBN#7%%coHhlv)LQ*P?pcxg zpHVW=7lvfeRVr^#qPLX@=+j6HKIn~`ISoE`u3xyc4O8!GLF0Z!Yj>_7n^7&TC)&dZ zAK$YD7%1HL2m?L;P;dx!@F*Q^VUbA*MFH)%6Ir<3C$A)SfNR7E-)?%J#dXLaF&0uc zvqSfhs6-%FfY}Mq~}uO5i#nMpJzHC!V{y_wis zxs~hz^eiPO$-N#^dzd^{fO6@6l(+M=Sd#KPl@^xK_NE4ca6C~)Oz9q0PHydQN$y$7 zPJKtO9kQ)2%7+TQzWPcwK~Oe8t)XDsscnPywqATp8n)&LE9 zP(K(8D2#k;sR|gwEbug7_)ETnW%h$DMVglg0~gMZ;*C{DQdX zDg_BHlR6NXv}3xd{<(8r)@ZI1)STvB{Pe(=5>5*p4Y+;0V0xH8$V6^MR=|MhConDL zKHknLicxqkvmdJjc^i6fe>!xB3ho35AIPQ1c`75pz=Hi?S;^Q!5mX>A_E69Z1dGwDVQ zk(r3HwHeiR;&$}3zw%m~TX#hkZi8|&O}OlBSN=(733z84o~Ci++(u2Ws)6w}Ne);)KH zQH`#X@|AHje_K#M%HPQa>fMKLk67(1^qt`@Hq^64Sl`1p{YSOXgfDPahL$?1-R3jm zXOpb-_6ct}j!y5CFmN~i>g0wi1%EkSEbW&=`D74A+Io5)!uCrn>rjXCEI@5oycMjz zI;aom1sCx$&O3?yLKlqaqEk)+kvy#YAt5m#Y(x)S1t}Gt0!HplJf=2xM;RsLp~Ubw zfl~DiExZ@f{?Sh$+dA#xe5FyK7I6eKE!z*k#c!d_YYYYnu_{Q|EG|M}Cu>T@Fji>i zx}cq_$wWT)@wI{>Y>KH!?wWvGYxv@Yg1Fqm3RP6m-Ky<%s2zqqnSzHnnYf$=i!4^- z1BD#9i!X*@MdC}GxPwvN(hUM)g{U+?oJ36w%YO3N%@sVB*Vq?d6BM+Ks+ zl?qk|YvkcEQoy}Uvp2})1lP=iwyCKb0VJYp(OMPzo?aKkO`ff0R3hS^yNIavOdASg zSNDg#OC+{4C~=~3b0Y=2g=L4wQ`yw$6;5U^QLUyU=cWo}uVo}jh9xYJ1nQoTKa zSYyhFS2de26{a)gGtFaH#YY~6ssLIBUWsN5Ar-ciiq_m}Z5k%!^58{k(b{MT@Rtw^ zs4vUwV$@-S_bWz?g5UGhhhqzQ3B=oP<*(PSgyr8#*mUbTOe0|bQ+-ZX2Hxti+`|8* zwG;X82-gz%kKtPXkodQ)ortLLf3dZL3PJh*39Yp-IZ@39L~)J9&y);HTK{;VR=uu1!3m!9G%U0TDx~@P0$mO0qwVi9S|c|r4y0-t(qyDUrk63+o2@xwsSD|JjXsU@kM_` zxU2$;IFn~oawy1!gbGdWr|dkxrIuAS8y`_bSwiTrj!$OtSJr8(qRIlIlpcsm8$n73 z0z5?%+ojqR3TiMBD&`|P`0&0b$Rx9#18Q-27-RDLDE4HhHY>fJ4C6vmf@x0q1|P5X z7gQPWE1VHwio5G@rC9#qdsp6b98)$$hE>^&6}%g(S2kyuuxKqQQV#`lhp23=updXU z8%*`(rz(f0D%nZI+)6qc*QrI9yvHP|acZud^?kY|OIokyU3oaxez_!O$JV#tAi2F! ztz@m*7|4T?c3Z>EVr51n-lg=2CXeXQ7RTVo)x|C&DPXazubV zi-~Blyjzb=<{|Ljbs48tmGvFVt#SH|`#AUQx~ve>o;M^fg@=$-kwukzTEMa;qI7md zQMoM#r-PM+^ebh9Yeo8Q-)jKwxP^QZ2UP3Im8E{`B5jmdJbp0bS^)6KccH?-p5Myk zoEcLBWq82rmm%zA&4kDcSPBnZiBh4jzeFLGUuEc(XC;Cb5+}Orsk9QD{(2O4`ruTk8=3<8RdT`T90O|UUEMhSTrF@jCE6%^`K^gR!#8{Dh>^# zGcU*jF1!_F&Ef{eNjUD_u)_KxjQcWr1VT#nJ!r3B(95tDMy^1Jx30RyHYlE7>!=v$lsrRzUkDz&jk zrU-6g0g_t+tJS(T#U90Z63zoMv=2f`Oi?7L87R1aY|%J-DXgpr9*O((i1A6f?lw`--w`; z#%utfvlMiZReU++gUITrB40bl4sU z70;O(F#7UH`tILFyN+BT6=m8;ty*7B)qISJkYc}(Q4DN@U6Vdb8eKQ}Bh)ZUN~`?I z*oupIWn_c`;;$LY?OTwW0w8MuIElnYzN`#$6~T#>a8g+db+zq-Lb2t| zNNPMzN1RFNNT-KLV^W z23cPKBwxl%nJ2am3NK=M>D=4hJLT}n{2GuZ_&OyaKKtWM#QNkKA8H=&-x6+a*7fkO z3X%i=R32lmDL!cRDE#X=^}i!jL*ze(YWzdu-=0(Xh57!gA<%-N{~rkS(#zVir|@+P z94&#^90$AQ=PdRdhDu6M&1e4eFNd|lX7Ptf!qPD#^a$j21PLGLFW*`RiYC<>xA4&E zw24|gKJf9LS5&pnWYl_=K}`2l^#4yEThh7$Tuv7*d2u)JS%eluy+X~&Yd8=6

~K*mShzCwh{Yp_YP3E0hO)tlcY~hI|V1*=Lc^` zo3%gF1-D`_Q^|O7n1trLb|IgfS#`~=zh`fd{XbUJYvOOzfKQaW{-}3Bg@|R2eaX2j zZRdkt={+%+_QJNK#O<|QgQ!orb8bbhGTAfZV2L1I__!1B?_&H)v(=}21MSXdU>Ezi z_E+T>ZIm*JRsk)D-$*sdz18gda=7o>MFo@DCb_8z$|SgbL#t^(oj4rK>0KLy4Y%)W z^NJrFrPp<4cp4Z58TZz)l+xT0&B&nPo-RPF=R%&J*8bk@v^sCK zx)i@fMc!8oLV$54f?C9bc*j)VLQk}j925h%$b;+&bogK5W_>WZGQe~?P!R>$F-T!v zl}&3NDC<^eR&1cErMVKs+M(}EuRm7qgAk2o?sEcuD{f9IdR?GX&4c9B6ZC<2OCTr8 z!*}TAhvqEk9?UB)&0f((9+t>gUME%I)qP+#zE1!#`ZY#x3LQK+8h1={oJjElHDrn=%Wrj1j$Xi3ew<;uxXWY?q_Tl`Jrn*msk*Ap7!1Ylw3`#C{bNdh;of53Q$66Q6H`4)ODy&&*+CWP^KgTD0?GAa!A6 zWFAv()*usa?Q|wKK^s84KjMVy3LD$xJ#KDo!9My-a$yBC?Hm^pah&3RHH`}{BEKct=^)`KHznsA5Uk^u2L0x1o*tDwKhFZs-#jd}q zM1&TJznOz~9y|dRb)+&;t;{StZ}wehCkK{Y&Q@&iA_y-W^l% z1yN{MJ?}I@WI1G7R>ITwRF^=**T7{CLRZ`|I55y@jqM|op!B?D?|Jchw(cyASXS5? zZv)e3P&If^`>Vz>?RW#UkurqOts4%o7K_&qOhrf;$+((N2w5ggg1OjkQJsG7zLmX5P_CI&CnG-TPgbrtY$Sw2=Fg)mQG? z8#^pgT26T%a=1116`5%4cD?==v$YYT{ErxKWBUGtPAbA*V*crHpEYxH|NJq-5rfUg zQ}b8+k!3BF@umg#owC{V=b;HdWZU-lR?Lv0a$JWnM4WoRSSC{6q2fgL;-wwYtW0B> z#Yz_@=u2=0K^4+L&okSym zU^3*&K-hD%1BmU+f>nR52ZOt8iMaYhJMJ+lcw(e&qu4cwg<0xEW3gKd+{ztV3%;zY zW@!@?5I6^~vSQnoGN~4txR4|brC8BJ(9+P5@5#Rv?TDjGd3+=ULZk!K$@Cqc>eaaB z)QccfTdvW$P<+r4(PRmWB~#`!=9E9jb_R5ltn$o5OsvTyEyHWbC@Wj9e@sZxzP3I-K(RWl!sPj zH$=1&6lIxRuz|_h)fAa^EH_QMRnY2{At!mAIiUJhyom+`xfCQ|0@$ZX)!0lOx(@w} zj@O}akV}};uS8Jy(n!?pZagTo!g_f{L?{iXke%XmO%rVEXf{x3C=x~y}43Pr&QX*bCe&1@?=%;z1@YHT%;iXXn z!nhO{KI-lX(bxU}*EMs)y_YE2Ef#NO3b$f{9XXu%WP#B%w-uv-hAaB1oQ+)S`q*&a zVyTFDor6#Cre_{s-wq{quJ@fQ!haVd%m##sA(z#|?DF%J>YVSq_{3X@qOA6Gm^8!02B6;T|P2GBucev*Abz_ z0ynL0b@lwF0KZQ`m?@$Zzr;tT0EZNiQi$E3j%2jbx;8%*q0V2UBgvAAfMV$cwl==1>;!=J@tp0e($0X5wH~^zcir6b3v!u)7*xAe zBipGna%*lO%ZThfwnp;h+(OC5zhrp4Ora})a9q;s5nqX@PiKVdcI*F!A>@lcSBMUubc-P$BA6sM{s=(|C@BM8!T>86$g$z<%YeKUMYqmMU&p{x zGPt!~!zbY}hn-HQ$U3eh^X);3LVX%McvXe(G5C!c^h?^NK#TI=8JtZoF9Jc`3fsgc z>tBpaX%MEQjEilA`y_cilEV*+t;jgqyPOHh5@bjN)EoGI-2dV1o3@ZD+x54TOBpO( zQPm8_gmXi90$|Jf{;)LdJZo4`%esNaEDV|P_335-fo*7oBb@45#N|FyKejZW@L`VI z?GNxwV07xbr&0#?%HG*7Q>zaO%^bQi*hiQJEWQrDbcaBeW6AF`^{K&JM&Z6F6y z?4yA){G(39x?}P4wM`(qo->`!0DZ&rEi!Aw7sS?#Iylj4O(zBWThKNS@mc9|I?O|!_%Rcn3jPS96P76k zkBY7YcASn&ca%Y3i6@no^e6&oyJ%UAPx2=kv}NEq0WI)^>h`$gSs z>2|u+JPkj5@iKXY1FeA*66FK%cT{y(f|LO(<-{&Ey({Ybc`=Y9}V1ZYTCvf!UrSEZY zYqCykQC);@0tMh`--A z_cf?y`T|)UX!V&#si-3S+S}2LILdZaK|K$5G7uX!#~-9X+)WPkgZUVEr0I9Hd#K2} zU4Ff)Xthx07sd-y<}-oDTA91md76H#yQXyreg}!Qf=TrJ`mt7a_@vDDhEK^>_A*P< zfz*L!sy2&uf1>l5mLxgB?c7~|!s%=6g##&2Byc;uC*Uvt1Q>M10f&Ap=wfM}mY^~p z@RhA=5TqLy;{`r@%KGxu(ITk|(LM$TJvWzfgXx7Q1V7^+N{WM2aB~V1SH5=BH7iKR z^LSF>ue~qP>{4LwWM~Qk`L^8;)~d51!N-VG7bEi=SxL(g-P`7)cxuKDq$52fW6z$3 z^Y%WCytkrgo(y=?LC>h&YdUTKeQ;5%n%~GvvFi8o*1U<+7rgsSByB7Lc@|K|j}zbe z6Cyr8y>s^=B$tgkxq73nfqP~+W zU+o;;$p+rfFuI!jOd_W-5CA)X*x9Y4{=!{R@9SemfV~#kf!JQg)4`jpA1eGHCr{55 z^Ys-0jEsW{uW6%QsP0iQg?IIH+54xNpK53dx_!l|WLIzKIbT6pXvb~bT#oPt1*MwS`d z5&_+mAY}nbMXNPp&AivBtAM$U2823L!bMi8VO#H3HA~ZZ6_RTU^B+hA z8h_XZjdAwhz>JHg!v!3h$ivEVMj;qm|X-uLc4 zXODOHe&f6`&R8<4R;^jHx@*;3tE#?lmcwvq-}{v^=x>BDoU%fs3Ad3E$Aj!Ht&Tn~ zrSaCKIx^UboVe#Fk3d=X@JIJ}NylF5if4D2b);eJMZfFh%5D$!nGFaThE#vy+?s#t zdzooL%u^_UH~lGHmAPV`eC@+Mz;r-3K@iTN58$jL=swIjJ-ZpdE6MN1k#YDEob&2! z>*T@nXLi=@tY6-FzRPcUMyv9!n)8Q8{yXf*gZwMUPmw*8{U`0}dzWD&Ptjf2+EtiS z>(R4kdx|Hk&qoOrlccm+7@hi@Ux=mk{yfw6^t&Crn$;~sbu(QnccdMHr5(3m3p+y@!2Dd;!1U)zX5+eoynhY^UYY^ zcED)!WJqz_GvkjEC(S39<{!$x-QIR-H*;PyWmlZbe7JsH#3~xUySH*0X%-;SY2V|x`S)!)1NNQM-u=&}=S~O`_=?WoTvQJ#Um+*_!v4`Em5F2>#fRj1 zN6C2SVnRmT-b+^oMo!G`d`2HAUTh|TH#qJX0mU1ME##jioI)m7)wvTjxdB;9eIvwa z>*RD+LKXmWshc$Sa-ElVI#z8G_KZ6Bn%n#^af|q^bD$pt9nv$MyC+*!nM;O#GIdt! z52orlT&D(r9D`P4)QI_I7zPaX%VCdiY?-UFyInO-z3R0;9S5M+&RO@mhE80)P3PU| z`Qj6U$6NIR`n1}FQ@@rZ2(v&6eQ1ufH4jxCJ#5wn=SP^3iS^`j+s+f`RYff0sBhpN zu9?aF&E(vNj4E5awPZ;i%?N_@G9v`14jBpy=z*6>4*36jy|XzJbTsMXTEwn!0o+QmDh`8TJO` zx!jn-I1}W_rpfTee7mjW49xUV&*G|rxCC&-e3^YPPGUZBU860~6|nwj4MRub4j?7L zVAKc{@4RE!6psy+Bxo5}sNyz(cG`F2ntn1$2_Pb&QLGi|srN8b@7&LsOwcj0X7}T? zbm(zR5`M(0=jD!@yJ6X^;I3VZ%;ub_CE_El=u3usJb#9ehXHmgoM?UAKd;YdeFQXH-_%WiPq$_Ed zRQg=0G+sSezdVD~@H@;3aYOm<)gzRB4$pxu=YfejSK~(JQSqCuigi`V;iqBZn`xgz z$EjTA;AaLkW@i}=V!eVbKdL`2s`KK1qI!XGru^pq>s%riYE+&_e8GM|EE9UPm#8eR z+;FZwlvgh8)qnscbnewY1JC=1=o3)S>9eU@RspDYoCsIbEkV^&n~bIv;@>BGAT%o; zG&Zs6-o|c6CjBn>zLAnV>^;@oFh+r(8AEi%3j4r2f$5-m&*>8+#Ta}b4wlP{m(Z^c zlj=X#pj0C*e2FP!FYs*x@69W_J)u=q0HgbXoNP+!Vn3BgGK%P#_HQcT&3UdMEUI|MeR9x|5r2B|HCxs47~coY1V=4O+453 z&kg&3M=YSgzl{a_TjF0f>^%Jcn>)7u5@wqK?|*j3R*?sOvg-gG{shOM*Misrlp!XzE}MB$WJuCy$139yIiIVaW~YvGY45k=tS9n+j^~cd<=Q3vAyRgs zExq7TrtFyHyA;#1r+!_UCEaETu_ii~n&Gz^OE%i^23wK68aK0gh}q<#&ni@5m$oVL zX0#c|AsLU*x9j%wl>aHNYZa7X=L_f#%(Xr(lj$Q|1&5@*=Pai5N$_yIhAC%5i=}S+L zrB{3#8Bv-j9``KGo~9|qo#lFExQjSh`}&I9r^@D`*6j@3dz(;FXT2lnPHz+iGM_y@3URO28$xuhN z+y6k7US^@#v&6W#avc9nMX_d5nnEY}?Yf8EBrg>o=0R4wq5f6dTu(vhcZnX(V46Sd zXdPReU+we`^j4%QE}D0WX9xve>zm!0=g&usVn*X;?lcEOtgRQuUvZwk<9w|+o-;l5 zh312uqu$`xi|q@o0UKS;q_01J8ChTCEag5%(1;iGQC`etqw5lUQ^_wk{xeE?;aI|; z8&?)-TRbRWwI4&b7XkHmn%>v2smVyy^%&M$S? zR8mWiBo0l{i0NXgD2(FAk9ryGU%bEhJRkO(*)4SP8`~W+b4n)*9Woy}vKyG?vb!qOmAC(@_b-CT1|5KYH z_}>w6C-`q8?*5kemu<>RZtnkT$Q`eM;D7Ywu+&ylCg_jksD}2Y;0->tF6SCcTO@7Q zsvJ%%|Dt@dJU0g>docxBnk@PfmEIzoYl#CvhxoQw6v?{5Nlm=@)wI0-n{#Hn=OZLc@zw$Ib$vautsf&t4t{8rw0^t<^tXhc z{247kbMiC*NfE42F|~0_l|m{E%{?TZ$tP06^QX4=3;5eH=*E8(UDNfxR%RLHQ%bme zdg*(3wUKli?TcRm!vp)~w=htC>2>t`;>mp1{%+^y^wAGf#z|C4m7n?#+wg0hz7svb z+0!cBatqElDDTQ=zn#beQGfFrP^uk({Y6K*XrzA6v4@WVhbSfTY@Rvq8KWX!m>E(U z<4+jQ2cW7A7$1fX>MuGA@+OSzK5s=s$q8A^U}M{^3b{J7UZ@For06ysAYaDnZpX+` zrJeaJ_a$i{|HDq5-3!UVhuG3=A5ocdaK-bEa6#QVUIxJJA@G6~TvV!;2_u!PBam$L zY;W%fe|!6w8T>@=0>szjeTYkvn8SqJg#dZ%D5q(f-~meFC;_u|X*(%@-dz%)=d`}< zW%atIsaKr063iFvZ8wND3!^#!JJ+A3J8+U~09_lJ(A3zQ2G}^9rW*~k2F_{AE*qZx zw4x9snc+-yEo~jA@a!7fvU3y!9sg48%-%=&h-*tT`O9hsIO6^)qaYt_EKT?ppOuJ7 z9Mt_ zk-yfk;T)T^W;L%s8JrdJhsB;;16!s|e^lj?aTV7`f!~8CSvU+X%1~eTs*#C3oZ_ov zf%?yVZ~+fIu+~(sTtO(rPh`U>LVk(e9InUy?FB#;DRD+#-QI`zlBWAW%SpW$DJSST zxTDEJ?>qdKQ!jpVn*A^ZLh-6qIGD=<&S*LW{&t=n?uYVsCIAyaVf_oZ1X4z1(g$^d zix7`xDcBN=JqxkKiYDM1kKFVbJZx;JL+uVF-c%_9Ul{I*4WeHn+(-~w*?}FEUJ1Af zgh7IT6@WdzWJD#Y=*KxtjmEktkC@ZE&;tYVEv~)EUCoxsbGj8j z459E&HuVejY|8?4cwJh5WvXm`7Sl`~V0kcH0+_(%?1q7w&jZ6ElQ>Gn2HJwFJ`I)( zgq%K#d|%QVbg1CPLU{<@df#bH);|X1Q`t{sqmp8)@qxek-D_6kTA@a9s?&$KVnql2 ztj9$TS8~nBj^(&$7;~Dk$3`KtCPp)7jdlGHM%^n>TJ7ndwRxv>QVDJ~KY5AfYL7R& z8wR0z@+(DzW=~ZQOk`<(#`%p?^cTK9AemTCMLF0E5EoEzr`5!!2KFa{2OuPnoS3C? zeE<~lbK8Wl&uq>!ci6#n0M8PeQ9JT(>|SFB3BmGc;b-7!Ft6k|Jha4^o!lJ2M0!M$ z!y@_CB@#%?WK1pLxYQfV7SoQ>&`I9immNz)T4@Gnyf}XXYTQ$e2HdUHABv+gk(zF8 zPrg+o9nzFkxQH?fJ63B~Eq+4Y3xGv5+CT530n_7j8Vax}hRI@{eFak)s0+iNsiOjG ztxb?l8a{UkZn=Dgpgbrj4^o(xW$P%z6j5l|pzzP{_Z8_kl0Pt6euP*Ve8vd&kc5$I z-|Q*SvPnqrU;>N%DuZg5^a?P=e&?isJP^tuDPbJ?9$!pDr#xx;AUdGf9Y}rH9;T3AhdTYi3@dmN z>wp9Wf1o-o4DR?wzO~Lz9(ZS`w{wOzake_{Z3D0pV$8TU2vabYs+Z0qz)Pw{xtKXN z4~3xc%QL_~bXKx58i*_3upbvPc4pVsjr#B2pR6eU$8{`Oph;MvWyf>gL(I0f6(fI%f zxkojshe&I9TKY&6WW0diQ03&(4D^JMu+R7o#$RKitV$8dgz%KP<8ZI2;E~3?%Hb!~ z0B@I06zy7?d#34s`Hb*Am_B6#jBvbat_gNcpX1VJ`{@T{zYxUgGCNuxqQl?(=>TT@ z<%ic5r)ze?s5eoB1Drlv=c9Zk6O$@mCJ#`v01R(oL&_wsaH08;>yzdcstw@AEE4eZ zhX*p0dZ$8nBv9iwJ?Utai7oP?ux)M>^lXxuXT8tKsb_#HC4#a6#8SVIh7Uf`^lE5q zi^4>M2e(of*)0G=#o9nJ>)PPAHlzH`-gQrY7QHlv==pjWT5-8gM%~DRrzU_sLNcn9 zMRnLYL%^`YwFdC?0a?nMm8QXU2Xs(gq&Qj^Z6i9foJ~ zY~e(j?!XcsS$GD7C8!ET?X~*-5-?3Atn;cwv{xf+ zI||4{H21PsBK|&{!tn)M65LFTMzYNcBrKl*wmKSwZASum!BrX}AAbF;`Hmf&q&Ex{ zi7Z(UC}{%Vt~o7j0J?uqilabAR+7M`XmJJzz5Sw-sNzV;{bzF7g`|AxZI1VT{b4(qNdY8c22?4nRj55=?Gvm-v|)T zvN^WHo*-O@07B8!I0}A)!-F(|z?`6w7$@Hx!Huts!HuWEa6cpOg&7}GjX~DTfUPKR zsLhzdlfe7Pu&C)-XUag77`>`7pta=W5rlD>6)e%Fx7dajPiS+s_fp2GxFUgJK~N)3 zYGuO{lY1XBsbEh4;_Yn=>1_9J#)BAlpamb^+e3nzOOqgzQUm0$tsS`0?{>5aYN<5N z<$45$WQrEBDm?D`S0lcpY)P)YDTm}aXSl+Ik`G{Xk)nGsu!{Tph{1yv`$j7t+M>}f z>FpY3xCOQohGfajYg~?bJoqZV3{@r$$f~t5tVlz*Lb~$|8EJwU04M}Lp5X&^xEp{P zYW2WX478FNr_ox~<~GtX@Pp4%i#@oX78NwR4h+5pJbpHP`g{8*csq3g=&Sw>X=2YbfEwixv6(LrcKlLl zwBc^DW=#kd^>!4(`SUmT9yeOWIx~Ee80e_)O`!Jr(Tf1q#boL2K`KKz3N9#=IQIeQ z!v;I{vv9l6m!4<|4*nv+oXv-5!8CD#p+!eQf+>D$h(CKE3{qNbV66BT@IDCE$Ip(K zZ3IlvNDZ2r8i&1g^WWDL#rV!u8jL05hg7YfjP(*vps^m^qxmp6koEP9y8!S^ z7CxX=RP-DjUV`gXFNHopgeJe<Y?DIYKS(j=}HfQ7@?)LZiH>->FRAYX|99so(4*W{+{NNP_F@%4o1AUoVhFcP=~ zL5t}{&-v0Zd8u|Z0u)ieN8?VD#^u!Z; zk{zTxVNahpKZRu6@N!;-XQ}x!U3^2!))pq;Py|l5G6VEVbfg^@r<;}o19NvQ|Inb+ zkmOwn15y~z&Pca_A-}W&w>hOipFV(}z_b5V&-yPyG|SIpL`_>p z^q04{M$(eK5qMLP29@CFD7$=l0r>~TR7}7i$Uc5f0aGlaia8Es6TFt4O05Durw?x| zl=#8u;el;BC#8YJ{npmr94^*32yFDHyXUrZ7=`%q-np*OpxE3E#`iVapKe?N#-I4O z=9V~JNgnNFV4B9M+qmZp4cx#S_2=Yt3`p`6 zfrep4+t4?EDjR@v@H-yK4JL=j3nUcFW)$uM>cozFBFRq9{UYzttEyltS+ic5ZEGkx z^80-Pays!{Ppock*uZW+I9kLZu6nNZS08ZaZVUz=%VsKd!jTlE#Z}lq3G^W!?#k}_ z5Y@46wX&$wmb4LJT{UfB!G6a}#9T5rO6h)F#N~f5~grsLs%e;Rz*fQ*g+WJLU zU6}?i&pbb_2fu1TqBHpUbb25iyZj7=??_GfF4ph7yj>e$<1ZvmzawyP*~N*xNJ795 zU?cZ8njkP;`(a}cnQey`YVm3d$MGnkRBsWu;I2#|CWef&lJ~e><^3r>UQz5@K8m10 z9K{z``oOoPNv(PJ2iV;%M%QM&D94T+?|`2N-omP?*w#F~U@Aaa`~ZA|aWy@N7$zk= zk-$zH=xM8b9f)crGqhy&VL}yr?1Ah^G7C&jc@2KBL4^w12%!X^Ky_KA@A`plZ~`6lNWP12&gz>GgFNkMurh~fg6hb-I}HkLSf}vg z-lbMHZwHsmKyf+P(_HQKwA0H^@Zi8fe+$5;+|e(PMRs@u_UAAsdvvvvp&Z|P3mnkZ zbRK|Fs2mfxCyZPq0ZBHxbt%~&C*_-*ZWqr3(aCi=+Q@z`O6U13S7VblqHux1^j~{1J}vQMp|{gFgWG=r4YJBri1+OKz@jxcw&y*$hOjwV_rPM6B|IWmU)3G_Qgv+U98EF?bthDJMzmp5F2fc&qtBwhTd`Wgc@IP&&3?Aphnc8Jf79 zMZpqjF9zW}ZC|F>!Qh))u-+g}w0#dnu-wnjoa*Z(LcR3*nBNBjJ8Z*^^78Y2=;haC zM8wBJi0~BC13xnom+fHba?l55vAdbGg(+Zl=20PfDyl9Hz|<+5ZqN9lJM_Pse5KP# zv!qO`%Hw_{ky0ME$VU7gW*RGTNzu%I7j&E9-Y~N9dh>=>?YjBVj)qPkne(ybQ0v@6U zb$y`>SrQk$G|cwb2Hf^QUR~c=0u8NeSuaZv@kXgcUhgQ3u`zq{9s_{QC-1uA^2-rG z*Y!J}K!vH?LbS&Upd}wp{ILk&{zq5BzA zOYpyX(t$_lKP>{Y*cSV{o*2mln`K(ouH=~b6ba*8Z>OlUFVPDo5^2%sxFZioBIU@n zw~!#oJ(H(-H*K(#GH>fHg<>>z{7zmZ^LgY=lbI6xp^e8%K(+>&I;iSjKb^_J`r|4M z>nFr7ohaXMSQ%m2C z)&MEVcE0=jB+)2N{y+i>`+X;gyz2h}K^Lq)M*FW9BZ02&oQyG#f=S{u6rSzbD2tvkOigoD`rhEEKJ7`0I>ndEvAyzEcWbzQs^cSvo~@4x1Kt1O<^ zeMRCg{*?w$zSWX6Kme>4*7J!_p!WDE-O&%n2%r+Sp1u9qSiJB;DOxt2+L}0IYnh;~ zKUauj;@0t&xAFrQt{aLN5}Ja25C1OGTfo4}y@~p8cbxJV9vV6nzZx@&Koe01GDVz= zTj+}y<6@z0PrjJK%RRxkllYUT>Z<9X0YW5hk=mk=_SE_ECb_HlOOD7`>K)S(@?e=fgZ3o%x1#be zvcCjHX>;ckC;5S8XCSsp=PZ3WtDmM=-N;+wvar||(*~^uRgiz;gOtW#4#F-Pkq1bB zQ*rhPBrGzzn+_d)!-joA#K8wh!FlqqwJy?asfmYYFAFnrV~`BILC~Q*1fak;R0A*hdX0oj!S2aUZYL0HB8FCXkC6mL15Y$XGLsx$#Vrjs-U4_zgTK+W!(d ze2X|nR4qz{jE&M_!tzRB;4>I2ECb~EBJx`z(29@{L^5QK18|Yq7Ezs+k_qJs=Ve;7 zs}dkog!m@jZ^8r2tKRgNhmDk!WwzWoek7;I|E7+$D%kTJK!lIs?y?*IrwS8I;*YS~ zj*j!8=bY#!@g(~d9F#~F4{D^=Sb$gc=>!KZ*yUU2iRxXzxK^&m;# zNWyX$Jy(XC0FjE3F0pMTv`IqeoDu*+c8?RIGqI26N&;fYAbF*w+VlEtTQ@sP0og-4 z53(rebNJ+b>qK)+(0Gii)Ok_L>EJ%0O(nIvzTY;%1KmyzWMjA{!w6yMyT`pGe<-i; ze#aFdDytA^b~yO12+RTYQqnzMGg9d=~_8iBQ^mgk`S}y`<*==O-krj#oRb_s@0eqIqH%`Z9Qefo}X4O7I06^x{hc zm@OJ91y}g}Bsy9Woe~^KM;KgJ>$+(M%Z-DOKvo_k1u#gOIGE6kJmy+zSOQ|k4e83L zBq6TwEW~Xnjk_RH6OmLDAVDthWdAa^1O%%HG+}<97T(0r&jLPvffmfHr4 zOi(*J|EeD=?dV*&goBPP+Qeft?+dE)1lWsc!o9dMwQD{9cpoZkx=zw}B9G5AM`D9t4t*o>C)ZUzKNt205maIL`y5qFQa za9XRwfqO8piwQ*#X-|X5Lf}V@lYUnEXi|VW7PKHjFR}{K{R7}9v!bSK7}xoOSU;BA zRHmxsYnzTLZMY67D5v=uG?rYowLWiGkzPmg;}v#S8qfeFS%o5HEC+mVJAdLf!VbGY zM@ygLLvcd^)ltw~QX1`9qcuyo389FY>N=j2ne{5dKyit{QaD%GOoHz(G+5sEo%gS= z&8<1;dW}S7s-6UtFM(9xP6gK>V7G%4EeRfj)8ii%RKq z=V{QN`;bG~=~gZRBRwOy`l_Wf$VoumO*$_#$RWiPR+_(Wv4#@c==6YJGqa`Ji&|NBJ{X{^&b0OfLU zmua5vI}8~8V9?4DM8bgpc0eK(0@z#vZjYLickRf>djQW5&~Vohb1RpW(LC$h)#?dA ziM%tYXfARJC9iI>;9SoKdMJTEcmN9lwAmM1mqci*f*R9#C)TiaB#$#gG*rO4GFqD3 z(NQ>3&>tMw=-ye+8DJr3ynC3x0hoxoI=D~MO+hQsh8f)B*A5>KBW@+>LY3-3NM{xF zc%!av(~1UqGok(3iUPDI-O++qSh+|6Go|q-pzbvKPFAHUVk!Rv$LQ>GffwDrF%p$< z2AxY_0S}4>-Yj556sB7<3Uo&u!-Eda0&oJ-=*!q+v+dPDl|X#tb_?QRdf4l4qMB}n z0-7i&NHGo)RvA*;?Q|$&+#M3*M{mSpkR0S=8bBDHJg5BKDo4(X63K^<^I5?8$J=iJ z8qj7cfRZk{0T_!|!9L}d@*&L@Z7U`O+3v?lk?~3GzrhOPz*D^>;sC}%pKWox5(=#{ z2SBty&}qO6+w5KRr#AYwz1Uf9+xHeNc87sRb#ss}91E>Uoz5&gUZAGs*!;bx( zkh7sMJ}e@jmgM#w0wjq*V;A$t8gOKs|N3OZ+CW`~;JOEOWN4$rwg)9}ks9{8&pX;= z6rlUleyz3}w<{gQoV|*VBEqdZc}vU*?u1=4DO{rP`I zIE-FV0SqSqIOr6#x6j=1+inC}bx-7Dxs1Sfjt9DT&Mk`+AyrMZPB!Uojj=Y z;ls9)w7vjXBG6LFQuBor5omiU=?F#YIREmoc8lUXc-Qz1fX6n>P@WAu?sEzIOQ(Ag z4#4%rRf9RI!cUK23528~a1#e@tA}!+&S?8P2Ue3j;OfsJDq3tZ-AdRc7Rmq%L_+*n zR&VGk&~5|$s1BP>LQ&AOIZ)y#qI_t9g#y_U+=3f_PT?&97s%aaB|R>dTDe?O1>n(* zH^@o#QXwDmja#SC(m0pB>{j@y5lVeX1bh3Nk%GV^J_so1W#*_FMsuGiEIty(@Teru z!{&{H+-^8b-6{hBsiWQa2TK8}-vGuH7iTokjZ?EcI!B7X_q0H8WDNCaL9NzK2Ok8T z&Z)nd9n4hX1^BoMq%MAo0jzBn;V_{wGr(R$JOktcd)$DqpG7(ruox5R{u3-ItxzY@ z9z^|_FXeACzx_FAg)CY`cn7~WfQ$^2Ak>5dh}+>;`H2~z40TJ-g!P5xB#@$4PZ09bg6CJ53wf)?>z|==5I&)|&J-(hZp> z&l17Cr6ce_9KW^l@8$RYa#gPP$&f*k?;t9>sL)sB!ezitODJr_mI-pqj%{FR==TDRk@3JB#o;qc&L44L$&21nNU13WnR2&Hnh%Aa&@7+5o~ zR1$woZ!f z^R%RAD5ENAa&HYqAg)v)JTsgW=9;JB^57nH5C%=Kxv)IU2xxLMUZO5JaJxhzOdZhO z-q$ftxUroi7TuZ{`#qi%50g$gs+c3>zDpu9tbQ)5a}2rN$-cJtESekZ-K`y)oc-*k*{BkI`7zr3 zlgtEw^UDAL;aL2a&E)(QQ>o7qTnx}Tq;u_ax)1prX>v$^zEyiN@PfE&Q65k`6!(<0 z(t4kp_*cqG{-Hd(2k4WwytrOd#JC2Gz#rsAyE^Q?zL(enp!J&Z^-;PSB@-CS8?IiZo$CdCKFTpGYogE1_F5|9pJozax`D@ZV-K{4Mb>k8eEr2m62U zPh3Kr(hjx`&gza(GYd``3wLWX3wdX#7pIi9tIJypXK4pJM+bWgdsi?wr<}E|tA#VC zoGsMVLdL?(!Q6sV$-@492m$NY3-ROgK5;;+=_BP6i~HD@bXB1r@nFB7IKlVTe=cA7G%`DSJtEihqs zYcf@M)5A)WRfezDnt7-7SA{2R$nN8Hjd$?RlLL(JC1pP=wNaHLZ6}DinkEqUc*khN z<{Zs33LVC*=zsB>7vLP2CFGFs=_m7ZF7}x?u)>w z=^ut@D>!%c2a@r{MSrT!?#z;I$62(C2);Pf=y-O+$gerwkY}85r?cevwtDt5+`EJB zJl1LPMD;?Sd#kSc<%|bM$az7904A~V%q=~JE7fk?Ce@@gH$q%O+<2T)kg{I>Omy!c zV|$F#uKO|Ia;UM-nRp@ZQ;Uby~+{8aoYQogxJg02Q0$CS@vpsT zP8X#+Ev)CmQRf4!@l+F2dF~1Ap{Cq|(*ki*ip;0JZ8tdQ@d${zD46QNt^e)REaoQY{Djaa@w`~`^napUx+-uf4)-_S2I~$D(Z|mJKg%snrfseRLY67Rz!3>B}U7a7WC@V zwE|m|8u<6bag|uTSsSaodR^74`>F_<71FAv4Er}v8HGdT##{J^3rNJKGVRf^Z6-+D zsXSFF3>Ki>v_=j(WARtLJg_hffA{=`3O+4jOT03nsmn4CSqAURBifV)@gmv;-`Fxk z3rU9+1Q*|-3)@f4%NJ8E!`E++AsK*xwYV%q-hr;TiC22dOq`mk*Wt5hy|Bn-zlRsQ zhK8z=4hrJ+uG)TLqP7s;ZRCfj8;8@u6-?G$_UgN(d#+-J2Wa3tz@a0eqH*qCyZZ`^BD` z+HvrEzbqe<6SME7JBA+8qUJa4IfY_LyOd(G=Z4b`R5kCt#S%^#p5uEDp3h+q-X(7f zjj^47)}0Vwy6M`pt8myEZ>D*9&pf8OsPIPv0m^eRn^v9tDHQNYzAI~sy4s_x&>35F z3y(^H^d{oGl(Fqo^Vg!IHn9<=`)I`i8En*wnxY1bFZ!5bk@19xc>kYyv`edE?|^Oj z3p?itP|@(svVm6Qf%SK@V|FD2o0U7#V&(kw6>*Yr!~(n<>CV=z{%2iT@gFP~b0#Da z&%I+VC%=UFK{p2o*fP&r{g-$6!k8ryAK7=yr^YBI@2*m}@!V&yaI*W8H3}T8EUH|4 z%ZkiqFXmL6nBwvfI&oh2a$|#TZLgjdw9PI^Dle6agMlt;qIl8#IDfK57W5WRPaSVK zJ8ouk^m&gGiSA#JnHAooP=dGLlLp&cKN!VDMa~ZR2bslK&R$da(O%qvMf1E{xor$p zFQVFir|?gx=Bb`GZ7}Xe2oB|?Z^vx!D1B`p$yA$gSj46mtum#qQ*g>4xj*-8^Luje zYB9};`~70`+S_+O*<@!{>L_-AkYk5*M}tMnrC@8!S#&GjzeP^m@@A}vc7`{gGIP(n zQ4iq&{U~^^Bpp_{v{!y@XT##nwyoh%;_a3tZ&7e`rSx5VI>dLz^Pc45^ZSvckq%?Q z84uxmg&U69^_zo>k!=5dL~sVmCv{PDqEMq#w*8BBbU&Pq1pg*kgh6@XkU!Ss>j~y$ z9MQ!BV~3xL({3@#Bu@`v1>%)o>duAR4U~^y(&aP1L1n|(q`>jFl5m@Iy8_zLb3v9Z z#)*~+nZ4KR7nw_EGwj}b=Vu4rJ|)I&{;(q2_&F`Zj6&@^gi#JH=kADHt#tMy!)$=tJ>x8a_Ri8` z>ejGc=`?y9$GLwRqj#-r8$yr3o7ILrU2BR7c`)cWma(=Dfqccv<7z zD>}jucF{t{vm0lsbg&hrc=P4`rop34HbRe-bunv}GCJSCMJf)xA!1qUypE^+^y*U* zvj(5Nf{PN1rbrVr(`?UXl<0&5-@Rj7hCAWLj(H)iL^t|mYUDD)VzM%#J;Gbz{4A*5 zvqJg8=3;1ER?moY>>IJ@;S{Gx`$lZ!1EnhC14r&dgGL;|#}-la;^95aW~qtGfg6q~ zmoLnD4Znu7X%OV6wHi-If_n;tL|DT}US_wy%3O!Sh5d4U3pHrglI2+&!%ZW7_f05v z;fK!@Av7{^_fDHWO1UeTm6#77u(wWlnxai+Q0<_Nrb!$>D_cD_E=p&^eVb!nU+`}` zoy*^|wWu9>g)okNkShr+AChnGF=Cza^i=! ztR1mY^WsY)x__OPO6_WkG1oLIn*}esrNo~fzCbIb&=C)x{ld7-9e0_7eXp@w%wxm+n^dR=zy5Pw9Ql0FdJ5fS;erhqT?zes+ih8`s9%{6!C1U5C>N-iuG{1~~xXPod zqSjHfjMf%E>*Xn((;h!_avcI30`?n?r)Fh->8%D!i|h(dxD;%sMz#x0kCl0F#JW_m z3EaE%YV4Z%bM{V98r+tt9bsR8+F2SvY<#ia7AjW?5WQLu7)q})5iIu+75!2ApCp3pL{Tv0oeA42{`-*|n`){YLJtRZwHCX!>UY|_V$V*#& zl1}e3DimCd68r>8X+5^y^(`ePGM4(M`h|NJO}C8+Pl~gITDGWK_aQ8s%vQhM#CGKS zD?Y`JP5d4U2zFW~1>$B1;(m@@viW6(9h`E{7AigFvhBvbc?85AdAvz^V2Z?~Nosbw zjM+-cR}znIixZ{&)SMsMQW2K2tnm4!C~tK?0Jikb#r(+54X%&V7NFL}9Ma&bS+fAaEiv2t-Uad9y{-KOkd{(rdRt+Ruoy}#>2-PYRN0?hpi{Ld=pE!6q1e%0Sv-#vA`TwL|R|6^)fM_2Dj5g+dp zJI4_GzpD`X2Nhn97M!Z4AJkp#I90&hyn_F;l-xYr0{^dlHNpSj4L@H`F=2t9u)UC_ z@E)~DR7i84_ynWmos;su;7Nb1A<8d^ zkfq1^9_iQRs>qW_o{^J~?5ZC={pqGgJlSlAER0S4mF6Wmy1_3(Qd&**6byU{+Pc1( z$W2vRXa%7O{J;t_9!u+~ERsl>5z2W@An{qtDW{t~aojaKJRo{_6$D_(#%OP>aAc@5 z&~FYA&$UJ>C@Zl-C#&RATk94wc>VTIBt~RJWMksTNSDP#3{?4}Y9#fn%~@w7t#F0K}q$V(aB*NkP(z0^b@Y1p4JC5e}Rv*QUS{FE4w49yeXR(CFa{frUa zb9Mal=R7=%WQ}pYSwhsPp|`Nxgd4j^usL4`D7{uj?fYDlY%8d)H+g7M!^rHoSluHhj2os&Cit$P zTFHwL$ol1ycU(!^eGVuQncP6a1=%b&(<8L7N!ChZRKyMB#drTU({speXLUwRL;j1J zSwp`YZ3r7G=M9&^K#2b!}fl5_1>8LtPjVg-U*$`i6Ov9yFXY6VF?11!& zUvG+jG#Y{=7#9?xb@HB#eZVG~zF!3JO11QOaD4i05{NBZ6#{K8RT4KuU{*>f^85YIb%=#$A|-4Y7_Hp4`apV#jlkna!h%l+Y0DE_ui zjhaq=1DMfql^O{r3bufxDS1>{(uGP+L4HcVkpzgV(mqwfKdDeGp=lx;j?McDqc*&NKXFEFKK&e-kEhhB_kS`@0;*Bl zP}!}#Rd+8QC$bqnqQ%wX5FyTUO8<=Aot88j^!*O2rS zWj|Lk|A%Xje9I>WE}{u4e)xVSRjih+vMZDL`-JHC^;p2X@g?1$2!s@?tx?Y+Wu-3$ z(jgKPk(AwH%`Z@9j4^}wR(AiaSyj1lfv4cKcO-;i+Dpn?NlHI)T=`2?)6T9~mHRgn z!>hTPc8gTU2HF76^O}m(h2zy0(agOWcY%IIBg zr3=?3loIi5FvtMX&am%~UKV%2+S>S(6xsAa1*3ds&P3ayb4( zL5jn?+d`LFS$Cl~4*|$qvgElpq2mf`MsQYw#8Mm5Q;Tgl_`QWs{= zTIzvs!%~g7J5;f{yZ+sO>tr$uS)VF!S>6eAxxRcGe)}q9dq*3TC`WU_G zv3&ac4g!9&1_w7)Cfb?v%R4oy&|0gOL0d7^pX&;FUS?fFoB|Bu7+~W z8Ik9tBb$legS<#dpi=@D*v-ZPWuS9px8D4M7CZGa;B{l}K(+noKy$3ltVLNWPgMqi zk0tJ2L9`nW@m|ufd-$7ue0v`r;{%eQgL;LAT|0^Is$!TloA&cr*b?8r`BUL+_^R0V zpFCyJ65%Oe(MtP$pR^W74%624OZn70iqUn4$o&(&K3s_b8|q4Bp_Vpr8fMaDH5C7~ zy6!YBDPr>97IHs&VvIJ=FnKJ`3vACVOD4o^v=sIl;^Te4n-u0;E9Ck1);r5Q*T*PI z_Z~gXY1-XANv%Jt(K}r_u>TV6mAuFw_xKCnXPI|5KA9=L z`9CnHd@PQf2Y^q@tWKHsJOg)|GF`Jw(upb^MQ`v?)R|u0`Ehn;rh^oR{a^# z(9%8RF19ZwFKHzYJVn>O`$Lt6IA(||4791(oE>Aeo~7r;Sj3BhHu`hRVyNbcI9z(? zQvhP>mc8jBJ7e@rnSz3RVQEBH>ATLEc^aRbFaNw^j32uGJ%#jm43ql3UQ4UU>`NZ# zUxM@SUcGkKfsXdNac$rX&DgzXG*d1nPHiUX4A$e1SFlo=^WutVStDgrbMxFcOEzpLY42B}|3LZM;nfe>%$Edx8xN~31;#myeiw(j8w`|Yy`CMa z$7j_Px4t=xTSRNCIzM$A*m}vdWXVfSS+pJ}q>87lb;HNiZ$o4CHw|0tDt+9mdx$WQQ?iacj^L{n05izWt=UB{(OSb7t0CN$$a=dW+7M0M2iDI z-Qrk_o+%oYAFiG$Vs4P@+pwQ^`cti@qOdk0uif^A!L*|u%l+RL_W+uqBzZQHhO+qS*_zW2YEoV>jM zbJMdcmF^zhshLWuN6lHIKGTR^7>P$u)g@U1ha7T(_>e+wk$b-|O=!HNd01TT0mjI0 zRg~A7?7Am9GPbyUHnv!Nx(#n%Y;$MY>1`4A*DC3ITAALr4(9r&e0Rwwbe1U}L7(SWP%N-CKP27 zE5eha%p6CDKkxjLYB~u zZv#44S|8Z^FaN#P$AS*`1LPAn_@+_7e4>%|zyz8>-*_UI+FqB8mzphiW?56;cMC}t zH&&n}*4!--T{t@jPdme&!nvC3SPmJ7x31^;C+mn^Ry>k&g-!oHMWC*9S32e&^s6P# zd7lm0fiF(JmN5C$pD*kYuuv%$wDq~5it-{&^PFPM;G>^&Zq}%mNqbj*zOc@ki;lL} z*Qw*%ZK3sKjfW)MBm&L=@~&FSkhF4dUjXngJM#Z)|6*eKPY3^hdyA2slacd(h3gmz zSlKz*{}1n7`9OOs4?o|fx4+)(`0VODtQoVfcdlPOs0#|>9jzaogd=zejS=|=AwWPp zKv2ACSBBNt{YIF7N1CfFRj|XKBU$GsZ+r;6sa00nprTf`M9=+H$&LNYZf%2@UzhH_ zUj94QoSaN&rn1sGold6GooY#d00F4Uc!JEPC+VfreTNSLimVKj*im|D2L@abTROwQjI#+Es8l+1n2OsDGD%7epR@d*p;a{5ot%vw}0-ABP zR!Zeq`2(&`346O*tdziC{pJAe%{dcq3u2mez$^ddkF;H)^c9snUwX0)ll8$_+v$H@ zvb$FAZols11De7Bq&@mqtH9^=+#ih;w^a0o(;;H;yzQ((()|72IQ;wbaK1=Qig2nw zpLfsPr>)1!gM2~y_Ha&5pRC_R3YhY#9{p`g0a&3TA1B~{2@vF*l?phjBWDW?D7>$m z4*_mJ>~zzs59$&I#Cq;N;l~e_Xb5gF37P={@o2U*$&sQqgQ$y}BNXwpTqFmG6gh0a z2sGf^qA0#hDqL{PkWl#qs}A%F?swd(LpqcD9(yCF z#1W+e!B?xh`USC~IOYMG_GzobVY@_R4f^WgcKy{u_qv^OlH^@^e(lx32QT1$q<#%j z6#q*3)_@7?x{EG|#U+GNSA2lKR+^=xeH*#|0c`o5b$egA>y_!80NrGJw%)4q-4?N0 z)o$}td7VJjncUDsZ=p%!w=%6(RQk@Yn2302SV%Z17#IhAPkbN)BagyoXWN^7K6W>e zb4}SyPT!Z7laj$atdnA^9JXe{67H7Wn9f*FW{^e-`(1S9>0ha zot-<|WZ4L4T8+d#5;b!RtV(cgSFq`5<6c3h5h^mepHt)XwE4Yh@HTc?o+gqb%W5YL^bx!?ldI zq@JgnDZ0E|>1l)IfvN?&Me!=jgV9b&)!*=v=h1HGF?yhydH*i=>g6^5d4mG!j|79Trv) zmD>b`L?!&H@<>7rQR!i)hB}18PTA#GAUaVIHld9EmLRUDtSov(LZUUpwbHDYHjaV5G z{_^c}18fgtMIRGQ**<6WeFMy-wol#>xDb_%87;V&rXqS>%ANS6`Kv3w=7XQ>nvx15 z!-rAg!U&72S{cdp-?=SRJG-1ytDMF%72BvLa_3E+-z>$hZtEu6KjlUjTAb)I@=L=O z)#gc&V(A+B%T*7)U-K5C-8>cO^Hj}PMC|2?pC0!t#!sHTCZ*s=|5i(?-nFNlNT zBVcyUJUjC1VED@Ed=E4@=(S$Cl3`a_-pgy{KR_Hawtw2*d z@7K@b3T2ni@t3DhR7W2kk(#d(01wZPTAvj8&(|*bJKEM(+vJBT`OAu`lT;diOhL`b z$};$#Xw=hZbmcxl%K)4E7bjgRwq0Esf-Fsa`-`yjb2BwX&F>0Yl z+eb;;M6Bc0CkghVfi;bAJnI>HRTxvKP$i2MWvnPHgH)akrU@QYkrHQ8>=YTW{>!(b3Dm6@TRSuL=KU&<^FP6}DRq0hflrg(mnVtuf-6)Xa z@9*cEWVd=5=UE1f#W>BWrR2nON*&hiD8+F*2Hbt|d5#!^}mu70S zVT;wqL1~tKS?;|`{pk7lcNXp?h$D$3=kU5M(K0y*!O^O3;@E&B8=q*_7PC#mV-8R_u3S*GrODUmrN!*xhD_7KY* zi-eJi-|nN!sAp+iW6?4(45JQmQQVN*(5}ZkmzU{WWGFZ$7W!9k`Wton;oO5)Jg5d; zyIe~u_GjQw5N|UrviYjgVo)6~8`{9uMQ{z`mCV3hjWlJaigZzU%*3A{L3B{yhEfVc z%qFi1+i`s$(gP=4$1D8WyMPAC^}rvo8xJqjqi66NW5#%{pshExEAYP8BVy?Aooc8W zU)x^Nqj)62A2n6%MTq#C2vO#DgQhsV1(rce>S6w_fcxO;&@^cE19jH8kNF>1ZWt7{ zWBKeLG|2asNGapsHJQ+yN7c2}SM!Et)QRCBw(|sl_sAIj1*>c<#{JHq8JB5jS;nQK z$ww-wSA+nMV8;52Lj1Ji2XwKiYn8d>S1SCjf*wg1u~DWClQ)a4J8Q-#VFOXg&<%;U zzBj%hy4LNBHk?5IT9ogG(oBwg9#LZ9cd!}ylrz%NA;w0#4PniXhX%OrUX`oK^=Tp3 zuHwo#)!h>uK6#$mRkb=GYY06NKyz;+UuPJ0p?;x<8GgicI`9~5;?NSw zvT=0i@>JB}!RKbo;rn<9RaTLb1yi`d0PYuh}?%(s9SS2OtvL z9X`eVfYTOe+157wA+Y;dFeyYkk)?THmQuU+QUAcJP;?Q28NN61Nqm2B5qVXwBmrKmyr~3% zVYj#eK3X?|;e@_scEW#Uu^REeG9xnHP(uIRvPd0Cy$OXf1;lh( z3@VYL`!}@Rh_|?rj>NG#S~ozm1Ekp*(()W>@0|3?pWdBp^Yw#FS|ED65@b~FE{L(k zBPHlG;VzJ5OJv}mPV6#?w#a~#IEVOvEz%5`L2%G(B9pR68U^qv$|Nc|WUu&uT!KA3 zB)IsR+(0`CO`;;HWVg>^L{pW*7I=+9{U+5OW~<~+^IbPb_wf0C&3ft2t*NH z#Bqaz_NqwPq@5725YUPI>*gQ@vdE_(M8PhQh`B2uMuMm0Ai2R~i>G(v{i9Odk|{?i z0Sg{m)wYI{WQ`3*>rE&N3u|iFo#wGflRL9CxqnRog{u8`1no>}GIvtO?5;n7blBI| z(bsOvWk}tG*kV(}CI|(-(o+A#s?q_rjy)LKFOoCRUpckvvuo+;7nsGVYt(k<&~J_M z;6o<4<_KzP_oT#^%2c_aOehlrHh^SGroHMo1ErRai~FBF{>>F z5P=vOhorc2Z)Gc|$F>6FA%#Xu5|wCWQs@=ht;j9TEudeLTk?9w^GVq$mP5oXAkh?Q zG)ECpAb%i2{UaSd5<~gtWu9Jyyk2^=F=^F2ydlX4-?%0=45cKHE5xc~`td@%(X$RY zBX#_u^wC?va0s2hUrp@JH2CD*#Zse=vm$m{MJjN*!uJKVx;tnKX+SesH@24UQLB(- zq@tyLjXcFiAk1fTnl2@F)76OrWTq+7DvLG7(#u0>aFygboW&h1>vT@T-DKRXK0xotDLV!WUk*dhPR`ay$j+8_G`UU) zUUVtB4qxV}2>-*|Hw7nILZ9;i{QkEv2~3i+p4lj1sl3~314TkT2P1l_ksJ4 zoQx>TrfbyU*s|sG?CRr<#eTq%oY8oVPdjRr8Em? zZPil;*m#a`V$iay9xe#G&CNQ@%!mr?eJ&nI)kae~B~K2R*AJ$?R$+xR%ab*bxhnaT zm8#XJ1jYoWP_cqw_yFVrSHMH?8hl+;FN9WRoZrNr)8;^cFMWx| zs63G1d!O0{Qz}k6@WK^lmFziW7v<0s@efh4v6)?vq^~A0N(4cZzs0xF+9)* zk{KW@hA=-NY65JwD%Y&A)d|4SnXy;;r;onYOx0oR9#;h@v*6MDJ&|IXM{L8l5kL8O zU_RUQhGYXFnevfy2kT>l^+tU|q10jA`g!lz+6V7oC^)1rIDe7Z2D-Jem(~c69EGr*2fG=>CC8L6P|-$Bhv0;;X6ix3 zy1_s6>G>4i5W6I%2FBN3jmQas$p%=oX92nd;T#7`Yw>FSL_?Mp-^<6)Uha+FIdMpO zACWs}>!U$|inOu3U={TltNShRMezO#@D-{ZIHA7s?4ncxQ(qjrme{;ub_p>_@TH4r zp1F6#?9AGLAev=G%{r9_Zd7=v#W@YbkU$mBn;0 zr0T;a#MlkzJjuIb@%m3GzL~!Rq)r|0Oj?5~4+OWkk}SF1u=!@~Z|~B-5cxtp=}=rD zI)iuzkO$;~6S*3HIx!f!yf5+>k!5>XVFp*>Z!vDL@xr=+%iBWT!S}hfQ6+c%XDzpG zam^j%1}lf6Iwnbw#aTJ=SsRn8$gs!ImX4Z_bRX)-K9!C%mKLy&Kqjp7ZDmd*nu1p5 zHQs3Qb)11mT;1jXKe)aV7M;juMv5Jg+sd`ESBGs5S{%7KlD*PDd0**XDczuQG3<_b zz2Wfp0>6}fDSOj$akpE$PX`Pjz+Ydr%OKEa=y^x*T?K9;Vz}~050jKyz{6Jw3-F646 z@w?O)y0ToOYI^7;q4p=H-8+rVck9feKI%@>3)VGZ{AlWS?*N~NUvgxw8wpQw;@cPo zdO~C? z#1Y#9z8$Qt3$@1Xfmu1+Jh!{E&ZTFWCl*wqi4{GwJLBm%-1-)=`3y(?37b_?FGG6~ z3i=Ct@<-;XWUY3tV>Cas8$89}$qPsAopHt<&kZ3W#B5>j%0Ga`p@E zi5-5g-2+Dsj{7suCrHeUqV6wwUT6oPWX$E0f@drf7|0I?xG3-6EP;?RyZzh6%dWt{(H>eOnrtYG!2L9^$d zkj%;uCf=whg!pPA6w?tN66Vc2Hafk?!7eCNw3cBk#JOUGa8mg~GBPk1&iVD@cIfp1 zM2e`&sZcVs_XcbhsJXmv0nB7%PWA`B0><+hv%1G-97sjV@soOVzUB}cLYU)5_PSvR)`rZr^XTmlE>HP!pn0>4fL}Ci_ z&?}?Zgw_OLG0rK<(X{IKX$S6Ak|@x;7{?jx-2ZLS4$l-VSsG}gl3|!$S6azH=ql#H zIXDhVg5gYQI&c|HaCXN^-2-qg@7dl0kd#fmu&@aQfBNnFun$y|Ta?Sg`K7>P!tKC+ z^FgE?4BId!-2ydC=q28LHZxHYv{7u09d_QVXpJ$YPX^T_;CWTsW~dbKgK|kLtiVHi z4!ADB6EQ4^j$te@uw>q7aIs`rP%nqlxL&2DKlWrSp_)i3ndFZ)ZeBkGX)PpJ-y+U5 z&u80!NPzX}><3$bXpKYCgTs)?de8{ShR0xX$ROTqqDE&5h8bHRZqdwQ_YJ!CLEMA^|zGHw29 z7#3=o>u1ku;q)AUavTA+;wRn^ccvvoVf&|!EDT%T_!X_Bw78U0QK>BX<7;PtvRJ7k z2?cxv%zNi^99@p4gQ=<9?4-CAe}`>LYQpZXyW?S0=jxQVA1MB6N$)Fewb*HmUWBX_W_8Kb|^}?kF}O3CAajaK$K5KT3Ul} z<*+RJocYxuplF_tZ&j30(t3XeXl6PyKz>30KjlM#XfoWz9tlG%_WY4oCc4C+il0FN zLp?tH^;D&MpK-BgycHxK6L5G*u~@t&?uE&~Khu(ddl9+z!-c6bWZOX5DUO;GR^@rc zhAb~?!=n_ID;&<&vE?d_IMcpSniXb9bu#GdFJ2g^2w@s*ToE>!L}{D^s>oqP`JyfM zY#E~FfmfxpSGmV?Xv07o!g<(?WH#yq*0i}te+w{WWK>kV8Ex*Dv!0>$6>ESjk(J7% zj_BF+%zi*C7I>z4rbnVrzf;0jRBwQO3@6bpT_ep40@Q8O4YNfu+rhetX6lwSqPfp` zx8T0v9N=HebWiixDw_rJC<6pU8iy4L!o(v^+FRO%36mlU`pua%XjChQUdp!-UFAm! zwgbuS9dijH6`0;J8v$|kznn3n?}bdv87Cs%sgN0A4;re6g1T5D(xU~c5o7Ph9KfzQ z4jF$9pvPLCk>U%Qjzb&f=z>7ud~S1my-db1rv!QRJYiST-vy4;Wdib;A`^NNw^Og zchU~qwyxWl1_Bd*OtBQs7^Kpe_FFI%6`PqFm;Q3N-qGyFwxV-$ouBVb8?=IQWV2frWF@ZM{=9X+HW_VR8tT@oL*F+2QaP%>o? zE5yMC*_l;2em}zu(s#P*igE?DAO{eQT3Isl~~~t!(}rJ>8Ze4%O{>8dful(z5rxO3bBeGdIX-eaCI^ z+Kfqe<7d$(fSLIiUis9WeK?)j;_332?s+L;O8j{;ttoT9T)MfO+sHJ;ceE>P-Xx5S znXmeGBtE9~m8vi9CrT;y?LLLO%aH z;m&`VMt&mk=pK-+Vxf{goqoyN>hY9lUSp!D2})bfvM4I0G{N#JXcTEueC)FgZlRYT zSA`^TTtzkxM%OA~2X0i6$;>$)?gNKrs%~y9Tf}-O1Wid)_jl+A?2feGR%nxF&@$48 z$+ENsk&m=>_$0Nc(3NN%)vJ@&`jj_fTo`@G2)i>-BRzYV+11q4HG4Ut9PM~*{o2Hk z&9qfAAtw3oHQMJ$xBeDC-qtSCCs9Z`h#$^rpbgjIaA)&iY*{Lt>x4EfTdf6W4u8J4 zI`-Tnwnvm-YWBP_UE7nq(Z+`@QJ_}G)U)x#gsC}`iMZ4KMWbZ9g%BgFKkEHSgKVP( zkeB@g!&Vj7%#|-F6|W#0G~=vv6XG$yMwgCt;+T4bH7i`bTA!u8j-zg*sMW&Xtgd8C zp(dDb2PvDL9D#z;Rhp7YT5420qo@cK)p8`Y@Nl97PUra_2iEH>@e%X=wRi{5r1y27 zHPLd_bNiLi<86wxkLPS&`Y=Iu>H0d5%lZ3wEJSm$9@2mD=*_wouG`o;@x>^75FSf^ za{2D@1?7ue%e*EMXkHgpk4@7TK6JEl9u5~3;?No{JQY70$H+3ucffl^+|e3)wsS+? zC+JviE_pBUl1pUF0X2H}9Bi{AzE-%l?h4F*AdAF^uxX>u7H`@Z4TfBBqG`%ig2#oN zY>AyGQZicHBFA=+DI+r-hYS4i;7D5seja?SdTndH8FqgR-!JYACTkYqsPwUN_HV7ZC9F2_<$ysTz1=f(dmeZ^uUOodmhT2J$ZSrn)pr31)v{hG$BTJZw!oU%b~+ z(_QJctm9UF(G%Iza52NJMhHv77Ixd>HCFlda`uHN?+G+G&cC0MeT6FC6I3|_7~VQ0 z^#a2^HaZkb-=~S+|2*vjvYOf%6vONT@zuz8o0|?E0xq$b&UesyMm%5^c%b1^WH&Ds zfE=h;0RL&je^0ruLJ_hoIoL9OlrV0*HPjI9>>tbWKDH#ikTjq02Rqw1(_h<=;P8zp zrz64`V(hTbG=Y|Za`XCm!)4tfD>;Ta5P~%nF5d$M^%xyC{%aQ&Rk9a5Aq0vXy(t^8 zw%Z-)`B>e8YJ^6lTx3~W!GKLh?x@PKDLWU>`u%2Lnj8Hc?gn)`A9iyl(_wH#K82&j z>N1*{E<%_4o1mrDb_espVX^i0l2Y6K(?7X%Zn{^Yscz-gLYuwQcl!M>iTjt${^Gt7 zbI$oLJE+%x*AJ;wFgQWUlnjLLn9rz$V9CcuBRgaTIo&CE`w$N9|K0h2j zzOUU|^=D*1Ot)27ID8^3-litNbybcc}~q7?Y-x99}E-2iG!J@ zrvge0Pc+DPx$}^}_J?;$UrNGaIFxkp84ZgPBM5GX<iM-U6XIhZk zy?)fPVt3$2SrmXc7+v z%R-R0qVH45;x|}%DTbNTulBIGGluPXXB16UFf@tFNRjWfiM>A1bQGCmUr#9Oxj|oN}MN^|M{#N`gQZ#1zcTPX7goU6H3|#Y7c`FhhQfF zqB8dbP#{QS*uqEvh^I*;I4JY;q8IK5wY>zuS?)kAZ+oq1MiZ+J?6_R{O=VmD2&U_`AGHaly`&W*cM_ z(wvXC(tiT*D~4ua*2r3Mm$4Y)4wk^v;M&;>MrcJ2cMM2pBBETGyi54WuMTz?^iM0z7GNCG?I->XBL z2q6>MNDQE9wwsl~|Eu=zwzb*q(Fb1tis-|pz`8dsg0)qXExdsqPCuMHn;uYq41n!1 zc8oqbvA0MW2#cT~k3gH@j|5#3n=z|v4eFLjz z>+)p-;$S^MRG+#!gI_`&jWkftAtPxC0KX;;yi$I$ID--}hA&kAKOrrKemLwze}5zI zx)jJ6D@NE1iN014{aBz}!ypTAQJS>kKo!UoXjS*H4xqc`$8g}KM}TV_0dR2VWWN#= zWI%NgebhB2?6*Czb4VHl0Uek|{V0E91Ry9XzewO7!9MT>1cP<1tseapP}O}~xHtu) zImnGa5l?a75%SeyD2@iA&g^+3(Lg{^YOhe%R)^_)xSmd#+ zO@mAQX<5K{f&_CmfMHRL08jW{9cgF%U>yGVO;Z15g2U=Y2__;$-=p&5&BJHzi@R`s z5Nc5a@+b-u0@@e{qMpmZI?5DAk+5tc7U3iT$c^q0%B-)GrvY()nuG}TJO$8D7MD`o zg(0a$d$%KKV2o*CgkMi;@?Y6g<7LxUDmV*R31yOq^EM1BU3ky+f6(@SD~nq?(uj|V z5N1aw+Mp`($I-W#$Ky$kIhy-?blNp{As-W0_*R*p5o$EWMusFxG=X{$G>vQz;^Kt^1rDJ-{#twQ1DDF00Xh?-J<7~!Y9#P|v_ zQy4Ybe92Ig9t7t)mh@yHY(~}DUd8M;1H)fQ_R<_ME8V7PrDq(UZ-l~R9DQsiF|1k# z`=w>$jw|&?@YgH@8`NJ+sx?(7AX6dC29z}>K?}Y+=}}3^bQ;1G))c`^wXd^ zOYv#$2e7(tPk?h%>Z5_G7WPG;_aU6UbjOt{D&R+ex{sHQ#k^MuIc*<>6OungDNT3&T&qzl#xb^b?ph$ttonAQr(`hysNl%)!)< z1>Oq#kqdmSi<>EKfD{R_tdYCy6F?G}mB^|g!Eca@v;zBp97h5dDp0dE{GmxGnfHy~ z<3<#RJ0JDiCRrkM-!n#8Q1+`DonMEs#11u$){M`I5Z(}|6vP$=zEZc=ETd0-w6|LBsrpPo1A-3h<$p?vZ9I*h8r*>js^{Z2p64~ zlB|uDO#q)2M@qnds;;N`C>!ZbASOZm_HCG1)Y|~n%#OAOI!40a_{B6i5#{mI2R)R~ zK;qFYm$!UWM&eN{SEXDQtX3}9Kd?@RIhA5=Y{JT-pBG;$BrznjHAAPCP?K_W$dN1% z4=_6j@|eJ(rBgDM6loJLpHLcP<{*&+IndctV*oydHmRWDQ7uED6j|4Au4R()A3X_U zjZ;!gQ4XApIya_Rb`N6FAwz{UX^SE5QvfPy6HPBflju_mVN)wh+2e$&7ml{d$J-*| zk)=wYU`fbn6D8^=eQ*v}r$IbqazsU!Vj*f)21OO-8A7U-r&?rKx1`hu;ec?c)}%-o z3%;<{PQO20nWujtkb59a=VZ#qdW}hqSdyg3kc$wm_O}j52l0+b>ue&@LxJ zJ~c50IJf7|s+CTqx&tYvkfKDk#BeW=uS|(364WLT=CZU`H5d2u2d)`cC^uHj(+N?` zH#q=K=4{hW3q1wkZJsNz$6Tdyh}R@qlEi3JuTTJ_X1324jH+BxtfK~^K)Rz{+M^2B zq+7NGY=7c0mg$~u(g#k{tp;Zz00;XLW&1Z9ph!K;Nkj`AS`ReCw1>$HoTqM!Ha8{S zpxvijfiUhk#8CINK#khKv!!(*^f3d0EB}_!R8*PIyNm?egzcTdFB6tX8eg8FiBc3xBo_*Y z3j_i5X)Li=EMQuajSEu+Q!HH~Oqj>a3M_|i=~pEgOqlg7dpEOSslxm9O$udN!=hD@ z5LPT$qL_USZ}tPgEQ9{W*Vj!!!y?ZhUh*z&LpL~c$#6h00&0GOD4B=M5^bC$4Auaj z-f2N6q{KFE%H1h^h65Yno5#-J50W*Z4DD|+1j8c)%Y-Z(OCeP@1HvVQ4Xgzi8*tdh zglk*`ge4MI5zaUB(}N~YkS|&Yk`8<*RE2Up<}VgxydY)L$Fvh?h-~BFUz4SM_XjDQ zv<@%M*BlLgHrcXquR)=W(Rm-Nc-3yQh(K0iCoUy}rpymmlBkRjIF)*M0p^YN517I+ zKro92g#qCC6HZzeR$EylQeHm4yf!f)Dwe!o&x%I5hQfFdIL&y`yapCzd}eXdUlFl1 zFiuNQ1knJ9u;jceA`MY-VND-D))7Vs-+B~MU3jLU;PVLuq{1423w&uz5_oAQ6{DiF z78VV`Je7_ji4&-36cwQtELsRMb@x9H3E@Aiz`a_7)1%1$c52`O1h0z)GDdELocHbvMxK=rHw3EDhdnLwgQN>H86756 zy)q`?#UDo>m%g#ph#0HpE` zDoLbcO$kf^;AeYdX9}N`^0O3vKuUPip8(K&NQ4nnY6pS?HhXLbGLJLogO3Y60U>t} zgWyQ*BP@X;S%eG7y|wT%&&=$C{3zYwOV4S}{BQd`&23J+m6Dm= z{59jVBkwlzJhA=X_T$0I&g*9Pv87{&yV&UV-}d@zI=d5nqaR!*c6R!F7Nfdw1gExe zgon00yudxD@#Oo2;fe7E1G*+C|GwwKrBT~Jk(}g+6>>q|)vHpt3lzxW+{+(hklR&f zSoQvwqQlPaZF9>ook$71(_EYb=gZl+@)!yXFTFH{@eZSzB-4KsvKgvHGi|1?cPmit zL>xvqH^AKwzx8-;Gu-&JC5*y3)6RC;Me-_1%@qaOQX^lBQ2irBGQZ9mg4&5$&kL(L z8&ecwy4q)&(pl1gAz6?f8Q~i;WIp1u0`9#=ou0+LY>p}((ZC2UH1LjrNYt%^X|_IE zsFE!`lwO`~SygwF(b(dCq+x&!s31;P24#UQWxfoBYMBus%)M=@g3W#Dn_rgDA0F8i z%!1NXphla7j5gi&MqCE14ktXt-tgQ!n`+5e0ySN;IN(@dZBPVS47x{{MvZEy3NDCR zyWZ8=);r1esl@;IPurkRhEe9oH%Ynn0r?!%F%=JEf{e4d&FF<}5K@2DUS1r*3IPKw zV+Ina%5Ru)OAzZ;t3y$}M|>5XFuCJNN)l-hyhb7jP!_TH86qaepEtz$?RDR6^}XDg zAoB89tHuwAu~cwj!s5buA4*e<>bM0U;LDXIK`2lyS7sV-j@mV{ziaq%rWE|5Et(TI zy^Y3bQirCSH;#MNi}_x%28k6G4u57-gROZk)|ks`>NFP?UmbKzx2qsK#6k;XZ}*xqfVr4KF%9#QdZF4agV+Z+I6U#2(@<_8ZGRk`_i zoU4yQW0b61k3_Vl+DErNN=>#qW$-_k_1vqP95smXTE)ES3v(QfcPfzSYI*UD0;J-< z(PS$qX(KgvkJlCu4{;j~z;6DsJ5FYYnhn7bhdx#1cJEqFu*xcLhikZ8+P>y!NE*D% zl>MO8Lv7X%J6gD$#QWT;wQteAr%6d^%}tj6#y&TGCX>3LN_uhI@Bj9uHFU%og3=g@ zwgDz~tS{=E$+mJI>G`#cPfvU49RtP#*tOSW{|0uXf+ezhQ4d zbcba@7$!i@RpEzd$;B zscc>+aj82}t~Pk}FV8Q{&a9-UjNIPTQ+yd(w;b+9=FurF__Mz$Ew(|#eBp0fGrK)u zeGo_?m(*8%CfYxVPS`(}bQ_t)WYYKzt?s%M6kFwQQZ#d=I>B1-wR1Vm#x^EVufdX= z@I)s|La%dcTzr>W9$Vb7=z2d&h8PQ@TAsdNVCCSdDzbg5f5f5BW06ChJ5wL_wr_c& zS$>6{>KQZnJav#nH|VU@7?v_nUAGQIg)}Pf63>^2uO=cB4!;jgclnxVM6NO44Ik47 z`n!fg8{gq7tB&`fYu7^f9kOLnGL!@mJMEN*VzzRBJf;5}e9M)E;WD;lz)~3Qei0WB zWS$9fVVvu*c^5i|~d&D)LIIMWwh;W!m+^KIOp zg*KDc?#yrJ$h7<{DJcBVFjuWqPV3mcralq1oXubJ&NO1-NCo=BDUecn@ofy$6SXaa zpCFO8kc;Aa6>A(Nc-fxp6cnZ;-iN?p2js-?d_|&NvLAlQJ>u))eLK8t(himeU;pm- zSbZD>HYZk`*mP^}dl8=N%*B?9(!DhgmWmNK%1PJZ6n_ur|GgS6RoAiJvW(2@1it2r z(o%iB%-c-V)1|Z7=QG>RmZ+|z$JaX-<@_LY?LG|X8^)^#tc7>e47TAW;NVl(XKveb z2qXG^-w}&pgMVJ8z*jfM(XizjbTm4fbVxxFDp`n{SPq{&Pn>~)_qn5dyo-Bu@nXNO zaL^XK+jo`XDig6Xgn*ljsUzfu=FLeRGjkyZ+FP2MXD5gwPzUTOKq%1ij1xXvrDf^P z)NA$YL+Fj`y8-kyocm%50tEcC%_J-%sb3}N%|3r6xZheG7|4B-WXF*sr1Nx2TDJ~W ztZX5V3bGG$fFaBXp^wpPaW@zX@j@&p4~c@6+-D4=U5Sw_Fr&vbr`BIvH;2?BZ!ZRQ zjGQg0pIgja9Vgj8rL$FAiYHt3cvOAC{~B`XVc#&8O|LU~q-!Ly<$6T&6l|^cG9EzgL-}T~HYt_fTq0Gx`qonC< zHRO0c^l+ng^fo%4%C~%_yS05`l&18IR2m&xlI5+f-c8xAWSp5@pC~5B`FZm7uwzrp zDbvgDWujVYp~1_JH!XMOIJ-bB`(&^#c>30tO*!bH_Th`qbc*~asz!k@_ilHe5<-+?#B7l{g%eF^>EV`uA=o)y~F$>?J$wS2rSzaA;Eup|K?LmOp~eh zvwzUsKd~R)?ItpPn7ls4b2shBA7d(us;gIjB)(mRJdySxG*u8%!A}MGUWm8_`x+^> zeBH|PP=7jEouU6|Lut05yY<;{_NKgQ_D)REb-RIX-lB)GRqqxHXk#n;$@>W5*8MA& zZ59H{{aL29RK{W?LBY^BK%?4n9_0ytHBYC-odUmvJbmg^mRwx~fI^k}Og+L?6`POloCXHrgezRyp7RQcx{}5EZf+ zDJ#2hTCt*dgGYTUT)zMtaSRFqibU{_1H68|1p#2`Z#(r_Z^bS3q=^c9?I_(D7hUFh zi|=psW;5wGFLG;E&pcVaQsnMzH9vZ*h}0e}zNWUM=Ft?bC4RmBWdfmaDt`Ud?#Rtw zmhFOJYOjw3@y> zY}cL}&7O9MeI=-=xuQ%P9p&h{*PRXq90^@YGj*0f)udV#WZkY(pU$H-rVX}4^>*0- zBdf?YF{olN{{ZWWK6kBGN~!m3YtEe${FETTov3!?>`D7mV<^-GRZW9Fh6Sv@%f4hn zhrUYOYkIdf9)8w5uLOty-&RqgS0nx$?rWUIwGJ0|*{yHTI%ELS)8M2d5ye|WX#+jw zH;gg8B<=kD?O3a;2E#F+6oVxkFC!d6nioz|5Q2DDs|nA?iziv`_27lEzOHi@okq}9 ze#L%uvmWpE<*NP5Qyfu_%c*XA*>?WqU+?6`Oy8o(DwWg2o$N^j=q63m&R8;Az0{2g zEU9z3O`*hgi~DVTvM$C;*}Kcdu)0xY>v~m94s?p$B?Eo4mC1Xc==)qNGCTE6zIZcx zyHQ?vv5kLw8%1ZZ(cREiys=7V@SbID^<1!hoIlC*ZTY#$FOI*kX)-R|^-3G*3TP+W z@DXDe{9a*mfmb%bC)48E<*}y8aXOy7U5!sRl_igT#BKfDANo16DIC>JA@B7ii?hqE z$z;q>+}xb_{f?iV(slLhGvasc`}4XZo#WW>cfxK`MWkUm-vRx1jQhMQI}soHBOx zTf5=Q9sc+Sh`!oma#zd)M_W_e z`hh2<{%`x{lB%I)n%;0vxAeu@y2{+ODgJVQ)i2Qg^{e- zuODnmL_>cg7e0*_&w1PEaVW0)sN~<%pN9w{1=&_iJ@V>Lm3#f~gGHKLxtHd^Q0-_t zJ>Tc*--w+lbhLFoPTMs{JpRgX)m!!2LJ&C$P1^pB*urh zfY43RaRC2Md)FQh)%N!Dc2Oji@JpRcq;z3s?>&1ijL~uFdQ>72mBCD5#*A@SjZ>0} z?i``gO-@BB;&n zcO}Ve=(&fIT}B2}_b2n3#D?m^G(m-}Q*CpOU*xK5(NDJC2+u@v5}=ov!(=gb1KkXV zna8T9UGZ$L)ct8q*_q^~S zL7rLM?v`;;?8a&ON}JxdWymRt-93}!t6VDz(qCSRFmCZMH-Gki*Zu2WQ;ZY)ue6_Y zFb|0@i?3*N$of!d+!@>}Qkl9UXYPB~!m!r#i|0h@%4YfO0!~5)Je{Ava79zximn7G@_QiUyQqIT@ zzR+;EV^K5rWPN-NM^uwiW=;)!quiuj9b1#5*7|!E6xvS>s<%@Sm75v`^m!)B8U!A^ znlAIQ+V0GP!*%j?8-pVHj@4}u`7hk_wC?N$>wWJmx1`=H4K3HZvQIVV%(?_tpEW1O zzQDb#bYbXfyW9fnSnu<}-bD{~{Grm{=DnrLI5^eOl#6`0Kl#O}dl~PRXCKTK-Yf!D z36oS_Yss@Bv$kvts_Z&+>WucK-RJXuW87Vz(;WSzYvbl&#oo>BmWhvZ3m2Q(E%WT} z+`V1%T6EvZKirm1`P&%RTOA|Ixw z%F3hm$O9{6Cch>J9cVC))vGYI4~gxc=PN?2=+<%4Q zpu*I1w{TuFf0&0)ab(TZghewZM%Fl$G zLc*)gbrXtR>>*zi10MqIU_2-H%(=44xSCE$LGg42PVXj^FG;*O)csN+hvOl$4y>^ruhThYYM zw>~)Y>iNeldz#*=>(xiZl+=b-bJC8;s`F+ZFHM8DHPQVlLMF2|9sk5mm90AS*mKB$hww$EEGD-wpi(K|9#^??~Vca z41K?Xd&5J*^;2_~%92b=TTXMLVH*Qm{`1EPU4r20BRey5e5%;qb!X1K)}_Yw8wg~V zT^o)#u9Rx7N6$O8%67u2{e~qGaR^3dhe2XXuee* z>ijfv$E-}5u}y#fwyc!Cl+-sE9EZ<|7FRn%l<~Km-5RbiO-y(_x{UNo`0>Yi^!l{TseQK{!fZEOte6PQ!h|`HFRg0hrard_a@(@A`?6oWduwiR z#idR6)_1(}T#_fO5+;?*EZG~!I%_Y}_pmD;7^BvE7FX=_);`&iG=EN@kN2(6in(`o zFP+ouInG~}W#-rRtluUerq?tMYRL0=TYd4U_HM_0EQwQR;ZM>#16KVC%R+Ka#dW5( zbpH^~I`d>vRA;-%!Ty7jX9bLKdXQU`A}+tS<^G*#>*Y`5B;vbumtv*`By^--Q?u+D zAIoXasW?!m@If_i-1|v?Q(ERrfmufi&5^=HK{ZkegrJ~IDfYOQ@>l6pnErK{BU`L8 zsTJRs=f?BpQEmKOd@;b@>Zi~5MIbPZj+H#}@dXuVMJh@h(?D?lgeTvZ;=+9aAnR&?rzO5rJ+ffg+)ok5QnB z4i8jv_`L$bdkSQ&8E^|DhwL{2?L)XFJE4uftQc&=N3S{R#&OJWU$^Y)*{bE?B{EuqeJ=B zuH>tBy?hJ@4Ks8Vi>TlSDrAUIv4+62(dXK^Tq}21sn|y>@V$D0vO*ldm#z@IdtqM$ zVkzazj}(M~a6R=6u^6N|R2L%(ki}j;zC15i{y%B$D_s)ul>fj-=|9j1<$EXJ>?=Up5Tfzcw7;@&^;00I;3-n?2Ci zH!fJX`$&YmAdueJV)-z|SL!#Uaw|+{e^u>ta2I61k}sgzxCiqo;796eM+!utQ{c4} z>PoQ~+|dEVS5g;y3B;7a+dROtg(C++7nrdvUJuXe7iST~_7IdLHAw_5!;rII`i?*b=|hgxanlU1>Sc`MTs)PFc{+2qnu zZkQeV_)wVp@(Fvbb^g@d23y*)Hfvs5BD$`kKKb@-H^E+|*b9$!LT2P@S}qHmySriM z!Sh#t7}ZdcXlHGs$EiN)pZlBjEHA;X+M1N=!h>4IB}ZR9@z(!UwNdTp!FRSvZW;9x zML|!pv^L~#)X?7i_-M0Bi?VA$T#2^Y#IeOyeS+s&=%cM`ej6KeTx;{A5T~QjiA8-C zib7|zkY>d#CnnaN;iV;QDpo5TH{5wT%XzE%qqn12yzyhVpP>C~$Iqr?!+A8N%|)sU z3Ktz7tw7V7S@^Hf+bN@WT%wILbLMQn>UMa94NvLz&yvxhFK8-);(3S192l?QGhL~1 z{#c9R%{xQwcZLUD9H&vNvuLZ{exYCDwc2P4`%z1Idh^27_m4QwQ%?>pYClUvC&8+E#P)XnWKH@B8bCOSz@GLv*m;t|!1s~Qg!vM#D*m~&gU9lfaNZ?4c1 znkO0dw%D6BLh;1tam5q#x1W-XopXHBl1H2)+kC1R_i}4F%6y4d*?hKbk>zjBVXN&E zCf3gHKP^1FY^SE7X>pHY!=jsdq;o7#$``08(I_xV1Ajh!SZoRdMM3po?59s32%Irs zABxu(3}S&Pgu`HjAP3PH1Pn&$pq%kgT^MD9a=Jq?HUfGaia{_7o9RR3AcRH-=Osfi zIt?LWFjfqfG9j^=ak}#edIB_BP0H&cZ-hVKS3FG;~ zbc79VrWs-jC_Kz2^uY#Yg>iBS4PxT?g5x6y-v@%iG`vp{CXGSFz`}^{gTeI-OuMN@vjU zzDJo5isyzh5fm@SfMLS8Vt|*4w}ruE6W%$41wnWpFu}OT^JRi@k8cmunkK;z!u()? z+otg2fJH+HzGpERZ2Y)lF5Iu?8?0!ubjmvWM|&Ho)i*?p*?mf#CcHFcysW zAH;xQ+*pGk1_Be>V-nU_2x8I^y#KK2fo~6nQ7jc3;(M6E#LD>NFgA@K$7bW#5)c*; z{Mv+JcsZL@29sb22}UQuP!fzmf-y-j770d-(_lywp4<_vH>7`{X0Fbu>fLcb6R4>0bDawI$;oXx-%6hCJM z`z7H4<`JPsB)gz$83ilJ^1QxM8+{c}eVpga=H*1I&GbE?6Uo z7zq!Aga<;x1FQ$c_DFbu^^Yh=!UM!wq8teiaIYUhj!wb@&G@BlHCAcvChKuLIjT!pAh!UHAYfs*h5ITx`#5*{cC4+aSjutpHtW03G* zknjL`J5iT}2ZMwM$kBz5s7t~F3_}C5n%)svU z!TTBPqX_MRoREl-@Ble5QI3QMn}i40&k%KqJg^)cF9&v=BpA+Sj4uP1#{%wPCrYAA z;2LD{U?Irj7TjHe2X|TA2?W;=EV#Q9oCF9VxV%mB z-TQsF{{OGKujaBC;^mO<1oSyFKGqdzyX<0Tdb^&Y*`UY6R#^3^S0v$}Ou`xtM zI5a&SAskZ1F2=SF793z>3y3q28-`ZrP%^f+072}TfE*ewPOhddnobaix`TrYkc;NiqOazce=$B}94s9!l zJH!d>1Tlv=LF`RoJa~kDGkyLX8v|l*_PcYx9{fiyfA@|<%E8s%1<1|u!ph89AIS5I zA5eh**ToR{Px4=w|3MDZ5GD{t{;NHQI>gz*)d?mZ)?*nD7dZ_VV;2bQUQUA#$oIR2 zoCcQw5C*W;Fg;$Xnpi_jU0^K~>|i6s5Bx3mPel+Y_?zN4hKmyjgI^;4R0V-t|G;u{ z0%7oPEH^h027gz1f!w@*S9!RAF!(o?hX)9QzpH#eo?|2!p?|La=fDyUNQ2 zgu%bDygWb{{9WY(^8SMruK*ARe`AG!y#HXu#|4DJzp;EgKp6a8g$>_7Sn&x0VeoG( zKPM0de^Lcu3j$&AZ>#_(5C(r&xq$-zU?so{gaHf-dv&r7 z_P^enEEkaLPYYStsQ+dRLxP!Bb{#+D(nHPtIy}g4A z%_Etc7j_bV_QVH? zjv)uvUqOq0NfJ4qU;>EqRw{HUQVJ9B&_!y|6eG|k_{osHtab6Hu%D=(Tfc5c^X>h& z!>uC+XBRhHKX#J2m+$AE#$z*h+GM?Sc5gB8@iMnhjha1Z;hFC`e=Z;7<=~VhR?yPs z=ds{b{}n~mNK~JFje}&jsJzmR&+z=+XK;Xc*d!tu-COm2HyzizJLOZ`NDFmNBM094 zc>$97)U_-hflEd6pJSAim1D6+xuo76ma!_a*yPwVo~I^s=r6f$R8PZfJ6)dGJYHSL zMJyovY4?5jerF|S&}hqJ0cceDLgBrO2QnrRK`hT_e4Y8z6-Val8`4|x zEb_iV@AuiwuXBuZ*b?y7?AUuJwP#w??k%f&x+H^f5(JJacJeQ~&sp+}kSyi|GNC~~ zGsNkH3J~0wiqONMp|qVQTj zD;ppM05ZU9m?o8{D?;ob86^_(n35dCB-<1ie+Qz#Uj=m z(f;+e<1qAFvj1Sh0;zo@p0AbmQ}G%#f`vdG_3zB0Lo6Am7_@sYgw1s|bi4%`TvzF;|(b#LECTY2}u8YFmXQEbLCEXSzH z0Ixxr75Syv&kCa(Zv5_2p+4`Y&$Lh)g1kAM=hmJ_Cs)wZHBF_)2fWG4DV{NmVOSY@ z#kMMxa=ohn+zj!lVl+P_dYro6lb}7yqq$rU?3N9_E^w3WsR|jPY~0BTDq7i%-QBL( zqpSM3><*S}W>RBDrH>P#-qe2C4;Sn^K^6DzCs1=qTbOP``|KMnpDfb%4~ZH2x(XSZ z`?7_yeAq=U6>dr&tD0AiQZ7&rd%xN@oF#)0h8Nh-@q7R&0)!_^e!4kDocLki~}ja|{FekTf%htrt?SYuAg?v^A7| zl)Pj)VzQnVc)l}pi&0>mmx^#+BKKIQcx_v$bL=N2@rJCZtqU3gFZ2j^V^jC>chLQp zhxk|g{pG>`uN50RKd*|JxJt^KtR~rziZD9j;Fy_YmGtF>6i#%~}T` zI6<-LJNdTy7jM|VCA?6jWK`jZHD#W=_|+HG3$hNz!U+hIQ_sHW7_Og#qhDzQTWO3hvtC>Gn?hb& z!yso7gzTl)*!qIxn8$j`SAGJ2B!!sSAdd_Hbh-PESDdvA_t_?d{5B}~*3lL98$Ii* z)i8`|G$Q~VY@s##%dZgBDrY1jx$0cs7;o4#6C2EkocTi}8bWI#9yAQ5H2@YBGdYoJ z6d{4W;5g{*{m<;?CZJg&W?-XjS>TNYC>13b3?ZGUx-6rMqSU zI_h2rBV;nDANVHpd`Ox~3Bsy!dHb~ADOf9o+LaoJS>tMcPQudsdH1Vx{7NTBrnVvIXk*8l*;O%o2`*o@G0UTSc8P;2ou$2F+1$l&{poJV~)Xj>08X+Fs%xs3YD zI)yEc(h9AvRHZJxufp`7Q*bIM>T@*vhb$c{RurDPHnO)|2&Qb2)@p7Nq(z{lXDTuOCquu7c_vHZXbA^icm+Mdey*v?mh4h%>93Nh&?kB7&Nidb2Y-fq7B+ByZv z608nyE8oOOF792tJIl!Xva%O|qzLvOW1{tAfx}2U+*hk=fGRdfBs+Y@5@`lz51O7n zx&AS>?#0K^-j71OUUOw%KfdufVRV%Cvk1WV>f4Y31@9Ua2!{iZ5od47>`(2@P5@F? zbk)~ZGwU0=q;6MS7C&Ve24_NctiVfQx|W=MrxTnjyF^uXG}9cm3Gy6m>jU=$q=`m3 zj74P>s|#IP1iwo{RSFv<;pOsJMGRugZq+oMRrSFe$K%8Ebi`_7mrO7zNjVrm?O@zkD$i2Dc~p3V-NHRVw{lscO`-5t$G;_3nJ4Hr;qUBL4bzcL zvV~UL$|in%+uSdw<8545rx4lwBhsmU;{hG#aOo8@t22#Jh&n|_S3Y+YM;>7_3X=;u zdKzoWqGW6A{A9#KA~T;}t(*p7vdQpiNpGUp#8K*mxuXn(!YVtvLFHiC2%d2pwUg-H zKkfTb+5QEsiWY-{4TNmYy|ak5prK?V56})|skKco*@&)-o^(d~S#iG;*(3j#FRRMu zx>Y_hptJZO!J+i*^7DA}ym10x^wPJ}vkGCcKwFo@k|^=~5eiD>8@$j-hKN)Bkik$^ zXTyN(i;$lGwK5+JGT_}${gyjQYdq+YI{vLDg3UJ zFl?>krn;$nLEv=)Fwz8VUC-7}PZy=d<|~dtQ2a`Hr9%E~N+ez)-EU9i`7xh3>uKjs zLlLJ;Y6G^g1Wtv3LW3Y$e?wW-Rt9xVGiahXoh~iYM^)X%UtSHj=)?nC$B%h0(90)P zef^%@&XN$Z1Zlq8)`qFk5B1gOd*bagb$AGuXUu~bw>}=u zqpq};HvgT@LBwqCEA;MrTH2NhE(NK1;j@^!L&~2C)nB?QA<+%dM|y5#zKj*3Tt3Q% zRzkg_JPOH?Hj=n?5;&7cjt1yCs2xvbQWtL`?mWo{_k|*>Nn77}AF`2zYY)B(7YLFT zU|wuBzRp%JQuvgXmOre1#VlWTRy6T6(X48kz^_UBl?0lPI@`H?eCFwRfX!m^0SVV1 z%TMrE0cG&lbLD5ohb5gN8tJ%x7;_HcLX8?j=5>we`Y?=@pfDe&zCE|phjOW-3x&FK zBSgXi6(4>r-XVCS{efCFt&j)ktosTSqcD2G2U-Pl+U=y5Y)x{4y zA>%CgBlV1WzM%stSsofi)}bl#Bs@Mohy-G>i`qHa&< znV{~sv238#OQ-NBz@8hPXzq9iuS2n~6eVk2&z>#&hg;j*Y99pd2ij`8Vo(h2x2;zd zqxkMU4#fdRVG9<*mGGn=;Ck#2jv*)a(r;+U!vHwD=32uLEK%|D1j# z1oQK|r=jdo(5RqWxv|dD1c4g0oHB<{LJ4gicTA#rNEMIe_a757TrLWZR1;}E^_^ry zZd7m@qmO-gX?tjCbO!SC50O5a^VcXzBclRxY7}{%pC*h;u{pis4)k)uWtnfDhu_S$ z=`3PMU7|Lh43RwlODXCFTja!c{WKF6EWLrYyCkv<=eJrSyJKt%FPC&8Hz%otc9bPE zq~s!BRhc0P%5#PB4S%e`sL3mS$FM^-cRLwwtPL8k(@VbkKvBO_-FM&L&KDbI!FhluUJbg zyk2V{;TLGd)iO{|_-ol0A{`GyPkJXLl&GuDhG}y-nvW`Cl=LTIj;iZbWSr!=#w4$s z8~D$NU@;VBu_pTlNgevH<&!gCb zaV8L-A;ob4&*9=YPrZ;)fJ! zmj)LV{kD`NoG(}?IH{X~HiM#Wf!TC?3yv=OrG~VrPzLiftLeye9dQ-LQW9EUy-tvv z%jvG73qn|=%Xhw2ZZBsYYK_#f8ABXK9pb?s$(+-96S5!tNRdQpPNNt#gJ9?K2k{ng*%_p>qvgCgh#8GO3~6 z_czDxi#OkY;&>G8FB!>v5pfX|4$PQx@3cx;Ump1>rEhV5AJ)&~IJR*YaI#pz++x}? zn-3m{#y1b)pb*6w56Cj$e#pBNMFUFoA77ajPmjEHN0zWefA=|XboXT|ELOk z4n)p=yW+cs~MEYV<5-{ZCC0uPjj-!9LwJ@A7&A0*ZThQ&5yv04$Up?SlEPM)9a zKT?pL$-u{P?0(1fzN38wI=pM=*bAcHet*a_10W@!;M&wjLhPB4!}`=s2E@VBlPW zVxfxtX>TPxaFGX*$Ku93@PjYU$CkBpXHo9yy(|rq))EdE)mKQZ#q2IBhF`PVXSh6D zOt;i;uZkKYhV2M-mfQ^NsJfQ8{fayX8g{AX1B+{qln0MuYbj#4vAws7MLl~`+O1x! zSifB_A9yL7%1YaG#M$ui)JfU4Po&+ppTZ9x4e8S%T6Hjy`%Og_%ZlIbIVy-Vfmw8&h!k9jkO$X?bh8{z7i#e^$JW&Q)4C*4a-d;H|goEJkzs(S$|R* zT`Q%YiX7M1=ZJaAzvaI-JC_Pl#xs~hB_D@{(Of5+77At6k=bAq0 zK`7}t0+NQDlogT>Iy)t1VJxyZt;WDTCZiA2$S3rZJM@!JC!I4VIWr35pA^RL25DaJ zG0opGU5-r$*z6s2w@e40w*2_|ab*$S@w3o|!TQ(h&PB|Q4VnGzePQwhqw>N?er_2uYjap0X4o`IMxBoT>e zs-dfHbL~KQo%h_QzFI@v0RQMZ7i{b(rd3z`^q8?~SC|x*4orqUH~7&-_9YBg6otNQ%BH8#W`AzuytM zV=R@Umr6bDrq{4t+`m=UARN^{_QmE>FiH5`F|-i7?l}PkqKw#;hT4`j;0xxA_@;_A zy6CkpMTA8kpnSXU8jabf)2f?Z9@Q7SAytVCl7@C8UY(ojEhE@0(qJ8hXv;x%#tC?LpSD{a*q$baII{`!JKFQ*Q6ymV z*tB2Db2%Bu(5DOc3sLhFlrLo{m?zyNH&g&*^y>=Z)v$Z z#E-?_LNLGc-;WH^mAL>y)vE=JZup8!?H^qO*{brKDtXOd3Vb{@-s7#Qp-}jvF z2$?tG$x7FS{bUh?0@vNgCUegw`@SnjWz~FZ)8SKZtvR})3Hpo=TIJqS3<_ke>vD1; za#q=h%&EpljHf%*+xC%b1F&?8K|v`YjV@4pf!LNJQCi?zWzg+Jt5+(Q0xxc#{W*18 zn-prJYz;R=czxLIJIovawgneTAstV1^Fr@^3oO@f@ z8s#;D`;s%HNji7SfPPB7HjPZm|Io+IEP=V+**H}Mw^h-J0ev1xG!b%84ZKm+xm7fV zB+fK+6|$C=MVKTSs9}o!O8r)ynNRjRBofcFdoAuOT}3o8?3y2=kn#W7{}qx%O{)?0 ztD%gN)C@X3^JRVxnbeA}*`MgtW+Zj^^q*A6T3vAzT!t(y7&QwywcDus4J97Ap z6U{7IPmsz}^$cGK$Rv_{lf#t{ck*kXfj@=PHkMl{5epJC)_Wd!{uBl`lNgnBAY+t2p zJm)2N5Lbl+YSxqV&HhuuV(&yR9>UV-{>%(?q)&~nO&Q9{ zA~e4^B`Xu~9whRqayTT&k0PzLv}K?qWzb>JTH0Y+VrKrlq66@I#ae&EEt?ZI*ilN@ zCEt#55GR?;Ne<&TTpljoj|6n~&-Hzfs@G*eH;P^}nq(Hwp^e@St>}@Nj9hi#M?Fd4h<^Gz@Rf3wWDgp;MWmAES1c3?r2vdP?5%k_? z#cZCKCn?REakafL+3fQO>8k`fBbVNo{0M>X*%lV;BbXzRP2s=k8t!RxDe$eslhexB zr!yZJ&?idITSRAlQR8ydj$Cg98I)Fj`SSGtPmymwYZ8k zED0DPkwA!k`kFw7@Zo6$S|TW&E`&^jCEdDiCS!!#HJ}CM{pT6DhM%5?mEvsq(7C6k z6(1H@xwTRA*X+yOw`=)LGT>NV+mt)NW$-NMIlZ*2^89M2yF>ve7mI_O&7Urt$MV9R z*dm7^PfnsHx}#`(Z3=fG$58EFzYvXG0v-&)uF&rk22@JdsSbaXX;&2 z*D4Iht-W)qu)xZ9?pJQ(jelP|XE15`18)6%8tinH-R5ToSOg<~Sp(%}L1_sGc0?e4D5b0?4g!fi59TVRNX>ZQ|xQoxq z@|KOh9P}RVaA1c6gJu(U{os>L^4;4KRQRXsXA6YUJ%bgNlrhoUa+CcZm!P_$tTBv< z(V2Vq=4%(to;_V)R>8 z@~_h)Ou24fTc*-KZ-)2FX}6s^!j^`%`zqC97rQ`&zuN`>kk`6DIeT${_XEB_AoH_Q z2z96lKA!H&w-O4A(W_%`+32K` zk32$DryWgm@#N1b;q7SR?+hRGs3KR-JI?KfSD6Ma+TNWF&6WC)rv{qc^jSn$_>91P z0J&h3@t+U0etddr;N&;e(hb*a=mkeaB6W-Sp4o+IiIv=onePDC-&ym#tG;gbc&1BA zxN8(QPLd0K+IISDw|8T$-Kf3g(0;sdpa5Bu{VmE`tQWyGLVqLNh7Booa>$VTq(sRm zJ7lfsDDo2@0bZ%1t1O$v$A;*|!2Ei`Tl)&4oV?6CCe~J#C!ea8S-ZyliQe$Zc}ho~ z2kYb~K6QHS^27Z*lR7B5n|C>n8!tDQw|?|Na#1uvRFPqNvH00Tj!S8|he%`9{%idM zJgx8Ya6v@K1&6#>2)mxayG)8=08CX-Tj22lQ_l!l`1EN&OS&zxl3R*`;IfZX6k^d_ zf##6zLSw$K9fe2PY;I=(Zh~YP9-&=u*%Nr$W$CD>;RAe&f=nd~eKni_b`VIdus@2(k0rcsyvHFtwLW$y zb%?NKv5y!U-#GhAAI;?r?DTlM`?{f{y!4tjyu1%=$fA+kYeq@LLRD#!x0+M zXoZ80ZA%!Ivi>Fg_*uYMV|c(qBl@x%u4CiRAuZ+Js+67?{*PSRguv&zGl0I24W2_+ zrovC7ZJiZ^S>D{19kzFVZtQYQUy?2BZ??#=q|hA0J6xUh zCsmk~S?RM}Nw5j8$=`-t69KocmDN(Y?+izWx=G~?H*!h19AsRFxM52u{ZZa$%v|hl zI1I)L-GiZQk&ac=f_G`Aa>^y@>u{6Zo@qx6nV51~JA+ycvz#|RjPC@E+2$=md}{e; z60Jd#*W}Ogk+wQc0|{wK)0J&AOMTW}05`@Gu1F+Q15bNWGx!2vtnty7FOT9Tg`=K) zQ$DD{nezCZzuGFs|qaffLX|Zsco)`=OfSUG{)nB8kx%yob`AZbFw6q>MfXAF*mjvODFRRC9{$0SVEXr*?~e z4Hu_2{+q?`m!290<~&c#6_5LreRkdKLz;|yyVJdYHQ{%k{k5Lr!%=*H^;u@ll`bh> zatihFv91eAN){9sAuS$nVmF*uLx|-O|-0iQ)7Lu-eo_u;I~C}*H7V^xNxjE@*>@6PX8r=dnx;C z?cQuzh{WUP=#hb#iVFv0PJ|#l+NWv8y(VwiqJ?BXnFPMCudjbP(?3Hq(>K%eQeS@= z@6eR|bzw*tX}XemRBg`!AthRDYz$fqmol0%*C^U(W)rZ!xBinLzMkn4aOr6l`ib!x zV{>zJJ#F*TCBkQ~p95XKF4Phh^Auxt$4n4y9v`p8oYE8vLs55fOS08wN*5Y?Es7T1 zWKL$`vm$Uu<`3zGZEBj}yBS<3XAL_c3Uy>_jqoFG9#6*a;EKPB85{8}A|Y(2kdo2Y zzL&n4DbpV(_nZ=60*6JvcXyO-^G__cbdVDkT54LZm+|Ia3N>7I7x%U)8S_B>7I`s@ z>wW%p@rV{T?z!*H#gW+SkK*GJ!5!_-FQ~a^EEe8x(#pnCikgow=EhP9_}zs>Br>Sx zYzez&9uChA1QZkGr8`^D>1PV z5ixE4V$V0bgL`|!72>Ex{myu=Pr5YJbBl^B%*@RpV*c@onVG4NXUURk;FpD(<+I6c zT-ZB&XsP7K`9#ZZBkQMQv}xH)UK}5EVyHiC1im8mDQ+`N)g>^Xc|By%hrcXdwd8RI ze;Qix@swZEVUQnywlaC?f0@(q&bGt*vab%CuFiL4h@Wzh-+CrZ^{p-8ds~gSwhs^R z(}?l5JQ21=c#FF7c0w%6%&g0LDvj9kjWEjz!CP#kUG$Tx`zBjnTTLYt zX(;T8(c-qt>h$d{6qAI*=+|Qz>8JDdgAq3F1qG%iC#z9Ws`4JEIwmIS1nSsrDG5WZ zDapzP!@~pBM1ZIBn$``)mFw^tYn1p}wN)2k>at6Iy?OcXCpN@RnJ+N~j0gO#9gE~h zc;Kurvj|p}adcXJW}1)lT3kIFg}j^LkEknN*TuzNeFFG{|wG1@j zvm{T@%>y%F2^?HJpW(OGZ^*Z9gctbYoJ6y=a8?pI&)z951zY}{KQU#;4u8{~SZ&GO z3g@WkEOaTONt8h;&+iZyQ8w{W?Rg$q72uST;CWqAD4ro1;?P2V^+LI*yiq|C zOAZ5mS9mC0-g&g#3}=r2!|*8<^&`tmvl!c9$0>XMx|l^w)8%JELf4;cHS7)LU}K@h zQf^IQ={Nkk5D#uC$(faG;Pw_i%PzLok%ij2UiMq8EoOyAv0V_T)FVVbkX*yQPU#Po zErlb`)gVP(%t5g~QNRFg2Xg9IqwCem16oWuMcub|>`_w-jnbq)>7!U0VwSWu$_njp z7TXo)_|47Z*W|Zf4ce=|$d(~o*EmTav&obZ6tNF{H5xX=@VOCj7qZk(89J~0K6**k zt|EnWxiO6jK#QVYx5H? z=Wx+DnA?ICw9XHVnq8qYDK`@l?!hp`BH34K9wwDsLoueXdls+2z?~U3vin5;-JNNI=LkJjVwNfUavB}E zvsJ&Ffmdw-ZK|$PUF4f*TnZp_jR*yDu1ra#vvAk+9)mef1yb|G&_!uuewl^rLbSw{ z*I7-G?XrP@&A=clhi!rUC!NM4a7d9AIXS_2!KkL|Vi&SlWZY)^;3p%Tl-6>}S}U;lW%xxfU;(#7@6*3CRzm z86JmK=>#-RRhVI$i@r{1Y{XS9uKs}gaJ@Y{y!}?A`?v_1)))-dS9iq1SZtcXj@zT+ zmA~9m77cnX(Q$*k*)_9Cz>8k~?n(>}OX%=_P40dj)&8%OJMMp- z1?2w6Q9ymzaX&MN2gK~}Gl4)Zpa>@?Cl9BD?ClOrUC*|V!zcWxlZh?Px(j)8JJXiG!5DyN_ zilG?$QSI~SR}cxUV!RDrkvv%;0D5{Ek`9l^e{uW>sb8+_=;>jl?s@qZ*Jng-;zh^I z3(+cn=5PywSomKSfcNASMewS2hYFJN-9(x2?n=+HJ+KgX zhtxlRbkf$ic~v)couE4kFd_0TLVK^6ZCavh>|aKx8L3&RsPRJkN`HkYRv^?Rp)gM^ zOfMmStjUn+*sRpHBjqbmEW%uEMumC@x7NWqTl1pA&RA64N<{wWjQ({{sk5aQpOn0g zSXoSRUIf||i9ps``HG8Xt=SrLGz;^nbBB>&3K_9N!2*b+B2p5P{EWm&hcLD;9|Mu7 zw;s@dwppR~-M%&7tl(78lsw@|Q>%BxvvR28DZTD>1fVd*zOdML?gK{JGIfpBiRSG` z3Rkdo<+j>&`9r>5KXX>nwtnW!RE1-ifwon$P?-nxT;f1>Cqk;o<2@rE2|ankYT1FJ zG5KnR^2aBRs5{j&p9W(N83m_7-8N(_0-F34RU)4d2z{wooS_ITpB0Um#CL=t&^sH= zQSt^B#AyYxn=$M1WvLp!fF_#)k2cT3PU@t5i4L7NJ;Fts&g$L$vgk{N$Fn4w&Lx%v zPng^_Z^#-nWm*Dn$3)mg5K)n zioW~Jz{;T%ZqnrZ3b*nqTwG?XWUHj(WG0pbDC${-G2k$YMY-xy6RfjrGtd!COlIQ#7Glhv-trn$8QJyzrf@gC*SRK{* zv)bU`h_k`4r`P<4qRDI13`XUj4sTB$+h=~6{C)W06Q7_ojQ@3Z|NfuOe?7hbfAUdW zfBswZ|H4WArugsG;O650mz(0@75M+cP4Nl*&ktoUrV82u)7TLeca%w%uN-s)*A*7uDMFqTNTOX=RP&@OF(eL}asRiM^EhiOzIFpK zvVNUGj;a>+;j2OMPKDvA1uga$Je^&JdqoY1SCAHe{*;>dTSSO`9hN_9cwGM(-_7(x zj85OwO38!Q&lg{`-solA&KT9ml`GSJgIFDF__xhnIFK__2ah}5DgpM2TI?Rs?KY#a zQ{uY!G@70SC&X;orcoKa(47-<^R;K5Td+uuZa*r3}eVH{8$Pru@3s81n zD)KxpJD|fOP3llt5$(bn;`iZK61&*VUaN7s3?U;0kU&QqKj%p^l+M8@RyD|X%`CX^ z+Dm!F6`JaD!?y?lju$_`l0gXb<26!3Z1N-5ZJlvbQ{-b8@6I2BB74C7_Zu}*-${qs zpWL~E;H4shhvKAYq%dY~-+=CW?kB7b0~2I7gYyhPNpFO2zJMu1x$We{aOf$~c3cFL zawHd5?*)^@pH!)MIGc)_>LDq!c~cz*CFAFmNydTFyYWYE_DzW zQb&o=M~k)pikCbo$>)wA)?P4jWq!v zgFxW(f#najWR2S%%o0NAHK~fuA=2<8O~wKeLO*^+ytj;c-Rv|PM5U4UaiJeGa_FT1 zi-eFuO@kj1^lQPgi%OJW~21k>`iV-pJ@XlBGo~_Qhb8!ARZ8 zLj`K`q?gvO!9f8|P?;z&9ekXvR`%OVz->$efV>>;JVsIo5nwM7)V7l+UKSyti67!p>Gtk~OzS^gkfSHJpSQ1wYgre|_ z7G!MuG4ajX{+sLoCu0aE7_UqIBjFbUz-tC*)+QPg{Gv37MiQTxcPA4EIXMFjz>z1Y z*^IEGG*)@oaQfE75ssb)xauBw96n70-gx^yuN$3Wgdc+Q^YWMAjxsg{B8F@) z-Cn1he8ch!L5}iPhi<4N4ZXVF-5gr->Hvw{$M*ESLj9Vu-Mj5bN>#2Vnf}@Htvsx& ztj)T?PboMtLknHmBxzpBC2)-?ga@%#uV%R#eU8%%4(p&8@h(C}be+w6r^M*8UC+2Z zTW4b&*Qo)TVp)aYFIS>KEI#U48}~e6Zft38=}0r_7GLEB(M^-h0-7Sd&^{SYUjgDG z*}c(cVeO&oep!Nx1FiBe0Z4xY9pvnv@3OEZnIb51d|GGe{K{niP_uF#-!5mw1Tbl(7sogvykA|{q9n5f zZ%h;B79hyzfd-J0fS<-CX^J7Bne#W&kAx^3Qk&y^xXS2?PwWaqos`7mYma}niOS#x zPAQcT01jQ>fx{4zbSaHtQpqPP#p8*GxNu}5_%K5=#*jfHM+@I4m2*qa1<$o?@GMzm z%ip~Fil6lUp+N7{R0mxqB6%h*@4ZsZua*V#uePDGAg5itig^4<3C)I$0egZ-0+vj# zn|+mMKlWJyKednDKq&!8BQh`GA?ni=;*(cv^Z+@wT?D{xB~qwoa$=Sn=$3>iQYlVK zjg>sl!SXzZ~4l`GXwL$0Dp5#LZlym-lus z!wFaV;JDH`LrD&Qcu??>K9KRE*fYK+A)Qw-O`w-&k3Woq%j#mq@i4CK*{H_0*}DWxmzI~EEW znOC9t(He2(R1ej9Z|zz0-mbQ5fezM0%%PUAdZ@**ZqY#Z7vIT`62SmWc*rieKEeb? z@yYbze%XF293+~N@CPCk=JSr<$5_*}e*ftUGEIH%Y4#Rs$x}tj@NkZk3HEDTs8Er2l~5(Sh0hZ_$uMe9 z9nY|G>%cxEH8@2T;^_D?UVGtry-l_p5-nR)dGw$!Wmr2ohZLHi{aM~H?nj|}oFv}o ztGL13-6imk9OCRKB+$ylm$RRw94)2k!6p}iVgY9!$bHbfCSNTOA!QVJ!e)^KidE`6 z>E-|r@uMr(J7*F!3gV^*?W^n0=edA@REmml#29!%Bi#Y`n-NH03 zpmQGbX#mKX2hhHV{Bx!$Z-f+sApB{~G(u8Dkl>edp(K@1$(jId5Tf;gJG5|<3s+{Y zCvPK0`Wb+7Dqw&Y83Vf*X(t|TreD4b17aP*y$5}5?MtM%a3pD(ffDLMM1-LT2mYeJ zlnJh9iI+-$jzk}Z3l5SjBEw)sNGW9n@lp+W0Fuad`t#mp=|MM&StZEg=aGtdb`; zrUVqqiFY%>0lvkdQzFn44~wU-2PTkN-;(6Lu6YKq?yj>5<`$6b?qV|rCw)A>-yj1` z6M{ciun}Q=5G2LmflWG9jHAmZ=*SO}7C4II?L)2Up`GuY0ZCAV&>dyyesClLee0k& z^p@E^yE0S19hH6w5pY4^=7kekQWUPD_CyM$hoH^?|pf{Imqlp zFnp^5+}vjYHCPYgwgQWsMJqx_J17-PC4aRvzRjOdNhSt;-O?y=Ac%~s-3M>S@p`O& z+IkJ5`rw0uab$7$jS&;_S-b_Uq}|^54R4Y-TX;#HF zz?EiB6tk!X7Bl6fjEO{0W!kQ|!P^`Q&fqjvWBr+VPQ9w&+5!oEo` z`^p&;C?|#b2N>Kd4i5cv>7xLe+Oh-(S1AIX=D{|Q{^SVm^v)eM7KPQh~q4$O=2CVLz3glrxbEHriSXVU|oH!;+FV2Ugzesh?E1MSTJ#r zO37|w6Bd-tP?*(gScT@RGu`V6yRp|ZDg|#%)nWlgO@w(%Rwm5uwLq55BNFkMZUKtq zNs-{jcbg_`k}XINiP(d&`0NC>dT ze1TF1uX$rET0`j64&hURug3mjyzfgchf+fkd*E2a_gKg0J9wAgg z4Mj1RU=YSw4;rm1snGPOlXryzYD$_4(xG++`w(HgJReNFvKp3;dzkFXgwmxjC)LO6 zbab_dB=H(kKXbWdmn16(m&)Wa%X@;r#ca1_STd%%LHT!R7#7tM3aWBEw6JuqwnvmY z7zn=cwe^G_%9GGlKiGrby-9pN4?Wicz24Lq!&xE3Ti)}$1U3cjgL}Q61rtn7vZV-z z<#SNEzvb5{kwVu3W%S`7cdSy7zBPOAm6jWtKQc{_RQ5t=YF?tnweUMB+7;zE2~>$0 z;O0_e8^%ieYchB3L>E*5I!4HLsF8m>-xC?L}y`Oam!K)AiB6BEb zlpF&(Zi~Q1`iM|*YA}Id61;8A{{Gu1v2f!NQj<*x382w@AbduAFGz*B=arJ!&1@bRvv$ct4%~m-^;wx>r2}p!?z=z9 z+6vpeHYneWB58(S2s9Yf<-GnBy|!Gq#p;#;Wc!^xR%`k?GOw93DZ)iTCVyMX8GmR7 z3VjhO$%d3f5meW|V>+=fs~M8eZ-(&yF!vrnQ8nwnw-P0TWPu@P5EwEHl5>$(>V4Jyuqdy6?n4% z^6HvB=I4|A5MFU#I zj$H+2vg2$^E-|g=s?vj)%BgJbvlTnJEiK7RQ|c4i?CEL=WPqg_7{N_A$5! zqD{EM+FBKTB0BDdQfkB@|uzB>ZU~}055)$!N zoS(#DyXsw-to?9sk70Q(YAf?m3^&>&4sQis61TstR~NuGCKpjga5hJv{idIg0&r0J z+OapVDa#U{AGhy~tzs<6V)lM44+UvwHW?RRZcyEn#(_qu{WT@7{yHUYvs3s-+g+62 zS<#jx7pRMn!u~`IKp1T-za2t8s8!9bXCgSuYpRjgNrWENjpo@Y1o*x60$|u&DQ4g` zv?Fa_`plY)Yu^4TFU}jiP|0ZZ1$&_`Xk^L0^k=1CrK|F@b)@Zzv7iH2PFzLaaSGON zP!);PB@H^qgjwK`RXr~G@}vyKX?$YYpD}4h`|t;A8pVR4nXlCzm+od+FXczG;Mm_* zZd{so#A9ddin{x9H!b$#8FwKt3`4;(QSx2_HFsIuW)DHsH+*c|p%T3*d4&na4C%EK zVYDag>XZ^NZ9H4J^5WVJNE=F}p{v#MP9-Q`h{8o9A7j`r9ygVl06XuRvvNoO$EVq_ zNxZo*9P9)_S%N2bR6xZLb$?=;dUd$KY#&STit4p63IbT-bl2#|tb#%t25dG~mOqNR!1^xXOj6z)ZP5WUOJTlb9#iaDv6;hF(ri+6{-~j7!<&lgzQ{ad0$m)OhKO#m-g$&od^xE@c~qo z0pQqY_gFDJHR`Gr-bOCgDyY}DdZQOB_Xh7gPx+Kioe?qHLC?r^nPF zliKfDs}P};-jYa+4b!p8ORKc4rZ|#9=V3{ip9^WJsiR2 zn#91>zQ0O<7gq1-68_dvW1aRvz5y5K7A1zoptv3KE$~Q=rH6njM;TBh5j6iWA;B%K zvq-YS5*$#08Qhs46RtpM*ecxp$i%}(H?xmv4eCp3%XZExV*+%Drc2$) z>=bb(XR01?m{$^Zb5EU2Zny20Zam_tB@2mEXm-Pw%4Q7u*S2~8PaDFO-;cuJs}+_1 ze3$+=1q?lm+?{`MmzablextAc3`O~!=l9di(e$)m`7N1# zoB2EKcgo*v`v)8T#!XRFSNiq9UzP&@ph*2T6`gG8p{lN=ZSDDYD+QE{(by+JK>_ql z1Bj2Wz1uG;8%VG+r{1*C*T|1AM2ps2`iGST0#M(Du#yl%$p zceJ-Wt*M^quj8z9S#WdSnOie!h3%sly360ffz^X7hIve7d#Ojv@$ScpX2CwiGuC_~Sp=H`K-@yDchQ#;*yA4bG=U zb#8Cztn26R#(*ntG3?F@RLm~o6{YC*^}#4F2K&y6zFll)fBh<5a*{nUf-7)l^h0Zn z`eAg-_=DPG%^$~)Z`TS1x(o`GZuN}cTb&Sy2vuz_5!mHb!;pHPwwpYD5<|7at0sO_ z5rVxL)74bZv@o7?LRpSK&YZMBoW#gf^k{F+Qts-bg+9BR8s=-AlCZLSZSH0BZkmr3 z%-_&^+O0Z247zuv`{je6N0scp-p(i`)2o&a4a}vU{&8Y7^F)T{!+R=F8r2t;fq*lC z;sFy``p-{$>tVA$ivlAf8vA4$LJJXEH7n`;QMjC#B4HAW(uwxTCJSCSjNwmKD-3QI z^+wr&i04~0_Ir4eVo$Ons5&sRayIQgC=58iSKsiKQ%zL0B9oHz&KX|8Xi7JLdC_g= z-s2@9u6#zgmQ8HDb-#ok=lm8f_*}w`&~NJJ^GY{d3e*XLMI&56Wwm5@oh8e|kEH13 z^=(&@ai|3F*61Kpv5evZ&Sj7N4K|C)gC;@>8_4%FS>AkJ`oe6zi=+_{!G;{JKmI-^ z+cPou9=Y02Gmn|~?CfKu6>)i=+Qi2Ut;V>sQ%LoVj==74A;xa!rwU6Q@AEUh%FZt% zVBB;Z&5KO&=2S4IOi(M~|BMeM&q96=m&BFnI^K7(EA^)PS@82{Om$qHf~7b!>ZzpD zPr^B16GA?yr8^^u<(i#e=t!cw=w>d757h}g;*ELw)Xidd?(_e)Wba8B5n8>MnNlopl8Kx&{0je zz*(uev1K-_Xe<#quuf!b;e426Zb2m;Q)fAZI&ScNA;IZwH~Z*fsZjB6_x zr^tj}dOlkrX1tZXN0BGzC}qzOLc-un_8hC4GMEUXsY(FLMg9%`h8i(A;dDHO>wy(3 zzY>R@_V!19xdRSi0!=K2*EycN%j_z#ZzR^Wi_P&q`I(%h$+eA`x0+%%1u%K)c}y71hq7%QZF`BIMv*sPdUM|yk9&MFjZ{_r}Q0B@H)(jB!M~ zV0j3CT?n3;$nYU+t#PrtbDgG&E~&4Dey!k@ukNQ9@{`pn#_U0es?&EffZWWI;_i9IXD>wcum1OTx0 zV%}<^zj+9+`qF@m6l)^`t2kg#UdWZ~lWZowo^eF|47-Fs;DUN^P?RJ9HgG<5HWG)a zR~SirX;O2io$G+_le|~m_Qx=r4HaEg%jeLyDVN2gS5SIid8a#`759L1e7=v4_>QMJ!r7Z;>QkQ!QjxRa#SB)W2A88{2kjui4 zQ){a~Qb#m|apm?rdFJ;J^3tu>E@WsFBmK!fVV4lrr=k|B$0S_g?JXl8hXg81PJ=vg z5aX1_T`#vEiZ^(dbjur?49Va=NdOlw4Q=6VfsE^em&tW3@b0bbQNNd zH;-ZABi^^EQ<5_WgSf(Z-i&`JHGSw7EJSnn<+9nGc46OC%#Yrt_-+9Q#aM%V_%9!% zQ;H(qv->WaIb3$4Ka|8g3xR$U*0T@U@Y#TKO3Nv-PQHreIOix4o(8V&WtX_pH>97* zN^-?Mm&2X#zOGeyV3{!VVDcND)IOOO#d0W}Kcv)W6;mZ6@{Cb(L#>2;TqnFY(YJQ~ zmK?dCGJT8L?lbC*p+6(8=;ymO>Wa6qw4WkmOv<>8c^Z1!@wkC6K&WtUl+{l(gJIs{g{@`s=L) zMiH+s;s10I_#3+XKh3iS{>xIY-zEOr)ex2t{5Lz+V&eY^D7-tP{k9M-NVVdpx-W?# zj;9)FS+_>yjqUSnpr$3x=nb1MX2O_!JEyRbK(<$3(l?1qUsv1dH^hilfg6;-O?`mq z;{az}&SUT8+pP=)65rjmq9RNIg(OpF6EIhrRW}+vx9dx$Frvrlhvx&j|p*QEdpOu zHXglOuewbw7ai6OUEbIZjm~=`cy<3$_2lgqgWi!X4f`2(i17iruYJ@b>e{vwF>M^3 zjM324^DzLfc!hiTwChk$#)-u6*9ZJ$7k-CzM?s|v`=m)Whl7vL?GMSPQVUuR=A-?& zKYSRf+@lFyglRvhg9bIE-u6jNtr0g`S>BTwc7IgQxZ<+oMZXAzqNr4*cyv4dypZaMD$%*&^~_2<^7 zoj2+St5??{x~J{2n*IFbeTkD{JDcXG#DNMYXCUpx%gO-QXNPaiS95(ASiF6edmp%B z#I1?7`TYFarfPqhmg^fngr#H`mIXEknf^#}1#I_-w+~z#;x5>R{FI@5;qz6ovlBmt zq+&ZG(Oh*OpM&xHWBN|5vhFKlsL;b`uJMx{*VxhOmpFBoPdz)WejdE)3TT(@(|ji& z+tj&o;jO5>pT9k1DcMa|DKM3|6!gxYPgby#ujj>*=up^pFzvN={ozl7Qt__f_O#38 zE23^j@K#fB=tB2?%BE_H_`s%fpx;jD)M@NzmbIbjldxN|fdzX1d^GrnEusGb>ulg3 zyGj3o@bhA3^WU`077`Kqi-;b*%%0V*D;Fch_2i@CLk|b>9%3qkEYmhQ z_H}YPq~)`u@g@4l^(gA`1@$Nu4|&bQMa||b;dfrMX_akLKbHTvejr2Ja>@>L zMkjnZrze9srzcR+ZO|{VKkv;?cRh3mQ;OHm76=b6od5V1{JVss=W_15pZwRyyCx+S zx)!<_gH45*BFH}{c)N(xIK{4AaUIis72eVDzzZIo?I#Ih5GD3-#)%46%tQi_SIBo`-Ft;RcoHA_A*H&~#C(8)O-+H@gci&($zSh1L=ua+uP)_F z(l?bqT`7m0Pp1o*-TrN}@)aNVEin@Dux3AcpTxKsF6HZEs-bW5)J&XA5;kVZJVP~W%k@)iQZ z=4M`Eeq!G4YtVFNc><^C=Ramq^j5Pl;g5{?%0kT|-gld9l-Ic8R#I8kZhhNzenFIZ zw-Fvb!!&~NfFDOwx@5?&NkjPlphMV7HcO$Qz?9?2!<9!t8F9|Mq!)_j}C;6_Ay?SDrft}0qqTlbg9g7Yqel8uQ zXyf07-McRVB>s_JkmQqY&O4et?@nL2li*6ABb`*FdIE*7d5ssL*@wJheFvD-U?0Uk zehftMBG)qf$rM#?ggPMPs{c47kw<8<2W_XX&kMo#XI_+ zd0#+db~#2n*Qj<(uM=3MN3$))=FjpoL8C2^kH-q5N$4XA#^!^UE>ALsNXV7~ysylB z>X7}O2xbc(@9LWmUVij8#D&pg7Ka%=H$^`wO?A6owN*^K&0t%Ty#)JEJ#v5Dx*uOq z01CktA7C{@nqBN>Oere=l$9_|)$DW~AUCX0?UnUvs>*L{@HSWp%{jaZ9Py(R?^?HU zJI(kCJhfz8NS!~0H)Eg1dWJEA##VdW)sQJj<5dTlacfR)F`*5F053~|j8##VD6+o*+_MHx1S zX9n}DEuBD)vQFean-JIs*y=N4G)9RTLsK{)0K$_Rv>+S{_|$9+3ivve`5=PQB30XA z=va^skQ%_5qHFx9V~KdI(N5rb>%N1cuA!HCHyLeK_cy1g#LD5#Xq_C6VwH?2`+FSYgE*$KftUNQTyjk-x zqlSw1zC(3u#Lm@1-nPxx&h?C}LGl4=+YZIxbA~n&kIej^FXOB>(qqMe_G#`@0f(9HY6?pu9>oQwSwANgh$z9mGjO^} zVr4vW{BqJDF$3KGz~Y4~<~14fgM+OHrSrohf4cnbo2sVIzz$Xp?Rf=|6a67on$FO$ z^~>FJc8*K#u&wcew!B~0`R6=q4fd4%iGEur!D`{TiT5Fcl#%{DcHL_4ttOW5NW47d z)r@?+|9)9n-dkIadcbmZV%2J`MUqmBMpe~Tap_Y}`tqus0}sMh(mAOj+`7BPFnI6H z63vsRWue_4bbGlZIP7FuS)D8O9C3I65@+d=%#CfMOS-*ITw=k#aHoVz0mKvUP^5~;{zR&U!6LGQ%K@`h6<4dKN>SM$A zw9Fl2^hAUb_XB$5JgFZbq{wwx3UREiqYZAgL3phD-%F8q(K#&fT|e}U{bXVr=w#!t zpAmr(PP@P5E{Id@y4;(x{FO%QD*2_bj;BJXwb6us8q`%-21p95vXaO)Qn5KCU*%F+ znibUx%*0dmE758f{Z2uDZ>I%E7(MXeJ$H2~_IYMgomAnmLFGq3?;({>6xsQftsfZa z7R}J=;^3i?a9@_p^ig`N`%g^wn*ZQG)7#6K0xzNDP=ty0l zO^+Pj1+DM|HN|C|sd!Q)blKYhK5PaweC8q~9LoIWN8qv*#3aYjL4EixFD_>`ZCH${ zXz0q(q(ND?QZ$$ea90c71yg5(JqRld*16NceWxdj#o z2!d)N_IQ(=1R)sq*t!bwd82}>uEXw9t&aWA@W^kQT5Dx519*h4Z?nGt@S2|k=Yd`2 zG>tp8@i5bAk^pT`#zfc0^3QY7ymwkRK1qDJ>icsN#F5gKhvyoaMxlWf&SqXJ90D^_ zhA-`&AowJ6GSv4pRMtXn+c+$)sg>306glZiVy*jkyLMODwR>R#Xo_g~?22V{?z}a} z@wuaV$sHgW?f5hy$qktC)KRz*zuWv(cTOW*2EUnX$8GtVE{AKgV74BtwtSu(fIC5&qD!Vr|zN0@NzvoNhpVCDnR8{ ziL1lXICk#+M>ST0xD2#pKC>eEHNvD@Kt){+i`VN~0Aan+>YSs?@B+{`->!2j>}j^V z2nBv1X3Kl{8_(BMO(*4FggyoK*}H5LmJ8bBV5r&|!k#3JF?eyQ2=oQ22Zd5tuj0{c z6V|stgzsqXYDPJMWVpeJC+_davb z7Q}rxco-4yk$OW;DC9goxVylBbF*vr$jyC}$N=JoGglAm!uFY=?#SEgnb8$o5a^>n z&HUD@^};HpVBf>~Q&sK(`S3n%KRuMka`ZBSb^mLgH6QL;i;%Sv9r2jz;s<(%ls((^ z7UAp2;UijyOG2M)RBqc&V5nyh7=qnI>$gU^U%WkE&#>5QA+8{6cRyrdn0NTbFZz|- zKcBJx;V_loA^*QA0)9(6R{-+6woG|icSzwiE8#qc}jZ|l&%s~G;bM*Xc4|M#*6;2)vszv>B?g#S1e z3@vMr{QcWsD)Q&h^#7Ht;rCPiR_Xsz*6_b=i2qvWAR#IFcbx+et$Fy9%t2h}f5{vq zBnAJM%t1(4RPw))IsBn*koY6dAKHdr2hxe6r7WV7Oyc4~|4G;IyM6!Me!tJ7`%A6= z2Y8age;n)fFL;u_OZ>O1AtwHJsl~r*=R{aox0o~)X3ab8LXIO%vvGKwG+p~&)7RxRJ~W*k zuvM1GD};=wXzlNR&;GVDu6JdsP*7vzoX|E1!$!jaMPJd>$=8Mt@W*{1bv ze&n@1jQl=~b)iOn`^%e3QTlO8Zfofu!w-e1QIaRglugmOoS%}lj<`_OeDYjrj%{>4 zEF2qo@n3|6!~^u20R@X#OOY!CevVQWl9;>Z z&)U>-a)#^SN0dIK!)=1P%)5_@aIgw729r_7Rfgk_+u3 z@^o$HYHa$8Ht*^?9T(;H{LI~!&f8a7KM-jY+S`xHCf;@n$(Y?A`v?lXN6v9a>;s7) zovTmjB^}P8`uaDwN@k7<3fa*oeHA3Y5Z+J)4b1PEj5bh(cCE}dOrJJE%ZtYxKW)-S zzbr;9-(U{gx(k+!4MA*w>^c76x#Fu;s1(pjdGRhmGupKL%QYacU$=?D5AJ8wZ6HoF)}Pn?fsU4}tk*7&c|c~#a6bARf27vN-0zq9!w z$W#7c5P6I>JmQ96H&GhBV1ua2UmA2M!0uuA90;~SW*Ap4|ECwS@M~zRc z_9ZAYb>ek2fpO&#xtno=r*~+SAh%bGb2SC0@MfLWameW79*g>v_~1`>#9-1{=3?&V z&B$=qCP3s5(bHU zVp)U0$GU|SUBS)uJRsF-TZfAg>HRh(U>lFRz1E{5Mg6ZuXC7@o0-qL|ZT-gx_j{NF z=dZ~MBn$ZdQ_t!55vl*}q5baz`~Sb-8R6f`&%d3^`Ik-e{|$NOcZvUYHPDjJfAe04 z$bXujY^~&Og~mJ_<#Nmt=93)0iCDt)DrB_tyhEog@FK-qMY4=uf&Nwzk5u(P@0EXP z>*oJeul%8Z{a5^ke{jqHEB8lKQ0(uA9R9l;2SL$)U;-6&q#VKh1`?U9IB;^M1T8{I z6^}KD8E9CDaPhD11X4`t6?-yTw|N%pSv+CFXY2!R&u!qCFItx%oMD;?zamTJalPxq>9TLcUm-_Es`iFueFR%+}%jj*rpO2fb0 zCkDLUDQ;4wEIL4DeR%r7Ky&#gxxI`ICphP49H1j4FF!j(0;1hwYE_HR&yLTi0B&PE zihMB|gxY2m5ZmTWZz)md8s`z<5r~iV-)CwuS;+qTP1iJWnnQs^jvj{y9qz|N$W<(e zkz)cIrJ+yX)>YeRx9(u(+WT+x<>$xg)CJk;#(cBa$q(LVfQa>L%YutQr}U7%jNKMZ zgXy-&hU6{F*YG!r&=ae?tw&NWCL@%MKL@V5btf_>IfXCo_GobNyOy_Peg|uTpFC0l zOVac#0y^9T9xBT7!09Mtel8{A#%??;T@5v+7>pfo4Sgt(S(kFivDBTLnQZ~{$ZBPz+ z=QsjMWc~d78cDR7u==L65XOAjgY2}6KCng}AJ`2_r*l?>(nFR5@)sjvV#}B{ZO9pi zTqZV71f6fqXj%(2J`@D;bO5q?oa^W$c0PxZvN7qRLg*ng)j9QUKB%UE?@xSgC%%zx zez(9e#+cr+_~GiTnZGqp^6e%2_qcEIp!maqbZWEX+em9s0s+E=Y`Utp^Xjg_L60p6=84b3j-xDDm&4Umd68j?A&?S^|#1$mX41 z)%1bdz&^-VJLA5VN7;FC{-a_!A89&bYwYHYXb1NaK~7(AAj=vU=PMN*Jf!6nZ@0)1 zL4D0U_3R#p&nS`>dR&d3B6vebkn)WWpfH=2O^*f=)>QN3gzdwOM#rw&?9uoDPB&LG zwKqW`w!MvxiY3N7T8ma6J>ILJicRT|?BBz{fhUBKpXiz~PnMBxGuM3robbkFm|9q6 zzUEV4e|Kg>t~R_NiKYHZG=qAF6_F^PusSu6F5bNpHngY&-X%XLu5PoVh7+j!k$2gm zRB~(WvfbxIQ8sDSshoRDTGzaY4)j*=yUqw0M}To?Dsqzm#~lTLG`yZl7-JXUn_eJ> zEYB4efGEpR9D5O+(J<1iyJN}UkP*%(oVuMdxO8jarW)^@Er)2zZ4HJ%AfuMtf>YET$F4^XW4tsl&kK{;G3yvlQu zd?+L&Gf1hw2Y#-W@YOo!rJ;+u|EHe>kVkhVzmY-K__Ei#yZb28?`EebCfmg5$pOlf zU@=j}$^MB3cK3^y%s+3OBro0V=aYCdT)RA&bFaSPasKk1hQXSLr0Kax4equpxAR-Z z>e_}5q6PsuF6hYDI|`YjArqcXHOx_mQ%g@#c@^C?`7*cGQmlo1EBRag%YHZrFYk%c z!w|AZ+z*_Xp>m1OErvs4vBg2~1$H>SEhZ`UxVN;&U}xa_S= zh3VZtBDlWg?!xb<<+%FUGr(N^W%0B0`VT)pXtWB%`d~mU@2&fVkC<4Fzai|xghTm#XkKBBk2bENiHDHhR#$(|d|EV|Mtq~sHS1u$MzB~sGmq41|*(Uuc7 z^HnCub9f}6X64Cp_z;};p^J+}MWssKG^k@sZ9x*?e{;HzMP0KOKb8Do}kL!j6+ zCY!yPPb#^Q5Pi7z^TucrS_oy!`*lDy$1)JbB=r?(1YQ`pH{~V29tXR52#E%L-~5Up znlUa{_$tdHZ?>0^?nD1W_DFMD4+h;Y+Qc zjBm>XCNr-RkZ;)ZM)vekeE5!z-yxGqq4vn^1Q?KAm$?#cTJa$O62?|EPHhGirQg1r zm^NN4s0FUnq7!b|sbMm@$Va~4wCzpxCCW}4@Q)b^X{UwADn8W&w51o-2|WjqvLmkq zG#~F|7}p^pdu2V@OxnfTUa7$kS>$P9#1GG64hUC+nD$aX{fL6$+|h>Dv?|Yhny`b~ z32U=>7$UvIJhybYA;i&*K8np&GaZx=BOSoW?(%)*8d3vvpK{d8IaEf$7!AS9V?LSA z{1k|?mna^Qhn0!6CMQN|cTp0(GvV=pO0<`}EX3wb9DCI8MLo><$FzEh5B4{6d0x}1 zvh3;7Cu*d}a`P8Szn(^B^Tic#oiQ7;$GSd2Nm|H`M8>o$s!&0z!hn|0`7OtuYIe>G zZMG3xU3L+ABP=F^%2Zml6Th@AN(iuhEP!2;8EJY!_0Y)}d4>IUDD~S6UF-u-BRojh zB1gS6NB!hM<<}T=ht{d|7Y5dyFDc?i!x)W`&AlobfS5^71KXP(WQFjE8aT1m@2;vZ z5Br!cvet3IF5fE!G;Y95HKi`k4Y|*ry7i5D>%l>s`*G592x4{PP=H`gzt zf(FfzSIKlshH=X(CcHMwe8L&jsrT4OYV1(-EkYTNey|)o_1vCylBzWqDlsY&Al`~6 z4^lfH^kx1qqw-@+QpND?^psxm7Q@L}INe|tNZ`Zh1-*)sV!$UT;dC+seFi&E05=cX3PS7F+{6{Y2sS}j>zaB2{NBnOrlR-oWZZ)tiCcjecyGKX)b!NyCYU`*athk=U~k^1*s&C9Is-U0Zs;btYd-H;S;Jb;T}CHVFFwjOnIjkj2al%>5m7vEH5KwMWi;qX z;SQ~j6n9+WEQi1__YnqOFF`E-BaMWIP8uIPRc=^4T zKC#=niy#oST8#qfaAJE2sev=or}IA_cG43lM-~x}#M!ez9_B%V1cv3_);}{upI1{4b~NhBnk%KNifemrHf<;i$);ovtasn!|OeR zgE;C30MaIH_wOWhhrDsu1~dorFR~RqtWgkNYQoCZAM{n<`}}qXl4hX+aMoXLqWC20 z-F*u{+BBm7Bz=04%vJCu12MB_j=B9)xbO`5YWf@-l1ONggIza8VV?@pg*mgl8cUW_ZvFN8&;-nO{qo5$J4j`U+wSGL9TCt_fav3ws^u2@#y1Gve_ zFkS|G>W&a(gkZ`_yUY(`drNV1(G-T|cE>X_lVGGZE9lS|N<4nTE+U$MKq}i4GN#BR zzu^i3lpjeV;&c)#6y%2o2BryM;hcH z4{7IZoo#WlWJoeXDGAbJbKkvn**YW5AO>*ejpT#Mot7BeNV`1MDmkS1TH8L8J;sAH zCB}T_KvI(JAwYqGT;OXn=kcIk&$OyzVR>?3=2;F?p~Vr@&d?w^KrDIRt`#5+o5Zh^OFZ z`Rb>YhiKsWrE!2y%{%V>Q#V3-w0pdAg#~ zN}sZ6vUDiRtw5G+FYZ-!!#IKNi5T{6X07H956kbyfLi7H#C@;#49N~ipDKtr+ z&TB+w0a9QA|n?GZ&3K8uYqAO{0S=EIoaV+2Bz z&IBJ~tt-CsrieMUfHS&{AC(0xySPY$okgdqR@_|(o^9qxy_w_mphER?xp&zxM!}#z zT{%4Zo6VBYPI7ie3+15}Xh#yK4DKTdNs=A;fz!xBVuo~J_JD&-(Fm?`BoWVW0%-Ag z=@s!euSrK_TNH?fC6wcPJhPMXsN@Um=;v6d1b)=yBC`h|`7QR?DL#h)PtWaa!seuz zc%VyJSxTJ>D(Qv_QP8X;ja1gISe*~*k4iIsl3@%$50sAZ?PU18^}8m`r2@(57DZG! z@7L3h%bB0TL79Y@MUou#ZAy!}OE4FD>2}q{J4ioX)D|w1=SZ#b)uwh^~XM2o+-{DZBvvrm3*+iK5zTkVGCV^?_=O=mp<2Hs`7pLv*(VQ^W#m zs^UQ|%uejpP8y7AoxcihF#Yuj4UQ?55GR~B1rfQt3xZGrN>UN4j+%DJTGv??0VRoy zSXq1I0ebNSl9o|kM0-d2-t)OQYZI~!3CB{6M zXP6ST@iB4qHJr})qU$*fY^REv8!^*I72lAdq#D%$)V=y3`9(QpZ>NU493Hhvc2=ki zrfg|sNvaZ*YmQX*2M=UK>|QL=Z?e`SU3^>3P}=2W4Uv!Wff7S=u{O$XtI5#rKVF*#}ik3DIUsCE4{sLfX5ZDXyM(B}@EN zL#z_2fvL*vs@w`-TcSuJI%{=!;wv9iIsc}@1Li#|zk+mQe2BiE4#2W#CZ8NRYm0Je z9rMrzcWOhO{MDcm?p(yt9_cV3v+kr@+Vl(b9_yGRk}?&3$cyrwsDhIlzTg;RPcNCW{ zm>{NUI>!(X&ibQ*qRHEk@M+)Ypq7Oy{YEI$7%T&}$p`Tb2eZ}RLFVxy`F#|=$!G(j z*MSh{G@bO*6H1kRZ`S*LbF53~WV8>X!#nFN9vZTwO|__OaUIqMsfaR}@S7@R zg}jt9^b7@ptV=;ygCD4auh1{v>oKPK;279`+My(CJ$XnAoFG-l;{}_?(s-}-wk-;W z`)!vRGz_z% zL87boI1%h;32G4|XIXQKYFe1r&gsNI@HF1y%#}ol-#d z3tw#`KN}->zvaOcXeO1nnB3B-eN5-xEQv@$)%SnIodg9 zj|aMo8REVEc)}E@I8dWHI7|yn4j%AI01aCAxIS2v14KDw!p_rRC=tlMBY99wOw(H1 zXG+wHW|O}C3A*PAkD=@WZLLzGPXcHW+ap4d&zPtk=?rQBEF;|*#3lesu~k2a10l%3 zttEl0HArixckspm?)-D6GNCIV)i3H$OS-M9+r=a30{N>2o@fq@!$wuUxsyOHk3fuyN}`{3LtBy$*VhZZ!Ou%5}| z&H<4J?ba|JN~5+Hg6gk9j(9MkUqdA*oNnlY?(TDybkHbeyWW*Af%rhR*3;f-Ck)OLjZ1tkw5!)O7EFR;@^Gsu8kWSNd&OpD` zsYX(4saJtoV09!>wV*P98Vd)RSA*0(kXGYixZ5jbRCzaM7#md`1>2_(1`~XBLoLOuJJf`oXXeg-*+YVSIqs?TLB z8Fk2q4?LyJdXtOkGO{=mFq~2Kgt?u*0#Qth9wL@Zjx+7+Q|{5@8Yq=?(4c~%B8=qY;pob_ieOePffgypjH36AwkC}jOSKgZ_0 zH>v+gfOdfdyjH|Vp$vVLOTWd_b0Qo&u6sHQBU$SEV=ED~*@YjBaspaBD z3cWGQPImQTyO}%bWgV=WGS(xT55s$13mv#h=7 z+ocYXWBJ)}$(e~2Rkb5J;TFm@Syo?~KBt?VqlmQu!u&H_yR6bro&JPtU z?hUXrg4JE@qtGa1;;)Yj(PDe%o6-_~j~${5l52IVAZRynRcn88cL~%i>w7#=+}23f zt-4x9Cdbe+Q*FFe(6b#d6UC@ob8C@|I~%^Gj;fW~NHjD5Ek+$Mer>}$`c6yN3iQP* z{kzMh1Vd$Kx>~B=9OWf`W^Pd_^sw?-9c%jjRL02U8={YIr?Jh{t;)59Y1eFhT)5P? zdR$*Bm+T;_0o<1f2fAZq{9V#Fue+ye0&H4e$#98e?)wQLQK-z@Zj@)7u?mftg+%{m=&h|ibCK0_ObCqhN zapH4kp$sK)6qB#Her^wOBrSn)wSBAM(RAP4B<1Gj8s}3?#q`~2gd1AB1{df73HuPg)}boj9d&2g7x9) zLQ}fE0>Rh|9Su_lYoV;Wmm}0}?-O_Wh)Kn!GwFXN%Ycm5ZYakpD63LyxUFhwT)iYn zJq@s~3uLg&@iSz)G%&5FyO`5B5KM1wS~Y&%B5-;a#4>Y(UrHQPk*~A!ORzN!Jz{A> zU)Zwht>dJ43GSJX`cN2VQKo8zKpeG^AuYN@Soe=daK*06d>`SLs!68T+*t~`E~utRShxRKhx!@&>ax}xK^ zv+PVn_bP1IDUri!>Upc%KQmD^1AP<|4>t?`R%fDZ6_bdJRz7~jY>JWbimaCvEa)C2 z`v8-ofnl*mdKHoe;*cZU5$HP`lF1eTxpQ z_1E7JWda?fG+o~a_7ya#2{Y_B`gO4 zGc)I!WSdJ`DwnLJEPF81rqLEyAuEVHWW8z3?UjtD1KCSz*?b+%l1pV*%Pg#y&X=8_ zZyok#zu7aN`}vJ=*2Q~CxCg`)_uJ+$vffz|4>ec+C@ib@>)v1@DomWiZEPunXUK^L zsy5))d%WCD_)KZmK9*(4a!Nd|nqILd-N>GKyFoN2Of>3;-w*9hFhhOeBx56~tz81_ zVQz99gT%&a3G*C@g=DL*VTTalz>&Ka5;MO`cU`MVpNY{zk&x^`bgsWXvrw;04hi@d zq;C}RV^LR%FC$5og2#|s0?PQF+o(sK<&&+9bJYvvzJnY+Sm3X|BTLzi&6Hr zICaS8ymh4-d4QUZ73W1XG)mrOsIaJ84xx~()n%Ga;^CIBt~7ZnhE$`ak3pm~whcK` z&M>bOLDyyGS~m5S9gRjSu}6#DVdW=;f$L!FmD1%~wHR4td&S4Ze}S}EA8!~%etxq^8|`Qtx2SkWaeNYDyk!_Qydz1U=KUtWOlNt>r!ecg&o+Xv>>nHdx;qBY z_-ia~FWdLEj-UwWK|Kr^>hy^guHlV0bysCz49LUNt=i&&8H&ORwK!!bRlAff8*Y7> zO~qZOclufqkPdyK|5Z9ZdCq3fmXce8%au%+OzFg!pMOz$oh=zgH^#{ASPNVdz#dBa zk@(dhnNYwl_gopQ5$eam9+KMn(H6Qih)-}$piy^|_!##`!%caCVxV%YKTgOlYRDTy zLndiyC42$~&YrCno`$dDwNRnK_+ngxK*E7RhUT&e)>kgXx%%LVs$d$jWu;3l#&7eW ziBSvOpNKXZs7!D@Sc7y@eH{S~enlEO&6@VDPtEcxf(t@=anIatwiQ!iFS3w+ zG|(lf-t;^<`t_#P5r8}d&l|mn6jUY7Y)l?fm5L>ktqByr=ucDCOX_AYVSB-&-pb1o zGCWY?=Oi|YHz`cV$TOf?>WwSTHm<&*N{zSgS(JuAH^RZH>l<_%Fu*$!v_%Sf;ItB3;%b+8$j`iOP&n68X9!*4F?FN6}MPVW(&7MTINzgTA!3O zK(e4lr}*v%t*87V93hw=x?^thTrZSZJjrU)mOp#MUn3D6_u>s0j9!9YY>@C*S!6Ch~WOKCZ1;*<0s#|H<;6S=_Jn3`<$tp)dS27RK=~zT@y5 z)zkc+_J75Xg?Xdmn)|)n-)(m~!OIHTdx;X!@!-MV#;?8pQOmewdcR#5*=U$RJa^ZQ zT=R;R8?sR>beCqI{huEEE&SS6_wd6B8Sg9EZyh~@y+R=aaT~jYr7P=wy#gUBQIBE2 zk~99fDX&}2WNoLXdTr+vS=e6h`8vG$8EFssAu@mayj`jF>kAg^5eL3_}9 zGux?cR{VfL47;F97aE#K1Y(Zc0{DE z?X3Nh{HH7TP5(quj5UD&b1>@vtvKiZ6N>YH7Z~+lX;uF%i12@lVpAMh4)y;ic>2Ez ziz+NC@gI^{mM0sFkm=AiEEHCkn7jIq&d&m7Mz{-3wb0>TNq6r zZ9;&`xZ=|c+X-onX|Z=~!RTw$>%F||yMqr;9Fb)mOGS6*B9Wo-y|JaKyqK$VcZW51 zxRFvNv{a?TdUCG^9uTK1h!?uuQHGBkDV9IZnHc}F@Sk07DbY1yyN4pVP`s@!rqp&U zBcEBYycVz6JfS|03RPMAjL@Ilw(a8C{Xn(L$YAWdwPTwrxAiPoCxnL4+)mWSaFpE9 z5=W-`?sER)qsW%ubA?*Wolz9Kk9qgR;)1Iz74kZ7lj{}AuhQ+hae_xxenf3-oif}C zqA#KX-03_tLu}~K8rgFD2XhImM!c1!82SG>?3+EOka&T)TFUy(G4HOukDI5x?+IMl z#HM@2@1g0PR};RAxvI|R&UE*2;DP=x0p5}-q7t#1p7~`QJ9sqyw0R%^<0%z@X}T4M zk(lJ#z%H|6AW-GlJqQt#aCks9SP)*<4yO0U{s>LEC}|5p^axotYn$w`++UN6iPCKDOkb1zU|PrQF7?$f zBbXX8k$5ZdmVJ}XyZ!*1oXDDN9iuxG?RlSjbF6eeBh^pEM!|&bRDvmC#$o#$iM482 zWYkc_?^kwwoUH>7WZ_110=pn=M)q#m!5i659(^$hLOz%9qI0W7s#hz>5?8NtUwudA zcU;wE%=h`KGQ!;8)_Xbq2ZB^hIFjIP}4757)DFU<<9$ zF+AO|`&HpYX9V4C+=L39eO)SI%}s)C(*f;vGK=gd+t3N2{YE*mUC+F^Jbf>I>zXdnlEs7;v z$;w4uSkN^^T>R;gcR)AC7*%?OZFRYgC6x$F4U%_R-74FbSo@qE{M<^BZiLpFY(RAT zT7*3|u84%bD`P|=Oy;suodjb}sgBAMFO*6|b{M+#oA|klC4*fpi_Gt2yeEFg$8W$? zi`WeyJh#dG6I*2#ZX-ubn(SB|9<_jHV7hTS{r_aB-j zUbec7H-xR|*3i4gc&nin;?WaMetr>$YD#7pB8ZcQGT;==IwHsVo!k}eUzfLUq6p8w z%l~|HO!OD;T;;cCcc?}86g186ci`&IU}3`@LgisC7?t{hG$CYLxBI~UV*wzD>rr;) zPiH9y^u79MbW<*r`do~tv1NPPcVzAElHb;IByl(O(}f(FmHYD5dUKUo$9_*|!tPMi zZH;LY+UKYbcbofnQGpD6egC=V`uFLp|F0D={x^9pk$=m#{cogE{OgYYa&n7^h|vFh zlmA7oOHx4cKNhk>W>M^R=0|g4zb8fa?aa8rrS*ItZ8cVgZdV&0hqF(zr_VDGGZ6A> z#wHf$9T;n|9N;tbq`Q`?yKpFH{DN6PmW%$c{L_RQwA^#*#V%Ke)?at@#!IH^RT+)~i(&$@f3Afxe`l#@6yw*3yH`{O*ZI`S1|J#N9d?CT@0PB{W#xusU z>b$^fdAWk#fv4Q<7cb468Qj$96GpgJ`GdM}+4gSOe5Kif{xY5ANGkv{OS;39rTuVZ zx#|O#RyjkQ8SPP4NX~>e$#-?1mkoCJDtlIk%R|)9;tYDNA$OY*dOt9C`Gbx>5@`Mbb+Lf-e`JAc*ZDzZpRCtp@?XSV#)fQo zKprdJw)Ltx=wVhxZo>z=bBF*A5$eHU?a%C>fkKp_&jFC(o(6j&^r}wlIS&W}#Ui$* z(Jy<5qi*lA;&=tv<>&LDn9Et;7}A^D+oOALxV^3K-wfQeaXWB`J}V!@%Jfp8b3@i( zOFtwI9-VqQi15!g`5}N~6fpq5=BMoa4jYN?r*yk)$$#(k84u#E7>)@WQfS2l7)P`? z$=++}($}m;EMHJTf`=L;@Sp@g0ONRC7q|hGpmrW`$kMp`_3b@(OLaw$ehJ~Y2Dvzx zvljzI^l1^@ZBFm=qF)T6ml*jolKy-s9QZ7%UNxkkRY!f*d z31Qz?9q!yAQzcPWa2a^F9Yn10%p;c!?q7W(fYhB--q)_)pU7X($8 zev&}dJoZGYUhYJsG`#5bAz*yMp_D)~%3ugEjy?{6O5a+3``0o2@x!nyF>s#+EidR0 z4|k^u%SaxTO~gKPOA%Zv{qAFUZ^_RZSO>$wF%ewF)@1)XE&Swj2KeVvvek2h@~4{I zrR-|e@#J?0^9r6XPR7anL_@o6*N>mU-L0`e^N#ZxDQsQ|rXlZv;_!4FPSC6-yQ?TR z)if{Uk~nA>tI0{!IfL@@(nVLIwoqIuF-=~hyiOofgUQ>X(iOAn3)ERfUD}Xhl;YcW zCKnbF$=1=IIqAO+#n5{h0nd1@BP}6V`%yz6&kV3fqi%8wYZuPPNzzY`mI0X{ii0^i zX>3Ls)2t`9x}uNBU$Xjw8=Cxcf*2xWDN!IH`6`ILtUE3m!Ui^&}jo{ka+LFC+f15 z_w<#l_)>(*4|b3HEYjWH=mhqVa2t^dHtKv@DWBG7-!i>1-5Xh7*zjF0D^AJI^y$1WJd0G@H9?^FFP>6G=!s07~ZN1brl#7?A&HwJLkZmwPC-H1ol@dFCeu?B^)Q#(^A~;8WOLJi7r+}ova5wcWz}Kd0jI} z+Pl5QlY3+VwE@_K`y7ZU;FSn`%_Lj{NM*qshK3Mmr7DR#4lxr*6M=ZCiwj*Eatuph z3nhMaWil`s6CW9cf}3b4roP|Q{aH-R0>UMUE-cRlD!HnH`=9W}8C-t(0tcShL34lF zvAEm3>r;btUqch(z6qn0eD#(HNp7kQ&A0EeH=E~NVuuG`44p!SLFAk^SvLAcb^4XG z1juRQMz1o2AR>PzZa-$Kk@a;tJ2R0r$L6$#`?<{f7A*;sulsp>(}qI;tV4?w&-DAJ zy+3jy3yWpdIoO21?NTGtj&cNBoV=U@=JzLM6b{zVRd|bczL#W~`>s9Xq5@{jO%Jkl z(uFlv>`vwlZ~;`_r^Hy`BQRkE7y4A?*LN`=IAa*duxgnme+`ejzostSp`$JMxx)!D z6}gnqFV#-Ww%#rWnyxS}DHG?-z<;9<&s z2Ol(}O#~Oobg9WF0r?*ZK4IP;`=A62qqhcGSc3CE$;{hAifT=w@vw0*`y9h?G`~h9 zC`EE?x!Rw8el3t!R1BvN@Fn3fj71Qp{m#?58B>#~bhWPpiOp zoP&;c4hZ&5$aLivc=6BFb%E;AaY8RKcjGxEev&{ie~)ax#I!KqGHNT^<}eV+X!6JW zZqvP1no)3{sNqa5GiM^)&AfQWNcP5&mc!6^`mCwLatyR z>~R~Os(8P*RTR)K-v#u=?wu=;67Zf?Xs4yST+ZJwBFQpj5jU@6U3TE^d#|4iFdb)NkaW&(Z z`s|6EJ3CW#@IdaLN1Cg|DQtKxn`xDOD^Dm^b>1bii;Mpoi#S{=lVbw;oDHz3=1g~D4iSZm_Huj*>%gcgIsd9aAaeV?&!bPG*AI_4 z6Nsesowlh*8^3jfNV!cCKo*gYgUX}gBB$gZT*!Mp9)&|ma4<{%a|}S}85*n;nQPG{9XioD$ZzOokbR1v&uZj{9a3 zq}p0|Q+)gEgbC#M%db#&9jsJ3M)2Dpr7I&^h?RmC;%$jp^%xn{xk>^~ntWriS!-Wy z0-=eftbGQ(;)OV~X%UEszuZI7oCweYRFOf9bd}k*Y4`mq*dc~a&1Os`_9QsO9;nD(X983sTNwF zyU3cQ!hppbH4p9an~xcwlR?ZawZ_@BZM_}8YVL@L;6cWd*cVgmAO$ZVsvQ^(yd|+h zd9_HP2jAH=lWkivVo+LBdu8l-^ArH-c~`F#CeN@T)#7c zXvWFlRKFEwUoBj_vjB4 zdf zDL8(^aQu_(Pe{Vc0&LA=Qiy3J!T7Mvn|HI7hxnj^b|8%YV#ZMgJoZar>ls}v=|Qg{ zpi1B)$;=5c>^D2e;qs1hrwiSdr>hxbh}N9|6nrpKXxnVOF_4+;!`(LLM{^-$pcRyj zi5ZVxZ{Vnm6Hdkx-GAF?V1WFrzzz3?AvJuP7sO^SRl=b|x&?%-${a8=NYr(+O~FSA zx+#E-2@M=z2{bnMSmvH5V&Fm;E^Mc}`a?(Ex6`pjecx_3lPx4Yl;%s0S=Yg&pDBU$k5vII#MmWV-N=x3eY@mHRpq?6Q5zQ z5%no3l{W#{W~)8yoC}5F^9cfYnk^V?!`_$!ndd#MVXaj9M$;QVzK&?zd&Y9|P62K9=Y zm7#!1=r^-kCEB+ui_VDdOK$S&|(6=kaFbbpx(D*s0kniy>p%4xkiGH7i z1%LTG91n(=fm3~Az=D<$%|XGRaiH{2Ancn39A6luB7rmhx*GfqlWoufwk_PK28V%F z7XYA72x|aLG44qMlH5Z2P{_apZP~g!SU8zMeN)`Sw<>9N+f%6yz!JpJ&VxR~#&3k}C63KBfXB(=+ zYzjHZ6A!i+tC%n%UMk87>e0AIgW=@z@Issv@(m!%Kwt+RF6WC_QtPJg8<rPYcrhRY$in%wD3Dct1JoAJgcvrr#G}UiF@`< zUwwcUWHTI0aoE(HGSQ1mLy8hRnA7JLVGZ)_9+NJbehTI1dtsKMVzA=lAII*$Rz=!Zj(ad8R#Nn z_zzliibW|kY?;vaP>BN%0*mLO{;Gh^=pW=|iBNr(R|L|Rh0PM`A_D1#d(KNp|#Ex_-m|6Pc_Sy za#WGX`A2p3=zgRzs#?cnlgH8o*6PL?@F;L{pc;s`E7X36FHzzo6;?$Xl%iHy6lKxH z8nD7Ufv|7_+*>Gu7@XVTii%HQ0`@E8$` zXAVoeClPSmwSz#jq%z?zjWxbzmXu@nfQf9(?AQEMhL<|>>{7Y#8my(&k~=<-IYHOo z5XkHeUW!=@u`!GQB*=xWxqY4ZNx|j5V-dF$#le)$#*utuq~R|nya6?RE;y8g1SR`x z(~Sxx*Dg6wC|$u;H8=lwjTD$;_>=2~?@{bKH^)~IacBQV1rnn7A7w8LK9tA2qHSp_ zh(*3V23xVR>(_$#8p`b;@C83=)%J!IcQ_d^TwdF^x7Y$=fMVW(r)hUQ^wtoGLF>N& zBWDwAzT__uLY2;(R1W};NM>lbM1B^75fA?-~s< zxcle{86N5stiNOGBI1vK*A9+Z!x*pb6wh}(3d=IW4W?^|IY`x082bet69>D{#a-eE z(Mx~oEgbu@Pl@atstnnS1CM3^G-R9V+pBRuxX2=a@3@8GwRHx=695>21FKt>JFeAc z5#Tr-qgj^-SycKdCA{oNER}{WBS#Y z(KU0Wa)Q6ByOoxey1X68`;u$AO-i(yArZ^GKn$Du;R^4zTHc93zY<`8q1#1&iJv=(cF>K90A%JKAATkbu3L1-vvC4Bc ztl-};qWD5@3#?#LV@6fkz;$t2J)y5p-BaZjn2Tr-U_Y-FJ*d0*LZ4*U&gmI=Gh~DZ zZ)zKP8a|DiZN_W3xz*+P%4M#hwt&i*ckP}@4GitT*p)9TX&AgLP1W7o_0Fd20K#%A zep0|Ou4mbq@PSffnoi)d4z7`n^S3R`hd*tU&@^ooY$>o|m`}_Q33f~vQveT+&Pehi zs_+^KH7?ZrO1fI9``<*!*Y`8q6FJ<&D2gUie| za=a>LBqom;i~o^g18ArIeEn#c6t?aW7wdOWVr1LmeW{C*Zn5cts~NB6;!gZQKQjSE z%LYwTkFzYMkQV@fjFn2(di#hY2MBw#G`Wa?pnllt{hMbjzMcyCqXp$=(FW8=n_SUx zpb2A#m^;-Q+w685#(Lx9(#dIySuSwlb3vK#bkkU=7=mZIdwChr*FUj=L<_jnmEOb+ z@LRx&J$V$8ys|bP@$tG>h*}SEdI9lkz7#;ZXQU9DVCSV$Qx%06tM6POd(Idkw{cZ~ zLnEa;uB}3nPcwt7^MTGEj{=ux6(aEWqSH0kmj84O3n*sJg(9rd+`mi#sTc*PJOBsi zY&sHQgjr{`521jSSmbcBMjFQcct;NFd#7*+9~ht1>a9v*mRLU=CIw1!zM)qFm$mQW z-Cp~^qpO`xahfPW;28U{vCKIp5;)0X>IPfn{Q+J-DPxGlQ&e@8 zls5i4)8}hhM-T~krv<|L9WkBG9*Bun8zpX78aO62@o}HO>2mw6Op4hTJIk*SgD#C< z)N=Au@Q>pWyj*bT^}3Ay7>!U%T2QN)Zm*H@%h)m>#q5^6`7#)h{r)Ctux2qLV z&|Tnx*)!}8Oke;vDnS0+P9f&!@u*fL^U>ICD6Tglm_&zoOaPX72s=GG-CVq zM2)4oY%IOcF~jAtJ2j?h;DW>ieUR(I1_z3a*Il>~dFK@fPEZ4DO)mdzkz(MDqs(by zu<7dD4EVNaJSlCtPVhny-+NUB8o4b5g{P~v9{Oc`8I5@r`iLCIzA&KmYE|!j+6}P- zK<^_>=y^as{mvz?;DoGjjE`Z~;G~U#Iw~N|2B+zP-s8)hSjBMwjF<-$?9~&k7$X43 z_)}LKOR7{+x;D^Te3dKsAY%$q4Ii!&vKAI*IDtMFka&-St!W|Zk6>NEMaT6tg|Lrg zonw!G$wrYE8a_tHAG=Nn$|e0_P>Q84go*4lkon2`@K4Q|=U#CJd9TpT8;CdZTbDDE`{O~($!yn`FoxcN z`_djwlSv^wD7d&d*SOF@gE?Md+9{%c6vuHCQAuHG2CfCMGCL_;WQGk1s_dG@nfIYLMS3yka84D>aEZ!R9ufcQPe6*$c`7r5E)jU(f#|z z*#6h`41lW47dDs@v2r1+!IG6|?vjD6utytTinR~k5@xd)N{ zoaQCB`IYCD>f6p^r+ljBn;KW2(ByZc=t^?ucn=b|t<6%hVi<4X$;)n%3B3GmY>7PR znyv27AfY<)A$TbfxzV$dA2Yv1v4F@)v?)bo01Du-AHFjzW#CWJtz`A;Zyazp2l!<0tZ zv5K=F&dl`dskT(bbGTdNmRLTZ4*BH@qMLCa4+O)m^ye^xBs0JoyqqYQFsTDpL&zY= z=>zxJwflq(($?xYy)FMol*I1--U0*a6*q4BuVv;&qO+%FF?&fVbGBgc)(XZnV}#I} z8>3kHxSB_*_64z&jmS0P`P-k6X%;{LzhA+3-<{BwW(<|PfZ(?k@bf{9f_SZ*aF@(A zUmTD(uRtRl7ep~gRbuts?@0rj1mx~g_2;{WK^4n&YQ$#x>qJtT_nyx_-er|8tD>x>aC*9K0K-{~kR9ZcB@7C13kngw_ZlQ#64XDC zEb7N-FbvXd6o*{Ar@;(Rd*oj}5otu`6P}kW%wp>1HLJXi#mV$aRy4mo+I@bW{_|Y0 z1VI`B-d;q>C9AY*f7U(bKwrgHD#2@S!|9Uz*<>E~hG8R#=tJ}o!B^m}kowidw}RSy zEQG#)zl&G5QPzsMD-`P!BKbybizA$JvZ{CuMD${z7 z76!@Z@uHQ)oeX^KP-$vv7x(Fxjo#`OxnOJK%=C(@B!44Mwx$PQw?4#?#G75aXy0&~L?m9rk`Gd238%}&19E*sb&wT| zs^3M6N1``;?m_U?hD$n#H~2^vmWHYs5_7ri8>6@@3GXgFh{A`|iQ|s<{l2o`X2gK4 zX+1OGgQQN3pj1Uxz;`;-x;hNxFhLKL##J%^7^3}!S5-JM#M3$~3>Rc^%h)}0$)upM z(f0mD3EKF>$KXdng|UHCEu;XuYnDg%$YrK^i1Y4y87$ae>UX_0;SccSJN319mqn7A zx5*~fM!g}B%V~SthhKB8>$&0%FAhYpf0l)#Kw=}%Y(M|&2qLU}UE}^4T%_YTBE)b# z;C>IxiG&jTBNWGC+rNprJJ_}O&wEnAi%h?FDM<1$qQlMtd+=b}my>as#f1}A@Kw-; z4CvQ8O*JGgp%WzaPZGSINu6+so6z)Bl+uzp9J7zk@G7l3KvuLD|91%iiJtgcJ)R36cH-TzAD{ z>fhkH48hlg;|AR#HNU4vc*-m;2tT~aB!|`UtAmS53i~j>Jqp}oF~?_QCP!}*CI2j; z^4qHJCjES4@$dfpuF=f@nCPgH2J{F9KI->iG;Q$E%@p?Kg?{_<7xCNc&V0r2nud*$ zQDMy%AqT4ueXUEue?&;uOx<%hd#&MRZWzQAK}orQ*7f~bkP$VaK$p=~2Fwrfisb6KSiLKO)6TC2NQwF1n0wW37ME}Pd~)@u%(@3$hwi-H zt)6L%lT~9hQM#H4__p6T`{~O6#9-FvMUs-NM0M5fmYu46b=t%cI#H0Wi;MX7y}*)Y zz&*#o^wE#1ubn&=1a2=_N{;J&UI0$&tOjbFP_4=I8Uj2gT{O`9u>_d7OfvXLqDwQd znqmFo=e)-7DA;VR^HKnkQMCuBk`w4%1bpF7EhG|Jt-4r4*JqpUNj_srhe zQrsJJSPEn~IzbdFdmL5gNw(&BP0Tdn;Wh44<+e?Gco1OXs#*OJi_XC)t}eJ`$;{%i(M87xEca z`nUv?h*VvOZARktWA&@gt>;Ebx=nD6YvQug$GxoYVFOu&3t=o-ktnsRHEC|e{j^hm zOo>R;{I#4XJz$Yr=6wUvxJ22rc<;}WsA3!M+Ye}bv~Mpdk5_BV(^VK@WZaxQu z=q|^qm$IZDti~IyDhB>u$~4h)xv2~?E2gbc{{GsoE5pLE_rkGuz43ZwW9l|$3Kyj>+25@9r<@|(^_ zosldeFCY}*xVZ>g{4BF5ig>*~ddGh7N4S{pw@~ewyh^S^DwvV?z<_V$j`t0$BtDdXJ9RdIgcRzq!KEdYSlx zzuxcj{Ls>a^}(J1-5~TEuba5PfAao@yJsCOjVnwurtq!TKLj1T*ZZl?czki?pRaRW z*gVP7W76~Dm-mY~vyRX!OCm~!nQG-~1@R{3hMOnTY62oore>?2@+%~=&*Up}&&0vT zJvAjgX-^m!i{)c`!-|Ma&Y?xar=Jb4*PBef=HP71+;mAbz%IjxBSsINg;u-8am&Id zS2s?kd(0MHaP|P-V{_f=0;}|FA9SCyvqYpyl&?hBt&h`C^A{8@%g+W#i_eHMAGrk` zAj|3h0=Y zh6NOK10uhDcqrR9tKKbgN!rYR)O`_H7P`P~N}9c$b}jXl-Vvz*Gdi7ii;^6@15^|_ zmtEl_-{hManC~V?uPyh#@20?5rjni%#+BIj6V3LotT`l2U5#P;66IINuEzUCcbHeS z8g7?2e78H_!g>Y-LA0?f(vd#G=kNqr|qflM7D%4;1Y?57At&FF46Q8)tUWK@Z?;J3UI zIJV7`HD~UO_?t{1Mp^TdV0xW~8D7)9@IAZZch{wfH8ON} zJZ=&3BBZ{F+v_G^_g!z}KPMCG>s_v1NKSa&1i#f?;dDsQgIiHFHSSLaWoK`E4a~i) zdf#I(S^G!EV%?SRdrg$DY-dkT7ZvPx?&H?{@O>Ao>oLzfW;xuejg|&?<&sf%tux_l z&h^JpWvB$L54;n-$=16cF+a68T>GisZ6(K>xY^nLcF)JvqnTs5vfALiW<4w&;)zvYP z)l9_=@o86L&7W$2l9z3tn(YTZv=*$t>9Vfpe5v+=08N8ubM{B>^X&*b-j=N8%U6I7 z*AoRy55clG`=T!!+Dcff17!)`io7XcUe!D1A8zjQCNQxz5kKbWw9j7^A(E?k)|Ex8 z(o~}2!5eiFdAKlJcA}h6;QPGApW|`vE0prP<)7lDd7!@Hx&wgM=u=auyTwSUbG+x+ zEc|o(s85RF+xg{LtCuUIlzLec!@*RV*EI=6m6v9?Qi|ma zan&d>T?ls7{gZ{^OI-!toO!WYOpD6B*Yu*q`UH|uZTdNx<))`xRt!#^_4stS5ZYSW z;&(N)`fh)z%wrw`DigvD|8;dMQ61BMln1QpZFhs`?@bYcd4l87A4$v5u1fFcrGyJb zai7!X=`x}si}3-Htz@9iyEU^ggCDPXzW4&beA{dU$e%~72E{Y-iry{)LIf!)c?dC-+D z)IbX>Z2>?~C%pe=o;0IJte`4}_0u=S(re$)KZwlMH(e*^8YzZE{$_ROaA?K2TFSvV9k* zzB$fC@AhG>;ePe%BH!MJj-8=1JKAS7Ubf35-lMIsphuF3Ed3#Pv@ z!&LD@US16n)=hD3D64XGRKmImn13=jDj_;7M;4|I-TXCJgz5L2hj<$+zM*T^m8Pp9 zqre1XQn}QoDqGuGMHb#w8Ao0dp{$!?L20E!Kj0LTxA%T|maf6>hPY02kwaK@Ra8d2 zFvGldsV1OuPd{%@+CNy}e=zsfQE@d*zbFpDWq{xoU~qREWN`PO!GZ=2?oI}Gcb7nb zph1ERF2SAP?i&2?JnMeH=X?eCEo4vLG#Jf-*Wi$2_4HMsB1j!f4 zhKI7%zuwdE(~LNQ=D5uCsKWJ6%O)L_vXeVZ{(N$`X|*wDHHGj><8sUDKriR@nPVo` zC$NngnWnoO&#Ju|@(DlE!|xET(xgS1HcbuX0ethjkc=SrX`Zt4XIVXK6|&g5$}F9V zelDA3sqW5By>&wy36TrWy0S`7V-Y`)NRCdE_4PNk&48xDlnAZ^+F=IQbPfHE!N?h; z>2Iaq^>E5*sVj2|QY5Yuw()H4=M{ZOGE}ju?0Ib-3r;?=nTKu|GT!gzPR_E5{JqOx!9bJnW zU(sqcv#gYMdlmClK}@}mE(TS!apIR5;@tV&>78$0?GP6u7M{3PpW-mvI~c0AY7c2c z7Td_4(i!!hy0P#Bi?1T8FPK=aGMY=#dej#OZiO-RS(-Zfu73=AT-;`69d0C8n4XRW zhu<_*1tb#V>b<}FUG@TV{j!In`a^xLW_tRa(Qz)m4@ik;`f*Dc`G7b78Ex^(p=P$W zRV1%ZyY9l^WAb(gu?@SC2+#}WAoUimLBjQ^N!VUvB2kDUUg!3Z-o28!e@0ibC(}&f zTdPVLOSwK>)pUDVcoA`C$n+lsq8T*;b$1&rb(^ZLN_sy^<(J?6Dz?{Uf3C&+7)f3S zT9v)eRDMS8vD+1?Z}N8YB1+11eSxLxpNmkNIvb@08XlQ4*>-^6RgBZwJEYgbRQH1q zl+PcivI|}hSi5R7`wx)RwI5NjSYXyx@Ct>Kf$_2-)7KM zuH(lb*|6mql8Esvl--TSfR1U_5ME>;pU$6CFbR|XdNlZc7xr3_t?Snhm_Myiq5Td9 zPF3Vm$EK~Qn`??Cgv|VKnDcB5uJCNDXEENcX`#~^wSwAjcxHZW;%GnG;PRSCeA@FV z_>yQh|C0uRG!(ota9J3gK_E7L&|WHQsQcr@G1A$w}xI6oW-dvO>Bl4cK#>{JmDt>Qq^=F^>T zRYt6R?295Ic`&cGj$gIh!`v*5@yJoL)KAQ>7tS2)15=~z$A8j&(-5_a4aZTmUsz*^ z%8-WCE<~Hh_3tqp1cJn)GD~+2)6QPP0{Be!wRAr{VP4Depl8es-0fpLy;g+!qP`?e zHivI-@feeFWpZO7G#VelC}8ko^2%gUk)S@OZ+YKXnbDYgNPYESJmuhPN7Y}P+|gMx zgS+~i!?gueSR*^fgmx% z@9OSxnOSySo_NlB(0dus?o8-v5o1K)o_lgTN-$^PG@hfI;l@69*?U>u-RvbxN$+F860{QAH; zd6x`_mT15$QhN#`JpzF9K&;_UX5ig|yIX1SElJ+YQyFc@^rYp8%$J9DSmmMA+lGs6 z->*KN#!SYmbN`rZrvzJ_XpMSCJ{R;vZp#k+TCL2uTs+U{soa)jy=>k8`)2I?Iib43 zaV*}pI$3`}VAbn}Z%xbBzhCC*S+6BDYxBCk^E|`YzcvR=pkL_0)X3joJkGIpSwi`o zfTHg;E_8Ae%2ctl!fU24fdlCw+hv%-c8W7(4kNW6dEIySkE$=RL#~I4Uuno~_V1=v zg*MAw*pY{^yWkxWp>fky_px!GOpoy~Gv8)yd#Y5=arr0RP78tlC4=3sBA zSC;F(js_p@Xf6q`&P91+Y9DJom&9;R9ltJ1jJ@uf-XDY?L_8j_Hp$5Ukl)S?v22l^ zHg9ZyE1vt(^#{`e;9^uMWA=NGeh~XbKFYP!vzWr>qD(jCGy)|(mp^rkdDQg#M)HaY0OX2!^8DV+&5>| zksX+4(*ShqyM)#faw{mINL8s4JwwxC4x9V+@w8}{jl7VkYx#(B&05qY`ux)2aut2N zN4&(xNQyqajJB!EY+UyQrABk|Eyh@+&*9csa51gsF;txmVfE8pW|;61ExZkxVe{DJ zvq_w@{9IdwCgNj6dIxMtHx(d38q^^mVyiGq-8cAIYt9*wXx*nGnXHG+-hw(}yM%aZ z*DtL^u@4uMa|y+6|K11h&^D1?pwVXEp+>*Dz^0*@hpEJ_hFO`D%tVTtk2;A<1B7Ms zm9j+46qRbuE%uC@pR7&n_0OL%>k-(3#(G|9md9eAmtd0l>Oo0n;5SCLFz7z8U`R|P ze(w#CE969?m^OQQr_uyPyUr|k%#&R8NNsJ2UO{eS@z`AKAmvwv?|oaNO6K7`WZ}j8 zWh%9I>Ae1Z<&IHSOTmJ!M0=Xjih4e5 zMYMX~F-`d9x$?v_4UN9B-;UsR;!oTEaya}$BMq~9P3!Re+`YqIYg$$0*QY3pH|1ylzs?KR#k04uAV-H;GzGL&l@by?-Vo zmEoE?P&`|`@p*S6~4GZVa*~jFWrOQIjRl6y>Fmy zcvLV|_NG31C#Zw8hKTTT;qz(Pj`>-&T0m*oyka9eXv#iSE34blAx|!d(-c<5qir^_hn3k<~~bIFLzkR6#bS zZM)5DoV`$XdxGigA{f!3X#-43E~j!4Cb=qI%@FR0>`-#&vw9QJ^zf#w@IuD~`TOJp zcZ~)fL~?cE-Gy{0%WC=uC=*kS@2W{~>P7-Pcg@hr(V5$b(D7NL?dmfUTPLL15hG)6 zJt30dGn!GQ_G_45fRQ>wNYmmDOOwZx{7KrJ!$k@77>Vt6k9yM;xvgb~z`-LRb<$_4 z%_5F_L}i`D^L-~&|6Qe6Xwy%{pS(415@PNd+8iBHn^N?}!U*HtJSwrx4eqJhSU;SY zC(a>_(LBFhg^P3Zu$WtO-=4Wd4)&%PVQLP#5?p=eWz&(n?90xv+o|+K8>10TPL*Rj zml$)5CB%&vi<%=pPq{tE>|V0Fyeahvr&&#FSl-^gbWvEP+q@pJb@%9DSoL}Su@x=H zCXzVfX}fcbAF9+Qa(NN;U3X->6~89rnA*X&ci6VMw1%zva!mH2Ez8@R>C|K3FvjCp zq>Yoh_0#GGHQO#8ug8*p+nra3#cCkq<^|){9rB3Gn;Q8ZyNjK>1pFEd2D18%*UyuB zmyqQiNBrq>md~^Pae>FEhC%&g3@c3IyIKt@no`USj}f^ApT`gVwoP8P9SxyE^&CB} zhRBW4SmA2Vbd3uhlC~$JRSD zF19K9)dOA!$<8Gfqd&^qW+PrcWjx^cQ)5cytx%S_D8d3V_+rmYv(@in)1NMs@3d!w z2w%QB`APxma~I8LQr zv?LqhskTCo3?LuL_F{LAV?3Swx%xiz?tZx?+z4eklvoJ#V)dMQ-tn=BZ{qo$jwaL- zyo|dVb{m^c=&rNjMbS0Y@jw204moL5j7<)p!`NTty&GXW?C6= zG5eVlp-60qVgnA(sc&4~xV~yb<(A^CSVtFRql9nBbUC;@-BC5I-*Q zw4E7`XreX}<~!Z7 z*VCBsmCuxK7=blNY&xGcUQLC(aIad79cQ#fyC>7M(VcD>?sC@*K6pHo&U+HpJh88W z^{!g8OLYYZY|-h4b0{5Nce9}@aZlu$%!`H<$;Q{B!(y2?&-1?SrU~5ONa%j@G-$Xc z}uFUNlqYO)pT zs+w`ar~oFT%r!qRDAGGu4Syy)9xUJON9t{G{y z(QTyJ>BVj#yeTGlo>TZxTexWYKAHUj&~+(D(&>y5)Kh!>3i76!`qY`^R|)cUI_rl| z|8DaKCL*{ssTzj+aWUBoN>?f{nGr3n z8PtHkAPmLG+a>%j=?u0&HE z0388?kO*JlP*z8TKnhQaL=nXjRT=@r>WBOK;j8t`7M*SBe4r_UfqXW+7xA&5OpFGo z?-=j-HbHFuBU^bQV+|9)s8Gy~}*cV-YK9U|&Y{cW(Jl zff@Y77~C6Gl%S3jmD>$RS!DXX@9Jn52qATKBJ)<1SHp!3a21rnat9JcQ@Vu`DBk#Z zKQn>`S+mK;AMuS~5LG!*P|FOrn!e-*`=fBLb9cy5a`{=8V-!@`Ve#ryR*_(EYpW)7 z@uGwFzf->YCI=0gNos9km-U~xz)L+B(ZTb_XmuFFK)bpK!cLGfhRVz>9Aml+8p<;}=N$sz_628g%Rf? z9h}8>by*d8I7I|?!s$6b=NxoM=MlUlf#?qE4;`Q93g6LyhAXWZ9H03zGTwOK)7)6q zuM%r$#Fhu@F%RZ-e<{H$!!D(z#b!Dx?+*AazR4DNwctAMd!>u)yivAq0(}WIB4JTD z+W&#C8YCefuP&gygH;^{ZNjSR!%WaK z-MIw{VrbfWGx6xcq&IgGkjyVAVk`(_NVz<)#Ep4lZkdlQYo%$JGf*aTz-tK`>chTH zHOJrh+IP+H(>9ctZCgX;rG8je@5X+Do>0q*RbJPX6%xXucPLXn<3dHh9rXB&5BYSXOYBD~}THOJ3Iqttu{MUGFnC z@M{_cOv5gy2er)mjTK`cB-VZvuC|Lx^%`X$2TlusjUBoJ&I3*ap)UICY#-zKAx9j? z24;-rJu|AlpsQ-251EqBf;I)><_ky3<9-`-vcd9@vOb_vs>J8T1}vk29+is&h&zx5 z))kMqC`sllIuW*LepB4TQMLx36UE)3M{vJlZ9!UtxjF977rqX9xN?=4y_g{lt2nm%WkGXW6u?hFc3nipUqm>7n z##~@tsL>KM7(7?kYt;Qj55m~}4hJ9_Xh$+fEb~N|{uIdnp`#VIs!7$0Gf|d3B1RZU6>O2sgXAzKn5?4G_Xbc;W00D_%=lGB({2r6ISfH`_O@Rs!)ob zEmDuv{Ue;F@mMba4n7b@HSL)_j$f`tf8`;heCUB&zLdbB%9;{T*8WsnU`_aYf@D87 z0ek~$gw0@Vi0qQKKTs+{XDye_wUQaaRP98h#v0mJWUhvhPk~|f{_z|JYF5~)Y0Lho zS=YOocZ*xrr{MB)>fm)LRdmcnaGU$k;;dh_%;z9&H%27ub_OivN+v_iLxEd2aP{!0 zw({1w|F~sCn#5d-?0dMP>o`HHf3`yTE207QM=g8Io4EqGNrktPso_ZSzRw2u%H=`C z7`@Wv9&j6x2(v#m!1^^vv$ z3EBt5292u4HWREv7}l}vn$l{tC3~#3=20M6@!PDNcB9Io=I3H*p4uKVISk~)GdE}i ztQ5Nbu&5joxl0wk`02o`I7_fhZ9Y*J-gnVxHtuKATdO{ABMggP!?^5(T*-zRB?i9ih48!1`|yG!i;JDLXW48RUpMh^4NCTh*yg?YyRt|s zN{X4&I{xl4P{STUDW>-b?UMn_H6n4Urly8wW+np=bmO>}iVMs|WPeD7X?Qebl)X8m zfQu$BGsRjchqAiK<-;5lscR)>-mNLtXcU`UcsrhJyh+Lphv6z!sk?7UFi;#eMHs+t zgtHltbh9}pWi|4F)zrEVQJ2H>CcCsvNj{!O(i@!4_jK2oUxh zP{xRcclu0hHI^(t*8I*BA=DVG-5BmI=Z3f?^|`_lCWFRUpwm%2rwunwc<3GRBHRGD zgKnN7is5VvF#bHl#Xz+)(d$%5S>xC^RXL!3gTq^&3VLKGNV`S>{CU&rUynw&maTJl zf^74%!!W?cTH**mPZ-&(o%0!uSwwQL_2OMdo8^1j&pN4_*yf}Ic44`!7hK28h98&I z8hYZqPQ;oltv>~@xFQ$0=4eQx@I(}yQenFwXpUUNSK^ZA-*>VT?rhF zmG$#8cY=SK{|x`hWfk;0!#?lR7|EXg6vp>aPk3M3*1$#qhdc)*zF)k%7*}8SkrsE_ z0y}tCKucMCznV%&tTHc=?q~lZe%21yis=~^vv~O`XHHh~AV&M+Z_(x81zwTk*WEu$ zqyG~DQhEMufYiS!{$**Dm-jz?!p6b*f8nF1D^+g+(F4SzdOyBnWhahF$izt3V%tS= zN!kGlzzs7O^nW0^Ozia2Vq=M(_K2^bJ~P2JBT2=U3_~a4G#`kgihlf}LzKE3hi7P( zMIkBJT=v$?1O3ZlddQ;(1c;M9`?Nfy6~cr~;Vq6j%Y@S+8Zu2{fZdYq7V+$}rseI$ zk(b#bZA5ewO{EW7JPhp&MyKvP>yN`*b{Y)2s+XPq6&fBlR)|sjuw$~7#eDUBTu3%x z;`s)PN?gp>WZPK6=oHEqztgAF5hL~cqeIrOCD|9?B)qd9v499f)6o)=+S?RImHwdg z&KtQ!G**$MpC_{)zfxw`AY4ycRq;5kb>>a{sGlNL&nCH#=cb^i2 z(23)%llS|VX>?i?JeVc}jM(#o)?39(sBq(XT_;2)X^Rah-s)|^i6DG(d>{Y8Hjkm~ zd)}s1Twd@B&0VPlMa|g)On5xWGKK(L^BCR)tA2GHm*Fq*FXfc@B7Gp+fX!695%W(v zkODMZny@c9!d$PRx!|58+~zv32jX^x!G2r0A>R?pty9Ae^exOhBdwYgVn6GXD3C0=qdb;H;&||nS83vTs zM0J`-PKj@Yi?S&3sj*t_PX>Ahma)DL=1}{J7G-4vyK&xERC%1F7wp9a@=%#u_Jkba zez5Pw{W4zK!elOz{WL*+?!$1^CPNqWes5-KJw4v8lBtYhPnYQ#cT`-aKw{QiR*>Ka zqH+5o&7gLZ^CaRX;8+|Pjrm~?6WJ>m)2$eJiJI?R$fkSuJenZ(7>H?O`7k$TfyDTx zN`$jpaH^1l=#Bc~;U1auP%^sVAv5AWyOhh_I~{ju82H$9nPOhzRyhv6@4UYeu4dx0rFyrmGy0O9E@%jouFcA44@K|ZJ%x@Vfw{1opW*nC661jQpy*#$h8~J`#6fd zs02?$40ZL}?=cJ281mZaGtJc zwYKy;ScU(!e!VVacgb5~!}ha*|G4$={7>{#KRrF0u9%fHl#1l`B6XYU(*O*L2h z$1|4rW?kd0KRS0tgt+uXYAVjh3dee1W1MnSUmQMBBj}K|H0H|HK-iKy&`In%r+UY?7Vr<~ZdZ8di5_8s!5?h;C;H0TUhz}Z(8qFv4azbke} z^Sq~1Y3gd>cxq(-<)rGECmY)zhYQ1NhJ9R4nDFJR{#qGHucID46yogkyrNh3WafTv1(0J$S#Uba^uR#u$?O zZC*lUu0Qy;;R`N`0H#A4J#&rDvUJ=PeuiEMM=@-^A@jQ;Qg&7-a$lZ5+q^}eGf^Ve zF*^@%seRJg`oP3RDpi7RnLh~;A{-*dXKiOJ9f&m`KicNX3hw4K;5Xir#ai~8-*_{( z-7HOE+AHo!a~g0iw>~*-3wi8Kw+-z%_W{2i1gCfvUUb&MHG+_Y5s0d1!rwY!XMfGTR&C}sm5(=0 zGv^umswQN~FB4vI;lGZh(ao>|^J(ERZtGLQ86~V~cz-Sp)qwSb6Glf3M!0d|27o z?8WId9+FwiWoCV5_s!9I^w!Db#c^1ls5A$=;k)3vG&9vS_Y~QxjR6lGsf@%9rap#c-L<>0<~g$y6e zUw<8&U;nU=IR+}YuqJk8)RMP;_wUj#w95NMx3UMr*Iz1)(YcnV3C@CikYPS|vf;sG zw5fj}-8w{>Gb7^n54}WzZ8C4>{ZmQGx1nWeb<-3W<8F~9#m+@eXg7wWv&%1tw-2j6 zrQwseY21&evo77bhi4z~^&513n^#rA!I8197k>U1ZIRPAlL1GXCnh(Z4X=A0C3^pE zlcHfq-=jy5!h`Zph*?s3-^couhn=qUH<4@*Fp~1|1SvB0rW%Tzq{l~f?^jfPZF`$& zvmhh2d9Ut^sJoHPdXB&Rj)*fdiC-zC!bOBh^Hun6d|kRLU6P-Me;%GAM4zvD zVGq2jzg!oofYbFA*|Bz3{-#@_%!@enzAeB--$3PIr@1^zA7M@-2UW&bA!d^=l2m8V z8t~8-q7cu)d)Cw360s@ILiTlfH{20^bF#zW(V*8g%69FO1thMfuVov?9AqWn^O<`a&zQV zyhzq{!Y3@9-(8+h%Fe-+ZcbXTgr~X!F{d-*n+Ga=U6txD)y-kQpJUel%+0OYbY|yz z(`215-L<%P3!FYJZB&g|v{7M}iv7k9cVVOGbtZW-OC5t*_wgM0-@7^tTzzf6 zp|ropG-yv>Snj&xYPKdUrNMFMV(hY^SnnfSZY5Nj|q1}Taw^dBg;|`aH|(L=vKcE z-8msO9c_G;8cinssTC9~!W$0S+^Nb_fx1RjBJRGO132B$qx13enEdFnh>s{tpU1Ty za-!Kxkp*rn;}|$~3r1p(5jdqd#W+Q;!O$gEHZ?y6*Xxr4w6hMzsiO`tSUI;Wx;H<} z@>}6*2QHC~rV~15kE1Pa9GwVC5m1qiZCW;q5oP2SgOU5*_pL`6^jBg;B?d2S=dPwY zLGiPgyPGGrY>oXtlCqXw2ug)VTDTZohzBvPmz7btIq4cZnXpE(+jHJkzAQTU6eu}YP!Fc zqw20L_D>{OzDWh6AZtzEbKwUw)y`+*`5sMf+_P4nZVLd=gt z04LY(hRFa<%!9-9IFX||lyyhta;-yO+5#gKG zRbdH!eqY7Sdf`bSy!EQs8vU0In!fZu`+Ji-YnP|H%-Myy6u#HQdZ8**d+Bypr8Hrp z_rWT5jM;;I-RoU?n{xzCv|`_XpX0bZu9!MB$EE2#v47v8JAO%ar*gi$4ZSGXE78?| zOyNTyK1mualKqN0L30gv(onvQw9>XJs!WJE73$6TPdv&$vM>6Z<{$TaU)tBFoG9d8 zSsE{g&YKrTXIbk^O{rk3@@Y^Zc1}RD6v!x+`=I+3Gmmf;XN+iVR-)Fz~ru?n_MG@qth3fg72aap+X#sw6We3rA=CEK5hbJ=DBXZRV#|j zD0q8%-@OE**hX$PMeLIYT(Q;U(v>4p?sAY&!yO0}f%1?Zj%v2SY5%Z}_G(Z%jLhc= z1>`oD958Megj3oI9C_g6yA6j?e|<9Lw)HzC{Y@(gu?>TLZk++9aeZCxVNBK9Mkhdm z+s=C%NNsMvRieM|8kJ)T?Vr_c;G5=VrmOKHR$cvrmt5U|&TOtV#tC&}q*@FUvC)aO z$|jj33@s@7{IkfZ!lF7Rx|y%{V*MH$f5dCAKg~3HmeR&pr>#d>qe?{N9s8zos)Tb@ zM!UT6kfw5Fc|H|H_c|+};@dmzRDIUpv!QuD_ubzE7ZmB6o_j_2>dd~pPp%I%#pwT; zl#B$5?w$)Qq&JbFj#Vh3{T?85GaV0iLyZk@=|s5ECcP4cY}lOiY-I9;ax^1dw{1e6~L9-_VoP3qgwZ z)2Kt00s7TUa7aG+igxlE-@6J_A5*J=>d&-v`2(d5!RvqQturjImwPIzAtPANZ}7CZBnG=JMMRj4(0VMGL?RU4}nC z*nNQfIy~87twe@T>d8RstI7!?-$xImE`1EqsSu}wCr=NIV6+NHDKN&uLU)s_wG}vk zhxkPd11iUu$ZLmtet!J0E`ogMcMx!oTF^{R$_KFQ!7r{Ue$4;2uE+UPR6xb4dxH>C zHoT!)qM%`r_gOk^4K`3-1E9u0L8{!^O-_CqJQpI*?$-<#y^8S-TkYy;nh0EVl&#ks zU`gJMUfu5`;I)Pp#n9cMe+nL*Q37J_#bOmDUEEIn{wPkirV*Uop$af$mlQ5SAqp4^ zAz_Vt2Tr~)DKVs|bLfVvLu|@eH>paeIbQ$H0Sz1zdxd0|)VQL;H$fS2k>cLAO2Ggi ztC;?Dq=qa~n zFUPCAHR-MEndUgqx)p?dFAIo$V(NtU>vx2JI_aZHKCm@UKuZQ7BzdUl7JsLaP*CI{ z#BF#ynEItTV3gQ7dPBRZxH+!D3<965kyj>MvqwFVUk>LjR1~2>$eYJdC&okg`Rozv z%DROIKVr$skYG+Kj2p~QmU5_`T~Mapj7uqh4$ZW2+L@q10ZP_=E1u6$t#V`mYuHgk zjGA0bZQc=T`{oljl0c4Bf)S&i&m<`kt7X~2ct8kip6;rgn!%D<5@2f~blc<#7S)a} z7UvsWCBsR2Kfj!Pj7H;PWY`S^&Cc2(}b){ET-hPp2z(73w7 zw~RSvtn=sG=r@<@M=%$5;9-B z5K)lvA_Hjo8D|>03D`=>d&_FA4C0QF+L&0$ zpTSVHGyPJ21jy@v${lCjn#F-$@InRjjL}n5%^;nEC+=6hjB-wjs#m3?sz+j2P!6S9 zOUR`yQ27m{E8Pqd19Yj{XR z<%ZOmp^HRNe{Wkts3gP&`RWanqP@;t#_2H&P#R(CiUn2II2r?D#;W<4lRv>g)yfBz zogj4=?m6-l8U|Kk0i2Dc{8lhc40Y9f^5-5F%u2O8`C}Z=77sc|p(?iwV0@Nv3J|#j zpkM4LixQEpeaHZKDus_ZD%Ot4sqyAyt7lOZHX~FHUPDvWNJnwN*#+=CHWpF#m)?*z zdHo7X?u;edl?1H>OkhQW{bJm5W&Pw~7;a|b#| zqCi2JM$}O)w_P?chExyzMjWD$l)N2L(3*(qOYhJvv7k1+O#yVaO&u8*`yhSAnj_Sh7KMDHN?Qo_6q>>n4$4?VP6ZC5Ki(Ijsx6c)N!zg7;KL>4TsMa> zGWv}viEI@C?=_@S3(C-5SB{H?N+8sGJNY?2*!B4;^dQT1i(G_xcHKGZF&O7d#%gF? zVMJz*trAYIf=CHa#Ztl_jWxy^()@5Vp0(HTI1_?=(g*<0!2|Lkw7Dfw>TNpDQcM6L zA3FTp4E+HSyDIjeVCib$?4SPKoAe9}@E)QdPjh9sBX~&_J@)i&+3`4>cdYaTcpnnV zP%Ria7!oc959aJ?g@f+!LMO^B)sdCdivNJ}-P8&~=XhAca@G(aq!{FSF2nVWx{}D# z@2SAn!O!}E1Uwt3kJv=xr z_)o&9MU<2Rc~uDwD2(_!{qC|0P*j3j%O3NYj>~`HL%SYn_a*@g3-FNVu8NfR;KDf| zA~0;p?(sEdHJ|A@D{tTb6~FO>Dqc@u<&EKRIc>9~tJFld z%1~!s9R5l+mO#13j05P?Bz=zSu5U^A&ZNL5vgK96K?3Zc~ z2fsI{cCFbBPzWf5d(~v8C)7rGN7=~4C#E1kQ)YSrrQA?$WO*!~*0Y>=45-u{n*r8H z&R+wtVEu0@%*bT%K;NXGlZE#5^OwfLX2;2+Xr101Ag^NWx<}V?S_w*v7%DWd?E^#= z7gF%bm<|o*LQL1s8bXC2T?;gjlnusOZ}r#uF_R|qe@ckEAFcNO5*2s-1+aYPg#wsJ zsntw+0pZ->fu}&=hS`iMm3Zy84gL1G;Y3y*@UID^6eR~yLv?r0+B1BE$g)qfN#PFA znhb#E0f!zcY)W)p$W&CTNZXyT7-F0r!V`W0iWlYXRMs`riulm$szGY)sb>KNd>rhR zd!saJsOiaXwjpLV1kOY;1h|c2(@W4K9B80I$*nQkD-zGS&@_xH{Z1=4*yET=qo}+X z_4}%76}PFU6S+SlWY*d+&~)8i4WTJrtCB&Q!Q5@DcV?OrQAEB~YN8=B-rsEs1qUTA z7}U?6>iYN#v0mfaQemPrT9Kn|xjgZR11dq2lFF}luL;mEbwz~qtrVbWU@KG=G|T|O z>B#4Wa!$3D+FYgUOE1lEA#<|bLh^SB%0pJPqvruO@m4L*N5IBsS0#z~gSzjDaH}EZ z*zXBjsh#R~Zb^|K4T%}{)R0fpGj~l7rWvP zaF>S|Gi7wpuhXWv{WpCfX#8!N7&MlJcGY~3_!kW0PbeQa|1_?-N$_To9B&F-E9OKe z=q6;+lJzoU@F3uQ4s`ZeaB?K@%9eu^csqSRs6z zw#VgYdOtG-S8M&H#L!f#?hqd1mTSo%jGR5v0rW0QN!6!?o8F|L;VYjCH6fHVA$j9{ zVh_5RvWtTZD@0(cAWgD^8M=~uCHIaEs!tdjxj|;?ptg+uCRh43`yCT>1>2tn%zfuW zJ*eO$tRj}9-{CSSSKAEy7pOu}Hl9Pv%m4nZal1)NG zSeQ+R@)c@RTJmGA!+~8#97#z|E&<@`O7csUsnzOmubPjfaS}<$px0+lm7cB`q#_<-_W>n z_OHmejt+kz<5GS!v2(Ft(@-*Tv8Cks%VtphzhH7X|98zH49q`&*MG~(ke65BzZ&u% zQgCu`bN%=5<%;<0u;9DLKKufZwsY5huB|Vt2g1cb0rI9WFol{nR{hUVh>=4`?iJs@w_b9-oWvZu)R-}_$0dUKB);7GY-eItM!S;ze=+x#QE>%b+Gq$4K>|Sn1PL14 z-M!HSPva1zA-EG7g1b8;Xk&rK(zqoMLU3s$G@js2=ti0}e7x_>y=(5Q`7!VP=DX{z zRe$Q7U8mMrbxu9CtDgOA+q^8r(oo&qyHhhKukP~=@dC<;mqe{2$jAO647R2Ir7I6? zxeKrQ8(cUD?Eggk_9iOcBP@QjNu%bo`M~i9GS#!WAVbB_)RE|N(l+`k_eUmC0TCDH zTf0}1k4l%m3;NL%N`*p5xg5XF&F+gb%&GC95tLQXtceMWgmo(Zq!UELp#R|TJc!A^z7`dGUJaoLqC*?eeJ33Z6L!h&fk_Clh_ z%Ld%va2-4&R*%Kmd%AzCSXlbeBM5HHL2WBK&{y`hm`g`~K5IOB&B88UH|t>8`^UFq zYzDj5C1bLJ*;f%#SH!wKc?qB`bNlIjnouw|_oEH;C6+=qhhK9vJ#HZ~ZmV*rO>)E8 z{R!6Sn@SGrlRORT7@5q^Z+}C7c72v=0tDsjjhpSWjOJ(u>Xefg@)zbMx4x(m;?3^( z1~kXyVkS1_MeRe6$9q7eZ(^(j4ctF>IA#LZ<2(L@7C0INO>g#l6!K{Bjb%I0*-rVA zWCqtRs!4{oiw)-Qeal7fmqxAs;=jT1f0`l>#pQ71MIg3On zPkz`9o_-P4&r=)ETfG51vZgtbk&TnnwbSx0Btb8Hw z$S!%mzO8UKRQ~Ek8+Q86>3zuh;=0#NFLx@}G^0=4dzV2{{r+sBC=*ES-N|Z$05Xlu6z*>N# zE#6BO;3VBsJTql+H@L+fm)^62935G)FDCaHK}jbW^D|c8^OV?fu3m50S zt=}W<5m#C{!z<`z$3){A>RSQb#Mgo;YZ2m7l_I-`z1T2F#DOM=^EypZ;H|?W87TRiZnu$gHkOF$_1c>9zB?k_Qvo97eY6CD0D z2W+W}A@Vu#P!2PUk*cVY@|V!4?f(NQ&*wmeI?9jiyCP`ve4Gp`*!4|)!ov503k`wl zD3NnVi2d5EYkT{x>(5xnw#hrhUp(wD?3@23eu)2r5dMDz1_cELMFf@pU%{aGKlqFP z5)A&c#ee%X?$7l9r(sY`>OZTQiUc8BE0MAGjv*$X(4=OQd5f~TyZ{@1^G4^e$N1Nkc4fRICTcYCgz3J0X$y!kju=v9 zK1DUE_SiBI*nb!PYWM4sTn;AXIDe~WCkQWEzi3!1c-%hpyVN{R-d`h~whMi+N}o+> zCh}b7?f|D(MW$?(Ya-6&V1lsw7`qIi!G2SeCV&sYesu)$dC0VmT_$bC_B1q{YX$YR zsfF2Yi#xZgF7;CY`H*X`R+LG(#jhirJ9j&fN>aL@F2Tjhx8;a9`kAiL5oM&^%#a!7_du+54jFwb}<(W{xOd zdb1e$@9Jj63asmomZIs1D7hdXguYp8f5Y>jt1wp%ddOcxPX7Bk<9nS&ob~glL_)sD z&n?;^%0FcYND`Gy5*T?n)p?nJ&}WcPfSK3LqSKDQHu;B`q`iwH^L}_6ZoVFTio=27 zr5uSy27Y_#nbg6F)9U+NQ0CFH=sAv+-AI%d*)id^^@NC>-{M#E(hg3uk5`=R%+0@! zkq?y?`4kECPo-@`7VSdXvkAgT*p?8MBFYvl95kBt_W}2_cj@FN+p3ytG)v!?OygUI znp-r2+n?|+Q_51z6v-(1Tkx!@eHAihRhPw0c@)Z+$V15faMk*`G5}#;ruBl|W$Bwe(Z&DE}}o%1*l<;A(OanBH^2=kJG3s-D|AS3HcL zru-S16JJyAV#1^5?SMrPQ`X%C`Hz@rN?k%yAt`oxI%uSzGqXh zP1-m~jy$6pWx3xN;?Bfa(o1mTq?H0>yVZ6zf1LWy#R-waZ=#5zFBre70J_<#`J&gW zvCeW6iNFhnEG2&5UQGD?^7w?ichIHiYt5X*=^MT76xFL|Q`Ao;mP>es)zrc&nq5cl zYDKYvkE5$=p}CYso78a0fkT~U{nSJ0@AG~IJ>p-SeuVwH+d%R#1F@U@e2WuKytQpo z)kogF>bqZ2dSjcl+?S8dPh=F0Q^w?k?iD6&zx-~9+wke{QK5a98+WE@!G!vi2juuk zc=r7Z-H_2-QkuN+FE+au6o>Z8S4K^&W^p0;#B<-1XxEs(NBx}a@?hy#{GNE9;aQf| zVxK+Yda7D|tR87-7aW;qXva_S%ifObv5~AQFMb4nmlkijWZfrrN}-z6s1DVr(3eI8 zhrRya3_d=oQr*QLGG#b2JKb8M}0n=?64LXgcSvq*T{2zQHkCJaO-9L_Eq& z`&##6BS*FV@yp~-hXqN;L= zo!2MP(C$>VjkDk8ICsME;p@!!R@Rs*AK}XztD%0tykfQ5^Nkd zt7_7;SK*BLhktQAA@tYsjiDag;2+E(e$AmQ+u?TpvV-b11=iM6^K@Bq zWX*sj~;MtoS(M z>nZNw(NYR6J^4_>Yak^Y(?6W62956s*{@nkdkm(x8;RQr{k56c^#-%!-iQfvfyL1x)mx51PZ|A7S+i ziAw!H9P7XjM~k}6P#E=t^_L)sy|JTBOh%0)j)qO+7R-OL((p^piqRtZ0ZV#a9}dC0 zfp;_qH81^6HX7H7!_(?Ex%?I?Ju;clrT<#dxiY%+k>Am$$0i~gv-Rt#3 z0mZ6Y`QY}{6q={-z$koVV0vq^x}T!{<+N$x52@f+n61=pQK&#$FC5mHeqs8q`W)7k z+G?sWbPnrCoj2`6-Vt}c+ZBV>UwpcwKzLy}-fj3iisiT6{5IQH-m>{h@_WD(QyF_x z+FJW>-Y;j&zh;mr{<44R82H4T1968$lQiXDNpl8$Z$3{Ul~oVcnRh9$rxvUf+j$za zQ)Sl-ZC!ly+$FH!R zcPP~W2evxUC@5FR5hjcLnxlER|=&J=~pihAz^AN0+{4 zaMBYKkrg2~Z3R>Ki)n4b(K}mRpD{?&C<(ner1V{hZ~;s`Sdj2@29`@}nNZGXOBi5ptvXVMmJbPZ zS<7v&ZJ6}Vt?azTwo(}3%P+R}gqGUeMOS<5KBdRNdhBbxW%1rGFuYEWnND4&2mS@V zu>!dTT9G+F3o6~QtQ~@0h>=)hgLAN@=?m=XrDyoFY|U2;&EV&L1p)IPxdX@;(Z1+3 z3Ey~KsuiUp-LlQmh< zUiw?WaNJeCUPurEUQ?Di6$8R$zmTOmQ&>Sjhx1m zBw+HDwvL`TF;=KJe{+OIRZvj3+Jg2Dm0SqK58(AgN|Q|WreIztAbOipVXA2Fn0MtF ze5%%aVh(bEdzX-+Gju7cAv-yoHZcSS8>^)s`(5_aD50jYwG3jd5+I2vS3 zl-fs=)+D?zZXst6^Lc@EuVFt8i1eLAYQnyy<$x&eWkAH7`C4q+1lNTUwG|>Cy){1M zG1eV^U}&K3Jnryb`~g^3??JGEWUW9GRdQHQoDp7;$_l;5XpnsyQyi--x)>RLNpy;Xe@H9@8a4#5U{~$NP6Pr0f*wyhs_!a zbNMP#Qy)B(E@Ol>9liU+{`nt8dk5QfRC$rlQaDX%26xle1ux%|y}Z4wv?8HI=Z09W z-fl{S5MPtxUR=!VSHWZl-gi*r4?nK26Q5OvX@C0mu!2?79^*Kyi9r6C3u_XY8vmPN z6px!=BfKm`;_$Z$5b)uJGF`z(1>px0=k^Bd)YZNtpRdCepZ1A^q8nlu-};BfaukyN zed#S|JpU~d@+~9rwww9pdlkf_y)k{V++|YTQPrZmKX#Jp*={(>P1;i=ZZjm6vKLqI z=P>*0`sm{cZ7m(*8|`@QyN(u2+*fq*z=ky z%Uw6zG>(Lb-aWNrE3aCk%1Ji41;zSR0X<~(cE72(#4XWQvC*arjm=cQB*VowH)TYG zb;u!A6#l&^6qtk=O3Nc%hzHz|cinPGYt1{tS^A3G{~AC4rBoyTU*YFJh_?S4e*R0; zTp@AE|LKVA`|zv(%xPVg$=GV8dhoJwms?V0|BKkq2vg>_qv>B?;FGrC2n-rYc~-N> zapRJzIeZXS%WG#^k0`!$Me6j`I|4)wFTW5oq~V;|rW%~MiL7-#K(&$0h`eQjIQ^8@ zoNNTA71`b}%MDy81;-pkA|EZ`?>%k(rvY12bg$KmRw2}%2xgg?013vQQ5(36R`H;I z;<7`{(k_vkgr$SD0`rEd9hR219Asf;f8d|!SK>HcO?&Vxr$y7{`n2llMoNxw10SuA zsfq@-*L<0~h7v;xV1jhVJ>Q=pz&O#(fl8Ur4ecvRF1xB`otKvoDW(eswrAQaP8mz- z%JPR&nlbf!+OZ62Xy2bcX%@W5EI_C}-HfdU#J_k@g5&xCk{&AWeunJTKT8I%q^n<@ zzW;VKV3_`0hv*$e066s>nMVq&b)!d}VwH;>bf33b?T9R*N6LU+fJecCxut_j;V`~W zX{P;Fmdzk@>FsmE&5gjl@pNCE#fx;&-{~?LeX^B-K5UeuOTO{5$AF7HO(W(+k|nHR z3;uO_wrQu6*f$bvJ)C<^tY<#6cIIG37lG8jtNigr)!Wa~+Oc;6yL(y1^wqsjir<8V znL@0dWz24UJ*4NrkntXa(|-vak3JptFXW=Dh~JF0yoepR5<4B+>m1ixW!N0f25A6X zE|kas*8J)7WbiNxG-?|zqBn#j7j?i{Z1b#3MNQkquV}8F`^Nmn5;<0!tv0{If3rVQ zCsT||7*p#oMQQMNhACtIt2I5k1u|=7^Fy$H?xUjs*qtXFQu9)Kc`%_wdVvLnj{Nm8 z#j$xI#16FKJbKP}Ffke7OKy}gQ=X&Q_c3iO2Ue5~NTU-vdC2zTo1!f!YLboKKp$5G zPOF?@6El0>J=A&5o{5MoiG}P54^u<13Vx`i!SVt?o^~%cvJhW7L>3R<6g%%*GqMiiBRMkk$WDi?o@1QG_0u{f%V)D7 zDNYhBrRpiW1GKd4;;d>0JwK&<@?-tqJ_agD-Igpy@Os+_3NSY?gZJsnE z`<_Oi9zjN;sV&FgC%_yfW&c~C&gPZ(Tzu5Wwx7@@*#M~ai~=@{?=rm>K>_yETrx|8Clz{;jqoY z=aL#gY{oSn7#-k9FVBZ@Gwxsx9tkZ6Q@wkIz-EI@xjcJ-x;NhX( zRT`-2Ooz>-dWEp26kjsUF1skbG6J?eiHcL&xZcJgyl8qJ_hyE@_x39l`ET`hv{8n- zGHu{y%3vVq8y#;%&VjZWsls4$zJvaZBHbVgQqu!s18l7tyBrBkN3C(p#D&=>ppe4rXa~Puq`jAt{ErjCzZ#{ul$!A&fUWJS_{ksP#gWHJqBeX?>D2OAH2?|-DZD5n z5O!$WZ|9cm&!(?0yT2n?)2A8H`2-?AN%$53GQP=zRoiC}a07^LUMtes54W;~#Q7K< zc8()wC)l|4p1ZkJOS?G+QY8vFcq=c*am=jY0L<&=d%xwFLS*G z$YnApWR$iFq$x{lWwdX-Crj15rHDtw#w}+4QlX16*Ku)Yi~j4pkH&HRi!C6?nf!*|DE#XTPq6+$on*5Kg!io$vFcZ3{aC zgr_#KYNXgu-un;H`M;lnm}eRqH6Smy^;p$7{4^jenUyN{0P=)J^X%$j{i50UI|EL@ zZPY9c+o3~#v`-=t>D!=sV@sCgT!7kC2Bd^46;dI`Rud5gFEaxw5!r>l=ghozdB3cd zzpkxo?GN&E&?fTbv}Sh8b+e#G52tE#2YnEEI}3A`;OTM|Ar$C`DW}uP_ayd z;hN+IWvwB105!nv3e+2plX^pGpg-)ysyP}HH9DeWV5<3hRC7a`Fj&wc!G zS!&fcybaK)1>(-qq^}nYEw^Bc(*9Zp6DI%u)a{V-a^ba=#sByG`GRG%F zL9#Uo;7IR`1vJOI+Z>VuRG#aqVLybV8>U9Q5ss(N^)Vm~Ru`5?cXV+h%2>-pTO^q+ z^VKY7Zb!VKBs5iGi+4eOctZ)W9&kp0+~@c zHlSrOMNO=J7az#z-sl?-D$L+#DM^T3(9p(+CkMM~AN$7BCrY?`GWA7;0P#$OPXBOI z-}a^?Az7PuYRBhm%JlWiy2AU6=P$x4MV?Ur2BdCP>CDp@G9{~-rK&4mBc0t@mFD^n zWJ5L@V#Pjdl44V}zuD!QSn&&7`r;As{j%I<$HNSj%r@vL?M#Y z))S`1=L9&qbFE`|4AUI<@o)Izdwm}tsej1yz%C-l1n~8e=vDD(Qt)>a-=9RrF6$;3 zAEb+Z>Z`sYvY~wAO;$l_Hq`wP`{_5_ZbD*+ms3n4nYE_Qy|?pgbk6Hpy7^?FQ@*N} z0~G|f_JE&)fx&u5b!Pcni+KU@2t;jKyT)FgNVw#Zhi@EIVaz-5StmZKc*r#2?fL^e zZW|MaDV>A{PqB92ARd6o3wM!i+3C7monvbL!UWNi2~u2%`Z3(!(qp z<3yay)7n>4HRbf3Cc5DpYu3WUURsUU5u&qfuUzky+JrLyUi6DtXwofaLsCw%;{$dd z-tcAeRwcDou%W6TMje-F>+?}FbRllsW8BbiB7%jUIQayR+bv?bs9DxzfeU| zlapy$7I)-`248g7$8S9!0zZ7^*8yVDt9kD_1^417EbsYB*SpjFImr&0fFMVoPKyHp zK>jox>Fc&k!SK|+47FO#5EbO}px}>TUzZJkif`f(*Dg)fSQrZEa#XAlC1^al#;D0# z;ZZ?y>XU8&uD6ljbBnL`H+Z@LV88JyJ>LLYkmJ*+%(l8txzfh%r|mA`zJ`iNrrr9eVAF(yhTJ z6#HtN8!-~5qjz2yBWK#52cT)oO54UyYziJp_~^YKehDW}pM1X(UE|PwZSkKqZcsWhA9yP#ImL~Fu}M% zo&UV8>0%v;RGdnH6yEuvOi6+1Z~j?#VJoER-ghIzg=&l#hM-zwBTQH;uGmN)7 zKPy|vI}7G=p36>bYx;-7_bwH3hs_$Pj`d$V^8bhf{r}xY_&*44|C%HJA1QJFq_dgn z+qvAc;ROCKejLEf*2zJ@6!gZ|nOR8ce?B->SmHl(w^rmb{z_6k@Fd39TL;#baY z=zlD}{9buN5>Ml+#5zITbLMZxg?Zc!(a2upX2WsO-lCAmQN&TcyY{?(j>F!t+}$U% zx;bVM_e!lT_u{}^;AmmR3enKj1G5fz2kJY%m7oc3lw#tJxL>7U0_0*(U>&0}wM**)c* z=J`EFejP)*E?qim-1<)|DR7EKKA*g0Y7-AY_#0WyHgVbdp;Zef0HcGUo^Zr*^3m^O z`;RRjIX2Iu5zWV+#k*g-@|Pber)6pbtwZWt#FIQ;yx$%l`PtN-<%#dDTgIwi&LqO;LRXHA4rc>fP z(4f}&9$0Y;xI5>(tE`pC#RhZVOdblm7Z>510A{rgztWn{Ax)ajLIl484o8T19>fE! z4F8^Ye);<Pr(3hsbcGa%e(|`)g34PHcjjH8><%i%R3V?|=~DRq@Ki0PWSSyK1I7?~{TZ+6 ziTI+{vvUk_=Ya{o#lv5DlFwh{sgVJPfW4v820(6&Q>e4X>^zL%r4K^_e0kPDR?gMu zr3tKZs=o`9#F)m?6>kHUb>&(Rmm+jt<^4><=u}`1Q7(^=#&b>Zp%Ca!FNYPBTImXD; z3<}k<>!Non{S6TQ8cWnb$?v{pTSSqT2B2N$A1=!5iOIT$Y1pI>%$8pE<^hW1gi_t7 zf%0m41#vJ9Q*|>BklXwWrq%K=#iYQM)pQDIo;g1iTdn)fx6JLec>^rj`ED4f0vrH_ z8Y7HlrJngfKVG)@0_s~VX@S*?@d*n)iFrZew!+s)$br}+!HG1PF3OA<(%F*lbRt?y ziokY;1z@H=RV9FFdWjY&f)(*hoL!aUse2krr z9@<0cP5>_+?mJd&Nf^{HSm50y3~S0LmNs3KjDHI*_9-AD^{cexHgtwRKGZ7oHb6Wb zs!2I9e9_`3lXik~3xh>l9} zN~xuEqhqC~4U|-gqs?43pwX+IX0Gs~ELh_M72JBogHko-Q3H&B^~Y+b4HhO(^|2-v zJ`y^YnTIdt1F)m5z3J*u%H~zAg)OYqY_4z>FQ3xr(3V+ot;EZMD<&wEBLN;D*Yo|4 z<5ALCGoEz5J5-GI*yGfKmmV66jv3Kx`_Ros>F!*^TsJuScPQJR3&xmhp_!PdP3%B` z$QmSrH~|sm31cJgc?V@h$0hR`=A2G--$I;J_WvNHwH^tKyJA7tj4H-y zq3OeA!LmBA0j(u&x5r^rZWS;`X!N^&2#mpdOGd86Xr}VP!<-fPU)YrQGQLKth}Z<4 z#+)1#T|lWXIEAWZkW%&M8zMd`Hdl;E*YbSIJH+cA@#TdfeR_uFh#c+l%W&nTanV-| zAky$?tE|>(1iygZj#w|H+nMM?*BueQRjf;xQmvtw^4YH{z8C@Z_FT_I-WH=U&o(-4 z_nW{+^=crIGC%Jw2e-G~TBD!y43B)x4<=!bVGi`PpD;=P#rqhO5BQa*FAk zNvWCfU#dKxH*Q)ozhP-Xaq1mr*BC*uTFQYp!15Ly1RQNpSk!=U#&r1ew)9R(9}9o> zw*qOPNrY3?%DdGWm~338_0Utqa^??$TC{8Y%n~DUf^@FG9Y+k*XU{)DBvJ91o|gmr zsz~f7YD=ZoOU0+446vLQ`%+Zdoc`3Tr@5Y&_OqIxNE4<^h-N30itb`TwA6>9rG3qkzEx%QOjHtAE zkCt0A*H)nOzSI|K22hv%ks`vj{MkHWKc`gymXhLMJ-G1$NFSijna)`gMDW^$uT_2i z!gm9r{khP;g|#X@C~N-WWPU=+^#TSn_<{)cm#F(l#HZ&c>xxbNA(1I?2RfffU1;7_ z4xNC7uu4w*D<$+bxCN$HnRa*vkm3{0S~^0>5sCp7id8YNM4032Ac&>9p5gM#KW$vA z(2p?xb+YW7p@SP>K>c9Txh`}Xv88yhR@?FI$hf19iRMfG1PqCC;hS3yg%Ed(Nik0BKdw z*nAb&k* z%fKbJBTvYnC{uX_|EXD`K7lM`99Jydotw;=q+CI

ToQufN0y@ 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 literal 0 HcmV?d00001 diff --git a/meetings/2024/11-01-2024.pdf b/meetings/2024/11-01-2024.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1afac019d7bbc2b0697d15b01c628ac3f77c01b9 GIT binary patch literal 204171 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%0DVpoc=~F4gV-5jB|P7kpwd==%iLg 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 z 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 literal 0 HcmV?d00001 From 0b2260e5008d3dcc3c1dabcfd73b74e2da738732 Mon Sep 17 00:00:00 2001 From: Maaike van Leuken <97684325+maaikevanleuken@users.noreply.github.com> Date: Thu, 7 Mar 2024 16:32:38 +0100 Subject: [PATCH 71/76] Update README.md (#41) remove randomised entries in overview, based on issue #40 Signed-off-by: Maaike van Leuken <97684325+maaikevanleuken@users.noreply.github.com> Signed-off-by: Mirko Mollik --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a1bd57d..81f26b2 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ The objectives of this SIG is to further develop and maintain the Digital Wallet Overview and including the digital identity agents/SDKs in the overview. The overview can be found [here](https://openwallet-foundation.github.io/digital-wallet-and-agent-overviews-sig/). These overview should provide transparency of the characteristics of wallets and agents in order to allow for comparison and effective decision-making on which wallet is applicable for your use case. By creating awareness of these overviews, this work can lead to less fragmentation of the SSI playing field and increase adoption. -The characteristics that form the basis for comparison of wallets or agents are collaboratively defined and regularly updated by a diverse group of contributors, ensuring that no single provider can unduly influence the overview. This approach guarantees a level playing field, with each provider fairly represented. Moreover, to ensure unbiased access, the entries are randomized, giving each provider an equal opportunity to be noticed. Importantly, our commitment to transparency is underscored by the absence of affiliate links, ensuring that our recommendations are guided solely by the merit of the solutions and not by commercial incentives. This matrix is not just a list - it's a user-centric guide shaped by collective expertise and a commitment to fairness. +The characteristics that form the basis for comparison of wallets or agents are collaboratively defined and regularly updated by a diverse group of contributors, ensuring that no single provider can unduly influence the overview. This approach guarantees a level playing field, with each provider fairly represented. Importantly, our commitment to transparency is underscored by the absence of affiliate links, ensuring that our recommendations are guided solely by the merit of the solutions and not by commercial incentives. This matrix is not just a list - it's a user-centric guide shaped by collective expertise and a commitment to fairness. ## Target Audience From 81cb24a0fd7d71009f8e14efc78766325c269a7c Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Fri, 8 Mar 2024 08:51:13 +0100 Subject: [PATCH 72/76] fix: only run it on the main branch Signed-off-by: Mirko Mollik --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6b1b65f..706ef1e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -66,6 +66,7 @@ jobs: publish: # only run on the main branch + if: github.ref == 'refs/heads/main' needs: [validate, build] runs-on: ubuntu-latest environment: From 9c49d47fee22dd7f71de69c751982cff86331991 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Fri, 8 Mar 2024 09:36:01 +0100 Subject: [PATCH 73/76] add vidua wallet Signed-off-by: Mirko Mollik --- viewer/src/assets/logos/vidua.png | Bin 0 -> 15070 bytes wallets/Vidua.json | 48 ++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 viewer/src/assets/logos/vidua.png create mode 100644 wallets/Vidua.json diff --git a/viewer/src/assets/logos/vidua.png b/viewer/src/assets/logos/vidua.png new file mode 100644 index 0000000000000000000000000000000000000000..3c3331c9006449617b5daab86e6c7d6ed8bb05d3 GIT binary patch literal 15070 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 Date: Fri, 8 Mar 2024 12:05:14 +0100 Subject: [PATCH 74/76] fix: add missing wallet icons and resize them Signed-off-by: Mirko Mollik --- .gitignore | 1 - viewer/package-lock.json | 566 ++++++++++++++++++ viewer/package.json | 3 +- viewer/scripts/scale-images.mjs | 44 ++ .../wallets-list/wallets-list.component.html | 2 +- .../wallets-show/wallets-show.component.html | 13 +- viewer/src/app/wallets.service.ts | 11 + viewer/src/assets/logos/Gimly-wallet.png | Bin 257959 -> 12999 bytes viewer/src/assets/logos/VIDwallet.png | Bin 1344 -> 15367 bytes viewer/src/assets/logos/altme.png | Bin 24522 -> 7732 bytes viewer/src/assets/logos/apple-wallet.png | Bin 0 -> 7886 bytes viewer/src/assets/logos/atala-prism.png | Bin 1268 -> 8966 bytes viewer/src/assets/logos/authenticator.png | Bin 0 -> 14790 bytes viewer/src/assets/logos/bc-wallet.png | Bin 0 -> 10449 bytes viewer/src/assets/logos/blockcerts-wallet.png | Bin 0 -> 8005 bytes viewer/src/assets/logos/blockpass.png | Bin 0 -> 10363 bytes viewer/src/assets/logos/certishare-wallet.png | Bin 2032 -> 17357 bytes viewer/src/assets/logos/data-wallet.png | Bin 1582 -> 11514 bytes viewer/src/assets/logos/datakeeper.png | Bin 3742 -> 29571 bytes viewer/src/assets/logos/esatus-wallet.png | Bin 2476 -> 23036 bytes viewer/src/assets/logos/gataca.png | Bin 2540 -> 19423 bytes viewer/src/assets/logos/helix-id.png | Bin 4326 -> 5660 bytes viewer/src/assets/logos/identry.png | Bin 2428 -> 19936 bytes viewer/src/assets/logos/kaytrust-wallet.png | Bin 0 -> 10725 bytes viewer/src/assets/logos/lissi-wallet.png | Bin 3496 -> 26215 bytes viewer/src/assets/logos/mattr-wallet.png | Bin 4790 -> 44467 bytes viewer/src/assets/logos/microsoft-entra.png | Bin 0 -> 9004 bytes viewer/src/assets/logos/mykeepin.png | Bin 2404 -> 26257 bytes viewer/src/assets/logos/open-wallet.png | Bin 6777 -> 7408 bytes viewer/src/assets/logos/paradym-wallet.png | Bin 120192 -> 9295 bytes viewer/src/assets/logos/spherity-wallet.png | Bin 82746 -> 6095 bytes viewer/src/assets/logos/talao.png | Bin 1456 -> 2777 bytes viewer/src/assets/logos/vidua.png | Bin 15070 -> 10213 bytes viewer/src/assets/logos/walt-id.png | Bin 62532 -> 11384 bytes viewer/src/assets/logos/yivi.png | Bin 6602 -> 9300 bytes viewer/src/assets/logos/zada.png | Bin 2976 -> 20064 bytes wallets/AceID Wallet.json | 1 - wallets/Digital ID Wallet.json | 1 - wallets/IDEMIA Mobile ID.json | 1 - wallets/Microsoft Entra.json | 3 +- wallets/Tap ID.json | 1 - wallets/idento.one.json | 1 - 42 files changed, 634 insertions(+), 14 deletions(-) delete mode 100644 .gitignore create mode 100644 viewer/scripts/scale-images.mjs create mode 100644 viewer/src/assets/logos/apple-wallet.png create mode 100644 viewer/src/assets/logos/authenticator.png create mode 100644 viewer/src/assets/logos/bc-wallet.png create mode 100644 viewer/src/assets/logos/blockcerts-wallet.png create mode 100644 viewer/src/assets/logos/blockpass.png create mode 100644 viewer/src/assets/logos/kaytrust-wallet.png create mode 100644 viewer/src/assets/logos/microsoft-entra.png diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 8e5bbf0..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.py \ No newline at end of file diff --git a/viewer/package-lock.json b/viewer/package-lock.json index 023339b..4778191 100644 --- a/viewer/package-lock.json +++ b/viewer/package-lock.json @@ -37,6 +37,7 @@ "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", + "sharp": "^0.33.2", "typescript": "~5.2.2" } }, @@ -2356,6 +2357,16 @@ "node": ">=10.0.0" } }, + "node_modules/@emnapi/runtime": { + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-0.45.0.tgz", + "integrity": "sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.20.0", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.0.tgz", @@ -2733,6 +2744,456 @@ "node": ">=14" } }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.2.tgz", + "integrity": "sha512-itHBs1rPmsmGF9p4qRe++CzCgd+kFYktnsoR1sbIAfsRMrJZau0Tt1AH9KVnufc2/tU02Gf6Ibujx+15qRE03w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "glibc": ">=2.26", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.1" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.2.tgz", + "integrity": "sha512-/rK/69Rrp9x5kaWBjVN07KixZanRr+W1OiyKdXcbjQD6KbW+obaTeBBtLUAtbBsnlTTmWthw99xqoOS7SsySDg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "glibc": ">=2.26", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.1" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.1.tgz", + "integrity": "sha512-kQyrSNd6lmBV7O0BUiyu/OEw9yeNGFbQhbxswS1i6rMDwBBSX+e+rPzu3S+MwAiGU3HdLze3PanQ4Xkfemgzcw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "macos": ">=11", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.1.tgz", + "integrity": "sha512-eVU/JYLPVjhhrd8Tk6gosl5pVlvsqiFlt50wotCvdkFGf+mDNBJxMh+bvav+Wt3EBnNZWq8Sp2I7XfSjm8siog==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "macos": ">=10.13", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.1.tgz", + "integrity": "sha512-FtdMvR4R99FTsD53IA3LxYGghQ82t3yt0ZQ93WMZ2xV3dqrb0E8zq4VHaTOuLEAuA83oDawHV3fd+BsAPadHIQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.28", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.1.tgz", + "integrity": "sha512-bnGG+MJjdX70mAQcSLxgeJco11G+MxTz+ebxlz8Y3dxyeb3Nkl7LgLI0mXupoO+u1wRNx/iRj5yHtzA4sde1yA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.26", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.1.tgz", + "integrity": "sha512-3+rzfAR1YpMOeA2zZNp+aYEzGNWK4zF3+sdMxuCS3ey9HhDbJ66w6hDSHDMoap32DueFwhhs3vwooAB2MaK4XQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.28", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.1.tgz", + "integrity": "sha512-3NR1mxFsaSgMMzz1bAnnKbSAI+lHXVTqAHgc1bgzjHuXjo4hlscpUxc0vFSAPKI3yuzdzcZOkq7nDPrP2F8Jgw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.26", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.1.tgz", + "integrity": "sha512-5aBRcjHDG/T6jwC3Edl3lP8nl9U2Yo8+oTl5drd1dh9Z1EBfzUKAJFUDTDisDjUwc7N4AjnPGfCA3jl3hY8uDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "musl": ">=1.2.2", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.1.tgz", + "integrity": "sha512-dcT7inI9DBFK6ovfeWRe3hG30h51cBAP5JXlZfx6pzc/Mnf9HFCQDLtYf4MCBjxaaTfjCCjkBxcy3XzOAo5txw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "musl": ">=1.2.2", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.2.tgz", + "integrity": "sha512-Fndk/4Zq3vAc4G/qyfXASbS3HBZbKrlnKZLEJzPLrXoJuipFNNwTes71+Ki1hwYW5lch26niRYoZFAtZVf3EGA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.28", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.1" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.2.tgz", + "integrity": "sha512-pz0NNo882vVfqJ0yNInuG9YH71smP4gRSdeL09ukC2YLE6ZyZePAlWKEHgAzJGTiOh8Qkaov6mMIMlEhmLdKew==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.26", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.1" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.2.tgz", + "integrity": "sha512-MBoInDXDppMfhSzbMmOQtGfloVAflS2rP1qPcUIiITMi36Mm5YR7r0ASND99razjQUpHTzjrU1flO76hKvP5RA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.28", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.1" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.2.tgz", + "integrity": "sha512-xUT82H5IbXewKkeF5aiooajoO1tQV4PnKfS/OZtb5DDdxS/FCI/uXTVZ35GQ97RZXsycojz/AJ0asoz6p2/H/A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.26", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.1" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.2.tgz", + "integrity": "sha512-F+0z8JCu/UnMzg8IYW1TMeiViIWBVg7IWP6nE0p5S5EPQxlLd76c8jYemG21X99UzFwgkRo5yz2DS+zbrnxZeA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "musl": ">=1.2.2", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.1" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.2.tgz", + "integrity": "sha512-+ZLE3SQmSL+Fn1gmSaM8uFusW5Y3J9VOf+wMGNnTtJUMUxFhv+P4UPaYEYT8tqnyYVaOVGgMN/zsOxn9pSsO2A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "musl": ">=1.2.2", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.1" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.2.tgz", + "integrity": "sha512-fLbTaESVKuQcpm8ffgBD7jLb/CQLcATju/jxtTXR1XCLwbOQt+OL5zPHSDMmp2JZIeq82e18yE0Vv7zh6+6BfQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "optional": true, + "dependencies": { + "@emnapi/runtime": "^0.45.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.2.tgz", + "integrity": "sha512-okBpql96hIGuZ4lN3+nsAjGeggxKm7hIRu9zyec0lnfB8E7Z6p95BuRZzDDXZOl2e8UmR4RhYt631i7mfmKU8g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.2.tgz", + "integrity": "sha512-E4magOks77DK47FwHUIGH0RYWSgRBfGdK56kIHSVeB9uIS4pPFr4N2kIVsXdQQo4LzOsENKV5KAhRlRL7eMAdg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -5640,6 +6101,19 @@ "node": ">=6" } }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -5655,6 +6129,34 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dev": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", @@ -6253,6 +6755,15 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", @@ -11320,6 +11831,46 @@ "node": ">=8" } }, + "node_modules/sharp": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.2.tgz", + "integrity": "sha512-WlYOPyyPDiiM07j/UO+E720ju6gtNtHjEGg5vovUk1Lgxyjm2LFO+37Nt/UI3MMh2l6hxTWQWi7qk3cXJTutcQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.2", + "semver": "^7.5.4" + }, + "engines": { + "libvips": ">=8.15.1", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.2", + "@img/sharp-darwin-x64": "0.33.2", + "@img/sharp-libvips-darwin-arm64": "1.0.1", + "@img/sharp-libvips-darwin-x64": "1.0.1", + "@img/sharp-libvips-linux-arm": "1.0.1", + "@img/sharp-libvips-linux-arm64": "1.0.1", + "@img/sharp-libvips-linux-s390x": "1.0.1", + "@img/sharp-libvips-linux-x64": "1.0.1", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.1", + "@img/sharp-libvips-linuxmusl-x64": "1.0.1", + "@img/sharp-linux-arm": "0.33.2", + "@img/sharp-linux-arm64": "0.33.2", + "@img/sharp-linux-s390x": "0.33.2", + "@img/sharp-linux-x64": "0.33.2", + "@img/sharp-linuxmusl-arm64": "0.33.2", + "@img/sharp-linuxmusl-x64": "0.33.2", + "@img/sharp-wasm32": "0.33.2", + "@img/sharp-win32-ia32": "0.33.2", + "@img/sharp-win32-x64": "0.33.2" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -11391,6 +11942,21 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, "node_modules/slash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", diff --git a/viewer/package.json b/viewer/package.json index 549b81f..0e1bbe1 100644 --- a/viewer/package.json +++ b/viewer/package.json @@ -43,6 +43,7 @@ "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", + "sharp": "^0.33.2", "typescript": "~5.2.2" } -} \ No newline at end of file +} diff --git a/viewer/scripts/scale-images.mjs b/viewer/scripts/scale-images.mjs new file mode 100644 index 0000000..9a106fa --- /dev/null +++ b/viewer/scripts/scale-images.mjs @@ -0,0 +1,44 @@ +import sharp from 'sharp'; +import fs from 'fs'; +import path from 'path'; + +const inputFolder = 'src/assets/logos'; +const outputFolder = 'src/assets/logos-resized'; +const maxWidth = 200; + +// Create the output folder if it doesn't exist +if (!fs.existsSync(outputFolder)) { + fs.mkdirSync(outputFolder, { recursive: true }); +} + +const resizeImage = async (inputPath, outputPath, maxWidth) => { + try { + const metadata = await sharp(inputPath).metadata(); + if (metadata.width > maxWidth) { + await sharp(inputPath) + .resize({ width: maxWidth }) + .toFile(outputPath); + } else { + // If image width is smaller than maxWidth, just copy the file + fs.copyFileSync(inputPath, outputPath); + } + console.log(`Processed: ${path.basename(inputPath)}`); + } catch (error) { + console.error(`Error processing ${path.basename(inputPath)}:`, error); + } +}; + +const resizeImagesInFolder = async (inputFolder, outputFolder, maxWidth) => { + const files = fs.readdirSync(inputFolder); + for (const file of files) { + const inputPath = path.join(inputFolder, file); + const outputPath = path.join(outputFolder, file); + if (fs.lstatSync(inputPath).isFile() && /\.(jpg|jpeg|png|gif|bmp)$/i.test(file)) { + await resizeImage(inputPath, outputPath, maxWidth); + } + } +}; + +resizeImagesInFolder(inputFolder, outputFolder, maxWidth) + .then(() => console.log('Image resizing completed.')) + .catch(error => console.error('An error occurred:', error)); diff --git a/viewer/src/app/wallets-list/wallets-list.component.html b/viewer/src/app/wallets-list/wallets-list.component.html index 56b4678..0a7a703 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.html +++ b/viewer/src/app/wallets-list/wallets-list.component.html @@ -26,7 +26,7 @@

{{ wallet.name }}

- {{ - wallet.company - }} + {{ wallet.company }} + {{ wallet.company }} Contact provider @@ -33,7 +38,7 @@

{{ wallet.name }}

#ZM1<(Q6Cpp} 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 literal 257959 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

(oI+C=^l1D%hPu5NY7us`^; zZsxYu4aqS~|H%UI*rBn;ToAI2o62Y3G6=Wczydg39_sZmoROHTt0dKX%He*YN*qQ{ z{aCqVCcuD5IL^lGK5IT#*Z{d0N+t*NUhVeXpejCfl_hU`927wEfi{9Sfrv_not#)o zc%X|~n@Z+;a1@iB`In!a@E>F65y{kV*wwS)xY3Sx6?C^(VWei&k=~=wy@?yfQhkt2M4enlzYRy+EsL^IS1-*AhNqg~;g-BLYU^H1<5E;9$ zMN^$52(T)CaS=ue+0!d`KmWkl*+3#{F+eF*tHu#H_5*qV7M%jz_4uxGSKWMd#h{D@ z;Z=G0UiQ&@X70lv^YN3=2Z*mRyO6*VpFw;jucTZzx`=LaPA6T2Guwb$lB5QJSxb$_ z*T;IY{9%MO%jX+9aZJCHmhJ$2dnbGf3wXd#OM1BsTywmxdez~~*cng3TX{mU{X4Yb z=Y4p8;VWjuO9>GdOu$vXp2;$NQM{#r1^&$V#H7^9A%(4f?@!1cGPwo~_$dFIT)$Jd z+pfYQSf}!3$|$EIm;!#VX@NHPZb5Zfv_amn0C)#F)@t8TFUkYQ88FHO%-jl;Ltk(9 zK9##_=kbt5AK-Oy_{#dHhmO3LsmJ~Jx%e*UxFQatTF@|sxt(@aV@UObV|ogdpo6SH zS6qdkN1VV3vrN)LhuIguqG`oa15pKpX`a}}ooxI@y6x(=V52Ppv#qVBvBtx?ytGm1 zN51AFcxl+i=9Is5RFZe7X(&L7MWV;Y3aK;4+WLI0e}Q^#eQH?0sF7!^x1_PEGF}u_ z0WW|Zx6!69)h2|7B#0Ku2PVrktb<=JWQcs^7Tg0%Ao;1T$8Z*w7d1V;V7O zRh2*3>6Ulf73Ih`sCltGi;7j`4^7$7F-wZUXJf;Ya&ulot0KyY<D z{-|xGaM10R`Y8L-_Z!UejAvyUjvy}3&4`mU=z657X_wWb3wgpF{e9&PzG5d!4r4`eV@ks-77CDZJxhFH4o9 zX*D9%E)sK+9;Y{+1-9WTG!nMH@@Ql88o>Bs-aqq*IB`qI^T}3YBH_dM*1!W6QuVfL z({-hdpcc^v3i$9rkq>K4=m9&uUKZZRZsK^jG}NTfm(oBJI+@$?4(2+3J4j$xEN?mh zQA@>|uzlA=g?BH4R6;sLD@Gnt{~N=ZLz@=)9>_)dyIqxZ7acbV38gHj(lxBZ}x zA4r9W{GMQ|U*1)D-+b=Epvu1^&sM(ufJ5`dzt3Bj&{m=S@owsJBCX$hIS*ywd#`(> zfgs#0y8JL_S@26&(j#x`%k*3i!n`Z>o^6$XQ8w6emX$m&{G`Y%=h=&2_g|l<>GlI;@twfs z%O8`LOZzu1Z?6;{KGpmEi6+|b^2KdKOGt%$+Sj?xuCXieuu&pxU1;g^)TygKOm#%MtY_NsFVKR&97<|wW1$7p8qm)`h*OvgoE6Q zHRFzCPDTDTAL|~Nzi28#RFE7oTT9JJ~#B3~ZY zIgj^cf#+xmQi{Z}Sq^7Qc0=jyD+%BF11j3eZ&Brw$F9p|;#+ooy6((|W8Xu5UfoN9 za4MXc;gyd1Sp@#Tx0Fbw>*z34lg2dfQeFR^{dv91*H*!HJ6S@V+MMGjhIg@kjTFF53ySzy}NOC}?4H&k$wab8fN2dmx%kf+fl zZ{Utx@q1K(Kkm9EVCHY-V0S3e)e)L-+kWglx%8wtp6nQQle}jT_=5~_x9Q1sW@puK zW@;$;ZH6I4W%wBkGY_Ej6UA#{E+V(exIB3nAF%u=Ls|BtKDPoGKh->@Ur!j*zp`{UzR^l2YK-dVv+lVt9bd} zeG<%s_y5>>%doE2?0;BNQpqn!2?&y+q_nhjgQQZ@h=6n`sdRS;NOub;-AX7O3erlb zfPjGLv-UifNBv*F7xRWWXGS-B-}hRd9B0o8P7cjIz19}#)Kv(vyfmq^&jy{rW?2!gP( zY^PBLmJ2w`je*{`G#&AJjK=kjhcbo5iq4!q!5z;7Rm9#V*BhsV;&F;i2q{S+SfvZ< z&Ysk62zV*>Lg7SoQ1_f^#OvHcED9qNJM56RcK}5nMD+QZDOLW@;O@4BJKW9MR?&51 zeBj;_30X=v^)F$B6r?Pwe7HKA9o+QGV7svcjqL5O+j(sWJ--GckDAxJU<}p-4Q+=~ zG@&pO!d&~s&ftc5{dd&N?O9*Ae)_h%D3L%y*K>Y!2Ar9?07lws7)@f6xFjX?OuSLMU_!^L`TpjX`Jdd$$Ato=v`_7T&qVnN$@suwyVALJmIY*B35?NC@{Jncq{NtT&^r( z|9S&}hbY5wHB)R`{z`$=CP)IiVjBDL1Zug+9eW?;J*w){eY^Uh`8KRYt!%py2%NlK zZ!V4gT`A#VE3L@nBX8PHToSV23wbjDRFZinz1#dBLIKq+l2;_L2VUdXM1F~a_0DqK zu_nIh?DUy---?{yj}Vb)6d?R7TYy*VpNE|%b7mhaJl*N+WOz{&lJ#QuBB{hpb+7G0RmQcV!&CO}el`&JIJ610`+0J690q~-?90+R-R?tx zS;Vtv{xIhfJ-ZjLu!}#1Da)Ev@5k*p|MCi%3u_1!h?*T;Ut49_X}m+PiI}||V-a(= zXt2tXfTI!HrxJ24hfH0YWN*CdLag9ANjtt6JAL6+p3UsM0XGPkM{TV2-r66@e4NcdSsO0UPS$KJRwGGQ3=dc!B+ z!>1X#(6vo{c47GMY?Tw*Zk;f19(ivtYgEvo#ZMT4iElBzuyCv2HVW&@4x;M3euv6~ zNj}Sp6vgV8rAAkrx~^{&)+;~JU+Rmp-U@Ju*l>>y8rpl3rEPOoc#X|}&!fT{&v?g3 zjD#uL?&FoDvs9%f=Dqv!tD=<^X&y$`_EBT_Zt=VB(LVj9devsxKQBB3-qACwll#k@ zW1Gs%L*cVxJsIEmMv|_cFMHOU+_{nbMa>2{Qsz}3(L{@R;+r(F>%<)gdtV%OW85;e zwi|zm#j%Z)Y9yb%4AwyTP^A*P9xH1|Y0*z@d+y2b1)!thW$)AG&5G9|;4s{M*_`W{ z<@#B7ZwKe4s9H<$`=2j^CijGj3e}{v_&=RcZYCMB9vQ$EAr}6`DTwTNN4W ztutu(KxK~Voc{b$`X7}*pM7|OrNxwA8u9EC~XVtKc z)LO?YGu)+C%S>J`-W<)k)SYkTp1wX)kx#=iAz67Z|NTe$j;$b4RU*fbM?PN@dTmA` zeMI?{=2NY*Qm=!0P4qZixo#|e^>(DviM@$*bm6tv zf%0Sj(M9l9(%WK=>%KjqX#I`iCoGs**ge?*7yjhWYwyvjH}?dvDAihG?@=7BYmg3I zx*Bm)^?3H~+EeY16j>ePmyBAxTyrk{IxH*{=z4SDkkXnG!)(m=9{MUfnCz z0h}f^A2)B^>8_>Yov%2mvjb1XjgKee286b{#4;&$xxjTIq3saQq#{yVVD4@%I#pxd6U z=gqoO$f`0@FiDb;+lxl!z~TBDT_RWI_xgxzk<*sM)A!Odn^cYdJRL?!6OexhNk(vc zqHc*%a~d*<<503*oSqmCXesrdRg{W|y@8n%-m%nlky~y)CP9PK{%jAXPGk_xo^3Ja zw(z$Duvg?dJ_Vupp#$kHjEc%z99Jq9N2yrw_zes~nS=&vb(Ni&j^=J(kqSiT50jYa z+dHfqQ&m!Odd$8Cn6?0-zZcr7>e|(!0o){(#5}9K;1fiXT8x|@Z@lfxvaFw)1{U;m zgfxWzm-Th3$*Y4x6idJ&q4GaXOoatentz46p=U5tWQqV7_}diyJPDtZjhsVUbc<~N zkpQY=HW0$FGbd0{JNzH1`vl7$gnpD;#m;P1k?~y9Nqq-=7T4f%$Z)GO_{sLmiF+rACqi#Feo%sW7(>BO5 z+1_;<%IPd2`Yt4My#gz|H7*5^F8OVyPaInUXKC&~DpE@B=f*`_lxm?Kck>J18()S? z=~QNlK1vSstu2njPAjqY1mluiH)BrDbv{zTAYrzkbP3T$3}@v%+kmRjH7aqcfK1xH z>QMr=47uyT(mAr%MBJbf7l6c>LBX?6Xp08qIY#8aj0Qz$sdN-c0KYOI~_$&GO0>Z!Fc6Cf1DfsRqK8(fx`7yo!nMvJo z?pG7p_f&*CmM-JluyPtz>j!D)-VSGior=pQDNz8i&_`~P2qkg6;(pX)FnHCdMwjW< zhGi4gxb+;!UX4{ofL^6rdUshl#RM^dI-OKe4MW=Sc!lvCi7^5j>%G4>F>)zd)Xd{9 zFFie&eA&hT)WC2G>M<9t1~B}AYWOLQjS63DJh(F`z5R-@32GG11ar8GYGi4oCyW@w z5>{T~1QKWLxI2G?xM;HN$Q$gkENqSXy%9+aUy>lKFgn-Y^1$80yeo)#8saerA*MsQ z!R~wxRlMF|j)444Zi*?_VOc}jQ0Is=S1y@~SaTw^>C7f7q#RI@{?^_zxnw4K2PAA$ zVN8DZ2e`8u=*EF3p~aPa{@|0Q3y?N9)(p!(cqtal3$@W6upKP9bkh%eiE6WtGQ zH2e{x{s~u3{u_T#nfqsfqkPwdN(=q(m951AA%2H)rZB(N9*dKFB;Z$^&xA~*uR{%e zm#QDC3rXS{LnLB}+Hx2a!uke|1XA~5Nedo!TUWys>Xq^n7O>YC(v*tY25d%y@M6)O ze(ttl*W`_;oDfb}J+p;+-+Lec`;@VJq_^I}j(V$n^>V8OVfuDER~3K}x=y4?Ez9uE zTMi3vmQ8Ol2AcHOE+=TIa>sc+!a51IcM^kvnOV^Z_%zjf(=qJTH@<(sxHCb`GzM6> zg}PNPSE+t&0UIP!A@j11^6pU}{jl5D7DV$yy-}*ka$ac=3H8|0Kk}S5eLR!qJARxF zt@j-z$zRO>0j->I(XKa?uaTIgmHvK0pz#Vmv+)d~6kSRWUA75vs~J*BOUj`Qwzt(f zT8uK>lGAI)pw3#uBD@xE`PUbxu1-OZ(J}wPh7+z3(!DI``bEK>+?b)Sifg$QEHU>+ zHzV-kX63nvV#fI*csxR?17%yvq3fG8fCexfaC#1zYkZ4kU+Aw#I z7s-r3G!QDamP0&>k(*0#gm#MqUyc29ag>y@R^v=Cu#;LVCTTe!O`|?CVel@%E5kz= zJRcz?GC9u?G1S=JYJ3Y2wB2`cRUejTTonfOCH3Y=YFN3aE@a$y7Rv4(!mTg_iGF5T zUCPFvO3ESL@r++El!X%7fD??F?3P=5ZZ0Zrj z63jX@jO+pDMFdfWp2i?tce^E6@&v#;!{8ZkI-Baz;9pXYtWIGG?Uu^Oa}b!7@8_OE zH8W#!;6JJ8&Jc3Z1Z}EkCoYRcCXIBHq)O#Abi-@%I^uyZ0dN;9UC{&k!02b2o9CeV z+jCSP6a#ukuYcHxyZZ^U2@>V6uBug~^4saY5||O}-(M0((%1<%ULq2b`&33VQZcZ_)jmPPb8KSL-^V*MnI_l#?KAJjcF z;u^_2jyN01k}0P9ln3s(Nijy14>ogm99iv^JR#!g?b=Y=O~~#v3+35WBeLXTx0i16 znEmgI%f?wD12X(4@kVQhtEyzlz<>Hm5Z!JOSr&R%oOQ_-P!tI0SwL8Ai3G_sjW$l& z@LVAEQkO-knc7T5$s{YVgBT|@Ss68Zpa|3q0UV_>6StLJ&_)YeQHoEiSc5d>A{2 zWXeuU8yq}1BlFD{(lON;pk1cY@FKwxZGzLvduXr-T)o^-`Oj`-fq|wIbr-{xR_piJ z#cGLzso(A5x)F12n({73mBX^@u+aK68HsL$-nGkQT%1OQc&IhRs8XWvlbd3K0rD@} zs`S=wM!d}uX5k9%*5%%M|1)*);si@Kad_eY^0;*)Ki+!EIdhcS`Vip~AB1v~5k0#Z z-B77Kk?M099R1edidlMrqe5E*nIh@&s=@=$D+~+1f6t5_l{vN#%y1X;xQtCmRxsVY zs^|k5hLc>n$7PR{rOT&*N3GMjpV$5sBd z0Fm9nw8#?aasMgI`{x$uCqlD-;0Jgxf%m}APn>iwH1YBH;4zK=G>JtLtN0Lw7^o4R z^GB)z0$vL@jRP8un>>kBXgsiM6IX^^x6j)eE1=6pC^1y)JoqGj0wh-%mM%L11nkE1 z%ic{Fa2N!6V={XSW3=STPSc``FSODGSsE&;@Zj($__Elasn!^ByY|o~o7Ghek)sD{ zvdf$7Bwca7E}s?Jkn#fQ>e?y%$fB5mfH8z9zxo{++K@Lz;4WuOzw?t&qsmPONBZ$3 zmRm`jgihMfhb+@t9QNzudbozt3aSXzTYiJhhT4r4nS`ky;axq=OIOl%Tc_pgh_jIl#ZX>mPx@RK9uBDJ(8hR4Bsb6h@ zu?|?g3s{$WAaAG8WLvBU@|a82;A)Psv)zI#oZ=;o!oxd|=C0r5e0Ox&iSE(2gVLD` zR^tC)uMZLI_2-nHRnc$YP$sM$T2H8KemOmeq9tb;On!TMu`oA>{XhAZt28mYH{Qe~C zH&00?-oxBRSU(aVQ(^ChBNc@ZqN*ivn#ReXz89G=-Kho^d76M)V9@U}A^_=Xp}bXP zBTb@*-3FrUIFM(?PErT@L`vnS4FuuOaj|UTms%z-!4=Gg(tXcmTGI3fh?8)JznoH3 zB%Q`@?Ftzh8v0g=+t6jzm;;mwL_<{dEciV{RQ?8u#!xDXEmDN2gS7+uD;FB0w5(q3 z$8at+>pBuBGdF})u=Q2R?O#fuFD=3)mCd&8@FJq_{&{+0xO&Ex1BcE=LN^mIy){sF z0({^kqOA+^)oajCk?eS9x&f(}YTfR%ZqNM=sYKS~4D&kI={BTP%bw+Ewj6`#;c~T!gjnq86jVQ3)vFea6nCtmU*6>@u zX>V1xSA3%07ImbI`XPE;e|}T2J`<1?+e^hWyk^}vd!YMF1si4%{}0_$6O2PB`b~wq z@1Cpjt{kxXLtxuyR;iu6+|L_9NCV75botwqiM-%Ia}J6`#`G`66~-@Sr(j;U``mhR z&+g{DtnC*N5q_gbZoM+A--w^)%&3IDdH)(hRmc*DIM%{}#=;6RA57 zX4>VX{`Xo4g||aHR$A@KG(xZku;OO{>&`gA#iN+bBa zuOT*ZWE4$>Fwvc^r(V+UenHp8E0!*pc;cKR9-Q-o^KK0U&8q9;>cbrs=jH|g<;veW zABQbV(|rWSC9MWRuNbQ#7>w=jHLao$eK4k&SlcPwahbnfyl#`(taO=U5&lXfq0Zgvrm%WirZkCELh^dK^nX{*+vy(sR}*gwppb1{`>Iqh(3 zW{h1H1k^D#9Aw7uET8Ip&a;DrjMy{_PQr8YFGPhormexqi+;C1-(QOQ&qQ^`%vmSz|t3WhsD3D}=^5|${ z;MF9}4-|E^0Di7+ggG62|7ssh>D%-q#39^m5E0`m@MdA@G55+wfXu;h4W1o-hW9kf z4_Io}26;!wCN4e`pxU3{A(Y>T5c5<>&kq4~?R+ep-hlKD8sI+nd@Y}@@BAUHV9<>ZzsXk6MtBN zRgdBR>etoqBZP-qzu^U>CN=uM?K8Z{HsLK9wYhS><2}(v9FMQ2kFC(T_qeiebX% zo_SSSjqITspzJZ{Y_+|jE5Kc1M zR`|lcH?(jZXGLp%LMqT5k|VL>UK-WvcH{9-m;>Xm1_3SZjQb!{c}+kgsGfk2a+`iz zKpIKK&jTae^@w$=;8fLLq7)iGo2W!z1eBDj+d*dM_yn7NfW9I-H?H<=q)m=F_vq)U z%Og#pGI>2NKNwUkA$gOL`Ko#H6~oC4kk{q%f%KZfb~slOgHKA94VPjwQo(Nb6t4X^ zw%+;6rfM`N?ZVlA&TV@acoq#q#?G1liSLQT(WfPI%=+^`0;?O#MbCY8gF_6WJgQZQ zOB>)1@dgQtL>8B|?7(w18$9D|dPO;AuM^&6|I~mn1mh~-O~Qa68W$aYYyrPl+_Q~x zQ5w{o6y~7NRm~^#Kj*Yc5yOvUjDq~P_Kub}4VD_rPeagZO0XZPp869y21qlh>xik( z(sLQT`+9~=z@+_AwpPvdjP)C6qp2H?++|AW0&OSxoe@}49Zk(6(o(-*af%dQ3<=}@ z--Cg?tAmq~=xe#R(^gs+Plm91tk^S(&a>lEB$^l7`{EA|fP3@=BS86YbjiO6QNP&+ z)j$0Gs+dqq(&J%CYrl~UGcBfMDjFbJ8~#CW&N7?JCCzXjtd#~lH878a^n8Ed5Ubbi z^D*Z!f?p6?Fkluws1}daBD>*|NfXc7XH+Tz5q>SKTzB()ofk$@d09re1KhHTZeXW= zpaA-tTklgo-e*!W*>Nr(D1k)u$6Ea7xAowiyW+{hAS^|#{f3yI(eraYX-p^)4+$z~I3>dArX-MRu{{5V`}e$wCY$ZS z0M3G)<}6|A-;amh4yVdR>{dXJ?58DS7qi%%0hXr^?s;*B+=f#2kYIaUhIo5)xO8fm z<^U;m(Bm|G;Z|-+Om_Em`SW?(;Tykv45WblV zYXVCT?}k^hu^Trc>vRexDELXUf1KCR((WRxlig@KCJkSmGPEQPzVzJFKomGAE7cyWiM5=PrAVsHqz*w<)BAw#wOyl)E#l6^c*8WL2pGd@FdW{e6-z-f-#1I zy$3{zZw$VL$PPYpd$CbcS{8SKgkLi5X!Y!;9XJV3_+M{073VXu3sXopANAdJR^Aoc zU_AI+54nN@7uo9M{;2(bZ&x9)M9+AR^w~m}ZgF*k=)lm%5-JXYT?mCG2;b7HlBFF_ zDZSm&?3+)u2^13_tgSWt_p5?rVzEt=zKiX|AJWf~=$eu^mjPf=95TGYJ&=1_4}UyW z^#SlZ4YxH4PAxWnAQUT&@3*(QpHj+c;v&O0NOY{gOc=*s{bf%y;E@!0@KEl`Pqi7- zoWPhFKo5p1Z$iB|E3fx~y;2I9t-;DuTrB-U)yx{O*+sN~U;?{GQ_tUb3!ITEz(EZG zGwbM~+jC)D)!gTkJMoBI8Od0A7n1Zfw^#Y%v#_1-G;IH|4%wKboD?ryH!s`R&Pn7U z*X7c|j5RBB-w$n{nf^@f{6if9T*n*sU>1HHL-(Kboy`9l(f6l^=eNrVUw3`fKl#I{ z`a7IMb1S(B7oRTw;?fH2_U2WL1i9kv2khw^0rY}WdK&3ZX0JA(woDKs1*cQUs(vU5 zv!*IqB9*Ny1;rbBlVYr7c7x~l9H6l_wL~GWkDdw{`R*)T9%a&eFr0e@GeG7oD4qC9 zGnC&NPo6`psFvWjwQM^*2p2nRD{R_z2+AS@&1MsH&a4rb@}N?>=))Y_!<+t?k|>tg zpu{C;F(I`nuSYJBI1v!--+OiR*i(Hsf>m%HhBlgw-m_VidJI}^Jj$chCc^`Mj|biK zO^10O6Hh3R9X_75l65@T4Ln^QvEq-9k^CgF#IhA|PFuSAU2W zV+Bp5kAEgyrEGBJL0Dmym#v0MgV*`ZN$5Z50BgAbN|Q?IW~*8rdrCP8s#Vf~tDg#IoBCd32NHeK z$vb8zw=Ea?-ZIx+UbRf1i(sw4;QZ|vbI`Tay6zS&Q-H#8m500cod)SKv3cF{i%D6t zh=~rpjgqxakAG;(a7%-;CEGE?rT)V z;gPV~>DdqG>%lIf3L-Ri`eLRI{(!Fm@|$3WSRqrYkZMK}R}2cmRPm;9<|Yv(XIvPX zTK!P*`PA<;@*|JQa{Y9{El?h|wH$pTDT}Iz78MkKS*7Nw(m*IHYg6S|y;eemzu7rM z8FA_9T}UA8!A^7~>u?Diq6SX&F4_CXqgJpC%bsSBy78;mDRkZ?Wnk`Ox}`q%-$EBA z(Tn5pi+=Ra*9Z!S2biK}oFiJwE1vbnRriOFH{q*0$JYm`Ai^WHS+Bh2C98qfP|WsR z^D-Y5(){ZD|P=Oah{y>2bo1G1TVeigh(Ba@GQ4JLH5T*<)wJT{f6EA z(CVDJgF3})&D?c&8$oQ{Y;%nsL^@|1Jm(D5uS3PIYsmYx>7$%5$sz5phd~Y(Z6kmp zrzX2R&bjxKJ5#&7M=a3U21WorJ%(J{oTzc+dMDQhobtJD3~Ulrp|f$Eb5jo>)DmIj zEa5j@osZr+ovtYULhtMT=l3EF?*a&doTJz2@FtZ5PxfIoyk2zPvmyj`cc7tLx@e*T zA9i&iy)eT$%vU^^+fUe6J^q|5?PU7s%fN^|U`+HA=?{8DlZ|o23*)H#r}LvO@b(5L zJb#5IyU*Q6Q#)}Iyzqf8xsJoz_B*$9$ETo|tZX9vjyaCInwTZbwA)jB9DNLOkb<@n(R&;8t4&~*iYSbD zRrJ(?#k>;c6=pBEBn<5+Liz7BFBWqRAx4d6_b*wx6frL2nH;b1s=*m<2_#rUg|2X> zbd5J23Lw!#3mMIABohPvaiaKVdL&c8xcaFT#Jf+ge{JeaqC6R5-C(Y%_V+%M0k+SR zsxgYgo5pf%Gx)`rO)F+q`rTSQCk1OfLX!Xm+P&Wt!FBjAeG5Kb32a22i00u{^5+bc z32X=U+G=wxo6o!>{^|H(cGe`^Rz%isV8%~{vK6KnD*ql2RJO|%#L-1zlJDsbO`@EJ z4TF=9iXn@*6`g(OMV!4RQ@FdxxI5xIXiUbBpwF7 z8YlOm({c?!$Y>+eK*j#rq`mU}q!b+XLEd4(uE{jzmn^3W4otS#ba1tgYBg9tZpKsA zn)swt)Q>d9(l3pMf+ll-MEVm^C2K{I&|^Gh5_>xTt-Z1xrXh0&X=7>mL4XM7zJynu zUBB%Gi^UL_S!~*#cYR){ywPvkudR@c9!%rLEqY?u;TfXM+ z7y9uig^T`rKp`MJj+HE>{VRQi3`ZiWnuDr_bH@b&iWSP|^*)+)aLChuu_;8{<%*u5 z6`CGN(Nfh}<@`5YQ3NLvIC7}js zkFyXx%~?V!3qYQm!T2C)KNhz1=@myMAJm6`rTx`^DY~wN z2YH{c{o1_ACCTP)KO*uAwzqL`a5XwC)D@AOzXn~i4+A|u=&oP# zY#Ws|y`i(dEY2P#hg2&mOjXi}Khq^g@1!_U{T_AHxh0|YQ(s9)|l!RPU(ipvgsL~xtX zWJvcr129X5k#Qd`7S?{7oCXkEmiQCkNnx5egc{)0lodf)Ot2@gr9<~#Z0n9MCVX)K zaRn?39Y}Y~U6HoHo3yS8^&>EWq}>@~j8@XN04$j=<~$NJQWM?jnEU8i6nQ$0(fN%W zryELbj-4sz_xUt_=3MR)xVDuoN0DyJwCG&UB~U8Avq&{rdP|LGb$Sjn_2$;Vr$@i% zQIICt6HQl456ZCQ{^mcBqX`G6+h&nWs`?tsElq?nxDyr49TfOo;d7pwegdf7$ae}szKh(VKF*h~4(htt4@ zS;YuIehWc^aT8?hSJ0OXi|#426gGnPPcZ+x6GA>6<6s^g&KK7-thz|O3r6!PaAy4idBw(>K>cV~LpqR|% z0QU*GLI{%a0R(Y0SV+-e`Si?zvxfgu{ua6*l)U_da0csB;$SBic@l;3gIH_sMj!$pv}S)AQ7q_$h-}3i zKSUr*bBapH^%~aO;}E6fKSJW60*K7NIe}un&{YLL`r_mQ_4Rvo7PS2RplfH{H~`Lt zAI5K9R%c`i(s`CkiqE&yN(U&q4txHyuk3GhM(;pXo~x3wlOvK4RmF%Wb&*^jfSFxf z(kC_aPN2G4$K>wKP>)m~zX@TBHSA(!ff(2XRs8IMAC{&dQX-oFrMk1Ep1;UJrzA$H zDjT=lf<{c8q>Jig7NPhk&aqM40ky73>tWTce@|(4Ol=_)dCly9qF7LS(4ZHQ4nxsQ z#_RM9M6{+cPs9tpiAv^MGA!Niil8uV((THcsX6UEBr7CGa8fdyG6L%q(5A{Kmke9? zVJkaZB2>RRv-nH)J%hdADS}SBb%+=SU6=U+&)gnn_O0X%RG-yQ+Fkl2BZ4Q{K%E$t z%G&r5;f^ohQ5DGziya#6f&La-jDP!JTv|F4r#MwrLifFMvs5 zPpFi@x|rSzW3d$or=P0rI-gUN(st7*PNY}A10$QXuavDVOuTKap5R8AjNxz<$@iDN zhS?DQ7A7KI(@snc+v$P=Lw7YkiI7P31`T}Gf7a(Bq8M*)nMD7C(!b88N0)G_QnJF4 zoOY*K)*I@yO;iILhmC2D!k!8!`>{{gKME0Dk9)M@^r>0hTRE3;76z(v@~0M2rq6BQ zd^f&-UNIu}EFR@84Ezq{d?q0pr5R)BZT}l|2Cc) zrgtekJd~fvrv)xU_P7T`B-k80oSR0W5I@le2{HrMGa-JX@3{&MA$=cxDieO*cy(xc zk$gx8P~~ROV62aU1}AS56`+Z7`%ixKvUN?Jb=kihM%QY&bM*4nMTjkED@*p zK7@(}XKjE+%0?B6gAFm*zYSy2niU)eU!*q6xt)E4J7;+6mN|+xmeXMM~Pgv%bGk94M#?sJFGEPBS;!;IpH=qzwEau zHH-m+`Rsqv_X;XmPwsqNx&1*VOppOb=yH7@r&)^Le5bC)KQ9C;F|+ip;_oZ~K*|*# z)I0u$f+dLi*)Z`wJC7uGgFMwtuPy;|q-`+1G+Oh50bA^$`DZ2 zNNiI82ujox8x-7>qn~RT)WL7bAIs@8*?3D#5gP8HCr!WG_ z5E~%$c{bd>rFSHC+k|bvifzvS73$;$=QpN@S7F?NKew25HGYt5ZZyi`3P2cugj<0?;f-&fM3n zZX^BYFUVSeQ&euo-BKld<1gq>u{6{{e-N*hFT0=|#%4Msa; zu#n_y;8>v?7={Gj1m2YtrD{-=BANRdih$ob$OY-tNWMzG>ZmuqE}nM|$$U-P5k$86 zn#Bz7i^1eFli+8N9@qvVwoZ|c;z@OPP!R*RO<j<1A26J*13?q!6W2+_{gZmPG(8>rU z;l^GaU>*~w_~p$!cJ%4!&x{h|3j^)zpZsqK{(K>BvJ|5SN zO}h$9bfPK*L5=pffKuA#J@@!s1iIrCR6Lt=kiv9M?3;S2b6nlNU6+}2Zoylqb+`+u zyp}NLe{@g#F34Zx%vLn^q{XHH&FOs8cc2XJ&gw9&-#Gm?rYkD|EXkYWi$cy8*1odu ziC+m7OC7-sDey^rx#+PFz_eZNJ78w9nfKZ(FDguO`i1orH^vJwcy-+7HzbzvEPPdM zZ_G@4>(6vy1gaYDTNOcTf9b{bZ=RWBrf~C9@;52SZNSGGSZKB4P4S zGV?I@&R{%bq`raD0Ouaj>gxG-hd++?2#&xVb`vdW|Tp%n&RY^4q(oL16m?SyX7 zcS;vygkoLWsD+1=2CUxP7p|$SL)k_DW13a!DL04*tS%iW3Pi0OEjBxsffrb|qwKGY zSN!Hd=oa71y zicw8<{Yu+KfEQ>5HQ7yuF^PfDSmQI8)Ek9%x=CdnNF(t$q|`%ceZF>tcE$e4yZvUm z+MJhhmr-G`a10DY?S-;$A8X)c0;${UYF1`)0P`tN5pkhPy6)F)i8ifL_FDm)m+D`v z@{+g>iQ?QR8wHaHFPLH6hu?94iZ8+w1^IJj_RVjrdR0 zaQG>n!7I16`}(RoH~-LISVtH!l2i9Ayjbgx_{M*b7=et|GP}p6VZ!LXbhjpkgN~^y zWE4v;WZRz-V2=!i0@m=Z4ycy0UNgUhc@%n)QTD?-JN$gG73AR>JHwS=E?nO6MhR2E8iCePX`z zuBvT>h{4zbiF3|h0o|y@6TsO(lDUA05s&|DCX&34dn6TS+N1~4%Qt-?+BaKfnq1Z; zd|l=dRXc==nH$yUSuBr$)GN)2uusCo+WgO9G<_KeO#AegTTqShU+}Yh$e9<3#--)j z+7&Rt)brmD6V@H~h8^nahC|_e{3P`yo2_jl{9@<9`pjcZ=Pj@iIoqNoZbsudf{H8L+9J1`C?S`fiv1Q!NEf6L^GLfHFqpuMB_qSKUr47Z zeMnxl=bq&r*uj+2t?J(+QC(HkNl5H3K|TGmbDwJ&q(dmhpF+Cizy)WB#dWVw3Xkak zI-Q?L%TxyTu0h~~2SG-VuIp~J0HVz~ar*okhkB0=EQ*wYc$Rd*>r8oA8Cie5+CAv7 zX@>RO9as1Zoz=ssGI0gT+T#ghi_;9J-U~~u#g2O*gAALqDqU>IrEw{*plt}_oIb&7 zcm_7mZ+57Y9d7g9Cpt{vJRL$EX*^wrU8&}2w9J)iR@7YvLOMu_b$NZ|xjnaE&5bH~ z7EYv`E1P^GOV8$+s>!{#$id+z+ARc|31Y53IHdNLJ04vSG z?V$7BVWI8FFICVfx8-b?CehJ3swzpy7mfV3=Lg7wW#q>n@b+^`cGp|KYpiDW_<4G` z@TfMjO^9g*f`aUjoyi4iMp__T$XN3-2qQp0(jc~C08E@_gW5VhH9g`)nV11ld9WmWDci z!R&#^{=du#q!U6+b4jBwz*Iws@MWlum+A!+nXLigD_}IDYz8M-0d!)m0Texwm;Pp? zC+wDH;2vz3JU%R^V9f&H{@!Ec92G^f_AJ#+*A(Foa&Zk&3q!CG=x$Gd^tay-<)Gh> z7F@!?C`MV`_tj|GU0R?u#U8Q4;U;_FQ)u_!D+4bS(RFx}dLkR63jaJxp+E_k>V~#v zYBOI`+@;<(W|H(pp`2VyZ;;^+!76u{ISGFzTlJDgN#OUajG9~bx4^*e#txIG2wc}u*ZBz7B_XPmXgX#L z7`XZcB_gdk9)AoJY@@X!<bBIk)wDTboZ?dlZ4oF@~mY8<||GGAd@9qH0f#)fV^Le(YqiX2YqY8Dsnp6OO zKECP4%_#fq>;}V_?0NDa6%CmOK=_u?+Chh?3K%Fc=AK{=bnQ13J@@?F0`|234b`ft zPZODgD1Y5E#lS$t+0VZH2iKg#*^1f5eBkrvW>Lp9l0B1qhB2g>qe4&4bdg-9y#3sF zqbGnd&wxKsJXhPe?0S-XhOF5QXM5lPl=$4&SYDAQT;u$4jP>;FhHDebX|~W8v^tjH zgqXA?kmAd1Hz19xGiq{fErj9xeTklNXXZ)Dx_NUqWjvJ7TQj-F`=AYFqY2#CATrOx z%&CQta62b2(5zF+KWPk1(~7wf*KRw4Fr9{V)(ojqe$?aB02uWDdhzwD5q{ZK&z&;3 z&m!xw^8FSYP(;D7rq%dzyKm7mxOqCv)(wEA>uQKW(l|q2E8QX4)!~1f%k9j78mx^@ zyfOM~6js2TruBu0E~*3-pDZkYZ1n&-v+;;VrDTRVqR9 zGWkk(AopICch~3P;E_GZ7QI)c`?_u(Md}CzPA>ZmamF!#&7{C0Ig=d_DqNM? z<8`i+Vb}vMpCMQ-)_xH)%>v}5CbKs(uX%c=-*Wd{-$hupT4R#b)>+NGclblci* zXL1=6_;aTq1j+!SkrEQ{lKK1mWF&?I>*64Mh}(>=8aIS~0u(~Mp%zR#{sZayka_P1 z$YDtE3!^8%!_EV;ek*}JDJ({v3;VzwPP9E02eAA$h-~>%_fDU|dIJFBq6lM>BQoeY zz7V7af9yH8*xP2WFYr~u;W8&I0_qHb(p#11yqXh69&m~^aMlnA z%W!UMu;!S|!bsxVXC9A^H;j0Do;#Fa7d-_>Sj$k!fTro+X;l)$_sP-fbsp@$vi>`r zj}skntS;(+K{Y|>C*Uv&xP0Rmam@&MR7i-}C2e&i^B@bmPm!u(;t@y6^KmnR9>VbF zTs_czMu_qsCsHH_q_;kNSR1xY3(o3RU zq~7s79YIt~`s5w*8ZmOws9T^`h+{klbb1at;^UX3XxGgoe3a7#u3X~|;b+|I4B*N% zc?a0&g$fb=^;~)@{533M7KUDR4XNoSD!n$vC)~SM&twa_DNiLVG;hXCLAZkHgawi+ zvo3k@pEHvceTNaWVJ|&4t^d3%RfG(WTeZIJmMwYxN%P{=Xn-KTc`ca1 z2V}pdLf4ph-C`pb>?XAch;Od3`2*JNkTf%sHgJs{4Vwe4h8$_gwfD_|S~n2Pv*TRH zCk{CB?xOZO8c|XtxlArs)CmznT-{(g8kn!h1DbwA92GWGEf4yHdbr(c4_c?aDVg<;bOZx&4w4TaQ(b$P3^{W>~jl}%r>OrniL!9rw z7LpB*Z2$R?$V4#pu9XA3U<1iuriDU^aY#fqjJeeI<4ITV+#@Fk=J9@Z(+dOqf+7X^ z0q%a5WHP1Tbw=jC&Y}rzkF9GzL$YHrUlCB`0{q`_koa^~C5}T;+_qSfL=@3#5}Aj- zEHXtzT`WJ9k4X864>Fy`TNsJ^HBl$e7<) z4ueL+zNHZ)x@&C|-;!Zp>0&>mchDeyOpElg7Wcx0b_daS2aEX>otlcV;|gTS*u2Hx zA!K`HwGJT@*T!8iZv4gcBlpO4L<%3dnXUiNXd#Ra@R`*|U%81zU=>(5X74J=UZ!X6 zTPibTLO=M$FGVOvNY~bXStx|?Vo3zNA`>Mxkb=CHeDBq=Ubmz&t#dyEcD-5ys%>$uIaF8QeI^wn z@fLwpVN3aC??k0{zf!8*a@QW2He1v{u39VmEAORcq?3VtY|R04WF;T&Hg-ws8bRSvywu6YXjs|wL$TB1i&U+H{*A*eVP{RMpHkI=&FI_xpzgb*q1!-=j|GqB90JQ zrj6{Ue#dP3wR-c9uYH=WFKuj{Y4^t{pXCc%XOz zT8#)y-?ijbuT=#Dag5aYlR3aOFSjJa!E{5ZT{E7YbZ!nd%vmaHpL3n`B*o<{#r)U< z(uT>;WW!O6-kNJ)LB!oHPCjm1^sT5CJPTH7Fuh(mpm`wi_dr1A{|n+KxLZj7T#z8Q zF2F%5EUYXq*Xt0J$b?d#DW+=IS*7$)C?jXM{j6ao(C3*O5h@_YO^+7JQiX~1V>gb? z4a3mwfKe_^>+vG!4Dzyy%NCyj=F$>)uj>jf8q~*IfO_lKS;y*(hN`lUe}qH5VKMK&Xd#eu`Ep;&u*(wz=XcWo?-7W| zV}0~C<^LRk**M){?Ql|D*!1{xPA-z6_*k;$YsNh~(~Rd%%W@jmn^dE?2a3wb&x>qb z8ko4Q`0d|=RWxm0RXJSQ4IF12Hx^pyE{D>ydBu)kbHV0w5U{>*+%eLsyB@G{V zu#uX>zGQ?tX#+jtj~#k6$j>*?d3fZA=jXrDkCJpl5<@$sVhS8O-xVtz0Ai-7R*fe~ zCi9`*tOsw$Gng9I*^Yx|q|)3HRKn~&f~yN6TUFB8$EFoiROU6~2XWm{uUTW6V<33L z_IMvs7SyHx0fs@{^M8~lk@@QpBgO9o;ZG|bYxDPtPF5IietS?Ae*ztO%IkJIj4%h zhCZvxSeZrrhsJAyxZq}oQ9-aV^x&yK*#H%}(u-k5k$z_R+X|xaDaTn>H?V;vzHIrE z$=|7cd-7O@wsOVn$}AY`@=_Wwp$rpi!N@p4yjA?*>X8$(_`L;Xp@0fnqc zvDgayd)6pUJtA4W3;UsX>VIHefTO+G2>J9@tA8%EFXWfp~FN`@Gl z#YkX>>J>J9{yy1b=&Jzag19{X>coq# zUV3?J!OTWW?(#$lQmi5#7vmn8JN1C3(E;k8cN#J*LdpkZ9MkR8`t<8ICZ1 z5F%WM{lT+e?C})sK{~>*6!|bozGu8)7Hs$RSGD`)uey;7zwV^v@v$c4y~(py#T$yX zkPpRXkdY@Ih2{Fo^{d`-VIG3cc$2H5zP`1}4`NMp z`DV_(Jq3R7^|<&77mh$xv$&`BQu{ikT7^+f7Gcf3v9oHvvkAl>*-i54(s#W;8+#jj z38b@E_J194*lDfOFps`S;h8lGHb_1)TfDTWeMi%YO{K`Y-!XJVuRFtS7%6jve`}0x z%@If93_8)HGnn*e{3(fX{7Azn9Wrbf&Y=DOKbK%dNA85$|BtWtj;H#6M?@(zBaW4oI4C0r85w2f5QU7EkYr~ZvhVBl`F$(D`*A<+ z|Gp33M?T)`bzRqUU8hK8ds)T4Ej|;9QLV>c=F8^xQ>U+{xjQMcXPt z;l8p4{RPgN6_Bz=YVMDk&Xa1?n-uz46St|%CakH=y>I40$;j)nI?JHQ_;>}GFH@A` z9pTuch{M3&9coLFE_^I3&iz^~K5)+pqRjeQA=G;`TOBHPQ!{fT_m9BeG8#Z-ffJ zp1p!}P0x#~pK{Q>dKzq)~sL1i)RzkO%Ft(CQ?9v#LdZ;&a;f%#YzX& z?)zAOR5D;_bi2(Lb%EtXd@saA*(|A~t1#et&*Gnt48v$u3@6}MrZKsCILf$j_Kk1^ z_+QuP@uX7*X8D#4Q-FE82F`X=mrcP?Y>Gt?jO}BLwf0u(^B-%zHZAU!rxO zpDABqW4d-%%0Q-{Z1{9Pn08K&Yg_wk&sc-ib^kW&dZ|KBqJA-$^IA+X1kEW8{Ov4@7)lIihT52}b}p-?g%Gxs$6*IK zBzJtdR!KE*tz7@0HjetX3Qpo~)^l!Iu|fOtPQAGDfe+>Org4R4&}2HeLqU%xNGu5x zR}s2admu!&OSifR`peTpZ4uR+7?s`05;w0Y_t~9Ok303cxk1n1QmH|yvt@W8rKkKO zw9doc1vMX}BYhtGuSEA;Zi$PW!8%tHg~R@TUluu;j2yl4lXmbt^5Y5hJkJDJaZ{OS zBRaT!R-ErExrb6zRXejlj%8@jj=xS^RNLvm{| zT8!fK(M zV=(_b56@xoS^EO{891!o0Bdm6aKV33MNe0}Tbs*8Bx@i}VccW>_@4UU+5dCmz|&`! zU=SOvUib6hk#LNblKcB98E)aT&ca@mJwr5K0yIq0g*TCznsS@K@C6w9d}*ARYdYJL zWGQH`spNKDpOf+$^hqQ$DthU^*4eA zpPX9h2yIvO5MInBhn0M}@u(6=SK)YRlPFa&HYtMJn~_fGw^~kR5lk1}%MK)Csi!ua z#=jY5SVN9F7~DZ;GrCiBv_Frf5@u<>B#2(Uf^xxC;&yg(JREsVrU*Pe`T(08&6zrL z5stNDfV_<#%iXK!9>u5c-b2Krn8C2$N3QMmX+TW9L4}74uB?gu5sf5uY$qPplP`$f zp9!g7ge`_1m7$$&%Jd;8%EHr*q$upg-^{ulH~H4N&<3ry#v7Lh%45FGCGRX(=|lu_ z4%mc+_fSEfIYTL31GlQM8TZ6@%o|7qs!T4X7 zx@9ieS*T-mRa>3q66Uu4f%YM`aE@!02RR?|-W3ic-7evD4!}~iaF-n!a^Z@=uROI) z__WoZd$DPYaSWWaF_lG*yZ=|cHdoVdlq;V$D!ZQ1_n2-P2IJve*s@1wETI$fG{>l7 zdG+^~XR1uFwD6;ST%8jBXWd6&CESEgs%QM1V-U6DJVJeEMt`5mum+Op=UaE|RoK=9 z9+iqvvDhYLvInuZvx`PncwRpo=#Jvo6{_W`Xk3X;D*&jxy1uqb*PA)d>8GA?U^Pxb zp7?P$=eMly=?WObPvAl`Ow%>ilRZsr)*oqx6^eDIC5b{r8N|uQDtBJ60F}d^hi9FZdi_+~znRs7-RH0in)tMjN zbN2Hkz~*L(>p{!i3q*#<#3$IOPx1`yj9!C;ne@ErciIiX5i7H=-eiTzw_zw09{Rfv70 z8=42m2GCDy8~S?yC<%vn9rxUSgW8ApSTW9mA$3jQSd+~AAN$~i?X4JqOE zYEfi8sh#Tkzv|91#o(QvdEOCVid^n_g?1;^E$;w7_(9FpZ7_&XuYoNvW>TB=|S@{%`!)uk2m%F5!os#y9_pV^PzwiV?AX;lGP6o`aL@SaOihSIzM#K9QS8jnF7)K~ zZM{hYe9+)kg4RnLFEyI;u;6kWfU?k=fvsaIZ$8*cZ{Kj?(pv(pr>)!Z1KLAZAfSq;z*VTGFy??9&5<|CmmdEnZWy`-+ zj$zZ5X#L%<6xnJ1{0O7=iu%~o>Pd?S70wRZTi9JGIxKutRb7KOppUsaJy3t++pEnd zVYyfN@wg?GZErgdt4JHy>zNDK)x`BY?R$rU6JaFY6=Z@RxWg9)j_&5M*BPO;&=K7K ztY#7biJZoOj8~}V6b;{5DZws+nPw6{2mR(-alN2EAAeyyGsJ%j!Y8&_=f%Y|f8ksq z*#f}*NY|r5g46yu?xF#2cGmJ~MvK1vKL$WjNA~Xh=H@=^@(feuJ8vOVD4D@B&%cW*t5c(X3EvY9s9qB69VNHZi zsXLHXvclCUV=X@GP;gLJJe3K!#tjHaHi089iR_tH#mFV8F4KDh=I&X77QE)R=2KEs zM%AmBCR6NZHw`G<6Zl^lY)AdOPbh_*CR*Zdm$j((8dF3cIx(P?r?U!D#C@TsMUWF= z9>@y>?i}#XT?{*>$o{F&HXJchRgJc%F99`p1NKAHV8?`?#Noome0+do)?M4Zc(L~` zoTMc;k7gY-3?BJ<1sn}~m`}YLbBVhynb?P6G0ZXQH#B>kObq`UNz- z41k`v2k!YZGv}zY&)wFzJoKgT?4MVdEaeC6!>JLLpME#RNIPPXzpDQzu?}}YcGMc9 z;wCv1hn+YsOlQAjT$_Kun~G+E#EAAZepwH+D6wb56Vmc0kB{Efn;62~+MkNY33|s9%Snl!#Ej zsX7d#R#}47vIv@0w5*CBg4gZ8B(4iWop``3T=TKSX{vG<^fMB}1&>*&UrWdGUdoku z4&O~aLt+P*ZLsKI;@_!n6HS`hCKvv4$@srFkK@EI@LF&h*D2liLOKi2Q&A@fm$KK? zFcr~3k;+j$qMkE0k06e04@C2VM65yKe$-Icd5>SI;7A#@kTVja&*ls(OQ5{mro)O` zfiRf)$pUQ_qtRhB!1V$mVpeiQzj|h<`4bT8V;su&3!l%!UhazYmT1-9DQNV5di#vr zJl&l}cvF^e-lBu4K{woxD;xVBQ3%!zp)P`EafGnWe4@rvpNIsU zG-WBIljE{Mwr;(B0`!1wO+t~HHes9(&pXKfZ;FXXqGP4@t+ObPGewT8r&Rv^x%L)< za%R9c48y}-l4jBsxR~o-N5By6$wKLJ#-Kp4T9~^|pZFgQ{mW5*a@Zzd*slzx9( zKq6!mEX6Xs09j_-+ydickR+J^E+b#_kU7(_!DxrcCoTiJV*hvDGo`$Jf3RB_l^iJMw08($ryYw6B^VQ~h zzXFTHPkEdBTLXfhfRYKipe=L0524kekTdY(<-s_zF6T^H49hC)lo(G75jif=Rl}eB3?8j>tZIj$%K#tPV{7c8P5EQMSveze8pX?~@ zj~3irY#ih~%EYyK2;_A$Yzz)&l|Dc#Rk#-HOV_*KR?oq}_k=r(v||>qoa;Naj6($n z?snL)h@t(2OyAIEgur_RNH%#_zg;>I}A4hbIh-BPeUlRpswymXl z6qme;;;O^|;fVa5n$7=O+E)iR6T%j2?uq zl*)U9CmE4oR&1rvvUa=LVlM=mz>b-=g(6r0Ujl6yA>$4B&qVtMaod&SmeJU4dw-;u z;?GH0nLmQ_Y)nm{X@Ip9oHicN=uyc*90>}aV3fa#c3r8I1{T?T0UWU6y1P)tuRDfa z?Zu{P6bhf~IPBw6_E?uStit$nIyW4b$KeI^59ke)`2U1oxCGr!8?U5y)gDL}YC0>z z?QZP>Pj>=Q ziZXYQ8s=`ACEx4orhD`;8F4S1a{oX-8)G1}(_JoqPg zStj3RJak1hn|#QOJ68EDVa^UAJlPyMSY~L+_H{7V>2fMijTuiz`EoNh4Sm%g$Ha2{ zR{W%QU2j1>^0;D}XffHEIu&)^+Ei_uZP9Ne2c+ceCEPDvllTsQdz;;1)_}h=FGJw5 z%@n={20`4Plas-5%hF{6_F@>TxcX4GsYX0Q6MLw=Gyzu5DSU%tzH;Uc=80h0cg)o5 zEH?6J|5Z3zD`xJ(pP$0b6{whVPk2He&kO{Bccq&s{@FGSX56pf=3>^zbt&wzJ8^B5 z&@)SzML`r`qhQ4^Iqp7fO}<)QVYMw<={0fK*=VWsoP>Rr>SHHob%&-_;#B95#H=l% zboqdwX%B>du((>PAI7ywQZsNVd8xh7HBa$}!Wt)C|CDr&Z{@0!%=UcxL}hK$|w-gw|^^=a>JVfjESbHd7rJ!NBwK zsmJs{>#>p7*U52MT3zX1H-j!_%y5KeuXh0F^&tJ7c5W=y$KB$YVZ6es$5)AL>o?=Y=Xc!soFZJ+LbtV_$*}Yoir)> z$vC{qs_iLB4EBQdP<=q@@(s||euOgy>$=!o25qc##LySL3%?Le4*!+)lV3en9`lm` z-SZr>8!Rx-I-^I@mo!z6kNgiOdeEa}Y(w#fQ}*nMRR9vQbdk5-Buo3)lw}2BSn*?_ z`s%b`)o-i(+tJTxb9NU(?9(IiDKiaYQQ4(-nPf>%WKiw`sZh6o!k2u&f6apw@$y{l zDEtq_HQ;FZau-29DYkf_*&b$yE|`9WLdF3~3F#`*d8FjMooJks9Ogq|R1)xY$H8Cix&gGZkdIFb#6#=sP$b5|@&>U4|TYewRpnTLHFo*f-KJiARl`RV>V zJ7?O{pkft!{X6hG=n$wMN_gUz9?;c-l6&ykdL(ub@}7l`(hQC*!E1C*D63NGc$S#Z zKGGnVW)m;O2%3G=l$bcp-KTI4;pd)XtdfJtvo9l$HZTma*obiLez26wiJ6pz}CAq$L=-p#^Q3!vsU1t|t z^4>IIaz#+b3k;!CiLqUGFLqbSwMJcd|6Z%FAT?U3*>RcT|490_&t<`Yw*CA@@4)eT z{r6P#LCk5m%rUA*u%2@t86RQ>szCFRv(hX9yanm2x#Y;DL|ph8L!3$#EIKMHSNfo} zu#O@&0N`hQ`wV-VukkkspyO5FEtNTmn3RGrB>6W>+xUOxb`DB;-1)H&4uU+!H5eu$ z6|EY2>3{U*(E?(G)Xhm#w9#mwd=0EDSNRSH|2vOqIl`dL9q1{<{^?*gv!}Mipmpc$ zm<5K;^5#J)5XV-^9ku9||tv|j& zcCK=2d<7ia{J=tcmUlp%P8VOZ68&WvH~`#zuD4Fr@zw-pHX9sQ01eh~7kt4$x8%nX zo6R{`IqxF2(>&-*w^0E7(QA+>vp~Z^71Gsus;oYcKz_(^98}yV9%f@%pXqu5`$f1v z+>x9G(RBGfc>BhH*^;GaW%KUMc5Co2y)4*%1Dm%#blguJzlPRC-#$V=Ob=bpo0%VP z54SoG3xgQ<#TVE#s=4;j0+64?TTK1w$)2z^98_t2V1M^jKr6Wl_zg(9 z!2mjhewb_7^$*r?dcqFfk#Er+T~>i?0w3*WP(*p9`Zr z9fA0G6&lcG>6~MGFVzWF<5}DtJE9^lfKEPU2IROmX?S${NO{qj-{e z6p#bg&~?v4=bZ3$_&pY{_%yZ;;sP$i7#ZAE)Upwo-MqQ3fcBg4zCX=rjy$AFZYJqk z$)2Su>y(``#KnYDzHvTU+}{XNrNh4kE-SgHALKM9H$v6=HpbRoJE=ULbo1*p)}Dh> z|4gY93eZHuVW-nUeu5+^^xO>6l^G8%JoiTH)X^TuTDE*YwDHfdTu9I94F1PRGXqMM zQW&#;?k^g|Q}DY)p2ZDO&cQnIg+8ix&uJXm%KgR5hn$R)({9qChP{O2HWykXbCqT= zLz%o!Q>;8nY>C#+UL(9e^<@F%kj31-&(_TWR5_7gU`#rC>zCh1waE4F-x$>uPOg~GbD zB~{gEmovg{UtW$SzMqfcfuJ1jz7A9_Vdn@xPTZ3E`V%0C)jzc7dyw}XmG^+q1AMa^$q;kh{A;=S9H;ZysWXC^Ul|D*zBvDXBl2qJ{(GV5AtP?$w(r z0W~inMPT$qT=Ep-UGYEa7--2EPFUMdq8(Csg&V^bTA?punxcA+Ro-(E5zqt`Ev<>#7`@-NZMz#aHY$ z*ZH>7nfs6*0PeT{1Dm=OVJ;BbNnTYtdaFZuD(nyvfuC2nLfHj&Fgz`!Ne zFm9#ZQ`?SHQ8bK-_ze7&h4&_0o0N6KZV6adR_RsSCY4MGn=?;=1-r@2&yw9=-kd_` zq1W+Qq+X!PbQEmcb-)OS&0KhU{8n^j2+IS^e<~isn>^^~$YVs?zx`0Unhbq4($>S_ zp}KJEIQ`S~w3O1$+e0ukDBHZT%%4zV?WlcY^BfS(Ch-;zTG7_mHs5{&>Sycx<4vvX zhy4THYhC_PA+}->QPzpr(YLds+ zYN#CtHKX4SSy48PL!VMtiN)DoX@z~iczcWUOC?4r+)y9p>(()xs=p6~|HUdmyD~t> z9>%$LhykLs|Icf%`9!Kyj?&CG(S%Pr@q$zVoj$JWRTH%A;Zw1L;py6-Pp1Dp`6FdW z?8YK?5QSd5Ki@?ACkr6tqMUa$F{@?&K{dC&0&tQLdRh6}xFW^7xGYVK?J04OPFc$3 z#P0H11Jh>@Jm$nkweL7yit;!d@IgG*j?f~Rw~69+C^m!W?W`7i)FtL@6s(Z^`>9uJ zzRGy}aAin#w*iN-tDu8I^Dt<4OTYm8(Y_o$7U8G(&1_xwE($#i~z8z-=RFWDq1>fw1n_7THvCnO$+Q3IVBwY;ml4JUoDu^&Vx8XE=;%W7`~h4OV!GZ z8la5^Z%(cM9;C;4Dpq?xmeXXdk&PFFo~{`3IQj-S#qx{`8|K)3pk5zK+tpz2{e!3L zxMHx_w)9X|GgsonS%*>gd58g7I&!1OBHjbYkcAII6TdD694uFYLC^slVb_1PepZyr zA%Aj{E=5YXt5D1Y^OD<;K?K|}H|Dj{pC~9DB#q*ET(m7X0`HA1f&T4X^N-N_m6kvK zK79TWrZjg9g?P$-GYb59AB^LC31x|3+a?7>0KP{p#t|dWL6Wf4Yqe@>)NzlDit~Wd zd%qp&7LTvyv;Zwe=ET!JBQmY^#|XBia^P7o*Av-o2h!Vv1qb42)GK2_YaY|&_+Em@ zt;L3W5sY;(oyxGw&6~L^d-8Ey?^i$5MsU8JOTIQs3=uc5^b-7mmw!gii* z^j=+xvcGVU%P9SiOiBB!xb|ek#c6QLa7HM8`Y)Uw8T+f}UI_pgzqhcli?eIsVosV6@Cs!O zdF_!+Hk4Z~p4y4(191-bAF0mNo3KW`OJ%b_XLH?8yDx_+9?g-pxyLKXxQ{QcI>5Mi zy(lJpQ4;eKoQuPW_9l?h>xC2`@Y1jZpXZf*b~{F)09dsQ)|u6d$2(y26DF4I0l>k<~4|EZ&OS``?zLlOsiL?qW5ICCpBF{5<}Ox zY0S!;(<0R80eqwi^Noq=9~F$Oe=ZyZl@IR#o)RsRpl`{ZzHpcN-{P6^C>Lof8FlNu~%?{10 zvgz+Ohm@fy^92b(#x=epIYKm974|$#V^EOpT@P9E^yV62`%o?MuQ>S1%pdE}#;X!vb4*eqR2@K4 zGhHW&kGAsWFMRK@dYwWKaInzJT=}{z^;L?IslcM^5A+7K&Tklc3)Tz1?f?5s-{{iJy($MI zm`X_|T8t!qxlY(tPuNwjAs{51zu)ZUm!W|}?MlX)$f-w3+nM?*g42P~f8$cwDtqy($IUhD~!*K*Ans6CGh1p5FnZQe`qeeQp)V`O3~EV+W+aN*%=(R zj5^E$*j7h~&uX3GKCC=Meb{7LFC3)oIrCj5I5&F^f!#^gxrX`4=;PMAEFAp-_D7=c zbQz}MT(5;m5}Wn=Q`Koklms9TixDA>l&i!tm@VH&_{h3y)0cn~y5S5zRq`cRm?u6M zT09sl&kIqBtAt5%9P~9VM=<(8`Ysv6oBQOPZ4Ot*aIAvnK^$Exd$2Z$=gU68l9kJC z$rI!~|Fpeu?nTJ_TtA^vqrvzWAYt%*wN8sxha(NZ+LX*Ii^V2Z7;J@UKi$~hxX%H! zigy^uxZPlBbeU0e(e+deG9NLM#+w$~y|3wPRv%i0!FEuhgCCz%RE<+8h)%W|A!?~h za82}$-W$4tnMG;ah6^%_pnh|m2Ogo3lLVQUMnI|Fq6>GS<9~Y`RboN}bd|hs<9pVP zVb+9Y_AzE~-WFK!*X)NXGM4xydznA$g;U@8VQ(6D`nqj@+a2}@VZSG97aLc#8#2W= zOvMrVX;*+3L!*y>wCZfL6UbA{`wqsspk5{Ngi?9w_J(2jvSUsf=0!|{Dd%f*+|H3W z_8s^MUI~Svjw@X`EC%~VSwPv2si{+pKZNAf`T*MIEMgB8fu7>DPndX1PrMu`WG`?3v}2*Xld^ZWkHkh1f!fL|ALZlj zV;5IR*SlfCk8}|83KxiP)wwPfUVacO`-7Y5w8=8A>;r&UUTJPcKSF;129x z(Jsh}HwWdLBAgScOqQYh-8sU<5r9I=ntz5EgqO_Clf1HZo?MuR3nSe;_p1@b09Vpu z7_+eP7sA=DLXV?SHxr*XVsb%mnxb#9Yew(X1~OsM#3q)Wk|iD(oPhH_3;*A`(CHjPh-newA0-Wrmt z_YB3nn_aq@0gxEo1HbwWjgyrU$V6^9#=hTRq5g812f{=bjy4Veb5xEK2QR31l@0RH$ zP)msrgB@Yfjp-nZu$BK8h(UKT6FC%u(%%R7Pns_2)qmXhYtUEEa)p^>R4 zNz*(jalLCZ!);EWc6<&K@#P;ket$+2K3zlrJyJ6O`~rNuTP|J-oh-z%;u{A(}LRAq+Nw!=cu}F5`ePiU#Qbx+p$i zdVKHC)fG5tOkkG;Q$a-uY0|0E5SBv6J!dvO*yUvlD9H`z!d~v3UeS}&ohku^>hW3^ z@$27z`Huor{rRO5)@`?oT+J87gJ$2UYdiZ7eds`f!0t!y@VaJG(Cw9%a<$k3Lu~*h z+CR6gW<#r0zzwaIS3}Of*74!}SN{?E=Z)Z?9&z{EvaLebnGk56V^knBWsSxYkllQ$ z^tvfGpqDR5#ojoiYC-j4Ibtt%qd&hfQ~Qf-`zkAb5HtPrm`R(S5_!9YTq3GM%{frkT@ZYq91-#lv}47yoQ`t+R+m@f!d`E80Tfrhc`5tDF>kP-qgb4cH&|cRjvJ zo&xDNB(`|U(}s=jz9@S4y}f&n{QHCrXy%?<&=Ws&aCec^>G3kkyF1!|SDE6E@Mn62 zb?i*BhlG|^&Qto6T9vLq9}m}Ow#3?y*+Z0lrgo z>1g-P5M&Q<|Y7H0AoW=PM67Jmz2K*CD##L9 z1W*BQ`<3;(6;_%jdkoM$0-IDh{TE`rD@ahh?!=Mb)-cMfY=8PNd^7|ph4S4#LmOJ* zmyr_&B z6WxyT9U^48dpkXcj3GuaB2ulqk<;!h#1?dvbsS+1xJ#h_PhD!E*gb@H*b;^Gw_htI ztyw}q&k>sf?6z%COS1ht+S!s{Iitz^70b`w9S0JBl_fxAh74bV`M8SxNNxbC`+J&nLa> zraVR7glxA2g7JP{-MTS4nC+#s;)30sDZaX-udoZ}Diq=P;K<++U=WL7X#HwvG=Pj& zONXL(Y^9}QfkxmydGSTgL|?V^wf?8ylh~HjKJRP<6&4N+yimiOjs-lc`w38)6Ho}d zM;?8I;dGC=kbF1BKfAGErkMO4qQ-_Q>VR3h0+DS+&|UU=s$U3OT7f8Klb#_VYA^d^ zC6>&BQ}|KUSFQ!%PBwwB#>|vy^hsM{ho*$UW8vpw8*almz&`cK!Y4P}1`c0e{}V)} zxu}fPfF<5|ONy1wQO;@>ExMj7pJP53JH%GPM$oT!=bsqTf)uw0Wiff?Y2l(vNi9iI+x& zke{IYShB@CntgOHDeZ0oP98ts9TRe$MYL1#R7)af5opuBNNYFxv?{L#Gq)L{pXJKfT+Gubpe-9;Wp!!qe+6#niOPkQnE6hx zt}}<5j)guq(>s10aFHsSD!;8eKEm}Ko=;%e)9J3~S*J`kM1+~v_s|OsX$qI9xlwP% ztoSOk9Gg7m?z#nWpE!!|<*mj1`>Gk-gd5D?5wLx{*TzW`OrWk#zg%DX)?SvY37= z#>6;)&3iJGP8h{J{(Cu_w*0?E8;HZXy#=9NWH*j5%Mm8nGL>TJqh)MG2xJT44@ZzQ z9ArUrTa|}@f&({NFP@d6i$bJ2dYd8x5Q{`i57}l*$4+>6y9J~kWzK;opwP^yZuJ4U z?wF)}iou8!eiLknJX_?-N00A^q4xNP$lp~JpsAREXa#3;J@0myFs@M|f-|xeen5+v zI8`ubWemhHGKZfGiu<}48is_RY5Ijai#D0<-2Z7z(E~P%O;Xwv& zfg;5tW3%%wrT|A1hln3Yusm1uqj{g?BpCsU1R(Lbg&(?8B-jwZA9GC6eG;H%!VtF^ z_XEZG9!MM>ri;j1ZPRUhT4g^V5Xo-BWvMU=c7=D{(N^N#OKuj{Y5n{z3Pbxs_VEr# zCShA(Zu&lcG{_n#)vKTQoJ){63(y}P<%)dM2d?jq{esNora{Y0$?J} znN_#!<@@xu__N*R*}5fDaJF0p`Duaq{lyJq!4^3f3)m0dIkmAEvu(yl@@#d0{)cO` zD$8NM*{rI|gkO2&n|xC|!ZrEM47>vPAQcZ?&muT!l+GpPPh(V{8sv_i{sATb1)?Vr z68AmDj+;&w0{%)MtgwT3Ul3+giq!H%S)-;NisA$iCiD(`bb=7GnFO)X+&R4Wc3ho`X_ zrh$5%X)93#v>F~pRz@Fv_dQABuP7QEq?V8e5Y3lAWVB<$%MYXz(XVIaf1#O~rU2R)Zgpn@MpB-4K>f;y;P^E*B1WX65qijuTMCg#r0aFvYq4l zjxVrHUH>I)sJhF>HNByoRtN$iO|%Sl&xTqu&%wTV9AJrsx>HnxhcXB9ct6D*sq?pY5IgoMyzAAQJmtP(ISednoO8isV& z-q5eaoOLqKu9@ipXQU{T_3rtZi`x#cp^=qCjJyP-5Ne&u>-c`f zUZ%D;HV{P&oLex}dVGlNrz#Y{+^uB)V_o_ITdOLqb_z*ZfKzRpXlRbmL#1lgnhU4YUd7A4sDY<0a#^c3bNyhteL-4!frD1`!TH$3Uw!8kdnS;fW z7ZJKc_!D;jF2>IYqkW(a9AgzbW-xe;Rgkj8CtQFBB{A|@|IVp(Rl`uF^z!! z?eF^Su}4=+RJyCe(^YzsZh^?Y2&VO=F!?P3d0zm=x28N-YvVY;yR6zR4(d*ABHw3F zT8Y)3V0+^A$?1R&Kq*#T^rN6W|K-ow{Qx4R-(Ra*yll8oy13`)`Ojl!nYz)kBGe;~ z&U=@mlnlGap3|^-gD1j;ao>iIXPj2sK=}VcPGs1FXtRX6kv>=Ca?39Y=hN?|#|2<2 zC$$uz)6bBZu;~jKuV!J5>CfTE1nnNB4qEY9XNOkWkP#ETMX&VED`*hyA?@M?VAlk^ zFlW1Jr*4p};Wc|tUJ(t>qf7#+S^3FJeMh{;3+&}vemN0`anFQ3y%qX+ulaIWd5Gp=AUW=nr5}im!e7*d3=J{;Vj4 zuv!{N(NJYo6~&2afpe9K?S;Y-d1LxM(1`U&_0aaWKsDN){p>7Xv+d(PK~O)RqT1GNtW5_& zynZ=4KBMqXXwJ=)#MCp>b6&xKcqJN~N$Un9%4MGZs2 z{-rOVT>wrf!Z|?6oprS#EjX&_?;j`A&LG38mY}AXx}lMK&wdJErDfpx(}eX+fBd?5 zUN9c}-yDRqS2KJD85z$UYF0QddySvAED$s+_gEclmtuK$mmUK7 z*_-)D-^!sQt`y=;Ur7q=1NFGzVS2a--dG{+mInVi&N6!{k>TKx9F?yKF?TFHMv9jcy@F0FTV{`)m}g^n_Q9t zF&jFOoitFJAG-A(MW=i5Y-)^7vmMi@M9ls=Vd@+KswmUfgBtjC$cJXkO4ejCTkdT1 zqK@KWHZ5{4-0J%MjU_Z4VGB`&ugVtrW-q%Y!B4218MN$ye=r0c%;ebp!b|YURxUii z(sJ50bns*|Ykkc5N6y?)^d$$sE@xBNK+G`6Z-M$1*gswnPXK^vwqK7N#5iCTRKcIjl_P9R5N?D=$fAL|$!HC+bdXbI}N=O@1$j(bOR?}nIviwxJZV+5#{wy^p&u{`ZwdJQ#F081vI|_y65M+VEFE z7chQ(MH7ZJ;J0#<9S3^AmtzA2k=w^7OIytV?$@lEc0LE#`Bg|0H(#t#aP2F1f7Wd= z4z0t3#x84e0|>NiVJpXN^&fj}b?eDsfpxymCpG&RF=!!O`n(8wO({laNYI@s4 zwDA;B@`}!5zYcA9YKK9^*9?oca{m$ZRX%vT9Og0w2DFseM>;=-8bRQGbTX0C1oiUY?>S&KZPvbLaEUXd1YKb z#_FzYrmpK&S3vuX$lxbcp%ka!aDOA}4!s}T|M(g92q~l;X&Yi|yx@55)K``M zX#q~!3Ao^!VG_?mtdX}FNCvUlz!%oQw`o|R5O-Uc8A9ggEZbrMZ#pdIe5q&fF7_8F zyUZ_yWBW09N|)aHGn;*fmtn0pC0O+auB;Y`hrL%&GI?ML4sc{Z&zBuR>LCidec*AJ z*12N;YP>-Ab)5;0pvf_%xeZ6qdD^Ue9qdP#zY=R(Q>3d4owQk{7r!$tL;syvqjR|l z0b1V=U(JNps~5I=YE+*n0EF}d;Ih_mUWRucRyDTMlA=Zn7(HiyXs==H4vk^BT^RfB z11S)x#Ko~M$o1?Ox2UUME5whDDUq{iQea$B#44sX0E^PW#0z3KFC142p`BO0{R0}j zr%b8f==J)aIVcXC*%+a!nIkOX@>Rq^ktkL?w zj$j`)HVF;p9hndd{|OX36X0iXH<>^pRKNm0f>1MQ<%B!s(b;^2Ndky^Ku3s!&VgR? zm#-mq5(Mod_cN;0;9zM?-wJC}7tQ?L|}1@Br0a6#(518B5J3t3gn+Mt+zrv3O1+KU09M~g+c z>9hZ?WE0I^cuW$ZcMfiNN({7In}hiBU@Kl@S^0K~6WqGifjHH}s#&@(^mCBZV;A)d-L@;+11e@7IV1$767yIODj zec$282=`4P2m91Vr@qrZDkM$fXQ4AJz~Y5ee9=Cf6PN~sCr!y#`3p)*<$x`D67LI* z)Z2vvUi0H4Uh3N0vusEd4OluY2zfb`LAzfse1u{yLZ`F=#)8A>+Xdfs!i_=ygBx!g z=E5cL7oy~YOlp)qD@db~KzI4kKK%MQ2!gH*&4W-O@o*P+u3OZEA<+j^vgOV4*5GtH4X-$qFFeqzbkE`njE4BpfWB<^{ zu*VH-L}L*?VjGY{_@C=1e8uLa4^;e-Tcd6r;*WR+m51g{`GK_qyXmom-LDpZzh%Sm zia+25J#FWFJG8M#bnOZh>wz_ZL35%1M=BEux1ZVs!PZ6;vgZZEaMJ2fR!#|04?}k- zp%#d;9R+M#6NC2FU$mHd0yRg8`Zf4N1Doe}MskDIwph;%kBH0tDlXq<0ua|HM2;L$5L6Ue&%EnjUSB4f!_OVSa8_#|R2JH)~1y=PBZ-@ZrSm`?6 zWTdP0Xc>sPtMHk%E~~ppf;h|(1oKF*L1LYuUbO0h;|s}3%)5yBuh)lH;DkdlaXElr zgA8WPne@gv^anaZv63lY>4=Z?*7H&y`6~yd$$C5880~BV*5ja2DEQJmdKMfnomITF z@vr>>o>3D1CTy|OCtD{Gpwjpw=mBLsN zym}Fo3<^@^@D%XK^Q(~j{LW40IrtiSfx2gvTpzv;F+3Lmk6F9PekngX_bi}T=&*lv zeEFsr*m81`2&38S=b3%0A#v^2%U?CSwldHi+xU92F9PV#*>~oI)rM*06rIgMmmClT zSYlLLoFZs^31Ti*J-t5D!ML$~;NpR`9Sm_k zcD!DOWf~j2cJQ&#q7*`p&&>aNB=!h@8sN5){dLyYBRGGTnn0b)1t%DqXmH`YQr`@l z-hlB#^vX~_xZ=JOl}%sX$gKp#rVE(i+f+uxEO^76HH5^RaguFlX&AXSv$y{Yh9amlN`-@G7bm# zX|r&^a2oOUbVe55R3Z|No4jyjd7l8co9sUE@ys|TB9h-6SXq?d$U95S&JM?C2o+=bHa|y{x*f%`4046?Y6qzR${ME393|FUV6B8WX*oznvhF40A^%Gc zY{)@6vIS7`Jksp62d0^n@=VJdp-`?<hdl~k_ znBS1rAmzuwQi1|bKEkn@C@<~&%@?I30VDiVk}D=`^fncyCBnc%Y~#bX2ZYSWsZ+Xi zZxlYk;;)e)o4j6Yz5~aF6&G$F*BD4&qCkHn6ltkYF^`xe*va!;VV~vuGu@R&ki;0c z0GQ;43H?ng#CA2e8ve_;*yQJUK_>0avs8xDr{N#W?AL{_VXKZDRx4Q&LE%WAptl^n zc!%-vEU;c0Qki$a$$fG(RusO-VKbG`aTvM_Z}YRF7!j(P+6_x}$Aq&^DA*!&8!5sS zAjJ=~*2j4J|IyFjO?d}@#;&)t^#9&4KYoQ&I7j^$#aAvRVe!ET6lh}rk|71T0JTV))r$)sgY>&}YO>DPZa@ZM{$|Ibh^vP1_Zx1X%7s*w zC@z%)1@Trf@4k0~Z_Poda_(W-P9C4(wm0i2or0K*bIP&V-*7;{#0ET1^y#O#CJ`|f z8$^76M%l}B;nn}s-j{|`y|!;l6wMSGC@GO4QACv0phToH52?&kWlDpg)vzm5R92Cx zGDd?TA)*0gO3N%FLd&eAwhZriFYR6Sv!DO*zF*!i|2{m&(e7ET-*4T+HJsOZofk$! zHHRx4M+E|-k;;>=u3nK=SbTNA2}Wn6#+eO18fsYTn>Ryh?q99+SU2-E@C~(Hr&CP+ zUax=#PK@zg8b4>Pby@D*;AcGPqyZQ=&#x$)7;nOhxT~M^jP#?WCobq#0m*s^(QfI6 z4Ake!7Rfrt^y04{Z(qtx7Z{8;NQnUO?SCllF-%{ft>n^{~qu zAS$`PxLV3EHLf~Es%?7G&twVbE147C*52u6?TVkFO756Q99WbFpW_>1fc<949mb*T6*?CFb|AG`67jvahO`~E20Ln`p`O2WS+Em*^? z=V5DIyy1vOe!UJFRES>k%&E#swZaEuI^n)1@4!M>`$rDz<5~mAUHTUZ?T^<5%nddJd)NA zx}3N~6x+k~J#k&mZkRp!mjDk-=u1-3;y>2>azzb7PpL78#_p}DweN*&p@8z0#kiI3 zzrG{xNG#{cdhA5@7Xlf^Dpc%cAY&MKag|UBZFb5i?2rhW6F4I~pWY%C_y~~+Bdl=X z`ioE!5x~=2iH|7SVPP)jqhSzGTkAR8zr7QD<7yG2&|4~MTM>5vt!>#vm5<;SO0%~A zeOHO)%T-1b_5_BeV8A(!o#^*N(ZsA@G%f)7upQb18;~UHqA`r3Wt`~}Pl6^=lu^Wp zzD(&b=v}PfQprh4#)LqdG*Et{>TmTN2+EjIK(vpDu#`hXrflf@ch?ES9a7OV^BqH|BR&*r7BM#*;8YF)>e1l{}L}&(MIeRaLka_dyqcWFe>-wdt#llJz27#zX zeao+*V82iwTvXlU*-CR#TCeU{)_)TR^(cb&0{bx46{Mjy8?r72vqCW3<)h}@f$2=3XMpBGfHjcqy0Kv!)!m{td&_J67T1PJI!XlXRU__#zkMP`M}QJ&o=7rZsF zeV%$3nyw{Ew|@Kz^hUv~2^Z^MJr2vHb*z|Im<*Ol9nq%)nPCuE&yvOP3!6x$FLFT^ zfB?443N}I6J)G~=4odJI;O(lVO=D6W$a{`2Fx`>OdHNSlJqb={hIs?)qaCZr|umlJhjeH-^U61Nw=WY@>cDtXrS-=x&J&K=|qorkuC49St$$K zX-!J7Ug5l*a(n9wos>`{xFYE?A(AC;;>N1b{6uK_-%#5)4$mPv>Eg~;mN-WPGWm1z zFLxJmN&Vb?Vzx!`3oZ)1&ius?AvA8{&_?s|5ortFGU%~dE%6u#NW@X5aCl8zxY`@J=lJ%`*JpvYQ}i`y9KmRtFY;XA46+}1Et#?{UyLB7k(+AbFNk=Bh%$o4Y zQ6Ssq%<0=S;P+qbD zxa{-ip$a{F>#07BKZ5{bySk{6ABxdncRxOaCcU(Z3IU$5&mm;*tMUv zEb?ne9^k<`z^@)Lefxy<#F1BT0<@9_fc0c6Z@Fuq<7%K2q%j@e6Lx9$-})2eJD6L$ z9OMw8n+5t4!UDm!-1_N9ZW7r<=#p4YoyFf*vJ{c19Eg#24Ve#nlV*(nnxFrQ+J~s; z+-v{938$5X&7KI;A-6oaxf+H0&vaiTTEMtvk^a?4B8TW$_aiaUUr9$Im!TDxUMJsiG6jfy7Rt5IP8EaqUHsaBDKR zkN4e5qkmd5cWnC8oNZfwR!}E=&5ymnOM~X2aBJ=Ca^~Lr{UiSIF5?HF4;#nob&=yA z7v(?yk)RkxPXGF%KAH<*Qr%W8MG$TCHRF(a&}T&f@-;-TCpU58PV(MZzo3|KkOI`3I4G z_|fMgganrV{l)+BhnK>U@-+25v;Kz-c+WnsV4AYZde#5_zP}I5e=O|yKKwo~|9+c( zADG_<=5NDA`E6nT-TeM`N&oIde;=5?@6Ni0yP-3-X^NaawEO+_}D9T}OamzRG0My3NupHYD!Y9oMg{aThWh~SP z!vMnt!at%+mI{*Iz+rH-&0Yy#^TiaOw1K3WgFdq9Qkwsgd}*;Ey%Q=vy^(3Hs50z( z`t3fv3>^FO7^nqmDoNTiifRed41&hS@mgtBhIV<|7CC4S>7y^gdEYkP|BM!>-khn| zN0sj$WSkyPJgHr*C=mD%X+$!2c>YHBV~iG5%!@q3hS-iW=)!XKN1oHSqwc9bmWJZf zMlOHh)!V59*`pxo7x!P!R5}j*yltqDbvVVDE!?ypT+;r>jU)HE#P320G3og%#j9b< zA{lI${IU?J=Yc4%A{%vyq^_p^)sU^P!}wOUxVuR21W2>nb7)lRuIKq zl!p7B8%Uja!L|Jbx`nRGrYM~C=zBWV5%p{ffkG%$&F@T1(X85efSEo-sv?n937P3J zo_MElk)GJ$?!#U_U~lH(R~Z>Dc9c8M+x#AVaRsR1ELrb%=)@u09}f|qikvwaY&zDiLdTWg502A-zczlxcjj!J$DM4+V} zPrhNFyo2zNE!sI=ia%&L`Zf=BT`gVfAupeLw-?tcmx{dBX+m?eFFM~8z|Ks`SZq{1 zS#!ge3MlYtnasW)+~Tj$c0C;x-xR-fBl|SOcT1#}ZLXDJ=OWjTdW$nv!tngSk3{~P zDK(X^2Hb&pSTtveRwAgz}^-0_}yAq zx(~eHP<3tw$M&^=`29dO$e8kj_8<4Hl^-4 z-6Xi$*jc0Mz(Ds~y#o>najS{V6uku)gUd=Kg1|13G3<1@<5U3`EeTMWqoZ$*4pryS zvWvC%p7w+;NB{T6u_rE54eIVE?uyvBufn>J)6s#oM7wES&Yv1tkU%bRaVa^ePYAS) z(@Rcz``!D4eUGC=`@7Wm>z-8xR+SGv7H{bV9mpMIvo*?Za<}X1A2=ruUfjZCY2{4Z zhw_C()L-YdF=Hh;`fJUoAjQc*VCjxNnsg3=Y(auYaSYyJpL|A2_B*#xn6}>&WAz)gZov#uZU8-L!Z(DL8;9e zGd$2U?1;O&_0ge*gXaZ~UdS06>6Mi}bY?jvGMN?SJ`0=Pq{4kFCp4*Oxsjsp$yzvx zwM4I}Y|CuFCBscqYo}bNF*HvG+H%E)I;o-WXI-tR9EKa!fc%is$|=N59aVS%oqg*1 zxQMwTM%2^@{S$oM(0*D36*$AFnMHOF(P`n4#E7{;8`MRIU%PG4({#=`F9idp_1Z+t zySttZ{Rn(EV}gDx)HcboWQ!tIw`HyN=v_PMJ6~GJ%DmEo(02nzmDlUpfkYd%P9n-n zmg!KnrsF<7TwRpUgoMsB^jntL zT@i~xlq;s``EAN5h!|bso>C&0ux*;h3g!yT1OR3?=f;)sT^V5q(K%4x?(Rb&Ny*Qk zWK}9hPAOHDavAQw+f)D~Q&g@Fa=mYC5N(hrMb^_oxh6y-DTd^vml zC_asc&C{Y-+dx6msh`!cU=nLByDs>j-x#~RLS)x{4L34S)Vuj0wcW619d+R2n`OF& zHqq0*=u0qNfM^VEsdT%_eX<0R!5mSKBkA1U2( z+;`_(5zshA(U=|zcP6`GRA{y*^qK={ITajp;xZbDuw%?>k!n#t8Vud9;cwP^3T&>IzwVEe)n$Nz5Lsi+-GUC%#do zw-YvD0Tx~=TQGojHrB*cr)*p+;qOA^hwpFvr3Y<|F+fqW_Z!ltS~%=28R+(`x@LT7cgVAKiUQd z6fx3e6)l|Nyu%$VL`QV|w|R@3mx4-|va0&Yn{A8o;MDfMOzN1&JapDGs8xQBT-DGB!eCF zxV?slijsG0DDvSdy7|d=^QW(;3UQ_)h;iYoK#y4HU8DG8E+n+TjI$8Q6wyu4*xJV! zJMKK#4tgg@c7`8(uQIJS+Z}R$@5HEEF*nkhm5gbKQtsHx70)3l>5~kjMjLEXD^k1% z4XmWH&C@LyhGOB_xY^NeBe8Cyu?L$ltoN$$@pS#_CSmh1c-V3zuEw=eHBsJnS`Vr=WIDhm? zDZ*D{Zji;?uM9rTF*CUj z^#)hN4J+=^);7x0>F9NGymS`SM@J?D~xd}SK( z(9z9%4eRc&G&Gzg-N4@8t~{18z)CrB&ED|f5s=LsQhTB-^fQlkFC?^SG;Yy)-gQ8z zEGl}@qQ}wE%XkVF8Z~_3(7s0L$u_)WH=yzMEfG?ohgHF^vOSRsc(>p6<8UDxGe3IRB%4dg`2TWJcWRn- znFY`;XF=2A;5i;$(b(^$!m!iRqekZKrS7ydrl!uQfz514=W~S}x}(;Vm{Ka%eeOm= zIkcJ07=A_>pF(6rvL|)#@*3Kkw#ucWV&$GBjb%*l$0jtdz@2aWeNS*iW#^%}@tUes zvYh2x`;-zjw~He!OU5oto+U4cOrrYwwfkQmrXhCy_O@|U_rw7q2j6|KM)$c^>W~1T z>hUE_n1?|&!iPQvtwY-cRH8g53) z`sae8!VQb*5bBdLZ4#@F4b zl?I87huGSWDev^+?wD*DW2Q>E_H4v!lW2Qw)nYS-Kq}aV9!lSu&XC*oI!3SZbKf3y zNglXpSE8YqRHo9!(RP*&-HnK*7tNEy@NoW@76|j-ItM&-( z6fcqr78{*-FXy1S&%w>Rq{IqN#s>jLRO(i9g_CDVDi%0+<)w#6UHwom7W$6qelTXE zN4OHamgg}RRKRxbdoaZ3Knw4TbgXv;-Q&ag#qGSBVE~*a+FBzmZpX7eUNQrrJ_U+xb zAKEg0UZbBQh_|eG%#x0QDA&C0K#{R7T$(P2osu~6*5Oee0$IJhWul(ds+#6|+sTpBS=t9R1ky%0*Cr=P?cq$h8o^P-$Xg8$KB#&tz%-Hza$%Z?eg_ z4z-WfG(+3?US*wf(po!5`QAR1dEz4% zOcV8&eZE6>Ik}Iby96aMG1B2t5TDHXl-UX&0=^ZQj&d_*>pECcF_d8`39ZJu#M9oL z=*+|232;3g7JR>h3n8UWB;+e-EX8a8B+9!=eYul^=`Rqa7O|?Y$}o>wr_pK)!t3s+ z)`dRxIPmjY3NF2_%F~{2WS^Ax^B8H6V^k8?&s-h@R+|M^Aa-&y(N`fXbW}CFC$sYw z6lk5-C$>cxAxLk5A@(Jq1d$#9eQ-<34Hm483@eGOhsesYAU2ZkeZnNz0596XJh=iLFqTcx+9O7}b z&dMGGK}$SCryvh%;f&JZg_wh{J>PJ%kCfV&RJi17Gp!-T1Lz*BP$YF3o7I^8?D0B2>GX8OteA$szRo{BHFcO)=01%fd#c)5VJ^xWp&J*H1+S0KZJxW z&S3^EB>AA8;3Sc&BhsAe&d|)o?ifX#&(3G8g&F3|OQs=s1jt4nh%D>x_KhFF*pI24o+on2{|HsEBsY8R6>Q|8V-oM!*T z+0Gp6D5y1?nmXyIVW+a&TeN+spY;86vh1ToL}DBtcnC^D2@>tywrE6b+;HM+kIC5sc~DQ`jaODM?0MYfG_Yd|^K^+OV|fFu zwl^}(`))S+zWt1_UInA`vjl{?56GcOtkpM&8ME`uQ&sPR_s!tR+Wgsj6djt&8jjy3 zSv{Q<`k(u{pe9he${8_#J~E=KlJ}QxA}SN)4$f3?rL{+m)K(cgml$kp-^6sfl>L@C zQ^6Wan~8OlUET*pLaS%fpUB5yO%8bnIJ!vOh^<)oF7Ov&2%w@(KD`JEa=ZL-uYCm5=r^4kfKA zmB0NYwq)?zz#mzm$5XNcM99xRMOi~2jcr$KM48*|h3y_h7hH!|Gk+=Z-OWIV!k%-5 zGml^>Yr@?$!_XtoI1Pl#!(QMD7G16k-9kVe;*)7hOK}~fkM%WKqXmbiv=q46E^0K* zP>ft^ha;~cu3Qh|eeI`?xdR2tqta-EjUNh?DKOi6^DqMbh!*MaAJDbsJT3kkZ=UNh zUup|0n)>$CL*~X{JCXh?fava3*}cR!a1@&~5%lF!LG;<6GF|wbHet8c=rIcSX`-si)JGJVh zmxZ8&wM(=vS<$ni6&Dkjv_fS+?(QXR!Jsh>n~jG9b-m%&;q zE0aUXtEyc{d;se=i&(z{yna+-{W>K3;Ii`(1{?Q&ZgbgOx7?k~UMOE0PJ(mlv}uH1 zT-!s*!~}+eFm^m$4qvv#K6{TCGRT5Oq4!%6eJM6%-oB=|+y34tZ7bx=EBg6$JL&Z-*TTQ~iF3m~3)HMu0wc9B!Mze5om{IV0VNTR^ogmAj1mIv-a5 zhj*n8O^?b>aC+C@>K_x_z8^3Tfh3EEw@zMcfG8xTo2U9zk>WWPsu&MxB?v|HRP706 zV*GJ|lUqwxeq_S804SZ;N9}t}P*7MV`o8QkerCSOHkxy)G4cry^S-vR5fNi1j_erQ zy3_u2SdjLQXyM(a90*m*eXQ?|7=Vq+hbZ3I$a%Y=PPCclt!s3@k|$^(`5>3oAo(mT zoDnM=nI4=VZ|#&YZwKNQY3mXq;jOnCR&CIGi)i-X z6v#sD;Qa}%`FXb+f`#lTog+G3`;3Z0_TLp10(&%7S5=fw5bt$NU_q!bZ6*`W# zQLO|3Q#nx^k)%N4dRcOUaSKAdVQ_U9@@- z=!?x1dKW_6CQ|WULjR&o5uEe1_QR$40Fp581P1o?F`4t7(i$CEpR>(C9ZS~odL6VhPfZ*P32=^wl(-~VE6 zim%R(AMQ$3@>*Gyd8?m^UFdK`Jsc&AYwv-b^|H;mY9B(v$N?pghNsN$dG^& z5_5}JcVYrC7S7z{iMXU&EdnK5p)x&IwrQ)%fE210HMZFj;C*f#xE;3AB4LkMrmPvk5#Swlv@!TVQ9qPDdjEL|)7|H#IQPXjex5 zZDHa5^#jHQY(-<;lkWkqndv$URR$#7!dz!Dau&5OMCx}TPt-kOLy+PaNcwXB(r+32FdR#sNeR39Avk`kQcm#gP>TUHA)P5Zif5}>F zdwqMpq?vT)mt{06$3uTgw*O@N_m)A~@r#!VYZra4m3jJ>vSGyNd;5_ZoNTi|72a1r z05&nHfI$y~BTv~=j6Xig8F5JSNKbZ&V_mB7RZqRh@E%%}c|Jy~V(p4W1A4R?$oNe6 z2fp{|4W`g^a?R$Zd-EWcNT^nDUN1i~!vqDkHkS+S*mrWZrT}-AWhq%n&ViN(>+|!o zUso}pQEFAh%|yoimIX{R6A3?dkmjQiEF;`GJ;GppkhD1l;X0CAu)`iLE}_TUf|=Hy z61i&prlN&y)%nsd*WnJegDMutkaLf-xSihiBX^U#l=499I~@ z{Jt{>WQG;7oqG&JVVcp8TT1UHma+=VC}FUfELfx?`+Ap;b6{Xfo!$_k9D{dUvIxJ@ zk-8<%F9B*2xUZ&?ylo9DsYa2Gx*`i@)W*{x+0uE{^(i~w3q+55W6j!+mJu|&+rK@- zqzDxQ^6k6`1#BIw{DMi`x}p!I8>>bAFos-2Jmkk|Sg6;82~55`ddAX4Du9=JpaCtC zY|bORoM(2qr-DKqLGKuOCIqVXlMJBIHBM@@*`Ap?+h2S6jlD#cuo;;7jq;^mPV@ks z^d49-nS2y45a)|curQ8h`Z_8b(QLHOu7xj1`C*3g`BV=d`3Q}QwCP_l(%VRP@6>4F z3%DbL5)Jz1fht0hX7MC!k7pwhX?MvS8-qNI&na;f9f#10-Y_d+wXZ#C%hblR1i{sd z;CgCvk6kD45CZSktdA3QW43P~S&(h)v*epj>7#co#na7Lx5xiHe}D`Ex(B&RpNr=*dJ>F@DwtoY@%O|!IN(LsAQP7uZd+!Cu4qrf>)6!3 zo|*FEC*QzNZV2UP<{>%~eK45jog)|%9wMpEOp@37QP7`!8%jd8tHOI0tDg+eaXyLJ z#7yrja~9Ey9Q{)eF?%6~`yr3+hdTdS^>w7uRXf`A5t#PQkhLp|TuIlSVt4A^aTi5G zn=b6N<>8hEWaX__uwr1+E1Am!J>>(ZBbY#9rPKo;R{6R{4nY=zx3~Fu6Z3A693r&5 zL6YWt{H69Wd-(UgGxB6%MOUAppbDb){ZzDXW?YgT@EK_H z3;j-$OPW`3UK%{*!~+kXC|<0 zq3m3gc*~U7NX}S;1Sh3y!5|>JeCXHCMX|<3=l#wba*~)WQ*7@+*c!Ld|2^)u1kdLN zEZuUj=D`7jcQ1~>6BQs*;znDaD?YrY-xRo*LgsvEie5s~vBfKHX2M9a9*U!V&o+Oi zIS^w;V<}%e^LX@%X*wSw2TH4J9pv_X@Lad8k?!-7RQlET6a8fbs+P5D>@l%3@ZFb2 zl$`Hu${eh-BcgJp^hN^3lAL_pk_7DCkF@E+ZU6OR1frKn0^D_C#*&R$smmPdCJ&QWyj80fxcG4h>& ztU#w15&cjDg~ssE(NcMYfKNu~Id~)%gR+b`3)W7)BI>QJ2x6~B`jO6V>Te}zYatKDE9G8QSECaZ8qzX_8sURQlbW@K5!tsTY+!x&%c z-wAK(JdbJb`EtJH@n4GXyn@N}7g8T-ym^b2UC7Y9&o7C4Gq{kX1X?asyv8azw~q=y z_W!h&9Djsh@IVre;t2FJNAzkgB)yZrh*V!Ts$IW4?hQMy@sX$7a$=@) z3zo^VLN(?hiL5hfAh}}jQ8AtX1o5Y?-G-cz7|FKBZRuyyx%-~%BOm*R zmAd`6myB2+I)6O;$B{Y(>&LF8!Zi4fg!mP5cg?#u!G6hNXXwN2nFlUzb5GdV(m zBruDm3mDKA6~HJSHCkf*QpUZDP)D%5sG&}c7Jf=Hacv)p;WW914R0&%ijG*@P6a!J zBsdyKtg5s>-BTz3;U^T35*hS)RqD0{Sw7}G9}(_F@k!%fhuo(O^$x>9mCED}wD~fx zWZ?oC%i`Vh+b;nSXbL2llR0Z4jTu}HbWhXT2n&cM2>W1YOE>Giup`6aWkK(4jZG3dHF=MvZ zw=D!sGe~wi7nNPgOqoue~!~y+8NVUj=*?>JXa1 zDqk19A={~C!Adkfs#+l0he%4>gNYJx%4**qE*5rb{HB zF)fg0;QH|0C8(-MLpAg2iHLSmN1CUyzfwofZ<)XRtsR-pfG7*V3VOS|`si-v*`YLf z!I!v;FmGiFIiT#xeuq)SuT5stiO7X7H1PU?rrY)sJa_{98{v1pRkE`W?581e64iZGEYff8$S}kJ1N|F5rc^x;_ zY*?Y?p9|26PZ^G-@Zz`E8H9#7{3p~MUsr4N@2Inr&{LP{f?VG4cmXqV2Rohne33-T z&f5bwS6*|nzd9-NM;0gq8zUAXVIoYPJ~Uk-t>)ktWg9sw!f{GDp8x!z;Dcsw@v3L5 z{Q_C2V^U?v_T)ilOgNcQ?+`Tn|QmLdF zJm39~vS*pAi^!PI+T`mN0Vc&uM`g=kkU6;BjKn_Rv&egb3yd(gzIiJE@*^zFFmw^Z%4;VaUfGETE-)J0$ z(sJl#q)0yU2!z^QRI|g?RW^|LzQjcEuKbaj1LrLS+AwI34}6M)f3a~-QU1g!Y+aXr^CilMHIe*6@bZRFHn?9rb5{?>7?cUUwXPCaVQo4RtYj?5RPrB@Yys zB3=NEu==8%y#xi6ne$gizH3(?m~N%m15j$WWxf^P-U%)$VdyH{GH3euNvy%Jm@;R) zNhC~d=9G9?u?NY$x;di;-pCAz2GUt=UBPM-PeP(0^~Rv?L>Iio<|aTnzL5S^RyPG~ zPM2UGHgH|h9Y~vIu24tVyNKBj`HL>VnT}gX#pHTfbyMe7bA~T7Y{Pw@g8f|}@4kr~ zsS+KKDdk?urINy^5iPQia~P;oA@`w`NfN%BIo3|6s_+^t_k^vsT2Mr&5|WkIANzsC zzUpyTvP2SMpNpwk*MFF0<`1K`t$?Skx2!nEG%hq&Qht&1l;J zx7c1<$uZBQ3G88S0+lh^fadW5rgoww9^OJMKcMTO!J_2R4b2yp9mM#QiV_wUiMczr zZqnw_lMsLYifO)>e)b>aV!_801b8VH$UtQF9d8W+a`|a`J-)slNB5dQ=-{Haut`Ow zT-g54T!d>6C8sq-r(j5VZQ}Ed9Z<9joOVdT5G39fSiPdZL*Q}0er_&!vh`O#GV?R- z&4S(6E<3O30^E9&yWwi^4#Dcn-l&)RK+n&jBWON6zfbOc&?O1gK4nHb*btXU3iAr& z0Jo@YX=gIaY$MIs=@tKOB$4BfU|J-3?9?-ji?f*LRG5uucY;CbkoJ+}S9HbEhs~Vs z$OIk7M!s4xYQO;q5#A1eQlcISY!{>3t;`ox3^2-5>MsrgklH4e+G@?vm_(qI@$>Qb zqeP?NP?yH4#FEEHa(d+*3=0d7KXUco`0DQm;SUr|{Ho9pChZol!fAAg?#Q>$Ye1WgQt114!do2EHPB72NOT%D;~91;3_SVID#ro9?AKH zT|ojUzP#)#NXz06P|kmW&WNiPr)&&f44jO9B3Yg6+qmx$c<9pb9G>5!z3}tL<2yXJ zOoBYFHFY7A$ylsOLf-2Qd%t+PBi|vVGDJ{k3ptHl-l)_*g9vyoej?KCa8~GsUO*ws zYLPKvt2RtBil7ZHSR{RLtA}QAcM>$ioT6HVet=WshkPwbMA|k!&u2P^H5jmrx*(V* zC4Kq|rp7quq~3mQ?)&*hx!2qNX!2>k#d7r&&W-F44L714k3eXCo`G8U&GBi(MeV$V1RFn);mDJui9SO&43$TN32xF;!xUPNk&u)AkamUMnj*E-0Pe5bN?uj1{~iy zV-0rR-b8kl;=x8JZTdFRK^@M8{FlN|t*ElN+jdNPSLyQAfW==Puh!2@IfBGEn6aM3 z`MIHNrC=10WGZx4{AcHtodh^+=|^wEjx5X^bXJPFx9bq9Ph@m@)t4g$o30RDXbL~!<#->mSQ3kQgnMH=tquV)?S?} zU7kV2M_ULu$Z(vkttrTppYJblqnnkOtSH6loA84_e%qIg;TMTS3l+lkl z6L}<+FK?N7T(Daj0=7ASgm(OZ*vD5~`yuR{&aQ}3Cfcn4rKB(SZ-ejBy0zG)2SdG@ z!P+2?{=k=xps@ukkRsl!iaqLiOV9IPWaSC&D{lbPVm7$s0R0?wBlaiOQ(;*PhAI0-41W-jhJ0XR#xu)#s&3j* ziepfh+}JYL!ab;G;SI#qg{ntLZ9<3_T2S)X=oBqxV@rLl>|eR5d2ECmjwi;w5$JjR zR^bno@W#3hYhsxANq|lhs1283GAv4lQJ?3^8LGUWY&q@5?j{204hT8kOGDsRfY>Tr zToXh%*;PmAJ4EsbO04o8d+AMxvdM&6^9_uK{z7*1x2_*RU1&Z4Si)b4v%k18uCbBZZzJ)2em4*aABi&KQPzp(D zuX1VvrQ)kRx~)>U6O#+Y`h84?h3sNTPZBAqCl$*SnN!nY(3%Nap)FeU2EAhG`UqQ` zwode1Is{;9O=U0pmf3vxpIg+1V@_#^ z^+k}eUsqIBntyk395X&HQAmz6};_ z9zI!T6RUy=Cez>Wh5fyF_yc7x5ChqutWGBWa+8f7wuOl3reX}^$s73ZYf z%lMX2%AxNgJHr2Q5;-RGw(bY;b*JXtUV<#6$}UTChSR=j>ofa-@C4CfNO#BJtk~=# z;=;NzSmAa1Owdo#0ZKS(iXmN}fzPNQM7z;7v}&9`Fn%+w2VoCpx5a3jAgOI&=YqJT6V zs1_;xU`zbCU2|^Aw>=)WD(>Sp3@k5Q^W%9g!Li{d?zl{S3g~+%EMaKiJFCs5Btq@` zW9Fj4k=VjfAt(jQ|4(@V4^&M__*yk-2bD zdz04fEA~sl{EB|?xR3or;l_`I?6RiPq>y0S$>SIV$Be~F@*v0?M(piy?Sc@wy4$u9 zobdbA$4f?j~~I9)->j zwRf&0fLI?`StkH)iqTuo z@fwOA%4Do4^48g^2iV?~%i247rq6>YGZTCM2~H*-{35%Z4%JLr(;aSoL`UM8V>OTF z6BfKpa1Q89@86!c?Pw%L2g3X$9ahAq@+>%sa!U&=(?!y9EA%I!{%P@138BVws63*o zwamU?#=^CtKdQoiU8l8tBsi0~lF!Vmc(`hSwA@A`63?sALmv^%aU*7ToFTA&EilfZ zhS-oV?L@&p5rjfV{5D;eP&hFONi%~tJ{%l2-_w%N1mA#!sxG`?GA(Ch>Bc3V0a!vQ|tM*xiuU9EV^~M8w>&ILst1t z>!Hh|&@6sp=6mc|TtY6lx&&7Nzw=I$*@yca!EEs!_^$qIh{i%C8LOpS|2SfGeN&{0 z53eKAf;`I`4sy?1f`)_|RMHSmyqGkVe-6rmhoV=NFVA4yONWb7B4sz#q8+-K(b-1{ zE}~|-Z6nM;hwu@+k&er*qKaTrY9|EB6JLs+{(AW1c(AgD!8R>~Iz~-qBVEiW$LYBM z5l;-w3|E5NO9xD526)*AEVyMrqxGuyPCs6cyh1JSf%ZIgx1CWQ`C<)pCqJ7~(s!w5 zsy6=gGR(!KhdukUK7R4k*oc#)1hS#@2u{||7qEqJSz=n-TWjW-ok1NqXldAU1V!Xk z%c4DFJqcx#&@z!?@IlJn)@>~Ba2b~J`m=}>5jtHG&-`-#1+{$OQXk59<}>ZwOkRCxwUYv% zC{Myde)_4oA{rs{z=Uv&Uww^MNXD8jYcSERpwZ5BAxe9-QgU`M&D%bawr`H6N-@ZF zsY$CC>&do1qJRu}3&#{d@F9_66wBX$QugsLj)2CloTtpNX$u?8z%uw4 z#KaF`_Z?m`EW*|xUQ9=0liK%)yQy?FN33x^#={mB7Q22T1Px@8R$Yj{qi^Zwc#bUe zc%8ad#O4s4-v;j>nwg7cEFSU12b-%7g}cyqyyFkhVY-#S7NBHzq^mRkRcWRrp{h-n z0P4|C(oNEpE%oHv!Dy*z-egZhj! z>hVXkJej0>RzBK7I42&v9F_h$Din5@HnCG;mx+I{-6F_yfb@>mAl^|MlWUD5lpfV3 zHY=Z_dbp05?2phfO+>~UIM}G>w&$U}!Mm9)WF~d|oNo}@R~ed*OfZVogv)SYCulod zm`f|R*=>NJO0K-}Am$K$wY1ZRm+K?eJf6JwJrH-^>kZ|LMYJke8Dm>8Aw<8@Of_uR z$yaF@g4R)RfaS-DrrJUuFJW*&g%>&F)_bU+7_UZ0Ku#Xlc786>rgCMl^{r2=n{KSf z8+yT`yMPj+Ed=-8v?pOVs$SdbuC4HhdR^`lPq0x&>HUG`^0SrHJ*pHg%X#27T zVci!;vC0MT;|WprLO1rBB>8}S#44*hd{@wAx9dG>FCDEmZ}}eZJqs9J&_1mm%xHDn z-<}WTlyZ9-Dau4EdIB_lHN|vYgF-!k;VBWlTYtIN92J)-$2-L6icP(BgC{Qd;+(G9N=?}O%xHxI;?iJe7$Ufq8BR8E{=srSlHToytAK3A@Z|0~V zjDdm*ba>pGizBY3O_fZm5hCLU zrnvS38opR{S8^I%P)Xz$S<_g_|_dx{1LIfCX9D5(XNQXdySilNi)qGbX5z5(H6 zvX&&fZ_q?^(89##z3d2jw71orN!;jw+*tHvPV$iP>!cqifq8PlLH+W*C_%xuW<^+Ta2(r zb4FdW5J4sZAqxuBHj3>*8rhFhOp41Reb5x_?E1E$j8QU;bmjGbju>;l*RspaCwg

>#ekML)T^kKbp14_2- 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⪚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

bB+&xAr}@y6()*! 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 b@LM{vJ^k>cG!>u!spV_F)_qm0W)<;&Q3C_t diff --git a/viewer/src/assets/logos/apple-wallet.png b/viewer/src/assets/logos/apple-wallet.png new file mode 100644 index 0000000000000000000000000000000000000000..390d9b94b488fc1c3ae2a47ab671769bc13b211c GIT binary patch literal 7886 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 literal 0 HcmV?d00001 diff --git a/viewer/src/assets/logos/atala-prism.png b/viewer/src/assets/logos/atala-prism.png index 9322a781bca69688db2be088e7bd38930ce8f70b..09f93698347a79d820d0a5e8db4bc2ed383fddc9 100644 GIT binary patch literal 8966 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 PmV4^2bzapdfg}G1>)V+5 literal 1268 zcmVt0PrUOodGK5 z0OkNbl}epRBO;-cS#%gQ2}JR?aJcY%?62_Oj+=A6oAM)?CzWLm_a6lPGyR82PZPeA zUSL0A{a3%!{;Ku>e{TO(*E{HE(uw2zH82T@Q z>SaS8M39M*JB?Rt@y3|CYvFZ))V))6D~QWF^hk?~sbscfXO%ZY&?UNG7HO%~KEqRC zRee#)h9KGA=88qQz+d#hIl$4_I(XwtC?TJDmWKDrh0Zjxf*JRjXm542oq|6FDg0L{ zMuYHSaOcRzedbssJ-ttk%^wHenNZ5rH{R16ql@#C?sOK{-Uy-c_x=j16<^WX5)ZMy zYJs$~U)6Y1qroy^>{Drz<+6acFSa*$EOCJ7s>rJMMa?GPK$Q>3LK$|?9BGTGl?;6s z!F4jBkD~Y>0092`%6Q{C{L zwArjuWj%G#WZfOLQAm41vpa0q@RnB|)M-qpOZG*4Xgc1%<5Lg-o*Z>uaqi**d2)JO z9)m_{FSn%-=C>$uV`HClXVm)2Bi>t4?hjp`4-@R&@<#kxmW8s=y5Anw0K)qEwMuc|w zMm+$A{h)j~Y1?`;MzDoay}1*&780{$n9b(8c{`%Q<3@(Y`x>PC!SX2(&2(`hgkW?$KeQirX zS1qSSUO?JxE-NNP2w33iieBCsNHDyu{gB86{8mgMPMxU6fy4o-<(Y z`_uub+nV^{)e^<#xvVhj;5EVID zH$NnShMl8;2YAY!EjyX74XUvAaUC}biUi+}-iQ6v4kz#%IhBC4!IVhrQ#|7KWJ~VY zRG;>Uc!nM8I~b39F`M#3&!r+uJSf#LokBJe<88E@V@Dw7*{9(>xaCf-?^M%S?}Pe5 zb=->vGm31P@5_Cy1Xt{&m{(Uz&gQlCzroKlV&`=XyUepmZ94_(P3Zq+30Mn<*C2iV z_KA3#SioPG=LwzMIkKQuoqD`jeEXQ(xI*Cd?dXzsIg(zVH)7+bxR2a;=JJE#xu9J0 zQ(nv~8}Zh)Tz-MlSsi6kJ|OmMyLSKF2k1=F**XRLzu=es*Nu*#yL;&{b_xO{^fS34 zp2YoW@&bn{Tp{xn*H81YBo<1mpc>!Ze){JrJpfU+L171T8{z%3PU>{w2vzGa2 z<0qGc6nPrdDD*5+m3#H(i?k}`(du6XSb-q%-+DBjSK`uvc^gz%&x@*DW&RK=JRkBW z(1BCM+#6G+-nvWVZ0$Nwd$CEazyJUM0000007Y0yMqU5_07*$I00;m80097LhXeot z0000Q00000000010EUtW05Sjo04x9i0000006|kjNl5?z05L8#E-@`KGej*!Pf|`s eH%(YHNKZ~qM@BPCT1QewMoLalRW2|tGA%Oc7+}Nz diff --git a/viewer/src/assets/logos/authenticator.png b/viewer/src/assets/logos/authenticator.png new file mode 100644 index 0000000000000000000000000000000000000000..34abd72ff5c8c8d4c6b22f1581cc15cc210cecd9 GIT binary patch literal 14790 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 Ux2bV`^e6)4q?M)WBtRkm1Nlc1U;qFB literal 0 HcmV?d00001 diff --git a/viewer/src/assets/logos/blockcerts-wallet.png b/viewer/src/assets/logos/blockcerts-wallet.png new file mode 100644 index 0000000000000000000000000000000000000000..e858f3bc19b7bbf43bd732020f61e4085e3e0ec4 GIT binary patch literal 8005 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�vV*G2rwl!bt~AScH+81Je}2MBUnN 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 HkHP;3U~L}k literal 0 HcmV?d00001 diff --git a/viewer/src/assets/logos/certishare-wallet.png b/viewer/src/assets/logos/certishare-wallet.png index a0513c71e2f4b17bfb57e9ef2d76f3efe9a3ae9f..04ca3dcdb0762fc88993763102956100d5d96835 100644 GIT binary patch literal 17357 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 OSy(|$G%heMGA%HCw6%W# diff --git a/viewer/src/assets/logos/data-wallet.png b/viewer/src/assets/logos/data-wallet.png index 971a8f5b38d0358fbcbcd5bc558039ed281999ca..fccc626cc06f8004b832c6c49e7a664e23fa518b 100644 GIT binary patch literal 11514 zcmb7qWmuG7^ex?`z|h?=gmg)RAQB=m^nlWhbTc#vC|%Mb&Cp7Zh)608BB696-Q4s0 zf4$Fr?!6y|`SQ-;yyxt__S$RhI9=^0#00biXlQ7}8tN)~;QRZ3A3O~3msMJ70DR%Q zs~f*YL&Mzs?}OePsON-+#*C(+qNwkexA#8Il47Ri;K$O@=w~S_`^vV;wt$pJykrz_ z6(y4%L{i6aZ^ualh>cYh|BwtqJk?D}{VL^HY)?(f8(HDfR@D}O@p0p#IF6L<^Bds~ zohgLN*aEZH1i`1!g4;hY6i)R|_nK!c0{5Elzq~OKg-n;9QV~HiUnzwmvT_1EWeSW=BteQ|B*>u-s4cB6R%-@oftP0=PsGsk-PdlOAh9$;;ZzBkp^pBx(- zTUuH=E`CB{7#bSt=H?a}+CAqyIxsM{bGmZ6OdyOH0ci3He=J zU1Kol;adNi3wQv5=fI8oQaXj5{NY2ek9_&iMVa!kEI!G`ni_r%jwoilP7BigZr?9( ztq0gRINPTIQA!W!=uFMbh#oV04nM(!6v$LvdNCw%~)^@fxPeo0=xpGJrA!e*PaK(dQ?lCklGQ!mJG*sJyvm`XX z>?esY4%4q&V#IN3h-cUMpciMoR$pI#dV1=qvKqhvTV6gtJCh5&ljY;%DBc$lYB^Cb~b)+Rr0l1w?Fddf*wiwP^Z2&`)B1d=^6?S4R8tt z^4+DSr8PA*OLnJV>;6ZpJ>i%{y>Et||&hL#bKI* zk-Q>OVjEb7^(GkyO)&+zQIiS(g&J+*Hya(Cb936?_nH$;N=3{XdLYhBiS-kO?W{!g z*ETkuJbBUxm9e;8mW;q=L<>`$@G>*|eRaA+${_8vKAhdyyO~$oxY6gc-+z4Mb9WPE z^(%KqN7$TtGMP#+?{VmU`$|6nLGu1=dTw^Jmx&*BZvzU2qEJvbq5b@5ZOGf(8z-XZdCI^mC0utRT-(Mu zd+}_^Mop1i|D;C0D~EN-Q62e(wIkn)^bP-{m7hB3uUhBclb~EzpdEd-V$_KnA+q`7JuKin-NM$4bja!ythG zFqM>))Ya9Mlqk!2uV5R1K;qKQi;a!d>P-@c&i)9mWRY>TcH`9gxF3oWCM#-zOuTz_F7iaun51oFovhTh z{?{1a5hAe>@8_=elV0!MZ}-2j_^j{{h1^d|#*l0T>tWu~43gC%w!@zSP95#+xY%3Y zOj#GDviv<=9Y_UN6dQ~8%Z(Nn36NBbR?E-NFC?UE!8Jx8V#A*ZV)wug<+HJGo-kta z!t(rbqacEmfF_?UqOSp}kz!I~SfQ_`s%rk(6MOlP1o}DT{`S11L$=0nXNF}@GVFss z?`gnoi_1I_4rafH_Qzv@!k(3jo(X+~h$*X9>0L1~u`0tFL|V9!-Uq{~W|JC|8f|rT zZUKSl6Yb2Nt4%AViC9ub+1XY%CL*D+$q_7UJ|Q6?Hnx(kF2>)So45=lF(cxoajl9t zkWa$OM4B$`eLS0>jQYx-Y-_XUzB{$mPrQ|p6$Io?3mquEB%4z`>N`w-Jf5v`DA5pCI?=S#6+w}W*JX+7jz5Gv5 zkM%ghr)2-3XyHSgVyI|ZyFW!@;^Nbjle=?`T(Yuej9n=a*ssOhh1?c98XAPp#Y`7R zFk70M=q25IGAXKNh^ImL`&)E4Dt`j^wx;It2Hwf;tmhR~hc)y{*n{5p&zGpQG>T;S zKycmV@kVAw#@)YurrVXGjEoGyt_y@!)<2WY8|fbDfRoLUTnR1C)S#w=2T;_yA2zHP z$$>c}M~^PoVkEbR2PfVlcKJ(phL6>qS|K1LwEK}y9A){lkBEdM zT17WX2_^I_AfPSi+qd>Hrs^xi+!_d$Si~3e5-v#?bm$@0ySzLz0|PO#xAcy-(TLL& zel&FfmGlk`&(rZm3YdU%A`Wy2PW}<{MlAyMwxFOulnZ~sM3fIVG<-A2#Dumw`f&6q zOC?(WN1XyjNq6|SH#8?sndjy#P}0HS;p)1&n71cy52{97>t%3EQztvnh73|Eps52V zr!$tI?4>f}#c~b3V23l3Z9~)2(?RL>@%Hv-D8r}>usHeM9UA&0|FM;o6+zVBQ#&g^ zd3)Zd{C6u%HAZHQN$Eu-Mq+4y#*;Z79 zF10I+%o8rf$)SfTlEEMT+Vc9fcNUH>!}Ad5b?0*Cr>{o*;yWrhn)_p>*w=~crr&nT zKw=*r9(LdEx#`|vW1aq7uH~bMkBp4`^~>ZyJtgy9IJ2Xsrly6(qU1Dt04BV~qD0bEsohGOk7-C z01$j18jA3k+BvxU*58kTG^{m?>q)__e^v5@)584_u^B3vlOvU&>-NdQ#NwT$yO;N9 zo76xBD8@(OdT@B5Nlj8xl10O-fm-wS(LAXa=H|rj+1Ohz7#of{Klj&%@#1;R?P(`9 z(#wYk@88a;#6E;{hUe&^AAZ>rr!u`>eWL$RLt7#X7cViO-+$;ZOr0nxIPYK%pI;YXp%9 zPAJU!VsW_lN6C{eZH;`*NN&n_^vbu1xPpkXEo?%FS-a23%k<8A#ME)|2B>DZq>PhW zUW_7bn;KYyI5=2M^#lg7u!d}3A9nn-7o`gF7In}j=tWZWVd0QK^?i8~I^ifpl~LW` z4CYnwQpmLnK!;@`Emvd@r2#huQ}D?cAF2WN-k^K(=0NaFtAIvXj|j$-Vr@@JsCD;e zZ3d(4N+X4cfWX>VoQ-YeYaBT_1lqnZXD`b1_{iJQF-K1W7dPfD7IsKdP%vGukY)z7 zqPlu_e?R)`<2qtWdf9*zdyr^vY30pK9zXsJg(#8@W$;(k)%oITp1kup5pVo+9y}X79yL5GZj#IL<*DK=*r7V}VQN;E-``1^QC1j( z_5h^IA1OJCp`Sf+^QYHxBt8MxRP`Z+hAt7?)tLL3dWwG4R05S?ZFRNE(4WpSg4m$L zWfYZV&;tkrXYtD2;q-)^mhy|4m5)!$6XY{`w{?DZI-k}3q#QXB^#{dzPTmtr_#DKG zlspzbTF$?BIl#-AG;vEwNl8op>N}5&Ee_IJ%3GaW;nI=H$*CdPP(e%Bz|N<7Goyuj zOv1%J>|vRukixF-TExvOB69qz*=gD7x)!t-&P!b&kGAT}?v-@}kZDhC3=OB>7_uZbjptS4^6i^xFD@4$g9L?GoC*eEuqL=6;~(# z?ER*)vJ#N)B?cd)fsD^?*zDDJeJvj3a7W*^d;a75mFvd8MYve`2nrS!_VhI2^Apky z#=9lUdFg1V*p~m;F({JP=LZ`b8#)DY3oC;I%VeyPr9G~l9!Tav_syS0U%#r<7;1_< zZ8qVkNrmI|Sf?R*h4}evDk}*-Pz8>V%bv|xhAsdyFv|<0KWhnFvv(Ay){@$pe({Dk zvb2x~?*l^D*4Ac*u2w$q&Q8ZN^gw7)*~!UCLqp@~Q-VQ1m3`U1a=1!%R+{J02`OU4 z%2)hzslsKu6up+L;N%Ql-srm9{b{hXb9Ix7631mC`%wJ)(-JFuCB+n$qN1zG$<=Mk zZ$-GfdwYBSV-w@!4d7S-d-9nq{zwGNQA>kvVeez-{E#R8dU~JYQlHlvJsOady7dlI<$ZcAp0@o`+lfEyX zNOR;wZ`xmSEz>3vLCQNjZ^4l_+Wla(p29^HQyVBCS>-%N>&dyK60(TTe)R}bzp)hw zy_zHi&`U#63edo$CZ||grE-=mnwTZF5Z>2*aB~~l*Eb@X{YKB_&Sz<4YN6fte1Dlb^pI_ zsN_v2tt>#zC@CoHMQOjUDM6e>%M$W;;YD97>XInb001fJEjwXaSnkRkS|1)E`ViuX zLWPt1m;Ip5;HVu%z|l>~T(z_`V?2sWD&{POh@nod!qi&+mW(-%9$&rpU1V@a=iqu@ ztelpnRATd0LNx|zc0$^F`fHzR@Afu0!o_(z4XdA@pWia%@&h63_jsLPBu;ds?eX;e zVy&LjyP9HZ${On*w|=PimG4j(w}2-92b(G?k(+J2(ubW=xW4K2Ip zNZuV9VT;&(@8&`qjlVxsA^@?;E3&Fm}30f(zMV0I{8O0mM5*7 zE!{*n7zUG*g5|l@i)@>VCca+z;z89^E2o;Ye+Z0R6<%fXnJ>8LoyU|PIjG7G&wj$P zTogb$i<=r482I>zKbuq_GOwBf5<>gJzPXkqwQXxl3xtAV(@VN(gpxqHa5Ko$^C(-y zj+yk!*MBSHw~E4npa;o}AsKxd%frZ_t&+MGQG%6WT}+;X-5q22oK^ z_!&(o)dJT2IPgrDLhSdEW};du&}#q&dkjP%VSAw5RJ z5~HDE(!clI^WVAO*}WF%HBQxGU zTyY&^sDV!0`4AiW-F|0p?-uaU*RNm4Xm(ERoSM{#^J~3PywFb1Ze3*3Mi~aHbCIWD`few6t6TokXka0xbl>Nkin}Il9(aF||F}bVB}d6jps! zKYB^6l{dvAu+b`$n?w;J!X_=Q{y^!Gs3H$;PMS;g#MW0#N-+uk4;{r#owuP^*MZkp z0Re%Q-^*z+VTW6cj|0+ja|vnYxvx+5unDge%kS*PbLFphMZS-v)(wMlODExa^5Gkc zo}1gjdl_GFMo(r9ldZ%m9Jb{1WDe{d8D9`#d?7%L07fUeehV|{`^g(!%7X>bngFai zpfjIc`QgS_x)yP7rG#g~(xA!>_nC8TCFy$KWmUc%yoMXD=>h(AXW%(vVqN&) zE(3x62j{TNJ!!{H|zyfohb zx&Tm!f{gDHTHKoEoQE<6V`eJ|VV*5&S;vn&f_lA6Q1-l%SEq06$Lhwn#VAU!Qt+f> z3n_ufS$Gi`D=f+O`rUx@=C*66>bJMI-+opS&e5{Xzn(c?>f_>!!KR-V=hYv@oPuPpr!s;%h8_SnP30b{hMwF7+8z8m$ zZvJF}nP4iC6HW8=2p{LcTgA*IR`(Y_ckjepgRM#~H}R`+6Jd`#Gcr<$1rEdsxu{8clN z?i9TGfWklJdYz4VN1CrC?q@7J*Fyk^bD?-oBxlJYsA5$-QWHo&?hnPlIDv z%rNt?^Vi_?L zB%^#thtrHeIbl4?lTsrETmm+7RW-Jdwsm34T~w-uU3xX799#DMp>m z?d^c0RSm!ffW9ItqW|;t5(j0#t4tSK(1R!_gi&|E(?E|So=e9eA53(Y+TQb^BlKQw z7*qS3|Jn=|1S>XEz?|TnZ>~#WN(((tQ$-xgUesg#DAWiFYkF&K@9~!Vb<59fw4Aa` zsIj#uEz81uCRT1f)nmZ1!3q5P_fJS!*i40ZaC?Yv$4Qj-J$qLD)~@rxu5)I?SqFNR z6H;$4l}m@&LhQ>M;>QN7Mo1hb6)g!@V+QSru~)v*j@vtO--ipc!UM#PR&_p21G)P3 z#;A+4b7cEpY#5vl2s;Yz+JR_1IjJv-&h?RCT-a)X5QETFw%WX9&RK3>Voq?#c=q#a zu1ODtsqjZIi!iZQEw2i{6)a499jiI`&yDXwn;u}Mk@?iK($LTt?(~S}C8v`Bb0{G` z{vkQJRp5G97@BAwdw~<}aP>o9*Jy$y1he05@#FEp=()<;+FH|ASC{#gkq`Rp4_jbe zh(68m7YQQ)pFc_R@o82~ePMr-$BRb^QfYU0_uDr$rq|BQu~!=fp%xu}k2p9~KTe<) zPVo$Nb;*eCsQ67*2@M3=ymzL{v~t53i83V2SuPIP!Z@Nn`&>3xu1Y&ZN4Ga>7e=s`?GmCo5ad5;vhKfcB zs3VN(@ElaRWc_4eHUBSW65ezVWYHhc*ocUTSkcjJKA<2_1$*(*IHa`v?D=8DHuXH( zLgq080|U_Hfchg&&4or7Bq%C0JUlF#J96mRHRI7Cn20`R_ip3EpW2^bBVR?SLv-KAj7lnn))QQEq z{6h`E+5)n2SKvKJvD<&sd6ymEw<6IDsSa)}wxz7nrnc0xb242z& zK$dn}Xv02^JJNdBk3|#74WK!hNuI>168@aF1CkcHzqxtHk%(J#zl@3ixEd1`mB^VB zhN2BN;+`(Usf%p=s>FlDWY6QF+YFLv%UBwoX6sEDvZ zTo4ixdP~38=TQ6YE5*lG1w=+Of;|8)O3ibinY?g?Bfm}bW3+P|YGEuziZ6Pj6W#=S zkh8USc60=7jej^CUcT+=AiyesKRBGOF$LffyI&xP`3?9jfMNnQ-l5rKwr6;U1!Eac z{`%_5b*ZZp#8-Ja_qnvt;ntTgUm$`O^mKFy{25FrjBF0T7zHglV7x0*KUs=r5Y&o( zeivZf0{Ku9-$^GsJn8oSWF{slPoVb2tVrrl_Bo+)!&M#rjK4|j#~>i;1rlh`@rVQv zl&PWJ5jKr;@a|PUquN)twvHSFsABG?bu-FIYvAgGHVR8hFpt)lWc_}QjXe^07X`#D zpldKF*=(as{(5eCwdLjI<>cfX9UTGf`z5jiozQ<@;7@e8I8y2$%yqG2%UzO|j*fxk ziH(hotu5!%DU2d7%)?%vyg* z-CoY_im)(~o%7E{GJuTxvX90e;>Q>NN1m#*{qhBQcr6VGmB$ znV_#|Xheno%>s}c85-96{d;KmVXWL6IfjX$Su)ncx#92c4>XWd8xcJw?7BeULI04u zepWZL<0b8D+NbW(kVq#nJvCKircN|Xhc@KAUgYJh;W5`hni-=_=vxm%0v!@`EwKm$ z#?rNlAQqowk74lL873thB32Yg8_(->YAE#BfBU<#Q_AlyFFiGapWZ(NoIo`-CWJLx`B#pTw|CppXZ06 z`EjBKR$tuE@DKtm;uNrLn2#S)LAn<&`60xvOq38!_=OaU5BH{@3>n%_N>`W$Wh+Ky z7z2s^z0_+Qh`}`})bHrO6@NAHh>B92bsghP18WqxM9$*5D0?sTp>5<#h^b-5%sh{f^^XJk9+S9nv-NIj*Nh1MMp+< zHuj1jHQgYU_n0UH9bMq%kqr{IB3!b|Xgu3slMv+V^|^3(DVms$mzP(PP|#9S7z6ku zV=q*J#h4svjNLvr{5o%K+o1lZ#Isz5N^&H&EAdc+h}~#)b@k2h5BcXRJx{zf5l@wY z#u(|ZkW9rcD(cl6O`M*dZe5wZaOU|uZX`Zuju%h+`o|h|bsTy|?--V;|5Dd&Xk}Fu zAPQFI#J^vz4mCpQ$jF3%vh6feo9MQQe#2Y;6His~tl}DbU~sU_b1mN9JU5S9b>6uT zt_4qsVgwFJ-a60||0_qr+C1?DL`3@B6x>;*y4=7ztuy=lcZi+2vUq-M%;RA3KL87V zf-O~hRAY&Wi3vn?ZR5HMU0FBl@z;oR#5?`b!?Fc9vb>{81;<+qp*zXHzB2LSC zj?`!Ea~dx>DVE8dlQiY21V`@397*4$eM)C3Ds`YFJbk5}GW`8}d0pKT=R}@|9@l4k z{H85oHA)i$%-ko~b00B9#AWT)rKn1W^^`x;xx>9B6Eue=Hux1}R*GuM4$IwTQM7!f zf-?r1rxzg|x=o_j%Ab@SYx1qc%JCr8yrwPA#x5@W`eRWJ*+xF0LZqMkk8NR)^;%sG zpg{xQ-L^5i@sPV~nFJyjc#K?o;o;!_OMZQb&seGC<6F*0Fx|Kx_J6^`Y1!!vw2T$G zkV-u#t9JXbFb(r`lNt-K{L7awO-<>BFWUssEFpT+ zo#~o(pS_#~SBdOr9r~kWViE~9y%49PaBOFM@tB3Vlh+!?wua&ju*j6?Nv+uk?UJ!- z%kD)u^{f^nrH?W`;bXx7aM^j<8%Yc@CjpO5Q0Pn$7hP%yq{Vfi?dZs}JSnc{FZ9N~ zY+mX&r8WdfW?{Q{big;$kjYQV!edxMz7som<{S2^B8rd-OpE{{LcMDi7!P$|fM_6< zi%P%@_Suu;m;Hn)lGYmdSw?jhQA97)w7;!~ummgB5>bBH}z9sH-LL zGY&@B3`W;;eeB4cagEGOy4?Ta{w3LHi2Cl1Ruv4YII!#4SXn`D4{!!P$BWggJEG@{ zG^{Z(FgNGFGN2zeZ42XQdr^1uoqnI-7Jb^jYhp2+W0t-g7!M$(`il1=XokzHWecMn zyNUu3M_F8XM9EQ|VUv!hIbu$Oyo0#V39`zsS|wVD+2uXr5Y~QpFIbB~QuB_yx;Wz9&$g^(fKhnBto00{c)nt3b%6D5H(`mDXRZPLFyw* z8R0c7l@4l;6#C{Y4l??3LP!2R;Ge_)6#Z?vt%07pZAP2O31AaUtbjB$sx_;hw=~S5 z<|N>~r>ND(uXVOUa!^-gPJX8HWncY*#wR;ZkNNZ+Q_p0${TWtaHEDy0pL4 zEiWPAdr(NiBzFV$2Sy3vfu2>qu*L?H-6!Y-jbKGZ1+YM6f0PJHU<}o1Y5#E7SB!{7 z`?X86r;m5<>92j!9=B4I?LU;|!^8C1V|-}tz1Bu(TUMIzjIs}ANh!^j8h`bO{J()) z-06egzklD}cI5W45zn=xgRz-5%-nC6;0|rOLqd-0vd&k8U~F+#SwN;yI!Af@ro(dj zE1{k9Q}j54;dA@PC{;Mp!m8M|}@CUy9^>5+r5Jhd@{aPROc)#{`HY z#8mzp{F(DVUPtB8Vh}RB(~Kv}z)GHIG3HZeMi_-aETp5eqT*I`^6yxr#1akbs||aR z)mW)|i}uMbo`WCVG4VK;3t1;WXl8yj;G^fl>0;3SuECUD^ZZEkXm@1Cjjdbbf3$`c z={(M)Iwzql|Dg&IJ1T*@Fe}wk>I}-EaAcZh?@)I%-k>L%DQN$I*Fm*HLb3rPPVaB$ zxG%Zx7>UGA$RtV!CTL4YMUCLiy5&HH1AAWwmJ=GM-XirBatE;}ov_yMk4b9+aA**T zd~G+4D0_@#@71oC#o5Ik=n1L9s&ut~ha=9711Xt*j18mWiSqdF2c2Z?d3f zql)|HTMlk!eEUNLc&chEsw$i=KD2a|)uQLzP&WtkdfR&wN4Mcb^jrR!UBgNqSxF^2 zmld!}TK6wR$;7Mx;e01?J*O?&X{!6i>)*JqLC$j3W)N zVa-&x1e@rY6_bsc6SsaI0 z>{6lSA3^uNH4lc9wG5`-I)P9Rsgadl%ge|Td31)7^Eb48<$0? zX^eY*l$9Yzd${_r?nsjQYsnWQ<>(~yZO0^`w?1{9Qb!@gY&SD20X<{#KA+yZ$lf`v z?&)oz>VE6T`*-b2LZ;QN!N~0$Sp@3K7kFZUyV0iIqgiV!E95twS?fzmu?WyWn5+ zy&iXznd3MVQ2+n`|L}Bw5hgeI&uR7M)#mScwEFXE^LM=3eOSnmk=I!b%^M+3%T}#f z!bX;DLn9C33re}5E}f&qAQisjW11CE5=~WbDHNz`{o$=E7~%RsX>f1RXBP`~91Oq@ z{`j{3ROkZaNcHXV7DGX($FV>XcptQ5f=9T|r>LzWGMkElV2EDs`GlGKOzM<^eR56S z9HeQI%s{6mnWomL)(N_h4v<<+8WB!Pr{?O*rRs)(*`k}Z@SmKJ<}7at(~e*n}Ss)3A$}NcunVziLUlw5D?&Gwq*=e!(@_McvDUT*iBPp>wwH+#)=0092` z6Bms~iSPh*IDkw7I{wKsI+;c2t+@AiP6%*h1E$Q71e~|gVGt(^F6o7SVg(X!co5uHEdlHM1@!#ZkftK z{%Tg=$x$Hp^}e?%Fx}fv1uxW?`RRk3WYe`*z~3c;Ch=>`u=I@(hz}aqdLcPMdBu?V z`wjUZvOY$^4mgxya?mpSv>T`QRyP9EYp8zjMWQMN4fHRLrS@-i?88#}2TS)R?prGX z!bboDHsRcC7yS9&C4{U3mDBdhCz-Xa9mmF^n#UrZqv&-IOc2Zy1q+HQ8$4#~QHhLA z1hK-q$#re(!>IS;7vb~qALn!rL7ETi`ZmgXQ*cC;LJgZ+&r8(TnYfF48gb2QMn4VGUXb`=mCSS%-hVHDh}`DkDV>*8@8?Fsm=XG(0_uuv zSMQ?CT5#PLy{Zkw{u)MG8keY2G@?q4K$URUd@Eu{o$L3S%f96e#RQhWFDOO@3S$PM z*z0eEPAQ52kqkQRLqm19nwKo-(_k?Kn3RJ`U&MFTmaPvxw8@PHiRG2 zCFytrzbLSqU>$csqRtZuN88z;a!`SQypdf(f58;S zPEBc_=2(}tzwLKxF;SF~Uu-6NL^obdRa*fk*OJuye34ZlYdg3uc(3Cy@yZ`0=Rb$~ z{^m>VFMR#~YRJBt3_N%6E9(V9dt|JDGK5*XZ9*Tb@MvB7ib0Jyt$=!vzacpyBiUlEmCersyq&n`NHRn)mvwxj+{u(g<+$3BKO- z+6w4a)<=O>o8FwSa@(;wlx3TQ4Y=be%OG9S=axtCul+W|@|fiZf%GPE6`r7MFwKBr zzZD21@5|+#^zTABi#J1R%xkvZIhVg!LJJ5$0000*SV=}+0000lZih>|J48t({zGt#0@BY5Y`9C*-aSDjoY8B-? z-zQH9Vbz3|hj~%t4ug6Yg@uL=t#Z*OA6;+mH@kGXd-6nhkCjPHX zI;kD=&VMV0eWPFvIuKbC;Y;nmS814P?D!X zKQR;$?x+p*BI1ec3|OZQ)|VQbUSJJ%PJ`}eaG4mS=a}{A6c?#8U=6h|MQ3mY7`hG& zzB2TifBf0saE80$+-KF+>~ux}r%p+Pr)I@lSozUyEm{|g4AsME#H zfc4!4OI1|}3D(dO7>YdQefc0Gj>vX5;3|QYSu#(w?WSpK% z0Sx8>zR}dcH(_Ty)=9uR2D0SiSIS3xHL#L7sxSRW_|w78fOU)wlJrG?`<2`n_End^ zWS;X3Sl_cemi%pj6_3Z0K~*FY;W+LLSZBbB|My_2ih8=Fsf2IU{%0=dgeHH(_LV~W zF99nakDo?VodN5#0c$X=5Q#+i)4|SotkVFj!Gju(&J1u)gbH4Q3Yj)5^|( z^_>PQnFUSyD*m*xZxJj`JQKX16s*A&FdB{iK*18Df*3{;IDwZqQ8-?#s6@nAL{eB$ zVC66?hdGhsB~)X5Dkgmc_FeZ_s-m9o-R4gR`>$}~k4g-RqF0c-f*9ra7$-=q#2urc z1bzvE5(E_?qsJID{)VDI2)!g7*H7CI*CXT2_0wC zglL`U&;x@(i3V^?W_~=dYCb5gnriYTbxeXzc$TIM8R4b}jD z30TQv!S5_sUxAoY1uHB_eohK=f;8Y$qauW4!M_>a$^~a?$f1**T5xK>jsc?sG6g8T z#H6wAkx>eZIx#5IKp6%u4N!V;{si8h1<`6ySl|GHiq8}FuspCFa8VFA_%FfwZ-_ZL zB44A93AR25OP1x6e-Pg%uo5d^l#{}O7!`R*<{;b+HJ`wvW|(-c;vOc`8o{Z9BwIw@m693E-ZEgEDRhv!J!X3QoXLU{?c=6K7F9Yv$wmeA=u+pym0^pgeKwc z{5s;iW=0<_*2Ky&D8`~Css4#S71l3+NDBnKssJFxQT%$$Y_J~$Sf}EyPHV7|=Xx^F zsjMJHQB!18jfi3B+6{|Myzwkg@o*@`U<#%UoEjW%N;eSkQdIhmX4U z9(=#GWlz1omk$PGArayrgA|J%f=7u~*9FaPoj3`D$r!jX!J&;6|1_|A0f>#DMiWT~ zi1D%_sH!L{q6iWXk_czOI{m?t!mR99`7lHUB@`0{H57}qY=g(FU^{1kNdq?ql^9IJ zz^dixOT|Y=L&e!)I~F8#(W2p8#e_9$S8q75tGcJHUuI)T@uJKt0?3M33(uO^inF5A z5t``tlxTp_L&e3gb{@p)Q4WHKcvOwCN=#5yK>~>bNjL-6=?@kvSm47l&xxF(3Lp+Z z#}0Uy5F9@VIYt7RNJo`xW2KmP`p^-CrEM>r7EC59QXvDu|(Y$Hamue?P)PW3kD3aRrxb` zdoG0P66cRRsIn+2a$-$96JwojV2Q{5tQe7E5s*1h!qC45?kke)=XkAHgh3$@VvE-C zWj{Ui@%&Kt)3EefaO=D-EbJH&D*0peD-SmA|J2jn+Q$XOsGpajsuWcPRuy?p5W_Nu zeskQ94z0a=l_%+L;+!Vyu#hb!j%!c?g3&_R#esG6Q0)x}Nw)qi2XQ8NKRv)omVh2( zlB6gC#6!T=z>-4Qc5bH?3p+5i978d?4f8oK*tKCc#6E*}9Wec@Xes8mW8IE(8}6fO zKl%7zU3HtUH^>GAF`^6wOBBLrk>!xzLWNl@8`ul?7dB<-ci7Sbj9ztV(eHQa`AL`d zZ@66oZz2aF0~=HMufWxrUEy~Xtf(4^NQ%D-?#>FEQ`(9!AE}c|F_?}DN zTM+!&(g@WAJL1=e5^ z>*OEaHww+y36>B|Iub;f5Epnw6j9BB=VMr!E9YSiC3+w*-ib+0t%7TOl~**sJ3j)w zz<&ZyWPnT4Hwlv}G;Hyxs(0qKRe#{AscY-*@v|Y3k18S;6Ik_#ctt>mHXO=j2&g!M z6(v;_fRBf3;4!+xd0~@N7cIx21g*A$T`!mZEVz0e@bxIpion z5U9Z9v;*tk>irV+$_Ok~QKQjla?}U^9kx?-S3+16{b&!!N$69K0?&zo58%~t;KpLb zD2IvSsuE1FrUo6q4ZLxGfbB-bq95K4O@SYu+~L4G}gS|(RQ%6rz;i=#!y`i zrw&!(jQLoFWFe&Tk}L#j;YmDbAJJn^{OjC_j4Q5z@=M^InGoIwG7Ax4{X)>k`gu9R zi*cSy)YzQJb$yFq#lE^FtKh#^U=4b#L=yxGtHo|;{S+R{hYCHE>d>c4V-csGEgQ)f z|9aosi-V}7Jpk?NVb0$=8MJJvcFgPg>6R_`N7}ac^)`eCdLR;tpW=T{MCL+DRNy5D zLSzp-Pj}cyb}$;R6H{mmtQc7IQ2q<`oteNjf*1up5|b5Cki482MMV&zoLm;qfc2dN zE9tjXRzg{T5Da_@_Z5OQ)$78*fq?}J5@|mCtoDgl_N=+b$F{}LkF~+`ZlKQVv!Vn+ z&@}w;W8{IJEqu>`K5uKp(+%OE#PjSiLM?~KDcN8s@)EEz2z+D@JVW+6FQ}$cyo6T3 zHDJ>Mu7}EtVdLGPv;uGtXJt|J3(}G9v6F-KbpiLk@L0*BhSQ}tmHPr4{993oD?G@7 z82BN&4W1>yao&JaE1?r&EMiUZn9mMdFWdk2y`D&WOyvfk4-UKl&WnA-2(alPE3Lu) zhaDfk(9*iQ-rL$2=#GZ^RW=}S;eZec3X$O86Oj!KJ{f$@3H_Yd&2s@c%A+P9KSU0T z51DI?`U4i-0HKv=4bTX2b>gMIk8V%aK?rh04u`}2p?+TCla-u9Kibc~FkcYhe|Nz` zXJ-lHzk4?HJx#u?gJ0YeKM^4kL@OY>A0EnO9cMR_SQm|j9GF6DgSN9;99K23x<4N7 z1}?-3QNLObxBjb(9wCzHU>O1CU)DTxYvP!xfeQK-!geR8~H zDJ07SvJ{Z{sLCoT$HllHyC0q~w-ycC=NKMwXvAVHS$fJ&y|i!byb$We5J8q8D2E~< zI~1d1&`IvGj<4uC1J-|T$#FNQVxq_k9Q5siTgOKVQ<@p9y98@>Vf`hT;20LJxUzlK zl72M+VJ_wm@!Gxe(-siVH`$aDa{WMfhR{qDH0PR5DG&_AM9<6 zeXx^Xy*c{!hmn<=650@1xgq-YCT{gcZuQ3KsttqU-`NmZx#{EbHy^xe>7&1R?vbB9 z^~8mbKKtWkPharX3zx56ed9`ar3zMVQ&)TvUemho*+Avh4b%lPo(9hJ&S@8}f4%VS zn)}}9eqm+*%dfL5-WFG{k=LwMR;`oXUZ0e*YJ;+BgSvX-7ihiu&RXTYcVq9rr@X&j zUAsYDy8%|LhBrQ7mmYflkE?G<{d6YQF$I$=(b60zb@G%;{Tn91z;Z!ZyAL*Pf%Wgh zhL!NayRhK{SpN}v+_3S8HhlnFx52JGaIgycI)DoR>W`I0L1k4b1e~CX-yyL0@0f8? zm{)wL(Kzah@7?EnYI$qv?G46B4H>0}$2zM=+pBM;6Cw|dCF&;7bs6NBs^#XA&Kst6 z+&HD}=Hl*5L)XoP;f!gA^50l`^(OO(n*5PUVOqR=#D~vZF?I9*xeksgY{(|s3LG5< zI;lBrMrf0nT7ScF~AdY zV)AWi(RIJy+n@V1xEINUNx;V|_I!zQN_442m#TJW%;881TrQY01?J6xw_bqOgAfgi z5rK=wdgJotsHg~&i`mWr$FZ}9}yV5=_*K}L4xJe6y4oWrgc_|I={AO>j>6HlS z_F4^IQ%=N+M=UgJw(~g2 zTy|~dlu!Qg;JxQ>qp_$J^V_s-6G!ZS;>u<3Ut|9Cx`HHFt@+IHV09YEzCt>wQwJ+( zVS*NBz*^c(l(yQbJ=u4>blEf0^_wYepD873PL1O!;KbNPBiZ$T-q>b%&`Zzq;FQm5 z3Ykq2i-omXS*w+^**Kdm$(F(}ioKk3PLpqY5H@`V1AXymK;i=eA34R4>xZ}$LNEdc z54X;`_rN$;(~XY$e=&P*ruL3u4veuM(OCMxSh{K)RW*({IDtHrK^)2;YBG;JNj@K{ z!`XCwuBjm}w=>Joondataa3hLvg}XmD|NLt3`k6N>ki)g^Jm|_cJ8+8i>k-jT5_nC z9I8E^>ByswD4$5WtF8jN*GTmmsX@F>NZ3FEtfYKqN5D!1Y!;stIjvs2yxTUVu3**+ zS1g~Jx}VbZm{NFCN(|RRnHFxt+SmQ|P_yZ|e*27&on|S6NM(q4(J>xNp(wDGfu$12 zY3dyhz|PNLpj!xf1dbKOQwpfQ>nj@xTkedTnajHb&cJ)(ciGs@|D_ zsrO>-Yp&YdWPCa3m?k&~h0c*kQ<5ryAS9YXU@;8XO2J$Xrcx-I4$r>;4YkpThvPzt zQjRZoT0cmzYTFv;F4;Ve+J6&M|1YND27C2r#MAza0xpS<*K3)W-6;zkVIsk z%HU|vXFBugBRU#j{Rd!q&5nS@5wKE0TT#$z37eUSiHVpfpOvZ3nfmN6-ky8XJ6N1?vQ(knKoCIKB*vvK zTP}6A@qSx(?o&_90fJl1Dbhso)mjc4|bv+uu|Ne1lIW2r;q@ndv&9NsX2 zOsX-19#nniv1-e-cV;q;`Od9lmfnAUgB$Z&Q>0QIKX+K`b64K_(GB@k^l+E+8{xVFV5*4k*7(YKH@cvc1`|@5=@VP*kfEW*!95B*Q-~>Z4 z*h(eZt=KK1-4r2gk$WG2{dH=eCz(wh3f9-Pz=Pb-bE$tgU%; zRp!!{uUIt$>n+COGzODWYnJ@v^|${r>9a8fOYq>JRU>nH~x_X7P3xTKlX7mPOJM(@ zGal=tU~R9eBd6{hPwgLz@>Pe%Fo(u4)nkw3tA?s}0+HmVVFKBd$qcG7gC6=v^h)0R z{S%&Ea{kt03{~Edn7=Zu=8<1K{QlpqyKXerk1OiRws+)F%|+%;Bi&ozI!4|C+E;)l z6)Yl?3Ye)ussa`U?fA?TN@*U)6MqyY-bM=qBM^*)GZIdSHeA46EM6WaCIxKMy9(#O zbj7PvQ}^0+Jyw0xoT?I9#fgctu;w*?sXc6Yx|g1;x}4y&0G$gAl>|$6S~;3TVC^}0 z2CS2Vwf_WQp}G?Q5{3lF{&Q-R=5zsw7we3-eXLq9mL^Pi!v1S}E8{S;AGD^Vo}5yg4m> zyFI1Ts*mDYv{kIsDATaom#$iOxag&@V+uG)a1?-@83aqPGoi)zoB``pz?!^sJh6Wq zd2kGQXbg2|4E0}vweA0{dFpK6M4eoSN%?90&huA1_~-KVH@a$W#yiK--8bU{*>q2V ztI1T}VJ!V0fF%%!C&}iJahr@2s>KyEyJ8kcgeX0nd&_gbd}qe6Dq81H2J%i_oW^=@ z(fL>Zes^2ZT#+gPng+(DI9)N9O>x=IfOSd++xOR#6L*cb?H`9%kHHU*Ar6lr(0OwP zS({k?2GuYDZ$xY%HDysrHDoajS&q6~dwn*Ac7hpGcaLB4{3V-j*Rv%UPo;QW>AP;f z__24cBlb<8nlh}N8F+Vw)nlOgjP|ag;vS=;w}2U{KBL`hB$HJ6jl>YJh(U#{bkITt zEmXvMY*57w0ZSmLL5ZXtxhn#tsbm|4gcAa33lSyNS$Dts>zC%IZkvt`OiUEZyR=Y& z#coS&T=R#Gow+Z?@OeN_0mcDL0Wc;YT-=>YVNYGG*T+SpJj*Gfq{{LUo!J#01J;4D zpMzC9Bu*a^u#-($L{iP!WKxYebX|_KCeL1%OZR3obs2ZR{r5Guj;xx5#T;0`iB;cz z;i~0V-MM#kQB$_1GuPaeZ|OA>eTC#nhm_!#VIiS-18NK}k+swl-JIjPtgu#N?5oV9w4_3#+m;W4(a09LNGF5g_6TU?i2 z)=}u*HTJ1TF0Pxc_o7)Hn0KOP^HaaS>z!+h_uYv8+0I;Zx54TuqP{C&5!M)vb7ZlP zoOLMow%0Cy{sDc}WUQaYVz@TuKz>VEsB2pPyMrzHudw#%U?+gK0q&08`55eNQG3sT zb<(AnlIH$-Mt2sxcE!x+|}R`QL&?ei2v-fh)LOAS$BvN&b?ux}5u8yXg5jy3H<4AEAqq z`dD!qOwvfVV4ZLOadVUTIo3W~aky2=9ay|nJ#bj<^PTZnM@-;O2-f61<7@}VTI zW`+l!_u8*tosqKFrR_n(z*AHji@DL4q;16?TUznw{H~dP!qIr^tnmI1Wlz@`uucK2 zF^H!mScwSz)WFJh)#jA6=M>kDU;NxJwoFcKU{d9>l<3T~md7u9cEjIi?z^$1c0ARR zPj(vc{|#6YqUzMZ!kx0MOvX!OyhOyyM3Uz1wx+zLuUxTgcKSA#wv*6tR3hGTV=z_Q z`Nr=yHWj@RES}T#;C*8K4r$;FSSJB%TU8@Ibk^q8gMg^27$IV){@&lWEIE5e3FdL6DpZ;{X++%v zKl@tVnRhs*o=}3$AdLAYb7F)gJ30*QV66NNu5A=NenNGk@gr# z#R)1-+TxT+rVUZrUXyp{t5-g^VA!WKu>Oe{nm+H+!$eHJRbRjC&mZo(W3RWmBhc#& zghK)^$+D_Ssw#rYqv19`tV3vl;}KPYPvSxnD{>*=BBx}B`;)Wb2N=;>0 zn=%UUq@y2sl)GVDFM6MM3zb>BRD-RM{Dx@OPR3!)AT z&8A|s;LyUf^rj^jez5GfPi(s8*2eMkdNU`nxo*F~-DfQBHMslp-Cjen&p-zXtUiO& zpFhc;H^pa|G+-1nw)Hlu> zwPooq*1U1e8=G!;tg-O^?t)tf4AXiH^E(S}?=jBs6uSL|wy?2~Ey#};$)K?~ROC9k z0^$*y89jbQuwqB4`f6a&gi2Gqy)@!3_g5Cz8t-}e(kG{+ZMN$NiZQkrlS@!*wK#F) zz`D5*ZvjYLix(G!#H~wTTfy<^1eU;o!hxEY-r?B*_l}DeVC{GP4ePx)(nV<@t zvS~R4mM%_dfJyX$P28zhz{=KBA|5_@P_R`}nC}uU-4kxAteg z*=%^a!#K02!0I<v zj>~HNhX)p~aEVDno-MF6TXc==F4yx*E_`|GXvd-K@*`m7m=Rbx)?^m6DU)f=nAkFY ze*5?b_lv$q9Zb}C{4VW~R(X^K8_DxRxV9wdA@4a-z@;|@&@#vRp^PXwVd89XEY0$8UHQf?5 zO^KL`k)y&55i%o6m`)Ka87KZLuqc;Gxh2LWF)o2|3l4&JS(*$FzxvCS^V0TIX!~3` z*`+}V2#1EBc1iErIUF=4ZXA|CP*qv|0eUQf<5;O>3p{87YnrE2$IsM7?mOq{t)pE@ zu$r^Uwp>eFUO`I^)tp(@oP#%KldYLEYp;7`?{D6F=F-N}vpIJPTdL!WF*NU=ND0## z&V^El$ysNDJuztw4O`RkrHKjbE-lzofJjB7*qyq#Q!hI8tUFySP7~cJvBESiYk1h2 zE|!jn&Ofi~@n2NG^S3Q~uYb7XrZR7Cd8o)0#cfeCKT3~_5{3T*uvD5+$x4-&qRy#AA zA%Ty`QC!`_@T$Qu*lj}cN{_}nJrMJvT>2;(;i?y5+ixy*iv6iE?;fi53bI#dv=ctw` zSgTX(accZ!SZMlrpWgPXWs5F;Z~ll6=jf{^=^LHHT3kAx3lkk0-mYUQy+EZaapKF{KnPm?@Zs|(ltAEot0Saoxgnil?kP*Z=Cb$Z|{2ZS8E^p+2(ma**N{I{gYF= z%JjWXy@%8XtZ9+LG|r82(=l!$CYNDxM5$ z?8b-dGv{{}-0HQ=kCL;aO>7TRst+Gu$q7% zPKeP7z)I-Y90cw_B21p#*{gp3!lIPj<(ND%vDTNM5-yneb67JSpdKxVJb;`KVoL&9 z_#S~Jv8>FZ%!0s*3J#awQQnQ7bMfd5B_{vZB9vjhP^e*-k#;^ z%qVZ4Fs*9B(`){*?*0pRO~D$Sm=DMJBCTlEg-NZ~g`(HsRP5k_;j8Yu=&omfH+|JV zD?b^1|1+1oScbK`F`*I*-+kdbtN*oVU+#?R36%%_wQ&2t7Oxw<=&kFPKJ&ZB@45Ji zTQ7KH;;^-)DLd>~og4F(VM-YmFT>)c$?>6yn^Y6gv09;Fr=$idbR88bO|wThsWwjkg0 z-+)E90CxlKh&yIisVe;kbx>+E#f*66glDO+MhEiOj z0!r-r0+t-*;}Kq9WtIgY08%q7$zw}?#JLmuH6s?L&f&84hn>G}-ei8S!%QCVZ}_|O zlbgxUGV$8H=_`M8-(;-01a<1gZqt9V{EA1aCrs%#+Cqh;UAatEmf=8d@t)jSn{Jx_ z#-A2Gb;UzVE_!z1`ESfg{ctL_e+pJV8Ec<}c_(7gN=&UloFTl>(Dp=UDT(%;aU2uv zn!Yk!_0*IN4_v%q`PFN;jefN$_pt%X<3Y>4ym_u{o&?BUQ864xl?xOh(MTeLG6<&# zR{Vrukq*Qb;ZjH^=Pa&qzxLqh-OdsF9J+vABfIp-%Q}WZ$py-$#h|pInUugoOp#<& z6=QMbo5t#Y29^*O#$A|6H#_R!<*9sS?NB*v>VJ7z4ITFcKV+*Hj*Qn@RTsAjnj$f!hyvt!&)}o2GEy?v(Qv# z5aZt?kCjX=Kp4Dx;2~Swc5WxG4JSS-AoLOQxgDlo9(eg~Hs}M`+Ejzj+A{v$jW?`( z^y1A6hSf~Oe5D%Bu95AUxLqTgv3@JoNv5~XJnN%JFMj#;Ki#$Arb#=ph=bW=9ja?^ zdU9w_F4>s#;Jud|D$@*abW_NKG&xaA$Dw>;+O!=?v> zqTAJ?88N)%zX1!y@-(H|EkH9+Sk}Mbp76m#!VY-U++-Vd2-kUOj4w{aTXs#f{Gzt^ z=JC*&xKlU=5k>y~c&xA#@=E@W9q_mfiqG?#F?1t{106>w%m}vZcfGIO+tuF-5deNq z&qu~5p1gAH+z|~G$W?$LmAC4n4qeEl8z|QG+OgKk5xeI9{H^EyF#p5r3U`jR9muAu z^X-QViffIfUAc}>HW|zNfN^y4%vJ`;t{dc%v&m3r+y`pP^#kJw~7kwP@DxoTOi-=S+K}^_yBnNLc1eRTYRo_Iv6bA zMl1G4dTHxx)cX#EN^c32fjB{82-GYKCmDs*Yti1yBmtm44 z;e(wh9~)0zDb46&j1KG?)q(X-(l#wfuUh(}ea~LJbItER+VYQgt20)$6}{X~EFB={ zdI@*jSquybq(!k6$wZ+{6^XQ2pmCm|6p8?f0Kx*e32Y|xgff9W2ka)W*n4liCw%a* z;_H|{K})HQpOT0Ri!qtR*pi?5R?S6sbH<|}DYg6+wKx zTSe>}s#)NLP~rs$haeD&g?Ga1IWTz?$}FHH_%PX}59MMl_Mi8!zdMXF#RJgsK0IpU zCtvP&Y0&AtBeBHL+BmIaDJ;rhzGJg9#X>ZgrfeVk<{f8ktVoqBQq@VrJWGH5;-(1;n~HAn7%RD4SERr` zq_~PXsuR>KM66`6$m%niJ^9AuV`oP8-hWQr@Rx^{|N7~NFM9Kqvo=+v?IW=!I~I0f zaVMtOF$rZ~bts5t5+k^24Z3FawS-3hPLbO^J<>BeACLmEc@{0rBwwBImbd^ zrlKl88;vTJ?H0*d$k_?bZkK2RNDD&BS^(yJG$4d504fLU7MZa3-nvBE+Yt102jl@& z3ij-XJ!SQkoYOls7413DkY)@>ZM^alcykKGn$UvC#^NDKVU?H^k0~-JUw3lrn^+1X zynu3{=;ERfaJ>*b3=bDVNvc|&4$c(Sp+SC#*2EaL*HAOzV^^Sp4|USC?U21*Vp1`tSV7>uYa#prLS%$5_hcIwD5;6u}yb*I@OP*X-yv zmDlG_+n0Uo#+w$sam|t^f4_9`#V^h~``yX9Pl~ZaZhgqE7l~Aq_fLGf@kHP+7GrWT z7BAJPWm>*MyO|0*T?&eAGVRp1N0)^UW)SUj0F{Dkv0St zX+yq>uz<}078e>mLpZ=(61rsx?5JbAyF9EfCdVNHq21CG=H}vadmXxf3zJd*w+5(m za9zZ`e+!x~uX5;aPKbjNmy%8kJ$|>r;(1O)SJ@;^m&F>m#|Q-}9yi*j#0iWuW0Dc` zRh;i%Uk-2pnjV40*D6NLgX;lL0b2^XzJWmBb+$OAy)13l#1Zc%lv#cw}bqrNK2D&T1q^qE^r;zF>qH0X#uU`G)BrI5gNhO&7wow~b{^e-| zR-uc}bADB@k_uZ07N-T$&f$feEiZ%@d2F^Go2$iI+F+ZqFYAtv|M}Qke|X{XOIOYr zzHZux&&r1%oTP1Ee3e+F1QUue(S?aLCNh}n)*`}Om{g`wCu&ufuD@htQS0p@K3gFxRmzn}kd}hA5^OFYOQ5KPpS1+G)(Kr5 zo^T(!a76})L?V0PAyX@HP8F?3x1BL*KWS|?%QGK{??W#4m`zPvx9yswa!jm5nA$kNcd-u$v|S`HaJ6JJyQ6(?%RJg?YU`u{f!g4{z0_eXlu*D5mg2Dc7v_G$l7K$b{1NX2g_Sv3K!(D z`FUZ3F+i5ISYLSh@(-qHYAR4VAaIZFeFRofAp*{Z(L6NV0=Nyu zIyMF!1=W+p%s7m=#$ZJ9L{~R z*K|k!osYudDxtU47wHKry)5`5z(#=OAPkB(cp&glQ8zWJ$*u{zu^9TbS}4&+2Xhc; zOE?IYg3f=wWv~QRmZB=l^FcWhkbDs(80GvBfan%@*a-Cb1NJn@jov1eIZ74E`lLdc zPAS1ew@!4Tk}2e(@wBLAR9*R1J72hY-8=tSwEnuX?PKtUY+Gjr-hZ>BYka~><>P3S zqXF+Muyz=WdJ6FVd@>>0TVVGY9q7?u4;aW`fiYk-hVili^OKvdd}DUnemn)rF=4KD z%jTQzZ7MADSqp%q2(8*Hcs11$uK;01k4p35quSk?#A(2oOC}9JVLP~lpfe`iY2BW(u;2S<_ODC8J(kaqOr6FaT*t8?zzKIXAa*FC%D&#yjv$!kl`eS6Wc zb<=d8mh0*(biQ&ex>_;$j+J9D1xc+y@mZu8W1SdVg7r*GZ&+~tfd_u}*|S$}ek-G@ z>0#*D2%dTn`XSCH?&slERpj_!5CYJ#6&@to$n%@ z_{)n2^5=BmSzcS=@o_q5Lu0Fw8f?`{43<68#~fpvNyRB9K3MufQAx#V0wtoDgzVH2 z(ex2fiJ!NTF)I-w3?3?{AGh@smA7Qfs{X%upZ%V#VzDqaG8NR(7t8rm{sCGlo zPQrv4m^cL!D-#FI_9Jl;a&LAW*!61hFur1>F!wUJ^#=9TRJQl}GtQZj^ z0o50Xbw{EK^uu#ZjKn-77G%(Y8cG-rivD-mFxh|&6pgB$__rOe+|sc9t@ip|9lqB$ z)RPrexpZBwy*zIXYc%Bcpd=;?JjCGMDV~jm1pzZ%5SR?~DCD7)G!yK`bA=24r zEbh)NZ_BJ~%wM=K=blf--?8?F`md(TbYx7<+uCkD96B zQ3O^h+9#6w7@l5R_h{nB_=MjY1S_#7ep_I%$@?}~#S1L#dl6h0b(W;6491ff$Dj-f z3e2fQyAoRRGzn>AM2d=!7%2Ny$Ai|+ZO@0h_lCM^+d5kt#Z4c#I;Ykax>^cLI&xh} zu)1?k43il1QOCN4(6I`j8sgjGc?&RSd+9XfuIMx{W0FM^S@bsu?o2o> zVF+7_6i2y;Zv!lWLtsTjR^j4u6U_UILZ$Hu{}i()63~hIV2;4Rgzhf|A{{KlBy)P8 z;!llBHC9_>dTw4_D^eOq&607LZvC8X=(db{%v_1Vehx#$H(bM z8z26yr&OV+LC8=mDaFL8e=q(#IamyHL_@(s!_!D`5a6(Z-3*SRxV-=f16T`HYmtas zqXZeCoCBo0K94z+Q(BchW9yA~z4@C*pZL*RccgqWFV#Oe1xoZlrN#?~$$7)otl=?I zivqHV8l>_>a8`T6=?cKhCZcnJ&%XwqlcMgKpndk1yE9uWI>C2~26|6!# z>H$o&!~2nFpV9H@b#L4~s?Lr1OH$Q}l+I^X|F`cU``%BUYV7)?z4NnLZ+&yHr!gFA2na1+p{Gxbs5|y` zl*~+m)sH<%kwhPUZO>qyRWUdTGUlSu0~qeU}LriIB=!ImabzYT6#h7LP^Z?v7I_$*!7EDEZmV_K= z{}Ls!zQR%U1;5=lHSfS{_x9{v>u=oA*LA4Z)7%s6?c;(2JUNA-tLOyP6?;b z_z=4#N)?4jic_rS3j?_DX8-^o07*naR6y>?c;Y10roNp z&8%PP-?zitSliXr-s|^7gT6>K97K0k@thcqBn4YOi!v46`S_7LYK*kE0AVyJG*2NR zf6b~*>@MRJgIpT-8RD#rz(SHh zQNAitUkg|^7Dnytm&5pKXVZUa2o4_VAGwY2c93vrp~X z0ktdT4;BwRK{ZUj<^XX~b?&g*Tz$W7gg_085ot1^LtAyUyl5oH$bqNKy#KHgXXRuO z`L_+0$ca(t{0OH0-czcJl;~nOCR??%Z1@OO-w;@d@d^pBtW2F@?$RIanW#Z&QYW_e?u%Az`_~=l{KrC^eqhn`AXqUc zAvx{AMT=nfZndqQ9SEpV76cIlQH`>aKPdNzatp9EFt8nVzXC5#=a=AN=an_i%eu%> zEP+M@CNtQaJ-z?_?17$r(O6W8ecK)@u@p*Sk&F3u!@O(zTv)IeQ!SWi(XjT5I#w*K zZQtA1THWF6@A8HY2SOd;h@Xpa0xOEVBnzS}@<()(tuF#=P~IYYQvRZ$buUMCbQszo zSV(r#I?@1vLLFmtcZ#tDl)GsEW{#6Q4jb!MPH{l&?X*u-}}K* zalv&VJl*TS)DlcB$9Pw|=V^=3yNBg{>=CdMonqexScol&6Qd#v&;gGW1j_YdMIzl` z(W>V2yC0plucao`|YC5 zVa7J#n7HBZn--)uIk133%a#uFz4iOY`g03VU;I(3j(~;R|Bb5C2Q0B`z#o!15d;Nz zS>Y84Nd{g5UXCRS#{D6|8~Xq4oe6kV<+b;BPA0-2RUA9n*6O|2+kPFqwYFYbZEtP8 zYDFM9(>{BjIRha?1_fnMP!vT(Dk>s@R8#i*8ogG=Fon{-!UDo7ZWgffO;s)sP2O#yB%s44lh zgT;$dnwLZbD+ZrWhcQJ^l?xU5;2_|({&DKJAAkNyGO9yd=JAU;kXVp7kOWZVgd(T1 z!LkgNBUsHNsKewWi+#rfR>I?o(B=U{Qr& zk+ebLT}`%~Az-cJ8@NaU7zsEHI9=lmfdM83Yzo*UFbPN}A(ezw8W^6{-+QXjb$O#R zUkjl^qBNdpn{v5)=oPb3OfWR%w1S1T$Fj;vvc#((Kzcb;e_s#e8e>cmm=c?D+u)s( zhSls}kDrni6QUsNDvsAd7cH7Rbr@o2TF+pWU~(Z|Ok0*H!2rud3garPJRy5zqcy}a z>&AxU=~4R~3l?1YRv;(p&A~eK$1i?+!wusT#X;F+$BP;)Qg9iVSvYKbBc`l+2CF0Q zaLSC%PF~=hQUu2Xc*4f~zEiDkAl?J*Di&(mzAe5G<^5P>=qu@I->e$ZA{xMph+3gfs`O@Ny{> z6D`$ds@FpRSqRjnZTH^1vt<*`m1EO!QAlYrtBRZ|D2gZ@C0K{Y>Fr($k?J;HwnyXb z9+j$S@!a?BuU-n~HG9lv&S~d;_R%k%Xd7OsI)>wO!VHrWNLMye?YB2y3f8GbjqVDT z?sw_|G6R;>RG(zylFBQ(C~JacqQS^IgQ1p;^Rj@4t$&M5`N`h00?top6v0;HCBsCr zqA0QDO%OQ{cm)N^WvgK3Yg`nbP>&_^jKcFGwh`&+6tn`r5h|~&9hHk=mK&Q0HZFj1 z-%e7wSm1$e5&1y%hY^F;Py6%oh9%~W0TEFTY8Jr2a~G8)u+BRIS&S<2FZ zU3bj6t6*&q4~8%*XZ;hGFWz~}eJn}KKGQ9kMaE|tScYZ=9}#GS4KJv{A8zpsz@{CN zkUfM*=L+tA$(g@VU_BTuIN=EE-!(YRU@1ac7a}^x>a45@XCVRqcb|Xy}@h#p-$u7T6 z24t@zNe@ZHg5EQZSVYY&i;`h#!KsNHxzro z)s?EV0jwri^Q<=Rn*C&v?#+V|g2&;8gcdH6W?Zk;`~!?ejO=xx*MOySES_Q6Byeek z$D9_Uu)4s3pj&?HuJ5JGY)U0zR1+|sfa*f8t=t zg|xP6(ZTAU#)|U<7vA2=E`r7BPPs7Wm(aKv9hD)VQ&Z&A1eSF85=BuJ1w-I;fy3N^ z`Rjs=M?6&)aVYcwST`HSUB1gt910SW)o|jrCGQxtec~VYwywuQSWXgURRaJ?Nr+M! z(-tc>ih-&~u{Y)nW-QSyoWjOYhlh8OU93w-jb)n4h4LZp5t6&S?v91CFZ_Tcu!%3+ zFFN-J^S2GVS8$91GK9@G*-0s@Mid`mN5R7BHTo;S5*yoMj4DZ>$r|Vqs0IkIWNz!k zpKo;JHQEWLgh=?YQC1?)OHBCh^zOIJx_GN;0uU)|*HMgiQ#D=HvROF-M%~x3gY{*L zRiu=Lj3Hb5Vf*6{=(om89BiK;K!7t3To<=ZzPYw#Bj^V3tZqty#zZkDatf^2COsNW37ic=p`f{p}2`i zI7ciYnk%o1Z28oz<^!C@W}0@G^#s<}S|=VXURD@Ykz@`y0pgg+-T4GmUa~!CHdeR^ zu;&7Of$q5|IqBA2HLG+j0XnZK94GTQO$1i1%m&M{l#@O-u-bb7ofMQ%;4D!+PL3@5 z^w)2M^KlMLxG-H+_|{w3%#RPN)E!>%gn$ZU@pQ(3m6$ODx57iM$uzIYED{re9dE+u zpYE{d)p!ZPpCfq)j<#u~gZXJc7x8#5f-ai_jTC%?)&W!R1&dV_NoI60h4%|_yhdFA z7*u_;mCDnd1lS3z{&5$;h{0R#8?o`=GE+$*g=|Su9M-IsL)92pxx>fcvAUQwzaPP} zQ{Z#}S*&{O8~^b9q(O<&d_Gvnm*;JG=8C@^xV?gRxN-ihITO3S%Ew z?JiF^f|i*&-t9cGF48iyqvkMx+Vw?TT@Ar)RnirCHT@!T1RiA}PU&jTTrbS6RXljM@D$yFXzkj}olzRN=gJ zD|mMngL4G99Esv5UjOlms@&Z)0i;c>Dq6AZrh8lMKGp8PXe_(5;Y#%s*2BE@j?_NLSz%ajJAECJ&R-Jo$ zUBej!)~3zS(6Z#&-FIFSa}AQnJk3Egc!=F)IsBdH!K~|{_V1{KCCeDus|MaK8`d#U z{x_9aHLa;QSPxH}07lY3UUMhOu6xgyi>ulJI?SxX;!emcfm3s&2Up^H=|^wV{S^-ZqjDk-UG(zG-_K6DM~R-m83C3Y z@F{*8JjFOX(oIG0nX_fy(n(h@^XE4Qb8(&<3U=g(E~0JR(B$4_pv27_1n^i4BO+cs zFw~>oU#NZMlSt)G8bS}0M3R$+_WH~9SzubbUQIwZQYH#O5m z*gHKIcxiCjf%2!lqd&iC(d5gPl;#}><|^TQmCg~V9Chrs;DKw^hEKpqnJFvPJO*lJ z@4N<>Le!130j#)&6UGHu!fLZLjw)RJ7*t>0LKSGP9GnnI7Ge(Kkqcgk+*&4k#tW_r zyti?>)6Qbf={z!6U8urNK=)UG_3?G@jxEAD2;to5J%ctb{^|UNk~>(BGou8a=}_&B zV9{RP;{#VfE}pt#=u@)>y>+*(d5ld85Na?VWw49$gsInyk$<+=_O-WjX&t7wgVn{( zJg`_rOQ?|2Bv$2kMUX^I;X$p1We>raE16 zr1yg*yD5nb36AmWuX}O!z=m-|<2WKcnqWyHM%y&k0QtfHfgNv{lORz=N5;EA%U$Va zu|vjs!s{^9dOcW5Leo;3(r&88D5l8leposa#$1&k^Ax|SC%EvEH!QFid#O1OjbzD^ zqX)}494w2i9>J;``RdbGED0CX_zJjiUS#fNZ|wY2DCG*{+#(9CH*bX^NhLk^EFb#Z zBZEI0ONe7}tehS~5puS4FhBjb+U~`mM{(Sh(e9rPx3dN;9xo7ul!|^Uu0d3XHXRg2 z15t4`D`evIyN2m4)){%k8@O1QGVPU9@2g2-ENs-NTyviyXr|QmS7{Z{FvHEtsLmkXb7 z{c~x`J}PMsGA=JmdRWSCNlT*tH^H)CI?97vX4*pg`~|bs)1bU8HFf>(=HESFU1<^S z!sCf`OaI?X&BZg5UXrD8;I`@s=veX)LaD9O1(V0CdcCsOuhK!o6PE0L)fIx^q}9J$ z^w_2EkGAa!5NVo#N^_dLy(l*R`qb`s%$fxW(+Z-d7&u+jIucr!IMzQ;BtwQ_K-RMU z^((+Sh9w{M5;UGQ(y}7rys!OOV?*`d|JX%yO|Z&)1S{K1siddVIeqSQ>P- zV*txqryVR-R#=QNW9YZmJ_@h=Vs`7FOBqK+(jMeIex9azuT#RYdM6kx&088LA6WFm z&0&HqD}+(Rfq6wsS6n~mkjs;#gFF?GsenP6db_7}D^ziae9#=58%le}thnL1`_Efi zn%m&ck-Ys<;BJlNVn{rL;&{CW@%EmOA)j%?nRc5V~f${+76j-Xr>8z}#4T(pm z)rRAH*(X*fiz^vN1>+2xV0n12Q>1zTD?6e(h6kp514;M9cYnU-&b))+0)7Q zdq0_bU<4g=hXlG*rhF(gLYBZW{r}+vnc+cAXoK>z$0IR+&bPNs#3$ub)3>a6?7zp^~Dez#uVHWYC0KK{P*e!NJc; zw=>)70?V9&0 zb5ba&BSgKt0k>DK$-roZ~{IpT!@yhNooBn(H!xya%6r!*47evO} z64eBA55YfN)VStX%fLQ?e|RF)ylcd2C0>;{vuaP3b2M_}D_LjLAMK9iW)tU90~1Hy6?1#(9eBw0`e=a_!uG zw^S>>5KyKdAbrcJ^H{VCC>N&RJYJm+Y2H$WzH`OUXJ%jcK_zj(OQd{-OgLYzAk;BL z?ZQj8FaN{ajh@FO58XC(9Blg>Vux@{fgo$xL?CDqC}x#arr+lHFKW&Zu(FnwD#Mb% zHLLZi3Wg?SpV@llrT~lY+AscexBIXZ=y5znAwVWdNg+Vh6fY?4cgT~2#bNj4Z+iXT z-rDxZ@hryde+JJmphn`uK1D9dg`$L{3lki{YSwq(=HJhlees7OqR~fiVL~s@Rl|f@ zN(fJWbLZASe-RlqjT=p?VRwASRM@@~+9HC$h!Tr!^$HF$QdGfgxiLGNHS>gMnGQWV zr(;fT^=h!J1?$$FGO*GiQu4YY*6{QtpKrcpTuaICz*B-FvQOny z8PbJDyHq;JxyG)%Vd1nPAC?h&Osd!lLKscRRYc453u{*1^3PcLBgqP{Sm9E9q3G0y zVCw;Bi*q8wTVQFTWqn{}fmJ<<^?DS)FB`0Eo{pa?peWH#u_03PIa1_byN+ zn{g+Rnpw1AluQL;&S|TMK0EWmcSjQ2DV#zml@ok5 zksMF7&bnyR+e80V@0}}@hov&7QA+CGKy1oGu&vf;Yh#5JCo+=CBT~AY4OXYSI;T8V zX2JTk#+{YCk5U8v4zMV2lZPqN9HSl9wXAxPEuc#z_k?9bUz^vTw^D%g_h6~B6B>IHS4oaW)VNly+NB*aQWnm|Nm53K)a z=ts4|huKgSs#@T=6(h6gw281|vmR|`_#`JXvL{&czL~{DTI=NuUJ_@MehNo=* zE%WDG_%59*g$QXZQUBZ(v-XS}7k5>0zRGkUEPGE8Sfbm{Qd3vm_}l{*yiMmu0t0|5 z04JeU7QlqU#KRYE{AlP$J4&92R+gi-st03y^BYT|lOKRBO==|0@JUuk$(oQk0QQ0P zI|OERCi#oKG|yNQ$vffARaTxoxZuXWKQ*yY%^0znjtOzANpoOooE(Lyk_e z8I)J>j9Gibt*&@H+74&E-X% zM5-iu&s^A`t1aRg308KXoq7GT|8neG;fA&9I0Os4epClB+pw@_rrWHJqcTfQ0*&lq z_(<@<1XWLE%sJ+rU%cie(jh{sBBJ*Uc=eMTpNKg}$v!V;voNgo9?3jMZDhM?riQdi z2X!(emiVNSpynI5mo@W%*N{pi6W7m-+s}jq+mOkqAR5xO>|4WZN9T!+9 zb-~89;)F^8LkGV(z_{yBp<`l;>;Wt{2@Wr~t3+ySf(k6T@ujN5Xeq%|5$Q_Xdv9F( zY@0Kz`5c&A@=)OReyJS|VPuw>-=fk%!53EPu>BZ}M*n2C)C<89piNB_Y|-|E&jo&$O8c9qO^2Pk)ku_QS%Kp< zML8kGFh@q`$m<*jivo9r>Zw$Gp{=*PFyrEVkqi>67XAAh&5lvBkHp9w;h?_4 zGCLaG)jIdPtgqKPY8DL2A9t569lGHDLCa`cEmBn|26DwpLYa^kefa#E^}{}B^iOW{ zQ(8HVVo#(WoI#X!>I3WRg2j)mI7MLLu^?=C!r=8E8a{vF6<<^k8*z{%QUB?_?e(9xd1eZ} zGRsby36{?(dFc4eS+ISl-WKCoR^$auQBKtD%~`Y+?%4qkP2(ui z9HZbpxnMcHW?j4k93_VHo^5|xFyo?SC@+%(cjoPS_dn(z7%?RpCIu^gKf-~oW7pGq zGNb#p=<&*qkm#AQ?6=R(IDc`NsPpBt`0`uJ`y1greXK3=#E{Kvum7xV41mayDaA6PwkET#=ME{#r{!aKs) z$l&suex+w;(A^~%o*2pac)+c*?`aOjhC#y>()@`guITv}^RU-&^b> zk^$6)t$%31n;UOh*knhUoui&X+G7yrYOh&9J6Ls@asW`5u}B1 zIXpNQHf%>p(KI9SLbk{1I~8^=MPgK@1>Oa)-Gu-E6A?*7K~(x6RdJ8%9tEzT=~s>f zRyJD*5LsqI6U;j82f-cAfCZkQ;T~&v%DQY`GEM&9&t4x_&=f>9>%^p@xjdvv8F1vz2j~B^Vn}74j>>;0pa#9`}xNSh$*eZe>N3_nq zcE%;qtnM93j~vC;uAqS2b27zn zydp|{V14P5SRQH)h>Kp;{A0lFm;DaaM|R(0j=0?fJHVpMhi#@4X;%kWUW2SKcS)D# zZ8w#6s6N-K8((|if;}{mq6ob*Kl0L*i|cO-ur6=r%evcPaa+cyPSboN)xdBh%vHwO zr>^?-n-2`!Tt&15QI%75=kXqbxihzE&XCp zMN||<(O3q9twS~N>BsQs9HnX$1f421g0tVMc!sOgh%Tmk+D#*eDURFZ5tMvKnKry! zFZOCBcjzS!y@XUtylROT2aURD)oE9pBNgXx$u(SdkC0sWMsN?`UGnfVKYBSttPc`O zMGnlk@Z-;KtvcWcBwZtTuTu$8g3r~(ByXq5bi1ip1|By!94T+V)T`#E+oGy_Xsd~(|Gtz+tVeXOOq7`?k>R2%BqlWxGlS_&gbF^!8sDh9DOXljPdyW#)d zhrhm}EOZ7d4AF5 zFE9H3!so7hxN+=9`V;>Y<~=F?Wxi#?lkLVmIsf1zAH3uKqPqXyDs$T4*z=eFZRE3i zro9k(^s(d)c*3;lG|RJ zHu%lToQ80J)qbAlFHpla)|0<~`j7Xn8G9)H=yG^+K0kLBGjA3*?-}8Vr^NY>;>Vl& z3Nv?6a^AxD6AO~_7V-;Tg1@~5?|lN>_CZ|})6y7?wXj@L5Exa)A)?v7st>Hgz~Z%7 zQm-@kW=O^$mIfRfFN+NksHum2b^7l8#-0P#t7WjSuKkT=HMOw!5UhvKr-6I$E_c5q z)eoFDa1e$gKU&;>!^}Tyh<*Ut)_U08VC-qocO5kL;2UF4gSMvuc1krb^V2R*SL5xk z8a!|7T=&L3|7eJ>-Og>P zjvUB=;r$MTezv>jV^AAGilmjch}PO9wKhu8s2WR4v4j+F<)djnA`6j}&=$#<7>)9= zsK^U^dy{~O3bz7}s+V7qXYXNB!^vO04y^2tkr_rJ2m-?}>2x~tnpxTZnog&=v>?P~ zB`!fLz#dpO3xb!`(0NT|sCNZk8+Zr7@New8`wv@dz5qTAu{McM%VL@rlbnOyMDI8V{4>P8$u_E6iFlk1Ydn!+olhJi-62(BEyOd%QHN~a6BjSqRjGQ zr*UcX_d3i}S+ov-sw8LZ%lfza!0HNC272trKe{Dynvw=1EkRO)2=?s%YZlyj<-w4R z_nX5`$s)bDf1+e?tYxRz@;=UB{im3E>f!hD`C%XqzS>FD+dcT zZ@xhlB_8}G?0X;76mW4>;blz#O#oE@Q9$(wsI!zH(neSp>Hj}*e z&|`J?rd{52`FcfBGyx12P`I6!aX?ZWxLWw)5xD!RCTDKi62-6+io>Ri{KmGaH}9zZ zC(a|$lW8TDRs=(oSXI&!tDx+M``mfylKiA&Nc5RI8xCwqq?#Cm7eGuK603=-CdsNS znyrzYrYi;x4B~a88I~`Kj{Vh6=K$H0tC*6LlDklJ4v_D^!PvhTKNx7B3L4hmnR6U< z1r)`=CM_M*EYo!rhc9$7l;`T~6FhRq>FEIr02>-lRQ>0P1uJ`HAUm>QcR3FrX@)H5 zs;p>+q=HfhYi2|FcUtctR8J0SbNX{I-%Ssyd+?7t6U*^i@lBUU;hVRYc{HSBIYLPzfnl|Ua zm@`N75S*Qe1d6~lP@DdHoZ@dJ+PmQKRW{$CFocM0rR{~Eoo3A;>S|x7mAMbB69JZN zfMDQLR}4`H&Ol8JbX^Bw-5dygYmYZi4CFxAlzt5nP&(w`qqpr(Zv-`lu@TOK!%28J z9F^=}>n!Ak_tVO*-@f!sE>RC^ng=!60T#BgTS#RLsY<}MzeCxNx7z!+x$~2DqLCs} zrFm-jd|}dc+}?LVZ^IvGLx*;42)R=m0)^fB!0M$QOU5~NAc3MHRdK)|UeRUXWT=NN zPl9*A&QNZ$f{@EGp@2o@!*Vvxa@4kM2VDnAF;DCa?05lO19vzJx#D~%{=ufVo@5hs zASO9OjiJP{V79IwPL-}|z{9r1@!-`PhZizkxJsLh;1;wj06(n=SDQ^I87?Os%n-GQ7bD;cN+q^_u zIRT?hr$rU8_VerRyS-um7q}yJee;4!7_JYy^G+A&2f9-9MOMSV(f3@mXezxX^IS@Y^hF~l5UoQ zje>({bxV`dq^h&K#@yn%*q6!Z2Z=oMFh>a4#Bslg?pXn98Yxlq82$-`3|Q@EspX;oNl#!MeXCX< zSf>^&Gt%M>^bi;?AH-R@6RtQE%26>3N`S+rQG;db;?#`d=B*!_FY_VM>2cfJEWI8tq-h|dn!EPVDSc|aF^2*O~d$_LG6O2Ghy5h8r?Y(Nk9n! zo;>gtfpf_A>9=odSdL)T{2i*lcMvZP`+;j<-Crj+wbnp7g-Y1%B3b~Th(;7vzYNva zwK>lRZ$F?3Y0MCC6$ths@&4b#UQ=@mTlq9yS2c{r+CNnXOj+@K>7Az6N zaloAmM9IJ$1gh57!irg1>1AzpQ&5;PEagV{q9<*3mnpa{L9P^lUMBMZc7H^T0BL62KAuyHE} z9kU6@md>MKcegnGu&(6}>jSG7gJl>TWDHM>oMEQBnqd9o;2pA)LTz^}XQ;5L)q|M8 zB|9IyX@A?h@U|Dml_Ssn3BY!`@{Ib zKo-U(UB}hD2Vx^gI9@h0ydNRab+ugy{;UT}*Y)0$AU)w!X{sja8V4A{Gq}a!)`ZC| z&_UCn0oFVUzJYrJM6#SvM-xy*Kv_R<^xHf059{9Z!5A9~4ciOSLMASAXwdyIy=F#mX&|E zR*&^q$LWVo4MuuTOT}?MID%6)K+2ehQJvL)-s1Fd_}#=*ROkl-n7mMuzFm)`Sc~j6ke-^RkLB-_nZATu9U#Me3^+? zX)cuJ^PwD_CM2rp&_lmJQ1@PX*W2v#lMYl}U0XU(EA59=1#A$`g|d8@cmu!lGt)8R zAXyO&(^Ccp?_KO9Ea*+^Tn9@4Gey~gH8!grh4ELWJ!Um}Fb{(Hsc^0k&VjJaOi2(* z>7}U$|EFctf7TB_Kkh70C=B_HU;%gwz<-|c;4fj%+n6TRSiCw$mxvdFokR4_QLwB? zt4FZftI^LQuvA?aOj$d;o6)e+1`?=O{pll6b+tC4fF%o!U=bHC;LCG$e=fLkz)66+ zpGFQoXz$-<&%@F#A7OY1$!U|EMauLWV9%?jxCW|1DEJp@4WqJTx6WmcWf(^0d7q5z zRPO=H3b`Z$-Iaiszp@Ons$1nZCK*$%!_+$ zNs16g6)07Ovd<>j3)uUH!tQ^V4p0WXNmMMPM9_H9c{4Ka1MA!XOVxGB+z0u?4K(1I zVa1CO`q3eB0PD+PLqyD(tKLxv#RUkKDG)D&2%(fnm*=#Vo!2z)HofixQzIUig2^() z(p^SP8^aRJJ@J#(`#e_f11saS1oS7kAzEn&%i~D8!8XF7PvNg#xc^5`(XX|nU-Y&? z%*g(XJ)fruHAsjR1XI;7a^Drnr4vvP4;WA+MuJuY7>w4HcCfH?O0agra}TU8A1gc3 zI$J$fw%@XH5ScWD47>_yLuoICIJgwve4y#xKh%uAI#TuTtz&-JJpQWa%xl$WZi1z= zpmlWzjF_e}G*H^>4m2ySGOv%UL_-f13VmRmrC{~EfYl+6ueywd!V1U&2)iKl3Dms- zo1cZ9FGBnyfNkd9XZ-SGOIgYM-zDUfpr2GoSCZ+tiG-Aq^v%$ z`oKC(U}eA0IOoj!ld!ZQb~E`F!hqcu=>C{bHK7z7tep>J>|&z y&S~2Pzx*Q||AMo6okXy@vvtg?4=gy-*8c|%XdgqFT3dMl0000_+ho8z3PkcZaF31kRbm@C7xzEPKJE{F;6E+>sVo24zp?*j|5N!> z@{7Knv-2VHFWJB7|7`rK`QPX>%nS6Z{%7_N^F4=uYCS=JNdHUwG4BcLC;Kx5PpIU6D0OO~8fyHra} zdi=nbozqY0`?8k!7c3FL+0woGN<=<|pg7M}kjy$5BSc)sI;h48P-CoGq2J^vUB_|DDQ5S+*7^JrDmDf|$|R$O?aA~Az<1ZLXg$!z>Q1&|#7?5(DI zP8UJYyhL}WBsfW%l30AM3Q{_j-huk4+}r(;X#pLJJ;s0oB)7nEE~N}GssA0ENv(6o z-Vu7G>8}aLmIQ61Ix-PVO>>J`}ZF+Gg@;qGcwXv zW@ct)VgLaC_?F>R=+)P*ynpUl6Ba=(03XFM_|`%W9mHR-ymz^}$>UW!QCbzB7v_7f z>b!GEXYO~Py0|JL3i6#ilAJabWY8SGg+|&+*B=OF`=oR zJol5AV8nkfmkF`&&P_J*3?p?&aiFbikyICb1Wb83dK9YV)6BKrJV(ftJh)xh@LtFj z78fpQ9xfk#^+$H(bdYF@{9$SNZrb3q`Vfj8MgKld(7|b$*10(!j`^=*%JIpHuHwEz zSI-!MFQETL>$r857)Lg$vrVZha@6662=B)A_xbvN4QM+~I`6}Wg@0+&)#aB#0bPw7 z1{nRV*;H;JCn+qltA$=^8u!-DvZ%Z0WGDi<0N#9GGv-#cFauzDL{mFLC81p~`0vL& zXx5l>GY5B+W))v^ute`5)ljsN4U#F-_p}P~VMm{yHN8#Gi0^X^QD*q5URlhCKrg<5 z!%fvAE(W;~y?v z&r9E+0w8|o@5w+qP5t~vr2VC=tVpvHc3w(Iw8o+eMplp~hQ}p%Q%EPcuElA9@umzY zgRjkSnZ>(lDEJ$vajoQ&WRGGmEn$o0 z9pk6_#Y(GBa!9!owwpVj$i|(I)>rrBfX$nY-r9-33e}j17&@fRDM82^QiMnluUfG~ zq>J%Z8ETr~hq>Es?&#G!Op&tzmLu^CqE#*&k!n*eTq7xxKt0Ae<2`Bjx$;a%*Qx~H zMQ|@eOEErST=&!HkhCu(ZKih>NNH;92YGPuFMEQ3lnqV7I%n|KDVI%}AlppA6v5hm zV-rmcO!4Q(>PmuQzV8xwg|L$0h&W1WnSNTIK&XmVv{a(f# z-n)lT(CH}CWZEudWrAq4r4i|wzhzb<7cngGpTbRLnN&a!zL=Dj$_fIFWoCo_s#T4n z&i78~vGIEgfpoj}=>Kt45YKB@F^82@UbTK{B?Uzp*Jw)r%e~n;ANUX|PBJ4trl6~C z^uTh0>>smnKB?D(%@Li*Yp#c6T-ivbLl5&-3TAtkZaC`nHfD;SH)S4QjrCB&UO%3U z&cTW;SN_Q!&H*Y9Y?i#l&kDK4 zFm{bccl2s0`dCgGFUxwC`fuW_&Z%{Je**Oy$Atqz{bkqxOE5L)SDjR zn}pTlqQbJL2F3Y+&0poV5;i@-<#%_fw}vOWQr5$xyH}T18{xGC$Pxm8b;w1MmY%*2 z3q$;y>vm@jE$BvhHd=iPe_(n?z~hDIo?QA@1GCp_wctjE#QEV33h7(F2mvd{ErUN| z|EwaiTw94AZoa{|nKFu^uCw?_jp zXq!5O>ZlL2(AqClSch{A181B2S$$+1Wc;5>?p|0h(7P6p>flG$rvhWbNz6%Zvp-2B zu=c^xj8*ciF<+IH?<9!KuNO;sm*!Jn%*_psOZlrtH_W;&Hnw`BR1BWU)Lopd{?rf! z@Wh@MQb)RBpVf{#M!5b+mmw`V9zF5X6ILNq)9B)QO9Di}zKkWw3beH!{rUTP`R9SU zC~7&&d%>E>YTFEN>R@OxG+M$jiwvtlGaP zG$0_EeCriUiL_Y9#Ncm7xo&O??9nH7n}ZoaTbts@m=Lh3NS`n~-S&)|H)SCIiO7UN z(UB@%vtuJVjscVA#&`rDYJxDE5H(8JC{;+O%K^E!vKz7?TV({lK+x`%RG5hIHckdpS!vM=ThSE8+B z@llVd}c7SwS0!|IS=8qWlkw;0#U|SqrKu z6)Hnpc!v$-d0F0zzO82eq@a&Zxr8DZwJw*c;qdUz_*4U7CiiuJ$*1L`kG8y_e~X?4_?@)xS!T0>!&|#Mee*i>fFdZF!d&v+w<`W#hT!Qp#{BJme*@J zS0yLKKUi%>SJaX;s1Y~67Mx6NdQr}u4b?(pQ;bcNc8e|?Ytso|CFZiW{{DWY-m#RC z*j#IkRr2@=D3+U17BiVVGZXZ%bzE8 zI?(y+rydls9Bv>tsxf=VFK-Lq;hA5NgDfsZ*^dqkNI-egW>k2!E@%{hrw6w=?=ihv zVJgfKQT6j*&Q>o3^2y<>eg3ld+}PY$9c~*I`*;9M*zeBw7#!6eu~U09Q*XNX|4HwF zlBqzBbtS~Zb@oYo=mNeJb`y;#+iv+I#X@jFw-rt8^TWO*cTt9t`O%sDNo^5M1@w%T zV2*ef8&~t16J#rTK@Yi*gdl-R1aqx{v0b(LD~h`=op<1uRLI{fN{)P00Yof-K*0>P zwd^MFBb{sYl%$!>L@!0&v__Z$L@_+bHzq>zFU8pHojt3|Wmf?b;`;1G`_mWf>4*41ye z*5SE&N)p{6AzyI$7b{}ACXvl;jf~Q8swjQ@H+IEEeRm$U4sS+ENXIONi z`q@Njn({o`8sL2kf+02#T17pFj5+onSN3@FoCQ#!=BH+q?2Ob?{X+RlKDx%jc>;7e z)Ko2}|MPkoM9urd+^Vwu_vmAqA=f)#8SWadg2GznQR~gN(w)*5Mgtc;EGtV}>Lu%z zeJShMP2fj5*Xt=sGC1mAZVzpDsXWKtf>fodYoPS=O_{hu3t4TLtV-MCD6~!Ta)IB1 z#BhoBop)%>i**Kf)V&WX0z~7w(TAdNVQyMhR#sF8x#MH#=IX^YV9f0?>OxtV?H*&q zfv?6iiVRyUy>ND#Y6|7e*)Tnkj7v%)5-cG?v8@ zL!oydUUct5+<}(6g0A2|6apR3seC`U$Y1QShp*-?-Kk{8oV0XR#&KP;r5=KMMNMp| z>vgJg?&3@?T&6U(eUowgwSs1Wg1cO7&-8E&0VVl;VM^eEry}k8&~DjHE#lO=TasvS z55ud{8N5KCOiM7Bj?tIT)74FG?lEeEyj{@j7}}0g1k)-l6eq6gx;qM?xw32iBdm~Y4d5#aEKH0@AZg4DFbYY(s#mQ8hm6+`Ln9Fjvkh{5?6<@ zT}H)7EXhJSvD(KP+}tsfJB2b+`=hv^HD4D)Nr92 zg3j~jFo)8xWul0-G@^swv!Wp8g2z=EtC*RCm+NgSsheeS8yeAM(r!QiT8v|ss-OX! z0b8c?fB*nRSV=}+0000?XOKXdg|A_hRaSvQ*?YGT_9zen350CNdugBVIp9H#*Nsd{OQDsMWk(#x#Y}RV5(wQrh>MEVtiB)`52TjY z>ME@4$e@bl1?J9l<(GF%U1C#Px`f7Hx&->bBx*|+Ul&XlPaDW6uBJ6z9HK3g0vy7h zB9_{prwLHXCHz=S!p~BXVk&)Dc}ic7Dph&O&!#9(*~*ZmN$z9FJ&Y_^S+H1Hu(B45 zo3&WkrBIMv3bQ^|*2iN01U{DRxD3iV?^)-ad3b~s#cZC@? zfPzD{D-29gEOlU7yTa)RW0XmIK}vf3L`@4Uny3&1LW&GM6d$!Bse=I)#ArpDeqylN z1p1CNwH-3B{FxL;k3mcetVx!lP%AdH=qD8htLos@p|04aw^g^5npfobvpX%?(3Sb15nvKEVbq*yGxoK3da zWtT$A8_O7ir!R%nf+&X1q{POq|IwvzGBELd5vd_R-L zI(k*Aj%Xt8Z2=|ySTDdTE~1gI28dN5`wIgZ(7MWt>zoA6&hFmlwhS~$WS^`!Ahg*Fb1n4SWxLpQPN_q zgci%(AuRVpvt;&)%mHy_5EqkS1BN9ubqb6@Y`}zOFDYceCaO(r`biW0vS9s;V6_&^ za9|Zxc#0}~Mdo0UxxJ{o6Uy9PWbzl9+yzF5$Y>WC+~RV-(AX+82Kl;Hp%$xMs9r7B zti15o8{g_Ugu z6~TOSpwQ@-7y@#=S6Ob?&TP^jS3P5P^$F+H&OW#0k8?UMyL!bH^H*O!ch#j=bzOQ@ z*B`H1edZs!PB}Mt%xR7pr`Qa~H7Ji-T4r2atZOOJd5YAoVx6bN;4Rj9igiA*&i_9O zRz}x5vuMT5M=V%f1?4Nn#+7_+J6{*fFK^2?`+0h6k;z&ytMxatJO6a~_06_BINYZ_otuz_sef~{jhVSXE-t#2@izF`bNk4Mh6E%n|BR-{PoTk-}>soC*NOl^S^3s zx1RThz)7bC%8za>RW}zYnoHEK62eoc@bToHELi^wU_rKuXRIo$4DgN3JkuiL)P`Tr zZCeuj>n(RZ_3|qpZ``zdPj7f6l!$_fj|2d503uL{IEbMa66iD01Q-f|uQ&HR`_@;t z-1Azs$w6}Dns>(sz%E6;*i3D($6}^+%oUzO?E3 zRrfvj%opEo3XP5?hGU6707d`^Cm=!bBsmk=iUSY>aZDEZh{xmM7>I;GVi15I`XX zyCrq@)ek)R_7~sn8IFSxvP2k=cs!m86XYoY;)!@X9*f4160v9kvW342l9s^8MF5B< zpEqq8dE~LT8mxai;k1r2ePf~8T59SP>sIr%*NF@_3v@T|G;8>}Yxw%*d_#b5^z)5g zY_!t-t-}GVT!oi0nx>DS(yHbd7^GqpRfTl?9bPp|P>-sJfDh z1?8vIEN))&?2E5$+`J_`(H@Osl=3?KFb?9eL;|vfABp56mLRQIitr;2z~&!EpM3Va z>gK=ck7+K^+l1B11`rWRs=S{!z@YHpDy^G=ri)Zlg^}b&YSd;kOWLari+q5IVV#$tO z%hURcW^{5)Hct5x^VzjGKlt1a-Mizl5s(N0M#cpp@B>(_}0PF-{ zI0is}7;M@F?)=B6N1yHD=ojZ{su@Hz&uHNpZ9IePe+#UMIx@g2s_YV*+Dd13N{_C& zWXbXu)_=Dr48kB5hdaIj0K$_kTYCiyGO|Bl#Umg-1V9*|{{|wUKLK9(wD+7vH|Oc* zG1OK3@+OYK%F#PHI_SLra(t{`9$1AH%efj~+06E3wp+gZ?z>QeY;aJlPYwrPHzb}`4$@{0s(8n_$?So;}VmVkaK&i>CJE6Iy{k{#`hUi;A6n+ZFL44eon&?zvCUCeahJ*tLFoKYP3di9y z@|-3Jz;FW!R3yJ)B90VGetm30Tr7kFWgELe;HFn($2G7FjX6e3j@iXA_k-pIwG#Qk}trY$JPNIRM zP#C5dTC=wH#J=4IHv9m-*a$xSBD(&w(1%|{Kl~#4@t33j{bu01A4hieBnHRew~52} zdo&!4LH7+a6rG4vieT6a#?A(#p!NDUOHcGLbk&Tboq0y@WWo1z$g*G^60k~AELNpU zq;D1x^~xCwd@JwV(H|X-LANH&Dy1!Lm^c7N0T>3LHw?b~KJ>i);VVwf5=z9)5rQr+dErAv8FOELj{x zq97hkS}e*2rqCS+(NH)X0mE_71AyZKcU4cnFv-%WoMzu zov&>mX4ZRF+_z(>k9r3)1`v`~iFPOhz>ZU9oyezI>@j zRwI_z<}2z%vKpbZS|q8?mn;>Q&d)Eqx=1!xqPgm{^SsNN?zr>*57&RXduw-SCc%s^wH4_K9uT zmmj8JncIqWR?V!XEy0_<-m*JRGejwGXwp2v=P>#(6a_nXgE!vZweqGn&!2aL>gZ~b z`YMrnevy7@v8lFDUn|g5i*ecERXSNJFa2;@ zsD+|CUPlaA6C0pWZP4i5{rA@9|7Qe?s;@6Ldt|0X3+mQ<@YUC2F?{X^Pxn&5q8%c` zjaq*Q42*#fK8Y<~`NG*3tdv#OIHIh)$H>;&gGB1_VJGGAsE6M3THg=iK8&>XbcQT$%9Jp-;L4v zP5%-bJGmOTH^dnb>0nW8Wx+bgU=>y@FE%ePF~esZXpkIbx$r96i|@QY7{;D-gmlHz zz{1=AF#!5wVDm0;`+Z+sIq$BDqx{8+TAq5IuzaD=v{Y!U6&jlP1_xj7fpJTt1Ipln z5dpoEr*m>O9v;ytPcNlD_{9XlZ?>;zW;B*IcHt=c}59`Z~U;mTzq2 z8!aSN`c|IaM~S2JVsSM-o~DDRX@d@s)+^9D1vYvn8LBEnOwcZt-sEa?@*@%4*6 z4}SRrj6;yW*tqK#PryLwAUqR-{ubJ*Mj|~U;Qpt_Dt`OtT!jUmOzT=PSQ$5l8LM$7 z)6W9dv_UyI;izefqL8G@*sd_z)W)jgPPyW`o9^1VrziC!7`}@!5DkHN2qehm1|W0w z`sd){g^v^)nv3);MLKJd&RU>{>Fol87s(H$58&iG`cxeJN-`tQpOhC$=N4$8gnE}i zXXmJ!*hFJdrR%gmu6+0Nz7POoFsK!Q&_`3D#}*6b55~ccUeIy#2gS3z3~eJ@>k_Df z0@Zj-iyp_yXq+HM$<9PrxC|P@u^$Oo8F`w}vFIRz^|J_5RbXx}HZLzOZ!a_Xq`GB< z?vITvE56?NLo^Pe@pue|B*{HKd_?0Q5`*W1aK(v*V(|5s-y1vQ^1CIKo+6W7Hq%$2 zw-)HFVuM|zhcHc1G^!@B#nZXDS_fVEx@D(d()QG=-;AKJDw(^LmPANyPGev!48Gb1 zsvQ618=JXmn?U8_tGpS(%DCjEgM~F+p8glXDk|?RG5IAXyVAJecNf}Tc;%Dfv3Mkw zpuoZ!4}?NH5yIQRe}51&E>JgOs`djc%5;%}$)B0Q5@{Ow@~Y#`us-?9 zSEG>l1Tva1#+LqwML;A1Klkjvdrvy|Mgd_Ft1W!OmND|41?yl^RbXzYc4X` zDHR%Qg$7%J(IGa#;=w5@6*c6R(d`zGlHShKw+Quh`T9k(FK|Eo`iA}p7>-6KIReMq z)-Z^JO&h_yh3oRw3wcBXy_0*^VjUn%?I~cvQZ1wcQ%6Zft@+fY_x|(k(F9!N(!h#g zup;rXu~=jz0@i;97SuhenBf!>%L)ulg(f?t0;8?KXcL`p@fybZRQ1L4_SJA*yd9z?06cg1>0}EbLU=^6! zN{nr)qibt@xBl1{3ZaaHOkhEUz}N_gZ`uhQ!Pg`@cahdB)U_0uorNYRs#Jy&n;cL^ z*C7InZERwimvD>?0-aT$tS;0nTI#s(la1jF8Tarp3WFiBF%W^LLOs2p(f!YSZ4&|u zj!xZ=T_J2-OZ-gEJAMmO@>^1_e**VB4XklN*9tZNlo$dkrTy%4J#W9i5&GmH97elz zh*Tnq!5R&Z0uT))Mn(YG5(3xW^>5R!970u{KxGqZy!pm}*wBg=zE-g*fOwh)QhS-w zOM*oUJqWaLDdZShczUZqXBTKJTxE@HhQ+()l^^<`lRgRqA#vn)QCnFus|T*=0KD?{ zcfUEmi=}L1DuNs$z|*wxG;LgUkgE=|HNmNetPTcPeoA}eiPBF?%>J;2&6U^`5S!ZM zTK5c%byep-qA?Hy;V2lzIR$9#BMsHi=pYJ`h6e$7?A_fbUfjyp&Mh=Hi*zoLu0y2j z5bHZ}KjR5Hh+t{G6j(@3ERoJ7(Ab!=2Gi`o122Eq4?r)7jY5MvMmqE;gPuyg0RZ$4 zjQLkTE7W)8NWB~aQbmcY4rYwJQ{A@dI$*H;x$*#|i4)|GEU?Bi7rKfoI`Yi{ak*by z?pGRG&ONQ|^G^maIw@d95m?lL;D5J*1)c{A%~b;J!U98!Nb3>l+C;i!uWVx{U56el zw?OR>s2v3c4`03HvbtN|-!#%42gC4phS}0|s^Dp64BD~5vB-O0C1(EauXze5hY0Ys z?E*Cn`e(s95U^GknpYK@QPHV6AT+teW~b7$H0Zm3bOgT#kthg}V4(z+C`?u$OK|%7 zz^(Uvsy@jg)-TJ~*XQeObg=k`0xTGj&j^;A5}&XY8odH_ZLztk<1f!`>W3K+G3X+a ziy;LTKJ|aR1tNtx8+PNB^P}|NU+L4dt%UZ1c1gp@zw!rk~BGa0p@-DvKB`{fq z=Eh@BYj}VCX0#6CwGT$tDYl|u6oVBW1?&GEKJ%jM3Jfg;dTXJiCE#y=O8cjcSC1xH!5zx6)- z&UZ1G(2FAsI2IbCzzV}8^2qQA*t`Lpdi>flg||@KS*U9-)CCK5L9s3X!O{odRFa!x9F>5_Z7GCNn=#a4KjD#uT4v1l8^eQyb;w=2w4&^MVTo0^nS8Gjs1 zJ}&Qsi44YesmiZ5R^9!`6QeP5)0d*rXm~g_7Dcpu^keL(Gdu-Gm{SEig-#Ug(r(D0 zsUH;XWvF<@K7IV;DK(}Ffz>KftSnS4FOs?RGpj!Qdc$Zuf_8x!9`OGTM56%Q@zAHm zS_GCn$X56=W-%}`Q8i7lTInIH>BX*&5U^lJ(Bkr-)Z|kcTxXo`S^vd1lhueuQF2TK z{e7>w>vj38x6G150v(9-M!`k% zuN7+-6`MVUm2HPDSbSxNNZDSf@RVs5{qFbH9leRrB?U!i>e&0_YR{3*Yq;TIEaTqYy?CH0r+4u z`0bz8vE^32GLS3tWWkySSm?YNWyqNQMHQaX3Y)xgp?mr5+Xmuj-l=gr>SK}2V4+M0@Z<~K z6(@R%^^QWLSENVrq=NufW`+(7tbjlh;1Yhm$}3X3isTN>QH%ch>L;PZq+p>)%4l~8 z-1fkK3T0 zgN6DWr)odJ;!}ia+PFj)SJlQPyj-<~OH>OCb6ZwD(hm~=PW6E3{ZCko!qR$WC-+Zit3RXH*nKV5+H1#Q5DPZ9S+M)`tu-qorHeGP#4Ih2o z4!St@K@dL))PNtK-1I;;5FhlmU*)&C)b+4a;(f zIcF}sc1wQ-uuwOoC_H6==b~WacYWty{+AqyjivTa5v*xe>HN~c5?A{2EA2(*n&!YG zn|DNEh!C}_$_Umd0PlV_a?%;Ai?q!JMw`&sDll{jjO~XlSX^~GJVjQ!Sehojsh**j zqdm3d)%Q1{CSIhH9cvI+33S|$06TU?n!GQtfywPVYUAMx@RMG3K3<6y-=C<0!7 z7aVi;-?A2K8WwAO9W=L#%pH7F{dr5A?``@HCYHdGJJ_5k9jr(Ky!#etAdAb2?ZB=JxSg=km59b9&X}45{UXu!n9a2 z>l&5hqu@g{4mNHEOIu#z6OKHUhe>!-gqwftUmOcf$T>)09U`|0S8GjCbVEhPu}p0e zeVa^UYj8fWaR=EQ4{I#h{2-j{YCHnKU;eREaeP2*Y!MnPVv_?F44R>YCKpXK$kJ#- zQ^Z?IQ5KGRWrBRkp%SU$89a1x^lnOQtt&+=je{~bRC?|L`N=I_>>Sv-i?70y}Ie0Im*pX;A%d$HswAFM$&xzX@kQevZz z6sjf6B)AU3^t}mre^gmm=9IuGHVfg=^8WDgGe_;EF6iPCUOwTFRn{$Ry8WSNe*DMt z+aG%7#|NJJ0qWUrA9((=`=9^j{%5z`^W?7EAMUyJzTV%@e?p-3X2F^USh$2R-xw$~ zdZlK!>KME6BuDwlUQ)jb7=P7~)bjF^yNoBV)St3aHY-?E;VZ867gq+*U}k^55q=Xo zJ*mRUrKD&DhWf4vN+~}?n#|M6=v{Hi27KfF7sl)5Y2vHA0&R0qWxeuPyZQtdalBJ` ztX+AmU4DFv;>3FS2^PhPPRTL8;>v*hnAKd3FGpt2f;By`AY0}Be3KidzLZ<}>PCUa zCeT1iRXB9)vcp4Xnu;$3>a^(#SNiCzSnjxuXNR~3BOVLF=L(CvNVSp0rozPXsGJ3>D4>?C3*(#*A zOvWiAYIG}=icz{Ii9vLb6H~RM=oRr9TZUqBRq#L>$;DMWkZe4al|xurYAcJd=Mjz^ z!j(g~7)m#im!a^aQV=6Z2?GiC@%@1#_SUMV!W3yt1F zqo2|w&U*&7CUM@=TzFiigZq?1c`1qXexc4M)V5NBg*wS}WSGd1CccUkqRNH9vIq!^ zNJR>MsB-XCUPP6JtF}R_rV4O~HkQhpr}Cs~8u6+_yepj6_U#ZUCEQS8Zcg*20ssIY z07*naR2NsY=N{!}9OdDgoFcWYkZ>1jJVLz#$wf-*6l$HgA%ZBA@D1c`6H48a#aQT# zC*OW;MkVv|k_Cf&y@#)N@$`1C79R6)HO*|Io~5c|D(YGCMy9lhDQ#g&TiB9uG0U2m zWleddjrbzvIz{wP<(4((NSksb7KYTukTo!5)eKn^L+;6wuVxf2XGk-L6_}Zn1uF?w zWsrZAQ#7m5a8ko5XF1Nkz<1U~uHXK_e%d9D-(KQ7?P3pnzQ|4Kw->lhzYsoC7pGqc zUqAi#9`x)x?PA}l7kSaM|Fqw?CZ7YR{XU4Fe{(UZ*%t+p&#kk6?@vDaX8+#%n@c=c zvoCfc*=Jv9P0Bv|eB12v9J9}J{Q6wy?B6+0J=cXb`*+U0>(}SlGwPJz*-t*tdGfjL zU!CXu)%o@lFKj&iT-(gk9mkx$Qg^~Cp4OiQYuXm8prW;CMzj2w1+I=ezxlR%pnqg= zWT0=XyJu{mXC&M+65cZ$+A}zY)zd$U)jKfOJ22tHo}my{_fVM9o}n04_h7VpFpjlr zD873*ffU;{6x}r(MjG2SJhppeboa>Uu8|>1JBJ5%4iD}g9o{oCiq$hZ);BWNGd$We zJlZ!j+BX!Ugnz63Q}@tV_fQ!9J|jCu`?e1c|JWPZxD_}%p3XP9vtUg-+)z*+C^dVu zGn-bed29r>y8Wu98(twfq4H29R3qr`Fw%Fl?7|s z0aCG{wNT?x87-?;J~psBgeJA2Y^)R|BB&?czwhodp-8b2aYoDDVM zTfj-<$uXD-c)ACfMhzw6$)R%eshImEGKB^XqKknscvKn(J-wi9#ZzK~Jqy;p!NP|* zsBItFzEPz0NX^a5uX%V+4{DG;-aCq(0Y~+miNWz96NT&%%<)a$3?>tr7y-uO;|e9< zGc-#vFd7E^Lr{aGNMqy~B{o{nq~TVms7Dvs3H)F@s5%k!>&3%xxqT@|LTZMX8S!I3O+Q0AW8>SN5(Z4cjj!+T+nXwehB=q_?I+Vg`8bc@9 zeQ~gD5Ny~!`ren@Us?an6R&>s;J-e(?e6tA-T9wu|L?WyZhP&9bx=3n{_0=vfBU}2 zKYr@fZ(m!#>yr(m-|vDG>POH5ihs!%+3pcS7TYgTR3(4Oco@Lr=@9_7^#jkU7eof< z6fM>-E!-eBwb3uAXZq{OYji$H1504=3iYL)($DMJFa+Xu9s}pFd+44n9>7rce!d!VBOJRlW^VBYm+QlVY9F>!! za&i?8uEN2V+u3qEM`{xho)UxCbhP`dbC)+*{(k%2?|t-H|DHkkv+#7N;V9gCq_1>) zbNa@Ab2uZN94!!sSu|Vvfo=6W>0s^UNM};xM761%O26784lH_S?D2^9fr3SM^T*%5 z(KzUjgO4_X8}IyNe$4~N{d$FVMr(n>!jshS6*WRtorq`@sv7vJCLYnmRa-b38&~V% z=-ph62ePH{z}R~=Pd)3lE-}|pOHg$(Xs5jpjSsa-K>t_W^Qn7ci z_MtF{4=lZhheSFE0#a`k_&<5p}>MvX&^>yEd&b-ds>vg#U)%6VLY{mqjK_;r2EBF*aUJUMPt6UE?-k+ zJh`^1$rcXZqDWR2tV3q8;?n_Z41gX0KKUNFS3YMr#-1;$&6iq= zbv|LaUtsd_3@)zLMv13!K_Nth8hAv_g_-FPtURqFPdhO`Jt_QE*o>hr*=};KsWQNp zw{m4cuENDtTEyCxJn1|}@kO)FwyyiD|(>0IkZs9L}9Q{2YWc39EKYZSgu?- zspQXsX*1IU>tJD&u4xf49ag5(gm^r?3C_?$@<6am3)@%U(Y})P~0>kp_ds(m~;C zEER?RiRTuEN5QG_vJOs%r1};In>m1{iA20F78; zGO$K6gC+Ci$~<{;FFh7I9kA$gyrwYF>lXu7sbRrnV9`(1#{bgM(?|q#4}hEgy3zcr z&OB)ySJ^Dk*x-Pq{Q(Ppilu|1?qq9WnN70kBTC{!*HZy24~ZkMFIFwQ=(3eBzOgxs z;}FT;KT{NbZ(!xgy;-pK2ds`YcR{d_uZy}EK(LZU=upYUk$gk|*wF`8-|(5n)FD(@ zMLGvp+00fn@d;ZJEEqn3b)*O^j?RyDP{3koym?5>G_djr2UF$1V6hb~VtGAN{Kqpd z@W1@}W_a*KLPd_ck4y)wl+&B6#o8NKLY+sfg6Bv|oDz(V~q$Zj;3*XGrxG-B#ggZ}# zoNEXcv|B8Nm9Mn&W!3qLsxvR}zxw8nW2n?QoQS7@72g+F>BoXuu=WjB*(6|rG_Y`3 zsAm-1cF%wH$M_3WF1|b<(za4%JVKoZy6rHr*h2@461~tAXRPyeBz9~)6onw2LONJ< z3RyHypNV#h7%V&nhe=r2s%D-NhP%XyxflLv#T)N#AB&RNVEELTc8r(>>n8#WXF!oX zGcaMeRpfpD_~Dq@E4U@LB153GGFV{n{Jdas(9V&S0jy@GrkYLE@|4X&MXiKbc4gHK zAAT`_d&?!e2gH+L#mQY^ly0%!5$d4lp0!v93oJ5p7>BucupLMU#jE-g;ORF8PCjdG zfy%~}x(oEJMHN0+Y>225>Ae%cqB?dM@GGvQ;D_+6MoSjkzyX#zD^CvvhdQHcIE0s) zZAn&Sz?ut=&dbs}Sb7_j)&^_mQ6(xF-=eccSeWWsrn;W3vhb9RB3WIDW=XB{!Oh*{ zohj15N{M5=gToC}pkZI(h75f^4(+aR8m48^*+#9IG~VD~FU<}}O&hFO9E8Fkio4K+ z0Qg`NxUlL85#bVPeek3Oo#o*Xfpj5se6Zq=q{=1K+k^&-(9kTD(r*P7hi_2M+-W-(=Um(Hsn3O8LZ^y5Bj)d zP89%KM}hCUjinWxVx6C>aL`6=O$HWP^59Q_LX%fvU3Hz4>MSCv*)opMRA z+HvQ#x4!(hhd+Aql`Sv5v-`QXb|P(m^o0#K{Ozq;*Wb>&Y=z=E|CKqz$?9y5r9EKk@eWBj`^BN9FMUbIOqp z0_&Zga_}IJazaHAz9|^~B!adp}#3Hb@P&gWif#I>lVE@R# zj_%$MKHhNOLr+ Mlq391tR!1(rH!SqGUb+Bc>_njKznS> zb?aWaOV$7Y6k@tOWDGa*Yl+PhmuQKd%myebRU zK>`cD>sl)cklwLpPya-)V4yIHefF=wrB!$5Ypg!3x42LwX`7Q8Y^NRdf zr?4U*Fa|S%MIK{oQ1n4%%T-ud3M)#ssVg&Hx<8A%vKAx@-no`0C!6JfaXn=P-uS?@# z5q74^hL3uf5<9D;QKXoA^4SgldgY`3FfJ*Jk2~*2oR38X1<2>*rVn@Lp{`S&ldqF8 z1^RcGya{o-CJ>eaR{Pp@-93BgV8O~gWKll+63kijV4oc3Oqq*aX6H$2O4ajyT@QZ0V`MBo9EI*yGC+z7 z9?5Wn)|o4JRhFhC3mx=9y!q(T{ z{dO=i5CcQ#tT2rJuo4ig{v=q*>;_6%u%-%D@Y;1d`*vfnsIcKs7;N4NYHUvwsw^V4 zji+(Yv!>`^Q9<@`u(TElvE-5~+CKee2g%SO04p4g;X3^-yTFp>2SutHp4^cq_cIg$ z2I0%mcyWh5oMS^?E1h`?H%sb*U`eYLhO7T_$8)>-`%y9W5CRJZ;YqNrc_Rzf{#h)a zK^t<;q<-${+>{Bb5Oxxtl9<@}>1fva9AUUj4;}ZRl?)3)aB} z%eW*RtiF-49ecoE@7$&~`$bAv1i>Z7*TKoaf@#EBSi&XJR;|AE$(|4uq)Gyl;j#Z< z#gf^FV*s8Rum0-?e4>U?RG&)(a@77DwLcf;F?(5RKh^j@SLtRdJuJDKEpziF&7$IY z#>)9mKlf>r4pt(PT?!8sSP=j=Z3RneUgi`wh!kGF3huL}0v1Q@;_H3Kog4V%hn_*y zWMLeh_(2AXdV~Pj1Hen4gns>p>lu>zT*9BDhHR0k@oGQC792C7^yDcJSY!Z)WNhjYfmUsk8KWfN{Q$6m2MY>T+IZLspFrj+kTmc`m!5ID?aOa^ zlFs`t!D6)?*p_fIwy1Br&v3(}U=2pVKc5*YlDG>Mu+S8N71%pie7#R>3h?#5S?AvM z`WIxT%|I0NjlnQfECx$@CN!U!_+h$Ide_iDBwtLB8UUadfE@rl{%>G7?OK-FpQpxP z1=7L7MvJZRapfMN!pbbJl9-k~{`|&J9HAVICE~E6dVj!5uk<1bID}xe{Y)C?X*|hJ z?;8(qY8=I;rNL|0?dsoy1JF48s%IEZk`WhMi%{_~Jb)ttY)$5}2zvTnuH13l1^55o zBYn@j)%(Ibz0bbU{mkn-$MwecXWrQU)azSQ_1bny|9W*Bd7XY+>YY2V9(}$0_Gh== z|N8I^k8~e>{%st!mqm2ssXORkLE1Ff>q6tZlmR%QUgKgYn;6O(@0yqT2a%Nw$3tU7 zqp{fLK44w-CQsvFNL)EmH?Gyef@CN%>0sgV3kGXjFQ{7fsIbIZ0GlQ_U?!b<-(cmJ zcNCkK=NsEZYFm-6wnSH5s9sV)EG{Az(o|KbnolWTIj>N)fUbN+745_M6P3INYLQsE z5KBPJ6P3^785XdJC9uT^0t;#~uv7sIR<6d$AX*rTWf#r=^Nw8+)Qln#kB*Hc5?Qbg z8d$hV9tLaUHgLuTH}HxrLWNxbn<=!iH9-n2SUHmkESwR_Q@T-;1=z+zAa`)37QW2N zmsz<|3s>5V#gQ~kP+1EWS87RKjNg`efAVHdnUyWEGRrJ^(q$rJHCw%uQMMQ!GefZ2 z(!s)Pv4}RNsttlg`17=`T#c0>tFD~g`0b{CcsPo>MuyNf6EB5Xi$#uXpo7KNwbH?& zdZ~{e`9ZL%+t;q!-Peo3!UxYEZU8e*@bODq5Lg~W6$A?pfZ%FcY4aw>!QyIQUV~5v zCkcqO9-+pKS~l3Qcti`2XyL0Z_yUWoY=##qD_3dZDlI&fl~l?NbfFu#@O~Q>OWDNL zG;%Z+CIQVA%2aM+k%M%`M^s?8;3P{`AWzu}8}q51FeO!1tvjxI{l}Z*)e zutkg2#G;g|9&hCclN1z= zT$MFP-XK(7dc&;`L9pN>oCWJZEtWt{f<@167)pR!{{Cf=p^mS#vSb#X*2~cbI9fPl zDXiWZ`FYA<3Rv{$DCJ<~5aci%5-hnrS7FIjH1p(_xZ7?f zPoGdAV{0#Pu6zgjSW*W==42>b<2s1(f&&!Y`=MW?i~gy-EOt{K<~|j$YG8>y&c{M| zcfE1oy5SS1vYMy0aR}=Ku&`3Wq6Tr1wafJBrc_}Ty+SMfnq0^xes;nQNaVqv#?4T} zvp)=3uF_3)DW+3}!NQxtT(uY73=JNx$(6OH=;s9M=g_{vD%I1#LKdqx4(eCD$B-@&=DP6&dvZ4Yp-cqa?iw7~My!1C+`EWW|U z)jH6ftz30*GO%EQG7^30_hAB7uG&jdl?g1&R<6{}SI)Vl%7OBFP~XTX*wGCgw87-Pyedh6fX9f>KWmG_L-DAzvae+WAH| ziipBoay)k#iyD|K&;$e;Sb)XWw9@+xrA&~gbCz))?mmULgyeKxH4*{^D;+H8OCi51 zNtHVZmL29OBe2*qnDob#*m?3RF1*TyTC|}~w-K;&PZF#&=RH@J1#9YH_4LxgvR?a1 zuBw`Eu(5Rx*m#402@V;-;;CU_4Bi8B)ZW7itQ^7vr#q`C?G3E+=UB+ze<(A1S1<6d z`j1fW%7S$O7Hj3-=oYIt4!k%2m!+y>saqJzW~SQCQR4&$I2S$@EFw4&EEpSulj3RJ zX~{4tVaLM7So@(o0xCyMia}VhASlVkYb?Tvg+FAd>~!U-thp*!tHV-Q@yrWcg3Fg* zcHx}HC=IL~M=n@tTdKXSbd%nY;!~5}Ps&u>@p0S}hH|UDJf*WpSKqec!QH#UBv=5} z6IN56)5KD@a0oj(A%RAVju%hW#U(mXv>moCKJN6cxm8_N)obR|+;U~zU$CyI zhq|)i)+_4&a(UyeS2X<}{drC!)Rhglrd(XnL<-+V-AUbZWy7tME^mawH(%E97pS^h z{#1K2)@9WgG{kyZ(K?J`2`~1nb2Y`=q88mcpJ#Sn|}(EW*xFxhDZ@C70-eMHYtUJoOSw#}gla zx%ul&+cs?--n?xTKYzEKrk!Ko?Ht>*D@1AYjxnt7cZE_!zirdRPi;$@MJzTGlNJyZI2%ixCZ`@i{dM|Zdzf)#<4k0S}NaR@Z6`43m?%37@b z0ZX9u7U~+U?)!G^ge9sZSW)o7M{(WJu3V{=A*stFEKH?~qlC$EEM*`aES_p5OXp%4 z>vM>!>jQWH(7inr9*##6IMI{rHc2&{%-HHXy+QU~h89rw#7NPFg9-4>U>2_)nb($H9+3 zf>VCCGDq6PP_)2S#EMq7JV=2>;l&}^=wPumRexNz>Z>0%!uKjA(Ks|oe(_{uGpBxM zc=8)i*AenZQ*Hd{&(zpq_|X_{;soav0I&hx(g{)TXf>|jRk5;HznJY8vXs3*O7pLa&nUfI{gMdVi{=wOWj@YNo$B=8bb zZkr-l2Xm0gk?Xuuf|J~c>ffGcf9KtA@nCVtRvZit1K0AGIYbNUZtcsHcjd`fLZp(p z189c`#Z`82iB6Wbm8FBBd}W30-oJl5(2q<2&4wgkACO6vNYj4b90g-hI4~Su$M<3V z=n5gQ$l}K^03U1tmo-0{BX7y*W5GA|&`rqsNx{m<(4=7PLrEXY2Yba5%S@*%e)82% zQ8h4ZKpF$^ow@by&kIyGw%iWEQgr4iIuTef{K!(lEKMvFI1SO9GRdB7Zj(TL-qGWO zufT=#?`23DGi8t_-`AfVEP4!Se*|5k_Dl-yLlcsTCqzndfE4EDs%ylRm#L+s;Ez_G_)$0>tR2Br$-i9=gO2GElsR&wkc>K6hB2r%Uq?dZJu=fOga(NTC>>tJddc>2qmI&a_H(~bKk z0yrvX^t;WVYT=U{NfS%u%_Rc4L;wL*8LH-{Hzki{CQKE?W4*L4rpm_Cx$~6Pmf%Z~ z7;GgvFf0o|Ddr5c>IZ-h8cdi zeZhy&aA>Z~ihAAR!!v@huW3q`^`{owjrz7)vo zScDt5Lcr4>Qo+(VsCjWrl?^#1jfz>#&%C;QI1YU)+`A@OsF5;5df#&@Qyvr9jK^Uw zBdmB*;TW7D3>Aadc(O3;ox2wyum;g~FcD9{gTl^LuZkqq<6z;u1}voqDhpOhT@CH5 z&;?J>h$a@X$aqTi^Y45OPhn~Ey`Fx#d&cZ`*kn=bXAm9)7I_jk!D5k<1YHbS6Pz0; zwJ-{<_}#qgzS>P5k0jgE(jx(x2%BJ;_5oHbxdnt52{1SWwr!6LkJ5LCF>JK3_T^*6 zP$OShO%Vm)yDea0&4aAMMbO8}g0(Lni*nw{d?}9Fo2PZU@4Uz9P z97>S@8@7Tu^$)OBmOQffVcr${9+cD1=FOvw*0oYP#{eEn~2i2O9eUXU7eKHS0br zs_-!l?i_<>?_lBAVR%B}WDv~^eRaW!^^I$u{%l)L}ras zH5dZ@ArQj7A;JLsupL}~<41a}ODMR)XsTVf@V37{`00l4z`!sV2_?p2FMq>&1d^V z;LT5CzrAu@j;0Z^qOeU4mJj(}6j*kKs-9t3R(3*7ZSdapUv>|Z%VBIBEEqDwN@TJo z8S#olK>r97997?+03U4t-p-fJGXtW0o2Z~skiS@1G*@S?y>kAof4%$t&o}h<4?|Bp zO52uF5!3WV7Mef+zV89H_7C&QY8fT<42dPpc}MtrLHya8k zwhV&cZLb#`-N2A7K`xXN1C*o+nmuxor3UU9VMZSAD=c&8$eUQivO;s!B}=Y-;_WTF zP=n9ps1fANB_?s5((!^81-9EA0nr}Rr+f1-c;uztOP4%QKv+a_JFnEvF12u_7G`lB zqi7kUc!{i{W!}|XQO`cHTF4WR=%6z3uvypPXVNe?b0!Hc3c&S;p$j}h?lXQQ^&FC2HyYNn)y zkzdCyvvZ^l7E-R%o+Gg_N?RC3HG+~VV`cqib8ouguWx+x)$kBHVjqQEL#Lkhlc1X) z2I1Z~*cAnLK03^m1sTOQhQ!8@I8wlZY-PdP2UuiR3@1nF7b=|jvRb)m?!(W0GJ-p% zp&G-%1lTwLe7C$*c5Gvws%cWNaD{3zF3(c=+45Gl+{sfm3zXG7`5b21#nOtZ)6Tob z-S+CsZ-sUYkUK;4PDjHa7AAx2@$@4;I43a#TO)+obt+3~mEM*i{ zbEG!5#LAM{uy8q7uGGpbYvL8w2uqd-OXsV~m!5a&ij_CM^5HkJz7aGm4=#?Bg@il7 zVUXxcfDOCAoVusrzzc~38eN$)3)b{47U9oB9bh?1FJI{_lsDwd<}7ZyZBHM3!{Npd z#0L_I?P2ihXT9fKeJxX2JJH8Vf`zDJCs%V4EQOD&aKSMUiblwmYyn@skXgJiUs-e1 zuY+^z?!EDz_g{Rk`}+Z~bBvsAGK8k*P#Q^U7=UlKgICvY_pg5Jl=H7GEpN>$t!GP{ zSTaj)StDC+6=^*znI%OWsYN7h;g#0p6;!c`u3{DcsYG9O(%GKtZ+zj0@57M@PPZY) zG$F7+Ukp6=PC`Dz%P4i^NZky%CkxgTmcq0>BkrY!zVQz zwz5vFYsfd$YEE*_zVzBlmfr4M^XlrmKD+ms-Os!mfAv#<_0osn!54;B-1d2`@7dEX zz0P=wldoQsSK63UY-g0(awO0!<;q%^ibl4gi6w8u;>fU?p(IW0vIbUZExW8HuVf*k zXkKp79EI|#b53u%{?GSp{^7?sbhe-^MBP9@_XwzWz9CRF=atzYSTc8ZDcm2h*qR_q z8^mDoRCd0!o?o&!zjV>Unwv)AU7IKUSny}z z3<$Qu!&bT|CFjexSG|xSznUSP!;oFYkj-bvsu|LHC|N^}yd_88lB=*V<)l)K7F*iHmNqaYbxcWJ zURgC%@ltXA)n(#~F1m2(d+&c3NesXPB7BYwz}p`Hjk%p&){rY}fwoHK&4RUWu#!El zCWxhJ&(j285suoympA3hTZF}R`Lc^1diIU}M0f;@41m6SYst^a%r&Yb%=L)OIC z!(K%+u*mO5|8dC#8`wcFPuZHIYDM!%-6+;?WvH7Nsu~7S$Iv(A>YEvgYKEc)N?8X* z)G~-#wy`N!SI1B+WJu;Q+Y5{7y)L%oQhTEtK;LHENvMAUx)3YRsLf}WOzDQ(J? zH{{6ba-XOY$~lvka1ng6S;gJU2*97E}Ecvb}f|9ZRs zlnYjiG>tr!9d>@#w6cihEaf#U)hZUT9JXLo`_TY!=w^*Keo1!hfME!-5)k19)smyO zfVKCV>9l183-(P!4ay)}NxmCA!!ap3M9-l>B{u{Ejb+HbIA z-W-{eDQn=#uP)PFx}^EK&%f=C;DbsOr5ldHo#48MHW^L|l2lR3f_2crVk%l0a3DpX zOz&=Kd+?iG10gEfLr%E`Jt1)OJ?oD~O2YEyS820O_lq9_R;fbI}@ z;?<#FoqHo!*$lINCV*u@2Zh$j(G5Y)t@*R3@ z%P6hQDV@iaUR-|C9N((He!F!iwz!c9nSnYAz;o|J&bjgqw%iIUD5aJOY{3t0S+MpW zEc{t!GO)=~`C(i@?Sm~`;Go+Y-SMvL?|N-p&j<(&g76p&%17X_Z3Mue`Qz_&U)1<_ z@ytesYDq591dSHm!I}bCm@U||3O!?(CK5Icu<}$Mwx$(+m1GG|dGT*9s=ND%7dLF( zM$QUGT~BZd{5zk6E32OrYTS(C7M|7*mqH8{ChUj+E2VcY5`ORZ-+9MC94xT#SK*UB zvZoa8%_6n(l#R2_^k0A1YrFOg<8(~i1QrJ6V~O3v;Nwl8?fRFGIo%^tFXgKmcq%(b zNwZiqwvwAfoICG?ooCYUIB8TN5Rqn9T{r(Cc@+JqRA2Pv7yBKPIWUGS_>Qj=3W zmsxt5%yh+~nia3U`RPz376#F1B8-Ox!F(G4-q`>yt9ekMv5>hja+LU*BAE?^8>R%- z&l7H#`bKZ!-}gQ=!9${5?_IEQKJ9|$caJyCMyryYl*-D{*fb}5uDSEI@B82zGfGy- z;A3RycJ=ItKL6aeRZG@s%bSY{D@SUh{#2NXR!VGnJ4ew5;~KDcjg_ToU}=hoi3=V(e%AAzgawkLSXQ%=Um7hU)8HAfb*cgNbf+Y*WNpaFfaoLqJ z)%j=sZtiV2-?`=MO<)wAdZOQU1cZkH=mFrR4d74KfAEYo4A~-vbQwcd4_$ScEmbhw zfVK!&KMOiP3s}<<)mJ!!(i*H!01I}XvayMJ#nH9F8=u`gfD6;9UQ*~xaTp8_f$z71 zzuxno^DkSTPt0X2>$u8h4q=DqIWW@!)>5-&T`a|NSW&I=!yFqmvRH(hDzJu=NEEG@ zFbLU%Dc^87DxCK$U(Qgp!TG#OFAQ8M?M%51o=F#7RYd&hgx^$oTW@;z-7iLm#-M41 zm4$HO9*)BOY##tmeGr;`^{p)ZQnsN!muNs#HDXcXpvH$GKkK9S{X!Z(lQ~b-3-E;D_hQztYS%4u%sO>PXW z`nNy)bO=TiKsXdnghxR<5krML{UI17x&N8%v(9a2Naipk^BI!G3|TFt3g%sB^3*c z^h<@RI)Ti^leKc?tvp45qeN1)A$72nq?n2zng$Srqn+WxhlSWudO2l5L1~*n;uOdl zgv!Omy7`Ku=2o0=`Pysm{pxGDcO4DGU^+}#h$SK+So{@^g8nhEVH>b@yeh41VH91- zkS$;+YZ%fRhNKB1Rpvs0&`dham%?1apCbD9{{P!M_u#0iJC5JGcV9#tlHI*~@7~=k z0tH7)R8mVv({@^>b!tgR9UDu*JlZAM_amDnEDOn`m{Mt=>S&dU#poYWN=Y4R)B*bN zQEbZ;K`k;V44UB)hQtImWOwu6bbjaTZZ_FXTvU2D%gub}&dolu$vvO^&bjCOzUQZy zu;`H!UE$=SBjy0?{|O~%LX4?FZK^fhY6))o{gIRX{ltfe(9qa$vVR;!v5TlTf`&gq z!v{Y+^;r9#YJ6==@A1tmsn_4sP*m)nt@q4g>kIUO8w|k$p-F9M#@!{BF{B{%CJjND zl;U8l1B;BN0BvYcYkV5kTfD%#=yu1qe-Lnn9^ZZ7?VbxgXt+P_FB$=(?9f;=dIep+ zj4t#+4dV9QXG*`dNhR25-brz_uz)Q%VYQJDP+XAWVBT&Duo6^BU|l1y@RqVc${b=$ z&1z%g4Mx{&WQTdg!#D~hX>=4z$6a@O1`rE#U&TzTVy z>Y|%hn@YXrJL?yI&2!gxJ*zCOk8Ihs_rM1y&JJI~sd~}yWfTiTb}=@EK^`h3ouck; z^!mOl7RSr_1um*^6{W3V=6aa9p2<|{Ti}>CU}X$ixe>9_R$TzB0CiJP;Y{-+;uK2~AdT48Ieu(dtxexh#evkecOH2TBdzCh?-w=dnID6Ca+PKvFQn>`d) zhwI2CrV_XirEjL#jZ=WtnCoDDHV)Fy2?vv&&GN<5fi)#$69^-vk)Rfmu%6P?Q-v;> z&d#t7T3a{oE5RRHcl`Qy@4nMDcs3d@2%WGKlH7L4E6?}^B#xrKA$0naXm{^W_l4-0 z-q@Mm*xA0}-Z0$FK|!(+SS^l>!1yUP3XZN=VlFK@3PEuYXZ4&JLi{9IT9yDLsslNR}-D*Hjt6 zf}&YWVycPe*V6jNxVQkrIpu=I^i}V@mM5CG?c4L0lgCbu^bf_`K6TfZ#CqenD+k+} z<9jGfv)5V-Zw3;>i^nARja`ZRwk{&{_m3~X^v1^xZTr6Q;8XmUn`HbNs?dl1TV9-` zKtdGWHzv7&ofHol5GiZhsgl6DwqONQ!HVw`#Q|Gz1hCwU!6GxPq=g4`i&vH|3;k$S z`{u2O_P-H+uM72sA%Ni|`f;0m(u70e8PPPmL&o>Q!aH~o_4J?*-a~skF1Gyg(D$mg zmn>^7Fk7iP)l{Jkcw+s)(^Y`=X%am?08cQbnE$k3k{D^MmN{@!pQt zj{WMXH=Uk6%kTTm;@ck4n*4IDQ>Jq=tcz5MmUGx$$osPeD;u^%$0%K79yz&cK~i;b z4cW;OAE{3h=?cfe;@8OdHFCaQ&U+c&4tTK^6>n9ttJV5ih0ZeD=qM`o%`a)W}q}TZ!i4uM92Q~e?Bzy&tvGnJ>xoYKCYvu(82dn=bHmNU+He!_78t^ z$4@-%71i7Cx@Xg(C5`-iSCQZ@VBN|>mwb+2Srk%ef(lKeQWsF_8yL<RpXS>&2J zg~qAS`V?9}mM?2;W;P(-UrTs<$@oZ*mD63pOfi>q_P>R&xkSBjH4=! zP8Lc_HlJ27cFsy*<>NC5+x;@hnD$vY<uU{RvSm>C|iKG%)jRY$Dsm3g5zvtXS&O;f&J$oPq3H~h>6 zOJ-b`RN~w9GNCCc#?%ZaSB=YrKOp%CIY~W!7Lhrj)MNVN)4VbJ$Ax^?|ADF$O#o|L zp93sORBm1b2`us3K*&c)V2R%bLOv=Nz!Lu|ND?HlBnX6=@Sh+>Eb-ew$VVlo14#ds zoEJz=FHM?fN?l-?^n$70BHiUt*P$}c-KCd77o}jeBw@y01PLth+d#-iNnnZJ20}hc z0!#ch5b{wHSmL*VkdKnU62A?Ee3baVfg~XxFTxbl3fE-{ktE>@y9oaSHRT=%Jag0V P00000NkvXXu0mjfO9+)_ literal 2476 zcmV;d2~+k`Nk&Gb2><|BMM6+kP&il$000080002k007tk09H^qARq|<01z+$odGJ@ z0NDUOl}MjRqave{d7SV(2}JR?elfLfBmEij6A$z|_*|o%^(n{vIghJNyk2EIi9ja2%!WnLJR0sR+Y}$_PA;iH9Ird_ZdrIz@w1xI?k}V zWy-E={u3=0lG-8Vu4bF(uwc>^bik%|cQ?FYoCnULgVkc~mi5qk#%c|@Nr%CGgOR?& zd#{7^z_t~VvxNFe%}_|*eN$>>OvW6*(kWxQGL~UU_}fks4UdToY9avhOkxy*3LSqO ze?IIufFXyF%bwLH8NdpoAh-T(TLg?DWz~E})(A2NAG6`(8#Cwn0dOd8%G~Z2RMU0i z`iM%T(*Do}(^ciF*T3Npj01jH_aFfN^WZ=K8n=(W)nD)Ltx6yt#{N~i@>fZd-4(`= zuPH)}sSJcGl8{jH`MRo^>Yx9Hps2S)4t_~WsPy#`4-ZlkEp&T#ZpM6q{*n(5x@H)S zfm$@uC%w)WiTsyjXZG4I(VAkf1bJWck;Ml-m+Oa9_zTm;@X)f4>~v`KX#_8wSP9M8 zQNqSozKNkqb%O1fhllB?UZc^;|np2EjzhbZk*c^^;V#ZJ_8Z7FJAIdyachM3;u{|DxhrHEbZ7sW7{uJ3 zXnN?&r4l{!tBXUt9EIx~C#3|)eho>fhzG?8!o_c*u?trAQ0|d#tGtQ>& zO0X%QEv}$FsA3uHQKIy3V9NMAU`a=>^Lgs7Z=BsF!0=>m7vIf$=_84J-gZv9FQEbi zj&8OzH2)kWvoV93H}DYPyy2|E+gv(Fc1Q_-fe*HloQt3w@?!N9L_1jMTXJVgcTNtl zzO)Nt6rW0H1UK|^ z4s0xsC&8d^I1VU(m89zO-nIxiYQzqUuxe{B1H2V{Ao=A-whQ}}M-;=z>qs1RtEN7D zSR;3?Qvs#CCo(*V%M^ZLTA912?pm%oifJyX(x&P;)EmFBVWK+@@8AYlLN9Rji=Se~xTh5=`wg>+!y>ZC<6DY5meZyf2Tm0Pa zJ;-UJ|GxfaV?Yx+j*Sf+owpQyyQj@C<`&4v(`A&f)Lkb05Bzd38E}ZvB9Nk`F6QTK1G~v2zBsxxrFR51MpO@Pn(8Q+DM4+dx zUtvU?l`c5AY4{r@s}ZAkT`1iuYcfc)(sk-@RtPu!UJ94{bNMr!wXa{A_bOi}!~Isq z%W7WHVlfx+ygHfLX6Z6Ds5zOQ;4KHpE3FLLF-mO0&<_V@Eb`W*KLCq>xv;dN=^+#z zH_1i4h0?~tR1BzO8|Hc;LF#75sc)Vg7398HTEvU`$wujSyECK=S;suW6~YXWYt&C0 z?#lT&46-{6k_zjx0oKjs86Kq^LjyIgHs%iJ@r zvRxtPK)UlTw%8@oxn}k8okk>+`QAf#qpL|;*`M9@DkTFRGzFrK-R&X8)o8JPJ-hDh3oa@$qg)g>7zEoZg@C10kdQ^;T=3{R*{myrHr3i=vz)a?tO0?J0D;>N zN;DJGF{0=}Z^psvcVU2BT{9p64mW~%r${Z-An(UW0?kCF0000007Y0yMqU5_07*$I z00;m80097LhXeot0000Q00000000010EUtW05Sjo04x9i0000006|kjNl5?z05L8! qE-)=JGeRv{NJ%$AO)^I|OjR;fGEP)WNJ3RbGBY<&MJ_NdGA%T0EuZlK diff --git a/viewer/src/assets/logos/gataca.png b/viewer/src/assets/logos/gataca.png index 7b66a302bc38d1fa85599025a2c7ff1f315cbd66..8098f28d194d87698634c0c07c42f3516fd0d4e7 100644 GIT binary patch literal 19423 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 tk; literal 2540 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 C4%znr diff --git a/viewer/src/assets/logos/helix-id.png b/viewer/src/assets/logos/helix-id.png index fadbc7a2b59a4855201a131e261bbe84e02d67d9..b3797062b0bb3e1691e7711909ad42dffac4b872 100644 GIT binary patch literal 5660 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 literal 4326 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 Ucj-9TH{nWKn>4}8MGw_H0BS2cJ^%m! diff --git a/viewer/src/assets/logos/identry.png b/viewer/src/assets/logos/identry.png index 22883643e6522c99d20173fcbd379f4ce8692e4d..89b8bdb54b184c10e9b7502668d1dfdfdbae32f1 100644 GIT binary patch literal 19936 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 literal 2428 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 diff --git a/viewer/src/assets/logos/kaytrust-wallet.png b/viewer/src/assets/logos/kaytrust-wallet.png new file mode 100644 index 0000000000000000000000000000000000000000..50d95ab8b6f54a5317c7d7943b35fcde923bd0c7 GIT binary patch literal 10725 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 X^D_Gc+D?bn00000NkvXXu0mjf!p>{$ literal 0 HcmV?d00001 diff --git a/viewer/src/assets/logos/lissi-wallet.png b/viewer/src/assets/logos/lissi-wallet.png index 4ee881f6b33c6f1003dc596ee7b6fd49da70ac70..ee8514dec00c35d2628a5cd98d0d70d3b552a2b9 100644 GIT binary patch literal 26215 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 WNm5r)RX0*MHZxXJNiHxhGA%Q#zpI=8 diff --git a/viewer/src/assets/logos/mattr-wallet.png b/viewer/src/assets/logos/mattr-wallet.png index 08603a072152d7775f3c419aec9c9172e9be6634..60933cae6db00144c897b8133d97b1357b937e5b 100644 GIT binary patch literal 44467 zcmV)KK)Sz)P)tLCLIe+ zz=C4IF7^(JGz(Qar00|Xp$9@s2B`qKjpQw5zRUm}^U&6l+0Y#>t ziTs^ADEz1Cnr_g`q!$9f~Feq)IxI& z1e$>epsD!7b->qNHz>jQYtUaw4So1GSpQLADWHf{2$qT8Pd`ayN&^8R0q28;8*u3u zj1=E;wU6w`ivR%2HUj27dbv za(;*6LZ~l?pbt0(1Rj528;I@SO8pC1tpC#MURo?_Gejb)x-Lne%0T=eHbBWq$lU|q zeGptVzi{!ajHf4VeR}%F#m{bk?Ukc%znS;dCuhF<^1{aNu5Mjl{>%F6t>2dY^u^U5 zKfV0<+b7>xp0Q-ko~dJhnlowV^RqHuUtYB3D>-`?R2GBa1&PJ~sj49dk_@8QL{XW9A|(DgolO-%+=+)}Q(=IQ1s^aAZ4coqz3iF`34h#+dDp5d7rfQ%X%1xwedRP`%HeMQ-nhlm| znv^Qt?DR4K)#lQv?&O01pzGd%rRl06s~TtoG#;97K>l8McLg(l^5GTF?)vN{rg#l`HU!+!thPu+W6ofz(!B-3JBk=yqwR4_4 zwrtkb?VBqvU#a1E16 zX#H)m{t#H!R!a%{$dY0(C|$B0c7j6ZMg+DFit^x#H{_?s?_0fM$EFR(u3Z**9y9|T z5JgjoDoctaDFmg-qAE$693cgzYL+wu!fUH;;t!#pu{qXsv`<_R&KAPAAJ@(qUpROC zg)iU59i^;-pv#geNCuHjMFyD|I-!vcRkviX+Sbp+Ur!Gy0<5leH!t{a1&ey+7C_c! z-r!JH$V$a^jc}mz;Hkj9+v4fx7f#9DwxRm^H6;*0o;1TybV5|w5(Ntt{!CZ0*4&Vp zY2~054nx*Wge>5J!hHDry_V@?-HR7w9oW<8^#akT%`;SF%fJs+l_~Zrd;8U+XHWWl&7jGkYxsg$3+O!nOIJ-^ z16iTQOeRoO18x`d;^LyIqtAWxI&<+1@Dd1`hIUH_qJT<3RU+9kHN&9#8?1i;SOUrl zC0Ict>q7|?9ux+A)v);sX~H9iW{o?zZ)cgO1(&TLqbU-GuT;$rGTj5Ps5ErHhz<;| zX#lDT^);|-n?8Qjp6TQFAKXJcP3ZgMZopa!Tg?^fZ;SQkfz@{FXIU)4^48JyR#;YS z#BG`anh%cs4ojxgKb*Gx(~l07S6vsCps2P;M!lqRl8CP;?(7tUs7g1~IandQY_CYy z&=4XPDz!iay>*FzKr~(@ye3F0I(#Qj=&P5Xf9!!1YnJe53V`PUKq7`$AU;VI=nu3Y zGb4VorLae@wbQNLC4+_`+WYl?`&c&vi@q2%woZaTyl^%T-hHuRX%djeREPR83R`P789HUm%J|Bc*Hr_HUObkJ&wD*!Iug zFTHUM_yDFK6&Z1-!4Ye#cn`obZi6lOZ?af=d+9_`z~2l_H{fh0eEKqs9dK^a$X$E3 zU-0=Q09jHwUg882K&oUwse(jI3`CK;09N=nQB_lIjmM(NA*Lefyr>66-NzdqQ6(Y) zSp!AKKeetJzI?xK(#Y%y4?BPQlw3Fll_kJ47F!{^MMDERPVwwis-qe!Z!gprRSVt)gYLTJt|`j8muT_7(ZU z+~iCD7FQ2DD=ddH#2R|#s*EII^#OyW1a&vy@>w{R0o%WY4_CmFNx`Q_UtB)#__mD~ zO0O{ziKvzdiN3%{Sl8-`s!j;AEht`EtB9cxBa$skh_9>@S(k_@N`@st)OkS@CBq8d zo<9knt@S@Msba>+ils9eK3O9l{29)>;OZHuD+AUG0s|tC0Thu(17=-5X%*m+;B!&1+YbE}vJhVCsSS zQ+KU+cF*@;7Ubtt)Kn`P^^V(=VMT=I{}5P;5hWGN1T2d!nMx9Lk=J-Z(+xC8 z0uNV;Vc)L058iexduH!~$r+2LxK_?9`e=3I59`$5zJo*CAa@t!?S`D4aO^15RceMQ zqYUM5ux@$vm^HCt_LS;*(`x5UtDQZi`sqnkb0*fz9#=7EZ0UmWmljPrw{l+5+Lc$n zTUYb@FO6pl`Kqd*pYaMxv!n%7-4sNXmo&NA%U`)7I5V_gH!vT+QU3PI8!s=qv2srNl4<47PON(7soI&3 zmOVf9V&${7mb-~pf?FbmMFUd2c9OVsf4S= z^7&KDF^4xlt0n7T^P%01*@x@O%NrD32-QT`J4b5;4BwbWCo7{7E}AgS$j3kPf<)GU-jc6i`BS_RcjsT)9Se+@tq(yKbNceNCBBpRf7m;zb zvLy3ZGO9=zth)I+7zPU!GIEh@5eZ2Z6kgC91ib9}X6y@tiJjy1;8FK^FyG5mZ1aG)^tsB`fx}P7{e9 zlvD--R5Y4!TVTn0NSYazAgQ8^ndZm>Im5txoF!F4wj>tqR(QSZ=(e{53+e3079pa- z3aVewS_IWEYMiL(2$sr7norUKq1YP*OCcEGMQ2gNYJFO;|2J6Oxq5J_$ZHa>N%+RK zOAHiAZEL0Io-q_Jkcr0IoB4KNDMp97nsAjcen!@*XweI1R|MR6N-UPR_&rcx4Q1Eh z)N$0w6L7o$TuxhOPeJKbXsCsTYEXipu%K|X^jQv9TUe#;G)kgIm_7RYhuFeEh@=pa z@Pf*s6dq$;Hdq|8g^w0kxXM$o1WDzH&Jx{E^dN$zc4Dsnwpi`19<*!)h0&srG@@Aw z@9NPVRyt8T-zdV1Z%qM7gr@dD7Zg4yFsg}pVt+GKUIE7;*!VfT^sG5&Ld)2POCRie zdT{E=!Ko()rJfu#pm5kjXDtmGa%#kgi%&gOF=rC{&a<%nOE{YY^`&6Q*vq48z!65$ zMGfq-ElD*bRkPm`)_cPap~)Cyqaq2+Q?e#RkUPAJuΝl&?<#!~N8 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�`yL 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 bCb0e=pu(&(p#B`R00000NkvXXu0mjf5qp^t literal 4790 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 LZ|l_Fbc*|bhY_)y literal 0 HcmV?d00001 diff --git a/viewer/src/assets/logos/mykeepin.png b/viewer/src/assets/logos/mykeepin.png index fa1e45d687112a7815f7198c8f5145df6f0c3cbe..3a4cb43208ab757eb6bf8319b1d5d460fa3c9cd1 100644 GIT binary patch literal 26257 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 WSyxRpG(=iZST$BiNiHxhGA%L5nSK`l diff --git a/viewer/src/assets/logos/open-wallet.png b/viewer/src/assets/logos/open-wallet.png index 297cba2bf7267099cb3922dd865cff58b5d9ed06..cf22e2ae1bf2f0716c2c0d192729fc48da6e361a 100644 GIT binary patch literal 7408 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 Ml(m(r6>LKP2O}ad`2YX_ literal 6777 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

oIb$|X7`6_4Sjk~-m+&Vq~ zz?%lz16oBoD>~oBiev(nLepR_CqLOk)NDSU4omU#He7=h$s_|bnSBXs>fFPR1!H%u&a3WSaq!9d^?KI`7R{P`icSnd$V`I1v!cj3 zz$Uq~qzmx@!t$yyh@kVeq&a*Xt*v5NJq>gDH7u~ol?knRH2i0MIO+EI_q>ga>;6TyL45fIa>U9}5$D7O{(Sky5ps2|jT%_2LA_RIRU z(coY}57dV}38>-e^19OH!BRw&4gCg{TfzgJS*|b&4gzlPSR#XWkclOXMKaK+YNj~Y zo1wS6@%l2GZcFPb8RtCfi?V}r8=!Zu*ti3>b=@B*F!cp3gHi{~IZ_&|E9o@C2Q2FF zijlh7b1!PTZsn+MXl@V=nwe4Be_P`!oZ7)(g8sU#;Z^jx`(6FN3U=bBGDBkv>4Vm8 zj2Xqbf4f;QZbvug3kaOZB_t|7lb_;rnH=oTI`z2>y&cI&xt$~y#{rr3c9?u`?Evb) zf^kpL%Pi-w#*IM?Y`vv?nL|glaTC*BuMaFxcFrV>p3XH35;QXc(j@%kd&!N*SJ`PK zB6BnRQME|U;`=pUbF&q<5btTbXrnHa&z~?!6B@`!cX&EhUFe#kM82!gWyrBaLm3|Y z?`Mi$GP-;3rqj31p;*(D4ok?1_3*q@x)5eiHb;RQZylo%e&ZFx!og%o>q@TujrAN; z?65?khk-_aQS`^F%xDg36;yNJE>Z&vjeX(Qz~_x|Uinl1xngh`p~lvm+*=}m8Z}>v z>~zV7`aC#dXV3`An{t)Iu1RA^AwRFu0_~HMxN35FV3|Ez*c<cEx$bzIWa zNQ<+A=F|h_=;zJ-iWhr7Vog|BF+$w^p1GC}ba{n)i; z$(SY1qA%j$N_&nQlM%nn_86M*C#u|6n6*?f0!67g7fs%^3UJSj?X2Tr9rVb`nW*+M z*9^^!Ef!+Au_F2|y&PF)YQiVAiW}dyDfcGLhffn2+X9A^H~E2 zdT~kLtlNhg`V}9mgNIM{rGKDY79Mp4EOKK#ru5_bpKkpeo1BabFs*b6bxxL zY+hbaGiKLmS($&od0NWi&SW)UW$fJ*iH4)s2j$v~2-RJ@wRD^X<4?Y#$ZX!Cl*i64 zH4!jDRAgJh_cP~J{P$9RK_KaVic&92B>wAfb;4>DXhw|J%rL?J(Fig1II40NX)w)} z>VT$Ah6{S3)bu$)J#BZVZ(=g9R1MJl|IgKC0N)QsaaRf@_3FP{q}?naUq4o?a5a_^zetgLb85*fJ~ z`6-8t)3ns&URj}z+}@4XvC#aJu0^Xmk1N=MdTBYY9u zj9sD0%k^>!`ph>gF!`$CXj&T=idM2vr}ZdmT^i#NBAM|o;sO-YJrsM<4+TfS(LIb# zErDqr&*!jBN%we3-h|*xxJzw-gk;820ixTWvU?mc#}Id&xU!4;(~tX;gkCpGyXZFw zwqso$u$7+sS5#IJbcG~7fpVk57&U$tA(9cQ_h^^O5mZ*9>TN6V$WYo1#Jm3jOY7+z zGNgsOUHDk*i3)_J_YzBT2Sb-1I8`<$^hvGtYjl$ZqjXOSHIcaX!}By_c3f@e*Mq>-%!wSp~s##wjem7YFf9Uv;?ZcIzwsrGVjp!)4rTVT>pQlE|GK8TQ|7qGh zC6Ff7x2d_GXTAKbbX+AhMU6=HQpX%m!<)V^Gqs5>tpDw*hDcjAs;-<>JyswiJQ#YY zq3hF_R6Q3;MtmqBsD_$seDc&t4?L1vi8w;cnUcPwQ5TPdYyPIFJuh0d=Ia|Z3{QN- zxuxK|Bw6XWpw1Ve*^~4|iy~Cc(`z~}i~mOL0KKLa+-=AGnGG(Xm2WMMMNEx80_B#rS{^ckD`h$jZ}=lKrjwS9aiy1 z{-G<>CrBXMZTZBmvel2+ct|V|W3XcBfC(}~a?=mS;awGlL#Ct$;+(}nHJ{F!tcwXl z$sG&6n&?eoEm;F%RvTg|Cp_T-lv%;B2wFO=!8Mf$ZNZ`*Z}3AV^_s*GeQ2c}q&JW0 zkgRxNh_%KzDIf7{{>6{EC)dSXpSC-*bO3&`V1$6WpKw*wdA$`BnmO4*Wl=t5&<03; zMoKF)Y@(iHEJU=_-3mK#t7VM^ia?jIndyzi{waCks~8~|F3W(FRz>E>rQyVa^`dL;hN=Djf5VqXu4l+ljzzR zw$v5sKVsfh&%^lCAK3Sv=o(3MWprUdD=DOgx_z{-G%z-ts9DLl(${nqOhYN(xJ-;6_4Y7vf6<#8F@6HexDn0Vat!0xGGAZRk2jDpFnW z1){9ODzoGn7Cjtl+pGLxE*)#2cSU7FWghcIJqaop9r9i}wJ|hHq37tP5+M}^G+F&V zYwxYVnnZ+Z#)y>M{tLdCubBB)XmqpnYv;(9)J*{J$St4uD|p1@@h8BaTY$cUF_%}b zn}e=D3}UcDkARc+>7&W_mSZ%&pDeH7zq?aY5|WmIH_kUE`2DXx3}uL^Kx{bd&*Wwc zCY}Gxs_eBF|9+x&8xbjwFrGE(b%uD~5eozUf3ADu)i0rt%I${zfp?J`7aUF2U}XwC zr>=Q{8@Tu2WZNg69f1E=#zv($O9<(tnn_ zl;xAKxY7+jlJAn5gLJ-*RScQzkv8G(Ax4lOg*C-{ha8`;Bx=!ox-^M%^TvEo;Eu{|c?0X7NKJM|aR8KBE58&M;F8llO zGKMcH4qeBQZMzn)F@KBns51C+{%_!Qs>44_m5akCMrwU?f;TzR3^|i>(=P0IS!)*; z#HZjc4}R2beluq)ROe4o#(dd(L7fM@gj&|_k6P4^As0}82$L1n{P@7cbjuA}EzP75 z!4OT?p-y|j4Oj&IkCo*5%kF`WqkWBh>Iti=L^c`it6u;S9Cnqe+!mi^FrnTJgW!*90~G z(uFqs?)hgcCGGpXY+4MHt24)Wu6X}nU8X;AIoqlT`i+KWQ}`-{{w#t=UxB+ literal 120192 zcmeFYWmj9x`Z%0YxUo{SP$=3`Tq?Lrfl}NZ3N7v~flxsTv{1Y_#XYzuL5sU5xVu9L z0rI5xIluoWcwU~p)}B3UW_I>mI+rCvQ(cLKh>i#V0FWrZeWMKk;9|SD0D^z8k6;Gw zuh<8n+gl?~0DzeC?|l!Dn*JC&c+XQ?Ne)mkOuzGYy{)X8EC5gyLwsY22e>!&NcoMd zuHU`=Tl-NL75$}%a__@(Lfn#j5xQBm^>H(|_kGjtAi zA6U9k-qpCX5+)MwVEFCQ5?(3pRQgE9x0dy%aY7d>kpso^E<=Tg5}bFM_j8JXN216w zP?qh{psC|V|7~l-AK=K{?Q*6sX$tqua0a^g)4Q2itK$ zPx*#h@M8D<_d4EL&Gk)18ypHCH(rjQ?BE ze_r@BA_kOM=GBnAm<)ECgZe_ztng5b1tL`XKl6ZAk*krzCj^bO0KYrb7Qf_Ou-Wzr z{(mO@#;Rfnu1GUM*E^W~7Yk#3;wKo$`Stz(%(h-N5#!$cD9jAl1@ny<;PcDh9d%)l z3(lbM|NeHH%9j@AHgP5izvB$wU}>?8(pU2l7++KUE1LhV@GCw^D$D|1i=VaQquQkQ znNCRmGjlw?F3ty+VtVilz$h7T4uhi4vi{Qj@70>;kA>4B2sL1FCkzLX0_HESgS!{{ zn4mY0{<8w$S9~`1cVpa$06-8?+u4XTW`+#&-${)JVCdd9#?g683}^Z2%@GdZ=>NT! zcBYpHTmA zrxM_4r5MJP|4z424&DFn2R^Yg;{10M!2ap~dToTv|JQZHA^5*;I^cgx|A&G9Vc>rl z_#X!Thk^fL;QvPqWKshF+Y*6))@eYi{-_@o{ya>WZ+$(|4l`@h6sAJwhcQ1E4rYBu zy;v9Hb{CeM2Y8aK{aYC9E}hkVCH*BW5D%amr?u6^1|}tA(_9}W4gR~FA)ba$oQs|fknEaMXtMlQH4kX@E zWI$a<^6i-NLo@1{RZ&A`F+3H*4NsPMc;={mGumBk&jv7`dP}8TRgldy&OPQx1;pJ} z(BeXHR`8r_55N899v%Sji7x1Tn;bJh2q@fodcJfWM7kk=6m-`NyM0lDNXq`g_SwFt zM}ZUvU_QuZ>ANsyM(=$hK*99SqjW?1r^8!ytET;F&ILb!c#q)LjRI_X(6#Eb3&sei zGxq!<8V1=Wy|7gl&3k0#`~r=$GQnT+KW;C_ZQ-aPIqJAeVfPk4scOEqilWc+m*> z9XK|8YTw}h{Flyu?-@pnFXp(@@d%SxdO8~VLV~O)@uyG8=F?RDoJuM;?$7fLUM#1! zS+-+E@veuuN3=q=;z^KdY5JE_*VkoxWA|H}sXnu2>4>GA*~0cbjgxtWZ|Evm+eijG6DdHTju7+&?Czl1C!U~CQu4cd!_>rSD$FpUv z@6o+8Gu<#^fGI?|XDVyPy#;nNaD;;krtt54@&>x?ZSsD(&Nq1J_}VlVyLk;ZtdFxi zc~c|4f*Ao_jd>#qEJquFU9Op)Yg6$_3^~Ie>C`QVM?`Ld(>$_!P}Dw-?fT#SG(~^W z{R~g*SwYKEMYa6#f}CLpP?nfQAFmv$IcFeJql3(o-==O*_%zaQEQogK_^Qg_x5@D1 z!7(v1&t+epmLL72Yk&}9s#@kziPUF_mI3r_4jVgQ-;YRYX)qLF%wn;(%!oM?_5CCYS#KYRK zBD}C;%9!Gn~BknvGTD?F>`W*hyU;pii3wBWZZZ=A3bZ_bk>u77LGAbWvZww zs>$*O92;4xTg2sWj5HUj8Snl4LaBl-Ww}#j3iHh~oV5k-rBsy-hQEQTLF_UlKw z(tamTQ3QNf{QWz80hxy^rX+^x9*$MSN9m<$DqrMI59r(4rY>rkB~L@ph#$1ia4(et z@+jSP@GsF|gutVdd-sy>nlUo#7Z&w+_o0`i^#?Occmz^MiCD%ujtjvOC_Qc<9RtHK zNpg=!eoz1~6V1+diV}h+&vs}gU%N6h`G(>Ru|<87dHzjp)Bku*+K6C5S#`MMtiCsy zwL0TCVKsm?Vwf3MNueR&tRu(>B$hdlHoRw*37IDVd~a;mRfk;`t6S67ZX5Bym*PrF zpZEsHYm$a_Jq#P!GqouVHbIz8`8L9a%_T7w0gxWxE~3!qgaKY1S|+>R;Mlb3(=!>g zROBrDB>9&5hREM*@`x9m3Bca}gcw zyd6yS(wKOJ)lgDc!Jc0}*|RbTz?=k$+Oc|j^P9hKYiIr=rcH6#&b$%PsGnQ$m2F|Z z)gg#FsXW=Qnu$ma`McGHJh;xktwVN2#J*-^dVTx{WWo1 z(BrGmy$?~T%)?tm=mqwUzBxTBTJ8m4kQ^GU0r8ZXn5kUPyjG7sHEm>P;{sPP(~D3g7mdn#o^>72ipR?#rB zk{mIsIB^2a1&(&J@^EaMT1*W&;HrTuZaYeRXcQZ$R)LhKoAqW!%2!CP#fg~r9d`4) z05afB_^qV|Db9Vwi3(tu#P{B3*Q;xl_cCBvti*g85!4_CwDnyrk4PpJqbHA!dQSTf zDbz=D-cuhF3qI{#V9N*aG?wu~~Z$&o)v87!$xjt}u}{H~l`_@>+2 z8MP{?x=}(+TN2W#=#CCBA6UEcyyIHp8af3jQ+-1pv|R2E1VYy00>vYLMHX8#Q+~`~1F>Y4odD%k?T%&cbDWxkhEh zo`@612lYyW+ipwFYaOq?j=q)5cZAyF-m(8#kiNyHfMj;#2t{4(MzyvH0aCPY-%S!K zWyX*3mV$jZ55n}SpIvpjt5{IDA>TIymxpKeDDc5WW9@4{Upl7+>G=|0o+p#vOO|O9 z1}$v3K4if%WT4G|*b=E=jh>t31Um3`O?R8Mt%Zm?&{OC%fDAQ% zPWXmhJ7%A6Z?d6%^3LP^+P3)?AOv|3y1u7(0FUh3PJ+!THvb@((K4#-RuC7;Dj-8n z*aFfx+3O2eFy%(OPAdHpyg#1*W|{~;&Crl+t31Y3-}kP4*R$aJo~ z2_$2yT;CiStCk*+U0LU>B&n#mgh@jp2Yo@dPe9#=xAou`=f&-G<5gj zrHR{9i*TNx30)V;xgumcQuu7RqeeH4bH~UKI5U2TmmyZBk7;*hj?-jGm@Pg@12$-+eh5^<;x=KfIamRQXgPaMjzG`xSV%Q>7ky0GAgH zeZ&3aBpn7WZT9VUYL-eA|3azui3T~{@FWfF*{rx^V_NwE7MlNqSLK3s;8qMtWi63g z1eS`E>A9Oq^BH6~f?RS<9N+C-Y!hg%3s9WGy(G|NGxr~7c}`l>9Toogz*f7aOp|Qji<~a1(RdEty=MB}sL$dpbl6FaODEh{V+q&V6mb2@e|fkX}>J ze_Y68&A+p5AT=XgCngx+eWWGqPb6cnN#xs1=d;kL21$92#>1bfKM)tU(Rs1VQChBD z<`QVIuD$lgnXl&JG`!ZOh0fn9F^HCh5VmpFT|1s;qhdXUgDZ8)TxGT%%RAf}f;tky zVcX0Ra&}O48){hE6=M=$s>R2tD1YO;?%HRzVBWy=Kpw=V#;4wsI4w>Cw> z7f;;VMaeP$Fs*A|Pn~~pI9#D;Kdd9jW)fXKNXP}adbragF&(3Z*( zi^c?HN4Xl(s-#B2EXI>>oK<_c4wiL04N~k(IkJF94?Vr!)jb*VvGg7R8sfglC~X+Z z*O@C2F4B!6ybir@a(Z~$ad*|U6XJv-LOH>Dlf32 z7;TBQiqm7*z6Fq0uui4LrOi)lu4Yq;R#yrJ_?DiQv-fAgOE*>+y>i9Zd*ysxcsvDrD#~duO{S3JK8fnrpZ(!) z-61)9j9X2OW+MF%I;=6(?!|!@86f)V$DyVX{zJJY&UPxlrWMz1NefB!yG8!g_eBdn z8a}@>YXq`d$Xth7-U=U$(CA5#4>dZ$l(=?chiIo_Lg%z^Pw`b3&)N?_K?6_p7SE@A zF+q<$W5N3M_oQHd&PmPysY&DTmUCjMUfaF#C25uwC!msKNYG(xaej_x&YfZ6!gQo0#E*WIDxEMi14Xq zKBxp0!h7_`&{V(u?`&n!p4Z0gr18F0)s=GhFoXn^ps;oI;P?0JE?#_Akok+NAgW)nygxOA^s9*V zpLC2i+?VFDFu5BDdclncMaM_Zh3xAO^KdB19Xwh=xFYi-ydye*6n8VXx0yxrV0Qro z={)p$Xzu6pncItK+eP*`&bFNPPocB=zy5iq7oQPijL#oQ{itHZVt^pKY~TEq*)(w@ z?)^m&&4a6wnW(_C8R;7zYi+z@Bd(I^% zP@Z$xV*<=i>)QyJng-6A7+95)vAgqpxC=gCh#}Y>R*)5pW8}(ebZAXJiR=F<;g;JK zr-_`&I6AO#om8NXy&W$zE@Vj(C;6zE641mhJ3BC=8ESN8TfC>FrAn_m%;%U38*Vp8 zPbJeC<6LA8&brLQJvZoNDA)8wFB{#Y8!}8iP^LW#2Xy7qQmfI(fMKaRM-A&9^P5l& z7Wr2xdlknPI`Es6K_7f?t>I8)VB0!`DbW0`U8DHsNwDF@4~xDcEQmE7Pd{N*?%lKn zy6fVIbs1j3OMTDj3s00$_{IUJTedY^^p?yN1Py#^Rm`Mmotg#R9V@?`?gLe(95gIy z3<#-KGxH5h*DeM65YDJjX_KhkF75Ig^U_=*UN<>cp)G-q5`7g{%+yF%D+soySX zvMD?57Zdwo#d$mQXJ#)!_RcI*yHrGvZUHCYtONLAy<=Tz$)$gxKwzxk3|3d{V!J;A zN*&;~M3~;1Dyn?HotqX8&M;TP3*1QlDY1bnD>MF}MlM~Xwm0jT(=-c}Vz z5gKGR2Rtcs2noNT0whbss24pieY6$$fg|;k$V6gCb^EfoKkmW;&3V!i&MxKeU(k%+BvoqvvDuP!`o#5el-&J5k>~t+ z>+*GKU_dq(cuGYxoLz#>^pfw^b9#PyM@fY} zPz(Hl+B-ZJz-v?aU7=W#9io~{fBWv*ZaNy+ZFbP|t^(Iqzgt0;tx1ZspD*YMGSA|2 z>L%%F7w4s_*(V^v+D-1yD0=MiS~E%Nm&cIk3=4l~DQqp`*A`)y^&ZX~y=jghApPc+#?r`BtzJpGxwOCLLU z7Mx$|ioY6mt3vR2-+-Km^ve>fD(xuO&@eD~XdME(YrW}gC=Hwumi{SxcQ4ieYUPeK zDURd*W;@eK*&iTq?DYFn(lyvZDK|q4z2yCj_=E_=V_B2rbA~i&wx3cYWW3fV{4R7O ziqGEsYmf^~_zU6i}Q)rQMtf{Jca#&x~koE_+CFcXOnF zQmBAgXMRwJ*f`>9r_?EAw5q;18jU^ZG-Cm%wB^pkZm- z(n9rNK0b%;?kBm#t!J42byrO8)&>lX6Dte~?QekWd~V%DmLZ;D{cHh$W&psp(;I@C zyA!+MJ?ukE-+e;xbp>-N2F5tmO2vyk4`)tGNK;+4qJA-rck0!;K@&UG;cJkVdON{U zGRd&?I%K5m(bEkwCVICS`jP;>&nS@YCWLNqDkZ`6VbLI{`7*bf2k0Q*(!K+&tq4f- z{ydwG3J$N zA9Y=rmv$)?@+ubbehuTfZ9Wy;TVxJQ%3c1(8$Cj+_*jM-N76NXS&mrCj-jm=33K=( zwdqHQdo$a@G=SN_U|MeunEcJ9PQ`^8IRF4Z<#udhRfLmTh?gGGrMwq(*vz*dl9xaC zi>+T&+|8b%>5xQn-BF0f>TT`pl>f{6(R`zpglHrGoEU-QI#DroodaqpeAUo0SL`ST zwQ`&*Y%E;0v%WDNBcUP7`mpguip%6Xw#4KDt?yT z4yHG2n#$&5QVM))Z==YL4rlG?fe8Kb+tgckLj8@F+e#}C!T$GBAGK%yWCeVYG;}X! zQrinl044AS{%EkIP!un7Sdi1FaT@beWBF9e)I0IEBJHIm|Hc9A<7u=-0FUb(9RIWs z8bOW?I%wehtIKi@9|51(ltP|38#B8VzhQ;Eb*yAOGkn~?XB7Rg@;zr_DFtvjh7j`E z-13U>#2CFy>hLblo=a{j-(fDZ@2Oi(=bc=oI;woM6FM`&ejZjkTDM883?KA~Xyxu? zj*CZ)=jjwy^-tOFbA*+)$>#S>9XyDI^NmN%*$qZv^cTrGa^uR%yO$-#_h(#~XN;Bz zbe!ka21_I@V2lmU!3X8$kt#oQr1J=^NbCjJQYx)*htns&XmDGggUFeR?4jOgDsbLi z|99m4LA!mI`Gnl98KmoC5Zrrr;9zttmcAd}U>zS7hQHB=h=_%P0(l~}Q`fOG_|_cK z0L3a4b^d7M8qh-QFBps=6mPoVgNiLxC@jzeCtjJDZ!v?DH6tQ(O8!)tU#1t)n=S8I z$GZNS?1O1F@O_|*eVJHTp=!|UMN;8wSlho&YGn5E5U1{9^f2)-KIY=Kp7?ai#oe|V zaXZ7&@2xQ!63jpHC(&6UdPF-CRYz-;mdVF!Dr5KOS-JD;*{Zf(O3-l(RV$dC){&$Dtp1Ma2-+us<339%Lyb?5X!k88frj#{T^c}-TATsv6 zD+j)xKl$FAe(*n=k@zWn5zf@>D1}i}z=9t25bHL$8CN&%dGti;4KI9lQ?I#lARLc8 zV3QS4iw=pFH6vK5?@gg$#rLa{;GVg&3jSD1WsQ!|yZs)Jz91^KyfEJosIV0%hTsH> zKpY-iFe^QL>+@nVsD(zk(n!d&%PYbeE=QRPT2ab!*K&{BZ<6z3`3E?mQuT!+@Od;n zdCIM^B$Ln={HeNH1(7L1WofYvZH0;gA|9~vnQW}kMjL-U&4cKV6=@K&@1E6ox@?q) zpgjw!Uur#%!;Ky*c%t5{2)bSd3u~)c{L(~j(UH)8PIt?t{;nm$*;wsr@dY4Bb_}M( z3a}s6a>t6XAgB?A4aDw^k@Q#3?{`=WZ&D1>mNYfUY96e11XsI=vxUNa(n@`g`0n%^ zp4(SzTG#y8Nl?d8C}lkE7mlyYHWPdFs91cW*03m^=dE?U_;nJH#(_@C;-fbXIG?a8 z^hF>D%|Es8q*I`h8nWE3z!N@){*YQxu7ZM8l#p{I9ndh^i7`<>Fpa?Mn||h1q^vb5 ztthMfr@+x6;LK*2Ccf~#pFzuj)ODgh&EQ?XSAAJ%wTSn-#o#Y5zg_+8GXMz`*aP_{ zh(?}vGVORzA$mDb{o+So0GJh|WC9FbzqRp<31&@;jqN`8H@3T`fcmvH|7Ptn^~oEh ze45BL240`CpZJmhOJ%=rDrK*{XBGp~XpDF)mL4T-h7#(({NmQX`dL4CXsADl8L zFEJ%Z|ELkO%A9}Y825@aO9LU*#w>q>|9L-bZi|y*pk8yH{}G8ZZ*>3Lxt3dhR^_v? z!Ckv==$bO&D3CvF=#75O1G$AV7bEifjpj{`BOn2&tJLPz-oYsX*AqQ`abeLb0daB?)F;$+;6QM}NSo1z1(8UvgE1d^cGJDOj{(_0VdjqmRF z1RwgNf^WYnopwr}wf<%2C;zf@^X!9EN19vFj9{kWJmh+I6P&nN(OUNp-uR0>A3mO5 zYfq>(88ft{r%i6)=uy&;zd=F6jTY;}-0slpye6pW>cKIe+3G7)^<`%Y_b#hy%CUpW zJDNWcCKudleu#AB;(o5$_53mG+YF;%3|s6kN^$pc5bn2OEASGjbb!p)-9+ny(vUIo z`T!}9bxUdYra0xmcLBK9XXKF?<8`&a?dSIY_(^$>h1HC$gyh%J$W1RkaPoK;wbd5G zH&;D^lzIfSNK@3&-*QCnf@iEmMTcI{P6#jwnCma+G6|zre5I2x$1s1^Bfp~$_W+-0 z*#EjywO&=UUFLHK$!qu55~zEe0@BPma<+)!pF7>;$d1Z; zw$gwW{J}^TZxYFOnWvO%%*lGxO5JUEIzd!Em&0Jr;!v#obwn@xn#?7@&jeUS;f2zj z7cm!Li?tr)q?({IM$V*j_~N{DoTz+hba2318%s765w2@PhvQUVX?x8Wj$N=x3LbymerKh8(EHEJ1ZIib}m+kW{~h6%MU{ zzxT+Ssf%JZ?Z4_hl1Ms2_bFjjSooX#Lu3x7 zCa66HjQAJ}wY*HUh69~=I}Gki7Hr1hD8(JdivbVj4!o_}wK=*Fr1wAQBE>X053ju- z74@qpIaYrpYx&yrHi5=>(Rpo(utNobHhlS;XUiCUXT98%)%97YnX|DaK~&7$ojeNK zAZ3Lu>ia}P{x5y)7RPtJ{aUG#!IjF(#eBGyC;ym1b8RixfbO?9%W^WwQZ~=mW74p( z>lz-q4{44jW-X`B-T$OQy;Xf)tpMs)^$Rd=bcv&nO(?Co6HwR<@o8B!<`?o# zv|OG_`8MnE<(Nb%osER6%hxgzxKcldUmo~+YpD$S(YRbAUZZ-JW@Z4Y@l;rFtKRdS z^Y%FKEiU zgmljb{Y%M#e5+fjXjOUO!#*tL{O<*?_DljD+0+IM1wMDTTWUt>9BRN0 zl@q|Kz%(DXimc1nn8ySYPmv|9^jov5ghH8GS$}R9uddVwX0+2v*1hj)m58sNk+HJn6iMdHnLH;m>mT2^2rcIUjMlmA?e9wR-O0p;A+Uk3gqW2uM8jTC@DcKRu|1rsZKe-&y!ANo84WFtQcX0T zKp^NY5yE5f<&!3~)wRvz<2UODQx5`1ZJ<89z_RYGc#ed@tOlNHMGeO@2%djIT*fVr zT<1GX!P#=e^=0!LKIg`~9C}(SFuIOO*GNDq%~#P_{Cr?Oc(^K-RiZ>Fzi&tj`98|k z@!({nJR#f9NJiox}Bwl)>>6p4sx}z z!$;7y#KO%l&bF)3P!3>wg&sAR@#fx;78S#tnsW0hVym9U5s+}7rW%LjjO0>v#hixq zWnL4hm;Z=kzhUpwZGWS* zR{Cyrhq(BBFL*Bo>hq$97=C+9>y)vmXxiCCF|I#ukZaTzQ+#cUjp@A* z-f&c3AQ7_g_+;6!?*l0X_xNYtp5I*9tQLfyJD5tlmQ3J9%=<|>TTWnvHl}~>1@^z* zSl~N;dWZQ#D#;#vWShy3rRlNJCoIV6zvRY_TnncL8pS0in#ts2QWi0xXqmPcdmPXs z4>h8kSIx8Pmo4DCN=nm!3213Lwal1&sB}clN;h9fy5V8;+wmxfOMHx4LbFKU@!Teu zk)F`kLdp8Q{D6c~GL!yZvRMug(GpyK^`t>PpmMncUj3^+?H(!9Y~wUkt$d|1`eP%c z)hWZb!WSV}FJYYBvhn4^g{PHgnj7L|%&DE;V5Xk2e4;}=>GI6m=ERZW>$gPUCc=-0 zS?a4cO83rVXolrg`6KsI$(_5K%cYdv0C}>mKQLkVUD6EybJ700KBNRc1{EWj;CsjQ zFF(is%g^H$CPBVs58btMJVs~OjGV(7yvyTAhFWW_U978_IbANQ`Ny(f{HZ+Cbeacu zz1`;Xrg39}rB`RXbE%JaOCgA4hm$a16zV(U?>u<^xOsh#C!J<{g0GhyMG#jY=A$Q2 zq1+SP5R&xTj7TFGs@7yD`&FxM&8pQ-C|UTMXZb+P`lncidJLr3jw=G~Zs<8Z3JSuz z7CZrZPWM9<(8z#89toWVuZPgaU~pk4S@_sLTve_rKytH$Di_M>Lgg+r(?ratk)p-} z&xBViK@7eNt4BL#e_}v#>-dW&Z$Zl$F^Ba>IwM#*%l(bdyX8YN4(03;c`{xUT1F3U zo~1fhG+%U7l~Z3soatc^qXwFKJ|6(s0C<4W>5RgBrOO$RDSMSe~Ya$;>Bc)A<%O zzI%BIrKt0E``tqBHV!13y=v=ub+x8ZNB(rUq0&;zF53HcEzu^{F%FJdZCKI2h0Dru zKe>GG5Qn16Z~iclm1(Y|k821&Vcsd+R(Um_by06;8#|bTVS69xm-J5yCJ6wKS%W}Rq=!)oV5L3!&*2A6Ctr#1Q>3srcfR* z0S;g2h}hIi>968S4QZejg2Yhc6)K90*a?fv((jeFi6N2pY2L3NwL@y~#6ckb!)WVHNWg~&pUwMU|IQT<; zOj0szjyR4nIZ?c^6fb~sFrX0Xrlys&Rc>mQ4sv>h6^k}a&STNOBZ}e=I?ojHwx=ti z$}V{sCUz#jJL*7pwon&{tZqoW7a?Tvwx(=hvNlZS+xtQPQ@RI-N#Cmv8tH^#W&3^L zQ+OqP=94}|sK!d_X)nL~hxX3u0%-995V%?0rJz{4<(Gsv<&t$wlh;YXboW&)5w$2&9VF6eMo zl!vQmY;zLmYJ}V1Y0eRK^0Kuj6L!OJJuancaM{jz6 zMyH+W2s9mX33kiQ^BW1+7ngaI$TgED1KKbLyd%{z%z(B+05*~*!gQxlU;Kl0vU3kK zo;{$@68Cm`XR1NF^Dx1N^fFVBzpaeJlSQo4TA%Q;NQPQYfnr9*p~{q(Dw(%FZK#>U z*BqGd>Y1h#Ye2l+aBOuL*l1YW#GTaKL*FCzIpkKZuX{qwX(EtVTte-= zB`Mm<;Iluo%hhp?U*!&2yHrhfGtKn(yaiork-HmrHiHD~P8|MxbA84#T4ncQMPHrB=Y?y6U+>>+z213gFC*k4T1DKQj$8oIMXgMoMzTkOL2lvf!(_WcV zWf|r%X@vTl7$}$zZlQK557Q&mtgLE8qX>@l$sjfH3k@4Neszp=TZIdzwk?fzG^aQ( zVb<;lt1ld3az=;I`|pfw2?giQT7uLY`U4r_f7bi>y<^Yi{61OV5O4psPF-?Rhf`?W zp1iXufKlD^@we`b3MVSqA&I-gnS{ zi_iequzN5sq;Xg9UNl_@A?$x}lqttjD1%zdXGUz6p4a`FJH3g6sB+)>KFY6Qx@|HO zq)P$me+^y*ot)O3Rgg;Y2cKn0_%i(cix=`=$*1ObyEgR{o)3ICZ*CQTeCm2xF6X0$WDp2wpr?U)iW zWe6s z%yy$3^Mw;D`pCcR|LNdq2V_b^rMO%D4|J&^JZxJCZINN|^-QJF;sb98^J!Xe+P4Z% zQEO6o2Y6A#xHZBN!~P^e?BrZOGj4A`S^v_M;d=lr{so8K&*+Usw=6?5hA_lpAjech z^uUAUQWi&X0VL7D@7`U=JgCSYiu5;$&ri}b`}#fkgeEA%! z?f?19_32b+zt)It5?&5N41l%e-lotCX=smu6pOV zRiPTJZZ)Sg%hOg5rtalQG8^q0uj)VKSTgI9ym5~nd}{RO4|3nr<`L6i#O5w~?4i1G zV7}~49eVjQWwZbDI_7MBAKu6Va$LL6LlbUm_Cu-NMJf2w;&gc4UW4FFLs@rvziHO3 zep%P`T|*QmXTgyFAc(wJ|3=yvCMy?YoKYc6e)0TZq_(2^&?0-(3(kf?j0yRg zE7fymAP1r|t9IQ^iqwY8yUW?LIV~R$|H>PLOWmVAGd^YcN8YIn@$=PH)~~D^8tfSl zP5jFSN`I~Ovz35(39ZrDz(c4=xt-Zq53|h0Q}KfU$cl4;Kfa}*Crd9^$H1*@vv#FG z)wp+U_nNvu*q69+>fT?#pBc@4T%OS%2gARrtGp^GCF0)gi56HCahZ};mW|rk@0dMU zv(yMD75z!3)B)u5@4U|dlr1Z~Hu>RD`BhB(;rZ-hn#)U$+BAn$sQo)N1wV^34k|O$ z7$ONZa2Q0m{$| z8<2_=~oh2_ij#Udq61%Fm3n*vom+sHM_V;IJw8^jh3bkrf=Rm9tE` zG=B|#mWox3Na2ltydS%l!)d!lETi37)+RTfJA+~~DD-Y1}p z8O5o{glCVuOhf2nSEYSr0r9Yl*CTx~t;pX1fK15Wb1(H|r}=zl!kiDOlT??O?f^((0X(&2NuN*S!gk zyypUU7u-Ea+NWr{hm=vWq%D>};j)Sfxw;LRx9}>>QJ!_V0wEHa2{@qwt&idH@#{hz zY&DY9M9HGyoN~HemXViB&!$~5B+rqPNq7n<5mve-`H#Hfal4VG@6y4t5j1q;eZIco`|wxF z1~Mnacod1rly5^__JRfdr-9!xhD7q3t7$_uEQBqQ`N7m95$$N*NuG8A&M>vMMm1#@ z1;-ZV3&|ntfW)-Vzt%dHABd74-lx?vn1jQAH21$uN<5k|zqmcxjPl7(xyXVk`4d2i zof{80&cm0upO;CQ*dZbN8^=^TL#-0*RqAk*eTCmnCh%~tQItEA^14?;wr5AX`Xf;6lM=;R` z*?QMj>bey$r@eF04nqLvgRq~$XAjZb|T)ifrBm7z&d$uVu~?F0ko#)e2f=^562`B zgA|rck4?r@Z0yI+e(}4ih=-ru6h75^_nJC%Q@?4qPL>|{T_ zOMDaf>CH!umDQSPb3jw464DqEw1^4Yx%X6d@_Xn>S=0_^BSn`9<=tjjy0}#<3pE>5 zBC9r(TboQSx`Ln0vEqtx+tR4uL2;7&J2k0NX+z1#)WEX_{rH&brHyIU__0|Yui7Fi zk`tF&i2+W6DETxdWJ=g*zkA{yTzn)$_`YBayT8cRlSREkbEY6@mUE6;AZnzGkpsK*;<9y+OS=%blXZZ&S%&eo4j!q^MG{^vldL6o8U;;q z)TK8kUtoZAwWaYA3)<{TCqgKg1Zq1LH)@FYt_+n}+IIsPG#`|Gbb%Dr)7_T@J2jsb zqrR^ylI$hCm6L>bY_f(So(8WtL8XX0q^<-@#5dmdT=qwtgapvNCFZkpC;46M2h&Nk zVUWa^AJ2aD=0*c-wX37zh!W^;}rR)|?F-$oX zz0X|D<{P-mvwWy3Af3a@sRWpUiHyM;%Rl@e=l0Mb>C1ocjPBA)`jnrsPx{LG3l<^j zf4KwY=2~INce5ILWfuaZPP6`^fGnEfNn@L8e!Q<#K(g=arIgi z9pqDQdTDQBCB9?hHD>4it#;A#5S|tJRx}ymup+d}751!kcK=IbBmYX~9@)f6LCpKm zqX?Io1;(fVDSy6^A5`}DXin@(-x_0M;DGOLA zd?rL1?&@ugnssTL*D|4VxwBKJ{fP8RONQ}^Nk)m9*t<&4nPjwZt}*_g7qgHFnn(K} zk>yN*te6pBiB2q+EPMSmo;i%7)4W&5lc~agGXU340lfp>JKKb;`nL}r z9)(M}oMyG2(V}K+_(!p9q4M~z$QairkKT3*wmLg#3X~2{k8i$vTR5m+P&_eg?-T2$ z!VJ`DLOQ1!I(ufiLFEc9dt2Q5EM9WlRs++M-D8?<9$InOOtgy4PcHDr0X21|)OG5C zC{Bt51(2rT*vGex-zAH}V(F}3u}^mvMUy=+s?EyTfA@Y)PA!xZ=M^Klq|-CLDwI7X z{61x~MFT9|d_t^3kig5`KENjJ3yofz6~`{CL7{D);BV^pcK6c#jJWp~w*=_HI0RZ} zNA15pwnyTWam@6;CcfV+0?9H#FrmFgc7&dR!z55A^|2qpg*RR!BV|p-je#u7n6pD$ zLL5MwJu}vn+WHX8zR!=4^*aEM-<4~#dI8lWHK-3<5XLkC1NaUUM z#f1EeK>P3R^c;EbiKv+4y?Y#d*%;q#R`aEp)x{%FbING7{vSgWOH0DGb z$=IY?05E?(JY~et;KBD>aL-a|sXJEq8_;uPom`Z|^ReFXj#bV^vWh9(kKw=qiTJpi0Yn(xyyj^?P~$$FBOnHV0U7OZE5PuYpX|Z$c!99y9EslXW=)F z&!h^>mvZ(!iXdHp-p9|G9k1sdV)bfm_DGiAsEp5Ber_|lckd$hVd96Cgd?>Pd)cxd z_RsW*hBtdkh^&5=Gf>S;@Z|?v%dnUj<3%~CPY}EG@CZzqN3*3Ztgp-`nQ>^0VD{yq zFkTBrP?iv|1v%7?5w`t#b<-f^=skX5*or)8E^K>?c*#DV&j;K;^toL6wyQ#N0VVy( zpoIY$JQEI#znQIx*?`^5*{;(_-(X8kB>Mi%g#1#rsNvD*!RB<#aPi#;n(AS$cymsV?aoo21vqVIK1|@%k z?pHsgQd@hgB&SnI2a+w(J>M)WlOyvXbYM-Z~37lvN;s|BtAz zj%)h;-bMr|36W4h5Jd@T5u_1Bx=R|QLAq;01SFJ@?(WXflWsT3tV~$^Ee3dw=YUPXivbcPHMPIP9}U^IhpJ4-uGo)RUnqR72ON zc6qdis3`R~#~%5~WciZL#0e4^7Bc=kc9-sW2hh9SJqWw^MnG$bY8HOi`8G-sU788h z25cFNkz)lgQ~pc0%HEG@<2%-Q53C0$z-v?bkA2bYD{1<>i>axeThx}~Fd#lrX-$Q+ zx;6nDh+-OFF_c28(mwP!+PKI4IMI4siOy$Ya_8RmIoX_#R9+mj|AxdGZ19tcP*BVD zDW@w#MyoYZ`<_4IM7An|*LXF>L6=NbYOLPu^kPf35)lkUE8w*0O?jH@u|zYTb(0(Q_qL zfcE4uTo00O%~-SCbvu7VKTMO-Z*Ui0ocCeuMziopRqT-M2~&NB63Oi2&d*!YI0fh9<-95@jW+t{&SEJe55PvNpYgA*ioS=qEou%w8 z)qWvnM@mht| zs}m#?&&_OW+J4z3YxeB9cyRyvNmgs?pBW#FDfTl2P2%3JY7}Vw-;fG{5~4)+oy=-n%-V% z;+V?0Ur8;tGi^T?tv##;g)#vKC$$W3gJ87BeGNe1*)8d2A3i45Jbr-b*1Tshj4L>- zloY-M`H^1bZr+uM^Io=|d^pRdxhI2Jc2x?56FL9JF_6>WCjz>XIZhEOprSXeJH_92H!MX}NzGn3~L z1m;bl7OlAmx33o%Q?HgQ$8TBe2-T|7xEAl6@!YOF3_|E<1q7K465nxbaPk&RuQ^?g zM_6&Kp+`Acf{^0Uvo{&Uj-wwtUpVMX z3>93Y!#^Px6XHH?`Mbx&&p1S7B-F@JLRa7|5w;BDlhW;HAa++5Q+Ar74m5t6W>cq% z36EqCDtI3+l77fJ6C_km&ll}t9vou8dmC9_+ibhgb_^BQVk}~Yuk=I#jgm=m0LZ~ z33TYm{?iarWncE5l$M&Y$t6c1i%N4fz<26d^lELBJa49{I56{^U~x%qw;nWUQW@r% zI{cvP_B6_9wZ!hQc-QyGR55J&Wqx_Kwb<5)b~va}E`?N<@_EdhnhjJCn_Dl>WkUQa zStdQGPrUw@or%0T<66GX9-sBHfoPr`!-1VwVYAmhNk;zS*ZInl>(F7&y;IR}bR|*U zP1UeUG@bb6I(5qiFJS;CD-$93mzwA3@?5)`x$Y&0f695!8HjKB!!hk;=47GI%ASXj zRA)uLyQ$~-+VaFsN7FRp!hI4pyZh}9i!`z?05CA`N5Oa5)_iIja z3sq6F(A8D+hHL1vGRad1ttQ;~R2d{vO(>nGIs~R_F*ePd(w!x+&DXhbw!D2Je;I-# zyx0pAE*TFIh{dMnVv2nHg}0s8vt!PT$>E7i5#knc^K_n@P_&Tk!shIqhbo-t1 zxb?SUk@-9w9TGquAG{CtEAY1_6ochUc$-ap=}WbcYddaT>dRP69NOZpMcV|rVj%AF z>yY;O^j9PP_poWE#vh41ghMrnz#NHftd=E~S zGZz|v44c?)Ej5JS3(@V|%8)kBpJX|*kq!RY>~QCecX22AurHltw{CB|^v2!w_x#-J zQR#X*D&uJjaFE}#wuQxlFNSiWZPfbu^DK+E+m!F(ME2@hjSAauoi2Zi>G(7jbJAPH z+PKc;9GwbVr1gn=3NB%~2 z(V}KJ5$m4N>uL*ho1*?5D()3U$ZK&8iTplUsTMZ@Z5gbt3D!5^X_0dV8+6h?`3vo2 zAsvSE zYj+97PTXlp+t6w{@#3vXyja0DCd}*9Jy+*AK>3g*_2q~X#F=yIyiMG0m8ZH%MED4l zuP~|mWmg{wfsP@piiXsjEy!}b*e|D+7!8+H&UYs{x{jkC;ICZ|=Q5#`T;2M!5}NSoUogWa;o!a_mnXd#}1NnOYAKMeRl~Kd5$N z7fO|N8|Z2hc?jL&Imma6&EzcNKCw;eO5b*c*FCCH7WNMQmf-nV5*;0a71|`-_lcHH z?A=hYUd!6MW1CIYZnqEl@z341HK{t14b3@est~V00RMFZCuR|Dou@QkNW5)7l+|9( z!5!+K2ZTQcONsRw`NbYPcb6)bcseabVyi_hNN;n;F6yts#s&mD74>`}4e$$Y zQ320nu9x=!TU}8&7!m!8y3Z^iiF03AtZ&tq?61F5k$O45TaJsOdlNb5rItA5J5Txw z_`S`j0f%<4M}3;8fowp=pd+=x>19>pyUhCCIy@1(6l1Z;d+dhTjw1M%+jK+FIp*TsO;j$g0i_C z?KMTPr{5Ink^9|fAOL`h0~cGlUXgGh_I8^2hGke!G$U9m#`+1xuq zHc!gK#;MO=38jkkDqo7{Eg1*?dZ@7Q!WFp76tG_Y8};nwwNoA0&16H9Z>dyXaV-qj zfwe4TCq2l;CrI-5b25%A*dR2A#CHLq#6B})d(kCpe~hNM%z5_+)-WwzS*x(*(P9LI zlnsK!jn&?9%{%&_Cue_;S4jF}%9O2~-?z6nd}0ejToh-l_ooe?oRb52+)t#aF@A_z zSTg127=eexE)_fA7WVUe`2#&_NVXy%cKjIwo?!b|-;o=k_n)V~zV|Bla0F;^)?f1e z{yDP5T<1pEokj6eRN-u#G4+;0D*^LFmv=nV!@M0#oR_KpDH1 zpQpJEv$0IGcRQXNxu347W+PTl-KT)&gN;uMI~GAP)LofESTCkIGKt35rAgm>v-Xv~ zU>u)!Xan=pLJPI=DCVmiU4`C+HR@K@Tjh!DkAyrp%p5qO5AXMJ79h?!H}ZOSNT0Fz z_^^=pY}ZWwbQV2wN56lMNIdvOUOFoAh?Z}7mTc`n z;8RWNI@<1JvOvB3opWNR6R0efJ1_ICPbK-A7#w22p?Pt&8EhpI z>a7yLFFZ1?_(f>a!xTHp8W{~YZlrmCu$BjFosuBp!px+UjjOWL^MJ2s@`At^X&C0@2%Bl%T8^SnSg{CBNz9a8kr zebczAUi_o8Pf*as(@$y}EaADZiM8d8?e0Fy2Fk5Eem0lS)JsWU-=zR$Zt9KUQy0Ep z1s?91w;-CCZfPcNGYb4<+ws_VaT|M|f@6R>WwQdwaBCxq>h>)ZobpgXyy1o}7f815 z*v~I&IxE8BHxJ!#^rhikySuxj|La@U{z)aW$rI+UT&W5(e6PvX)?Qj$#h^0})ol$I zPFK8n_NEUP{$g^N>2b3#RUpOhK`}z^Gsg9il4b$(m{eX%FB!2{0 zx~KAlYQSae4^W+B8}dRwza&Zwd6$xtLK5TqQ{U`oV)e6O9y;S*>+YJ2jOXe-0iXP@ zd^z6nr_8jA1+)prmE^Bzn zLE=<|V^Eg$aCU$5y6I2@a4GP>b>dTzv4S1#m20+b4p#>kqEDzubt!83ZAt<8S6!k< z`==hrdGW%nHC)keoFPhi$}`bSKe1Ww)A=4rhATL{Sj!n_VL)t*PPt%Mwe*D z%_1gU7oyaHH%pLcKvO-=p@#TE=67pp{P)EhSoX>q%APFGc&^8o>4z@c5W4rUys9NJ z-Xx1yDZ{8AxqI``#txNkO{r#m#_0@eA5Pv z8|vs1X{-ymlb?x6q%PQJeyTfpi>lClpRtae@)cx~9ObuZb*m%(7g=uXtBi>=KQVCz zOO<)QWYS3Y+-NpOM{8TrjHk8ecV~+gdHQmtF4KZ~8N<#|4Yi+w#`zP4awhc`95~5W ztuJz+VpR0|rIfnm+RR2-zPD}98qD)dbliSmEBJe-M3QPHZOEL-eO&uu-}PzQ48Rm9 zDVAFMV12Sl^nHwST-VaA=s<#&YOh_jvAG=M%-D}HD z%eSFb8jsKf)J-?K?kaWPHC`@ zaF)ay*TiB8qJfn&Aclv^8nt{R7QTO3B_JHjHwzqGJ5AXB*u@gRTWdW4ny&ll?epgl z3Me+(IM9_BmZDZtU#QmsnJm)dC1EgwGKnfyEP%t}nH8NRyG$9I?nVhNPc4_zfg0*% zJZ9Na2yqBjKV30?s=n^Qo%x)06rlGcl4_uyPv~y(;9 z0$_)wE2E&%zay_S;-#I1p9$;xuQ)%n!?Z|zb}k7yp3V0hvRD$@cK|INE~^Hfg2_Sn+r zmbv{4r^nuX*ceVukKw+XbNmU~KOw@E8=hZ_2Ti4}jw}=!vQTeNoO!hVNh_iAhPvly zRK4=yXQfeq>f?vZMJjeAa`N*LM)AT1{bSvGO4#9Ud2-~vs7_zJWLIaopsVTKgWfN( z`G@d(nXh;2Tnr0Xx{oXBX7)7dwCVD637HhNsrpK3YJKx|Gs6@*LCqqkQiOG308#em zqKChKoa^Z7kM)>4N2Qe?UymBZj$SNxE3Hf0x~giQ7p^asteQtn+>os+DzmP#Nzz{? zU1n}HSeY$K?W$MQIZR8cGKTvnjwW)^iAhy}hOzyuW@35;Tl zhRrS7xz;U$dcjmU9g^vFXF`K%K^7W}Jw#u98I3q+6K5!kgw|x{<~RhR-dl{e8M;u+ z9$ECGzO;55I#PuirCGrwYvP)WD|^7xPU{KI>pd#h;_dH7UI6F*na2RoL4Xt8;gKc(Xu5WUxQe^HBn4lxwA5J)kY^V6^N z!_SdD2wHgh0b74tpTZB$W9!?L{!A>8<}|p~S3_gcAZR0X)6CqgJ1|71+Lk|7#UsiX z>pTib$r{40Y*w5aMPqfP>z1BoKb_{}KBi|tT5^b>Vj-b~f&$0Xt z88Lz=d_xVfCWo?LCuPp-MKEemd5#$s$f7m;L~^1Uhd za)s9Rk9JpC?&C>syWm5~ygLrR)9XPSd?bvKLGnSdqAttFNFmX#Pmb6YE6*!B9a$Sq ztKFJ1r`SG^JUVJi-pz>o^HBuUZc*!WX1Ae~GY7hpGpeabU>8ptJwLAbsRZ=LO9kvzDJ z9#$nNkGjgWFBV&V9*jlPr1r4a~KOO#_DnOMV`;AEXM~1htrhm!Sn zjR^NYe3pQr9~rTvqL?{xtfQuX5jM?GH!QWUVSM`Xloy&oYF7?K5cl@yF8pCp_6*T2h^Gj%P~Au z2}*K2+Y?O{D19!uqvkjezC0s%MP?tadEnda>gR3r=NVVY+}p3vW-t6U2@+8_`FF<6 zQv}*ec-+yo!Oixj$st9Ks2s9XD5_CfS?%%tK!br$a;cD_2L)jGc{2XZNkp;w)m71be`@sd7CGmKSi!8{h+VTj>V%3n8i?vNt+ zqRA#JWw^au&P)6vMzWJ@_5^iPxGxWUJ$tdaQPJbnzD5wp>ekhW!i;jfI_8}Up|;YC za0>&KPN}>BUtF|MQbvY*w&A+zVb~M$4RDRfj67C;{^Ym$Z5StC`|SJ`G|=<-p&qIJzo}$J)D5k`_G)g-4iJ5<5*bmXA@ql|(&h9EM-J+8ZO6-z!rJ4ZDfK#Wus<^zcm&OO zgb6jce@6@beqL5B6E(Hv?Y(x{Bk1a*a2zr8L?FV@n@tlY%bJikhb{9ZLq>!0>_3fG zn?XZ0nY)dek+>-Rx`VsS<+9Yq;W>j}$>1z$*1fU?(vFNcrX9{(w@bZu=&* zP40;{VAijnVFyx$vp!jCxthUmI!|NuxU%}0mgw0VV1d8zh0UjJzw0I&bZLu&4k=r_ zNy1b+;_VsW7>i<{?v?F}<>^9@cKiwhg&_qZcC!zm{Z#CD%B>61@xG{3R=WLB)0ceo z(u8IbSO$C(w!Qg7y!)@F{D)_bLXiW#y$`s2Jl^^W{+w!4?d?Xw%c;1s#WH<04iE`@ zL}aY5u?wl^+?tPG$-lKKAe#mmp`|{oO8ba!8U2n5Bs6*wY}D?c@m-hoYp|_mjQW*M zqG@nHX2922-vtYmrKmJ3&3xOa#%o)~n$}m!MLQHME;`j?0z6vtj!-+e(C}WZ zju!lZdo%X~Ji@}fMt|SltjZ~Y$pNqa!|&7ypy9|NC9Cs(V;!Rekm!oq?WdhI6{en# zX)V)jgQruj@I`>KdQPCN{k;L1GG)`{m_1K*CfwgXEHAH~4$)c-v)3i26(X#!l2)%o zm3A9kZV?LT33*fF3B=Nxkj%5W5^p1FT+}qo-v|SJPW{(FJFd~Oq|DPyL&rI{tRvkh zrA{s)3|b&|tFzMfOKCn%S&mG&=DlA2C#9K;PmBN-^#`u2HCW1XnKJRmp=vf4Fs1;QJ5L^6hwrc$LEp*2r zQwJP$Rp+<$bQC<)`Epx}^`V%NtK|$Thy@7)lNE5~JEV#p!vw7TFBGqz8fz5w%Mpa* zm~O)W_w5+{MN6~qI5y*EgYyr)YUAS+t30327QB?xy0XDt*gaD>ERJ?#DUWY-+*`wK zP72O6+R|xHcwxK_D^}qK@9G3=UQXp)o#Cc1aGH1%@W)S2T>#!cv+K!IkjwuBc4J$} zU!*juK(FkUj8Ft4w*e8S3(=9G}ty^;j;xv#--cs2-VE>pd z!G-7mED3>Xc$Et}e!Td+Ht}^+m`G1xDB3umE;u?fxzS`b&HT9N!fIOmfn({_s|8S9 z+6+dO8XD5%7aeiS=1l8fNTc7KDEq+B? zhM_&k6#dr?x$?i$yV-^7c@5ty*PbRRDQ8e|4AVd*NVsbI)?(tO0vHu2Yn#}y>wv| z1W;1t#CcU9v?aBoxU%eop!`xYj@gU#l>E9&59m&SZN0Q5T5W@UZi<>LkFsR%JLZf;5K3X@KE~^k{PntSt!PqFO45CZeVzg|5VY7TVpnp&Xm#^m`Ir=e;g1%%wLYKK-g@ zCUvVPsmTY#baH!S$gr7o%L1EWR$IVX++-kH<9~wp(8lqs2mBR!_U%IMvg73 z{*)@WP}{fHc3%K@E&Dh{eB7kK@+9a=;Ogm~Swg7WFs6RZxBlrU-gJFkQa}Dt>iP4! zQ$2IMmaPi8hy~_#fh>lZ3&kG(c8bnhbrhIYsb18fNiza(CfNJO%tc{UCcE%7d-!D3ufi7HcqJsu6Pq*s19d0OQ)T8~N( zUl4nKb`d4o%J~o<>nJ${lkBEN!Y(OEH%^V787CIv&T4mkdYpSXxk07fHr`w&L@m1P zgpBw?@zPL#w|XVx#OTyMd{Di4M2EFU@^vL}%!m7&g>Wp$0DQRiN_Z~4;oU-mI`{Ve zgmlJ*tLajo+(YIMmg7aXE&aM5yR$b_e9)Smn?+oo``U;BeWhu2a;y`EWYW2#rwt2j zkzEt-uHfQ7bO<{-xegBI3NGSGMHf9_Vu30yxe`xB&*FW)9!!SyoW#_r8KKzo7gP0G zM;F#x58EM`4@aOGslesRQnoNJxq~r3Zx7VI3M8)}A-k=6G13BY>*O`2HIA#w2AzdQT2M;v|D$Z%{ok=_lu~j z{%%+j;%lv*Qt6m2{FNGxR&Af@gv9VawOiJ2t<)IL|K-opnpz|Z8dsIm8h16ZWrGkb z1QX841xG$!wgikW_&>F?n2PeLfNIJEDRkPv9KV{tGQ`W_{_%nio6_DSLOX}uQ@uW% z#6J>6=Y0oWqje+c^^VQ5E9~82gY=g*4P8bgE4C5bC5kVEQ>%C?C0)2(n*P9#qe6y^ znJ&fYirdf^QnBDm#(ze}{@2Lj{N|wIuZ)kk3SapJlsNWM5AXE|T`KeEmrXCMRMZS! zUcdf11s0*UVI!=r8Ptz*dcxH%oxt=W53C~mhMao#q(qLy_@{3QtFEsNgYB>i=~x^z zl?X`{KXbK({2&@pnxN`&GE!(*O)b#24bK_vHjrQ>tTf^8c~^3weZE{`*X@nj*hd=s z`C^oMcDya_b(RG~2bnzm143Bc?b{Sd>xkc|bcepZMw_HSbs8sVZpjN5x7wl1U#vaH zW@WBR?6;Le!|tFnA>wR-u*<4n64u~f4JakJrD-Xf?Rf$Yk!P{U{EIof z2X*atV%8H%&8;07n#^CX^tP&>qf5pYoBV?nCdS3&Z-Or-I_rNlaMT>eD?>ETtsM_6 z<6f$ZqnGrDR3O|N2zwaIp4F-D4CJeYv7hi+@uK6;Jdbi7f9w0ZDN-pbvEajIHP9}1 zDYA5E+wxdn;F-X6Sd_?6;k|n+Z~wh0b8z|Q4|<~W6OExbJDt^~$;ae{c>HVl0m1mB zT=Bspb#LR-jK9=2i?~$z{rKv7R^Cvp{$RZOUAE6Tbq(cHCQM-EH`*&M#!K~_2PA90amEy@k`b^h=;-Yl0#oJPrT3*^I#`629x8i<~A7b z)BWt9lDe1iTSOmXW4Z3r=SD9*OD`)bgL6>QHVm2GZVet;;09M{3}+)%!}>Smo(!li zMm0U#dCwVR05*N7Mv`={;6`d)602!WhB~M!fC)r!p1q^h%zMaomcw!5*mSh7_tap# z4%m$jD&;a*(@axUA>YgPGS^6EbN&_oh;Phfs8i@gM@G}lMST5Dx;`D?u)3f0_O%9P zG~w;vm4@%%VP=bs0l}@i!VT~4^)4X2mg;i_G+e#i&dK3Mvy(BlR&GVQfzT7dwFb_L%EDcljJU)#g z59&%v%=8PBYrt2-zp z-nhE)qCqW8Z4N3`6qHQuR2<4F@uv64QAb;Khx%S2Qw5X@+`RNYSSj`!dQ3kgOMZ|Er z&7=Yo@*jq4A`d*(q7I|uWx6t*ZnIhl+@vsZZ6#8`e|z#o z{93$S9lZh)dzE>&$MPUbsQA0A+@7s3W9uzB2W$Ekwj?60=lknP)Q(s;H0-HDXK%!| z`X(q*?{Tv4;fWovmx|5la*|rWu*`gu9Fz(Rb|D~&-uxWMmD^}+8GQ0)I)={BOQ!;G z<>KiH8*@9*S6dj+f_x!$YebUs*^|ZmCaiissw4EtKe}HX)nTkUy6oWTV8;9LGc8L_ zy`%`;JrjOtvLo9x3q@wZ9E(axoO1)5^&EKqN1KDJ<)J8fHn}u>Z)W?U4f&^&uFl)q zLBVZ3dgAKMdR~>{?5?*g8no>Xn$8mPXG5gF=xbe~?8K5$Pwc2=^UJzCh@Stnc{FF8 z?&!{1KMHOBrq$5e(PD>UX7E=AAY%wHln0Of&q9rI`-i@2d{*VX-z9Z9kexnwbPY#9|rY~J`IlTe5TgN&_Igx+M^ z?HN)1iO)KK{gSxSN3VTb!3YDE&g8^o;D1pbzZIfax;#Gw55X?MKvLdC+y`PP{e^bw zQ=K%4vQIg2Yht)hLRdV%h=wUBZ!14O++t__`>uU~$DmVD@23-cp%f1@Sp z*nZWF;WBHNTt)?RJ;u<{;9p!n#j~+4ObA|DRBitQZ z`b#{U$d^WDE(n^NF53!~u$xIFW#>}wI#HLROR2vSfQNIS=V_(zXWoA4jUq2JmS0bB z5S*xiyDFP5??&G&^)0=BMDKg|L;O@U47!fcf{c9%r8AIv(}i4xzuI_|JRy6bb5gx? z*OQqDn_e(R)j$%t{F*H=lvf*nD>_Vj6~o2Ic%lGiIUxe)oqTJ_`oo3(-Oscpopxj= zx?}IvD9oiE-j!gq)Z|@s`_;H5hbze9a-^5+oQb_MRpDDpmClWLgl?wCGc4<_70@Z1fRAv}#&tbpJUX_sPz;5-U_n=`WLL z4yTnNf)}^F6d{5~D?cE15XU#j2CkThbz8jHS+$B@%+av}Y^d%h<;!CDFa>q@b(OgfO_EGILWRM&-fiW^-F zk63+uYyTWzV^})ecPmpr?9Z#yje6UkWK)2YB`OD}bJ!mV(;2FU9m<_;VSU%nTL~=m-FXp@t!ttutbJM2*xZHtkA>%_=vq9<`D$n0*jw`r+g*x@y!f z#IW6TtWCOp34Qwv48smPl}8J45PrrL2@z+Tq({Wm`YEdaOl7P_ks=POvP<+UKEwZnDg_AMO3V8+U9;tKu;`_aE|9 z=D}%l0QBY0YbChg_OHg;{E0VvB;>V_D0ON_(`y-yL| zO&IW!>i^ECx%yMNgo}+K`YK#*VrU#k(&M^O_!-eP_${EE9yJNdn^09Kc?lrxW&M2# zG%ugF&f&%Hx%w%Mf%vrjKA2Fo+1TTRi9vIg@LrkEQiAv;hCnp;qW21+_B_9HT9tJ? zd7>Tw&Dpv@-}qdl^2##VqJJM4Q(?Dq;=kvl!&))=``C~19(*pk3@hcBMbOy$&25BO zSB!`CNAZ%aoIZ`EW`M zMmdJTFJeGOtbxHP&^30;jPn{}Z_T^iR>{_t63aVjH*}= zo#1n%(JM!<9t>-olkxwAAA<1+=$HW+pnh)^@?|!NEK7=_R1uc#d4212m+QUP{*!UX z|Bu8Whk;HPBKN3*YDxd$FGMCu+@Z>o;3JcZU8hG9F+x~b6;IM9yIb9}wzgP8ZiPw% zYlq|29-l26+e z6Dvqh@X_m_6x3MMXX+v9L3+R==J|56eBLl99eY2vKl$>9EYjn-iD_@@ zdjT)My^(GTmJol)T^9JTrzn(_+Xb`S10Q;@2iVlVp;&*1qrqO&_=~1$vn>r9`-M8- zK~)U`j^JEkxa-vE&%6rM!N>Z;@jsc9G%4aW;@kt=SgoldXHMVnMi>e1=`Ke}JHv4- zWNUvh9N9hGfQ)WpNi9Z2EEZpGclfk@7wcJ>A-f#{+vo+o|A6?8t?%uC6Hp7f7}*Pu zrdsevwntz%4yys??wP-D_v~Ko^F5 z|Dzq3KznVhk|(Q8L8O8wS_bRP=$v-VmCpFmVW<rk^H_4{!oWd03oRqk#8vF^LKPe}T^EBdT8|6}6r@ z4}OAKkd{`Z5?H&()9_{d&$;Zq7!+jyKgxg#VBTT>=}I3!j+$#!F}oy+02QpatKtZwpHz9?J2>OBe5m>lX0o9@ZZo(tl?f z@u5iDr8j|h;=t#y6XM`#4cfMjLs-`JpnXK2q1fA}X6K%A3!w?WUkPaWgYa{qndU4}lcRmJ z*i2Nq6$ZD3K`8zGxOk0DeWlR{;)N#&)EwT)Jd74%L!SNS*=~<-{GSV;WE99k%U+>a zKg<_cW8)O@?0A%mIm~c5p>MHi=6>e=XZ(w4{t7mB*JZ4+p$vlDJ)bHbJt+UBEfzHC zj;#PideTBrO z{RxeOx76gZ*HwT!xSfh$f2T9DRzc%-ff8>1aZ{}Qd}FR=DyMnp6cJx+CM0R>q}tY@ znep10%hma1_2N$qGVq9a$!?t)xc&4V*5?oZuDK#T?9TTma~uv_unx#B(qQ(S-O16N zN0*7Y&qoPHhKfP~t8H-=Pf9ACJq;(^S^jvufJ_1%u>|6=R!h+r3v>?e6 zVtUOV@^+@C0aZ0nzf{*!!Z1YLFGm8MmavoI-WAEzGQl%L7^L!oFLafgu1Xt|MM;r%A zAAar^RAy;Kn|O=oJWF3Eb@rqbIijR3xYzFvq{ThL%un{BU2dsCB>0O`ib3AY6hIA}?O4B1hI1}51&nE+b1*JQ z8>6roL+=K;Eh6x~9m=PEQXIa-yrFyTPtpyCP2w%zIJaYTRcY4v~z*g|Ua z{97|nN)I$y+tdn$Jlw)|eX93LmfgLbmWI3UsU(lsul!;HapbVnwN4o>78VAg_0KNU zI5n`*D!}V+C|cNA7JW7%xbd9BrX@iPTxdka96wioAg?jchW{w4h(Yf;d?mOgoStm9 zyEPNR8Ijf?wkE@$q_NLW1ozJRZuI?$mc)j&kVKf)0+I%+VnTB}ZJ7GJ~&PT<$*>Dyn>4VUF5e)q4v`0z3F%XN{e&4D{e|g z;`jZAm)T~3<4r7aY)NKXxZkGa4?*xXd?xPbK?OZ1n3Ra&wMM)O8v?boy`gJ{S(Jcj zs{j2&?qL>p9ZR4GjlG^%UI+FB+~%pbTxlJLYupH7iE)qJ5m32awlA7}x|J<#`NQ%1 zVKw;HtVIPd-b%+u1|&dFNn-UGo%7w9BtzDY@YC&oxm@DRMed~u;F5+A#|C$)2Pqer zj7p=xr;mSPV+H&LykSBYb5NyE+o19FDe1fs@I#n)U0^SK@FEZr@z~}zfH%n{4|T~TIu!#S_xH%IG>e9k z7s-$0a;W!`J$LqA?qR{S#Q$f9fsJKEM>^<{!VLv*5rHHO4!%7|pCrfi!Hl!{OqW(3 zzpIHR&7^wBoFIH^x{Y*s-%cU5N;)wrrk6AsE%R>U=4lr>rord#-K?DQ0B?sc@53ZT zXi22IH$cJcqa#4`)|UUc*{(5s-buR1^1B&~CyEp@08(Rw zHp}=|a9Bq;CnY+eD6YGGjgt{$*w#5@V;SAh?oS`no{jO8FqNaC)M7r3HgN1%lwe6$`$sX{w5Ow|2wR{Nfb(F65Jqwl$@>+0 zSTS=LBg{@09dfx{B*(_ZTs$=CZjtyQaEW-K*CB|NVIVUTwS3L{eT;nUgEhbVgzz`Mz;xyvtrcN^_38~cuW{zi~2y4RJP8v#z` z$3bzOzCsjKl2t~LQMzaMh5z#5!Tlfei(;8!BzdKc{zu%dL?ssS#04+Ge8Vq%N&-n%{B>rI0!kr z_I~X1)l>fE<$KOktiTDp0lZRw&#TdX-wfY==6m;)N&YjP$Ib-U257ssg_P#S5mG!S z{nzS>5aVBko++&~IhhR{aa@}|xN4>?bv8I%nltCLA?jbIY3|$1e|U0FHAwW++T5X9 z3Ym3sWFHUiv^r5Px-S$*aN@#q8#CFT4ymHT`jh;hraAGpm;SO0l z0DuSOnW8%2fH>d!K(t8hQo(o38|@>k<@U{05>B8%w7=U$EcNuEo@eEE((~fak5azV zPqKUm#JFAr&v}Y=VQw+{@PD^BS%RS?(ESX4V=apyiGaxK&0?MQNA(SIuguC1RXx=n z#OE>|jRS^CDm?w(uF9-Kyd4?p%q9GFe^*ox_c_`<`AS67AE#?Bin~%E0aCqgxT=6X zdFN~pHa$1Qf<<*7=RMbdu2gyO(y#Bn_qxu8kyY~6tw6Ix#Tim^=M!=1bjLs>RY=(n z9L0i1NTnyGkp^%^BA!a|Ih}Kr2xOCNKyv28m>j0b&0pVr_-Ou6VW?f7>nUAmym)g^ z+8S?zX$}Sdr^#U$Tk(=_KXaG*nDUXw=FltijseGu=gv>?#jV8EP`{a$5sb1jm9!L% zV1z}W@Vf51L?QXwSO568SRi}j!lQGKUNY=J8&yjCzr{pD@q{iOVX;5J|Hs;cIUy}c z2eY@93%!en*{@h6eg`5Jh=R3Vik?|;o4li2HruqE*sb78*YNyy_=SwkJ`^pvlF+tS z8+#oa;9q|4*Wkt>`}vZQ3Uq;JZ|mfNEY5Kz~0JnU&Jnw)8pNnhty`z-*{he;w0ok_JA>&)Rl za=$d>xbXim^$qNqEls2|Q`hHqpX@yZ2bzHVcMqT@2;h$$H~v3}Wb#5A zk2hh=9?LwGlX{JH{<`q+ON$Fu!YAW?DfI8-9pEHL^Bw8x<^tUqP@CZ;K{@ehOxZ5H6-muaIf%7J`KVRvYWtll zR|x62VG|wD1kw>RadVWU?Y1@01GYS-Z=XP!TXt7UW+Prf`$2UvNXQ`J{rB<*UelJXo%BtCu+lB*fUbS@mGYsGN4Y z>GiQLd6;x!#PGR|^lswBg&eI?l+u1FX+L;lf=!0(iWo?R-hhsrYQ(L-EBf}i=JeII zV&X3(0n)eud@g}Lm(pvtF%2L*zo+3L8ZJ(2;}rolRe?A&u7{nR9(l+IA&eE@AKN~a zGJSP3hQmGT?q|6zvuZF7sEpiYM`&hVUHZ|y7DN;Amub-dGEEne--kS3oO%Zj{%!lU zh11=PG|Ip$!^d>5ZrK*DFqFp$8PvLYfc7c61R{$03DzX1_Ez^~b0;oN{*V6fAV*Vv z%ENv6)!U2c?ssE6f21i1!K9gC-giiRUL$OvE=j_FuNo*!X94s{+3%^O!%sQt)!5?u z3)0jdjmDV{J+GHtxKE>>?aLd9{9Xy5=&FIo%sv>3SzyeTw6m7=Yw)q@L%xr< zo^n3Vf_S#VG?H4Y{-L`aS}de{at!?Fi8(dhd`O^YZ=jt}9D=0`hErw`rEn76==S=e z%~zn|-_P39fAlo+l2v(%DlEPZETHn<9k1b4zB;UWmHlEOq0A)k%*8;c*P47ZeD%Vb z?eT3+ePastn=I^43ic=siiw9xv6fA1^-b2MzHjurz6O1yD6)x3Pb$P8QACrjlw#jsGbb&tpgjj4E6m4F8HH1mHNjU1$Vy#&0lf$>l=RE zKPuv1L39^<3*mpB`%v{4mG|YV&sglpt)Elgymyn*Mu?W@y*y|+YsBnoY1E?t-B98E z;FIsP!@K{Af-D`8z!?c;t}S|u2lk$ek{URSyg@-9s%Ls$1svuA{@LL#_5gAhY<|LR^rSOCUN#ielg#zZ*FtOjT3fn1$Y{l`Z_Sw`w zGOe(F%?F_l(5t#r$4XrrCkRAJNimNjx~t1pJNOdCgWWG1k)!h;&0r5!J3a!ukF5xF zz-^}1i7f*7;RoMKf#uTWG&nl;f7~v|k~$K#r4~D3baENegiuD?f@2t8`gU%W{`{I( z!@VR1iVLT*q`P6o@)~CZtu_v8Ui`T04gb}m=btj7ujQ@umTu>3Ni&z~nfqF_EVO0& zdu&CmOcC6tNsy6cQ%r1peM2dV0804o_R8O*rrYtmz;<@i^PQ>^b&R$YDh447fV=2A zb*iI0k6jG2{EDyb@%gI_qdeVzHYjnY7ITZ>xfD{+62lLIP5L5eNuYY_@Zl0TB)J3L zX>Ati(Pt2?<@>r$`i7xZLrl9K{B&o#PEQ+zz&j^@`Y8`{wA|IO%h!l)USFEek*^mq zJn4UtxxakI<=X({%}DAc=x#;auhxY%^u1Qf>?+rRJYd*Bj&dIWll1i(u$?Jz2bMRE(bJ15NFQ3(%IaX5EoolG(_A zaG}1Z5isUGG8pvNM-&c;#e|!;uewi?d}(o>lK=gEgxzaP@m?}Lb!h1*jVJwBgl)&mi^SIb)>TnFQvAurDkXJ?@Cibwv(cx4SPWY>LOjLB*(#r5e zUC-f{K&$-6oW)~qzP-vfCzG3QT9CIt3)_(@z51yotvHDp#L)*z@G01IP1H5o*5bzE9q!zM9buFql4)$iSQx3TTv|n-)h@ZBX0XBD@qt*g7o7LA?;p7|U2&Wql?&QyaeCRUu)9dxic%XfbwfeK8hT#QD$-Q&S) zdEG9#SPZn?`cBOpc*!EjILaI2c}m(Luo6 zcigqUQja^k1dPu|Rs1Q3Iaq_}K}?Ing1YoF+2-?g`-g@t>LQ;F=7XXs6e<^t*lg{; zADE2IGU+VeQ7j<`M_%qIVx!im=;s$<85CEkV@?a&Y+M{%ZX?R5T?W^#0Mya3CSkt# z_3@llbTF1ab;QSkFZ!LYLYfP!J{R$okNWpi@sqDS@rypw>wZ! z^gJm5d`{p?-w~cffp%PX1xSdVaNtcIg8JT-u&&db;k$#xUEDk1u=hs=Q{RS_%K}*C zz2g_PE!S9UCWNBc7!L6=-MhL>+BQnld3xOL#s-T^zEZMSbwi(1Tatp1=j@p z0FGvaf=du1WX6^p>%2LCcdhbWD0%!4$F}J3s}j%f>$K}!FH?V9UElOnBhZVRjKC$U zzF7D4pd`XOhPWMf4pJS{z$POx+8{Y1ba1PC?r9d`W4SbhI565f|1{3dX31qZUJOn58iZZsq!Kv^%#SlJ{p_gZuU%ZSUQv zbLK4gh*w|bE0=os{n*iByNrYU&l~bN5ud}*_CiuQ5K<^3duCNwDgHaWef`b>)idOF z;(CeB34=efQX0QgCwN1%y-ZP%ROyLb z(>-`nFmaYp>;mPjF*5N}$*ECvTa%_e{~5dG*Wq9_!#&h-M8LYl72w=Ly;g-ZEtnFw zehruNPok++G(;lNB#rxXTJh8-F_r2UGPUSiF}3&>FiQn&**4+6pD6O#+vpR>$EO}I zFUGwY;U~|sK^sgDLjAJQ?A}QMInDSXkk!mYD9P*vC;U3y6k$8~XUVu_7IO$Om!3B>$Gq_lZ9d~y8?{GfjnK?ybh1c$RctBrd zDsmux<9}1<6YRX+5!NF80ja172PQeT0GtOb@H0%Xw622h980|%sH-X1gXSh#knN`( zx(rIsDRicXn8XysF@DQx&A2RR_)%8hXX9yw=2!KstxN}6h40Bu=t zp-IQ|l|UNzWs}?KQXQ>)6-ZBooA!s_o*eTVJEO6yP(MZxKk44zASWt-H{vyj$A-BJ zgQl#EMG9KTP8U%QJZKs9i=`KGhK{#)^LKlSO;h#l8IWkhgs>r9XzwBh_4sDZdFad`1q!E|G_!_2H(w(OiZ`E!juD{B!$}TI(nd)o0kuJEEO9Jr z@{`@1d2tdkAkz)gHu&i>jtJo_cpSLyAE=T<*DF$aF@fE+RK=niLUM}iaBv7vq$x)# z)gh5FU^OptkyzPK1>ll*Gb|#_B;CgqOv7z`XNXo~RwwpjZM-bV?w=iIN56yCmO0`6yy&{@h!t>?&%<-_Ngq^Jr~cRrdCf_2F6v*#_w$HBQk`9Q&a1Xzg{% z?Y(356FAy@A8-Y0!*~C*gL)^}{2bmjYoou7Y1<_ytC@vn(9y&gs&qhkdJy8X_Dl_C z>cQ;=Tfy&>+_QS6+1W=Z3(n#P8WjJ{T;lS5q_>Em+zFwy-mYWxbCTzkhZQ?|5cD0* zU#!rf&i&HO`zGd%z*;SJH}N+b3;$|g%&`p4mHWUcCu)tBE6GgKX_5Q;`<*kg0hshNwHWYE8i*zVx1}rnItYrHnz=+vQp;U>! zjA0-3b`6{)(JbV09|h&%&!xVQ+=Ud4g^^xulp~8I?`o|*G2W@7w`aHwE}{@!^L!zY zRjyWv`sa^7tW7y16GNXwA?3D0-IQTWccJQa9?z!v1n&+7p9h_$FQa}T$HD|f1I5Vt zH(u#q6(>v1ijr9(XG4~J_-cp2TkX=6mGs{ndz}txW~I%_2o7zQ5J0R!6V4Wl$(@Ly zW*tAepAw3Hd7nmg$MNCy;>gp+Uf&fW63h%%VO`=x53~z#17SxG$nNw%wtIeD!U5m# z40Aa!(A+Ozs)vY@cS$FY3#>th)`$Ldh@u{}hM%pC!%`u1nAT-;ZFxb62v0-SF6{b^6Qfyqm_~^;QB#V0f}tyy#bIjAx4~GO1)Dep)+2X{1>k{q zW}?Q6!e1FKcM=P|S@&AlDw)?2y7Vnatdt%w9-hB3NOPqYz1iyywFJiDk z4?D*-rXk+wGhRJnr0j1%jrpV*2)-U#ySBBrkM6+sWDT_@=0Hq;*6zan;P~lh$FQyY z1d0D}2!sp&#% zYboK_$=r-p3Wb3)QAA7~*^TP{#-ckQ&==9JVpL4El14GLvx+%Fa;}776doZrN*pqK z?8EJm+cs$|$%T!%JUme2P-q&x)Xj;*=xGfoIIr!eZ(Q;SNTDFpXgt?`b&_oP4CaLyBl$u)h*{2WGL>qN`t^`_#Wip2+3%U z+B)%=e3~BY@Y;0PuW^v87Yf{rOKXuP4!97^-*{epLgiCV@W?ih?Zf@O()JM{D68r> z7ywK^5djruq~vTj&hp%vXD3s1u3gU(5eRs-`%Kb@u(dT0n~npxGAr(M!QZ=0h5gg+ zn7yne>%-i>8EE#`+lV)&{nly%TElGsu0G*`B^Mf&p>CEFslg97BGwSb$7o>KCk+d{ zA^2dJ*8eE;ek8cJ^p{62mIv|O=Z=p{bfD86IQvu!Z8rP-iH|vXsFBt{N}iimhZwBb zgeiTt1Ri8E^I7p>Puz*2<8di+whZ~(l32X-rlm$x;G?Qzh5Ad1{>Lq07=ABl!wjeb zo-@vd=7I14xXBq?6KN^R0oX~>aEbF7DnDq%ZLDI~;%w}mJQ`-m?D0UdU)|M7Of?@n zaJA&B!~jR_n6#f8Deck8QOrAVmmH=onad7((o7OOmWwD>+Uo-+LY- z(V;NA0q9Q9KYCy{z!iuEJ36!X(%U4y!9j2^N5Oz8=bXcMcFd^9iERuE3sxfps;ENn zH#2tzq}GtY9OsV(EKj0(blsocC6p+}u9HRiwkhQ}*G7ntQ9rtijSuNr@S0NA{Wg)E6bQc%ll=&P_;FFa1Ddwj zf{+kbC$GLe9kk^LrXlTzk&}ZHzUJ7x7T6;MZc6o5mus`c$Uav1Wgc;NL}FJV>w9T| z6FP8krR+swIpqz`*v^Nx+jlu&y#mm3&D1iX>IXg@jG>+F=~OD_0c~{lsvrP7gEH;5 z16@*Ft!4#_Z&yJxW&cPE@PDdAz9XS}u=yvq=Hyu_xfdvPf;7W>l6SPdd{-NpOtK<( zMSaO?e$q-UR!wG$L;pyYHFQL*f&4-?c<%Dgmat^zY|AtjBeD$XQKW*qs62f`Ug;Y? zfg$3GZUqQxt`ggD4quNpe$7kzx-~{SsJhWYo45O@ik+^)T4wqgO@T2Xbj}18o|E+B zR9=Gd-4~C)YRWi( z_mO_l8#=fXKyEfS&oP$c$JRG?sU;QGO+nz&Sv|9P|DkX_M`YCk?YSr;OTBRvVij_| z2uuPlqvM-f{f7o1e`x@F4X0)aaiCU6&!EV&oNkQoG{DF_;Tjxoeh$n3$%VRvT4^96 z-DAmlkXrY|+tt*d7ir8{Me6v*w8EQ}G!bWAxd6~KPZUk_HQKHL7KnL|mtdhk+D|5~3;cyiHIk%AY!zrIoM;M z8&TXbg)x*YSQ-GJIlU8*=k2~Oy1J}=JjpkpZvEM+hu^B0)Mew9)wX|KR)2ai4DTwM z#K;X@yNiIsB^kVXK|Eoi3q4dAhOVb~&% z-1G*5Jwd2d90RLV12|MeN)OW77nce}d^(+Bgo-2kobB-RI*Pma3mZm2uqMEv;{U`B zWSYxs%I#V(Tt_IipLPp4gx*5;mzmomHcaQC)c-wNXgZu*;$+a_y69_K-)kKYgK~?! zJQr6YO?Ky`8g)+os#Fi<8zd`XNKM6qoUutBqp*gO~Fx=&abEx!*NFJ_q*{+55$76 zd=Y`g7B|s9Y8jPoY_z{3%BE$e7{!f6&N0b!4Z{>2{vG@@#`uvjnix_7ptN_IB8 zQ4XVkN;{;UuH(b2E*YGIQ_(kdm@G9A@6$%bU1a+g+&rc2rEde{rktUZ86S4)KnC8I zyaqP`E_%LK%()MwxRzKu25{y8XIbRbta{B_9LMC!Lr>ii3YVg$*Du}r<==f2{_Exq z5JmRQFwKIbeJ}qh?lggw5;|=gZUl9RH<~FK64zbY?h!Jb1vNSvhkVM@Tx7ca-Ca01 z(lT_%f$vWW2l^5}Gk6zREzxs*O$vBQ#w1TF1~G?95`6j6G&Y7f3JvmuVxbsVi^9gj z5h3XjB4swJQv0P~TH~QaIfJ|dRaj_;8eK+&RqlXf^{E~bqz@piCc*vuF`=5rk($^9 z4-P8B=aZlCCFZhdAo*!$(o0~HXV|c5+mgrr`T#TfJvcG^$@lP=8x!uixHSay95RHl zxQmqE!#up0qA5itD4S#_Wl=qd9xzkjVH3lv}N>5=osOJhQ$da;7iBir!91nYRL#q5##yYE$ z$V42;6`ThD^hGyc#A*7rTx|6nU3#9SSZy$yv3S=8j3Qb~7FT^@ERU}W^a0B4fjaw8 z8DcRpBC>x#o`aIAlCF(RGehMMH@uUkU9{d#EG(vM6W{(peh-O)f zuW1`?Q?v#!%mO(La9M;?I)3ajTI)6k?UtC606pY(t7Y|)G$BPm4}gE#XL>4O2TT@* zj;Rstj!CJY7fKWBn&XK?Kp*Z~-U#yRax$D|oM$FzGQ2`%0m|0WQFos1TcDvdJ(dq| z1=!d;%qB|C#-f*NtD}8x8Jnx0GhZZL5W}dGNU|Kz&XRN}5-t|v@ zW|27?r`j$4V(^nSX=q)lCe^=G4T`L01)M+#0kl7ldjA0hk9hxCgY-`-tcTz5ZQrF+ zXp(Z`;wjS$k$j3C&CsO@>C^VV6-YCypF}}Tk^@s0)u8m4C!4-$4_HA&Rh7mq@#Lk%+*&9yhRF?HZA~0jzL{=>*2M3*GtoQL|Qd zsdwB$*Fx@)ndF`|b&oBz%WysDeZ2y0Q&{=j53CzB3Ds12=U*#W7$yMup*wceousc$ zB@t!Yh_4f&Pz=ep1PRQB{fPhXnc;tsjsp#242oN}4YRCqh;136Unjtq%nIi?a!|{| zB*;?x)v>c`)u~V=XdY7Oqbr+CEsJU{@C3)gQdaVUJ}~?A2RpkTEZ6u$95=WYiL<8+ zzbM)(t(bL(25$j~P1(Y)GnJ5C=$0m589BIPDrxRx^@iZu|!(zTqmkgPqh401m2loQF4zpe1;T}*!RAQI| zr5naHAUw!ymPRqg@VKSbB8FL85nK~C0spW8!M`MlMxASt4(G!5jhF{mvl^7_m;&y2 z88JNy2?5IL6W>`J87}+MoFunO#tWEK7G=^fiCO*T9#Yb1kZck+m{m1>lT77{xk$F* zmuO5Udv4qW1!O8}Y&4{iKx91nSlOQ4qh1}RyXdpA!E6-LZ3>`fT~+VK1~+0FcqG~^ z&iFpOO^rZfO{zJ~Jg8MXhF2iJky!%++4i-lbO-9T&79GL#d6&iqnc+~6> znP6Qs)L6J`8%u5R3E5BLv3w@|6h`y{7btYtoc>Y`UlE+EIv+>`2(^n$*N0*XWV7_^ zH@9lc11WOlaTXun39e-K5{K+vqvT@-As4ZV+C;1-6BQFtgHwex&lDc*A*R~;v#{x7 zfKCv95bE;@jsHt%?V+-_f8ZwmUY4K?AGL)D<8liC=6<+~388lEg|9sz_c-KPMpV<7 zELc)!1IN|B12bUcFbWfzOvKlQU!x2N#HZWL?-?xAHJ0Up*@o6|qf(wv_VXph$fVFB%mj(M`6j7lvnm`4cbd; zKIKtjeGT|QgNJ4(?OSnWblUqPa%>%+6M6~POIwtmi5*I zz?Z!XGAb9@mmx4*2bv3#e@lv_PdJt@m&_tL7L-~Sq(dOU4?L1ZItSOhriF( z%uL!c0IV{xqjxz?1kO*H^nB$*XeuJiIGz%St1AIGFrkA3C1Vmr?K*7@rh503TGyy*Cc+6Ph!KEbOn>9h&bf&IA0KB`5|PJIaUvY^v$P;gKRKirditB<`ucn z_Tu5O_DJlJUpHabk)-Ps^IW4QQ2@BmmM5lk&9=NQn6c%pghIpJx_E;yV`L>E+@Fqw z%!UtGbZJZkf)9>ACMgPR>n0dLsX^Yrg}B31*ho719NpO>G*37*mQ!yKYnEZ1Vqj=H z`x^9;!s2<*&ztXf*F--jE(-@BPH};{oXL$I*;OZ<;~QfKzHMM8uGa=3{5&y;`Z<{u zM0T3C7mEWNm?JisQ4YIQuNqK8;wdF%-q{OO;GA_O7tT50y))AG6}H1c{cABGvzygK zcI9zTClJtKxB5_2iU$6mcE`I))DCJW`9yRPHj_g2@Q|%S+8e5kr9i65UP+vul(TsI z*b8?3(Q`#opmRbRBJ@u^VUx^!!RBC}iUoWt%b}#{24IBu^`ZVyi5JpOq&z}aFNq^j z9xl(bShap9Ae>bXJGLZ?uY}HY;nScPLZSYqJvgGVIeVny^csnhQ@~ixRC7F8xvcF& zbWPu}R0c%14ZBf0rm*=)-=dS%3%9FcTtSLJ<768$#z)&A-(2)7%S)F=GcVWWLiE=G z2hlR~dx!YB zMq>!Qdl_up-Apj_yaht_a!#GlVI%=bU&7$0HV&G9jd`h>L-j9~(E%qKXcQl)1I z<8__=9cMBz5{tYh$3a!_kI*a1T1>3U=iR~`8IEM0?-)^BUG6k#o>1o%arURxUKcG; zhmXk+KH$TPQoh| zLv=1mx@lcVaB8+qR}wc&(NvU4c|TYfyLeWYJvk7C=j>cO3t>HN&9EM<%mVIexX;82 z{#XixJGlzWBbJ-;<_>m&^-MpMT8>@ej<9a40HpBB#N`z;zj!o=olnehIt74$OghR! z+6Jvd7n#e{{N9glrYPtZBD9MDm~eC?ra~#9+`2f;_&ek?4ln)tJ5%$1*jgxkV4ksv zwOTt!-gMLEe@URcfc?kN4B?z`^TB4Tn>I6_iRrz-@Dbs>VAqivW*$D@7Ogl8&4z*Jb4kSWcm&}Gs6Y$>+BF#Hg+FhsxxdK@Zl+zW?a^Z$; z$G$Hm1rk&|b+(?OB^`R8NNeHJXhww=Hv9ku8!Z0V;yNX{_FNG(hJ_n4EMz!fHK|k@zz>e`-JANaCI7 znE6Wsyhi=20ak-EZA}2e&sYg~9_&W5B?FRjGAR!OT9ItHNgP8v?pw1m!rvB+0JBO- z`($cXcIG!y6Gu}Fq1Q8s>nb+CJIdR{Ac6%QgwwMO@tdpmAn%jIz?4c;PaI-M_V6fD zGs2eq%IhpF^%)d)pRQU2AP!Tyn}Zc(svr)xv1A!|g7di&+7_R^6U_f$i%WJ;%k?BZ zR}PI$ARP9N@!d5Obiq| z&?jK-w0p20xz8<4#B1G4+bmMoMUrwq;{@bB-uX3JuZ%x2s%H3MSH1-eZ0~dpR=o!; znX_!f{pAGNaQ0WGBAWVWrl548T{NsKu$q z2UmpYJM43b_c&vHiWvCE#-ZHC1e^-Xpw-!&@>pJmAMJS*-RGJd+;#5B#iTDJCFwTo zHa*qMBkp())3+q)=SxNX-mF6}wM=O1%xnOLtSi*Z)~O*oO#Q2c-fy&c40JqJgW(Q+%g+Ld_sOC&360RMcy5g$W;I6n4(!uaiVh zl{$}E3zQraG~$dR&+!f9Zqfd7)whI$9}`H{fPkf@q@h?TTjAzgQT6>ump5EaR4kNS z>Q)=?sLS;2J-;6Bhj#u{kk3Qi-^}5Fj6te;nO2HslgANVfj6IVCF^#Z_Qs zEiOAs?qg~XiL+kIRLre;Fz^S)!c3DVu0NR}=X}fEq5BVWdXNd00NxAa1-hFopuc>D zs8XQI&5xY4mK4m0@MA|}h)$`&#gKedty?7q8_ObUHt@I3IpOytv+=8zYY)O)sT;Zc z2`p>x!OMuZ&yy-;l5Xu>X*D1u1iY=D-JW^Vfp3RwT^+&?89p(#Jc!T_fNYU-`NJsQ_Uy+jVQ094wnLTsdE&caMlYsHwz< z!;eW93sb35e3*)YnK2`)$mUwS7L7u>=!sB2$aE{!K8O54>l)T?v2TR0(dRfP`?#MH zeVKPzKl|nJR>mk30v#OgQ(*q=rqi_-3$WeAF&$Dcx{x=dX@KQ#aa^HB?TntSrkR*V za2XF>cl7h6`f%BpwMo2=xF)$>IG|Gl=w2Tu849P=hUc-W4hpE*?gX03ndykgFPp(B zI!^5EUih~#^nZ#40&+-S)($zGvAc21Npe&o+g0t4_7HYfO&s(D;x09P<%$;5>cxO~ zdrc8mLTu-;Ku!5mb^=I^Nf>!ouz=wFdevGsAim;A`hT-6_$a5mbh-3$W*D!dF=^X| zo{4kFaaq}NI&!f}l|wFUIw&r+WHovbXxRypV}!GbW^X6m4l};-z9fz1PI5D|di2*Y zY#dbRi{*50#Y(=cGJWMNra9c{FEdL5vCVh94VNNci6W^FGhr~Vu5&h;G={t*3`!Zcxq_TR+coC>M_C8>k#AwzV2B59WJeo16q0vh*`nm&S+}z*u zm((2Q`_fV+9U3MQ#RK5_2(H-a*E+ziCvS0W^7iV|cygWMV^ApKS`Bj&`oe3e6)<;J zTo1Dqtf3^PCrwo0DbCF~RmCVA-wAJc^_{Y~f9BEOYMr2TFSGgre15%lb>@i$+_C}T z5~Pn$Y1sy?2#Eh0w{9t3RPyYGN+v;esKQtK4*vYpIO7#_8+`n|Q>CHtxs`VbWtPK~ z?AF?WY)`-r_zMfs|8);BW}%qirrwntE_1KRVGr8FE$Tc_`1i1T(qzjp9%vy>N)Agg zspIbleu1suEa&4!jnPE6BJgCz7CQK4{XpC|&E8w-gta47Z<8IpwAO22T02+aFe%0L ze5NLBVXZ8L@6_Y51+CUbF!1V9ShuU$8Zk({=h3ca*mY00zALaV@KAyeUe&!~A1w7g z6$wu(kgc1k7qWtwTc9jLh6=+x#XkjOa=>HbRZNFqHJ z{znN!{>1?zLI~;fm||@nW^`v!D8g}a=78gVUTJ3*AV*vpQxK-n#7pkN$ArWnb*!7W zG6BhR8DVQTVqx7|)nFPQ-Z2Z^)UbZe1w-3gxCurMXmB(coID0W$e&txOc#m1!znNh zAGkF_<8@eVyP!f|gZ-q$Nn^iL%Cw8Jj_Vns*SRo%$1#o`Od3>&Jw&@wC=^4J=T9py zl)3g_ZCnw8l7yY~)#JipK7#rn8TW!?|FvCQ_3N;_vY!d1wP(vuA!s3#~DgINg@xK!Xv#)?f^IJ*U0w_>V#}#nN zu&pI=mzUMQB`*E)G^T{Yh>8i^AWpheC*abnC*)T5 z`!Ez?-gdlgqTr~oD{9XkndNMSnhBjC+L@ifUz) z3-0Rfa*$6h8mw3zIE4g>B`S)hu9ZD{k=t$}^(+)sF4%?;WH(e6X~jH6XWpdLd%_{g z=v3qm#c(XnYJisVYjE5`bWQLh(N_-jUGyI+i0y(I!$v@_jmu#NNf}wTn&ir23p?&% z_oEz;yJ-34VTFz9k~(S*Pke_ID&EHrF-(&F6DK&uYq*Y8>>V9|uNSwTNNZ+RA>lV1 zo)T=1&J!q1iv9EDclSO`M4u{=Net9)cOWxHoK$}JY-7bhC<}I`;Vby*vujpJOka z_f!Ef$WhK#>5wr;6++=|Mo}cq)sZBaNT^3KMj?~=h=_jYW{UR1L)yv8!Nefue6F2y zY~GFQT2TxM9O%$bw?8y!Qjz~UIs9LqhtSH5xDV@#44={bZD1N73l;@Z_;S_*ESE4S zO_=%m>w_=^E~U;|u9z;6x|Y3Mm5D|brZ6M19y=#hj4EA_9z91m_ z;utO2j(qTIyjbuQ=XX+`U5~Ko1wjv)>vn-OH_LL~n|i(22q31c4r@JU)njnz**8iQ zIvx%t3j(Ux;Yt`nRcl?xD4GM!a@13IEhc8av^)xt?}f4#8$QA!YLi~ajg?13?BR`k zgU3|pXE@@Eqd1zb8YSD09|qCOxiT`9;3m702fQYkq3fW_cSO|fxakRu18(j(tZsAy zCd)&I-`&-=DLi4nf`fMd1_!6pW+j|lzk8H-Chzmls^5&medB@o`gTaIn7>9gCV}xC zYCbcYtqL2f%(Been9g~BXgH3xyRnI5d`J1E^aR*27_I1?d(Bv5ZJot*26}`xMV^e| zr!UezRJTM>aNlc^2n>@fHwfM6a_>oNI2g9+4^4VOGwN?V zDm(w7Qg-zL%Yj8Q#4dWfV0vtt`%zzOM5{H{>eWz9aKd2fd+{j;z>2^^m_=v>0uBON z_Pa$N=lr0%sOzG!tng9ce-HgZXjA*^|_^&z1+O{I)UfDt^VmhGF(F1WjSTT%t zK1}`oMljRSfsHJOrqVWIn(_c%ILpp&U!#3Sf`rMM!f`TrQ9No2?$8`Gt5jVEWl&}~ zS4N)26CSs_+|gDDS80?#y2L(KjL z5XKSWO?SBGRJTUuXx_!OnUYsKLC%Ur2~=CZ%0LH%|CM!POpa>?9(hxUE+m#oj`S+7 zNFKPZxsN2FhN55ZJ2dnn* zJChW`R;7dU&91@d~F^*%g7PR5$Efxl%rP3#HWwpO?sULl0&S1fU4~ z1jI!#vpeD6-o?UdbB?gW(+)epwKARSVL)Fw67>J_LM)_{xtdbp)PlIOq;zn_FKlfi zw@M_4!)yUW05g4$GVM~%;*4_fZ}5^VEYz(_KiQS*E=u09t^<&Yy=pXb4S#`=td-i- zA;75$@Q_??U^r$@Csc$H*;=1GQ#mdUk#<{00@Fihe)TN@FeZS}7S%uWwGO1wN&>8caLeaiSF;Inv;hOx#`afUB5F zzqXT6>TJfyUv(&S$o-oE@PZP{W%h0Q(G=h4o&`NX-4UlZb`Ddmk7DmH;u{*yHjMB! zi~X#Q2s)*Ddn`HI&CoS`=+|L898NHedVyjF=E#|;n&;x00WaiXz_w>5S>N*m5H;JC zylgX*Xs?a}KapEPdtzs1idmUIzjZWo091Kc&uv%SU_Sfdq>r9AksI6e5cgMC2@>nx zk9{=RcpLnH!>&$dQl~U4}5MonoC1} zok9=_^}RAjs*kxwMWl zE@Chxlk}tni}9=vo~;!l4J(lgIeYTp#EEC$>kI^%sv7!snlIRPleLec;?MPNWU-wP3QT zX9?Mnbf@$gG*pBKn%TC<5Iyxgk|Lx>NXVGnWL^hYa4xAx5*_-$ z{=S*cWC2JHVjF|tS@G)JDg&Y;*I~CL*74hW_?zS2kXSYNV!odX7>p+^F-Qz?;h{~T z+kj@T8-45{eXKTx<~olzot{i|UCjly{vV3RwzMV!y*`84Z4r;ro(Lb6S;c&hnCzw> zG?`TCVq%R|GOp^#6*FMtZl$g&!oYFM&If{AG8F|p$-jYSn#F51cog8u=&JnjeTjuW zzosd8rk5cVY9C8)N#~xxMW>72hTcwMpdp5HISLWcD{SdUgO=k4a*O#sb(?d(BEQAoYEiF>Qc(nh#Ok`q3m%Y$CA=bx*1H5xHFT7JtXx~f1$8hL z5-nQGoJ;q)x6rg38p4sBOK@^fa?ul_FhEh>l##Pg=&_C_T%=_`9|`lw=C}qDrO+eU z5^9~;Ir3uj!4j*7o%i7=PH`f_+l78<9B#s7-qy-4Qwa4;#ysg)Xy6QN7Nk5v9ZYF^ zGlKS65O0ekt@=uJ{x$3lnFb6gQSBE|G(SY#tRQ=|+{A#n3omEjh43m7?&fY z=2(X#J$SF@3rBzP(r3IAZ1}8a0S+BvK&K?{e=Q}c;Q%Zj?#!=t14;ys9GgJ=sX4z{ z=~sH-ovpM?c15!`M+G)f^kwAh<965j>Qb0e_<2d_$5;Ip9t%<4&}s!||6j7ZF(QgE zXBjMm*I>GEeLt$f`eFFs>unj?4g?zg_j0udnO@PwazVTJY((N3t?t3tyMdQdFeCEnnP3iw$jA}0MqZ!##kKA`1-dn}Wrf0FA``;bj39#E7&gVHd5Dp|m>oH6F~0~}DX;Lp}Bk2yrd z|5=M^KXl~AT|mIP=+kKBl%=5bKep1*K|X*m<@GuJ1r^`PAw+w0DNYIHp|<|#lt7ra znM<(_Nk3O?XWciguVq)l|j8q3%VbLk)$(VH}=1 z34$k|KfD0(ZB6rV4AR}b0sQEyKBEHBa%MY>OYu0|>b=|;F46{4(!7H(r~yT4Kg&%y z6-liWqT*AXk_(k@)%+XvVWY_CGn5ZtCF2gU{xY3<#gO`%t?VaO;Ln~UG9ee5&9MS95E`LAJ~VV7uV7-Jq8 z4oV6JkXb)W)mTX)yRG!SdUPs((56eDHvz^mBQACWa>S}?X#Tu&=Xm58Jf?h9V@+x( zDSS)2!A{b}hJ|DNL!!tk>JT61o7_$Dehq%BBUoV7UJH&$YGRx#aY{2MNgO$F$V8yy&up7^)3` zmHjfj12@70w^TQoM)K3~TD_M)NC|bS@1Dxt3^%9C(az3oF$lLNTIg($ps31U!sB!% zsHz%Qrj*sdxFS=r+XJ>HZ1@AKfKzv}gO;ZtVxvJJ#@%L};*|{)+OXfVGCJMFQ7K(K z{vCLaJcp@PXfRBP(x&gE8wXvCBS2{)Ty#y$IfD_RHx+U@+p0`4W^}1RF9xzSM&a9v z7fnQ7tWEx|Gpahshb5d;i6dOBymZbNg57WY#U zQtQH<yL5$`DbG7`bKdJQ@%2VZ_CjtAWB1OQ2bEpir0Wa5kDwHw1EQw2H#tsId zO^X|$)u$b+oYDF48{p6R?w;8mL_jj%j#d@Xf@sSJ3DCi!P@e(7L^(=vuY7RY5vzde z&GGdsRtzp&(n0i_YUdchRWRzJ=K9;*ol~{4#+yOy+|Mb?)~kPiZQx~bqX~*#466=7 zXVW02NbRI(3U#OX{S0wve_F5E?D(d_Y0WRCu&6yEQ|VIrAZU9AYsaB&;> z-`vmW^rt9QmA|RuZ!&0?cmIMtg7&hy9&qtLonjyeb(o~5`ApIZo&GwTzH>a(ZjM-` zl29HJcr(q$wd(SMb-M`y7C5{?PR`lgBVDxQTA*zz8?k zy_KafBVjq&I$==>*0RmRON|0J#Dr|1AvDF$dp@Z6^b^qWb38p+>1Z^gda39ea%m>& z!(8W5iy{f_@A&SJA4r0qb%WD5sQ|X`T%0(UZq**9*iQ_dOV4@&7CblE^Vr2Zx*A%> z=sNUe+`dC5T~g#**7u5yufo9#-)r6XupN31AC0=Jf*x^qn=G5r~CJZ12hjm>3SIi$x@l}GB48gUol+qwx?%`gC8Q?H7_s>A2Y@bF@q_( z>SRIr5Z&8k@ncMUk25?j^q>fLWcZwK_{((aqP=mLieX)be%Y%a;=|GKk#Sri#?dSB zVmQ;l8J`z7w4e@2P<(_j`4rriA#n;eTJ^=~91lJ?6w?6Y&e2YfIOA6AD;;sfThAQu zGW(Edn`D%U#==1!gLojj9z*Mn^Nl;Q(;jdjh)c&2`qt&F>*_d*8R(Fg%ioK?Bj)%4 zfp8};bdo1>f4;GYv4b(V$KoTEqftyfwsh)KZxl~C^>4>8_FWm%am~CryaGEGrnwxe ztSu~b!d>fr0r~5mcPO-w$wzw98X$@CjwN#-j~)Lixbyf&E%u*5MiF)^ut0N5P6@%A z7vAsCjO5s+M4>O5rw}&ZGy_YMR^3|>TrnzM8RuFZOg@>z**&B6N=}Umc_btA6Ibq| z*o~v^s@8%16w=QWpRNOZwuI!!SYed%6NI2?+uf0|`AXz9a4Md8Pog_I!$cwIgzVAQjV8m2vD8iM?H2Ly%@2h(|)-wkFR#Ky2#CLoW#-#|D=E{{d2K}ePT{1Gwc>JFw zB6V8~1LsMk2J?N@YCy$N{_w%rRfNgCYEWjO1xg{729w*5etVtjjnlM(AdK(Gc3fo0 z|HecgPO%gO5{*$w_sY^qj|K~QGEW;OoLOw-Ou7pDsi}kMuQ`d=gjro!Czv*cj1b4s zO%w%8^uIxV5|Z;NcwYoYzR^P@CD%nLwUO<9t{4vCB|!|b(Q01M|InHw0X)RnDQfGO zV@L)jjy~%J4{794bYv6`+Kd?1KL}Ul`6%0n!rMd&4i0;N<)huy`#s~j$GX4VYh)|T z0_`3KXg_AXf!&|Wk%FTsvp@~nfa-LQ=3GTnkG8Y^Iv`9wy4!(8DfRr(v}Xf}2ktS` z2B(ELokdkzpSpDS2@7|CSQ0(*@jy%3Ax^Lvx&U0VrvAOaUKlqLLGYu9L=srjz=FUJ z$`;;1ql%nZ{YhH6D5>$2{B_F3km-jspHn(-PBFMZX7^uM$D?<(d(*b2gGsl_uQA9E zZPmP4iA|OqPBxQ%M{JgDVxX!e)q+xX(|^3g=#Em2X1dCz!R(EBptP?y%`@JRAJs;x zofN7U#30>t?hRFLXZh{q*MDddu%GnDs5F1tO7+lnG~t>`OqW-7vAux_ z8QQ^*{XzGrV0))Sq1b7RjUv*|Q}^34_8hU11KT6bGw#w}_vcJf<8V|)8_3dDWcM*C z6lqG}vElh!qi6U~*l*cH}>q1YeJmVa88ds>OEPA@;8*<35Z4(mHwM!NG z0#v?S6J$QFfkT(}94SUqp^6 zy_}@3-=?msd~qGjRY*jOcgKTFw<+WP+P_tyu!U6T&E}zG7k9~1X88bwK}s%<{qF+* z;|l`^Ni^IptIZH8jaK4wW}l&JjxD&N74au92;A|Md!)j1`cyd1lz%p*eBS_7S+6cWSMJ$uObu0DFbMyHSG(k)TcXqOK^jWNa0^d1Fq zr!EJ*E?9@ceZs_$)pW!s;%7H4tE!-AzW0fL4ckf@BH^E8F@2;Q-e*}hOhKz0)m5jx z<;13GW%N%!l!R$%lyhri$?ccX$GevFjek?$(Qf;C83z9rQKMW$-P(`ol7_f@f|73 z>al6q0;YZZY5I8KVZ78ha<~SE4E~`B{gx&U6E-*~IQ(~SJ|N`6+oc4=IK+6qWsK_K z3B$t|;VpIlgCE;=8;{Dg)H7?lRc7W2ynK>nc3q@#zx4p=G^xd>N;Qrd?gud7jd7?6 ztVSVZH3bgSB4Ng~oGlSv6-!4cL)<(p4582QlhR|(pLj9&^G|ru?6=L&AiGsWCWIxT zVXC|nG+IPJSW)Gs;}DICo)%t#6sII?+47I6o%9iM0Qc1z5!i)Gw|0)G#ris?n3OLO z?vr$yM3n7yuQ>@FDmPBL9ZmF-|BV9L8o(YyT8{i&$pSV`&U`ADOR0_^%x zoW+nO>hsh_=h^QG3w(j!b`j_a%SOeP#_VXGNc&4k?n|jNZp0(me9ja}0cpu2l3OSc z)lcvr-(K!UF^_pkR@E_Opr}Qdx^jAdBu_aJzEn?9@m7dJ^F}N>IFZMSfVC#Bl?JgMozqJUO1{Vf5oN!i}vUtOo2cAYO&D|FMocQsb^p9vU4xbbEo z4rG#r^Q6H-#FV*`B`LunmOEUY*^AFT7)OT`3TLp+2*2;AoyW%*8E!=PEUrrRZzKmv z4OT_B-}k7yj-C9`atqCdE15Q^}6BFvQv@X_TEnz9a9z?B(lOb9A~r-8T- za5e)On5F{)0S=0c13C#GIQSn1quT&-8)KQt1YMs+n0iJF5^!^W=vB(HJ&RPm8%V3g zMvNi*Xt+39Wl{Y=F#L}?`FjYM7J=_s>*QfC?K1u@D&4J{uUbPwQGrr;WY8 zBUjCtAU_gsNhFohX%{SDIkm)yTDV~^)i&ZYTiYAGtOTL>*#my6XwT6nCFr-~z+IH- z(oh9svM6LXcGf~0or6N%)u&<)Y+Q5|&h$=$ZXZt~bo*MhZhBgyDQYI_^oX!9U+~QR zl>_zk#EJY2ouEF!qv z{rKPghq7o}il@E5@y64IHAQz%Jg3aMIjQ9b-ZNwUYh&r-VQGH!kvd%fT^*%4qQZ>e?=!brf66?AP& zl4~Nkdma}`w_xF^l=Vs4!Lw9ToJ(X@!65NqO8hELCP%37t|~Lg^7{v>a+XgPIGHs$ zV>qk&H8diU>pxT4PU2|MbMf1A!`0yQAUAzTw@2Xk5+Cw9iN(`2kM;TU7{?;oAskKpGw{gNFmX!|B7H)n;*ErPFgADL8&3q z=~9>aCX_V9&a#YJ)odmTdM+wkh;iee&H+#SZR7prKN#%RS_7Zc9({delYQ5G(Jf;h_8rT9H@pV#C9`gHiA{sqoCpINR-Q^K*dc zD64hH4!^6U>5q699KbM1?T48|9P|dR9?#avl{z#SQnqUDoO5*uFlGLC7~Vfdl>lR^ z9Ym{TRr(7-IHqtS05v6UQZXw1EDJ6@vwlc+>lSyGzs3G*%RpnDps3Am(kR;2wi)q& z7|zdPy2y42i4f+F;pB(rC=>#%Ou*-;4-K!p-x&^Pa8w7!Zg6X%sHg=1bys}h!v-Gl zt`v=ck--Kh_jQNK&fY#}*s`*8Wzza|%b;J_a6U^y3TrZi6AA9vK$|b+7|-R%%1(++ zn*t&^M2J2od&ro*u_!wkCxAS?9ca$OC0_H2?a?=F0o=lfek;-Jl6O|w)iTFkJXaW1 z9F!dhV*C6?Y*BTXl^|YyVWrGrdvK|<{8#FjCP%lMLRIB(zABv0C%SSqu5#*qjji3* z2&V}JdegfoFIdqvkA)M<%!+9Nw09f-m=-!FI5TckLc~cfnmztP7bK(=)0;2=ky++! zc;n~utICH(i^^5Jh*CT`s2KjBttlB_|7nbNvBFRN!IdEECg(y79cl#jX$`}2k`pd} zT8x!tFP~GiN8P^OsrpKwt#!gbm4OkJriy5UN+ZRJnrj96QkA&N;c6yHv1NSwNk9`3zsMsDoy&vz zbBN1M1J#lYl=2;S)IzFl@kEqP_61bHBm?XE$he{g2b+F1f4*$s9Z_&N-O(q%3VGEv z00X}WCp}IE4KsQujp?Ld&-Ke3oJJ4Y$RCgRU3xVGYA0$mBtj3P$`rAb;ne(Ch12&> z#UBeYuxpzYSYX%hHNF9OnL)mLiPdn)eoiQK8RNxz7uQD#)uw{lsm?ZGXhLPvIA>04 zH76V?ijiSfC*?ajB{27pU6yPV5rkYo;T927f+nWgUvV2VIQdhJ4TtM1U{@`^bH}Z2 z3~Db1ssd2SrGAx4zTa~DE+^q4=rvat@W*rpK@n9aaKbD-B|ZUVD;G!D+^(1Ij3WFgNCM>aLX5I~F|xdb(;BXzy^8 zZK@4w(zj1QTU?FQz{PJ;Eu-pvcn!Hx4~Pa)H_NeZ-B@m2J)$XX*oc7ehQ!$~8h-WT zi~N_gF4bcFCHImgc>~P5B2i&Di<-mj4Ftz=%^S4Y#0HlmTyS0ZUne^T)!}SsVR*fl zMF`sB(%lr{uH}Oglno5NH^qk@g)}!F{2V?jjn^}Tf+-$g&X*AX(`!z>J@Pb*C_NY$ zwjlHz6HnM8?1jD+a%TXjwJJ`d@*v-jV_Fnwp(q+1;gXDETKsW=)AK5)i9(<<{B4>A zJ#iMQ9L^NEmBO5sMMDaK>n@Haq?+#NUV-E=DDElNYoT2W7j~+6%!cG+3zcJcQX$_zG4{*PD*hTa~H;ho*eso~GR>ZygB%FE?<~;IBub8J-9HLLypH2pQrLTgB!ISsT$gfWMy2lexgi{JP#IHx?L6hI>t`5FSIy4=j=Sm zZ)gh!t6Ti>MIPhI3hq;?4hbF>N8NnuOUK8#<9WhMk0SR)^H-r`taVO0_|IU!YVCq<2X6l$WNd_{oF{r|v}9;cniBzg~G;NNnu$Xj8`X(==JZ`*H zTuFt(uIqY|D4QriNOK&b+DgsO>G94# zowiU?1;KNRVQQIY-@lo_037To>E|0OJ^cul^_Oa-hg@juy26(02j zF`JvZS0NH|*pg#>tvw3jgET6nVih|4RuZj{fQVypv|aIq7B5{dEiZJ5w%&tiXYJ?c zI~8R@|KhI{oX8jZpR%6MEkrjY955Ryl3(#ja0Uc#6X+APaiAHoxN%H+X^7)BY2*D^ z6AVplcK3pascWLyfcWCo^d5zC$NV3LJF@^{J`9ZesgDiyo}}=u;?&JvkLSK`&F`+( zyx_GAq)@!d-MkXHFF8G0#E0L?ZbH5pk2(mk_V5}3WcMgP^mD9CaV}Z;BnXo8SeLT4 zA|0g(FB4X*%R$yGl);mbdK^4xHOY}fELyI9|91x1R=k6%8+IohOn}V!LfVAVnE>u0 zX_%)0=1~Yp!h6EBz40OEGTALt3AYSpbI5CCxi~##yvV`AnM!45`z>U|A~?QFIs1kK zNy3T)M?!?0KSy$Bra0Lj*dz1X(Ot=G7<%G&?mT`2qT{q}v2KBAQ2VCsF?H=H4c`$` zTJwOUxYp|MsdxQNS_Md5QM8!>u)h{;96mF1L)R!{X^JETO@!vXVDH6)9-+XGLp%t3T61Jk_1mm6u_SvO4flvM zlW|dBe6Jyw^4GHC_7Hz23`uc@#^$}(yt0TIipWiwX*^!6lFj$^MW7(H?lQ!=DWFPa zM*iOLm{zV?RLfTX3*qG_&|&KqM!caa_DcM(Q!Ylw=5E(|-7MKrB&_jX|3C(6^Z`cF zGe>}I13SRB_ay8TXv+dlDs{qDD21Ot+5MBjaxSOJZT4-?6t#=$83!-;WoN^I@9o#N z3&bX37o^F0lWTpU?P6#bWfV8C`)yiuR6c{S;tXN{cIf7Ar&aHk%FIOoxMd!yv?3>n z=EIcwD`9(@zY#68<^=<6l=La^asad0LV)?=O`K6aCP}$Gx2#@8K(y?*IFd;tgoTvPZyc3&6`yvh zWZ~69dFi_vJp#lSTuq<3ptPn0JNW|BfS=Ja1wY*@`bXhR`1=tkFHrZ_PGJ04O8r#O z8QIaK0pULI`OmfaMh+gY^&)q-W%;BrU$|PBwuu&dz!z45R!+TWiYejG+?40n>A!NAx*F_dq{3Zj~6(4 zaWLM&$V^ks8N|ft7aW1`NFg5m!bMagt7HESa5D_6x^&8j$B+BnH4$lBjuP-A1S=x= z;hu;?eh9V43Z5k6gRPzIxeX$YL~zkN21T2Xza&w30taG|@XtWe>f>G4dd{{=#;5Ot z)ls3ovKl&4@F?xv?7s%<&mv5%h!)}id*S|ZS?_PhRi`tc@9tND<)0t9M}dMrLvV*G zix3)A7d%kg(Ql49&x1KDnVjHJ`vrN?H0)4n&*0l{6HGBFS3JXe3~eU%zb0HR$w)6Z z-24|k`F|R5bi^F!4EWv~ge5|Q5jWETZ`}|RqVTM(5(nZ)l3yZ*gBEt|PQ7{&~2oZCU(X-aH zi*`SUjh5W^swYxU9(8?JjN`5{96ydu^#;kc^?h;w<7#Z+olJVHCOgt=gNrfgbxir5 zu2lkKVywgQ#<$(n-o>3AXA7TkfD>!v#@}qmY0Rn&^4Z~G`{)F`2X$PBt7~F!O{!_h z*pD}MzT3i&-Yx!7iQ?8ws!;iyfmWaWSy)%kyEclsORT;@;z1q#9YXbFmP(UtxHeG< zCOHsS`cqS_a&Wds=PlRw7O>#tpNr5AZ=FoM2i)cyLv>wqCnTm=aHT2B4fDX|y^W@O zlGp?ci_d|u_Ib_}=2L11$(#>b#fk4@u4P-;Mr6>;{c?hA;pz(SF>F!$wge^_8|J9GZ| zd2_)x@|xY8(;>{us2G)Z)TdVUz)=!lv}t_JISxbVd@d=QVmA0EW_di9y*6@p0+_y} zK-)@otcepMf;LA^MOxAq)RE0@&q9n0VRF76bwHQzun>9ci{0vLWB`Gwfx34HUfhGy5VJj|wm zbgn@oL`DM@V~RK1zZT5ag77c5?a5fhC#k`!sh;daKAfD4_6wYJRd4OCl#PVma1Cga zwz~A3PXvcFGH+oOKHg0Ms>t^xH6}xkWiR=^(5~LTgZ@9a{5>10z;7ZxzEajgaE@RZ zR!ujd^#*~n1m-o9J&RDxX^>tkkqyWZJ#2rp^7H3G^3dP6?5^%XRCBwi<=5kQnVbnq zi9csv#PizlcjQ0t1vNLspbqrLPTs}DNb<#xKEz15P-Aae2`EIGFuQUe)G1RiN;~+X&mW}v+l%)%q5u@3r1y) z_PU&0JY8Ju)$B?bD$telaEq_RY9_riuU4cV^5KxP^^?Jywwpp#z|YxlT4H%;y*=|W z-p0#oD9u9)d$yz~nJxuh<_FNSDROS40sb&Uo+IMHK&Qkd4I6w=wV|ycrWcVC2C0rrzcr~ot9nx2MgAFVuRH z@SzPDDX?hN0^rSe0rkafr;(zR6iIsXiXIr0AuaY>*_nJ6O%xK}q)`3$ta1lx;6O5I zh`Jv1BA*YU((3U|4c#8~SL;LS+CBCNa{*rCsz_$t-P%~&Cjj&Eg>zUIVVXspz*j<+ zq(lmq%GGi71Bbz*FZDnC5>E>FwMPUCym!b?ia-mS2O^iBs)Q(+J?Ah}>7$^nytsGO zr`^ki*r$qx9;-d0Ba`vJ_31EY9equklT;fIZao#Nc43FV;juT9@F@?NN3Zh!>lgSx zb?xPS+Sl(hml-drT?9^rXWo3;Qhkbo&Tc^Y4>Qzq7t__0=jDP$;o3sjE&$n#@ln6C z#RV5CcWIX{>GAm5FGJVC7Pt$yxsPE}WPPky2P8Xs9<)gJY{VSQ0~dF#;%kKlH(z##i8R zxg3WhJLBmJe*whxg|cFn&s_@|yr@ZRY%A043AqQsvS!oWUiW66Em2ETr^QVT``~vN zK}(EEqcAQ*Qj())Zf_&0q+|Kq`9nGxjX2Fi=vwSy%M~eUD10`*#bmfC!UDPeQ{TV5 zsmT9ima1S=bs_Cy5uzYQbdBO=K^#exFe;Zmyjj+n####^-cAfK)XS|_OE-lw&ZMq5 z+F4YTby@2siB;^u!xFRapmjIEhyG};G^I3WLSR$MbnG*SqmC!E_vkU&YT-J2E-zR_v#&xQx|-V!&> zhAzg^d*E|MmN85N(R8ukX=_ZqBTQ@j#hv<)AOa%H%IaYje-~`D7g&J6sjmN0_Zq?t zQNAkFaYb-&WLA>}XlIR__9ZCPxZrnu{dARZnn!t(beJcp$2~eWJP`PEw(~wd?#$fD ze37a4rc^fFFCgCj4Moc$$t0}tSJAxyDU7LN%yxu5 zC$Phg)ayMPLheOt%t)O}KvloZlia+vCY>}0c4*m=RjSw&nj7^!3U=vy!aJmEfIky7>9J%*@5z>-sDw}eK#c2+2 zUpvG&q@-|E+BkJj9wB>98gb+;sumG>@aUGN6-SygjIt(x50n@*Y!xOIg=lonYfFt3 zoP~5$0)GaQ2-j$u6eF#n9i^n~>Z)wE^}e}fk~^v_hO;s9i`(RveK1qwj0rHBWj)WH zPfZOdhe8-y@goHqtXPN@tA_%j<4_FhR5JWFK&}FlMK`qT z+YZE#^H8nw2*Vafiq-6qRx!m%7xxT)wmUXB!}cZiuU{}TnD@l;>;z~|VG+)Ro+O(f z;hisY zq8J68OA(6 zvAj>+k3WmNxc{-ITBtR>Td`4JBr(Zv$J#Y}^W6qF#KixFaIPhSyQ4Gzv(XJ8O%k$s zDV;mRFxy8Y7>CL=Wz9Z#lbBI57eV;WYy`S~f?E#rdfuLlaZit)^r7)OJ+UAg;GJO$ z{>KNSMF>2J`S4O;?r;xHG?S_qIj_e6XIA=Wx`-G|e6m5m)Fb89O4&$Z(lg6p;rE`| znstMDig05>3LSs%AkoYy-XLVw@sIqKhXnQ32yP3Bug-YzPQoNm!vzSh!W78Xmim#! z4Oned9e*L16{Dz^M)TMcFSuB#PP-8R_VDR;q1 zYY#AOcqYc2DfL`}nKlL&j9Ap`rv`E4XM?tsAdSp6QEbG6ZiH-BjmTR{H;>TkAg-5M zO&HOeJ-VJ8+&7HF#&qCsKU#^VnDQ|N zZ#;J^zU%vM-#1#Po&w3m@nDi4TA>6|?X*MfgBz^7T^1a1lknHC`c9Y!ZjZqK5h1HK$kjL?jA@*sq^!F%S`PCF zz&iD%z5azg5lv1ly%=tiFwAz*yhhv2b6YPdDa*>=E%VNmtLuXV}CZ0^%>xe%9BQ{Oj6&;l3gmqt68Jl^dJF zrD1f^T2}y<@R_*}_$Tjyb0*xV%gICB+`GEsjz%athz5RSjsRWv{nYLegB_$`B}~vI zIQuvrRh;44#-W0QFT(#Tp0UXPp{l7yqeZKkrdIbU5(`KUScPLP@n#^bzYXmbCxsaM z=d{h-V(Mu-L@&`h?-VJy%~C%AA&ZcRPsQZ0dlG}5QY z34V~rCvW^blpS$AXW0|o6W(%y51XGCJdN_JU>RimPw!!zv3JYfZRGf35fUG*eQM<0 zOoz%zhqcfyY6}W2iy?{$s~VkvGZX0;VHU42k1>)_(A%#)Un)I6wILv7Np0P&w{LAw zJ|}`8Kk8GjgEGa*Jv?H{GK=mPJC<7acdBKZ)%|27PZVmhqV@9GU%OJ`(%~ZgribcG^4yaTx%qdWS8%1Q2_BIAq<0*}|7vo^x)TLH z1_RhwupHLBtm2^>1E6$ zfJEL(&dou-A|HieTQ6K5bF6LrrIFKZi5|aAT5Zm31(Oolj9*QGTkL;rJj>26I3TY4WPsdnM{@3)!V=;zSSxqh;+C>#Xd@s*&6(lx3T-O|H`2YvG z4TJ?7&AG=A7yR2*PRWf+nV58tMNUzFiQmkY@5K+0#7xLy{KVYFPza{B%nEHxcOQF~ zY)#@r`#V`!d=JY^({cIW@L-*d9#&ER3?>b6LfgAoSd8Y=F;Y@hcNs?rTRSyK=w-uF zQ28IfVztTC)=6~e67DQs&)GBAx#&HzoLCx$btolE!=aNBKy!ATs!Px1nRi+g>lZL& z=YnDAFRQ_s)%!D`At)#d8@3p8BE>zQzX{ufa4TSi^zugpc0VI|hqsS3KeiU+Rd|+t za?dq~Al6954=2MNpQ1o3P8N8;rfg}rZd>?*b(_ggm-I0NQYh`rcr9i@>ez@L+AyUl zUeXUKNx=*t3Dk~WeQM+t+|x8W5S zSysPb8mWAGms!}+$)W9jF+4q3&_^(Kkl>e0l%!9v#~k{BK4oCZ7+B~1`u*@k24Q0WEtwgvm-GHz+KHTmZNJpzsw_jKoxW>@> zf5!-~Z@m9;UI~o15$VJ%#ONuh&U)TjYp)U)@C+!O<4TIIz&h1yYA0A zfwY3*StD_YHS!}){54fK&_ z7=oz;5fYXdg-`@O+e0<+vHBfoXmf8C2_?39=wONvhVZw{L9Z_=5$H8h`}d9) z6T(XXmY|x`h%i$Jn9_VV2dyVd959$9L_~x#Yi#5^JT{q$SigLAOARGGbEr?H?k{V; z6PHxIL&5AXan7q<5*PCq>vIaw=iHDw)u_0c8@k#&=C|5{o8#2`xwV5PRQ)}xGRG_B z@MJ^jHoFS{xf{Rq%BtV$2&B+KU3{`{nms#Iv;fmHpi8(Hb{u6rSS7n?%oae;B%I3^ zV;;B`UBy7~wQ`>{RJ`H>*ZsN(*b5QuR?j;M?v6vjs1g7&CoN4|%4 zamWlFZJPxDMeuOYh#L3S(Olf7OM?885QM!wWl@myDT1WC7J}JKW@Uy{s0{t47MEF6 zd_M|5%n;{#cBTAQF-}D!^^{BV+?T2=tIJm4r|ZPDJ2}R(VP|3|H@|9Ls72y6H5x2< zeBci($;-mYb#MXL+Z?9EQ!1}(=aUycWRQ4R?@YnxHM7U%g(J{2pN7#J^aHk4Wmfge@UiM}-U9WO97E z$_e_}5^O*iH{Hm)Q+2V{+Q02R+W$%lASz^(VP=P+D}cz}kj

ug0f@Y2us^24U2i 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

XQ>&>BRJLT&G$YeD$Go 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
2FQSrK zUYQMWUfc-+#rk^TUEv-0S`^E#cp6yoQ|p|@KPrxPRuL?#JfIvar1jR1NMk{6ty3op zAx{G8!#M%DwKmA}tMVko*^E}=h~ZPtcvJA!+^74*Wx*TsB0wesPg|LyKHE~tb5nc& z4L;w>2Ie=M7~0~iYfugSp3{90;nkCK?BautZXejn(bg~yo?}u0@C_S>NVQLorHCI#2_pRPFMa0igm1dYc>^e?|9KKb59+ z`pc=tzU9YBmmPr(wypPhzJmi_Id}ZAPK^`VqvD4X{)GP2CU2krTz6ehSLz*td3VbH z3Z35c@{G8=e3YWSVG?m!9fI=l#Q$AZv|j!4XN2n=MwjZ&>b=3a_;TJnB(xZZus)#< zoAM@Uv9p*GpwdSUYVjMYVS&W1AME6Qh5mrW|1ho10SB7mocREK)r@a@)hX}z8Ud!6 zUP3YLcEH=PMn&9(lbaEE$FFJ6r2fP;uST6W`$>fuJG5wU#POG*ctb85IEmu>V+LTKa;GngV;!`fLod0D%Oh|duH&1>qUSo>1 z!8;G(Gs^60Mipsu=Oy>uzZmC3lwt%Z9Z~e1IVX%$$r_|c>`xf2E6_npWktL;oiu#_ zoQ`Pv02psEB5DfvMB-XLkj76)=>eB!*#2zUj15O(6fULUhI?7N+wrxGM0~KsuLVT(%wAr=K#ll9d-b?rt3bGeXwN9S0ViEtDJX(2~>+YF>LUz?`{kBzXzNqfY zJ7V`NP5AmudRg;n(UPT8H9?CTXf?$zZje7ct+Z9is4$^Pk;*AeL9b{=L<_vla;#B=mJY*Bp?YpN-(TN@|m zgp!D>z=YwpNlCJT~Ad8jvg2Tx2sqsPTBoiGUEZR+hK=OB&1s`VutQ(*FI! zj}Cd}-UVeCxRfeD2QLd7T^v(&XxceF@xCHk8b4cFoA8)K=6^Xfa)a4ivM}@q-E4&5 zwa|KXr0?kzH9)L{m26N6=MXdd4Qc zdY)7oQnW%_FcRdMUxX0^+c+@e&e{qHPq!-WKx8vF82fV5d+SnkG?oIj|~9DN>+OFsGhRu@?wqVUixPU^4w`@+`tdlDaSB{o%)*IWH8v3N0Jm#cAD<_Uh) zZ-3UWzYSq@*giNN+3zy`_xoq0hF^}fX@ZM_0=PISOX85-p2N%Ax5MzY5WY(~DWF(8 zW*$=$?YS4C8;A`iO}>R}_U$lHNOdeH?IX-x4df!eD`<@8`ZoTSUzbfmY}Vg1@mt;2{F)b93lSGP;b@gP^*9#c9(Cm*->s7$ zQxa7vY-{BPI3-^W^G0IOStIKZ>6J_1uC*0ffN(ssZS*`4%v{3 zLa3YTaGLg(E-O~jyO@!ps@+M@BCXnX}v^Db|m=TC51(aR~S_-r6K zt~+1ZYb%1&k=?HHy1eXTRFmM&;TF6eqt)=M4xYkX#w0way!Y{LM=BP|=it?rg2>&A zhnz)ucP?9#*{}}VeC;=T`WBj@1rzAz+F#;ARZghentj<`tdjV|(vcHs{W9MM)ATM` z5!&*&EgkZgb!c=`ws&T!``?uLHD#4wr}H5P$Tn`pYxrR+&9gL1vMaaU23|kQF`sT9nnkBBgvFT)<$!R7V+cP2+Tk>&nz=RxM2?J$=?7Fe`_H_ zAWWXNBZ_+n5jWHH0S#=WtJYFDUlUT)l#aVnCO`nSI<+yOO%eRcq9W6ij?U02dw zw)u`Hj!)Na;FkNI=CU`_%et@cdVBf2Hgek8%X1ZO;oWgxnX81s_7Ep`h+jhtj}O4{ z2YCWSzuq!8ZUUGDBXHxN;7?%nAM2Hd-Qrt-UJWJISm8z6sb%@15?}5$m*fkI-E!z- zWn+Z>o{n{Y6_fcFFuWEuRLzd%pU*RSj_%&ZuVJ3zk;EG@|8E!BkZg^{B?Qhm5k??j zjEQwrQ*h;hiP(8wdk1+nwPW4)K>b1F!VhmEunG@k%&0^ZF!LdA>M%@oquVSV<~{vE z`^%7R^|V((tI(@&E~`k{)NfcWbqppEfzt_IXOy2KzWx8F>Sq034*BY6Nb__d_f7re2MhHlhu* zWq+9wb1JesHK7ytLu*yIVMg3dr!$22e=xA31mgWw#OG*?lzC5nX3v+=-aPxYg}&wN z7h<649BJOmaNHOimj{`~?-R%oKjJ6-dQSrxjREAa z2I(LDrcO1XN0>YyZWS1Of)f3I@G)+M8e=ZBYzW3}fL?_)BknPRE+X#tr@Dr=ZOrtPXv@>+HNu=YV3*&L+L27^^Ngod1P>YIw^a=Q^$(ULQl9!eic5M`(_orn+-*F3L4@fedhIvxeY^t=&xP zpHX{`MC;b6`lgXhF?Rk`ETTsG^g*^)R#dV%tVFSiChqOCYy(7sMi?-|4>>*~mUiGZR zLI9g!z!pYez+h~LU}P|HAU00oZ^LB>1algKgAF#}3^7I=F&Gn@a0)QUoZ=DzBnajZ z7y=fOHs7nN?&+DG*_~ro(iivpzWR2jr>Cy2SM`qnz0PD>qD9j(nM_;ssk^&-^Nt-< ze-?tH8Q|4i;KN*~|6xLX;7L8|uh2fc;~^$Y{Nfdih-K_A6IAH*bnJ}dA54)~W@ zfhTZZUBy8?!T{g(dWVQ{Rx?mnb&6ouOrh|hsQyeQQ^trXrL?J1v{*Bl%t(8uP@iR> z9_%uUTffN!UcvKv;mn?*m&s(>>#fxDgXvwM{wyoh4>;gTs*eeL))VS0-Q9a^9<^sn zN-1rcM2pibP%hL0Ch(!I-ubkUALbAo+yTRpcod&3nMI4HO;{>V27nJU2=-t?{ik6( zsaJ46SXipt{3fN8HX$0ey1<+{g{?ini@W;f)53j>3HRUj{{PFgC!$c{Qq_h#41A?P-eG5iCiC5%udduXgGRahXp(jo#Ce*39{sp59)Y#HzUS#ev%9a{Atz?_M-n8sHeD4e_O|5Pcq5LB>pi_``NEjCP``P$eLFB z`nK|9_!yV^$?dw;$CKYRT32TtvkdSoF7RcR4+f|A6hFoR*ASD?_YCk3Ch&{&zvts( z&ksWP`-x7fw#drmNqwCs!*@EipVwXIZ&OOCh0{ag_X#e-OBgS!FR4Qt zuOp?D>J*7M;IBQYSLC!a=Qb%?nYs#vj}YVK`un>$;O(Rp(AzcHrWLh7-^`_6Nle#dJt?JBjogm!t4}%5;lcKDL%Xn9jN~U_LS51+26v;+ zta|`>Ua#c&;_IC~!9kgk3jLsj*lmTZXxNK|E)oqvf3u1Hrs3t5n{B@DQM)jKmouU6&@-Hk=|kAKbFUOLGRFL)>oe~pM^Tj=m~%; zNt9!tuH>Ljj+FP-7MyM06M8o~MYvF(Yi=Ah>u#$<@2YiA9n4g6f{sH;Fy}* z&Dg(Hr7W7(;@H~i?6bw+Rll#j$uhQ{`Z0r%|IXgaL7&7WzTW`>OANeTis9{C;wmoG zCG>#-{)_`YZ|e7PcY^>1eNtv>sf`0Z%R&G9B$<4Z^Uw|eA0W;e2xoT%0XS`PQ7Xi$uAoNP;?tgF0#=g9Q_~ zCzI-jT;RWPP*-y>5uR5vf&a>-x`czekbydfiO`71$^LcqsvH;UdM@xjF7Po9_)Nvv z9yOLsfqx%4hHH(DPDc;a2ow0dJ9?S-m3}kxYL&WN~{VUJ3P;CdHBp1_>;K04`@j zT}l6Ypnt&u?{2dGIw@k1U?+-uXQ20JzCG&`%8K9w5)-@nhSpgF29^rN*voJ|UH5v2 zR(o=AX4%4Z?Rv6!n$gRoUQ53rlXhIB9;K7Dt8e}~V_*=$S+#aNF2nm~?YPURCyS@n z7+36^_437+bNxGwQh2lZrhHMD{xLr|o$kr?Em%hu#wuk!_1lzz(D}qlaHDKrnCCM5 zz~mW_dc7H2Vtllwa{UX|o1i+t7Z@lgo1erO7zD@8oVW8RmqXVlpCvI)SKs^xX70EP z)wMP^u+wN%%$m&?M+uXcxV}C&Z!9dmz^HjQ|>Nm0YbM+9HdT5MAE=EJEle_wcXpuZT zLk!L%eXp~p(3|xK^Hd-A^+FEnUTVk7hwC}u{0ac3Gr_B+6gU=-Ya9mQ0$(J5R(#r2 z&cUKZ)2Q97k6)m_Oya&(i;w%#_jD>H+K4s}$w9qOn?;we5A}MBJv1jYE*hUF2aD8K z4)~50ufuDqtS{4NPwJoBu?5#9?y-#A8|=iz;4zfPfQjHp?gxLtL4Ah_eAfe{P362S z1cxzya4`dQL>AOhOb&j&0uY<=ggVYfsNyOPg;~k=-K4k;4bOGD@`DDw&Ly7D0AEX3 zk=mN}!h^msR?1_1ctXXZj>fdqAghI%@B|@I(4KfT7^F37j~PU$ z59qY$^pzfqs*c95&UWsD7b*8Z#rUJK-C!_vLR~+>Gjs5w!I@m(J4R9v6FQhJ6Z*k) z4*Dq*oeKKoir?6J{a`K!e4{HrG@8waU(S^9Q0lG;IyOGV;sk!dOomVk?1>V-fTJo zoH9}3i}r+NiWbr@i2+FVt-&DoPb!1Z@9BCyB~xy!7|S3LhAuHbu*g7%JivWis;3Wf zpeylm(b#UR$smNei~8Z)qR-!*V z&}Taay5FG7-2;4y3H9R^cXc~~03RlhqbI`$%s_h7E+!3-)W0For$ZLD=Q4cGli?fL z9SW-E!)rA>SgLPvfom&7g9e#B+{@}R>OHU5F?1u)o2m>F&+nL{odaHDWMsgfC9hXu zkkianE7B#+n&y5wq3b+B+UhK=ogn_;aFh$JiWnb>k2f`Pf{=*RzzGt!v+bP1)*STX zUCC3#iN-So?!X1UZgoKmpf%5s1Fqvjofuzen(X9|#lR_M|6)G-h26b;@sGqfvwC~C zwc?h3$jcYku(^R%q$evuT(lee>QIu6$pF#B$>^Xf#Q_eu*5>(&EJx1jX4;t`KBiFy z5$alE5c-?^{gj;`%~N~r6C}1uwz<Ew4j(uxb}GWtwA3}q+bb3>m#lL?kfeVgehK~NF{Xo(Wy z5k0uBJoYugAm*U~orZb+Fe$raqGq7KvR#A898Y#e_Bk zUR+beG7nH)zy=07Xvgd99h?&tb2>v|7A4o9Y?k9Q$f9ZV45*MPc)XGsJ9qV+Aj$EQ zrBCW75}7mGHaLU0wkSOn2fZwp@XHz9L+aP)^vLFIC`MeLoyg$m>J!-nMX(bH4s+>& zZnmIAOJv(N4oR}4fWFE;bk}~%&Z|hl#yyS6u~+ZdTu819?FHP2WM?uqSPwm}wkQBR z-Sfk}rkC6I+nQC<3CT>0%`hY2UnhSb-Aj4MjHn{@x+sNft-?XMlh5JmO3&4v@_Fpz zpjH__45*d%|FW`@i{KRw>e(u%@E8W+GWfK?;dKvmkTRT|6LymCgr2J>^&f1a4RunL zjc`LUNKzO1YHZOWtEa?&up7Gm&6u@f8&StqOk}HMnWSfMZ!ce5%k$xV(|hKb#bg|B zQjccy7J}jlJkNAa;5U+!&=f`bgIU;ml+2DT)M+1{Pz$WXOT8Z1_Q^+J7a+btN;Nsn zlD|pzg`7?9NPpItAO#-Dd|XV03p|GTcrgQf!|H0`TeO>1^w}~9;BW0|kH2StPcZT` zjV(_yP|q-de{>9TQ2BF>#EdW?hA008SujaywGPmz&}V#=9Dg+##2?IC20_y&>qNzu zBWJ2H!&=emMK1K2vu6))QPan>p%^3v)#kQj5=}->+K^~&%`?jDg=6aC0@uVI%*k}( zMPadX3qxMM_!gJpQ`w&WPY{&eli{sKPw|5yCqATfH_y~iG#Q~zi84{wt!a|*j{UFBI+ zVG#8`88eu`HSU@@<%m%^;J3$l1{<0|61s>w#52Ak{idl$;vH2*Wx`9vrp3wjO+;2D zI*w)dqL&YU-vPmZ?I2!mL=QJW5A+k{El&Kpt$7Af$B}|f54q{OVk%E!=cwI;6AS#F z6^({QyDDM!WhV$_hE&gZfX9-k!33Vgf$|Wm3p^kHk(^*0hGvZiA(tPaqMK?~+vF6D=$nCmSj!XRrS+ue}g`Mdd2YnYOc)GzF>4jz|_4RPojyBL1VTd^3 ztCKqrhd8b93oyXjoY}A(AX%RdQc2_NvK0(co~AYSaFc%52!oI#*R?Zk(#*VzqUWGb zB4yZ<`cckJ0A1zSHwJ^0o{f*+b7t349|F6F&LKO4p&SXZLTzrM`#f z!`Cyjhqv(jVrU@o&e_8O-)4Dzb_@DYB(LAa1^y~|ZIY=iG6j;S*g5#_t}0?h3?kHh zW{&AP{Wj@{8y~c}$)6yd%2>0=LySd?`rMC!FJO@wU z0d&NWWuwXfCXwu<<@_-3z=T%+0DOyqWeSUI#b39CDlQa0V%|3r=~XQm9^zLnj4f_M zshdG+`a$X(*Ay{G>A4fbN2q|x(y*D=DZ_e8GO3n1<~F7kYa9k4vwpHqF_AgWd5n*! zGJwgTG7(^QfB!bda^f&YOyHAb?k&ZT=w%hZt&?IO$O3x!@x)DW=xroo5#Vlo5vyee znFK7Bo1YvC8=)id2N%kY551nMuyo7g~PzM>$+ARf+~|B58yHNP>Q@j)|VIE;4a)S#%2x35LFo%$5Y1FgvG>HSbQuZ-5b92P-=cMXDRK<1c7InfP`~9uotX%h zY8!iE8eG`jTYWQVFu#L?x|RdpMj1QDYr6*7F@W071H6;W?c?dH?q(D9_e=ybYf?0Eb>WY=z(2SJ zw1f-w0}5E7xQd8VqrAEt@NoK^qqq^k8=H%ZcZ(57MAOeTm6>INaS?8bc4vxCBYS^$ zDWo@QXDX~^Q%O@~j2V|Enxjo|4jt}@GJ=pFLWYM-g>p-bVZ6~jYCjJ80TNBJ5>J?f ziHU+;LJD;8WVm<|``98&72HT}Z*f7!ub!x9uIkC)5oHpI##mX}OEE9w`fci% zqY3Y8=G~L^wmlxT)mw+NCg|JgHES*_Vtl=BTC`{ynQyazXHdch3ZSQCag_Ti!sa;q z%koIMA_dPA>edo0q+v62qVM5~nhu}VsU9a1_ZSu7t1y&WM$ z4F*T3r?XOBO0u1e6Auoe*nn7s8X0NlBKU?U!*v9OCIo1*uDYo78ia$*iR7}zr@47k zngWW$RliSW*iv@))euO-l2U zChABjrMfBcevslLT!zaNzJ!Tn>G(vtnW zVOcVk9Vw-dM+qTHnJPAh@|n_~23h%^5Vr&>q?gmUFUFC%BZrXM&-e%oI#~VAmmz+A9b${Z(zo2Ew4td4=sMg1x|YPbUTbIUo(l74(nj7!o@>J#QlHkOh?Y`HlSIyp z+UW-iJy~2sVY3lTq(R43b3`YDV^s2Bldr>IpZvfkHkj)6Q%Y$^2`=W&L0!Xrb)b7; zO5GwCB^)zM;TsgN&2lc(<0eOHoCdPQped!aiBlLw=eeDgjBiHqso4xYdx=`B=DsB;Ml&xCq9$`(kWxJ;-YdOd^1varm_)p1fvX+u#Z z)O)1eM4C~aC#f#wLM`aj@e VfcZ}L$guzb002ovPDHLkV1n1-(LMkG literal 82746 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%0Du{@GJ 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 diff --git a/viewer/src/assets/logos/talao.png b/viewer/src/assets/logos/talao.png index fc8fb84936dd13de8faeba5708ac69f8f6831a8b..7e7bfb80a664b0ba1ec9cc4cc12c8251425584a2 100644 GIT binary patch literal 2777 zcmb7Gc{H2b7LTEdpdppiR70Xo2kCdOXWRLWH~)Ocfx zG)ha1xrT>E#n6kVXscqVd3aynd+V+D$6M>Id)C?KoOSl^oW0iG`*+Sxw6-+n=N09J zKp_04CWf})-1|eg*}+lfs#YI3@dTPU2SFelOFx9IDa_Uv0^v`zl9kN*}1?a0L%ZEGf@DAx4*6mXmlQ7ea!-r4T=} z|7GPPR5pqp6Z4KJI%Xio&9&P1ZvSSVfortJ&Yx8etOT~;=!zrSJ;JdS6j@i8Ur~M& z(8Y~j5}G;Ene|z;ep7;AmXvs;ItSps9&IwGqom&F12yt`E>B%4U&R)#R#tmw2WZK( z=;Xb)WRJ$5y#J}!$unw{y4{f)2J>CVOt_uB9xiBu-b6}^U@U&YTu0p&im-=4F}pi( zU&^40qlR2|Ks|DU(yd}nC}f9r z2eo&ShQ^PFvbbSTI)5}nNF1ign0aIba?)8klaETwe~5^SdFtPVQ}L^ft8K1s}S zYV$KPiZbEm9?VVC2?MxbV@yk?_NO|OcqBd=GiL;h2BG_0!bCpf)e z_Aq^YY@jroiSf0lU?kv@GTl*qN5Rf1LC~B5Vu2*Ds0^p>{00X=EbbUbhob&)x~J%zQeET2M2c7?}AgXF93ju=(|H@t13ssPOfiZ*8)x zxVuW3Fq=Nhk6&{9xuVxvU%M6MI#-Y0A|u<&HA$`e%z&Mf^IBq?JYb|i*1?iN+F>rU zVeZOgn-2)k)_E|<21WvFaFmKBkAKSGEdS}swdhgLpqm<4`I(wYC}~GXabsYsu}H#V z`tgKyuDDD&PH0bG2mD$>_w6lJS~nNMc=V_}t-4-&C&4Q{(SEmDzs{{DLVGe%9!tRzMf za;V^FD2~de_x>~y3n4XA1g_aPe5(rUm$Q4-Bzq!NZX5tGU_)HPVhTiBiGqkL;*JhznnZpxXR4MPV7Fq-swmz)#nN&9=F;?ZO|et zCoX6&nzkooMCBg)n8Rm0uIb8>7{cPrB!lAU#|?!hhzVb5L0K~dWjjO#uRVwnQEqLI zP81efw>X(qJ*FLIXxhL{vyB2S3$;4eC8^^KO@pKyxrxH(V7`x~98-E#wLos~I{Uw+ ziAtJRFUR7b9bsyqf-~Sf-MwlmOKKmj?le8v{m|gYAupCF&to+E{fED$^5wLr^5M^m zqy~4f zOOxXF@_@3oitPFg#xS9P`E>DPFMd8cQmk$bUuBYGY~7q;Q8P@?an5;0HqN;v}kfVs-;-hgk;{YCxalC2vg}*cTOk(W2h1 z7$`K%SIv?f^nYEg+r_C@F!wF=(1RQ(#Qf0WI#^ayS-3xtvuW2bO8%<%L5Le%d44h| z#(#EW!qvalrY05(Iohx4J!YOF@$u6}VE<*bGzwtzLK(!QluG9Uds?UaV|UI|top)* zYVqW4h3Cb`^N~QPU^3r*@a?c(C{8EoI z&K=K>F~*w42weZ%lVNzmd|jkkeWe^B(3b~yP#`U$3~oOHc~Z_sOFBD)BUeEA&*qPw zt8mR9&0NSB**+GY4M$5kj-42J`NBii=|iTXfT7>YdEu=Svh8`>wAy9VuY2jFom(N^ zAvfhAq|G3qy$>YMD?Ao!L#N>*Oy=jnE25&J0TuNQ7Qc9OH4i29du7jj z`cHlEcUM-j6rBQ#CF1~i$3|%%0ZfDvR}wpnKD^|J(xa)U!IB^1@2>MfND5%=yq5e` zTh0@|U3SCEx1^>^D>GBaL;vpD^f2Hu#T|9Z>G9+YW(uFGO{%DG)YLcCljVrrOh~%m zk?1*Twagd(LZX98ps5J|`}GDL0jCe2x#*e43;uvzoDIni)|t8Oo)wIET%+%zj?0^4 zm|XU|knI>%4?*|(G6(0;W*4NtLomY8=x$Z_{hr-v*5J!FSM2lS%Fdy!}T#NnRDh~VZnC;+9ScJ$-jvQF4LQIV;4QtUqNB;v5$tS!3 literal 1456 zcmV;h1yA}?Nk&Gf1pok7MM6+kP&il$000080002*008d*09H^qOdACN059*rI{*$@ z`~Mq`lk(1Xd$qQ`wcR&i+qP{tp44vNg55Ybx?F3{tj=Weobx3A-EERRvxH=8+ZpLC zCtqP!jo6I^^vZh5neCO>wibXD*vbEYzbtFpjxBq(TFs(C*mixbS3TLbZQHgr0^9An z*Kfb^+5Y@j!2TGHAA-D(5C7~IUTxbFs?JU<41_2?g7g{^hFt2r<}6-kv;LV9v}0fH zuZD&pmpZRGo7Xw4f2IWO*q62X?>~jO2*yTGoD3s5!;i`Kh-{z0W62?miy(+1Vz{!7 z?*_UnhvMx4y2K!&V+f;Fb!<0~T{#4A50ItpcvK9bwX~fGQnspw?ExaP7YL9)6dA*1 z4SahJ-Iho3b^u*u5HgJCu_+-;3t?&q@zMgA7(ytoQ@jN4b$6@({x>=^KHmcoQ4T?` zzE<@MFGGj9SIVLmwNM@q%$uc&XmziYo zSQEQNmy&C}$y20jXSs+mBn%hP)G|c02BhOaR;z6O+SkQjYA_Tj!FcW!-GR7Ib3bT$ z1loBg2bc3!9&AhRaHN8R$|WDUAEeT_G!zW3u(G+FLsf-T%UB`RF{ykQrGRSFwenNO zIp^|V$knSSQ5~5wDix=Vb2#Mb)sv~7OqrF6)5Zno@S#hf2ObmcE<{@(T*TWa)My+I02`nkVDyo8h+;BFT0@v>vX;lV{L8nb_EZpj|mcvRyznz|(m8 z+;oLl!Lt~#7?0=wg3<%YDOyYtm?gk7N>Cymf#j4;CI!q2;29MtkqsY2488W{*WtcwFqDp_IPFiO5_ue1Xd%KBUa!sK^fq^PH8#vczk^`e0Ly9x^-}Y z?LNcH`ThN2^5LHB!#!DT?TxiH{z2o>9xc{<@dlcjUsLs$q58`xUDc-nr51SadxvOP z*<8xes|u-(OzD;KQ^o}pI9FKPT%S(Ov#E_tQ?!ON#w8RwRW7M?KS>3~o?B<9-eF1Y zF~Yl-8$?YBCNTT5@JkDx3k1f6LMM}q&@5_j&O1dwcCv3{6!MZvCG=7t?e_x}kewUY zO-0pYs;Adb6#sc(pfwD|p-d2~5Q`B@IuT1dMRke3*VTp1;&mLJ#e&j&+g25#^>KDw&#ERrq5WniwSox>-C0>|8^I`Mk()`rbrCI6D z&y3ric+k9AJvcQ!bZ&Y~y5l4L)<+IDrzeKb&x}iVVsxO1V-nSQ*_@a}^)Q-5b+c=& z^J|^+YaMtC>YdZ8O_Qh|MA=&9Y5PLs(<+a`QhB5{WY)H<=jqiT%F-&%nb({ni1sE7 z-q-r(X0BchqqEkPc>TxV2|&u!DuS<^v#z22p=_=4q;;n9NYS3AI-u4x*I+!)nM8Fn zt1WYCZQ`a?8z)hH^XWPT+WQR0hWlXiaqINT;>`7xdFd|BP1>IY(D1@slbL*|IyDMx zh4;R95I>h_2bW8>fx9Q;7M*4ZEE15(Btfyb0s~?lVijUFnc4+5!n?N_3LynmlPdM} z8jRw=>{#!*0-60#AXPu)i;jF6$IA@(_Y_F{bxQ?gg0KmxO~`EYYOiHmH@LO>FRZC< z07Y0yMrHs207*$I00;m800ICp0RjLA0000c0001KhXeot0000k000000000`X=7n? zVE_OE0058&00aO405CE#Fou!`02u%P089V?00000000000000007G(RVRU6=Aa`kW KXdp*PO;7-B0I^sA diff --git a/viewer/src/assets/logos/vidua.png b/viewer/src/assets/logos/vidua.png index 3c3331c9006449617b5daab86e6c7d6ed8bb05d3..e2a1b9fcee72a2d018a7d747e179df29f80d2a2b 100644 GIT binary patch literal 10213 zcma)iRZtvE(=`&@VQ~TkcMA@S%i9~c-)7&$5NZ=TubIY^#>h3D|yy9$7s>L->mLRD3OR6^V>IWBVd!zR0W@zQM% zZTBS|Yzc#Aaalw@SbV=CU&4E9l5WK;nf3A`V?`I4At8j}=f``lMec^}RIY%_eb-G6 zG{=FgZk(;to+&)*;~$)LxZpW2UMf|L>l;SRW1eozxc zk9wyod31hrUx6+E;)pD3{$a5sTKKXRv`nI_WNQh|U`ZcW1Q^QGT%K0%<+#uvjw@OE z#|+!DG`crigI7NCj@}Wajv&jJ$+vnMBw5JS#L+7f_oZu3)O%a6I2Zp>Bw{&nj{F?& zd;T?pFCQIcDI;!e|?PH;Ac zkqPFKP-7rXd%p&~{DGm&we9)B_PYRK^mYq##z_g%&6f|oKhO*sj$kZyK|MpJI% zLfb=deRvhN=e1SgHyvtcl5pQ+FJ)sW)uW+D>#K37_5T)r< z1p?mg1>_RpD3#=*0#cY!nxCi-IE5&Aq#g(<)q`7$X-&R=#oUD)r>_&5IvWM9*l-eD z($+cAWD8m<1@H~iXu}FftD8|LEljV$mjCRShN-__P(s3G)E6Ww8s<{ex6p^Z)(IT6 zAoiSqACzZc`?W}Mq5iRnIRY$rLBp0CN*9Z%95z|6hnc(gN?-pZMgYDxM9sbFbAbI- zg>JLc*-UAHw3qwm4IyIQfQv3fwZ)l6rd2w?~;p9%I1*wFPjXiFhchF7f8UROiR10yuJZQRzZGd-HIeJGJpo2x8F}Y^L z9Qly{cP%IzAAzruhV4sUmMT7S1M}3kl zBQpGQ{_V~HL6!yWnz21MQ*W2M_Dtkh5J=;_3{!W&xAyao<2%f+)vh8x>dQA+y73!G z$F18d17GpJZC#MHy6{$=eAxRao9uV5(}-Dd4pnV&eixLyev$C)*co*7WGE!LJYSIgFrbtaCmKz(}uFPY?E83d0b{#H`fW}R$;27)YD$ERfQ@Pg@B(Cu8gGxI53 zeeSavK~arSiugV2He`HSQ4W90wa|pw}ew z#ObiH?yF$7i24&$PU|qFWgR*71q1JbBcm~Ub z^48>Db{=db1)O(AQulB5X3^$-46fcblJ6cEi_o0F)EhcW;F&;Klj7U@fZmm$EtPcU z3|yq#q50mtm}?DPLRJvj$-nQ*oGSTubt@^?+M#;erp~!F1}T&7cQuPEhr2oJ)h5mv zXHb0P9*pgN1!nA|jU3-dyd<$CuEbP6^JCquO;Ag2l<)6EO19cH*`6x7_bjA>h{j({ z19gg%Q?o^Ra|6!yHrx|1Fgqja4@_SV5?BfmV&KfWqDO|tD z0v@|UrY;3sP2!IFb4IYvBYB(PGZXkm(ENheulPn|EoGGlY|Lc4q}&Ih&7_;Dm}|Zg z*Q+Fx++vq+$IfJ5$fO=|#9XDn=2yZBVrsd-lqZ$jGA$m8^wm|o4V zIWIeG_A0HbD*)Ds(u0}XvUp6Gy83LRm5@-vAq3%SHA+>F1#{;~mrIWoRWhse?GU!T zgIKPX-fopUiG+`;SzlXy%T__J6tmd3;tB%hkglWK&A*~YomV>&l$zK2;nVcUoHExCw)iF-te_O(QY)-J32ev z-fY;Np7~jmi;5%(XD$fc4QbYtB#9;a=}CW-n&S<MoRsD0r)DoS#8fIeO4N-@lLT85!lv~fa1nn@2r`>5K*CmOLNTga> zQCIC%|CkgdU1S9v_b`UETrycUP2>@#jUQdvb4|Mr3o-%Ie>5h2_Rsq=dPq?v!H^S3aE9sRe4g|GBOvEH9(i#Tr7Mga2J zg~Nw+u)#{$_wCqi$*J>{yX3nJyMtt+18G$Muo|{-1e`fLGv$}=(Ri{T-ZI*Df47nA zfIu=`_y+vxWY!Np-Je(qi~%7N5rs^u;ch6*2wfaP8 zxWG~3w@^v+&{>_#Igmb4`>1gQ2qQGgs<&Cfg}Q`m@J}Pm4H{J)J1n?i!{D%tjN$OX zaMgeVK^U{yX|nYVK<{46BT0JI;xiTT1jk!xLf!~pb6M`q_#_IRkbYBrhIbLv--Fad z{vX*pMxw<>S&mJzONsaknXc{d#A=gr@ix+W6B@;XJYO{L$QU{Ar1_IHc1jbIY_ZkP~Jb)XiRAby(qc^cclH@rTU*I=MrSkK4!BR-r>c{JN|^ z1*0PH2HZo3szO^TW4tfhW?VY6o3CF`UiO$VeLudI26PM*Tn5mcB)izgiYgvreBoDg zD>=pu(5wA+H4i3^B|w^W%}Am@K!h#}6UR@bYS^^I&>xI=*#=QmLpGGe#x{e-1azdC4>Y|oUBfC6s*yWsQKP-}0OVAi6vl2zhD69;Gl0@>ctnBm> zJ3R|@HVFEdzL{01jWz1v2Q9Xvb$IPEr0;{z!IR|T+lsPdJwo&)-59Q#h*Fl5i(VeP z85;nf9wnzgmba+%w_{%bh!_PN^Tatul2P|8{VBCiHzcEO!*?2+=9#Vy4;VB&x3II{ z*b_r*u%mh|0gdqliB`{5wNUhe;V9`4eD?<9Yv#BlJtAfA7)0g ziM30$!^l`yqei6E->l2Tp$#_hBWyD8OF=62hW0zt#!siI^~%6e=^@$-rWHeypsO~; zJc~+0#cC#rOnKI)BY5sOgFllb;r5Vd{&(yS9fVyU zb?+0i!7ABQ*mm9$8{r(WNLf+&pdqy?qMwG_5h7;jq5gJ^s{;5g^^WI@#I5oR8K3gY zrBn_!duYO!=rlKC_S!mVD#<%bVL9dQymtCk&~Kq;L0rgbFalHWaAc^@9Zz4s6U6bd zUow%UCQgbfFzlm0k-r0Hf(g@@%7J_d!-tDvVzydRWsvNBW{}l_ME0Qk*Y-}8>tK`FT3p5BRAI@y27jj#lCFLBZz=nlP$|Z(yWcYZU7P`Z?a)= zDYrc*?PfOvO0HD>I*Q*PhN!)6#&7QZ>CjHsxP}VNtXrVu0ei6&3V~EaNtsXq)m4c7>lz+UC^y-B-n#YB{Q8jY}!76oZX>5yPttcea z#}~7mTPoe7 z1N&1$Iv&U<>B`weKeiB_y?r#UI|v=~ckeY)BE zW|XT>HW1th=jCj#1TV$%^A3qY&?9a>OhpgrxVtlP=F*M}>4ENTQky~K?a8PU2nywc zK=LyDcT}@2-OPn$ircvcu zFw)CDc(SsC+RH;y)UHSFW6ac?;AQ-88$z0pv>ZXRAo)N;NpRf#JYVYi;B2br$UzNn z9)t3YYgs68y8#;-9W}6ShtV~r>Cwz*d$3U#Ec|yzrm;kPJ`-Q(rbDN&_>H(f)Iups z;-r#2nX`<77$}r1U`<4<0*w1H9#)BI6YyMvz5V+32`UH-bHAX0(qlEd*N2#%U@H<^ zEjFbR&ufxkmw!iuH+Q-;zB-BhVo5THOX;0AMHCmRW!k3hgs;$n8Jt!-`KDVdEA$&BR>7z# z=q{Zfu#xSwhh-No!cu2F^``l0Ks{Z>>c|(pN0O6)UM?`EaO4GFzE|LTcOp><@z;%b z6q-;`DQ8~|D|Gdj+)o3xT=ibsaKW!#86;#ha9nCQQm5zS17sh?da(7AfqvI-(j?PY z+oJ+px#`Tc?SVRDJohm()S!STTCT8L>P8Rk1{tB`YaKgRoW#YZ7SskW#Ju;I^;U98 zAwTX_6v@%NlNkF023J#W(=N{f>)bv~1gR{Aa%VckfYMXgYwz3!G^1D6K!Aa;vie>! zO(hfgMmIPx`$-m-k(Jrh&X-K`%`Y7cFGVgDZFg}d;@6^g|6|!~4b6EQjLJTVmftr4 zlbc;z)*hIWH#4RJqHNY;<&s5jgyV9B(e>M;TC1mqKs9=J!&@|?M_jx~C(SIHc9Eik zUC;m1W`J(ml8$Q`dcZ|UzzjSgqRpl>7)`zZE5=Y*4KtyG2Q@)ct#YNz-CW5W2IZ<7 zGvQ!uW93Hr4i4M|3)M$upT@}Vi-93obQP=V=s!G2+FnkM;d_^a?22){xYGLUad72% zrW6***4#`pz3pp5y?G_S`ZHvr#97h{C5oB?R<}18ggjO=9cT$t{*f*?jFLVV&PM^T zs&We)Rn^Z&?$X=v$b4wtDTcPY*P{D_Ni`ooy9llSpu7>1D%!tG6rccW2e^4{1&~tZY+Vt|6oR%%AipaU+pcuKhJ5r3IHj zs=`LH9Cn4=hR~)+zJb!(2ohrdG3TEE4R($9^Eo=)b#qH#gPFAtCxpU>fBX{n9vF3S zO8?vU70vpY@-1xPs9~O)>-nCtNYbVu42#yrSf%0fOVS${Pu{;t1aUGwQEBt4b%b>B z^JMY1C7nP~jv!gA3m^J0mhMgEPLxe*saNcevCXZJzHWtftIfotH*d8D2ba4^aO4&r zTD%PX&DFP>5K(1$uxZjaEN$CN?WjLsmaowL&5K$8e*~H2gN}ms{_oq>(ChUn(m&Br z*M?ndQ1egc{lcjDTovht2m6n(SGxmb$Uf4^H!l>?>h%(wxM;hDeRWAnaL2843cFpz zs=RcT0dF{%Y&ARF4(B97llq2*4y|%k$di!CV&Dh5u4#5vAU}#$G4N?TEkZ7uDrofh z2{H3p*>VU&`l}!Ms!7faYerysUE9etE|CCvSYI<9?H4#o>Z-s`=wcMBgpK@R zNsAH}QtH8cd*7*~@0dn8`z1_*}nv~h4>e&d~?=_$*y2&zg_YSVY2_AJP z5z}hL+-q@&{z8p+zTCIxYAwCl#7RZDDyM9j-J$X7AH+k^r{7lLk;PP9tPmISAtW6+ zY>Ym34PchhsB*-~!H<63%)foXQ-9ZNvTe~ofk>w3^Am!S{#xU*pP_g)?HI7sSAtnD zABMG@g`bVGL6+09Crgi(OJbW?wZj?7r%ZkU^*oy&2JeZf+tDk9n?oJTc3qXu7UtQ6 zXhq$i@#c>5wAN28mj;Rorr!c7O!1wE#;R)QOyPn(-7Ar<=|#Hj5i2Tizi%V>`5wSw z78!WCm#e#K`I`L`FE-hgqju{m+|g+XGZ6fhBC=8P+3>RhzY(Wnm5Z~{y*Og2T!jGW z5W4hNFMg6V!#$PHQH=CUnbSGzC6@!bob05MBd+qkNUCJqGbdFk@uF9 zL#f35c6)dIqk$>{2iE!fD?a)?YH?#;5>>U9Eup4eQ{i2mn79*44xiNZqgkIfgBNJk zS^uU}hgZ%tJc*)*e)mqx?EVOJe z`@P7xF{TAP|8^ULAx0!_Gx znDuKk&G15HN@r(!+9%K$JH?HY+2=TV*T0s&`k0kldyYGlxRR$X#}+n66r_r+Nt38Y z3b&qg_GXe3*1VOiQGvEG4`9Oq0zf!!&9D6-&WQ6D6pNnx(r_V-APFgl&Fy!t?AO$$ z^^?hGAkqN0xu&BIORv7#`@7sbPoL7dyN!!St(yugl`E_wos)y}#jTu~tCeiajaWnY zJ?(Hig+Nhwl8`gDR}o?&-&A53=i3aXb(q?!xz>LD@aGq>9C>#dyD>76j9h+^n{0tE z!*f2)B5P|yT*|w3P76SG1;0ng=w^G?pIAoT5~#jV4T|(BoE1W?&ElNs?vGsdCR4Da zj}ylnY&|sg#kwErntC?~W@KaQVx?KUj=B4w2x!jZ*}hr9>CK3B${Ju>gm|(;!tMVC z0&os~tl1%y9PV*^;g9&~4_jCnS!Xh~qVlt`HmF6v%j@!1Tf5YnS&$s(AqZs97(ewY z_PczO+lZyK@AW^Dj-om^+}2gp;OnnO2`jIR4M-2TNGAeQZ==MUdEe81?!}TZOd0Oq zImi}l#mS%jdC7voX|0u8ixgd#iL_9O3LehaMwhH5QdEn;Lx^f+RCO)AU78+KT3Ove zP{2&pj)yvhRBynauNbQbpC%Hl#mu*b6%V0wqMT|oS^i$Qkq7>6e4&S`DcZ%+xo$i9 z`e2rAfdhO4aH;hjp-0|Mu{+Ow-K-obxZ9f#;Q;%Zkt2CLh zjX>==o$%F4D|hbkAQ~FHRfClB+Y^u5xScdj&9AHh3Xb6t3f*p@gmdBlti^2uV@N`N z>>xusfRZaYGGds? zx#;#WOtwp1^tBfwEYSgLXszm%K(T%jAvC%R`KW>4qiZ~$`pGfFmUfnFHp#Slr+z-x z_~u^>^@PBdQ5o$QNivU4c0$vB(uPdS%isE5zu~mVPMgcFbGer-{hRrSwGo15(r7B) z?GF<`*zBynEO&jZG-@;v9}G8Pf~Y7AbfFzn>Gnf??W! zza;a`gm!IK|7o{xfYjC;oqCYm%QpBAQK%F=oUpjp-il8F7?D)5=i`GCejZ6Y7u}W1 z`rmRyO*1hlyrF2Ae1Yt!Pasm$b;B0XWhHIJ6#;v4Z?6bJXik*W7n-x+Tx!+>6m`w% zWG3`KgPfrK4jr)D3Q4iy_~?VT3(bXe9L@cY-U=W^nNOYmM)C%VWMr&w@bdCz_Tzjo zn&{=BGt}d|+}lqhf1%0pT0E4k?q94XyVu`X2PM0s&MOvd)vEDeSI91hUjH=vdR_aJ zuTJ3W?Y}>b;Uhjiat`n%sKLr3dXEzwG2%&npx=F)HIAk4Hc0iP5bj$_V=J0F(5PS^ zvSh${Xhy?$olxoBe%>5z(q$Yr2}5Gihn*ejP}cbO=ES0aL*a^gzCjLr_>BFmA52{-_T7gg+a zBm$cc;Nq8c$Moy0RGq1>r9Ahs;}e%rYM+-d<79 zm3nr5QZBMw)_E^@mZ-R9&l+k;Thyulk@k9ub05BNcr-;$rrJ9xqDgpP=F_OK5uSrW zty+$RLw1h~t&3wQ%ubY!9}t?z`1~dKDkc*o_UhatZp|8y_=wuH$%w-bXm)#-Ft?VH#bO8pgB1NgFM!e%$F%XPEy`Z~ zzI|82P`Kg6ml(_l(=Op$HGikub=>~s=LivixQyg#OCb$H{-)sJRoRr(pAwh9G>UlF!<8Iezd*~)~T`V2;~PUCr< zku&Rf_n0yhm>ncq{=I{#u_KsvitdUo4Z9sl#0xPoBVlF(EmQ^@VJUS;a?t@l&vtD< zIEBnZi;Zl6A+#PHH|A?!>{Cx!hLhGjdozbJcv<&5^SlnMPR$KZm5sblcQ8Ajdg9T*cNrnoK>l z`B=U0VKqWsmWKz!A%WP4o+E?#P8;qcN2id18R`^FeSG2Wp>Vp7yW$yjEE3lH;!$TK z!|z4;r$feuh9!STOJKP_YO~#Kg37;cWFg+bdD6eaRHq?c*IK>LXHu6=*$TJ~z06vV zZJ-17G?|lfX!USrycJ1UpUwC0Ev2v3PUnr9MSNu=s%b*V4US_Njalg)5Ypc^`x@L( zvtO!q4jVC=5EPu>kwc;P08hRGv4~jw11WzHJ2Y6R5aT$It_#U4(QhRBLfZazZEwhx zn!ba2C9!%W#xrvw{g+vVU^4k!AYiZ;w6&5p+m**C|D4E-6Dt?zAgK;UOLA}d>%2Z! ze0CW;V_dNe?>Z1>Q_v(eoe@u1&wML>Pk*}?EM+khL{ov3ua5Oah9`#Mj-h{-9=jqp zN*$OZwt)V+bMUuF&+;5RSle%NNVh1(W??rW=r7mO@hhF_^j61S@4nKAZFWmEoqn-% z`>5PFM1{j|9pJi2w_DB1)!~pl=h2z8xfXof&YFIqA9UO#K5A2GF5E~JcyKv#^lFbC ztIgnP+{JvJHYVV;%|&dL(UeOFn)~-x#*S9-)K8h4M-CcqFYsXWbkn58Z{VPdQ$#{? z4r`))X)hfmJr9yI`qsVpn;_t%lbwU@bBNUjzhV{yyeR@dKK9e`{?X06;#B7 zcl6W)0`!ek4;F=jQsh|-Z!xl~j&BshLBamfW>2b#PN;!rWyWqa>KOFHjCwW&vshX< z`T$KdMtYIrPZ>Lvod*RQl7J&Egg_f?bM2E3FW32E3ZQC7E_i3IWAMVqmE_#Y!8EgY zOs0_$8GgBzT*>&W=o|Fa>6(p-(j*8$O-Z6WGwwSu3+4{)bzb3GNvE$Ro%WT_QxMk2 z7c`~VV%U1c-_9h=Tl%^x4Urj-^Fy-gUI~}oy2~HNBo1Crxm_tJ9@j!R=Nq+b6_?4n z?tRai+oOrWOFLJMLHI_p_t39tZ84e8gJh86bA|t@)14W?#8%!Q;5bxZ7T%=_ z>(}4dtKB6{Pmz)4V2TIKC-#qh4M82jFpOLorci;&Je=Y1GsVA|sAfJSR9Lzy_*AF){=|^4_CSPbuXe`j1k) zp(_0jONh!jqH^_pCs-b(5o~UW7ha&& zt8D12&wbgM5A2ExYUBibIALly&D@bD*YG|=*+}=}D|jZLTX?3w%#F5(DKMR(#aJ&` zuW1H876qGMNf&aT2F?s6&caVUFD+q)d)J2tnMF+)Slct>+esY0?{vttpUw~fobUVD zrN~7_Ptt)gs4+!37N4p&sEH0phoN=A5P#1k_Nk8;Ep63{=bGx)@7l6pzf}^gyS9ao zo4{qno`r>+j=Rwd;pY*fA3is}lXPeYT&LGdHa>h$7Yh`v9Z{BkWrzQKE-ew$2!J2O zA(G1okJ?kg3(XF@GLd|#S;EE|w_OaZ&C1KKq4c5Wk!|>IT^+7zEFd1BNj=wL#f8f% zv@sO6<3wJa&9V8sS;7ZoyWd#dp)IRho&Q~*hj7dS$kMXpTzMKmNW?ehPJYVN0jSb@ z)UU%#Dygroi>_^bIl4|)^JMj|Jd4=&6ilskOuzw-o6M?y05sQt-#ig*XaL$rL+l9ejr8c W($UGYQ2fu(2O}q~EL9_69Q1!k5a3b( literal 15070 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 F{{a9Ki{}6U literal 62532 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

`0`A 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 IPXF(8ExmW4U;qFB diff --git a/viewer/src/assets/logos/zada.png b/viewer/src/assets/logos/zada.png index 98947b376598bb1a5594bf284112500f2e1a4528..948261325cb7ae2adbff7846d883e5287335e299 100644 GIT binary patch literal 20064 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 diff --git a/wallets/AceID Wallet.json b/wallets/AceID Wallet.json index 1429d10..005fe31 100644 --- a/wallets/AceID Wallet.json +++ b/wallets/AceID Wallet.json @@ -3,7 +3,6 @@ "blockchainUsed": "Yes", "company": "AceBlock", "eassi": "No", - "logo": "logos/aceid-wallet.png", "name": "AceID Wallet", "$schema": "../viewer/src/assets/schema.json", "openSource": false diff --git a/wallets/Digital ID Wallet.json b/wallets/Digital ID Wallet.json index 92e0f5f..23d4fa8 100644 --- a/wallets/Digital ID Wallet.json +++ b/wallets/Digital ID Wallet.json @@ -1,7 +1,6 @@ { "company": "Thales", "eassi": "No", - "logo": "logos/digital-id-wallet.png", "name": "Digital ID Wallet", "$schema": "../viewer/src/assets/schema.json", "openSource": false diff --git a/wallets/IDEMIA Mobile ID.json b/wallets/IDEMIA Mobile ID.json index 17c086e..7cfdc37 100644 --- a/wallets/IDEMIA Mobile ID.json +++ b/wallets/IDEMIA Mobile ID.json @@ -1,7 +1,6 @@ { "company": "IDEMIA Group", "eassi": "No", - "logo": "logos/idema.png", "name": "IDEMIA Mobile ID", "$schema": "../viewer/src/assets/schema.json", "openSource": false diff --git a/wallets/Microsoft Entra.json b/wallets/Microsoft Entra.json index 9546828..b3412b0 100644 --- a/wallets/Microsoft Entra.json +++ b/wallets/Microsoft Entra.json @@ -1,8 +1,7 @@ { "company": "Microsoft", - "eassi": "No", - "logo": "logos/microsoft-entra.png", "name": "Microsoft Entra", "openSource": false, + "logo": "logos/microsoft-entra.png", "$schema": "../viewer/src/assets/schema.json" } diff --git a/wallets/Tap ID.json b/wallets/Tap ID.json index 407bd89..1066362 100644 --- a/wallets/Tap ID.json +++ b/wallets/Tap ID.json @@ -10,7 +10,6 @@ "eassi": "No", "identifierHolder": "did:ethr, did:ion, did:web, did:jwk, did:key", "identifierIssuer": "did:web, did:ion, did:key, did:jwk", - "logo": "logos/tap-id.png", "name": "Tap ID", "offlineFriendly": "Yes", "openSource": false, diff --git a/wallets/idento.one.json b/wallets/idento.one.json index 9309f47..70059c5 100644 --- a/wallets/idento.one.json +++ b/wallets/idento.one.json @@ -1,6 +1,5 @@ { "eassi": "No", - "logo": "logos/idento-one.png", "name": "idento.one", "$schema": "../viewer/src/assets/schema.json", "openSource": false From 03d640c40448dcc0ce76857d257316056e0a4d60 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Fri, 8 Mar 2024 12:05:56 +0100 Subject: [PATCH 75/76] fix: present links to app in a row Signed-off-by: Mirko Mollik --- viewer/src/app/wallets-list/wallets-list.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/viewer/src/app/wallets-list/wallets-list.component.html b/viewer/src/app/wallets-list/wallets-list.component.html index 0a7a703..2576d55 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.html +++ b/viewer/src/app/wallets-list/wallets-list.component.html @@ -79,7 +79,7 @@ Link to app info

+ Date: Fri, 8 Mar 2024 12:08:56 +0100 Subject: [PATCH 76/76] fix: styling of app column Signed-off-by: Mirko Mollik --- .../wallets-list/wallets-list.component.html | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/viewer/src/app/wallets-list/wallets-list.component.html b/viewer/src/app/wallets-list/wallets-list.component.html index 2576d55..a20c2e9 100644 --- a/viewer/src/app/wallets-list/wallets-list.component.html +++ b/viewer/src/app/wallets-list/wallets-list.component.html @@ -79,28 +79,30 @@ Link to app info - - android - phone_iphone - desktop_windows + +