├── src
├── vite-env.d.ts
├── main.tsx
├── App.css
├── App.tsx
├── index.css
├── components
│ └── hands-capture
│ │ └── hooks
│ │ ├── useKeyPointClassifier.ts
│ │ └── index.ts
└── assets
│ └── react.svg
├── .eslintrc.json
├── public
├── tf-models
│ ├── key-point-classifier
│ │ ├── group1-shard1of1.bin
│ │ └── model.json
│ ├── layers-kepoint-classifier
│ │ ├── group1-shard1of1.bin
│ │ └── model.json
│ └── model_graph_point_history
│ │ ├── group1-shard1of1.bin
│ │ └── model.json
├── js
│ ├── hands.worker.js
│ ├── cv.worker.js
│ └── hands.js
└── vite.svg
├── constants.ts
├── vite.config.ts
├── tsconfig.node.json
├── index.html
├── .gitignore
├── tsconfig.json
├── .travis.yml
├── .github
└── workflows
│ └── node.js.yml
├── package.json
├── README.md
├── services
├── hands.js
└── cv.js
└── yarn.lock
/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "next/core-web-vitals"
3 | }
4 |
--------------------------------------------------------------------------------
/public/tf-models/key-point-classifier/group1-shard1of1.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TomasGonzalez/hand-gesture-recognition-using-mediapipe-in-react/HEAD/public/tf-models/key-point-classifier/group1-shard1of1.bin
--------------------------------------------------------------------------------
/constants.ts:
--------------------------------------------------------------------------------
1 | const prefix = 'http://localhost:3000';
2 |
3 | export { prefix };
4 |
5 | const CONFIGS = {
6 | keypointClassifierLabels: ['Open', 'Closed', 'Pointing'],
7 | };
8 |
9 | export default CONFIGS;
10 |
--------------------------------------------------------------------------------
/public/tf-models/layers-kepoint-classifier/group1-shard1of1.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TomasGonzalez/hand-gesture-recognition-using-mediapipe-in-react/HEAD/public/tf-models/layers-kepoint-classifier/group1-shard1of1.bin
--------------------------------------------------------------------------------
/public/tf-models/model_graph_point_history/group1-shard1of1.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TomasGonzalez/hand-gesture-recognition-using-mediapipe-in-react/HEAD/public/tf-models/model_graph_point_history/group1-shard1of1.bin
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import react from '@vitejs/plugin-react'
3 |
4 | // https://vitejs.dev/config/
5 | export default defineConfig({
6 | server: {
7 | port: 3000
8 | },
9 | plugins: [react()],
10 | })
11 |
--------------------------------------------------------------------------------
/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "composite": true,
4 | "skipLibCheck": true,
5 | "module": "ESNext",
6 | "moduleResolution": "bundler",
7 | "allowSyntheticDefaultImports": true
8 | },
9 | "include": ["vite.config.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/src/main.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom/client'
3 | import App from './App.tsx'
4 | import './index.css'
5 |
6 | ReactDOM.createRoot(document.getElementById('root')!).render(
7 |
8 |
9 | ,
10 | )
11 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite + React + TS
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # next.js
12 | /.next/
13 |
14 | # production
15 | /build
16 |
17 | # misc
18 | .DS_Store
19 | *.pem
20 |
21 | # debug
22 | npm-debug.log*
23 | yarn-debug.log*
24 | yarn-error.log*
25 | .pnpm-debug.log*
26 |
27 | # local env files
28 | .env*.local
29 |
30 | # vercel
31 | .vercel
32 |
33 | # typescript
34 | *.tsbuildinfo
35 | next-env.d.ts
36 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2020",
4 | "useDefineForClassFields": true,
5 | "lib": ["ES2020", "DOM", "DOM.Iterable"],
6 | "module": "ESNext",
7 | "skipLibCheck": true,
8 |
9 | /* Bundler mode */
10 | "moduleResolution": "bundler",
11 | "allowImportingTsExtensions": true,
12 | "resolveJsonModule": true,
13 | "isolatedModules": true,
14 | "noEmit": true,
15 | "jsx": "react-jsx",
16 |
17 | /* Linting */
18 | "strict": true,
19 | "noUnusedLocals": true,
20 | "noUnusedParameters": true,
21 | "noFallthroughCasesInSwitch": true
22 | },
23 | "include": ["src"],
24 | "references": [{ "path": "./tsconfig.node.json" }]
25 | }
26 |
--------------------------------------------------------------------------------
/src/App.css:
--------------------------------------------------------------------------------
1 | #root {
2 | max-width: 1280px;
3 | margin: 0 auto;
4 | padding: 2rem;
5 | text-align: center;
6 | }
7 |
8 | .logo {
9 | height: 6em;
10 | padding: 1.5em;
11 | will-change: filter;
12 | transition: filter 300ms;
13 | }
14 | .logo:hover {
15 | filter: drop-shadow(0 0 2em #646cffaa);
16 | }
17 | .logo.react:hover {
18 | filter: drop-shadow(0 0 2em #61dafbaa);
19 | }
20 |
21 | @keyframes logo-spin {
22 | from {
23 | transform: rotate(0deg);
24 | }
25 | to {
26 | transform: rotate(360deg);
27 | }
28 | }
29 |
30 | @media (prefers-reduced-motion: no-preference) {
31 | a:nth-of-type(2) .logo {
32 | animation: logo-spin infinite 20s linear;
33 | }
34 | }
35 |
36 | .card {
37 | padding: 2em;
38 | }
39 |
40 | .read-the-docs {
41 | color: #888;
42 | }
43 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js # Node.js based project
2 | node_js:
3 | - 12 # Level of Node.js to use
4 | cache:
5 | directories:
6 | - node_modules # Cache the node_modules folder for quicker build times
7 | script:
8 | - npm run build # Runs next build
9 | - npm run export # Runs next export and generates the out directory
10 | - touch out/.nojekyll # Creates a file telling Github not to build the project using Jekyll
11 | deploy:
12 | provider: pages # Informs Travis this is a deployment to GitHub Pages
13 | skip_cleanup: true # Prevents Travis from resetting the working directory made during the build
14 | github_token: $github_token # GitHub access token to use when pushing to the gh-pages branch
15 | local_dir: out # Directory to push to the gh-pages branch
16 | on:
17 | all_branches: true
18 | condition: $TRAVIS_BRANCH =~ ^(master|main)$
19 |
--------------------------------------------------------------------------------
/src/App.tsx:
--------------------------------------------------------------------------------
1 | import { useRef } from "react";
2 | import useGestureRecognition from "./components/hands-capture/hooks";
3 |
4 | function App() {
5 | const videoElement = useRef()
6 | const canvasEl = useRef()
7 | const { maxVideoWidth, maxVideoHeight } = useGestureRecognition({
8 | videoElement,
9 | canvasEl
10 | });
11 |
12 | return (
13 |
21 |
27 |
32 |
33 | );
34 | }
35 |
36 | export default App
--------------------------------------------------------------------------------
/.github/workflows/node.js.yml:
--------------------------------------------------------------------------------
1 | name: Deploy to GitHub Pages
2 |
3 | on:
4 | push:
5 | branches: [main]
6 |
7 | jobs:
8 | build:
9 | runs-on: ubuntu-latest
10 |
11 | env:
12 | NEXT_PUBLIC_BASE_PATH: /hand-gesture-recognition-using-mediapipe-in-react
13 |
14 | strategy:
15 | matrix:
16 | node-version: [16.x]
17 |
18 | steps:
19 | - name: Get files
20 | uses: actions/checkout@v2
21 | - name: Use Node.js ${{ matrix.node-version }}
22 | uses: actions/setup-node@v2
23 | with:
24 | node-version: ${{ matrix.node-version }}
25 | - name: Install packages
26 | run: npm ci
27 | - name: Build project & Export static files
28 | run: npm run build
29 | - name: Add .nojekyll file
30 | run: touch ./out/.nojekyll
31 | - name: Deploy
32 | uses: JamesIves/github-pages-deploy-action@4.1.1
33 | with:
34 | branch: gh-pages
35 | folder: out
36 |
--------------------------------------------------------------------------------
/public/js/hands.worker.js:
--------------------------------------------------------------------------------
1 | // import * as comlink from 'comlink';
2 | importScripts('@mediapipe/hands/hands.js');
3 | // importScripts(
4 | // 'https://cdn.jsdelivr.net/npm/@mediapipe/hands@0.4.1635986972/hands.js'
5 | // );
6 | let hands;
7 |
8 | async function loadModel(e) {
9 | hands = new this.Hands({
10 | locateFile: (file, base) => {
11 | return `https://cdn.jsdelivr.net/npm/@mediapipe/hands@${this.VERSION}/${file}`;
12 | },
13 | });
14 |
15 | hands.setOptions({
16 | modelComplexity: 1,
17 | maxNumHands: 2,
18 | minDetectionConfidence: 0.5,
19 | minTrackingConfidence: 0.5,
20 | });
21 |
22 | await hands.initialize();
23 |
24 | hands.onResults((results) => {
25 | postMessage({ msg, payload: result });
26 | });
27 |
28 | postMessage({ msg: e.data.msg });
29 | }
30 |
31 | onmessage = function (e) {
32 | switch (e.data.msg) {
33 | case 'load': {
34 | loadModel(e);
35 | break;
36 | }
37 | case 'imageProcessing':
38 | console.log(e.data, 'running image processing');
39 | console.log('is this loading 5');
40 | return hands.send({ image: e.data.payload });
41 | default:
42 | break;
43 | }
44 | };
45 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "hand-gesture-recognition-using-mediapipe-in-react",
3 | "private": true,
4 | "version": "0.0.0",
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "tsc && vite build",
9 | "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
10 | "preview": "vite preview"
11 | },
12 | "dependencies": {
13 | "react": "^18.2.0",
14 | "react-dom": "^18.2.0",
15 | "@mediapipe/camera_utils": "^0.3.1640029074",
16 | "@mediapipe/control_utils": "^0.6.1629159505",
17 | "@mediapipe/drawing_utils": "^0.3.1620248257",
18 | "@mediapipe/hands": "^0.4.1646424915",
19 | "@techstark/opencv-js": "^4.6.0-release.1",
20 | "@tensorflow/tfjs": "^3.21.0",
21 | "comlink": "^4.3.1",
22 | "lodash": "^4.17.21"
23 | },
24 | "devDependencies": {
25 | "@types/react": "^18.2.15",
26 | "@types/react-dom": "^18.2.7",
27 | "@typescript-eslint/eslint-plugin": "^6.0.0",
28 | "@typescript-eslint/parser": "^6.0.0",
29 | "@vitejs/plugin-react": "^4.0.3",
30 | "eslint": "^8.45.0",
31 | "eslint-plugin-react-hooks": "^4.6.0",
32 | "eslint-plugin-react-refresh": "^0.4.3",
33 | "typescript": "^5.0.2",
34 | "vite": "^4.4.5",
35 | "gh-pages": "^4.0.0"
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # This is an implementation of the repo:
2 |
3 | https://github.com/Kazuhito00/hand-gesture-recognition-using-mediapipe
4 |
5 | but in React, and nextJS.
6 | The working demo is deployed in here https://tomasgonzalez.github.io/hand-gesture-recognition-using-mediapipe-in-react/ .
7 |
8 | https://user-images.githubusercontent.com/26396804/198848050-095785e7-9a83-444d-91d0-f432eb21a4a4.mp4
9 |
10 | I made It because I need it for another project, and thought that It would be a good idea to upload it in this rough form just in case It helps anyone.
11 |
12 | ## To convert the hdf5 model to tfjs you can use the [tensorflowjs_converter](https://www.tensorflow.org/js/guide/conversion) CLI following command:
13 | tensorflowjs_converter --input_format keras --output_format tfjs_graph_model model/keypoint_classifier/keypoint_classifier.hdf5 tfjs_model/
14 |
15 | ## Getting Started
16 |
17 | First, run the development server:
18 |
19 | ```bash
20 | yarn dev
21 | ```
22 |
23 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
24 |
25 | ## Warning
26 | This project originally was build in `NEXTJS` I migrated it to vite because of `SSR` issues, It should be working now. Although the github pages `CI` Pipeline is not working and also I removed the env variables for the `public` dir prefix so you will have to add it in order to load the gesture recognition model.
27 |
--------------------------------------------------------------------------------
/public/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | :root {
2 | font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
3 | line-height: 1.5;
4 | font-weight: 400;
5 |
6 | color-scheme: light dark;
7 | color: rgba(255, 255, 255, 0.87);
8 | background-color: #242424;
9 |
10 | font-synthesis: none;
11 | text-rendering: optimizeLegibility;
12 | -webkit-font-smoothing: antialiased;
13 | -moz-osx-font-smoothing: grayscale;
14 | -webkit-text-size-adjust: 100%;
15 | }
16 |
17 | a {
18 | font-weight: 500;
19 | color: #646cff;
20 | text-decoration: inherit;
21 | }
22 | a:hover {
23 | color: #535bf2;
24 | }
25 |
26 | body {
27 | margin: 0;
28 | display: flex;
29 | place-items: center;
30 | min-width: 320px;
31 | min-height: 100vh;
32 | }
33 |
34 | h1 {
35 | font-size: 3.2em;
36 | line-height: 1.1;
37 | }
38 |
39 | button {
40 | border-radius: 8px;
41 | border: 1px solid transparent;
42 | padding: 0.6em 1.2em;
43 | font-size: 1em;
44 | font-weight: 500;
45 | font-family: inherit;
46 | background-color: #1a1a1a;
47 | cursor: pointer;
48 | transition: border-color 0.25s;
49 | }
50 | button:hover {
51 | border-color: #646cff;
52 | }
53 | button:focus,
54 | button:focus-visible {
55 | outline: 4px auto -webkit-focus-ring-color;
56 | }
57 |
58 | @media (prefers-color-scheme: light) {
59 | :root {
60 | color: #213547;
61 | background-color: #ffffff;
62 | }
63 | a:hover {
64 | color: #747bff;
65 | }
66 | button {
67 | background-color: #f9f9f9;
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/services/hands.js:
--------------------------------------------------------------------------------
1 | class Hands {
2 | /**
3 | * We will use this method privately to communicate with the worker and
4 | * return a promise with the result of the event. This way we can call
5 | * the worker asynchronously.
6 | */
7 |
8 | _dispatch(event) {
9 | const { msg } = event;
10 | this._status[msg] = ['loading'];
11 | this.worker.postMessage(event);
12 | return new Promise((res, rej) => {
13 | let interval = setInterval(() => {
14 | const status = this._status[msg];
15 | if (status[0] === 'done') res(status[1]);
16 | if (status[0] === 'error') rej(status[1]);
17 | if (status[0] !== 'loading') {
18 | delete this._status[msg];
19 | clearInterval(interval);
20 | }
21 | }, 50);
22 | });
23 | }
24 |
25 | /**
26 | * First, we will load the worker and capture the onmessage
27 | * and onerror events to always know the status of the event
28 | * we have triggered.
29 | *
30 | * Then, we are going to call the 'load' event, as we've just
31 | * implemented it so that the worker can capture it.
32 | */
33 | load() {
34 | this._status = {};
35 | this.worker = new Worker('/js/hands.worker.js'); // load worker
36 |
37 | // Capture events and save [status, event] inside the _status object
38 | this.worker.onmessage = (e) => {
39 | this._status[e.data.msg] = ['done', e];
40 | };
41 | this.worker.onerror = (e) => {
42 | console.log(e, 'this is error');
43 | this._status[e.message] = ['error', e];
44 | };
45 | return this._dispatch({ msg: 'load' });
46 | }
47 | /**
48 | * We are going to use the _dispatch event we created before to
49 | * call the postMessage with the msg and the image as payload.
50 | *
51 | * Thanks to what we've implemented in the _dispatch, this will
52 | * return a promise with the processed image.
53 | */
54 | imageProcessing(payload) {
55 | return this._dispatch({ msg: 'imageProcessing', payload });
56 | }
57 | }
58 |
59 | // Export the same instant everywhere
60 | export default new Hands();
61 |
--------------------------------------------------------------------------------
/services/cv.js:
--------------------------------------------------------------------------------
1 | class CV {
2 | /**
3 | * We will use this method privately to communicate with the worker and
4 | * return a promise with the result of the event. This way we can call
5 | * the worker asynchronously.
6 | */
7 |
8 | _dispatch(event) {
9 | const { msg } = event;
10 | this._status[msg] = ['loading'];
11 | this.worker.postMessage(event);
12 | return new Promise((res, rej) => {
13 | let interval = setInterval(() => {
14 | const status = this._status[msg];
15 | if (status[0] === 'done') res(status[1]);
16 | if (status[0] === 'error') rej(status[1]);
17 | if (status[0] !== 'loading') {
18 | delete this._status[msg];
19 | clearInterval(interval);
20 | }
21 | }, 50);
22 | });
23 | }
24 |
25 | /**
26 | * First, we will load the worker and capture the onmessage
27 | * and onerror events to always know the status of the event
28 | * we have triggered.
29 | *
30 | * Then, we are going to call the 'load' event, as we've just
31 | * implemented it so that the worker can capture it.
32 | */
33 | load() {
34 | this._status = {};
35 | this.worker = new Worker('/js/cv.worker.js'); // load worker
36 |
37 | // Capture events and save [status, event] inside the _status object
38 | this.worker.onmessage = (e) => {
39 | console.log(['done', e], e.data.msg, e.data);
40 | this._status[e.data.msg] = ['done', e];
41 | };
42 | this.worker.onerror = (e) => {
43 | console.log(e, 'this is error');
44 | this._status[e.message] = ['error', e];
45 | };
46 | return this._dispatch({ msg: 'load' });
47 | }
48 | /**
49 | * We are going to use the _dispatch event we created before to
50 | * call the postMessage with the msg and the image as payload.
51 | *
52 | * Thanks to what we've implemented in the _dispatch, this will
53 | * return a promise with the processed image.
54 | */
55 | imageProcessing(payload) {
56 | console.log('trying to run image prossessing');
57 | return this._dispatch({ msg: 'imageProcessing', payload });
58 | }
59 | }
60 |
61 | // Export the same instant everywhere
62 | export default new CV();
63 |
--------------------------------------------------------------------------------
/public/tf-models/layers-kepoint-classifier/model.json:
--------------------------------------------------------------------------------
1 | {"format": "layers-model", "generatedBy": "keras v2.4.0", "convertedBy": "TensorFlow.js Converter v3.18.0", "modelTopology": {"keras_version": "2.4.0", "backend": "tensorflow", "model_config": {"class_name": "Sequential", "config": {"name": "sequential", "layers": [{"class_name": "InputLayer", "config": {"batch_input_shape": [null, 42], "dtype": "float32", "sparse": false, "ragged": false, "name": "input_1"}}, {"class_name": "Dropout", "config": {"name": "dropout", "trainable": true, "dtype": "float32", "rate": 0.2, "noise_shape": null, "seed": null}}, {"class_name": "Dense", "config": {"name": "dense", "trainable": true, "dtype": "float32", "units": 20, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}, {"class_name": "Dropout", "config": {"name": "dropout_1", "trainable": true, "dtype": "float32", "rate": 0.4, "noise_shape": null, "seed": null}}, {"class_name": "Dense", "config": {"name": "dense_1", "trainable": true, "dtype": "float32", "units": 10, "activation": "relu", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}, {"class_name": "Dense", "config": {"name": "dense_2", "trainable": true, "dtype": "float32", "units": 3, "activation": "softmax", "use_bias": true, "kernel_initializer": {"class_name": "GlorotUniform", "config": {"seed": null}}, "bias_initializer": {"class_name": "Zeros", "config": {}}, "kernel_regularizer": null, "bias_regularizer": null, "activity_regularizer": null, "kernel_constraint": null, "bias_constraint": null}}]}}}, "weightsManifest": [{"paths": ["group1-shard1of1.bin"], "weights": [{"name": "dense/kernel", "shape": [42, 20], "dtype": "float32"}, {"name": "dense/bias", "shape": [20], "dtype": "float32"}, {"name": "dense_1/kernel", "shape": [20, 10], "dtype": "float32"}, {"name": "dense_1/bias", "shape": [10], "dtype": "float32"}, {"name": "dense_2/kernel", "shape": [10, 3], "dtype": "float32"}, {"name": "dense_2/bias", "shape": [3], "dtype": "float32"}]}]}
--------------------------------------------------------------------------------
/src/components/hands-capture/hooks/useKeyPointClassifier.ts:
--------------------------------------------------------------------------------
1 | import { useEffect, useRef } from 'react';
2 | import { Landmark, Results } from '@mediapipe/hands';
3 |
4 | import * as tf from '@tensorflow/tfjs';
5 |
6 | import _ from 'lodash';
7 |
8 | const calcLandmarkList = (image, landmarks) => {
9 | const { width: imageWidth, height: imageHeight } = image;
10 |
11 | const landmarkPoint: any = [];
12 |
13 | // Keypoint
14 | Object.values(landmarks).forEach((landmark: Landmark) => {
15 | const landmarkX = Math.min(landmark.x * imageWidth, imageWidth - 1);
16 | const landmarkY = Math.min(landmark.y * imageHeight, imageHeight - 1);
17 |
18 | landmarkPoint.push([landmarkX, landmarkY]);
19 | });
20 |
21 | return landmarkPoint;
22 | };
23 |
24 | const preProcessLandmark = (landmarkList) => {
25 | let tempLandmarkList = _.cloneDeep(landmarkList);
26 |
27 | let baseX = 0;
28 | let baseY = 0;
29 |
30 | //convert to realtive coordinates
31 | Object.values(tempLandmarkList).forEach((landmarkPoint, index) => {
32 | if (!index) {
33 | baseX = parseInt(landmarkPoint[0]);
34 | baseY = parseInt(landmarkPoint[1]);
35 | }
36 |
37 | tempLandmarkList[index][0] = tempLandmarkList[index][0] - baseX;
38 | tempLandmarkList[index][1] = tempLandmarkList[index][1] - baseY;
39 | });
40 |
41 | //convert to one-dimensional list
42 | tempLandmarkList = _.flatten(tempLandmarkList);
43 |
44 | //normalize
45 | const maxValue = Math.max(
46 | ...tempLandmarkList.map((value) => Math.abs(value))
47 | );
48 | tempLandmarkList = tempLandmarkList.map((value) => value / maxValue);
49 | return tempLandmarkList;
50 | };
51 |
52 | function useKeyPointClassifier() {
53 | const model = useRef();
54 |
55 | const keyPointClassifier = async (landmarkList) => {
56 | return await model.current
57 | .execute(tf.tensor2d([landmarkList]))
58 | .squeeze()
59 | .argMax()
60 | .data();
61 | };
62 |
63 | const processLandmark = async (handLandmarks: Results, image) => {
64 | const landmarkList = calcLandmarkList(image, handLandmarks);
65 | const preProcessedLandmarkList = preProcessLandmark(landmarkList);
66 | const handSignId = await keyPointClassifier(preProcessedLandmarkList);
67 | return handSignId[0];
68 | };
69 |
70 |
71 | useEffect(() => {
72 | (async function loadModel () {
73 | model.current = await tf.loadGraphModel(
74 | `/tf-models/key-point-classifier/model.json`
75 | );
76 | })()
77 | }, []);
78 |
79 | return { processLandmark };
80 | }
81 |
82 | export default useKeyPointClassifier;
--------------------------------------------------------------------------------
/public/js/cv.worker.js:
--------------------------------------------------------------------------------
1 | function waitForOpencv(callbackFn, waitTimeMs = 30000, stepTimeMs = 100) {
2 | if (cv.Mat) callbackFn(true);
3 |
4 | let timeSpentMs = 0;
5 | const interval = setInterval(() => {
6 | const limitReached = timeSpentMs > waitTimeMs;
7 | if (cv.Mat || limitReached) {
8 | clearInterval(interval);
9 | return callbackFn(!limitReached);
10 | } else {
11 | timeSpentMs += stepTimeMs;
12 | }
13 | }, stepTimeMs);
14 | }
15 |
16 | onmessage = function (e) {
17 | switch (e.data.msg) {
18 | case 'load': {
19 | // Import Webassembly script
20 | importScripts('./opencv.js');
21 | waitForOpencv(function (success) {
22 | console.log(success, 'what is this?');
23 | if (success) postMessage({ msg: e.data.msg });
24 | else throw new Error('Error on loading OpenCV');
25 | });
26 | break;
27 | }
28 | case 'imageProcessing':
29 | console.log('running image processing');
30 | return imageProcessing(e.data);
31 | default:
32 | break;
33 | }
34 | };
35 |
36 | /**
37 | * With OpenCV we have to work with the images as cv.Mat (matrices),
38 | * so you'll have to transform the ImageData to it.
39 | */
40 | function imageProcessing({ msg, payload }) {
41 | const img = cv.matFromImageData(payload);
42 | let result = new cv.Mat();
43 |
44 | // This converts the image to a greyscale.
45 | cv.cvtColor(img, result, cv.COLOR_BGR2GRAY);
46 | postMessage({ msg, payload: imageDataFromMat(result) });
47 | }
48 |
49 | /**
50 | * This function converts again from cv.Mat to ImageData
51 | */
52 | function imageDataFromMat(mat) {
53 | // converts the mat type to cv.CV_8U
54 | const img = new cv.Mat();
55 | const depth = mat.type() % 8;
56 | const scale =
57 | depth <= cv.CV_8S ? 1.0 : depth <= cv.CV_32S ? 1.0 / 256.0 : 255.0;
58 | const shift = depth === cv.CV_8S || depth === cv.CV_16S ? 128.0 : 0.0;
59 | mat.convertTo(img, cv.CV_8U, scale, shift);
60 |
61 | // converts the img type to cv.CV_8UC4
62 | switch (img.type()) {
63 | case cv.CV_8UC1:
64 | cv.cvtColor(img, img, cv.COLOR_GRAY2RGBA);
65 | break;
66 | case cv.CV_8UC3:
67 | cv.cvtColor(img, img, cv.COLOR_RGB2RGBA);
68 | break;
69 | case cv.CV_8UC4:
70 | break;
71 | default:
72 | throw new Error(
73 | 'Bad number of channels (Source image must have 1, 3 or 4 channels)'
74 | );
75 | }
76 | const clampedArray = new ImageData(
77 | new Uint8ClampedArray(img.data),
78 | img.cols,
79 | img.rows
80 | );
81 | img.delete();
82 | return clampedArray;
83 | }
84 |
--------------------------------------------------------------------------------
/src/components/hands-capture/hooks/index.ts:
--------------------------------------------------------------------------------
1 | import { Ref, useEffect, useRef } from 'react';
2 | import { Camera } from '@mediapipe/camera_utils';
3 | import {
4 | drawConnectors,
5 | drawLandmarks,
6 | drawRectangle,
7 | } from '@mediapipe/drawing_utils';
8 | import { Hands, HAND_CONNECTIONS } from '@mediapipe/hands';
9 | import useKeyPointClassifier from '../hooks/useKeyPointClassifier';
10 | import CONFIGS from '../../../../constants';
11 |
12 | const maxVideoWidth = 960;
13 | const maxVideoHeight = 540;
14 |
15 | interface IHandGestureLogic {
16 | videoElement: Ref
17 | canvasEl: Ref
18 | }
19 |
20 | function useGestureRecognition({videoElement, canvasEl}: IHandGestureLogic) {
21 | const hands = useRef(null);
22 | const camera = useRef(null);
23 | const handsGesture = useRef([]);
24 |
25 | const { processLandmark } = useKeyPointClassifier();
26 |
27 | async function onResults(results) {
28 | if (canvasEl.current) {
29 | const ctx = canvasEl.current.getContext('2d');
30 |
31 | ctx.save();
32 | ctx.clearRect(0, 0, canvasEl.current.width, canvasEl.current.height);
33 | ctx.drawImage(results.image, 0, 0, maxVideoWidth, maxVideoHeight);
34 |
35 | if (results.multiHandLandmarks) {
36 | // Runs once for every hand
37 | for (const [index, landmarks] of results.multiHandLandmarks.entries()) {
38 | processLandmark(landmarks, results.image).then((val) => (handsGesture.current[index] = val));
39 | const landmarksX = landmarks.map((landmark) => landmark.x);
40 | const landmarksY = landmarks.map((landmark) => landmark.y);
41 | ctx.fillStyle = '#ff0000';
42 | ctx.font = '24px serif';
43 | ctx.fillText(
44 | CONFIGS.keypointClassifierLabels[handsGesture.current[index]],
45 | maxVideoWidth * Math.min(...landmarksX),
46 | maxVideoHeight * Math.min(...landmarksY) - 15
47 | );
48 | drawRectangle(ctx,{
49 | xCenter: Math.min(...landmarksX) + (Math.max(...landmarksX) - Math.min(...landmarksX)) / 2,
50 | yCenter: Math.min(...landmarksY) + (Math.max(...landmarksY) - Math.min(...landmarksY)) / 2,
51 | width: Math.max(...landmarksX) - Math.min(...landmarksX),
52 | height: Math.max(...landmarksY) - Math.min(...landmarksY),
53 | rotation: 0,
54 | },
55 | {
56 | fillColor: 'transparent',
57 | color: '#ff0000',
58 | lineWidth: 1,
59 | }
60 | );
61 | drawConnectors(ctx, landmarks, HAND_CONNECTIONS, {
62 | color: '#00ffff',
63 | lineWidth: 2,
64 | });
65 | drawLandmarks(ctx, landmarks, {
66 | color: '#ffff29',
67 | lineWidth: 1,
68 | });
69 | }
70 | }
71 | ctx.restore();
72 | }
73 | }
74 |
75 | const loadHands = () => {
76 | hands.current = new Hands({
77 | locateFile: (file) => `https://cdn.jsdelivr.net/npm/@mediapipe/hands/${file}`,
78 | });
79 | hands.current.setOptions({
80 | maxNumHands: 2,
81 | modelComplexity: 1,
82 | minDetectionConfidence: 0.5,
83 | minTrackingConfidence: 0.5,
84 | });
85 | hands.current.onResults(onResults);
86 | };
87 |
88 | useEffect(() => {
89 | (async function initCamara() {
90 | camera.current = new Camera(videoElement.current, {
91 | onFrame: async () => {
92 | await hands.current.send({ image: videoElement.current });
93 | },
94 | width: maxVideoWidth,
95 | height: maxVideoHeight,
96 | });
97 | camera.current.start();
98 | })()
99 |
100 | loadHands();
101 | }, []);
102 |
103 | return { maxVideoHeight, maxVideoWidth, canvasEl, videoElement };
104 | }
105 |
106 | export default useGestureRecognition;
107 |
--------------------------------------------------------------------------------
/src/assets/react.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/public/tf-models/model_graph_point_history/model.json:
--------------------------------------------------------------------------------
1 | {"format": "graph-model", "generatedBy": "2.6.2", "convertedBy": "TensorFlow.js Converter v3.18.0", "signature": {"inputs": {"input_1": {"name": "input_1:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "-1"}, {"size": "32"}]}}}, "outputs": {"dense_2": {"name": "Identity:0", "dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "-1"}, {"size": "4"}]}}}}, "modelTopology": {"node": [{"name": "StatefulPartitionedCall/sequential/dense/MatMul/ReadVariableOp", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "32"}, {"size": "24"}]}}}}}, {"name": "StatefulPartitionedCall/sequential/dense/BiasAdd/ReadVariableOp", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}]}}}}}, {"name": "StatefulPartitionedCall/sequential/dense_1/MatMul/ReadVariableOp", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "24"}, {"size": "10"}]}}}}}, {"name": "StatefulPartitionedCall/sequential/dense_1/BiasAdd/ReadVariableOp", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "10"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/sequential/dense_2/MatMul/ReadVariableOp", "op": "Const", "attr": {"value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "10"}, {"size": "4"}]}}}, "dtype": {"type": "DT_FLOAT"}}}, {"name": "StatefulPartitionedCall/sequential/dense_2/BiasAdd/ReadVariableOp", "op": "Const", "attr": {"dtype": {"type": "DT_FLOAT"}, "value": {"tensor": {"dtype": "DT_FLOAT", "tensorShape": {"dim": [{"size": "4"}]}}}}}, {"name": "input_1", "op": "Placeholder", "attr": {"dtype": {"type": "DT_FLOAT"}, "shape": {"shape": {"dim": [{"size": "-1"}, {"size": "32"}]}}}}, {"name": "StatefulPartitionedCall/sequential/dense/Relu", "op": "_FusedMatMul", "input": ["input_1", "StatefulPartitionedCall/sequential/dense/MatMul/ReadVariableOp", "StatefulPartitionedCall/sequential/dense/BiasAdd/ReadVariableOp"], "device": "/device:CPU:0", "attr": {"T": {"type": "DT_FLOAT"}, "num_args": {"i": "1"}, "transpose_a": {"b": false}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}, "transpose_b": {"b": false}, "epsilon": {"f": 0.0}}}, {"name": "StatefulPartitionedCall/sequential/dense_1/Relu", "op": "_FusedMatMul", "input": ["StatefulPartitionedCall/sequential/dense/Relu", "StatefulPartitionedCall/sequential/dense_1/MatMul/ReadVariableOp", "StatefulPartitionedCall/sequential/dense_1/BiasAdd/ReadVariableOp"], "device": "/device:CPU:0", "attr": {"num_args": {"i": "1"}, "transpose_b": {"b": false}, "T": {"type": "DT_FLOAT"}, "epsilon": {"f": 0.0}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA==", "UmVsdQ=="]}}, "transpose_a": {"b": false}}}, {"name": "StatefulPartitionedCall/sequential/dense_2/BiasAdd", "op": "_FusedMatMul", "input": ["StatefulPartitionedCall/sequential/dense_1/Relu", "StatefulPartitionedCall/sequential/dense_2/MatMul/ReadVariableOp", "StatefulPartitionedCall/sequential/dense_2/BiasAdd/ReadVariableOp"], "device": "/device:CPU:0", "attr": {"T": {"type": "DT_FLOAT"}, "transpose_b": {"b": false}, "num_args": {"i": "1"}, "fused_ops": {"list": {"s": ["Qmlhc0FkZA=="]}}, "epsilon": {"f": 0.0}, "transpose_a": {"b": false}}}, {"name": "StatefulPartitionedCall/sequential/dense_2/Softmax", "op": "Softmax", "input": ["StatefulPartitionedCall/sequential/dense_2/BiasAdd"], "attr": {"T": {"type": "DT_FLOAT"}}}, {"name": "Identity", "op": "Identity", "input": ["StatefulPartitionedCall/sequential/dense_2/Softmax"], "attr": {"T": {"type": "DT_FLOAT"}}}], "library": {}, "versions": {"producer": 808}}, "weightsManifest": [{"paths": ["group1-shard1of1.bin"], "weights": [{"name": "StatefulPartitionedCall/sequential/dense/MatMul/ReadVariableOp", "shape": [32, 24], "dtype": "float32"}, {"name": "StatefulPartitionedCall/sequential/dense/BiasAdd/ReadVariableOp", "shape": [24], "dtype": "float32"}, {"name": "StatefulPartitionedCall/sequential/dense_1/MatMul/ReadVariableOp", "shape": [24, 10], "dtype": "float32"}, {"name": "StatefulPartitionedCall/sequential/dense_1/BiasAdd/ReadVariableOp", "shape": [10], "dtype": "float32"}, {"name": "StatefulPartitionedCall/sequential/dense_2/MatMul/ReadVariableOp", "shape": [10, 4], "dtype": "float32"}, {"name": "StatefulPartitionedCall/sequential/dense_2/BiasAdd/ReadVariableOp", "shape": [4], "dtype": "float32"}]}]}
--------------------------------------------------------------------------------
/public/tf-models/key-point-classifier/model.json:
--------------------------------------------------------------------------------
1 | {
2 | "format": "graph-model",
3 | "generatedBy": "2.6.2",
4 | "convertedBy": "TensorFlow.js Converter v3.18.0",
5 | "signature": {
6 | "inputs": {
7 | "input_1": {
8 | "name": "input_1:0",
9 | "dtype": "DT_FLOAT",
10 | "tensorShape": { "dim": [{ "size": "-1" }, { "size": "42" }] }
11 | }
12 | },
13 | "outputs": {
14 | "dense_2": {
15 | "name": "Identity:0",
16 | "dtype": "DT_FLOAT",
17 | "tensorShape": { "dim": [{ "size": "-1" }, { "size": "3" }] }
18 | }
19 | }
20 | },
21 | "modelTopology": {
22 | "node": [
23 | {
24 | "name": "StatefulPartitionedCall/sequential/dense/MatMul/ReadVariableOp",
25 | "op": "Const",
26 | "attr": {
27 | "value": {
28 | "tensor": {
29 | "dtype": "DT_FLOAT",
30 | "tensorShape": { "dim": [{ "size": "42" }, { "size": "20" }] }
31 | }
32 | },
33 | "dtype": { "type": "DT_FLOAT" }
34 | }
35 | },
36 | {
37 | "name": "StatefulPartitionedCall/sequential/dense/BiasAdd/ReadVariableOp",
38 | "op": "Const",
39 | "attr": {
40 | "dtype": { "type": "DT_FLOAT" },
41 | "value": {
42 | "tensor": {
43 | "dtype": "DT_FLOAT",
44 | "tensorShape": { "dim": [{ "size": "20" }] }
45 | }
46 | }
47 | }
48 | },
49 | {
50 | "name": "StatefulPartitionedCall/sequential/dense_1/MatMul/ReadVariableOp",
51 | "op": "Const",
52 | "attr": {
53 | "dtype": { "type": "DT_FLOAT" },
54 | "value": {
55 | "tensor": {
56 | "dtype": "DT_FLOAT",
57 | "tensorShape": { "dim": [{ "size": "20" }, { "size": "10" }] }
58 | }
59 | }
60 | }
61 | },
62 | {
63 | "name": "StatefulPartitionedCall/sequential/dense_1/BiasAdd/ReadVariableOp",
64 | "op": "Const",
65 | "attr": {
66 | "dtype": { "type": "DT_FLOAT" },
67 | "value": {
68 | "tensor": {
69 | "dtype": "DT_FLOAT",
70 | "tensorShape": { "dim": [{ "size": "10" }] }
71 | }
72 | }
73 | }
74 | },
75 | {
76 | "name": "StatefulPartitionedCall/sequential/dense_2/MatMul/ReadVariableOp",
77 | "op": "Const",
78 | "attr": {
79 | "dtype": { "type": "DT_FLOAT" },
80 | "value": {
81 | "tensor": {
82 | "dtype": "DT_FLOAT",
83 | "tensorShape": { "dim": [{ "size": "10" }, { "size": "3" }] }
84 | }
85 | }
86 | }
87 | },
88 | {
89 | "name": "StatefulPartitionedCall/sequential/dense_2/BiasAdd/ReadVariableOp",
90 | "op": "Const",
91 | "attr": {
92 | "dtype": { "type": "DT_FLOAT" },
93 | "value": {
94 | "tensor": {
95 | "dtype": "DT_FLOAT",
96 | "tensorShape": { "dim": [{ "size": "3" }] }
97 | }
98 | }
99 | }
100 | },
101 | {
102 | "name": "input_1",
103 | "op": "Placeholder",
104 | "attr": {
105 | "dtype": { "type": "DT_FLOAT" },
106 | "shape": { "shape": { "dim": [{ "size": "-1" }, { "size": "42" }] } }
107 | }
108 | },
109 | {
110 | "name": "StatefulPartitionedCall/sequential/dense/Relu",
111 | "op": "_FusedMatMul",
112 | "input": [
113 | "input_1",
114 | "StatefulPartitionedCall/sequential/dense/MatMul/ReadVariableOp",
115 | "StatefulPartitionedCall/sequential/dense/BiasAdd/ReadVariableOp"
116 | ],
117 | "device": "/device:CPU:0",
118 | "attr": {
119 | "transpose_a": { "b": false },
120 | "transpose_b": { "b": false },
121 | "T": { "type": "DT_FLOAT" },
122 | "num_args": { "i": "1" },
123 | "fused_ops": { "list": { "s": ["Qmlhc0FkZA==", "UmVsdQ=="] } },
124 | "epsilon": { "f": 0.0 }
125 | }
126 | },
127 | {
128 | "name": "StatefulPartitionedCall/sequential/dense_1/Relu",
129 | "op": "_FusedMatMul",
130 | "input": [
131 | "StatefulPartitionedCall/sequential/dense/Relu",
132 | "StatefulPartitionedCall/sequential/dense_1/MatMul/ReadVariableOp",
133 | "StatefulPartitionedCall/sequential/dense_1/BiasAdd/ReadVariableOp"
134 | ],
135 | "device": "/device:CPU:0",
136 | "attr": {
137 | "num_args": { "i": "1" },
138 | "transpose_b": { "b": false },
139 | "T": { "type": "DT_FLOAT" },
140 | "fused_ops": { "list": { "s": ["Qmlhc0FkZA==", "UmVsdQ=="] } },
141 | "transpose_a": { "b": false },
142 | "epsilon": { "f": 0.0 }
143 | }
144 | },
145 | {
146 | "name": "StatefulPartitionedCall/sequential/dense_2/BiasAdd",
147 | "op": "_FusedMatMul",
148 | "input": [
149 | "StatefulPartitionedCall/sequential/dense_1/Relu",
150 | "StatefulPartitionedCall/sequential/dense_2/MatMul/ReadVariableOp",
151 | "StatefulPartitionedCall/sequential/dense_2/BiasAdd/ReadVariableOp"
152 | ],
153 | "device": "/device:CPU:0",
154 | "attr": {
155 | "transpose_a": { "b": false },
156 | "transpose_b": { "b": false },
157 | "fused_ops": { "list": { "s": ["Qmlhc0FkZA=="] } },
158 | "num_args": { "i": "1" },
159 | "epsilon": { "f": 0.0 },
160 | "T": { "type": "DT_FLOAT" }
161 | }
162 | },
163 | {
164 | "name": "StatefulPartitionedCall/sequential/dense_2/Softmax",
165 | "op": "Softmax",
166 | "input": ["StatefulPartitionedCall/sequential/dense_2/BiasAdd"],
167 | "attr": { "T": { "type": "DT_FLOAT" } }
168 | },
169 | {
170 | "name": "Identity",
171 | "op": "Identity",
172 | "input": ["StatefulPartitionedCall/sequential/dense_2/Softmax"],
173 | "attr": { "T": { "type": "DT_FLOAT" } }
174 | }
175 | ],
176 | "library": {},
177 | "versions": { "producer": 808 }
178 | },
179 | "weightsManifest": [
180 | {
181 | "paths": ["group1-shard1of1.bin"],
182 | "weights": [
183 | {
184 | "name": "StatefulPartitionedCall/sequential/dense/MatMul/ReadVariableOp",
185 | "shape": [42, 20],
186 | "dtype": "float32"
187 | },
188 | {
189 | "name": "StatefulPartitionedCall/sequential/dense/BiasAdd/ReadVariableOp",
190 | "shape": [20],
191 | "dtype": "float32"
192 | },
193 | {
194 | "name": "StatefulPartitionedCall/sequential/dense_1/MatMul/ReadVariableOp",
195 | "shape": [20, 10],
196 | "dtype": "float32"
197 | },
198 | {
199 | "name": "StatefulPartitionedCall/sequential/dense_1/BiasAdd/ReadVariableOp",
200 | "shape": [10],
201 | "dtype": "float32"
202 | },
203 | {
204 | "name": "StatefulPartitionedCall/sequential/dense_2/MatMul/ReadVariableOp",
205 | "shape": [10, 3],
206 | "dtype": "float32"
207 | },
208 | {
209 | "name": "StatefulPartitionedCall/sequential/dense_2/BiasAdd/ReadVariableOp",
210 | "shape": [3],
211 | "dtype": "float32"
212 | }
213 | ]
214 | }
215 | ]
216 | }
217 |
--------------------------------------------------------------------------------
/public/js/hands.js:
--------------------------------------------------------------------------------
1 | (function () {
2 | /*
3 |
4 | Copyright The Closure Library Authors.
5 | SPDX-License-Identifier: Apache-2.0
6 | */
7 | 'use strict';
8 | var x;
9 | function aa(a) {
10 | var b = 0;
11 | return function () {
12 | return b < a.length ? { done: !1, value: a[b++] } : { done: !0 };
13 | };
14 | }
15 | var ba =
16 | 'function' == typeof Object.defineProperties
17 | ? Object.defineProperty
18 | : function (a, b, c) {
19 | if (a == Array.prototype || a == Object.prototype) return a;
20 | a[b] = c.value;
21 | return a;
22 | };
23 | function ca(a) {
24 | a = [
25 | 'object' == typeof globalThis && globalThis,
26 | a,
27 | 'object' == typeof window && window,
28 | 'object' == typeof self && self,
29 | 'object' == typeof global && global,
30 | ];
31 | for (var b = 0; b < a.length; ++b) {
32 | var c = a[b];
33 | if (c && c.Math == Math) return c;
34 | }
35 | throw Error('Cannot find global object');
36 | }
37 | var y = ca(this);
38 | function B(a, b) {
39 | if (b)
40 | a: {
41 | var c = y;
42 | a = a.split('.');
43 | for (var d = 0; d < a.length - 1; d++) {
44 | var e = a[d];
45 | if (!(e in c)) break a;
46 | c = c[e];
47 | }
48 | a = a[a.length - 1];
49 | d = c[a];
50 | b = b(d);
51 | b != d &&
52 | null != b &&
53 | ba(c, a, { configurable: !0, writable: !0, value: b });
54 | }
55 | }
56 | B('Symbol', function (a) {
57 | function b(g) {
58 | if (this instanceof b) throw new TypeError('Symbol is not a constructor');
59 | return new c(d + (g || '') + '_' + e++, g);
60 | }
61 | function c(g, f) {
62 | this.g = g;
63 | ba(this, 'description', { configurable: !0, writable: !0, value: f });
64 | }
65 | if (a) return a;
66 | c.prototype.toString = function () {
67 | return this.g;
68 | };
69 | var d = 'jscomp_symbol_' + ((1e9 * Math.random()) >>> 0) + '_',
70 | e = 0;
71 | return b;
72 | });
73 | B('Symbol.iterator', function (a) {
74 | if (a) return a;
75 | a = Symbol('Symbol.iterator');
76 | for (
77 | var b =
78 | 'Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array'.split(
79 | ' '
80 | ),
81 | c = 0;
82 | c < b.length;
83 | c++
84 | ) {
85 | var d = y[b[c]];
86 | 'function' === typeof d &&
87 | 'function' != typeof d.prototype[a] &&
88 | ba(d.prototype, a, {
89 | configurable: !0,
90 | writable: !0,
91 | value: function () {
92 | return da(aa(this));
93 | },
94 | });
95 | }
96 | return a;
97 | });
98 | function da(a) {
99 | a = { next: a };
100 | a[Symbol.iterator] = function () {
101 | return this;
102 | };
103 | return a;
104 | }
105 | function C(a) {
106 | var b =
107 | 'undefined' != typeof Symbol && Symbol.iterator && a[Symbol.iterator];
108 | return b ? b.call(a) : { next: aa(a) };
109 | }
110 | function ea(a) {
111 | if (!(a instanceof Array)) {
112 | a = C(a);
113 | for (var b, c = []; !(b = a.next()).done; ) c.push(b.value);
114 | a = c;
115 | }
116 | return a;
117 | }
118 | var fa =
119 | 'function' == typeof Object.create
120 | ? Object.create
121 | : function (a) {
122 | function b() {}
123 | b.prototype = a;
124 | return new b();
125 | },
126 | ha;
127 | if ('function' == typeof Object.setPrototypeOf) ha = Object.setPrototypeOf;
128 | else {
129 | var ia;
130 | a: {
131 | var ja = { a: !0 },
132 | ka = {};
133 | try {
134 | ka.__proto__ = ja;
135 | ia = ka.a;
136 | break a;
137 | } catch (a) {}
138 | ia = !1;
139 | }
140 | ha = ia
141 | ? function (a, b) {
142 | a.__proto__ = b;
143 | if (a.__proto__ !== b) throw new TypeError(a + ' is not extensible');
144 | return a;
145 | }
146 | : null;
147 | }
148 | var la = ha;
149 | function D(a, b) {
150 | a.prototype = fa(b.prototype);
151 | a.prototype.constructor = a;
152 | if (la) la(a, b);
153 | else
154 | for (var c in b)
155 | if ('prototype' != c)
156 | if (Object.defineProperties) {
157 | var d = Object.getOwnPropertyDescriptor(b, c);
158 | d && Object.defineProperty(a, c, d);
159 | } else a[c] = b[c];
160 | a.ra = b.prototype;
161 | }
162 | function ma() {
163 | this.l = !1;
164 | this.i = null;
165 | this.h = void 0;
166 | this.g = 1;
167 | this.u = this.o = 0;
168 | this.j = null;
169 | }
170 | function na(a) {
171 | if (a.l) throw new TypeError('Generator is already running');
172 | a.l = !0;
173 | }
174 | ma.prototype.s = function (a) {
175 | this.h = a;
176 | };
177 | function oa(a, b) {
178 | a.j = { fa: b, ga: !0 };
179 | a.g = a.o || a.u;
180 | }
181 | ma.prototype.return = function (a) {
182 | this.j = { return: a };
183 | this.g = this.u;
184 | };
185 | function F(a, b, c) {
186 | a.g = c;
187 | return { value: b };
188 | }
189 | function pa(a) {
190 | this.g = new ma();
191 | this.h = a;
192 | }
193 | function qa(a, b) {
194 | na(a.g);
195 | var c = a.g.i;
196 | if (c)
197 | return ra(
198 | a,
199 | 'return' in c
200 | ? c['return']
201 | : function (d) {
202 | return { value: d, done: !0 };
203 | },
204 | b,
205 | a.g.return
206 | );
207 | a.g.return(b);
208 | return G(a);
209 | }
210 | function ra(a, b, c, d) {
211 | try {
212 | var e = b.call(a.g.i, c);
213 | if (!(e instanceof Object))
214 | throw new TypeError('Iterator result ' + e + ' is not an object');
215 | if (!e.done) return (a.g.l = !1), e;
216 | var g = e.value;
217 | } catch (f) {
218 | return (a.g.i = null), oa(a.g, f), G(a);
219 | }
220 | a.g.i = null;
221 | d.call(a.g, g);
222 | return G(a);
223 | }
224 | function G(a) {
225 | for (; a.g.g; )
226 | try {
227 | var b = a.h(a.g);
228 | if (b) return (a.g.l = !1), { value: b.value, done: !1 };
229 | } catch (c) {
230 | (a.g.h = void 0), oa(a.g, c);
231 | }
232 | a.g.l = !1;
233 | if (a.g.j) {
234 | b = a.g.j;
235 | a.g.j = null;
236 | if (b.ga) throw b.fa;
237 | return { value: b.return, done: !0 };
238 | }
239 | return { value: void 0, done: !0 };
240 | }
241 | function sa(a) {
242 | this.next = function (b) {
243 | na(a.g);
244 | a.g.i ? (b = ra(a, a.g.i.next, b, a.g.s)) : (a.g.s(b), (b = G(a)));
245 | return b;
246 | };
247 | this.throw = function (b) {
248 | na(a.g);
249 | a.g.i ? (b = ra(a, a.g.i['throw'], b, a.g.s)) : (oa(a.g, b), (b = G(a)));
250 | return b;
251 | };
252 | this.return = function (b) {
253 | return qa(a, b);
254 | };
255 | this[Symbol.iterator] = function () {
256 | return this;
257 | };
258 | }
259 | function ta(a) {
260 | function b(d) {
261 | return a.next(d);
262 | }
263 | function c(d) {
264 | return a.throw(d);
265 | }
266 | return new Promise(function (d, e) {
267 | function g(f) {
268 | f.done ? d(f.value) : Promise.resolve(f.value).then(b, c).then(g, e);
269 | }
270 | g(a.next());
271 | });
272 | }
273 | function I(a) {
274 | return ta(new sa(new pa(a)));
275 | }
276 | B('Promise', function (a) {
277 | function b(f) {
278 | this.h = 0;
279 | this.i = void 0;
280 | this.g = [];
281 | this.s = !1;
282 | var h = this.j();
283 | try {
284 | f(h.resolve, h.reject);
285 | } catch (k) {
286 | h.reject(k);
287 | }
288 | }
289 | function c() {
290 | this.g = null;
291 | }
292 | function d(f) {
293 | return f instanceof b
294 | ? f
295 | : new b(function (h) {
296 | h(f);
297 | });
298 | }
299 | if (a) return a;
300 | c.prototype.h = function (f) {
301 | if (null == this.g) {
302 | this.g = [];
303 | var h = this;
304 | this.i(function () {
305 | h.l();
306 | });
307 | }
308 | this.g.push(f);
309 | };
310 | var e = y.setTimeout;
311 | c.prototype.i = function (f) {
312 | e(f, 0);
313 | };
314 | c.prototype.l = function () {
315 | for (; this.g && this.g.length; ) {
316 | var f = this.g;
317 | this.g = [];
318 | for (var h = 0; h < f.length; ++h) {
319 | var k = f[h];
320 | f[h] = null;
321 | try {
322 | k();
323 | } catch (l) {
324 | this.j(l);
325 | }
326 | }
327 | }
328 | this.g = null;
329 | };
330 | c.prototype.j = function (f) {
331 | this.i(function () {
332 | throw f;
333 | });
334 | };
335 | b.prototype.j = function () {
336 | function f(l) {
337 | return function (m) {
338 | k || ((k = !0), l.call(h, m));
339 | };
340 | }
341 | var h = this,
342 | k = !1;
343 | return { resolve: f(this.D), reject: f(this.l) };
344 | };
345 | b.prototype.D = function (f) {
346 | if (f === this)
347 | this.l(new TypeError('A Promise cannot resolve to itself'));
348 | else if (f instanceof b) this.H(f);
349 | else {
350 | a: switch (typeof f) {
351 | case 'object':
352 | var h = null != f;
353 | break a;
354 | case 'function':
355 | h = !0;
356 | break a;
357 | default:
358 | h = !1;
359 | }
360 | h ? this.A(f) : this.o(f);
361 | }
362 | };
363 | b.prototype.A = function (f) {
364 | var h = void 0;
365 | try {
366 | h = f.then;
367 | } catch (k) {
368 | this.l(k);
369 | return;
370 | }
371 | 'function' == typeof h ? this.I(h, f) : this.o(f);
372 | };
373 | b.prototype.l = function (f) {
374 | this.u(2, f);
375 | };
376 | b.prototype.o = function (f) {
377 | this.u(1, f);
378 | };
379 | b.prototype.u = function (f, h) {
380 | if (0 != this.h)
381 | throw Error(
382 | 'Cannot settle(' +
383 | f +
384 | ', ' +
385 | h +
386 | '): Promise already settled in state' +
387 | this.h
388 | );
389 | this.h = f;
390 | this.i = h;
391 | 2 === this.h && this.G();
392 | this.B();
393 | };
394 | b.prototype.G = function () {
395 | var f = this;
396 | e(function () {
397 | if (f.C()) {
398 | var h = y.console;
399 | 'undefined' !== typeof h && h.error(f.i);
400 | }
401 | }, 1);
402 | };
403 | b.prototype.C = function () {
404 | if (this.s) return !1;
405 | var f = y.CustomEvent,
406 | h = y.Event,
407 | k = y.dispatchEvent;
408 | if ('undefined' === typeof k) return !0;
409 | 'function' === typeof f
410 | ? (f = new f('unhandledrejection', { cancelable: !0 }))
411 | : 'function' === typeof h
412 | ? (f = new h('unhandledrejection', { cancelable: !0 }))
413 | : ((f = y.document.createEvent('CustomEvent')),
414 | f.initCustomEvent('unhandledrejection', !1, !0, f));
415 | f.promise = this;
416 | f.reason = this.i;
417 | return k(f);
418 | };
419 | b.prototype.B = function () {
420 | if (null != this.g) {
421 | for (var f = 0; f < this.g.length; ++f) g.h(this.g[f]);
422 | this.g = null;
423 | }
424 | };
425 | var g = new c();
426 | b.prototype.H = function (f) {
427 | var h = this.j();
428 | f.M(h.resolve, h.reject);
429 | };
430 | b.prototype.I = function (f, h) {
431 | var k = this.j();
432 | try {
433 | f.call(h, k.resolve, k.reject);
434 | } catch (l) {
435 | k.reject(l);
436 | }
437 | };
438 | b.prototype.then = function (f, h) {
439 | function k(p, n) {
440 | return 'function' == typeof p
441 | ? function (q) {
442 | try {
443 | l(p(q));
444 | } catch (t) {
445 | m(t);
446 | }
447 | }
448 | : n;
449 | }
450 | var l,
451 | m,
452 | r = new b(function (p, n) {
453 | l = p;
454 | m = n;
455 | });
456 | this.M(k(f, l), k(h, m));
457 | return r;
458 | };
459 | b.prototype.catch = function (f) {
460 | return this.then(void 0, f);
461 | };
462 | b.prototype.M = function (f, h) {
463 | function k() {
464 | switch (l.h) {
465 | case 1:
466 | f(l.i);
467 | break;
468 | case 2:
469 | h(l.i);
470 | break;
471 | default:
472 | throw Error('Unexpected state: ' + l.h);
473 | }
474 | }
475 | var l = this;
476 | null == this.g ? g.h(k) : this.g.push(k);
477 | this.s = !0;
478 | };
479 | b.resolve = d;
480 | b.reject = function (f) {
481 | return new b(function (h, k) {
482 | k(f);
483 | });
484 | };
485 | b.race = function (f) {
486 | return new b(function (h, k) {
487 | for (var l = C(f), m = l.next(); !m.done; m = l.next())
488 | d(m.value).M(h, k);
489 | });
490 | };
491 | b.all = function (f) {
492 | var h = C(f),
493 | k = h.next();
494 | return k.done
495 | ? d([])
496 | : new b(function (l, m) {
497 | function r(q) {
498 | return function (t) {
499 | p[q] = t;
500 | n--;
501 | 0 == n && l(p);
502 | };
503 | }
504 | var p = [],
505 | n = 0;
506 | do
507 | p.push(void 0),
508 | n++,
509 | d(k.value).M(r(p.length - 1), m),
510 | (k = h.next());
511 | while (!k.done);
512 | });
513 | };
514 | return b;
515 | });
516 | function ua(a, b) {
517 | a instanceof String && (a += '');
518 | var c = 0,
519 | d = !1,
520 | e = {
521 | next: function () {
522 | if (!d && c < a.length) {
523 | var g = c++;
524 | return { value: b(g, a[g]), done: !1 };
525 | }
526 | d = !0;
527 | return { done: !0, value: void 0 };
528 | },
529 | };
530 | e[Symbol.iterator] = function () {
531 | return e;
532 | };
533 | return e;
534 | }
535 | var va =
536 | 'function' == typeof Object.assign
537 | ? Object.assign
538 | : function (a, b) {
539 | for (var c = 1; c < arguments.length; c++) {
540 | var d = arguments[c];
541 | if (d)
542 | for (var e in d)
543 | Object.prototype.hasOwnProperty.call(d, e) && (a[e] = d[e]);
544 | }
545 | return a;
546 | };
547 | B('Object.assign', function (a) {
548 | return a || va;
549 | });
550 | B('Object.is', function (a) {
551 | return a
552 | ? a
553 | : function (b, c) {
554 | return b === c ? 0 !== b || 1 / b === 1 / c : b !== b && c !== c;
555 | };
556 | });
557 | B('Array.prototype.includes', function (a) {
558 | return a
559 | ? a
560 | : function (b, c) {
561 | var d = this;
562 | d instanceof String && (d = String(d));
563 | var e = d.length;
564 | c = c || 0;
565 | for (0 > c && (c = Math.max(c + e, 0)); c < e; c++) {
566 | var g = d[c];
567 | if (g === b || Object.is(g, b)) return !0;
568 | }
569 | return !1;
570 | };
571 | });
572 | B('String.prototype.includes', function (a) {
573 | return a
574 | ? a
575 | : function (b, c) {
576 | if (null == this)
577 | throw new TypeError(
578 | "The 'this' value for String.prototype.includes must not be null or undefined"
579 | );
580 | if (b instanceof RegExp)
581 | throw new TypeError(
582 | 'First argument to String.prototype.includes must not be a regular expression'
583 | );
584 | return -1 !== this.indexOf(b, c || 0);
585 | };
586 | });
587 | B('Array.prototype.keys', function (a) {
588 | return a
589 | ? a
590 | : function () {
591 | return ua(this, function (b) {
592 | return b;
593 | });
594 | };
595 | });
596 | var wa = this || self;
597 | function J(a, b) {
598 | a = a.split('.');
599 | var c = wa;
600 | a[0] in c ||
601 | 'undefined' == typeof c.execScript ||
602 | c.execScript('var ' + a[0]);
603 | for (var d; a.length && (d = a.shift()); )
604 | a.length || void 0 === b
605 | ? c[d] && c[d] !== Object.prototype[d]
606 | ? (c = c[d])
607 | : (c = c[d] = {})
608 | : (c[d] = b);
609 | }
610 | function K() {
611 | throw Error('Invalid UTF8');
612 | }
613 | function xa(a, b) {
614 | b = String.fromCharCode.apply(null, b);
615 | return null == a ? b : a + b;
616 | }
617 | var ya,
618 | za = 'undefined' !== typeof TextDecoder,
619 | Aa,
620 | Ba = 'undefined' !== typeof TextEncoder;
621 | var Ca = {},
622 | L = null;
623 | function Da(a) {
624 | var b;
625 | void 0 === b && (b = 0);
626 | Ea();
627 | b = Ca[b];
628 | for (
629 | var c = Array(Math.floor(a.length / 3)), d = b[64] || '', e = 0, g = 0;
630 | e < a.length - 2;
631 | e += 3
632 | ) {
633 | var f = a[e],
634 | h = a[e + 1],
635 | k = a[e + 2],
636 | l = b[f >> 2];
637 | f = b[((f & 3) << 4) | (h >> 4)];
638 | h = b[((h & 15) << 2) | (k >> 6)];
639 | k = b[k & 63];
640 | c[g++] = l + f + h + k;
641 | }
642 | l = 0;
643 | k = d;
644 | switch (a.length - e) {
645 | case 2:
646 | (l = a[e + 1]), (k = b[(l & 15) << 2] || d);
647 | case 1:
648 | (a = a[e]), (c[g] = b[a >> 2] + b[((a & 3) << 4) | (l >> 4)] + k + d);
649 | }
650 | return c.join('');
651 | }
652 | function Fa(a) {
653 | var b = a.length,
654 | c = (3 * b) / 4;
655 | c % 3
656 | ? (c = Math.floor(c))
657 | : -1 != '=.'.indexOf(a[b - 1]) &&
658 | (c = -1 != '=.'.indexOf(a[b - 2]) ? c - 2 : c - 1);
659 | var d = new Uint8Array(c),
660 | e = 0;
661 | Ga(a, function (g) {
662 | d[e++] = g;
663 | });
664 | return e !== c ? d.subarray(0, e) : d;
665 | }
666 | function Ga(a, b) {
667 | function c(k) {
668 | for (; d < a.length; ) {
669 | var l = a.charAt(d++),
670 | m = L[l];
671 | if (null != m) return m;
672 | if (!/^[\s\xa0]*$/.test(l))
673 | throw Error('Unknown base64 encoding at char: ' + l);
674 | }
675 | return k;
676 | }
677 | Ea();
678 | for (var d = 0; ; ) {
679 | var e = c(-1),
680 | g = c(0),
681 | f = c(64),
682 | h = c(64);
683 | if (64 === h && -1 === e) break;
684 | b((e << 2) | (g >> 4));
685 | 64 != f &&
686 | (b(((g << 4) & 240) | (f >> 2)), 64 != h && b(((f << 6) & 192) | h));
687 | }
688 | }
689 | function Ea() {
690 | if (!L) {
691 | L = {};
692 | for (
693 | var a =
694 | 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'.split(
695 | ''
696 | ),
697 | b = ['+/=', '+/', '-_=', '-_.', '-_'],
698 | c = 0;
699 | 5 > c;
700 | c++
701 | ) {
702 | var d = a.concat(b[c].split(''));
703 | Ca[c] = d;
704 | for (var e = 0; e < d.length; e++) {
705 | var g = d[e];
706 | void 0 === L[g] && (L[g] = e);
707 | }
708 | }
709 | }
710 | }
711 | var Ha = 'function' === typeof Uint8Array;
712 | function Ia(a) {
713 | return Ha && null != a && a instanceof Uint8Array;
714 | }
715 | var Ja;
716 | function Ka(a) {
717 | this.L = a;
718 | if (null !== a && 0 === a.length)
719 | throw Error('ByteString should be constructed with non-empty values');
720 | }
721 | var La = 'function' === typeof Uint8Array.prototype.slice,
722 | M = 0,
723 | N = 0;
724 | function Ma(a, b) {
725 | if (a.constructor === Uint8Array) return a;
726 | if (a.constructor === ArrayBuffer) return new Uint8Array(a);
727 | if (a.constructor === Array) return new Uint8Array(a);
728 | if (a.constructor === String) return Fa(a);
729 | if (a.constructor === Ka) {
730 | if (!b && (b = a.L) && b.constructor === Uint8Array) return b;
731 | b = a.L;
732 | b = null == b || Ia(b) ? b : 'string' === typeof b ? Fa(b) : null;
733 | return (a = a.L = b) ? new Uint8Array(a) : Ja || (Ja = new Uint8Array(0));
734 | }
735 | if (a instanceof Uint8Array)
736 | return new Uint8Array(a.buffer, a.byteOffset, a.byteLength);
737 | throw Error(
738 | 'Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, or Array of numbers'
739 | );
740 | }
741 | function Na(a, b) {
742 | return Error('Invalid wire type: ' + a + ' (at position ' + b + ')');
743 | }
744 | function Oa() {
745 | return Error('Failed to read varint, encoding is invalid.');
746 | }
747 | function Pa(a, b) {
748 | b = void 0 === b ? {} : b;
749 | b = void 0 === b.v ? !1 : b.v;
750 | this.h = null;
751 | this.g = this.i = this.j = 0;
752 | this.v = b;
753 | a && Qa(this, a);
754 | }
755 | function Qa(a, b) {
756 | a.h = Ma(b, a.v);
757 | a.j = 0;
758 | a.i = a.h.length;
759 | a.g = a.j;
760 | }
761 | Pa.prototype.reset = function () {
762 | this.g = this.j;
763 | };
764 | function O(a) {
765 | if (a.g > a.i)
766 | throw Error(
767 | 'Tried to read past the end of the data ' + a.g + ' > ' + a.i
768 | );
769 | }
770 | function Q(a) {
771 | var b = a.h,
772 | c = b[a.g],
773 | d = c & 127;
774 | if (128 > c) return (a.g += 1), O(a), d;
775 | c = b[a.g + 1];
776 | d |= (c & 127) << 7;
777 | if (128 > c) return (a.g += 2), O(a), d;
778 | c = b[a.g + 2];
779 | d |= (c & 127) << 14;
780 | if (128 > c) return (a.g += 3), O(a), d;
781 | c = b[a.g + 3];
782 | d |= (c & 127) << 21;
783 | if (128 > c) return (a.g += 4), O(a), d;
784 | c = b[a.g + 4];
785 | a.g += 5;
786 | d |= (c & 15) << 28;
787 | if (128 > c) return O(a), d;
788 | if (
789 | 128 <= b[a.g++] &&
790 | 128 <= b[a.g++] &&
791 | 128 <= b[a.g++] &&
792 | 128 <= b[a.g++] &&
793 | 128 <= b[a.g++]
794 | )
795 | throw Oa();
796 | O(a);
797 | return d;
798 | }
799 | var Ra = [];
800 | function Sa() {
801 | this.g = [];
802 | }
803 | Sa.prototype.length = function () {
804 | return this.g.length;
805 | };
806 | Sa.prototype.end = function () {
807 | var a = this.g;
808 | this.g = [];
809 | return a;
810 | };
811 | function R(a, b) {
812 | for (; 127 < b; ) a.g.push((b & 127) | 128), (b >>>= 7);
813 | a.g.push(b);
814 | }
815 | function Ta(a) {
816 | var b = {},
817 | c = void 0 === b.W ? !1 : b.W;
818 | this.l = { v: void 0 === b.v ? !1 : b.v };
819 | this.W = c;
820 | b = this.l;
821 | Ra.length
822 | ? ((c = Ra.pop()), b && (c.v = b.v), a && Qa(c, a), (a = c))
823 | : (a = new Pa(a, b));
824 | this.g = a;
825 | this.j = this.g.g;
826 | this.h = this.i = -1;
827 | }
828 | Ta.prototype.reset = function () {
829 | this.g.reset();
830 | this.j = this.g.g;
831 | this.h = this.i = -1;
832 | };
833 | function Ua(a) {
834 | var b = a.g;
835 | if (b.g == b.i) return !1;
836 | a.j = a.g.g;
837 | var c = Q(a.g) >>> 0;
838 | b = c >>> 3;
839 | c &= 7;
840 | if (!(0 <= c && 5 >= c)) throw Na(c, a.j);
841 | if (1 > b)
842 | throw Error('Invalid field number: ' + b + ' (at position ' + a.j + ')');
843 | a.i = b;
844 | a.h = c;
845 | return !0;
846 | }
847 | function Va(a) {
848 | switch (a.h) {
849 | case 0:
850 | if (0 != a.h) Va(a);
851 | else
852 | a: {
853 | a = a.g;
854 | for (var b = a.g, c = b + 10; b < c; )
855 | if (0 === (a.h[b++] & 128)) {
856 | a.g = b;
857 | O(a);
858 | break a;
859 | }
860 | throw Oa();
861 | }
862 | break;
863 | case 1:
864 | a = a.g;
865 | a.g += 8;
866 | O(a);
867 | break;
868 | case 2:
869 | 2 != a.h ? Va(a) : ((b = Q(a.g) >>> 0), (a = a.g), (a.g += b), O(a));
870 | break;
871 | case 5:
872 | a = a.g;
873 | a.g += 4;
874 | O(a);
875 | break;
876 | case 3:
877 | b = a.i;
878 | do {
879 | if (!Ua(a)) throw Error('Unmatched start-group tag: stream EOF');
880 | if (4 == a.h) {
881 | if (a.i != b) throw Error('Unmatched end-group tag');
882 | break;
883 | }
884 | Va(a);
885 | } while (1);
886 | break;
887 | default:
888 | throw Na(a.h, a.j);
889 | }
890 | }
891 | var Wa = [];
892 | function Xa() {
893 | this.i = [];
894 | this.h = 0;
895 | this.g = new Sa();
896 | }
897 | function S(a, b) {
898 | 0 !== b.length && (a.i.push(b), (a.h += b.length));
899 | }
900 | function Ya(a, b) {
901 | if ((b = b.ca)) {
902 | S(a, a.g.end());
903 | for (var c = 0; c < b.length; c++) S(a, b[c]);
904 | }
905 | }
906 | var T =
907 | 'function' === typeof Symbol && 'symbol' === typeof Symbol()
908 | ? Symbol(void 0)
909 | : void 0;
910 | function Za(a, b) {
911 | Object.isFrozen(a) ||
912 | (T
913 | ? (a[T] |= b)
914 | : void 0 !== a.N
915 | ? (a.N |= b)
916 | : Object.defineProperties(a, {
917 | N: { value: b, configurable: !0, writable: !0, enumerable: !1 },
918 | }));
919 | }
920 | function $a(a) {
921 | var b;
922 | T ? (b = a[T]) : (b = a.N);
923 | return null == b ? 0 : b;
924 | }
925 | function U(a) {
926 | Za(a, 1);
927 | return a;
928 | }
929 | function ab(a) {
930 | return Array.isArray(a) ? !!($a(a) & 2) : !1;
931 | }
932 | function bb(a) {
933 | if (!Array.isArray(a)) throw Error('cannot mark non-array as immutable');
934 | Za(a, 2);
935 | }
936 | function cb(a) {
937 | return (
938 | null !== a &&
939 | 'object' === typeof a &&
940 | !Array.isArray(a) &&
941 | a.constructor === Object
942 | );
943 | }
944 | var db = Object.freeze(U([]));
945 | function eb(a) {
946 | if (ab(a.m)) throw Error('Cannot mutate an immutable Message');
947 | }
948 | var fb =
949 | 'undefined' != typeof Symbol && 'undefined' != typeof Symbol.hasInstance;
950 | function gb(a) {
951 | return { value: a, configurable: !1, writable: !1, enumerable: !1 };
952 | }
953 | function V(a, b, c) {
954 | return -1 === b
955 | ? null
956 | : b >= a.i
957 | ? a.g
958 | ? a.g[b]
959 | : void 0
960 | : (void 0 === c ? 0 : c) && a.g && ((c = a.g[b]), null != c)
961 | ? c
962 | : a.m[b + a.h];
963 | }
964 | function W(a, b, c, d) {
965 | d = void 0 === d ? !1 : d;
966 | eb(a);
967 | b < a.i && !d
968 | ? (a.m[b + a.h] = c)
969 | : ((a.g || (a.g = a.m[a.i + a.h] = {}))[b] = c);
970 | }
971 | function hb(a, b, c, d) {
972 | c = void 0 === c ? !0 : c;
973 | d = void 0 === d ? !1 : d;
974 | var e = V(a, b, d);
975 | null == e && (e = db);
976 | if (ab(a.m)) c && (bb(e), Object.freeze(e));
977 | else if (e === db || ab(e)) (e = U(e.slice())), W(a, b, e, d);
978 | return e;
979 | }
980 | function X(a, b, c) {
981 | a = V(a, b);
982 | a = null == a ? a : +a;
983 | return null == a ? (void 0 === c ? 0 : c) : a;
984 | }
985 | function ib(a, b, c, d) {
986 | a.j || (a.j = {});
987 | var e = ab(a.m),
988 | g = a.j[c];
989 | if (!g) {
990 | d = hb(a, c, !0, void 0 === d ? !1 : d);
991 | g = [];
992 | e = e || ab(d);
993 | for (var f = 0; f < d.length; f++) (g[f] = new b(d[f])), e && bb(g[f].m);
994 | e && (bb(g), Object.freeze(g));
995 | a.j[c] = g;
996 | }
997 | return g;
998 | }
999 | function jb(a, b, c, d, e) {
1000 | var g = void 0 === g ? !1 : g;
1001 | eb(a);
1002 | g = ib(a, c, b, g);
1003 | c = d ? d : new c();
1004 | a = hb(a, b);
1005 | void 0 != e
1006 | ? (g.splice(e, 0, c), a.splice(e, 0, c.m))
1007 | : (g.push(c), a.push(c.m));
1008 | return c;
1009 | }
1010 | function kb(a, b) {
1011 | a = V(a, b);
1012 | return null == a ? 0 : a;
1013 | }
1014 | function lb(a, b) {
1015 | a = V(a, b);
1016 | return null == a ? '' : a;
1017 | }
1018 | function mb(a) {
1019 | switch (typeof a) {
1020 | case 'number':
1021 | return isFinite(a) ? a : String(a);
1022 | case 'object':
1023 | if (a && !Array.isArray(a)) {
1024 | if (Ia(a)) return Da(a);
1025 | if (a instanceof Ka) {
1026 | var b = a.L;
1027 | b =
1028 | null == b || 'string' === typeof b
1029 | ? b
1030 | : Ha && b instanceof Uint8Array
1031 | ? Da(b)
1032 | : null;
1033 | return (a.L = b) || '';
1034 | }
1035 | }
1036 | }
1037 | return a;
1038 | }
1039 | function nb(a) {
1040 | var b = ob;
1041 | b = void 0 === b ? pb : b;
1042 | return qb(a, b);
1043 | }
1044 | function rb(a, b) {
1045 | if (null != a) {
1046 | if (Array.isArray(a)) a = qb(a, b);
1047 | else if (cb(a)) {
1048 | var c = {},
1049 | d;
1050 | for (d in a) c[d] = rb(a[d], b);
1051 | a = c;
1052 | } else a = b(a);
1053 | return a;
1054 | }
1055 | }
1056 | function qb(a, b) {
1057 | for (var c = a.slice(), d = 0; d < c.length; d++) c[d] = rb(c[d], b);
1058 | Array.isArray(a) && $a(a) & 1 && U(c);
1059 | return c;
1060 | }
1061 | function ob(a) {
1062 | if (a && 'object' == typeof a && a.toJSON) return a.toJSON();
1063 | a = mb(a);
1064 | return Array.isArray(a) ? nb(a) : a;
1065 | }
1066 | function pb(a) {
1067 | return Ia(a) ? new Uint8Array(a) : a;
1068 | }
1069 | function sb(a, b, c) {
1070 | a || (a = tb);
1071 | tb = null;
1072 | var d = this.constructor.h;
1073 | a || (a = d ? [d] : []);
1074 | this.h = (d ? 0 : -1) - (this.constructor.g || 0);
1075 | this.j = void 0;
1076 | this.m = a;
1077 | a: {
1078 | d = this.m.length;
1079 | a = d - 1;
1080 | if (d && ((d = this.m[a]), cb(d))) {
1081 | this.i = a - this.h;
1082 | this.g = d;
1083 | break a;
1084 | }
1085 | void 0 !== b && -1 < b
1086 | ? ((this.i = Math.max(b, a + 1 - this.h)), (this.g = void 0))
1087 | : (this.i = Number.MAX_VALUE);
1088 | }
1089 | if (c)
1090 | for (b = 0; b < c.length; b++)
1091 | if (((a = c[b]), a < this.i))
1092 | (a += this.h),
1093 | (d = this.m[a]) ? Array.isArray(d) && U(d) : (this.m[a] = db);
1094 | else {
1095 | d = this.g || (this.g = this.m[this.i + this.h] = {});
1096 | var e = d[a];
1097 | e ? Array.isArray(e) && U(e) : (d[a] = db);
1098 | }
1099 | }
1100 | sb.prototype.toJSON = function () {
1101 | return nb(this.m);
1102 | };
1103 | sb.prototype.toString = function () {
1104 | return this.m.toString();
1105 | };
1106 | var tb;
1107 | function ub() {
1108 | sb.apply(this, arguments);
1109 | }
1110 | D(ub, sb);
1111 | if (fb) {
1112 | var vb = {};
1113 | Object.defineProperties(
1114 | ub,
1115 | ((vb[Symbol.hasInstance] = gb(function () {
1116 | throw Error('Cannot perform instanceof checks for MutableMessage');
1117 | })),
1118 | vb)
1119 | );
1120 | }
1121 | function wb(a, b, c) {
1122 | if (c) {
1123 | var d = {},
1124 | e;
1125 | for (e in c) {
1126 | var g = c[e],
1127 | f = g.ja;
1128 | f ||
1129 | ((d.F = g.pa || g.ha.P),
1130 | g.ba
1131 | ? ((d.U = xb(g.ba)),
1132 | (f = (function (h) {
1133 | return function (k, l, m) {
1134 | return h.F(k, l, m, h.U);
1135 | };
1136 | })(d)))
1137 | : g.da
1138 | ? ((d.T = yb(g.X.g, g.da)),
1139 | (f = (function (h) {
1140 | return function (k, l, m) {
1141 | return h.F(k, l, m, h.T);
1142 | };
1143 | })(d)))
1144 | : (f = d.F),
1145 | (g.ja = f));
1146 | f(b, a, g.X);
1147 | d = { F: d.F, U: d.U, T: d.T };
1148 | }
1149 | }
1150 | Ya(b, a);
1151 | }
1152 | var zb = Symbol();
1153 | function Ab(a, b, c) {
1154 | return (
1155 | a[zb] ||
1156 | (a[zb] = function (d, e) {
1157 | return b(d, e, c);
1158 | })
1159 | );
1160 | }
1161 | function Bb(a) {
1162 | var b = a[zb];
1163 | if (!b) {
1164 | var c = Cb(a);
1165 | b = function (d, e) {
1166 | return Db(d, e, c);
1167 | };
1168 | a[zb] = b;
1169 | }
1170 | return b;
1171 | }
1172 | function Eb(a) {
1173 | var b = a.ba;
1174 | if (b) return Bb(b);
1175 | if ((b = a.oa)) return Ab(a.X.g, b, a.da);
1176 | }
1177 | function Fb(a) {
1178 | var b = Eb(a),
1179 | c = a.X,
1180 | d = a.ha.O;
1181 | return b
1182 | ? function (e, g) {
1183 | return d(e, g, c, b);
1184 | }
1185 | : function (e, g) {
1186 | return d(e, g, c);
1187 | };
1188 | }
1189 | function Gb(a, b, c, d, e, g) {
1190 | a = a();
1191 | var f = 0;
1192 | a.length && 'number' !== typeof a[0] && (c(b, a[0]), f++);
1193 | for (; f < a.length; ) {
1194 | c = a[f++];
1195 | for (var h = f + 1; h < a.length && 'number' !== typeof a[h]; ) h++;
1196 | var k = a[f++];
1197 | h -= f;
1198 | switch (h) {
1199 | case 0:
1200 | d(b, c, k);
1201 | break;
1202 | case 1:
1203 | d(b, c, k, a[f++]);
1204 | break;
1205 | case 2:
1206 | e(b, c, k, a[f++], a[f++]);
1207 | break;
1208 | case 3:
1209 | h = a[f++];
1210 | var l = a[f++],
1211 | m = a[f++];
1212 | Array.isArray(m) ? e(b, c, k, h, l, m) : g(b, c, k, h, l, m);
1213 | break;
1214 | case 4:
1215 | g(b, c, k, a[f++], a[f++], a[f++], a[f++]);
1216 | break;
1217 | default:
1218 | throw Error('unexpected number of binary field arguments: ' + h);
1219 | }
1220 | }
1221 | return b;
1222 | }
1223 | var Hb = Symbol();
1224 | function xb(a) {
1225 | var b = a[Hb];
1226 | if (!b) {
1227 | var c = Ib(a);
1228 | b = function (d, e) {
1229 | return Jb(d, e, c);
1230 | };
1231 | a[Hb] = b;
1232 | }
1233 | return b;
1234 | }
1235 | function yb(a, b) {
1236 | var c = a[Hb];
1237 | c ||
1238 | ((c = function (d, e) {
1239 | return wb(d, e, b);
1240 | }),
1241 | (a[Hb] = c));
1242 | return c;
1243 | }
1244 | var Kb = Symbol();
1245 | function Lb(a, b) {
1246 | a.push(b);
1247 | }
1248 | function Mb(a, b, c) {
1249 | a.push(b, c.P);
1250 | }
1251 | function Nb(a, b, c, d, e) {
1252 | var g = xb(e),
1253 | f = c.P;
1254 | a.push(b, function (h, k, l) {
1255 | return f(h, k, l, d, g);
1256 | });
1257 | }
1258 | function Ob(a, b, c, d, e, g) {
1259 | var f = yb(d, g),
1260 | h = c.P;
1261 | a.push(b, function (k, l, m) {
1262 | return h(k, l, m, d, f);
1263 | });
1264 | }
1265 | function Ib(a) {
1266 | var b = a[Kb];
1267 | return b ? b : Gb(a, (a[Kb] = []), Lb, Mb, Nb, Ob);
1268 | }
1269 | var Pb = Symbol();
1270 | function Qb(a, b) {
1271 | a[0] = b;
1272 | }
1273 | function Rb(a, b, c, d) {
1274 | var e = c.O;
1275 | a[b] = d
1276 | ? function (g, f, h) {
1277 | return e(g, f, h, d);
1278 | }
1279 | : e;
1280 | }
1281 | function Sb(a, b, c, d, e, g) {
1282 | var f = c.O,
1283 | h = Bb(e);
1284 | a[b] = function (k, l, m) {
1285 | return f(k, l, m, d, h, g);
1286 | };
1287 | }
1288 | function Tb(a, b, c, d, e, g, f) {
1289 | var h = c.O,
1290 | k = Ab(d, e, g);
1291 | a[b] = function (l, m, r) {
1292 | return h(l, m, r, d, k, f);
1293 | };
1294 | }
1295 | function Cb(a) {
1296 | var b = a[Pb];
1297 | return b ? b : Gb(a, (a[Pb] = {}), Qb, Rb, Sb, Tb);
1298 | }
1299 | function Db(a, b, c) {
1300 | for (; Ua(b) && 4 != b.h; ) {
1301 | var d = b.i,
1302 | e = c[d];
1303 | if (!e) {
1304 | var g = c[0];
1305 | g && (g = g[d]) && (e = c[d] = Fb(g));
1306 | }
1307 | if (!e || !e(b, a, d))
1308 | if (((e = b), (d = a), (g = e.j), Va(e), !e.W)) {
1309 | var f = e.g.h;
1310 | e = e.g.g;
1311 | e =
1312 | g === e
1313 | ? Ja || (Ja = new Uint8Array(0))
1314 | : La
1315 | ? f.slice(g, e)
1316 | : new Uint8Array(f.subarray(g, e));
1317 | (g = d.ca) ? g.push(e) : (d.ca = [e]);
1318 | }
1319 | }
1320 | return a;
1321 | }
1322 | function Ub(a, b, c) {
1323 | if (Wa.length) {
1324 | var d = Wa.pop();
1325 | a && (Qa(d.g, a), (d.i = -1), (d.h = -1));
1326 | a = d;
1327 | } else a = new Ta(a);
1328 | try {
1329 | return Db(new b(), a, Cb(c));
1330 | } finally {
1331 | (b = a.g),
1332 | (b.h = null),
1333 | (b.j = 0),
1334 | (b.i = 0),
1335 | (b.g = 0),
1336 | (b.v = !1),
1337 | (a.i = -1),
1338 | (a.h = -1),
1339 | 100 > Wa.length && Wa.push(a);
1340 | }
1341 | }
1342 | function Jb(a, b, c) {
1343 | for (var d = c.length, e = 1 == d % 2, g = e ? 1 : 0; g < d; g += 2)
1344 | (0, c[g + 1])(b, a, c[g]);
1345 | wb(a, b, e ? c[0] : void 0);
1346 | }
1347 | function Vb(a, b) {
1348 | var c = new Xa();
1349 | Jb(a, c, Ib(b));
1350 | S(c, c.g.end());
1351 | a = new Uint8Array(c.h);
1352 | b = c.i;
1353 | for (var d = b.length, e = 0, g = 0; g < d; g++) {
1354 | var f = b[g];
1355 | a.set(f, e);
1356 | e += f.length;
1357 | }
1358 | c.i = [a];
1359 | return a;
1360 | }
1361 | function Wb(a, b) {
1362 | return { O: a, P: b };
1363 | }
1364 | var Y = Wb(
1365 | function (a, b, c) {
1366 | if (5 !== a.h) return !1;
1367 | a = a.g;
1368 | var d = a.h[a.g];
1369 | var e = a.h[a.g + 1];
1370 | var g = a.h[a.g + 2],
1371 | f = a.h[a.g + 3];
1372 | a.g += 4;
1373 | O(a);
1374 | e = ((d << 0) | (e << 8) | (g << 16) | (f << 24)) >>> 0;
1375 | a = 2 * (e >> 31) + 1;
1376 | d = (e >>> 23) & 255;
1377 | e &= 8388607;
1378 | W(
1379 | b,
1380 | c,
1381 | 255 == d
1382 | ? e
1383 | ? NaN
1384 | : Infinity * a
1385 | : 0 == d
1386 | ? a * Math.pow(2, -149) * e
1387 | : a * Math.pow(2, d - 150) * (e + Math.pow(2, 23))
1388 | );
1389 | return !0;
1390 | },
1391 | function (a, b, c) {
1392 | b = V(b, c);
1393 | if (null != b) {
1394 | R(a.g, 8 * c + 5);
1395 | a = a.g;
1396 | var d = b;
1397 | d = (c = 0 > d ? 1 : 0) ? -d : d;
1398 | 0 === d
1399 | ? 0 < 1 / d
1400 | ? (M = N = 0)
1401 | : ((N = 0), (M = 2147483648))
1402 | : isNaN(d)
1403 | ? ((N = 0), (M = 2147483647))
1404 | : 3.4028234663852886e38 < d
1405 | ? ((N = 0), (M = ((c << 31) | 2139095040) >>> 0))
1406 | : 1.1754943508222875e-38 > d
1407 | ? ((d = Math.round(d / Math.pow(2, -149))),
1408 | (N = 0),
1409 | (M = ((c << 31) | d) >>> 0))
1410 | : ((b = Math.floor(Math.log(d) / Math.LN2)),
1411 | (d *= Math.pow(2, -b)),
1412 | (d = Math.round(8388608 * d)),
1413 | 16777216 <= d && ++b,
1414 | (N = 0),
1415 | (M = ((c << 31) | ((b + 127) << 23) | (d & 8388607)) >>> 0));
1416 | c = M;
1417 | a.g.push((c >>> 0) & 255);
1418 | a.g.push((c >>> 8) & 255);
1419 | a.g.push((c >>> 16) & 255);
1420 | a.g.push((c >>> 24) & 255);
1421 | }
1422 | }
1423 | ),
1424 | Xb = Wb(
1425 | function (a, b, c) {
1426 | if (0 !== a.h) return !1;
1427 | for (var d = a.g, e = 128, g = 0, f = (a = 0); 4 > f && 128 <= e; f++)
1428 | (e = d.h[d.g++]), O(d), (g |= (e & 127) << (7 * f));
1429 | 128 <= e &&
1430 | ((e = d.h[d.g++]),
1431 | O(d),
1432 | (g |= (e & 127) << 28),
1433 | (a |= (e & 127) >> 4));
1434 | if (128 <= e)
1435 | for (f = 0; 5 > f && 128 <= e; f++)
1436 | (e = d.h[d.g++]), O(d), (a |= (e & 127) << (7 * f + 3));
1437 | if (128 > e) {
1438 | d = g >>> 0;
1439 | e = a >>> 0;
1440 | if ((a = e & 2147483648))
1441 | (d = (~d + 1) >>> 0), (e = ~e >>> 0), 0 == d && (e = (e + 1) >>> 0);
1442 | d = 4294967296 * e + (d >>> 0);
1443 | } else throw Oa();
1444 | W(b, c, a ? -d : d);
1445 | return !0;
1446 | },
1447 | function (a, b, c) {
1448 | b = V(b, c);
1449 | if (null != b && null != b) {
1450 | R(a.g, 8 * c);
1451 | a = a.g;
1452 | var d = b;
1453 | c = 0 > d;
1454 | d = Math.abs(d);
1455 | b = d >>> 0;
1456 | d = Math.floor((d - b) / 4294967296);
1457 | d >>>= 0;
1458 | c &&
1459 | ((d = ~d >>> 0),
1460 | (b = (~b >>> 0) + 1),
1461 | 4294967295 < b && ((b = 0), d++, 4294967295 < d && (d = 0)));
1462 | M = b;
1463 | N = d;
1464 | c = M;
1465 | for (b = N; 0 < b || 127 < c; )
1466 | a.g.push((c & 127) | 128),
1467 | (c = ((c >>> 7) | (b << 25)) >>> 0),
1468 | (b >>>= 7);
1469 | a.g.push(c);
1470 | }
1471 | }
1472 | ),
1473 | Yb = Wb(
1474 | function (a, b, c) {
1475 | if (0 !== a.h) return !1;
1476 | W(b, c, Q(a.g));
1477 | return !0;
1478 | },
1479 | function (a, b, c) {
1480 | b = V(b, c);
1481 | if (null != b && null != b)
1482 | if ((R(a.g, 8 * c), (a = a.g), (c = b), 0 <= c)) R(a, c);
1483 | else {
1484 | for (b = 0; 9 > b; b++) a.g.push((c & 127) | 128), (c >>= 7);
1485 | a.g.push(1);
1486 | }
1487 | }
1488 | ),
1489 | Zb = Wb(
1490 | function (a, b, c) {
1491 | if (2 !== a.h) return !1;
1492 | var d = Q(a.g) >>> 0;
1493 | a = a.g;
1494 | var e = a.g;
1495 | a.g += d;
1496 | O(a);
1497 | a = a.h;
1498 | var g;
1499 | if (za)
1500 | (g = ya) || (g = ya = new TextDecoder('utf-8', { fatal: !0 })),
1501 | (g = g.decode(a.subarray(e, e + d)));
1502 | else {
1503 | d = e + d;
1504 | for (var f = [], h = null, k, l, m; e < d; )
1505 | (k = a[e++]),
1506 | 128 > k
1507 | ? f.push(k)
1508 | : 224 > k
1509 | ? e >= d
1510 | ? K()
1511 | : ((l = a[e++]),
1512 | 194 > k || 128 !== (l & 192)
1513 | ? (e--, K())
1514 | : f.push(((k & 31) << 6) | (l & 63)))
1515 | : 240 > k
1516 | ? e >= d - 1
1517 | ? K()
1518 | : ((l = a[e++]),
1519 | 128 !== (l & 192) ||
1520 | (224 === k && 160 > l) ||
1521 | (237 === k && 160 <= l) ||
1522 | 128 !== ((g = a[e++]) & 192)
1523 | ? (e--, K())
1524 | : f.push(((k & 15) << 12) | ((l & 63) << 6) | (g & 63)))
1525 | : 244 >= k
1526 | ? e >= d - 2
1527 | ? K()
1528 | : ((l = a[e++]),
1529 | 128 !== (l & 192) ||
1530 | 0 !== ((k << 28) + (l - 144)) >> 30 ||
1531 | 128 !== ((g = a[e++]) & 192) ||
1532 | 128 !== ((m = a[e++]) & 192)
1533 | ? (e--, K())
1534 | : ((k =
1535 | ((k & 7) << 18) |
1536 | ((l & 63) << 12) |
1537 | ((g & 63) << 6) |
1538 | (m & 63)),
1539 | (k -= 65536),
1540 | f.push(((k >> 10) & 1023) + 55296, (k & 1023) + 56320)))
1541 | : K(),
1542 | 8192 <= f.length && ((h = xa(h, f)), (f.length = 0));
1543 | g = xa(h, f);
1544 | }
1545 | W(b, c, g);
1546 | return !0;
1547 | },
1548 | function (a, b, c) {
1549 | b = V(b, c);
1550 | if (null != b) {
1551 | var d = !1;
1552 | d = void 0 === d ? !1 : d;
1553 | if (Ba) {
1554 | if (
1555 | d &&
1556 | /(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])/.test(
1557 | b
1558 | )
1559 | )
1560 | throw Error('Found an unpaired surrogate');
1561 | b = (Aa || (Aa = new TextEncoder())).encode(b);
1562 | } else {
1563 | for (
1564 | var e = 0, g = new Uint8Array(3 * b.length), f = 0;
1565 | f < b.length;
1566 | f++
1567 | ) {
1568 | var h = b.charCodeAt(f);
1569 | if (128 > h) g[e++] = h;
1570 | else {
1571 | if (2048 > h) g[e++] = (h >> 6) | 192;
1572 | else {
1573 | if (55296 <= h && 57343 >= h) {
1574 | if (56319 >= h && f < b.length) {
1575 | var k = b.charCodeAt(++f);
1576 | if (56320 <= k && 57343 >= k) {
1577 | h = 1024 * (h - 55296) + k - 56320 + 65536;
1578 | g[e++] = (h >> 18) | 240;
1579 | g[e++] = ((h >> 12) & 63) | 128;
1580 | g[e++] = ((h >> 6) & 63) | 128;
1581 | g[e++] = (h & 63) | 128;
1582 | continue;
1583 | } else f--;
1584 | }
1585 | if (d) throw Error('Found an unpaired surrogate');
1586 | h = 65533;
1587 | }
1588 | g[e++] = (h >> 12) | 224;
1589 | g[e++] = ((h >> 6) & 63) | 128;
1590 | }
1591 | g[e++] = (h & 63) | 128;
1592 | }
1593 | }
1594 | b = g.subarray(0, e);
1595 | }
1596 | R(a.g, 8 * c + 2);
1597 | R(a.g, b.length);
1598 | S(a, a.g.end());
1599 | S(a, b);
1600 | }
1601 | }
1602 | ),
1603 | $b = Wb(
1604 | function (a, b, c, d, e) {
1605 | if (2 !== a.h) return !1;
1606 | b = jb(b, c, d);
1607 | c = a.g.i;
1608 | d = Q(a.g) >>> 0;
1609 | var g = a.g.g + d,
1610 | f = g - c;
1611 | 0 >= f && ((a.g.i = g), e(b, a), (f = g - a.g.g));
1612 | if (f)
1613 | throw Error(
1614 | 'Message parsing ended unexpectedly. Expected to read ' +
1615 | (d +
1616 | ' bytes, instead read ' +
1617 | (d - f) +
1618 | ' bytes, either the data ended unexpectedly or the message misreported its own length')
1619 | );
1620 | a.g.g = g;
1621 | a.g.i = c;
1622 | return !0;
1623 | },
1624 | function (a, b, c, d, e) {
1625 | b = ib(b, d, c);
1626 | if (null != b)
1627 | for (d = 0; d < b.length; d++) {
1628 | var g = a;
1629 | R(g.g, 8 * c + 2);
1630 | var f = g.g.end();
1631 | S(g, f);
1632 | f.push(g.h);
1633 | g = f;
1634 | e(b[d], a);
1635 | f = a;
1636 | var h = g.pop();
1637 | for (h = f.h + f.g.length() - h; 127 < h; )
1638 | g.push((h & 127) | 128), (h >>>= 7), f.h++;
1639 | g.push(h);
1640 | f.h++;
1641 | }
1642 | }
1643 | );
1644 | function Z() {
1645 | ub.apply(this, arguments);
1646 | }
1647 | D(Z, ub);
1648 | if (fb) {
1649 | var ac = {};
1650 | Object.defineProperties(
1651 | Z,
1652 | ((ac[Symbol.hasInstance] = gb(Object[Symbol.hasInstance])), ac)
1653 | );
1654 | }
1655 | function bc(a) {
1656 | Z.call(this, a);
1657 | }
1658 | D(bc, Z);
1659 | function cc() {
1660 | return [1, Yb, 2, Y, 3, Zb, 4, Zb];
1661 | }
1662 | function dc(a) {
1663 | Z.call(this, a, -1, ec);
1664 | }
1665 | D(dc, Z);
1666 | dc.prototype.addClassification = function (a, b) {
1667 | jb(this, 1, bc, a, b);
1668 | return this;
1669 | };
1670 | function fc() {
1671 | return [1, $b, bc, cc];
1672 | }
1673 | var ec = [1];
1674 | function gc(a) {
1675 | Z.call(this, a);
1676 | }
1677 | D(gc, Z);
1678 | function hc() {
1679 | return [1, Y, 2, Y, 3, Y, 4, Y, 5, Y];
1680 | }
1681 | function ic(a) {
1682 | Z.call(this, a, -1, jc);
1683 | }
1684 | D(ic, Z);
1685 | function kc() {
1686 | return [1, $b, gc, hc];
1687 | }
1688 | var jc = [1];
1689 | function lc(a) {
1690 | Z.call(this, a);
1691 | }
1692 | D(lc, Z);
1693 | function mc() {
1694 | return [1, Y, 2, Y, 3, Y, 4, Y, 5, Y, 6, Xb];
1695 | }
1696 | function nc(a, b, c) {
1697 | c = a.createShader(0 === c ? a.VERTEX_SHADER : a.FRAGMENT_SHADER);
1698 | a.shaderSource(c, b);
1699 | a.compileShader(c);
1700 | if (!a.getShaderParameter(c, a.COMPILE_STATUS))
1701 | throw Error(
1702 | 'Could not compile WebGL shader.\n\n' + a.getShaderInfoLog(c)
1703 | );
1704 | return c;
1705 | }
1706 | function oc(a) {
1707 | return ib(a, bc, 1).map(function (b) {
1708 | return {
1709 | index: kb(b, 1),
1710 | score: X(b, 2),
1711 | label: null != V(b, 3) ? lb(b, 3) : void 0,
1712 | displayName: null != V(b, 4) ? lb(b, 4) : void 0,
1713 | };
1714 | });
1715 | }
1716 | function pc(a) {
1717 | return {
1718 | x: X(a, 1),
1719 | y: X(a, 2),
1720 | z: X(a, 3),
1721 | visibility: null != V(a, 4) ? X(a, 4) : void 0,
1722 | };
1723 | }
1724 | function qc(a) {
1725 | return a.map(function (b) {
1726 | return ib(Ub(b, ic, kc), gc, 1).map(pc);
1727 | });
1728 | }
1729 | function rc(a, b) {
1730 | this.h = a;
1731 | this.g = b;
1732 | this.l = 0;
1733 | }
1734 | function sc(a, b, c) {
1735 | tc(a, b);
1736 | if ('function' === typeof a.g.canvas.transferToImageBitmap)
1737 | return Promise.resolve(a.g.canvas.transferToImageBitmap());
1738 | if (c) return Promise.resolve(a.g.canvas);
1739 | if ('function' === typeof createImageBitmap)
1740 | return createImageBitmap(a.g.canvas);
1741 | void 0 === a.i && (a.i = document.createElement('canvas'));
1742 | return new Promise(function (d) {
1743 | a.i.height = a.g.canvas.height;
1744 | a.i.width = a.g.canvas.width;
1745 | a.i
1746 | .getContext('2d', {})
1747 | .drawImage(a.g.canvas, 0, 0, a.g.canvas.width, a.g.canvas.height);
1748 | d(a.i);
1749 | });
1750 | }
1751 | function tc(a, b) {
1752 | var c = a.g;
1753 | if (void 0 === a.o) {
1754 | var d = nc(
1755 | c,
1756 | '\n attribute vec2 aVertex;\n attribute vec2 aTex;\n varying vec2 vTex;\n void main(void) {\n gl_Position = vec4(aVertex, 0.0, 1.0);\n vTex = aTex;\n }',
1757 | 0
1758 | ),
1759 | e = nc(
1760 | c,
1761 | '\n precision mediump float;\n varying vec2 vTex;\n uniform sampler2D sampler0;\n void main(){\n gl_FragColor = texture2D(sampler0, vTex);\n }',
1762 | 1
1763 | ),
1764 | g = c.createProgram();
1765 | c.attachShader(g, d);
1766 | c.attachShader(g, e);
1767 | c.linkProgram(g);
1768 | if (!c.getProgramParameter(g, c.LINK_STATUS))
1769 | throw Error(
1770 | 'Could not compile WebGL program.\n\n' + c.getProgramInfoLog(g)
1771 | );
1772 | d = a.o = g;
1773 | c.useProgram(d);
1774 | e = c.getUniformLocation(d, 'sampler0');
1775 | a.j = {
1776 | K: c.getAttribLocation(d, 'aVertex'),
1777 | J: c.getAttribLocation(d, 'aTex'),
1778 | qa: e,
1779 | };
1780 | a.u = c.createBuffer();
1781 | c.bindBuffer(c.ARRAY_BUFFER, a.u);
1782 | c.enableVertexAttribArray(a.j.K);
1783 | c.vertexAttribPointer(a.j.K, 2, c.FLOAT, !1, 0, 0);
1784 | c.bufferData(
1785 | c.ARRAY_BUFFER,
1786 | new Float32Array([-1, -1, -1, 1, 1, 1, 1, -1]),
1787 | c.STATIC_DRAW
1788 | );
1789 | c.bindBuffer(c.ARRAY_BUFFER, null);
1790 | a.s = c.createBuffer();
1791 | c.bindBuffer(c.ARRAY_BUFFER, a.s);
1792 | c.enableVertexAttribArray(a.j.J);
1793 | c.vertexAttribPointer(a.j.J, 2, c.FLOAT, !1, 0, 0);
1794 | c.bufferData(
1795 | c.ARRAY_BUFFER,
1796 | new Float32Array([0, 1, 0, 0, 1, 0, 1, 1]),
1797 | c.STATIC_DRAW
1798 | );
1799 | c.bindBuffer(c.ARRAY_BUFFER, null);
1800 | c.uniform1i(e, 0);
1801 | }
1802 | d = a.j;
1803 | c.useProgram(a.o);
1804 | c.canvas.width = b.width;
1805 | c.canvas.height = b.height;
1806 | c.viewport(0, 0, b.width, b.height);
1807 | c.activeTexture(c.TEXTURE0);
1808 | a.h.bindTexture2d(b.glName);
1809 | c.enableVertexAttribArray(d.K);
1810 | c.bindBuffer(c.ARRAY_BUFFER, a.u);
1811 | c.vertexAttribPointer(d.K, 2, c.FLOAT, !1, 0, 0);
1812 | c.enableVertexAttribArray(d.J);
1813 | c.bindBuffer(c.ARRAY_BUFFER, a.s);
1814 | c.vertexAttribPointer(d.J, 2, c.FLOAT, !1, 0, 0);
1815 | c.bindFramebuffer(
1816 | c.DRAW_FRAMEBUFFER ? c.DRAW_FRAMEBUFFER : c.FRAMEBUFFER,
1817 | null
1818 | );
1819 | c.clearColor(0, 0, 0, 0);
1820 | c.clear(c.COLOR_BUFFER_BIT);
1821 | c.colorMask(!0, !0, !0, !0);
1822 | c.drawArrays(c.TRIANGLE_FAN, 0, 4);
1823 | c.disableVertexAttribArray(d.K);
1824 | c.disableVertexAttribArray(d.J);
1825 | c.bindBuffer(c.ARRAY_BUFFER, null);
1826 | a.h.bindTexture2d(0);
1827 | }
1828 | function uc(a) {
1829 | this.g = a;
1830 | }
1831 | var vc = new Uint8Array([
1832 | 0, 97, 115, 109, 1, 0, 0, 0, 1, 4, 1, 96, 0, 0, 3, 2, 1, 0, 10, 9, 1, 7, 0,
1833 | 65, 0, 253, 15, 26, 11,
1834 | ]);
1835 | function wc(a, b) {
1836 | return b + a;
1837 | }
1838 | function xc(a, b) {
1839 | window[a] = b;
1840 | }
1841 | function yc(a) {
1842 | var b = document.createElement('script');
1843 | b.setAttribute('src', a);
1844 | b.setAttribute('crossorigin', 'anonymous');
1845 | return new Promise(function (c) {
1846 | b.addEventListener(
1847 | 'load',
1848 | function () {
1849 | c();
1850 | },
1851 | !1
1852 | );
1853 | b.addEventListener(
1854 | 'error',
1855 | function () {
1856 | c();
1857 | },
1858 | !1
1859 | );
1860 | document.body.appendChild(b);
1861 | });
1862 | }
1863 | function zc() {
1864 | return I(function (a) {
1865 | switch (a.g) {
1866 | case 1:
1867 | return (a.o = 2), F(a, WebAssembly.instantiate(vc), 4);
1868 | case 4:
1869 | a.g = 3;
1870 | a.o = 0;
1871 | break;
1872 | case 2:
1873 | return (a.o = 0), (a.j = null), a.return(!1);
1874 | case 3:
1875 | return a.return(!0);
1876 | }
1877 | });
1878 | }
1879 | function Ac(a) {
1880 | this.g = a;
1881 | this.listeners = {};
1882 | this.j = {};
1883 | this.H = {};
1884 | this.o = {};
1885 | this.u = {};
1886 | this.I = this.s = this.$ = !0;
1887 | this.D = Promise.resolve();
1888 | this.Z = '';
1889 | this.C = {};
1890 | this.locateFile = (a && a.locateFile) || wc;
1891 | if ('object' === typeof window)
1892 | var b =
1893 | window.location.pathname
1894 | .toString()
1895 | .substring(0, window.location.pathname.toString().lastIndexOf('/')) +
1896 | '/';
1897 | else if ('undefined' !== typeof location)
1898 | b =
1899 | location.pathname
1900 | .toString()
1901 | .substring(0, location.pathname.toString().lastIndexOf('/')) + '/';
1902 | else
1903 | throw Error(
1904 | 'solutions can only be loaded on a web page or in a web worker'
1905 | );
1906 | this.aa = b;
1907 | if (a.options) {
1908 | b = C(Object.keys(a.options));
1909 | for (var c = b.next(); !c.done; c = b.next()) {
1910 | c = c.value;
1911 | var d = a.options[c].default;
1912 | void 0 !== d && (this.j[c] = 'function' === typeof d ? d() : d);
1913 | }
1914 | }
1915 | }
1916 | x = Ac.prototype;
1917 | x.close = function () {
1918 | this.i && this.i.delete();
1919 | return Promise.resolve();
1920 | };
1921 | function Bc(a) {
1922 | var b, c, d, e, g, f, h, k, l, m, r;
1923 | return I(function (p) {
1924 | switch (p.g) {
1925 | case 1:
1926 | if (!a.$) return p.return();
1927 | b =
1928 | void 0 === a.g.files
1929 | ? []
1930 | : 'function' === typeof a.g.files
1931 | ? a.g.files(a.j)
1932 | : a.g.files;
1933 | return F(p, zc(), 2);
1934 | case 2:
1935 | c = p.h;
1936 | if ('object' === typeof window)
1937 | return (
1938 | xc('createMediapipeSolutionsWasm', { locateFile: a.locateFile }),
1939 | xc('createMediapipeSolutionsPackedAssets', {
1940 | locateFile: a.locateFile,
1941 | }),
1942 | (f = b.filter(function (n) {
1943 | return void 0 !== n.data;
1944 | })),
1945 | (h = b.filter(function (n) {
1946 | return void 0 === n.data;
1947 | })),
1948 | (k = Promise.all(
1949 | f.map(function (n) {
1950 | var q = Cc(a, n.url);
1951 | if (void 0 !== n.path) {
1952 | var t = n.path;
1953 | q = q.then(function (w) {
1954 | a.overrideFile(t, w);
1955 | return Promise.resolve(w);
1956 | });
1957 | }
1958 | return q;
1959 | })
1960 | )),
1961 | (l = Promise.all(
1962 | h.map(function (n) {
1963 | return void 0 === n.simd || (n.simd && c) || (!n.simd && !c)
1964 | ? yc(a.locateFile(n.url, a.aa))
1965 | : Promise.resolve();
1966 | })
1967 | ).then(function () {
1968 | var n, q, t;
1969 | return I(function (w) {
1970 | if (1 == w.g)
1971 | return (
1972 | (n = window.createMediapipeSolutionsWasm),
1973 | (q = window.createMediapipeSolutionsPackedAssets),
1974 | (t = a),
1975 | F(w, n(q), 2)
1976 | );
1977 | t.h = w.h;
1978 | w.g = 0;
1979 | });
1980 | })),
1981 | (m = (function () {
1982 | return I(function (n) {
1983 | a.g.graph && a.g.graph.url
1984 | ? (n = F(n, Cc(a, a.g.graph.url), 0))
1985 | : ((n.g = 0), (n = void 0));
1986 | return n;
1987 | });
1988 | })()),
1989 | F(p, Promise.all([l, k, m]), 7)
1990 | );
1991 | if ('function' !== typeof importScripts)
1992 | throw Error(
1993 | 'solutions can only be loaded on a web page or in a web worker'
1994 | );
1995 | d = b
1996 | .filter(function (n) {
1997 | return void 0 === n.simd || (n.simd && c) || (!n.simd && !c);
1998 | })
1999 | .map(function (n) {
2000 | return a.locateFile(n.url, a.aa);
2001 | });
2002 | importScripts.apply(null, ea(d));
2003 | e = a;
2004 | return F(p, createMediapipeSolutionsWasm(Module), 6);
2005 | case 6:
2006 | e.h = p.h;
2007 | a.l = new OffscreenCanvas(1, 1);
2008 | a.h.canvas = a.l;
2009 | g = a.h.GL.createContext(a.l, {
2010 | antialias: !1,
2011 | alpha: !1,
2012 | na: 'undefined' !== typeof WebGL2RenderingContext ? 2 : 1,
2013 | });
2014 | a.h.GL.makeContextCurrent(g);
2015 | console.log(a, 'thi si a');
2016 | a.C = a.h.GL.currentContext.GLctx;
2017 | p.g = 4;
2018 | break;
2019 | case 7:
2020 | a.l = document.createElement('canvas');
2021 | r = a.l.getContext('webgl2', {});
2022 | if (!r && ((r = a.l.getContext('webgl', {})), !r))
2023 | return (
2024 | alert(
2025 | 'Failed to create WebGL canvas context when passing video frame.'
2026 | ),
2027 | p.return()
2028 | );
2029 | a.G = r;
2030 | a.h.canvas = a.l;
2031 | a.h.createContext(a.l, !0, !0, {});
2032 | case 4:
2033 | (a.i = new a.h.SolutionWasm()), (a.$ = !1), (p.g = 0);
2034 | }
2035 | });
2036 | }
2037 | function Dc(a) {
2038 | var b, c, d, e, g, f, h, k;
2039 | return I(function (l) {
2040 | if (1 == l.g) {
2041 | if (a.g.graph && a.g.graph.url && a.Z === a.g.graph.url)
2042 | return l.return();
2043 | a.s = !0;
2044 | if (!a.g.graph || !a.g.graph.url) {
2045 | l.g = 2;
2046 | return;
2047 | }
2048 | a.Z = a.g.graph.url;
2049 | return F(l, Cc(a, a.g.graph.url), 3);
2050 | }
2051 | 2 != l.g && ((b = l.h), a.i.loadGraph(b));
2052 | c = C(Object.keys(a.C));
2053 | for (d = c.next(); !d.done; d = c.next())
2054 | (e = d.value), a.i.overrideFile(e, a.C[e]);
2055 | a.C = {};
2056 | if (a.g.listeners)
2057 | for (g = C(a.g.listeners), f = g.next(); !f.done; f = g.next())
2058 | (h = f.value), Ec(a, h);
2059 | k = a.j;
2060 | a.j = {};
2061 | a.setOptions(k);
2062 | l.g = 0;
2063 | });
2064 | }
2065 | x.reset = function () {
2066 | var a = this;
2067 | return I(function (b) {
2068 | a.i && (a.i.reset(), (a.o = {}), (a.u = {}));
2069 | b.g = 0;
2070 | });
2071 | };
2072 | x.setOptions = function (a, b) {
2073 | var c = this;
2074 | if ((b = b || this.g.options)) {
2075 | for (
2076 | var d = [], e = [], g = {}, f = C(Object.keys(a)), h = f.next();
2077 | !h.done;
2078 | g = { R: g.R, S: g.S }, h = f.next()
2079 | ) {
2080 | var k = h.value;
2081 | (k in this.j && this.j[k] === a[k]) ||
2082 | ((this.j[k] = a[k]),
2083 | (h = b[k]),
2084 | void 0 !== h &&
2085 | (h.onChange &&
2086 | ((g.R = h.onChange),
2087 | (g.S = a[k]),
2088 | d.push(
2089 | (function (l) {
2090 | return function () {
2091 | var m;
2092 | return I(function (r) {
2093 | if (1 == r.g) return F(r, l.R(l.S), 2);
2094 | m = r.h;
2095 | !0 === m && (c.s = !0);
2096 | r.g = 0;
2097 | });
2098 | };
2099 | })(g)
2100 | )),
2101 | h.graphOptionXref &&
2102 | ((k = {
2103 | valueNumber: 1 === h.type ? a[k] : 0,
2104 | valueBoolean: 0 === h.type ? a[k] : !1,
2105 | valueString: 2 === h.type ? a[k] : '',
2106 | }),
2107 | (h = Object.assign(
2108 | Object.assign(
2109 | Object.assign({}, { calculatorName: '', calculatorIndex: 0 }),
2110 | h.graphOptionXref
2111 | ),
2112 | k
2113 | )),
2114 | e.push(h))));
2115 | }
2116 | if (0 !== d.length || 0 !== e.length)
2117 | (this.s = !0),
2118 | (this.B = (void 0 === this.B ? [] : this.B).concat(e)),
2119 | (this.A = (void 0 === this.A ? [] : this.A).concat(d));
2120 | }
2121 | };
2122 | function Fc(a) {
2123 | var b, c, d, e, g, f, h;
2124 | return I(function (k) {
2125 | switch (k.g) {
2126 | case 1:
2127 | if (!a.s) return k.return();
2128 | if (!a.A) {
2129 | k.g = 2;
2130 | break;
2131 | }
2132 | b = C(a.A);
2133 | c = b.next();
2134 | case 3:
2135 | if (c.done) {
2136 | k.g = 5;
2137 | break;
2138 | }
2139 | d = c.value;
2140 | return F(k, d(), 4);
2141 | case 4:
2142 | c = b.next();
2143 | k.g = 3;
2144 | break;
2145 | case 5:
2146 | a.A = void 0;
2147 | case 2:
2148 | if (a.B) {
2149 | e = new a.h.GraphOptionChangeRequestList();
2150 | g = C(a.B);
2151 | for (f = g.next(); !f.done; f = g.next())
2152 | (h = f.value), e.push_back(h);
2153 | a.i.changeOptions(e);
2154 | e.delete();
2155 | a.B = void 0;
2156 | }
2157 | a.s = !1;
2158 | k.g = 0;
2159 | }
2160 | });
2161 | }
2162 | x.initialize = function () {
2163 | var a = this;
2164 | return I(function (b) {
2165 | return 1 == b.g
2166 | ? F(b, Bc(a), 2)
2167 | : 3 != b.g
2168 | ? F(b, Dc(a), 3)
2169 | : F(b, Fc(a), 0);
2170 | });
2171 | };
2172 | function Cc(a, b) {
2173 | var c, d;
2174 | return I(function (e) {
2175 | if (b in a.H) return e.return(a.H[b]);
2176 | c = a.locateFile(b, '');
2177 | d = fetch(c).then(function (g) {
2178 | return g.arrayBuffer();
2179 | });
2180 | a.H[b] = d;
2181 | return e.return(d);
2182 | });
2183 | }
2184 | x.overrideFile = function (a, b) {
2185 | this.i ? this.i.overrideFile(a, b) : (this.C[a] = b);
2186 | };
2187 | x.clearOverriddenFiles = function () {
2188 | this.C = {};
2189 | this.i && this.i.clearOverriddenFiles();
2190 | };
2191 | x.send = function (a, b) {
2192 | var c = this,
2193 | d,
2194 | e,
2195 | g,
2196 | f,
2197 | h,
2198 | k,
2199 | l,
2200 | m,
2201 | r;
2202 | return I(function (p) {
2203 | switch (p.g) {
2204 | case 1:
2205 | if (!c.g.inputs) return p.return();
2206 | d = 1e3 * (void 0 === b || null === b ? performance.now() : b);
2207 | return F(p, c.D, 2);
2208 | case 2:
2209 | return F(p, c.initialize(), 3);
2210 | case 3:
2211 | e = new c.h.PacketDataList();
2212 | g = C(Object.keys(a));
2213 | for (f = g.next(); !f.done; f = g.next())
2214 | if (((h = f.value), (k = c.g.inputs[h]))) {
2215 | a: {
2216 | var n = a[h];
2217 | switch (k.type) {
2218 | case 'video':
2219 | var q = c.o[k.stream];
2220 | q || ((q = new rc(c.h, c.G)), (c.o[k.stream] = q));
2221 | 0 === q.l && (q.l = q.h.createTexture());
2222 | if (
2223 | 'undefined' !== typeof HTMLVideoElement &&
2224 | n instanceof HTMLVideoElement
2225 | ) {
2226 | var t = n.videoWidth;
2227 | var w = n.videoHeight;
2228 | } else
2229 | 'undefined' !== typeof HTMLImageElement &&
2230 | n instanceof HTMLImageElement
2231 | ? ((t = n.naturalWidth), (w = n.naturalHeight))
2232 | : ((t = n.width), (w = n.height));
2233 | w = { glName: q.l, width: t, height: w };
2234 | t = q.g;
2235 | t.canvas.width = w.width;
2236 | t.canvas.height = w.height;
2237 | t.activeTexture(t.TEXTURE0);
2238 | q.h.bindTexture2d(q.l);
2239 | t.texImage2D(
2240 | t.TEXTURE_2D,
2241 | 0,
2242 | t.RGBA,
2243 | t.RGBA,
2244 | t.UNSIGNED_BYTE,
2245 | n
2246 | );
2247 | q.h.bindTexture2d(0);
2248 | q = w;
2249 | break a;
2250 | case 'detections':
2251 | q = c.o[k.stream];
2252 | q || ((q = new uc(c.h)), (c.o[k.stream] = q));
2253 | q.data || (q.data = new q.g.DetectionListData());
2254 | q.data.reset(n.length);
2255 | for (w = 0; w < n.length; ++w) {
2256 | t = n[w];
2257 | var v = q.data,
2258 | A = v.setBoundingBox,
2259 | H = w;
2260 | var E = t.ea;
2261 | var u = new lc();
2262 | W(u, 1, E.ka);
2263 | W(u, 2, E.la);
2264 | W(u, 3, E.height);
2265 | W(u, 4, E.width);
2266 | W(u, 5, E.rotation);
2267 | W(u, 6, E.ia);
2268 | E = Vb(u, mc);
2269 | A.call(v, H, E);
2270 | if (t.Y)
2271 | for (v = 0; v < t.Y.length; ++v) {
2272 | u = t.Y[v];
2273 | var z = u.visibility ? !0 : !1;
2274 | A = q.data;
2275 | H = A.addNormalizedLandmark;
2276 | E = w;
2277 | u = Object.assign(Object.assign({}, u), {
2278 | visibility: z ? u.visibility : 0,
2279 | });
2280 | z = new gc();
2281 | W(z, 1, u.x);
2282 | W(z, 2, u.y);
2283 | W(z, 3, u.z);
2284 | u.visibility && W(z, 4, u.visibility);
2285 | u = Vb(z, hc);
2286 | H.call(A, E, u);
2287 | }
2288 | if (t.V)
2289 | for (v = 0; v < t.V.length; ++v)
2290 | (A = q.data),
2291 | (H = A.addClassification),
2292 | (E = w),
2293 | (u = t.V[v]),
2294 | (z = new bc()),
2295 | W(z, 2, u.score),
2296 | u.index && W(z, 1, u.index),
2297 | u.label && W(z, 3, u.label),
2298 | u.displayName && W(z, 4, u.displayName),
2299 | (u = Vb(z, cc)),
2300 | H.call(A, E, u);
2301 | }
2302 | q = q.data;
2303 | break a;
2304 | default:
2305 | q = {};
2306 | }
2307 | }
2308 | l = q;
2309 | m = k.stream;
2310 | switch (k.type) {
2311 | case 'video':
2312 | e.pushTexture2d(
2313 | Object.assign(Object.assign({}, l), {
2314 | stream: m,
2315 | timestamp: d,
2316 | })
2317 | );
2318 | break;
2319 | case 'detections':
2320 | r = l;
2321 | r.stream = m;
2322 | r.timestamp = d;
2323 | e.pushDetectionList(r);
2324 | break;
2325 | default:
2326 | throw Error("Unknown input config type: '" + k.type + "'");
2327 | }
2328 | }
2329 | c.i.send(e);
2330 | return F(p, c.D, 4);
2331 | case 4:
2332 | e.delete(), (p.g = 0);
2333 | }
2334 | });
2335 | };
2336 | function Gc(a, b, c) {
2337 | var d, e, g, f, h, k, l, m, r, p, n, q, t, w;
2338 | return I(function (v) {
2339 | switch (v.g) {
2340 | case 1:
2341 | if (!c) return v.return(b);
2342 | d = {};
2343 | e = 0;
2344 | g = C(Object.keys(c));
2345 | for (f = g.next(); !f.done; f = g.next())
2346 | (h = f.value),
2347 | (k = c[h]),
2348 | 'string' !== typeof k &&
2349 | 'texture' === k.type &&
2350 | void 0 !== b[k.stream] &&
2351 | ++e;
2352 | 1 < e && (a.I = !1);
2353 | l = C(Object.keys(c));
2354 | f = l.next();
2355 | case 2:
2356 | if (f.done) {
2357 | v.g = 4;
2358 | break;
2359 | }
2360 | m = f.value;
2361 | r = c[m];
2362 | if ('string' === typeof r)
2363 | return (t = d), (w = m), F(v, Hc(a, m, b[r]), 14);
2364 | p = b[r.stream];
2365 | if ('detection_list' === r.type) {
2366 | if (p) {
2367 | var A = p.getRectList();
2368 | for (
2369 | var H = p.getLandmarksList(),
2370 | E = p.getClassificationsList(),
2371 | u = [],
2372 | z = 0;
2373 | z < A.size();
2374 | ++z
2375 | ) {
2376 | var P = Ub(A.get(z), lc, mc);
2377 | P = {
2378 | ea: {
2379 | ka: X(P, 1),
2380 | la: X(P, 2),
2381 | height: X(P, 3),
2382 | width: X(P, 4),
2383 | rotation: X(P, 5, 0),
2384 | ia: kb(P, 6),
2385 | },
2386 | Y: ib(Ub(H.get(z), ic, kc), gc, 1).map(pc),
2387 | V: oc(Ub(E.get(z), dc, fc)),
2388 | };
2389 | u.push(P);
2390 | }
2391 | A = u;
2392 | } else A = [];
2393 | d[m] = A;
2394 | v.g = 7;
2395 | break;
2396 | }
2397 | if ('proto_list' === r.type) {
2398 | if (p) {
2399 | A = Array(p.size());
2400 | for (H = 0; H < p.size(); H++) A[H] = p.get(H);
2401 | p.delete();
2402 | } else A = [];
2403 | d[m] = A;
2404 | v.g = 7;
2405 | break;
2406 | }
2407 | if (void 0 === p) {
2408 | v.g = 3;
2409 | break;
2410 | }
2411 | if ('float_list' === r.type) {
2412 | d[m] = p;
2413 | v.g = 7;
2414 | break;
2415 | }
2416 | if ('proto' === r.type) {
2417 | d[m] = p;
2418 | v.g = 7;
2419 | break;
2420 | }
2421 | if ('texture' !== r.type)
2422 | throw Error("Unknown output config type: '" + r.type + "'");
2423 | n = a.u[m];
2424 | n || ((n = new rc(a.h, a.G)), (a.u[m] = n));
2425 | return F(v, sc(n, p, a.I), 13);
2426 | case 13:
2427 | (q = v.h), (d[m] = q);
2428 | case 7:
2429 | r.transform && d[m] && (d[m] = r.transform(d[m]));
2430 | v.g = 3;
2431 | break;
2432 | case 14:
2433 | t[w] = v.h;
2434 | case 3:
2435 | f = l.next();
2436 | v.g = 2;
2437 | break;
2438 | case 4:
2439 | return v.return(d);
2440 | }
2441 | });
2442 | }
2443 | function Hc(a, b, c) {
2444 | var d;
2445 | return I(function (e) {
2446 | return 'number' === typeof c ||
2447 | c instanceof Uint8Array ||
2448 | c instanceof a.h.Uint8BlobList
2449 | ? e.return(c)
2450 | : c instanceof a.h.Texture2dDataOut
2451 | ? ((d = a.u[b]),
2452 | d || ((d = new rc(a.h, a.G)), (a.u[b] = d)),
2453 | e.return(sc(d, c, a.I)))
2454 | : e.return(void 0);
2455 | });
2456 | }
2457 | function Ec(a, b) {
2458 | for (
2459 | var c = b.name || '$',
2460 | d = [].concat(ea(b.wants)),
2461 | e = new a.h.StringList(),
2462 | g = C(b.wants),
2463 | f = g.next();
2464 | !f.done;
2465 | f = g.next()
2466 | )
2467 | e.push_back(f.value);
2468 | g = a.h.PacketListener.implement({
2469 | onResults: function (h) {
2470 | for (var k = {}, l = 0; l < b.wants.length; ++l) k[d[l]] = h.get(l);
2471 | var m = a.listeners[c];
2472 | m &&
2473 | (a.D = Gc(a, k, b.outs).then(function (r) {
2474 | r = m(r);
2475 | for (var p = 0; p < b.wants.length; ++p) {
2476 | var n = k[d[p]];
2477 | 'object' === typeof n &&
2478 | n.hasOwnProperty &&
2479 | n.hasOwnProperty('delete') &&
2480 | n.delete();
2481 | }
2482 | r && (a.D = r);
2483 | }));
2484 | },
2485 | });
2486 | a.i.attachMultiListener(e, g);
2487 | e.delete();
2488 | }
2489 | x.onResults = function (a, b) {
2490 | this.listeners[b || '$'] = a;
2491 | };
2492 | J('Solution', Ac);
2493 | J('OptionType', {
2494 | BOOL: 0,
2495 | NUMBER: 1,
2496 | ma: 2,
2497 | 0: 'BOOL',
2498 | 1: 'NUMBER',
2499 | 2: 'STRING',
2500 | });
2501 | function Ic(a) {
2502 | void 0 === a && (a = 0);
2503 | return 1 === a ? 'hand_landmark_full.tflite' : 'hand_landmark_lite.tflite';
2504 | }
2505 | function Jc(a) {
2506 | var b = this;
2507 | a = a || {};
2508 | this.g = new Ac({
2509 | locateFile: a.locateFile,
2510 | files: function (c) {
2511 | return [
2512 | { url: 'hands_solution_packed_assets_loader.js' },
2513 | { simd: !1, url: 'hands_solution_wasm_bin.js' },
2514 | { simd: !0, url: 'hands_solution_simd_wasm_bin.js' },
2515 | { data: !0, url: Ic(c.modelComplexity) },
2516 | ];
2517 | },
2518 | graph: { url: 'hands.binarypb' },
2519 | inputs: { image: { type: 'video', stream: 'input_frames_gpu' } },
2520 | listeners: [
2521 | {
2522 | wants: [
2523 | 'multi_hand_landmarks',
2524 | 'multi_hand_world_landmarks',
2525 | 'image_transformed',
2526 | 'multi_handedness',
2527 | ],
2528 | outs: {
2529 | image: 'image_transformed',
2530 | multiHandLandmarks: {
2531 | type: 'proto_list',
2532 | stream: 'multi_hand_landmarks',
2533 | transform: qc,
2534 | },
2535 | multiHandWorldLandmarks: {
2536 | type: 'proto_list',
2537 | stream: 'multi_hand_world_landmarks',
2538 | transform: qc,
2539 | },
2540 | multiHandedness: {
2541 | type: 'proto_list',
2542 | stream: 'multi_handedness',
2543 | transform: function (c) {
2544 | return c.map(function (d) {
2545 | return oc(Ub(d, dc, fc))[0];
2546 | });
2547 | },
2548 | },
2549 | },
2550 | },
2551 | ],
2552 | options: {
2553 | useCpuInference: {
2554 | type: 0,
2555 | graphOptionXref: {
2556 | calculatorType: 'InferenceCalculator',
2557 | fieldName: 'use_cpu_inference',
2558 | },
2559 | default:
2560 | 'object' !== typeof window || void 0 === window.navigator
2561 | ? !1
2562 | : 'iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod'
2563 | .split(';')
2564 | .includes(navigator.platform) ||
2565 | (navigator.userAgent.includes('Mac') &&
2566 | 'ontouchend' in document),
2567 | },
2568 | selfieMode: {
2569 | type: 0,
2570 | graphOptionXref: {
2571 | calculatorType: 'GlScalerCalculator',
2572 | calculatorIndex: 1,
2573 | fieldName: 'flip_horizontal',
2574 | },
2575 | },
2576 | maxNumHands: {
2577 | type: 1,
2578 | graphOptionXref: {
2579 | calculatorType: 'ConstantSidePacketCalculator',
2580 | calculatorName: 'ConstantSidePacketCalculator',
2581 | fieldName: 'int_value',
2582 | },
2583 | },
2584 | modelComplexity: {
2585 | type: 1,
2586 | graphOptionXref: {
2587 | calculatorType: 'ConstantSidePacketCalculator',
2588 | calculatorName: 'ConstantSidePacketCalculatorModelComplexity',
2589 | fieldName: 'int_value',
2590 | },
2591 | onChange: function (c) {
2592 | var d, e, g;
2593 | return I(function (f) {
2594 | if (1 == f.g)
2595 | return (
2596 | (d = Ic(c)),
2597 | (e = 'third_party/mediapipe/modules/hand_landmark/' + d),
2598 | F(f, Cc(b.g, d), 2)
2599 | );
2600 | g = f.h;
2601 | b.g.overrideFile(e, g);
2602 | return f.return(!0);
2603 | });
2604 | },
2605 | },
2606 | minDetectionConfidence: {
2607 | type: 1,
2608 | graphOptionXref: {
2609 | calculatorType: 'TensorsToDetectionsCalculator',
2610 | calculatorName:
2611 | 'handlandmarktrackinggpu__palmdetectiongpu__TensorsToDetectionsCalculator',
2612 | fieldName: 'min_score_thresh',
2613 | },
2614 | },
2615 | minTrackingConfidence: {
2616 | type: 1,
2617 | graphOptionXref: {
2618 | calculatorType: 'ThresholdingCalculator',
2619 | calculatorName:
2620 | 'handlandmarktrackinggpu__handlandmarkgpu__ThresholdingCalculator',
2621 | fieldName: 'threshold',
2622 | },
2623 | },
2624 | },
2625 | });
2626 | }
2627 | x = Jc.prototype;
2628 | x.close = function () {
2629 | this.g.close();
2630 | return Promise.resolve();
2631 | };
2632 | x.onResults = function (a) {
2633 | this.g.onResults(a);
2634 | };
2635 | x.initialize = function () {
2636 | var a = this;
2637 | return I(function (b) {
2638 | return F(b, a.g.initialize(), 0);
2639 | });
2640 | };
2641 | x.reset = function () {
2642 | this.g.reset();
2643 | };
2644 | x.send = function (a) {
2645 | var b = this;
2646 | return I(function (c) {
2647 | return F(c, b.g.send(a), 0);
2648 | });
2649 | };
2650 | x.setOptions = function (a) {
2651 | this.g.setOptions(a);
2652 | };
2653 | J('Hands', Jc);
2654 | J('HAND_CONNECTIONS', [
2655 | [0, 1],
2656 | [1, 2],
2657 | [2, 3],
2658 | [3, 4],
2659 | [0, 5],
2660 | [5, 6],
2661 | [6, 7],
2662 | [7, 8],
2663 | [5, 9],
2664 | [9, 10],
2665 | [10, 11],
2666 | [11, 12],
2667 | [9, 13],
2668 | [13, 14],
2669 | [14, 15],
2670 | [15, 16],
2671 | [13, 17],
2672 | [0, 17],
2673 | [17, 18],
2674 | [18, 19],
2675 | [19, 20],
2676 | ]);
2677 | J('VERSION', '0.4.1646424915');
2678 | }.call(this));
2679 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@aashutoshrathi/word-wrap@^1.2.3":
6 | version "1.2.6"
7 | resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf"
8 | integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
9 |
10 | "@ampproject/remapping@^2.2.0":
11 | version "2.2.1"
12 | resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630"
13 | integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==
14 | dependencies:
15 | "@jridgewell/gen-mapping" "^0.3.0"
16 | "@jridgewell/trace-mapping" "^0.3.9"
17 |
18 | "@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.5":
19 | version "7.22.10"
20 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.10.tgz#1c20e612b768fefa75f6e90d6ecb86329247f0a3"
21 | integrity sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==
22 | dependencies:
23 | "@babel/highlight" "^7.22.10"
24 | chalk "^2.4.2"
25 |
26 | "@babel/compat-data@^7.22.9":
27 | version "7.22.9"
28 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730"
29 | integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==
30 |
31 | "@babel/core@^7.22.9":
32 | version "7.22.11"
33 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.11.tgz#8033acaa2aa24c3f814edaaa057f3ce0ba559c24"
34 | integrity sha512-lh7RJrtPdhibbxndr6/xx0w8+CVlY5FJZiaSz908Fpy+G0xkBFTvwLcKJFF4PJxVfGhVWNebikpWGnOoC71juQ==
35 | dependencies:
36 | "@ampproject/remapping" "^2.2.0"
37 | "@babel/code-frame" "^7.22.10"
38 | "@babel/generator" "^7.22.10"
39 | "@babel/helper-compilation-targets" "^7.22.10"
40 | "@babel/helper-module-transforms" "^7.22.9"
41 | "@babel/helpers" "^7.22.11"
42 | "@babel/parser" "^7.22.11"
43 | "@babel/template" "^7.22.5"
44 | "@babel/traverse" "^7.22.11"
45 | "@babel/types" "^7.22.11"
46 | convert-source-map "^1.7.0"
47 | debug "^4.1.0"
48 | gensync "^1.0.0-beta.2"
49 | json5 "^2.2.3"
50 | semver "^6.3.1"
51 |
52 | "@babel/generator@^7.22.10":
53 | version "7.22.10"
54 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.10.tgz#c92254361f398e160645ac58831069707382b722"
55 | integrity sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==
56 | dependencies:
57 | "@babel/types" "^7.22.10"
58 | "@jridgewell/gen-mapping" "^0.3.2"
59 | "@jridgewell/trace-mapping" "^0.3.17"
60 | jsesc "^2.5.1"
61 |
62 | "@babel/helper-compilation-targets@^7.22.10":
63 | version "7.22.10"
64 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz#01d648bbc25dd88f513d862ee0df27b7d4e67024"
65 | integrity sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==
66 | dependencies:
67 | "@babel/compat-data" "^7.22.9"
68 | "@babel/helper-validator-option" "^7.22.5"
69 | browserslist "^4.21.9"
70 | lru-cache "^5.1.1"
71 | semver "^6.3.1"
72 |
73 | "@babel/helper-environment-visitor@^7.22.5":
74 | version "7.22.5"
75 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98"
76 | integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==
77 |
78 | "@babel/helper-function-name@^7.22.5":
79 | version "7.22.5"
80 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be"
81 | integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==
82 | dependencies:
83 | "@babel/template" "^7.22.5"
84 | "@babel/types" "^7.22.5"
85 |
86 | "@babel/helper-hoist-variables@^7.22.5":
87 | version "7.22.5"
88 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
89 | integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
90 | dependencies:
91 | "@babel/types" "^7.22.5"
92 |
93 | "@babel/helper-module-imports@^7.22.5":
94 | version "7.22.5"
95 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c"
96 | integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==
97 | dependencies:
98 | "@babel/types" "^7.22.5"
99 |
100 | "@babel/helper-module-transforms@^7.22.9":
101 | version "7.22.9"
102 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129"
103 | integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==
104 | dependencies:
105 | "@babel/helper-environment-visitor" "^7.22.5"
106 | "@babel/helper-module-imports" "^7.22.5"
107 | "@babel/helper-simple-access" "^7.22.5"
108 | "@babel/helper-split-export-declaration" "^7.22.6"
109 | "@babel/helper-validator-identifier" "^7.22.5"
110 |
111 | "@babel/helper-plugin-utils@^7.22.5":
112 | version "7.22.5"
113 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295"
114 | integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==
115 |
116 | "@babel/helper-simple-access@^7.22.5":
117 | version "7.22.5"
118 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de"
119 | integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==
120 | dependencies:
121 | "@babel/types" "^7.22.5"
122 |
123 | "@babel/helper-split-export-declaration@^7.22.6":
124 | version "7.22.6"
125 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
126 | integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
127 | dependencies:
128 | "@babel/types" "^7.22.5"
129 |
130 | "@babel/helper-string-parser@^7.22.5":
131 | version "7.22.5"
132 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f"
133 | integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==
134 |
135 | "@babel/helper-validator-identifier@^7.22.5":
136 | version "7.22.5"
137 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193"
138 | integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==
139 |
140 | "@babel/helper-validator-option@^7.22.5":
141 | version "7.22.5"
142 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac"
143 | integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==
144 |
145 | "@babel/helpers@^7.22.11":
146 | version "7.22.11"
147 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.11.tgz#b02f5d5f2d7abc21ab59eeed80de410ba70b056a"
148 | integrity sha512-vyOXC8PBWaGc5h7GMsNx68OH33cypkEDJCHvYVVgVbbxJDROYVtexSk0gK5iCF1xNjRIN2s8ai7hwkWDq5szWg==
149 | dependencies:
150 | "@babel/template" "^7.22.5"
151 | "@babel/traverse" "^7.22.11"
152 | "@babel/types" "^7.22.11"
153 |
154 | "@babel/highlight@^7.22.10":
155 | version "7.22.10"
156 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.10.tgz#02a3f6d8c1cb4521b2fd0ab0da8f4739936137d7"
157 | integrity sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==
158 | dependencies:
159 | "@babel/helper-validator-identifier" "^7.22.5"
160 | chalk "^2.4.2"
161 | js-tokens "^4.0.0"
162 |
163 | "@babel/parser@^7.22.11", "@babel/parser@^7.22.5":
164 | version "7.22.11"
165 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.11.tgz#becf8ee33aad2a35ed5607f521fe6e72a615f905"
166 | integrity sha512-R5zb8eJIBPJriQtbH/htEQy4k7E2dHWlD2Y2VT07JCzwYZHBxV5ZYtM0UhXSNMT74LyxuM+b1jdL7pSesXbC/g==
167 |
168 | "@babel/plugin-transform-react-jsx-self@^7.22.5":
169 | version "7.22.5"
170 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.22.5.tgz#ca2fdc11bc20d4d46de01137318b13d04e481d8e"
171 | integrity sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==
172 | dependencies:
173 | "@babel/helper-plugin-utils" "^7.22.5"
174 |
175 | "@babel/plugin-transform-react-jsx-source@^7.22.5":
176 | version "7.22.5"
177 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.22.5.tgz#49af1615bfdf6ed9d3e9e43e425e0b2b65d15b6c"
178 | integrity sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==
179 | dependencies:
180 | "@babel/helper-plugin-utils" "^7.22.5"
181 |
182 | "@babel/template@^7.22.5":
183 | version "7.22.5"
184 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec"
185 | integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==
186 | dependencies:
187 | "@babel/code-frame" "^7.22.5"
188 | "@babel/parser" "^7.22.5"
189 | "@babel/types" "^7.22.5"
190 |
191 | "@babel/traverse@^7.22.11":
192 | version "7.22.11"
193 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.11.tgz#71ebb3af7a05ff97280b83f05f8865ac94b2027c"
194 | integrity sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ==
195 | dependencies:
196 | "@babel/code-frame" "^7.22.10"
197 | "@babel/generator" "^7.22.10"
198 | "@babel/helper-environment-visitor" "^7.22.5"
199 | "@babel/helper-function-name" "^7.22.5"
200 | "@babel/helper-hoist-variables" "^7.22.5"
201 | "@babel/helper-split-export-declaration" "^7.22.6"
202 | "@babel/parser" "^7.22.11"
203 | "@babel/types" "^7.22.11"
204 | debug "^4.1.0"
205 | globals "^11.1.0"
206 |
207 | "@babel/types@^7.22.10", "@babel/types@^7.22.11", "@babel/types@^7.22.5":
208 | version "7.22.11"
209 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.11.tgz#0e65a6a1d4d9cbaa892b2213f6159485fe632ea2"
210 | integrity sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg==
211 | dependencies:
212 | "@babel/helper-string-parser" "^7.22.5"
213 | "@babel/helper-validator-identifier" "^7.22.5"
214 | to-fast-properties "^2.0.0"
215 |
216 | "@esbuild/android-arm64@0.18.20":
217 | version "0.18.20"
218 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622"
219 | integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==
220 |
221 | "@esbuild/android-arm@0.18.20":
222 | version "0.18.20"
223 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682"
224 | integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==
225 |
226 | "@esbuild/android-x64@0.18.20":
227 | version "0.18.20"
228 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2"
229 | integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==
230 |
231 | "@esbuild/darwin-arm64@0.18.20":
232 | version "0.18.20"
233 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1"
234 | integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==
235 |
236 | "@esbuild/darwin-x64@0.18.20":
237 | version "0.18.20"
238 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d"
239 | integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==
240 |
241 | "@esbuild/freebsd-arm64@0.18.20":
242 | version "0.18.20"
243 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54"
244 | integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==
245 |
246 | "@esbuild/freebsd-x64@0.18.20":
247 | version "0.18.20"
248 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e"
249 | integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==
250 |
251 | "@esbuild/linux-arm64@0.18.20":
252 | version "0.18.20"
253 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0"
254 | integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==
255 |
256 | "@esbuild/linux-arm@0.18.20":
257 | version "0.18.20"
258 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0"
259 | integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==
260 |
261 | "@esbuild/linux-ia32@0.18.20":
262 | version "0.18.20"
263 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7"
264 | integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==
265 |
266 | "@esbuild/linux-loong64@0.18.20":
267 | version "0.18.20"
268 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d"
269 | integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==
270 |
271 | "@esbuild/linux-mips64el@0.18.20":
272 | version "0.18.20"
273 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231"
274 | integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==
275 |
276 | "@esbuild/linux-ppc64@0.18.20":
277 | version "0.18.20"
278 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb"
279 | integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==
280 |
281 | "@esbuild/linux-riscv64@0.18.20":
282 | version "0.18.20"
283 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6"
284 | integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==
285 |
286 | "@esbuild/linux-s390x@0.18.20":
287 | version "0.18.20"
288 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071"
289 | integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==
290 |
291 | "@esbuild/linux-x64@0.18.20":
292 | version "0.18.20"
293 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338"
294 | integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==
295 |
296 | "@esbuild/netbsd-x64@0.18.20":
297 | version "0.18.20"
298 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1"
299 | integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==
300 |
301 | "@esbuild/openbsd-x64@0.18.20":
302 | version "0.18.20"
303 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae"
304 | integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==
305 |
306 | "@esbuild/sunos-x64@0.18.20":
307 | version "0.18.20"
308 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d"
309 | integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==
310 |
311 | "@esbuild/win32-arm64@0.18.20":
312 | version "0.18.20"
313 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9"
314 | integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==
315 |
316 | "@esbuild/win32-ia32@0.18.20":
317 | version "0.18.20"
318 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102"
319 | integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==
320 |
321 | "@esbuild/win32-x64@0.18.20":
322 | version "0.18.20"
323 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d"
324 | integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==
325 |
326 | "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
327 | version "4.4.0"
328 | resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
329 | integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
330 | dependencies:
331 | eslint-visitor-keys "^3.3.0"
332 |
333 | "@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1":
334 | version "4.8.0"
335 | resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.8.0.tgz#11195513186f68d42fbf449f9a7136b2c0c92005"
336 | integrity sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==
337 |
338 | "@eslint/eslintrc@^2.1.2":
339 | version "2.1.2"
340 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396"
341 | integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==
342 | dependencies:
343 | ajv "^6.12.4"
344 | debug "^4.3.2"
345 | espree "^9.6.0"
346 | globals "^13.19.0"
347 | ignore "^5.2.0"
348 | import-fresh "^3.2.1"
349 | js-yaml "^4.1.0"
350 | minimatch "^3.1.2"
351 | strip-json-comments "^3.1.1"
352 |
353 | "@eslint/js@8.48.0":
354 | version "8.48.0"
355 | resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.48.0.tgz#642633964e217905436033a2bd08bf322849b7fb"
356 | integrity sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==
357 |
358 | "@humanwhocodes/config-array@^0.11.10":
359 | version "0.11.10"
360 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.10.tgz#5a3ffe32cc9306365fb3fd572596cd602d5e12d2"
361 | integrity sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==
362 | dependencies:
363 | "@humanwhocodes/object-schema" "^1.2.1"
364 | debug "^4.1.1"
365 | minimatch "^3.0.5"
366 |
367 | "@humanwhocodes/module-importer@^1.0.1":
368 | version "1.0.1"
369 | resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
370 | integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
371 |
372 | "@humanwhocodes/object-schema@^1.2.1":
373 | version "1.2.1"
374 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
375 | integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
376 |
377 | "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
378 | version "0.3.3"
379 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098"
380 | integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==
381 | dependencies:
382 | "@jridgewell/set-array" "^1.0.1"
383 | "@jridgewell/sourcemap-codec" "^1.4.10"
384 | "@jridgewell/trace-mapping" "^0.3.9"
385 |
386 | "@jridgewell/resolve-uri@^3.1.0":
387 | version "3.1.1"
388 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
389 | integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
390 |
391 | "@jridgewell/set-array@^1.0.1":
392 | version "1.1.2"
393 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
394 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
395 |
396 | "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
397 | version "1.4.15"
398 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
399 | integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
400 |
401 | "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
402 | version "0.3.19"
403 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811"
404 | integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==
405 | dependencies:
406 | "@jridgewell/resolve-uri" "^3.1.0"
407 | "@jridgewell/sourcemap-codec" "^1.4.14"
408 |
409 | "@mediapipe/camera_utils@^0.3.1640029074":
410 | version "0.3.1675466862"
411 | resolved "https://registry.yarnpkg.com/@mediapipe/camera_utils/-/camera_utils-0.3.1675466862.tgz#861051d4343325a7e838714fe72050df37c0cdd0"
412 | integrity sha512-siuXBoUxWo9WL0MeAxIxvxY04bvbtdNl7uCxoJxiAiRtNnCYrurr7Vl5VYQ94P7Sq0gVq6PxIDhWWeZ/pLnSzw==
413 |
414 | "@mediapipe/control_utils@^0.6.1629159505":
415 | version "0.6.1675466023"
416 | resolved "https://registry.yarnpkg.com/@mediapipe/control_utils/-/control_utils-0.6.1675466023.tgz#76c514b535db319da02f0dddb8f8b8222bb7a560"
417 | integrity sha512-CB+L71vUJJSqvULGsZGfqkEiqywoCB898MiM6qWGrk8t5El0HVmHrQbsh2Gx3/N/V2xlYzoU43Wwr2FEAIFHzg==
418 |
419 | "@mediapipe/drawing_utils@^0.3.1620248257":
420 | version "0.3.1675466124"
421 | resolved "https://registry.yarnpkg.com/@mediapipe/drawing_utils/-/drawing_utils-0.3.1675466124.tgz#40e9dd87ffaefc58aea7dac36a98cc917e0d90d0"
422 | integrity sha512-/IWIB/iYRMtiUKe3k7yGqvwseWHCOqzVpRDfMgZ6gv9z7EEimg6iZbRluoPbcNKHbYSxN5yOvYTzUYb8KVf22Q==
423 |
424 | "@mediapipe/hands@^0.4.1646424915":
425 | version "0.4.1675469240"
426 | resolved "https://registry.yarnpkg.com/@mediapipe/hands/-/hands-0.4.1675469240.tgz#f032b2f5deff5a69430693f94be45dd9854e803f"
427 | integrity sha512-GxoZvL1mmhJxFxjuyj7vnC++JIuInGznHBin5c7ZSq/RbcnGyfEcJrkM/bMu5K1Mz/2Ko+vEX6/+wewmEHPrHg==
428 |
429 | "@nodelib/fs.scandir@2.1.5":
430 | version "2.1.5"
431 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
432 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
433 | dependencies:
434 | "@nodelib/fs.stat" "2.0.5"
435 | run-parallel "^1.1.9"
436 |
437 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
438 | version "2.0.5"
439 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
440 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
441 |
442 | "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
443 | version "1.2.8"
444 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
445 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
446 | dependencies:
447 | "@nodelib/fs.scandir" "2.1.5"
448 | fastq "^1.6.0"
449 |
450 | "@techstark/opencv-js@^4.6.0-release.1":
451 | version "4.6.0-release.1"
452 | resolved "https://registry.yarnpkg.com/@techstark/opencv-js/-/opencv-js-4.6.0-release.1.tgz#27cf98f16aa827afdd3aff8e6b3f166fe18dcf67"
453 | integrity sha512-wRupCKclD7wceqdu4nEPyaOkTQNMtTMlmkSqroZH2LFxlIw/QTRFIGpGCYCNbPH7MtWngxFGPjQ6wcGnTBKnzw==
454 | dependencies:
455 | mirada "^0.0.15"
456 |
457 | "@tensorflow/tfjs-backend-cpu@3.21.0":
458 | version "3.21.0"
459 | resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.21.0.tgz#ee0274bf14627d08b81c4e229230da66dc9c3d92"
460 | integrity sha512-88S21UAdzyK0CsLUrH17GPTD+26E85OP9CqmLZslaWjWUmBkeTQ5Zqyp6iK+gELnLxPx6q7JsNEeFuPv4254lQ==
461 | dependencies:
462 | "@types/seedrandom" "^2.4.28"
463 | seedrandom "^3.0.5"
464 |
465 | "@tensorflow/tfjs-backend-webgl@3.21.0":
466 | version "3.21.0"
467 | resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.21.0.tgz#357d70c2fbd741e1d026b0788cbf5bc7c651cca3"
468 | integrity sha512-N4zitIAT9IX8B8oe489qM3f3VcESxGZIZvHmVP8varOQakTvTX859aaPo1s8hK1qCy4BjSGbweooZe4U8D4kTQ==
469 | dependencies:
470 | "@tensorflow/tfjs-backend-cpu" "3.21.0"
471 | "@types/offscreencanvas" "~2019.3.0"
472 | "@types/seedrandom" "^2.4.28"
473 | "@types/webgl-ext" "0.0.30"
474 | "@types/webgl2" "0.0.6"
475 | seedrandom "^3.0.5"
476 |
477 | "@tensorflow/tfjs-converter@3.21.0":
478 | version "3.21.0"
479 | resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-converter/-/tfjs-converter-3.21.0.tgz#a5872aa8b949dc01315fb7f7fea2df91a1f15799"
480 | integrity sha512-12Y4zVDq3yW+wSjSDpSv4HnpL2sDZrNiGSg8XNiDE4HQBdjdA+a+Q3sZF/8NV9y2yoBhL5L7V4mMLDdbZBd9/Q==
481 |
482 | "@tensorflow/tfjs-core@3.21.0":
483 | version "3.21.0"
484 | resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-3.21.0.tgz#379c3698afc8f66bc82f77c7e35c35910daf7e3b"
485 | integrity sha512-YSfsswOqWfd+M4bXIhT3hwtAb+IV8+ODwIxwdFR/7jTAPZP1wMVnSlpKnXHAN64HFOiP+Tm3HmKusEZ0+09A0w==
486 | dependencies:
487 | "@types/long" "^4.0.1"
488 | "@types/offscreencanvas" "~2019.3.0"
489 | "@types/seedrandom" "^2.4.28"
490 | "@types/webgl-ext" "0.0.30"
491 | "@webgpu/types" "0.1.16"
492 | long "4.0.0"
493 | node-fetch "~2.6.1"
494 | seedrandom "^3.0.5"
495 |
496 | "@tensorflow/tfjs-data@3.21.0":
497 | version "3.21.0"
498 | resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-data/-/tfjs-data-3.21.0.tgz#56cf012f5a4b08e8ff1a42ace72f97925a2aef9d"
499 | integrity sha512-eFLfw2wIcFNxnP2Iv/SnVlihehzKMumk1b5Prcx1ixk/SbkCo5u0Lt7OVOWaEOKVqvB2sT+dJcTjAh6lrCC/QA==
500 | dependencies:
501 | "@types/node-fetch" "^2.1.2"
502 | node-fetch "~2.6.1"
503 | string_decoder "^1.3.0"
504 |
505 | "@tensorflow/tfjs-layers@3.21.0":
506 | version "3.21.0"
507 | resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-layers/-/tfjs-layers-3.21.0.tgz#7fff00662e86f132bcab67f079c8653c3b1580e7"
508 | integrity sha512-CMVXsraakXgnXEnqD9QbtResA7nvV7Jz20pGmjFIodcQkClgmFFhdCG5N+zlVRHEz7VKG2OyfhltZ0dBq/OAhA==
509 |
510 | "@tensorflow/tfjs@^3.21.0":
511 | version "3.21.0"
512 | resolved "https://registry.yarnpkg.com/@tensorflow/tfjs/-/tfjs-3.21.0.tgz#18abd201239178cb23ddd85a33f87af8eeacfc7f"
513 | integrity sha512-khcARd3/872llL/oF4ouR40qlT71mylU66PGT8kHP/GJ5YKj44sv8lDRjU7lOVlJK7jsJFWEsNVHI3eMc/GWNQ==
514 | dependencies:
515 | "@tensorflow/tfjs-backend-cpu" "3.21.0"
516 | "@tensorflow/tfjs-backend-webgl" "3.21.0"
517 | "@tensorflow/tfjs-converter" "3.21.0"
518 | "@tensorflow/tfjs-core" "3.21.0"
519 | "@tensorflow/tfjs-data" "3.21.0"
520 | "@tensorflow/tfjs-layers" "3.21.0"
521 | argparse "^1.0.10"
522 | chalk "^4.1.0"
523 | core-js "3"
524 | regenerator-runtime "^0.13.5"
525 | yargs "^16.0.3"
526 |
527 | "@types/json-schema@^7.0.12":
528 | version "7.0.12"
529 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb"
530 | integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==
531 |
532 | "@types/long@^4.0.1":
533 | version "4.0.2"
534 | resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a"
535 | integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==
536 |
537 | "@types/node-fetch@^2.1.2":
538 | version "2.6.4"
539 | resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.4.tgz#1bc3a26de814f6bf466b25aeb1473fa1afe6a660"
540 | integrity sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==
541 | dependencies:
542 | "@types/node" "*"
543 | form-data "^3.0.0"
544 |
545 | "@types/node@*":
546 | version "20.5.6"
547 | resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.6.tgz#5e9aaa86be03a09decafd61b128d6cec64a5fe40"
548 | integrity sha512-Gi5wRGPbbyOTX+4Y2iULQ27oUPrefaB0PxGQJnfyWN3kvEDGM3mIB5M/gQLmitZf7A9FmLeaqxD3L1CXpm3VKQ==
549 |
550 | "@types/offscreencanvas@~2019.3.0":
551 | version "2019.3.0"
552 | resolved "https://registry.yarnpkg.com/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz#3336428ec7e9180cf4566dfea5da04eb586a6553"
553 | integrity sha512-esIJx9bQg+QYF0ra8GnvfianIY8qWB0GBx54PK5Eps6m+xTj86KLavHv6qDhzKcu5UUOgNfJ2pWaIIV7TRUd9Q==
554 |
555 | "@types/prop-types@*":
556 | version "15.7.5"
557 | resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
558 | integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
559 |
560 | "@types/react-dom@^18.2.7":
561 | version "18.2.7"
562 | resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.7.tgz#67222a08c0a6ae0a0da33c3532348277c70abb63"
563 | integrity sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==
564 | dependencies:
565 | "@types/react" "*"
566 |
567 | "@types/react@*", "@types/react@^18.2.15":
568 | version "18.2.21"
569 | resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.21.tgz#774c37fd01b522d0b91aed04811b58e4e0514ed9"
570 | integrity sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA==
571 | dependencies:
572 | "@types/prop-types" "*"
573 | "@types/scheduler" "*"
574 | csstype "^3.0.2"
575 |
576 | "@types/scheduler@*":
577 | version "0.16.3"
578 | resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5"
579 | integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==
580 |
581 | "@types/seedrandom@^2.4.28":
582 | version "2.4.30"
583 | resolved "https://registry.yarnpkg.com/@types/seedrandom/-/seedrandom-2.4.30.tgz#d2efe425869b84163c2d56e779dddadb9372cbfa"
584 | integrity sha512-AnxLHewubLVzoF/A4qdxBGHCKifw8cY32iro3DQX9TPcetE95zBeVt3jnsvtvAUf1vwzMfwzp4t/L2yqPlnjkQ==
585 |
586 | "@types/semver@^7.5.0":
587 | version "7.5.0"
588 | resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a"
589 | integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==
590 |
591 | "@types/webgl-ext@0.0.30":
592 | version "0.0.30"
593 | resolved "https://registry.yarnpkg.com/@types/webgl-ext/-/webgl-ext-0.0.30.tgz#0ce498c16a41a23d15289e0b844d945b25f0fb9d"
594 | integrity sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg==
595 |
596 | "@types/webgl2@0.0.6":
597 | version "0.0.6"
598 | resolved "https://registry.yarnpkg.com/@types/webgl2/-/webgl2-0.0.6.tgz#1ea2db791362bd8521548d664dbd3c5311cdf4b6"
599 | integrity sha512-50GQhDVTq/herLMiqSQkdtRu+d5q/cWHn4VvKJtrj4DJAjo1MNkWYa2MA41BaBO1q1HgsUjuQvEOk0QHvlnAaQ==
600 |
601 | "@typescript-eslint/eslint-plugin@^6.0.0":
602 | version "6.4.1"
603 | resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.4.1.tgz#bc0c6f000134b53c304ad0bec4ee4753cd3e89d2"
604 | integrity sha512-3F5PtBzUW0dYlq77Lcqo13fv+58KDwUib3BddilE8ajPJT+faGgxmI9Sw+I8ZS22BYwoir9ZhNXcLi+S+I2bkw==
605 | dependencies:
606 | "@eslint-community/regexpp" "^4.5.1"
607 | "@typescript-eslint/scope-manager" "6.4.1"
608 | "@typescript-eslint/type-utils" "6.4.1"
609 | "@typescript-eslint/utils" "6.4.1"
610 | "@typescript-eslint/visitor-keys" "6.4.1"
611 | debug "^4.3.4"
612 | graphemer "^1.4.0"
613 | ignore "^5.2.4"
614 | natural-compare "^1.4.0"
615 | semver "^7.5.4"
616 | ts-api-utils "^1.0.1"
617 |
618 | "@typescript-eslint/parser@^6.0.0":
619 | version "6.4.1"
620 | resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.4.1.tgz#85ad550bf4ac4aa227504f1becb828f8e46c44e3"
621 | integrity sha512-610G6KHymg9V7EqOaNBMtD1GgpAmGROsmfHJPXNLCU9bfIuLrkdOygltK784F6Crboyd5tBFayPB7Sf0McrQwg==
622 | dependencies:
623 | "@typescript-eslint/scope-manager" "6.4.1"
624 | "@typescript-eslint/types" "6.4.1"
625 | "@typescript-eslint/typescript-estree" "6.4.1"
626 | "@typescript-eslint/visitor-keys" "6.4.1"
627 | debug "^4.3.4"
628 |
629 | "@typescript-eslint/scope-manager@6.4.1":
630 | version "6.4.1"
631 | resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.4.1.tgz#4b073a30be2dbe603e44e9ae0cff7e1d3ed19278"
632 | integrity sha512-p/OavqOQfm4/Hdrr7kvacOSFjwQ2rrDVJRPxt/o0TOWdFnjJptnjnZ+sYDR7fi4OimvIuKp+2LCkc+rt9fIW+A==
633 | dependencies:
634 | "@typescript-eslint/types" "6.4.1"
635 | "@typescript-eslint/visitor-keys" "6.4.1"
636 |
637 | "@typescript-eslint/type-utils@6.4.1":
638 | version "6.4.1"
639 | resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.4.1.tgz#fa21cb13016c8d6f352fe9b2d6c9ab6edc2d1857"
640 | integrity sha512-7ON8M8NXh73SGZ5XvIqWHjgX2f+vvaOarNliGhjrJnv1vdjG0LVIz+ToYfPirOoBi56jxAKLfsLm40+RvxVVXA==
641 | dependencies:
642 | "@typescript-eslint/typescript-estree" "6.4.1"
643 | "@typescript-eslint/utils" "6.4.1"
644 | debug "^4.3.4"
645 | ts-api-utils "^1.0.1"
646 |
647 | "@typescript-eslint/types@6.4.1":
648 | version "6.4.1"
649 | resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.4.1.tgz#b2c61159f46dda210fed9f117f5d027f65bb5c3b"
650 | integrity sha512-zAAopbNuYu++ijY1GV2ylCsQsi3B8QvfPHVqhGdDcbx/NK5lkqMnCGU53amAjccSpk+LfeONxwzUhDzArSfZJg==
651 |
652 | "@typescript-eslint/typescript-estree@6.4.1":
653 | version "6.4.1"
654 | resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.4.1.tgz#91ff88101c710adb0f70a317f2f65efa9441da45"
655 | integrity sha512-xF6Y7SatVE/OyV93h1xGgfOkHr2iXuo8ip0gbfzaKeGGuKiAnzS+HtVhSPx8Www243bwlW8IF7X0/B62SzFftg==
656 | dependencies:
657 | "@typescript-eslint/types" "6.4.1"
658 | "@typescript-eslint/visitor-keys" "6.4.1"
659 | debug "^4.3.4"
660 | globby "^11.1.0"
661 | is-glob "^4.0.3"
662 | semver "^7.5.4"
663 | ts-api-utils "^1.0.1"
664 |
665 | "@typescript-eslint/utils@6.4.1":
666 | version "6.4.1"
667 | resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.4.1.tgz#81bf62ff0c3119a26c19fab683582e29450717bc"
668 | integrity sha512-F/6r2RieNeorU0zhqZNv89s9bDZSovv3bZQpUNOmmQK1L80/cV4KEu95YUJWi75u5PhboFoKUJBnZ4FQcoqhDw==
669 | dependencies:
670 | "@eslint-community/eslint-utils" "^4.4.0"
671 | "@types/json-schema" "^7.0.12"
672 | "@types/semver" "^7.5.0"
673 | "@typescript-eslint/scope-manager" "6.4.1"
674 | "@typescript-eslint/types" "6.4.1"
675 | "@typescript-eslint/typescript-estree" "6.4.1"
676 | semver "^7.5.4"
677 |
678 | "@typescript-eslint/visitor-keys@6.4.1":
679 | version "6.4.1"
680 | resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.4.1.tgz#e3ccf7b8d42e625946ac5094ed92a405fb4115e0"
681 | integrity sha512-y/TyRJsbZPkJIZQXrHfdnxVnxyKegnpEvnRGNam7s3TRR2ykGefEWOhaef00/UUN3IZxizS7BTO3svd3lCOJRQ==
682 | dependencies:
683 | "@typescript-eslint/types" "6.4.1"
684 | eslint-visitor-keys "^3.4.1"
685 |
686 | "@vitejs/plugin-react@^4.0.3":
687 | version "4.0.4"
688 | resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.0.4.tgz#31c3f779dc534e045c4b134e7cf7b150af0a7646"
689 | integrity sha512-7wU921ABnNYkETiMaZy7XqpueMnpu5VxvVps13MjmCo+utBdD79sZzrApHawHtVX66cCJQQTXFcjH0y9dSUK8g==
690 | dependencies:
691 | "@babel/core" "^7.22.9"
692 | "@babel/plugin-transform-react-jsx-self" "^7.22.5"
693 | "@babel/plugin-transform-react-jsx-source" "^7.22.5"
694 | react-refresh "^0.14.0"
695 |
696 | "@webgpu/types@0.1.16":
697 | version "0.1.16"
698 | resolved "https://registry.yarnpkg.com/@webgpu/types/-/types-0.1.16.tgz#1f05497b95b7c013facf7035c8e21784645f5cc4"
699 | integrity sha512-9E61voMP4+Rze02jlTXud++Htpjyyk8vw5Hyw9FGRrmhHQg2GqbuOfwf5Klrb8vTxc2XWI3EfO7RUHMpxTj26A==
700 |
701 | acorn-jsx@^5.3.2:
702 | version "5.3.2"
703 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
704 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
705 |
706 | acorn@^8.9.0:
707 | version "8.10.0"
708 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5"
709 | integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==
710 |
711 | ajv@^6.12.4:
712 | version "6.12.6"
713 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
714 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
715 | dependencies:
716 | fast-deep-equal "^3.1.1"
717 | fast-json-stable-stringify "^2.0.0"
718 | json-schema-traverse "^0.4.1"
719 | uri-js "^4.2.2"
720 |
721 | ansi-regex@^5.0.1:
722 | version "5.0.1"
723 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
724 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
725 |
726 | ansi-styles@^3.2.1:
727 | version "3.2.1"
728 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
729 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
730 | dependencies:
731 | color-convert "^1.9.0"
732 |
733 | ansi-styles@^4.0.0, ansi-styles@^4.1.0:
734 | version "4.3.0"
735 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
736 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
737 | dependencies:
738 | color-convert "^2.0.1"
739 |
740 | argparse@^1.0.10:
741 | version "1.0.10"
742 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
743 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
744 | dependencies:
745 | sprintf-js "~1.0.2"
746 |
747 | argparse@^2.0.1:
748 | version "2.0.1"
749 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
750 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
751 |
752 | array-union@^2.1.0:
753 | version "2.1.0"
754 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
755 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
756 |
757 | asynckit@^0.4.0:
758 | version "0.4.0"
759 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
760 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
761 |
762 | balanced-match@^1.0.0:
763 | version "1.0.2"
764 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
765 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
766 |
767 | base64-js@^1.3.1:
768 | version "1.5.1"
769 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
770 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
771 |
772 | brace-expansion@^1.1.7:
773 | version "1.1.11"
774 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
775 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
776 | dependencies:
777 | balanced-match "^1.0.0"
778 | concat-map "0.0.1"
779 |
780 | braces@^3.0.2:
781 | version "3.0.2"
782 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
783 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
784 | dependencies:
785 | fill-range "^7.0.1"
786 |
787 | browserslist@^4.21.9:
788 | version "4.21.10"
789 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0"
790 | integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==
791 | dependencies:
792 | caniuse-lite "^1.0.30001517"
793 | electron-to-chromium "^1.4.477"
794 | node-releases "^2.0.13"
795 | update-browserslist-db "^1.0.11"
796 |
797 | buffer@^5.4.3:
798 | version "5.7.1"
799 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
800 | integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
801 | dependencies:
802 | base64-js "^1.3.1"
803 | ieee754 "^1.1.13"
804 |
805 | callsites@^3.0.0:
806 | version "3.1.0"
807 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
808 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
809 |
810 | caniuse-lite@^1.0.30001517:
811 | version "1.0.30001523"
812 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001523.tgz#b838f70b1a98c556776b998fafb47d2b64146d4f"
813 | integrity sha512-I5q5cisATTPZ1mc588Z//pj/Ox80ERYDfR71YnvY7raS/NOk8xXlZcB0sF7JdqaV//kOaa6aus7lRfpdnt1eBA==
814 |
815 | chalk@^2.4.2:
816 | version "2.4.2"
817 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
818 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
819 | dependencies:
820 | ansi-styles "^3.2.1"
821 | escape-string-regexp "^1.0.5"
822 | supports-color "^5.3.0"
823 |
824 | chalk@^4.0.0, chalk@^4.1.0:
825 | version "4.1.2"
826 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
827 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
828 | dependencies:
829 | ansi-styles "^4.1.0"
830 | supports-color "^7.1.0"
831 |
832 | cliui@^7.0.2:
833 | version "7.0.4"
834 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
835 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
836 | dependencies:
837 | string-width "^4.2.0"
838 | strip-ansi "^6.0.0"
839 | wrap-ansi "^7.0.0"
840 |
841 | color-convert@^1.9.0:
842 | version "1.9.3"
843 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
844 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
845 | dependencies:
846 | color-name "1.1.3"
847 |
848 | color-convert@^2.0.1:
849 | version "2.0.1"
850 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
851 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
852 | dependencies:
853 | color-name "~1.1.4"
854 |
855 | color-name@1.1.3:
856 | version "1.1.3"
857 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
858 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
859 |
860 | color-name@~1.1.4:
861 | version "1.1.4"
862 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
863 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
864 |
865 | combined-stream@^1.0.8:
866 | version "1.0.8"
867 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
868 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
869 | dependencies:
870 | delayed-stream "~1.0.0"
871 |
872 | comlink@^4.3.1:
873 | version "4.4.1"
874 | resolved "https://registry.yarnpkg.com/comlink/-/comlink-4.4.1.tgz#e568b8e86410b809e8600eb2cf40c189371ef981"
875 | integrity sha512-+1dlx0aY5Jo1vHy/tSsIGpSkN4tS9rZSW8FIhG0JH/crs9wwweswIo/POr451r7bZww3hFbPAKnTpimzL/mm4Q==
876 |
877 | concat-map@0.0.1:
878 | version "0.0.1"
879 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
880 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
881 |
882 | convert-source-map@^1.7.0:
883 | version "1.9.0"
884 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
885 | integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
886 |
887 | core-js@3:
888 | version "3.32.1"
889 | resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.32.1.tgz#a7d8736a3ed9dd05940c3c4ff32c591bb735be77"
890 | integrity sha512-lqufgNn9NLnESg5mQeYsxQP5w7wrViSj0jr/kv6ECQiByzQkrn1MKvV0L3acttpDqfQrHLwr2KCMgX5b8X+lyQ==
891 |
892 | cross-fetch@^3.0.4:
893 | version "3.1.8"
894 | resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82"
895 | integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==
896 | dependencies:
897 | node-fetch "^2.6.12"
898 |
899 | cross-spawn@^7.0.2:
900 | version "7.0.3"
901 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
902 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
903 | dependencies:
904 | path-key "^3.1.0"
905 | shebang-command "^2.0.0"
906 | which "^2.0.1"
907 |
908 | csstype@^3.0.2:
909 | version "3.1.2"
910 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
911 | integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
912 |
913 | debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
914 | version "4.3.4"
915 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
916 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
917 | dependencies:
918 | ms "2.1.2"
919 |
920 | deep-is@^0.1.3:
921 | version "0.1.4"
922 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
923 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
924 |
925 | delayed-stream@~1.0.0:
926 | version "1.0.0"
927 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
928 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
929 |
930 | dir-glob@^3.0.1:
931 | version "3.0.1"
932 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
933 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
934 | dependencies:
935 | path-type "^4.0.0"
936 |
937 | doctrine@^3.0.0:
938 | version "3.0.0"
939 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
940 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
941 | dependencies:
942 | esutils "^2.0.2"
943 |
944 | electron-to-chromium@^1.4.477:
945 | version "1.4.503"
946 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.503.tgz#7bd43927ea9b4198697672d28d8fbd0da016a7a1"
947 | integrity sha512-LF2IQit4B0VrUHFeQkWhZm97KuJSGF2WJqq1InpY+ECpFRkXd8yTIaTtJxsO0OKDmiBYwWqcrNaXOurn2T2wiA==
948 |
949 | emoji-regex@^8.0.0:
950 | version "8.0.0"
951 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
952 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
953 |
954 | esbuild@^0.18.10:
955 | version "0.18.20"
956 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6"
957 | integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==
958 | optionalDependencies:
959 | "@esbuild/android-arm" "0.18.20"
960 | "@esbuild/android-arm64" "0.18.20"
961 | "@esbuild/android-x64" "0.18.20"
962 | "@esbuild/darwin-arm64" "0.18.20"
963 | "@esbuild/darwin-x64" "0.18.20"
964 | "@esbuild/freebsd-arm64" "0.18.20"
965 | "@esbuild/freebsd-x64" "0.18.20"
966 | "@esbuild/linux-arm" "0.18.20"
967 | "@esbuild/linux-arm64" "0.18.20"
968 | "@esbuild/linux-ia32" "0.18.20"
969 | "@esbuild/linux-loong64" "0.18.20"
970 | "@esbuild/linux-mips64el" "0.18.20"
971 | "@esbuild/linux-ppc64" "0.18.20"
972 | "@esbuild/linux-riscv64" "0.18.20"
973 | "@esbuild/linux-s390x" "0.18.20"
974 | "@esbuild/linux-x64" "0.18.20"
975 | "@esbuild/netbsd-x64" "0.18.20"
976 | "@esbuild/openbsd-x64" "0.18.20"
977 | "@esbuild/sunos-x64" "0.18.20"
978 | "@esbuild/win32-arm64" "0.18.20"
979 | "@esbuild/win32-ia32" "0.18.20"
980 | "@esbuild/win32-x64" "0.18.20"
981 |
982 | escalade@^3.1.1:
983 | version "3.1.1"
984 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
985 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
986 |
987 | escape-string-regexp@^1.0.5:
988 | version "1.0.5"
989 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
990 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
991 |
992 | escape-string-regexp@^4.0.0:
993 | version "4.0.0"
994 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
995 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
996 |
997 | eslint-plugin-react-hooks@^4.6.0:
998 | version "4.6.0"
999 | resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3"
1000 | integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==
1001 |
1002 | eslint-plugin-react-refresh@^0.4.3:
1003 | version "0.4.3"
1004 | resolved "https://registry.yarnpkg.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.3.tgz#59dae8c00a119f06ea16b1d3e6891df3775947c7"
1005 | integrity sha512-Hh0wv8bUNY877+sI0BlCUlsS0TYYQqvzEwJsJJPM2WF4RnTStSnSR3zdJYa2nPOJgg3UghXi54lVyMSmpCalzA==
1006 |
1007 | eslint-scope@^7.2.2:
1008 | version "7.2.2"
1009 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f"
1010 | integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
1011 | dependencies:
1012 | esrecurse "^4.3.0"
1013 | estraverse "^5.2.0"
1014 |
1015 | eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
1016 | version "3.4.3"
1017 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
1018 | integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
1019 |
1020 | eslint@^8.45.0:
1021 | version "8.48.0"
1022 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.48.0.tgz#bf9998ba520063907ba7bfe4c480dc8be03c2155"
1023 | integrity sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==
1024 | dependencies:
1025 | "@eslint-community/eslint-utils" "^4.2.0"
1026 | "@eslint-community/regexpp" "^4.6.1"
1027 | "@eslint/eslintrc" "^2.1.2"
1028 | "@eslint/js" "8.48.0"
1029 | "@humanwhocodes/config-array" "^0.11.10"
1030 | "@humanwhocodes/module-importer" "^1.0.1"
1031 | "@nodelib/fs.walk" "^1.2.8"
1032 | ajv "^6.12.4"
1033 | chalk "^4.0.0"
1034 | cross-spawn "^7.0.2"
1035 | debug "^4.3.2"
1036 | doctrine "^3.0.0"
1037 | escape-string-regexp "^4.0.0"
1038 | eslint-scope "^7.2.2"
1039 | eslint-visitor-keys "^3.4.3"
1040 | espree "^9.6.1"
1041 | esquery "^1.4.2"
1042 | esutils "^2.0.2"
1043 | fast-deep-equal "^3.1.3"
1044 | file-entry-cache "^6.0.1"
1045 | find-up "^5.0.0"
1046 | glob-parent "^6.0.2"
1047 | globals "^13.19.0"
1048 | graphemer "^1.4.0"
1049 | ignore "^5.2.0"
1050 | imurmurhash "^0.1.4"
1051 | is-glob "^4.0.0"
1052 | is-path-inside "^3.0.3"
1053 | js-yaml "^4.1.0"
1054 | json-stable-stringify-without-jsonify "^1.0.1"
1055 | levn "^0.4.1"
1056 | lodash.merge "^4.6.2"
1057 | minimatch "^3.1.2"
1058 | natural-compare "^1.4.0"
1059 | optionator "^0.9.3"
1060 | strip-ansi "^6.0.1"
1061 | text-table "^0.2.0"
1062 |
1063 | espree@^9.6.0, espree@^9.6.1:
1064 | version "9.6.1"
1065 | resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
1066 | integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
1067 | dependencies:
1068 | acorn "^8.9.0"
1069 | acorn-jsx "^5.3.2"
1070 | eslint-visitor-keys "^3.4.1"
1071 |
1072 | esquery@^1.4.2:
1073 | version "1.5.0"
1074 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b"
1075 | integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
1076 | dependencies:
1077 | estraverse "^5.1.0"
1078 |
1079 | esrecurse@^4.3.0:
1080 | version "4.3.0"
1081 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
1082 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
1083 | dependencies:
1084 | estraverse "^5.2.0"
1085 |
1086 | estraverse@^5.1.0, estraverse@^5.2.0:
1087 | version "5.3.0"
1088 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
1089 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
1090 |
1091 | esutils@^2.0.2:
1092 | version "2.0.3"
1093 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
1094 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
1095 |
1096 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
1097 | version "3.1.3"
1098 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
1099 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
1100 |
1101 | fast-glob@^3.2.9:
1102 | version "3.3.1"
1103 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4"
1104 | integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==
1105 | dependencies:
1106 | "@nodelib/fs.stat" "^2.0.2"
1107 | "@nodelib/fs.walk" "^1.2.3"
1108 | glob-parent "^5.1.2"
1109 | merge2 "^1.3.0"
1110 | micromatch "^4.0.4"
1111 |
1112 | fast-json-stable-stringify@^2.0.0:
1113 | version "2.1.0"
1114 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
1115 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
1116 |
1117 | fast-levenshtein@^2.0.6:
1118 | version "2.0.6"
1119 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
1120 | integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
1121 |
1122 | fastq@^1.6.0:
1123 | version "1.15.0"
1124 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a"
1125 | integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==
1126 | dependencies:
1127 | reusify "^1.0.4"
1128 |
1129 | file-entry-cache@^6.0.1:
1130 | version "6.0.1"
1131 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
1132 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
1133 | dependencies:
1134 | flat-cache "^3.0.4"
1135 |
1136 | file-type@^12.3.0:
1137 | version "12.4.2"
1138 | resolved "https://registry.yarnpkg.com/file-type/-/file-type-12.4.2.tgz#a344ea5664a1d01447ee7fb1b635f72feb6169d9"
1139 | integrity sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==
1140 |
1141 | fill-range@^7.0.1:
1142 | version "7.0.1"
1143 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
1144 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
1145 | dependencies:
1146 | to-regex-range "^5.0.1"
1147 |
1148 | find-up@^5.0.0:
1149 | version "5.0.0"
1150 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
1151 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
1152 | dependencies:
1153 | locate-path "^6.0.0"
1154 | path-exists "^4.0.0"
1155 |
1156 | flat-cache@^3.0.4:
1157 | version "3.1.0"
1158 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.0.tgz#0e54ab4a1a60fe87e2946b6b00657f1c99e1af3f"
1159 | integrity sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==
1160 | dependencies:
1161 | flatted "^3.2.7"
1162 | keyv "^4.5.3"
1163 | rimraf "^3.0.2"
1164 |
1165 | flatted@^3.2.7:
1166 | version "3.2.7"
1167 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787"
1168 | integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
1169 |
1170 | form-data@^3.0.0:
1171 | version "3.0.1"
1172 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"
1173 | integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==
1174 | dependencies:
1175 | asynckit "^0.4.0"
1176 | combined-stream "^1.0.8"
1177 | mime-types "^2.1.12"
1178 |
1179 | fs.realpath@^1.0.0:
1180 | version "1.0.0"
1181 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
1182 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
1183 |
1184 | fsevents@~2.3.2:
1185 | version "2.3.3"
1186 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
1187 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
1188 |
1189 | gensync@^1.0.0-beta.2:
1190 | version "1.0.0-beta.2"
1191 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
1192 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
1193 |
1194 | get-caller-file@^2.0.5:
1195 | version "2.0.5"
1196 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
1197 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
1198 |
1199 | glob-parent@^5.1.2:
1200 | version "5.1.2"
1201 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
1202 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
1203 | dependencies:
1204 | is-glob "^4.0.1"
1205 |
1206 | glob-parent@^6.0.2:
1207 | version "6.0.2"
1208 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
1209 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
1210 | dependencies:
1211 | is-glob "^4.0.3"
1212 |
1213 | glob@^7.1.3:
1214 | version "7.2.3"
1215 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
1216 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
1217 | dependencies:
1218 | fs.realpath "^1.0.0"
1219 | inflight "^1.0.4"
1220 | inherits "2"
1221 | minimatch "^3.1.1"
1222 | once "^1.3.0"
1223 | path-is-absolute "^1.0.0"
1224 |
1225 | globals@^11.1.0:
1226 | version "11.12.0"
1227 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
1228 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
1229 |
1230 | globals@^13.19.0:
1231 | version "13.21.0"
1232 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.21.0.tgz#163aae12f34ef502f5153cfbdd3600f36c63c571"
1233 | integrity sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==
1234 | dependencies:
1235 | type-fest "^0.20.2"
1236 |
1237 | globby@^11.1.0:
1238 | version "11.1.0"
1239 | resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
1240 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
1241 | dependencies:
1242 | array-union "^2.1.0"
1243 | dir-glob "^3.0.1"
1244 | fast-glob "^3.2.9"
1245 | ignore "^5.2.0"
1246 | merge2 "^1.4.1"
1247 | slash "^3.0.0"
1248 |
1249 | graphemer@^1.4.0:
1250 | version "1.4.0"
1251 | resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
1252 | integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
1253 |
1254 | has-flag@^3.0.0:
1255 | version "3.0.0"
1256 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
1257 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
1258 |
1259 | has-flag@^4.0.0:
1260 | version "4.0.0"
1261 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
1262 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
1263 |
1264 | ieee754@^1.1.13:
1265 | version "1.2.1"
1266 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
1267 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
1268 |
1269 | ignore@^5.2.0, ignore@^5.2.4:
1270 | version "5.2.4"
1271 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
1272 | integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
1273 |
1274 | import-fresh@^3.2.1:
1275 | version "3.3.0"
1276 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
1277 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
1278 | dependencies:
1279 | parent-module "^1.0.0"
1280 | resolve-from "^4.0.0"
1281 |
1282 | imurmurhash@^0.1.4:
1283 | version "0.1.4"
1284 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
1285 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
1286 |
1287 | inflight@^1.0.4:
1288 | version "1.0.6"
1289 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1290 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
1291 | dependencies:
1292 | once "^1.3.0"
1293 | wrappy "1"
1294 |
1295 | inherits@2:
1296 | version "2.0.4"
1297 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
1298 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
1299 |
1300 | is-extglob@^2.1.1:
1301 | version "2.1.1"
1302 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
1303 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
1304 |
1305 | is-fullwidth-code-point@^3.0.0:
1306 | version "3.0.0"
1307 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
1308 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
1309 |
1310 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
1311 | version "4.0.3"
1312 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
1313 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
1314 | dependencies:
1315 | is-extglob "^2.1.1"
1316 |
1317 | is-number@^7.0.0:
1318 | version "7.0.0"
1319 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
1320 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
1321 |
1322 | is-path-inside@^3.0.3:
1323 | version "3.0.3"
1324 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
1325 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
1326 |
1327 | isexe@^2.0.0:
1328 | version "2.0.0"
1329 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
1330 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
1331 |
1332 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
1333 | version "4.0.0"
1334 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
1335 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1336 |
1337 | js-yaml@^4.1.0:
1338 | version "4.1.0"
1339 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
1340 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
1341 | dependencies:
1342 | argparse "^2.0.1"
1343 |
1344 | jsesc@^2.5.1:
1345 | version "2.5.2"
1346 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
1347 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
1348 |
1349 | json-buffer@3.0.1:
1350 | version "3.0.1"
1351 | resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
1352 | integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
1353 |
1354 | json-schema-traverse@^0.4.1:
1355 | version "0.4.1"
1356 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
1357 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
1358 |
1359 | json-stable-stringify-without-jsonify@^1.0.1:
1360 | version "1.0.1"
1361 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
1362 | integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
1363 |
1364 | json5@^2.2.3:
1365 | version "2.2.3"
1366 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
1367 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
1368 |
1369 | keyv@^4.5.3:
1370 | version "4.5.3"
1371 | resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25"
1372 | integrity sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==
1373 | dependencies:
1374 | json-buffer "3.0.1"
1375 |
1376 | levn@^0.4.1:
1377 | version "0.4.1"
1378 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
1379 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
1380 | dependencies:
1381 | prelude-ls "^1.2.1"
1382 | type-check "~0.4.0"
1383 |
1384 | locate-path@^6.0.0:
1385 | version "6.0.0"
1386 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
1387 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
1388 | dependencies:
1389 | p-locate "^5.0.0"
1390 |
1391 | lodash.merge@^4.6.2:
1392 | version "4.6.2"
1393 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
1394 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
1395 |
1396 | lodash@^4.17.21:
1397 | version "4.17.21"
1398 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
1399 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
1400 |
1401 | long@4.0.0:
1402 | version "4.0.0"
1403 | resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"
1404 | integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==
1405 |
1406 | loose-envify@^1.1.0:
1407 | version "1.4.0"
1408 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
1409 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
1410 | dependencies:
1411 | js-tokens "^3.0.0 || ^4.0.0"
1412 |
1413 | lru-cache@^5.1.1:
1414 | version "5.1.1"
1415 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
1416 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
1417 | dependencies:
1418 | yallist "^3.0.2"
1419 |
1420 | lru-cache@^6.0.0:
1421 | version "6.0.0"
1422 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
1423 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
1424 | dependencies:
1425 | yallist "^4.0.0"
1426 |
1427 | merge2@^1.3.0, merge2@^1.4.1:
1428 | version "1.4.1"
1429 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
1430 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
1431 |
1432 | micromatch@^4.0.4:
1433 | version "4.0.5"
1434 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
1435 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
1436 | dependencies:
1437 | braces "^3.0.2"
1438 | picomatch "^2.3.1"
1439 |
1440 | mime-db@1.52.0:
1441 | version "1.52.0"
1442 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
1443 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
1444 |
1445 | mime-types@^2.1.12:
1446 | version "2.1.35"
1447 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
1448 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
1449 | dependencies:
1450 | mime-db "1.52.0"
1451 |
1452 | minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
1453 | version "3.1.2"
1454 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
1455 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
1456 | dependencies:
1457 | brace-expansion "^1.1.7"
1458 |
1459 | mirada@^0.0.15:
1460 | version "0.0.15"
1461 | resolved "https://registry.yarnpkg.com/mirada/-/mirada-0.0.15.tgz#f5e98bc5d6ec7fafde1ceb27947147780884ee0a"
1462 | integrity sha512-mbm4c+wjBVcmUzHRLv/TfOAq+iy03D24KwGxx8H+NSXkD5EOZV9zFWbVxTvZCc9XwR0FIUhryU/kQm12SMSQ3g==
1463 | dependencies:
1464 | buffer "^5.4.3"
1465 | cross-fetch "^3.0.4"
1466 | file-type "^12.3.0"
1467 | misc-utils-of-mine-generic "^0.2.31"
1468 |
1469 | misc-utils-of-mine-generic@^0.2.31:
1470 | version "0.2.45"
1471 | resolved "https://registry.yarnpkg.com/misc-utils-of-mine-generic/-/misc-utils-of-mine-generic-0.2.45.tgz#db1b76db1ab5a04771b24173e38957182e9e292d"
1472 | integrity sha512-WsG2zYiui2cdEbHF2pXmJfnjHb4zL+cy+PaYcLgIpMju98hwX89VbjlvGIfamCfEodbQ0qjCEvD3ocgkCXfMOQ==
1473 |
1474 | ms@2.1.2:
1475 | version "2.1.2"
1476 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
1477 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1478 |
1479 | nanoid@^3.3.6:
1480 | version "3.3.6"
1481 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
1482 | integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
1483 |
1484 | natural-compare@^1.4.0:
1485 | version "1.4.0"
1486 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
1487 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
1488 |
1489 | node-fetch@^2.6.12:
1490 | version "2.7.0"
1491 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
1492 | integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
1493 | dependencies:
1494 | whatwg-url "^5.0.0"
1495 |
1496 | node-fetch@~2.6.1:
1497 | version "2.6.13"
1498 | resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.13.tgz#a20acbbec73c2e09f9007de5cda17104122e0010"
1499 | integrity sha512-StxNAxh15zr77QvvkmveSQ8uCQ4+v5FkvNTj0OESmiHu+VRi/gXArXtkWMElOsOUNLtUEvI4yS+rdtOHZTwlQA==
1500 | dependencies:
1501 | whatwg-url "^5.0.0"
1502 |
1503 | node-releases@^2.0.13:
1504 | version "2.0.13"
1505 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d"
1506 | integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==
1507 |
1508 | once@^1.3.0:
1509 | version "1.4.0"
1510 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1511 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
1512 | dependencies:
1513 | wrappy "1"
1514 |
1515 | optionator@^0.9.3:
1516 | version "0.9.3"
1517 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64"
1518 | integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==
1519 | dependencies:
1520 | "@aashutoshrathi/word-wrap" "^1.2.3"
1521 | deep-is "^0.1.3"
1522 | fast-levenshtein "^2.0.6"
1523 | levn "^0.4.1"
1524 | prelude-ls "^1.2.1"
1525 | type-check "^0.4.0"
1526 |
1527 | p-limit@^3.0.2:
1528 | version "3.1.0"
1529 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
1530 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
1531 | dependencies:
1532 | yocto-queue "^0.1.0"
1533 |
1534 | p-locate@^5.0.0:
1535 | version "5.0.0"
1536 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
1537 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
1538 | dependencies:
1539 | p-limit "^3.0.2"
1540 |
1541 | parent-module@^1.0.0:
1542 | version "1.0.1"
1543 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
1544 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
1545 | dependencies:
1546 | callsites "^3.0.0"
1547 |
1548 | path-exists@^4.0.0:
1549 | version "4.0.0"
1550 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
1551 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
1552 |
1553 | path-is-absolute@^1.0.0:
1554 | version "1.0.1"
1555 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1556 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
1557 |
1558 | path-key@^3.1.0:
1559 | version "3.1.1"
1560 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
1561 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
1562 |
1563 | path-type@^4.0.0:
1564 | version "4.0.0"
1565 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
1566 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
1567 |
1568 | picocolors@^1.0.0:
1569 | version "1.0.0"
1570 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
1571 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
1572 |
1573 | picomatch@^2.3.1:
1574 | version "2.3.1"
1575 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
1576 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
1577 |
1578 | postcss@^8.4.27:
1579 | version "8.4.28"
1580 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.28.tgz#c6cc681ed00109072816e1557f889ef51cf950a5"
1581 | integrity sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==
1582 | dependencies:
1583 | nanoid "^3.3.6"
1584 | picocolors "^1.0.0"
1585 | source-map-js "^1.0.2"
1586 |
1587 | prelude-ls@^1.2.1:
1588 | version "1.2.1"
1589 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
1590 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
1591 |
1592 | punycode@^2.1.0:
1593 | version "2.3.0"
1594 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f"
1595 | integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
1596 |
1597 | queue-microtask@^1.2.2:
1598 | version "1.2.3"
1599 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
1600 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
1601 |
1602 | react-dom@^18.2.0:
1603 | version "18.2.0"
1604 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d"
1605 | integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==
1606 | dependencies:
1607 | loose-envify "^1.1.0"
1608 | scheduler "^0.23.0"
1609 |
1610 | react-refresh@^0.14.0:
1611 | version "0.14.0"
1612 | resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e"
1613 | integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==
1614 |
1615 | react@^18.2.0:
1616 | version "18.2.0"
1617 | resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
1618 | integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
1619 | dependencies:
1620 | loose-envify "^1.1.0"
1621 |
1622 | regenerator-runtime@^0.13.5:
1623 | version "0.13.11"
1624 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
1625 | integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
1626 |
1627 | require-directory@^2.1.1:
1628 | version "2.1.1"
1629 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
1630 | integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
1631 |
1632 | resolve-from@^4.0.0:
1633 | version "4.0.0"
1634 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
1635 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
1636 |
1637 | reusify@^1.0.4:
1638 | version "1.0.4"
1639 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
1640 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
1641 |
1642 | rimraf@^3.0.2:
1643 | version "3.0.2"
1644 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
1645 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
1646 | dependencies:
1647 | glob "^7.1.3"
1648 |
1649 | rollup@^3.27.1:
1650 | version "3.28.1"
1651 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.28.1.tgz#fb44aa6d5e65c7e13fd5bcfff266d0c4ea9ba433"
1652 | integrity sha512-R9OMQmIHJm9znrU3m3cpE8uhN0fGdXiawME7aZIpQqvpS/85+Vt1Hq1/yVIcYfOmaQiHjvXkQAoJukvLpau6Yw==
1653 | optionalDependencies:
1654 | fsevents "~2.3.2"
1655 |
1656 | run-parallel@^1.1.9:
1657 | version "1.2.0"
1658 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
1659 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
1660 | dependencies:
1661 | queue-microtask "^1.2.2"
1662 |
1663 | safe-buffer@~5.2.0:
1664 | version "5.2.1"
1665 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
1666 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
1667 |
1668 | scheduler@^0.23.0:
1669 | version "0.23.0"
1670 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe"
1671 | integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==
1672 | dependencies:
1673 | loose-envify "^1.1.0"
1674 |
1675 | seedrandom@^3.0.5:
1676 | version "3.0.5"
1677 | resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-3.0.5.tgz#54edc85c95222525b0c7a6f6b3543d8e0b3aa0a7"
1678 | integrity sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg==
1679 |
1680 | semver@^6.3.1:
1681 | version "6.3.1"
1682 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
1683 | integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
1684 |
1685 | semver@^7.5.4:
1686 | version "7.5.4"
1687 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
1688 | integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
1689 | dependencies:
1690 | lru-cache "^6.0.0"
1691 |
1692 | shebang-command@^2.0.0:
1693 | version "2.0.0"
1694 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
1695 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
1696 | dependencies:
1697 | shebang-regex "^3.0.0"
1698 |
1699 | shebang-regex@^3.0.0:
1700 | version "3.0.0"
1701 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
1702 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
1703 |
1704 | slash@^3.0.0:
1705 | version "3.0.0"
1706 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
1707 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
1708 |
1709 | source-map-js@^1.0.2:
1710 | version "1.0.2"
1711 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
1712 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
1713 |
1714 | sprintf-js@~1.0.2:
1715 | version "1.0.3"
1716 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
1717 | integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
1718 |
1719 | string-width@^4.1.0, string-width@^4.2.0:
1720 | version "4.2.3"
1721 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
1722 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
1723 | dependencies:
1724 | emoji-regex "^8.0.0"
1725 | is-fullwidth-code-point "^3.0.0"
1726 | strip-ansi "^6.0.1"
1727 |
1728 | string_decoder@^1.3.0:
1729 | version "1.3.0"
1730 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
1731 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
1732 | dependencies:
1733 | safe-buffer "~5.2.0"
1734 |
1735 | strip-ansi@^6.0.0, strip-ansi@^6.0.1:
1736 | version "6.0.1"
1737 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
1738 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
1739 | dependencies:
1740 | ansi-regex "^5.0.1"
1741 |
1742 | strip-json-comments@^3.1.1:
1743 | version "3.1.1"
1744 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
1745 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
1746 |
1747 | supports-color@^5.3.0:
1748 | version "5.5.0"
1749 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1750 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1751 | dependencies:
1752 | has-flag "^3.0.0"
1753 |
1754 | supports-color@^7.1.0:
1755 | version "7.2.0"
1756 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
1757 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1758 | dependencies:
1759 | has-flag "^4.0.0"
1760 |
1761 | text-table@^0.2.0:
1762 | version "0.2.0"
1763 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
1764 | integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
1765 |
1766 | to-fast-properties@^2.0.0:
1767 | version "2.0.0"
1768 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
1769 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
1770 |
1771 | to-regex-range@^5.0.1:
1772 | version "5.0.1"
1773 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
1774 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1775 | dependencies:
1776 | is-number "^7.0.0"
1777 |
1778 | tr46@~0.0.3:
1779 | version "0.0.3"
1780 | resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
1781 | integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
1782 |
1783 | ts-api-utils@^1.0.1:
1784 | version "1.0.2"
1785 | resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.2.tgz#7c094f753b6705ee4faee25c3c684ade52d66d99"
1786 | integrity sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ==
1787 |
1788 | type-check@^0.4.0, type-check@~0.4.0:
1789 | version "0.4.0"
1790 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
1791 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
1792 | dependencies:
1793 | prelude-ls "^1.2.1"
1794 |
1795 | type-fest@^0.20.2:
1796 | version "0.20.2"
1797 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
1798 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
1799 |
1800 | typescript@^5.0.2:
1801 | version "5.2.2"
1802 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78"
1803 | integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==
1804 |
1805 | update-browserslist-db@^1.0.11:
1806 | version "1.0.11"
1807 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940"
1808 | integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==
1809 | dependencies:
1810 | escalade "^3.1.1"
1811 | picocolors "^1.0.0"
1812 |
1813 | uri-js@^4.2.2:
1814 | version "4.4.1"
1815 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
1816 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
1817 | dependencies:
1818 | punycode "^2.1.0"
1819 |
1820 | vite@^4.4.5:
1821 | version "4.4.9"
1822 | resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.9.tgz#1402423f1a2f8d66fd8d15e351127c7236d29d3d"
1823 | integrity sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==
1824 | dependencies:
1825 | esbuild "^0.18.10"
1826 | postcss "^8.4.27"
1827 | rollup "^3.27.1"
1828 | optionalDependencies:
1829 | fsevents "~2.3.2"
1830 |
1831 | webidl-conversions@^3.0.0:
1832 | version "3.0.1"
1833 | resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
1834 | integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
1835 |
1836 | whatwg-url@^5.0.0:
1837 | version "5.0.0"
1838 | resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
1839 | integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
1840 | dependencies:
1841 | tr46 "~0.0.3"
1842 | webidl-conversions "^3.0.0"
1843 |
1844 | which@^2.0.1:
1845 | version "2.0.2"
1846 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
1847 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1848 | dependencies:
1849 | isexe "^2.0.0"
1850 |
1851 | wrap-ansi@^7.0.0:
1852 | version "7.0.0"
1853 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
1854 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
1855 | dependencies:
1856 | ansi-styles "^4.0.0"
1857 | string-width "^4.1.0"
1858 | strip-ansi "^6.0.0"
1859 |
1860 | wrappy@1:
1861 | version "1.0.2"
1862 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1863 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
1864 |
1865 | y18n@^5.0.5:
1866 | version "5.0.8"
1867 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
1868 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
1869 |
1870 | yallist@^3.0.2:
1871 | version "3.1.1"
1872 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
1873 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
1874 |
1875 | yallist@^4.0.0:
1876 | version "4.0.0"
1877 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
1878 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
1879 |
1880 | yargs-parser@^20.2.2:
1881 | version "20.2.9"
1882 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
1883 | integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
1884 |
1885 | yargs@^16.0.3:
1886 | version "16.2.0"
1887 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
1888 | integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
1889 | dependencies:
1890 | cliui "^7.0.2"
1891 | escalade "^3.1.1"
1892 | get-caller-file "^2.0.5"
1893 | require-directory "^2.1.1"
1894 | string-width "^4.2.0"
1895 | y18n "^5.0.5"
1896 | yargs-parser "^20.2.2"
1897 |
1898 | yocto-queue@^0.1.0:
1899 | version "0.1.0"
1900 | resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
1901 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
1902 |
--------------------------------------------------------------------------------