From 7ba29cce63eecbe8ad2e8fbd324015d82788e39d Mon Sep 17 00:00:00 2001 From: root Date: Tue, 17 Jun 2025 16:32:43 -0400 Subject: [PATCH] Initial commit --- .gitignore | 23 + .vs/VSWorkspaceState.json | 6 + .vs/guinea/v17/.wsuo | Bin 0 -> 9216 bytes .vs/slnx.sqlite | Bin 0 -> 90112 bytes .vscode/launch.json | 16 + README.md | 70 + package-lock.json | 16780 ++++++++++++++++++ package.json | 50 + public/baboon.ico | Bin 0 -> 185406 bytes public/baboon.jpg | Bin 0 -> 263104 bytes public/index.html | 53 + public/jquery.js | 10364 +++++++++++ public/manifest.json | 15 + public/rankericon.ico | Bin 0 -> 4286 bytes public/rankericon2.ico | Bin 0 -> 1150 bytes src/App.js | 51 + src/api/babaseApi.js | 369 + src/components/ActivityPanel.js | 38 + src/components/AppContainer.js | 50 + src/components/Controls.js | 182 + src/components/DbCalendar.js | 63 + src/components/HistoryPanel.js | 88 + src/components/PopupModal.js | 93 + src/components/RolloverModal.js | 110 + src/components/css/AppContainer.module.css | 71 + src/components/css/Controls.module.css | 292 + src/components/css/HistoryPanel.module.css | 116 + src/components/css/fonts.googleapis.com.css | 305 + src/css/App.css | 182 + src/css/index.css | 27 + src/forms/AgonismHistory.js | 75 + src/forms/ColorKey.js | 53 + src/forms/DataChooser.js | 498 + src/forms/Login.js | 110 + src/forms/MatrixDnD.js | 321 + src/forms/ReviseRanking.js | 120 + src/forms/SavePanel.js | 120 + src/forms/css/MatrixDnD.module.css | 345 + src/forms/css/ReviseRanking.module.css | 31 + src/images/baboon.jpg | Bin 0 -> 263104 bytes src/images/icons8-calendar-16.png | Bin 0 -> 642 bytes src/images/icons8-chevron-up-8.png | Bin 0 -> 165 bytes src/images/icons8-up-arrow-32.png | Bin 0 -> 479 bytes src/images/icons8-up-arrow-8.png | Bin 0 -> 147 bytes src/images/rankericon.ico | Bin 0 -> 4286 bytes src/images/rankericon.xcf | Bin 0 -> 3199 bytes src/images/rankericon2.ico | Bin 0 -> 1150 bytes src/images/rankericon2.xcf | Bin 0 -> 1921 bytes src/images/rankersplash.png | Bin 0 -> 54639 bytes src/images/rankersplashgray.png | Bin 0 -> 56947 bytes src/index.js | 58 + src/logic/addRanks.js | 159 + src/logic/authHelper.js | 39 + src/logic/datehelper.js | 191 + src/logic/domHelper.js | 125 + src/logic/globalMethods.js | 45 + src/logic/jsHelper.js | 84 + src/logic/jsonHelper.js | 28 + src/logic/rankerMethods.js | 80 + src/logic/sqlQueries.js | 267 + src/react/errorHandler.js | 64 + src/react/middleware.js | 59 + src/redux/globalActions.js | 149 + src/redux/globalReducer.js | 129 + src/redux/rankerActions.js | 124 + src/redux/rankerReducer.js | 71 + src/redux/reducer.js | 36 + src/redux/store.js | 40 + 68 files changed, 32835 insertions(+) create mode 100644 .gitignore create mode 100644 .vs/VSWorkspaceState.json create mode 100644 .vs/guinea/v17/.wsuo create mode 100644 .vs/slnx.sqlite create mode 100644 .vscode/launch.json create mode 100644 README.md create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/baboon.ico create mode 100644 public/baboon.jpg create mode 100644 public/index.html create mode 100644 public/jquery.js create mode 100644 public/manifest.json create mode 100644 public/rankericon.ico create mode 100644 public/rankericon2.ico create mode 100644 src/App.js create mode 100644 src/api/babaseApi.js create mode 100644 src/components/ActivityPanel.js create mode 100644 src/components/AppContainer.js create mode 100644 src/components/Controls.js create mode 100644 src/components/DbCalendar.js create mode 100644 src/components/HistoryPanel.js create mode 100644 src/components/PopupModal.js create mode 100644 src/components/RolloverModal.js create mode 100644 src/components/css/AppContainer.module.css create mode 100644 src/components/css/Controls.module.css create mode 100644 src/components/css/HistoryPanel.module.css create mode 100644 src/components/css/fonts.googleapis.com.css create mode 100644 src/css/App.css create mode 100644 src/css/index.css create mode 100644 src/forms/AgonismHistory.js create mode 100644 src/forms/ColorKey.js create mode 100644 src/forms/DataChooser.js create mode 100644 src/forms/Login.js create mode 100644 src/forms/MatrixDnD.js create mode 100644 src/forms/ReviseRanking.js create mode 100644 src/forms/SavePanel.js create mode 100644 src/forms/css/MatrixDnD.module.css create mode 100644 src/forms/css/ReviseRanking.module.css create mode 100644 src/images/baboon.jpg create mode 100644 src/images/icons8-calendar-16.png create mode 100644 src/images/icons8-chevron-up-8.png create mode 100644 src/images/icons8-up-arrow-32.png create mode 100644 src/images/icons8-up-arrow-8.png create mode 100644 src/images/rankericon.ico create mode 100644 src/images/rankericon.xcf create mode 100644 src/images/rankericon2.ico create mode 100644 src/images/rankericon2.xcf create mode 100644 src/images/rankersplash.png create mode 100644 src/images/rankersplashgray.png create mode 100644 src/index.js create mode 100644 src/logic/addRanks.js create mode 100644 src/logic/authHelper.js create mode 100644 src/logic/datehelper.js create mode 100644 src/logic/domHelper.js create mode 100644 src/logic/globalMethods.js create mode 100644 src/logic/jsHelper.js create mode 100644 src/logic/jsonHelper.js create mode 100644 src/logic/rankerMethods.js create mode 100644 src/logic/sqlQueries.js create mode 100644 src/react/errorHandler.js create mode 100644 src/react/middleware.js create mode 100644 src/redux/globalActions.js create mode 100644 src/redux/globalReducer.js create mode 100644 src/redux/rankerActions.js create mode 100644 src/redux/rankerReducer.js create mode 100644 src/redux/reducer.js create mode 100644 src/redux/store.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4d29575 --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json new file mode 100644 index 0000000..9568b22 --- /dev/null +++ b/.vs/VSWorkspaceState.json @@ -0,0 +1,6 @@ +{ + "ExpandedNodes": [ + "" + ], + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/.vs/guinea/v17/.wsuo b/.vs/guinea/v17/.wsuo new file mode 100644 index 0000000000000000000000000000000000000000..53092f3acaaf9998a4468257171913210915b3c5 GIT binary patch literal 9216 zcmeHL+fEZf82*c*;`tO}JS4;r^}-UUh()6z0v-}8Y88!lrQIT0DA_KauD$fa2k^$2 zc<&qd26%5`^gUGkzS$jiSlaD&t0KC8vpchM`p+}p^yA{5FK^x-{3-#uARFYzQkQHp z+EYedc8hGoH`{(JEiJK&byO2tM;5pxRs0<3k#U(rY0ERZGBR~b=d#Z`o6P#~u5#eW z>rbgJj2qeL4!!}7Re2~^!M%*yxIAsL%F6C;=~(7Zv#;!}|Ao+H_$t!;$#-5VkiZrT zPad`?;IX`Mjf!6BNSW?#G|p_NogR4&6S4p<6`6tle5MV~V`#C>iFNAaPg8c_iK_p0 zjMaI~`gc=-Kz#@LcX?|w&v&BEatlh@koAPtuLb^O{=XXV^Iz65{~6Co{=*0$9l6|- zxDPO&xi>JsS>KFut5?@!lk(rO0DT;M=>K3_qwjym691OU|MnPgC!Qg(}7g8avN_(3S)5|t(p-3DV`U5@Iz!&S_ZvtSV`!w{U64EQpJLU z*ehU{&?f|El;DR4N)p&VwYNq7JTLZp0*3Lw3m)9>ClK*0X@?+XV)&nXkG_9|@i+7D zGVEVPKF-T^Si|=N;y=Z;7}HVx&+}T_pC!NJQoHjhdprE;N6z=xm>_ z(3>eu4Gi~ZhSFBXDy9cBQ^oXf;Y>MQE@iWWne6HEslkFWiti~dc5jguj8DDTk5?kt zn)Ki-r_lzaPrbudUnx!4$nd`7pC`-rzrD?ek6PV3Tc|mf{rpAT`GcJ=4?T0@&#!l{ zYvumO`3bFG3k0*r-2s~a@2w*_x&O6?|JVBd7Zrab`2QMk*RRL_Io$T{;KT~vcY2I} zB6P0RE04v%pS&v)t&oCzPM$Hi~$;y>oG V``?d99Q@fXevD|IWY}M7fuEdkTEhSU literal 0 HcmV?d00001 diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..6228df64e7ee319093e6978498a748c17a22be38 GIT binary patch literal 90112 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 TAOHk_01yBIKmZ8bO#=T1t_Mwj literal 0 HcmV?d00001 diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..236c947 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,16 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "chrome", + "request": "launch", + "name": "Launch Chrome", + "url": "http://localhost:3005", + "webRoot": "${workspaceFolder}" + } + + ] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..58beeac --- /dev/null +++ b/README.md @@ -0,0 +1,70 @@ +# Getting Started with Create React App + +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `npm start` + +Runs the app in the development mode.\ +Open [http://localhost:3000](http://localhost:3000) to view it in your browser. + +The page will reload when you make changes.\ +You may also see any lint errors in the console. + +### `npm test` + +Launches the test runner in the interactive watch mode.\ +See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `npm run build` + +Builds the app for production to the `build` folder.\ +It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.\ +Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `npm run eject` + +**Note: this is a one-way operation. Once you `eject`, you can't go back!** + +If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own. + +You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). + +### Code Splitting + +This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) + +### Analyzing the Bundle Size + +This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) + +### Making a Progressive Web App + +This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) + +### Advanced Configuration + +This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) + +### Deployment + +This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) + +### `npm run build` fails to minify + +This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..5460ed2 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,16780 @@ +{ + "name": "ranker", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "ranker", + "version": "0.1.0", + "dependencies": { + "axios": "^1.8.1", + "bootstrap": "^5.3.3", + "crypto-js": "^4.2.0", + "eslint-config-react-app": "^7.0.1", + "react": "^19.0.0", + "react-bootstrap": "^2.10.9", + "react-calendar": "^5.1.0", + "react-dnd": "^16.0.1", + "react-dnd-html5-backend": "^16.0.1", + "react-dom": "^19.0.0", + "react-redux": "^9.2.0", + "react-router-dom": "^7.4.0", + "react-scripts": "5.0.1", + "reactstrap": "^9.2.3", + "redux": "^5.0.1", + "redux-devtools-extension": "^2.13.9", + "redux-thunk": "^3.1.0", + "styled-components": "^6.1.15" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", + "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.9.tgz", + "integrity": "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.9", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.9", + "@babel/parser": "^7.26.9", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.9", + "@babel/types": "^7.26.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.26.8.tgz", + "integrity": "sha512-3tBctaHRW6xSub26z7n8uyOTwwUsCdvIug/oxBH9n6yCO5hMj2vwDJAo7RbBMKrM7P+W2j61zLKviJQFGOYKMg==", + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz", + "integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==", + "dependencies": { + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "dependencies": { + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.26.9.tgz", + "integrity": "sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.26.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.26.9", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz", + "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.2.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", + "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "dependencies": { + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", + "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.9.tgz", + "integrity": "sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==", + "dependencies": { + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz", + "integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==", + "dependencies": { + "@babel/types": "^7.26.9" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", + "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", + "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", + "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", + "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.25.9.tgz", + "integrity": "sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-decorators": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.25.9.tgz", + "integrity": "sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.26.0.tgz", + "integrity": "sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", + "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz", + "integrity": "sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.26.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", + "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", + "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", + "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", + "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", + "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", + "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.26.5.tgz", + "integrity": "sha512-eGK26RsbIkYUns3Y8qKl362juDDYK+wEdPGHGrhzUl6CewZFo55VZ7hg+CyMFU4dd5QQakBN86nBMpRsFpRvbQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/plugin-syntax-flow": "^7.26.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz", + "integrity": "sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", + "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", + "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", + "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", + "dependencies": { + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.26.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", + "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", + "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", + "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.9.tgz", + "integrity": "sha512-Ncw2JFsJVuvfRsa2lSHiC55kETQVLSnsYGQ1JDDwkUeWGTL/8Tom8aLTnlqgoeuopWrbbGndrc9AlLYrIosrow==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", + "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.26.9.tgz", + "integrity": "sha512-Jf+8y9wXQbbxvVYTM8gO5oEF2POdNji0NMltEkG7FtmzD9PVz7/lxpqSdTvwsjTMU5HIHuDVNf2SOxLkWi+wPQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz", + "integrity": "sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.26.7.tgz", + "integrity": "sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.26.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.8.tgz", + "integrity": "sha512-bME5J9AC8ChwA7aEPJ6zym3w7aObZULHhbNLU0bKUhKsAkylkzUdq+0kdymh9rzi8nlNFl2bmldFBCKNJBUpuw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-syntax-typescript": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", + "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", + "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.9.tgz", + "integrity": "sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==", + "dependencies": { + "@babel/compat-data": "^7.26.8", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/plugin-syntax-import-attributes": "^7.26.0", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.26.8", + "@babel/plugin-transform-async-to-generator": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.26.5", + "@babel/plugin-transform-block-scoping": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/plugin-transform-class-static-block": "^7.26.0", + "@babel/plugin-transform-classes": "^7.25.9", + "@babel/plugin-transform-computed-properties": "^7.25.9", + "@babel/plugin-transform-destructuring": "^7.25.9", + "@babel/plugin-transform-dotall-regex": "^7.25.9", + "@babel/plugin-transform-duplicate-keys": "^7.25.9", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-dynamic-import": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.26.3", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.26.9", + "@babel/plugin-transform-function-name": "^7.25.9", + "@babel/plugin-transform-json-strings": "^7.25.9", + "@babel/plugin-transform-literals": "^7.25.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", + "@babel/plugin-transform-member-expression-literals": "^7.25.9", + "@babel/plugin-transform-modules-amd": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.26.3", + "@babel/plugin-transform-modules-systemjs": "^7.25.9", + "@babel/plugin-transform-modules-umd": "^7.25.9", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-new-target": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.26.6", + "@babel/plugin-transform-numeric-separator": "^7.25.9", + "@babel/plugin-transform-object-rest-spread": "^7.25.9", + "@babel/plugin-transform-object-super": "^7.25.9", + "@babel/plugin-transform-optional-catch-binding": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9", + "@babel/plugin-transform-private-methods": "^7.25.9", + "@babel/plugin-transform-private-property-in-object": "^7.25.9", + "@babel/plugin-transform-property-literals": "^7.25.9", + "@babel/plugin-transform-regenerator": "^7.25.9", + "@babel/plugin-transform-regexp-modifiers": "^7.26.0", + "@babel/plugin-transform-reserved-words": "^7.25.9", + "@babel/plugin-transform-shorthand-properties": "^7.25.9", + "@babel/plugin-transform-spread": "^7.25.9", + "@babel/plugin-transform-sticky-regex": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.26.8", + "@babel/plugin-transform-typeof-symbol": "^7.26.7", + "@babel/plugin-transform-unicode-escapes": "^7.25.9", + "@babel/plugin-transform-unicode-property-regex": "^7.25.9", + "@babel/plugin-transform-unicode-regex": "^7.25.9", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.11.0", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.40.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", + "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-react-display-name": "^7.25.9", + "@babel/plugin-transform-react-jsx": "^7.25.9", + "@babel/plugin-transform-react-jsx-development": "^7.25.9", + "@babel/plugin-transform-react-pure-annotations": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", + "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-typescript": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.9.tgz", + "integrity": "sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.9.tgz", + "integrity": "sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.26.9", + "@babel/types": "^7.26.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz", + "integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.9", + "@babel/parser": "^7.26.9", + "@babel/template": "^7.26.9", + "@babel/types": "^7.26.9", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.26.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz", + "integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "node_modules/@csstools/normalize.css": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.1.1.tgz", + "integrity": "sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ==" + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", + "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", + "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", + "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==", + "license": "MIT" + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", + "license": "MIT" + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/@jest/transform/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==" + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.15.tgz", + "integrity": "sha512-LFWllMA55pzB9D34w/wXUCf8+c+IYKuJDgxiZ3qMhl64KRMBHYM1I3VdGaD2BV5FNPV2/S2596bppxHbv2ZydQ==", + "dependencies": { + "ansi-html": "^0.0.9", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.4", + "schema-utils": "^4.2.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <5.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x || 5.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@react-aria/ssr": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.9.7.tgz", + "integrity": "sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==", + "dependencies": { + "@swc/helpers": "^0.5.0" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1" + } + }, + "node_modules/@react-dnd/asap": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-5.0.2.tgz", + "integrity": "sha512-WLyfoHvxhs0V9U+GTsGilGgf2QsPl6ZZ44fnv0/b8T3nQyvzxidxsg/ZltbWssbsRDlYW8UKSQMTGotuTotZ6A==" + }, + "node_modules/@react-dnd/invariant": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-4.0.2.tgz", + "integrity": "sha512-xKCTqAK/FFauOM9Ta2pswIyT3D8AQlfrYdOi/toTPEhqCuAs1v5tcJ3Y08Izh1cJ5Jchwy9SeAXmMg6zrKs2iw==" + }, + "node_modules/@react-dnd/shallowequal": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-4.0.2.tgz", + "integrity": "sha512-/RVXdLvJxLg4QKvMoM5WlwNR9ViO9z8B/qPcc+C0Sa/teJY7QG7kJ441DwzOjMYEY7GmU4dj5EcGHIkKZiQZCA==" + }, + "node_modules/@restart/hooks": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.16.tgz", + "integrity": "sha512-f7aCv7c+nU/3mF7NWLtVVr0Ra80RqsO89hO72r+Y/nvQr5+q0UFGkocElTH6MJApvReVh6JHUFYn2cw1WdHF3w==", + "dependencies": { + "dequal": "^2.0.3" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@restart/ui": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.9.4.tgz", + "integrity": "sha512-N4C7haUc3vn4LTwVUPlkJN8Ach/+yIMvRuTVIhjilNHqegY60SGLrzud6errOMNJwSnmYFnt1J0H/k8FE3A4KA==", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@popperjs/core": "^2.11.8", + "@react-aria/ssr": "^3.5.0", + "@restart/hooks": "^0.5.0", + "@types/warning": "^3.0.3", + "dequal": "^2.0.3", + "dom-helpers": "^5.2.0", + "uncontrollable": "^8.0.4", + "warning": "^4.0.3" + }, + "peerDependencies": { + "react": ">=16.14.0", + "react-dom": ">=16.14.0" + } + }, + "node_modules/@restart/ui/node_modules/@restart/hooks": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.5.1.tgz", + "integrity": "sha512-EMoH04NHS1pbn07iLTjIjgttuqb7qu4+/EyhAx27MHpoENcB2ZdSsLTNxmKD+WEPnZigo62Qc8zjGnNxoSE/5Q==", + "dependencies": { + "dequal": "^2.0.3" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@restart/ui/node_modules/uncontrollable": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-8.0.4.tgz", + "integrity": "sha512-ulRWYWHvscPFc0QQXvyJjY6LIXU56f0h8pQFvhxiKk5V1fcI8gp9Ht9leVAhrVjzqMw0BgjspBINx9r6oyJUvQ==", + "peerDependencies": { + "react": ">=16.14.0" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.5.tgz", + "integrity": "sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "dependencies": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "dependencies": { + "@babel/types": "^7.12.6" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "dependencies": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==" + }, + "node_modules/@types/eslint": { + "version": "8.56.12", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.12.tgz", + "integrity": "sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz", + "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express/node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.16", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.16.tgz", + "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + }, + "node_modules/@types/node": { + "version": "22.13.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.5.tgz", + "integrity": "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==", + "dependencies": { + "undici-types": "~6.20.0" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==" + }, + "node_modules/@types/q": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", + "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==" + }, + "node_modules/@types/qs": { + "version": "6.9.18", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", + "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + }, + "node_modules/@types/react": { + "version": "19.0.10", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.10.tgz", + "integrity": "sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==", + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", + "peerDependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" + }, + "node_modules/@types/stylis": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz", + "integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==", + "license": "MIT" + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==" + }, + "node_modules/@types/warning": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.3.tgz", + "integrity": "sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q==" + }, + "node_modules/@types/ws": { + "version": "8.5.14", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.14.tgz", + "integrity": "sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", + "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", + "dependencies": { + "@typescript-eslint/utils": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@wojtekmaj/date-utils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@wojtekmaj/date-utils/-/date-utils-1.5.1.tgz", + "integrity": "sha512-+i7+JmNiE/3c9FKxzWFi2IjRJ+KzZl1QPu6QNrsgaa2MuBgXvUy4gA1TVzf/JMdIIloB76xSKikTWuyYAIVLww==", + "license": "MIT", + "funding": { + "url": "https://github.com/wojtekmaj/date-utils?sponsor=1" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.9.tgz", + "integrity": "sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg==", + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz", + "integrity": "sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-array-method-boxes-properly": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==" + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==" + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz", + "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.1.tgz", + "integrity": "sha512-NN+fvwH/kV01dYUQ3PTOZns4LWtWhOFCAhQ/pHb88WQ1hNe5V/dvFwc4VJcDL11LT9xSX0QtsR8sWUuyOuOq7g==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axios/node_modules/form-data": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-loader": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz", + "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.4", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-named-asset-import": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", + "peerDependencies": { + "@babel/core": "^7.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", + "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.3", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz", + "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.3", + "core-js-compat": "^3.40.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", + "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.3" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-react-app": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.1.0.tgz", + "integrity": "sha512-f9B1xMdnkCIqe+2dHrJsoQFRz7reChaAHE/65SdaykPklQqhme2WaC08oD3is77x9ff98/9EazAKFDZv5rFEQg==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + }, + "node_modules/bfj": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz", + "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==", + "dependencies": { + "bluebird": "^3.7.2", + "check-types": "^11.2.3", + "hoopy": "^0.1.4", + "jsonpath": "^1.1.1", + "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bonjour-service": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/bootstrap": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.3.tgz", + "integrity": "sha512-8HLCdWgyoMguSO9o+aH+iuZ+aht+mzW0u3HIMzVu7Srrpv7EBBxTnrFlSCskwdY1+EOFQSm7uMJhNQHkdPcmjg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001700", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001700.tgz", + "integrity": "sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/check-types": { + "version": "11.2.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz", + "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz", + "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==" + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/coa/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/coa/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/coa/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/coa/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz", + "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.0.2", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-js": { + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.40.0.tgz", + "integrity": "sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz", + "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==", + "dependencies": { + "browserslist": "^4.24.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.40.0.tgz", + "integrity": "sha512-AtDzVIgRrmRKQai62yuSIN5vNiQjcJakJb4fbhVw3ehxx7Lohphvw9SGNWKhLFqSxC4ilD0g/L1huAYFQU3Q6A==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "node_modules/css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "license": "MIT", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssdb": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.2.tgz", + "integrity": "sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ] + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", + "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==" + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/detect-port-alt/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/dnd-core": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-16.0.1.tgz", + "integrity": "sha512-HK294sl7tbw6F6IeuK16YSBUoorvHpY8RHO+9yFfaJyCDVb6n7PRcezrOEOa2SBCqiYpemh5Jx20ZcjKdFAVng==", + "dependencies": { + "@react-dnd/asap": "^5.0.1", + "@react-dnd/invariant": "^4.0.1", + "redux": "^4.2.0" + } + }, + "node_modules/dnd-core/node_modules/redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", + "dependencies": { + "@babel/runtime": "^7.9.2" + } + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.104", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.104.tgz", + "integrity": "sha512-Us9M2L4cO/zMBqVkJtnj353nQhMju9slHm62NprKTmdF3HH8wYOtNvDFq/JB2+ZRoGLzdvYDiATlMHs98XBM1g==" + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-react-app": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", + "dependencies": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@babel/plugin-syntax-flow": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "eslint": "^8.1.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "dependencies": { + "@typescript-eslint/experimental-utils": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", + "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-testing-library": { + "version": "5.11.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz", + "integrity": "sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==", + "dependencies": { + "@typescript-eslint/utils": "^5.58.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0", + "npm": ">=6" + }, + "peerDependencies": { + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", + "dependencies": { + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ] + }, + "node_modules/fastq": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", + "integrity": "sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==" + }, + "node_modules/follow-redirects": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/form-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.3.tgz", + "integrity": "sha512-q5YBMeWy6E2Un0nMGWMgI65MAKtaylxfNJGJxpGh45YDciZB4epbWpaAfImil6CPAPTYB4sh0URQNDRIZG5F2w==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-user-locale": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/get-user-locale/-/get-user-locale-2.3.2.tgz", + "integrity": "sha512-O2GWvQkhnbDoWFUJfaBlDIKUEdND8ATpBXD6KXcbhxlfktyD/d8w6mkzM/IlQEqGZAMz/PW6j6Hv53BiigKLUQ==", + "license": "MIT", + "dependencies": { + "mem": "^8.0.0" + }, + "funding": { + "url": "https://github.com/wojtekmaj/get-user-locale?sponsor=1" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "node_modules/harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz", + "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz", + "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz", + "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" + }, + "node_modules/identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", + "dependencies": { + "harmony-reflect": "^1.4.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watch-typeahead": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", + "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", + "dependencies": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^28.0.0", + "jest-watcher": "^28.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "jest": "^27.0.0 || ^28.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/jest-watch-typeahead/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "dependencies": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.2.tgz", + "integrity": "sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg==", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpath": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz", + "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==", + "dependencies": { + "esprima": "1.2.2", + "static-eval": "2.0.2", + "underscore": "1.12.1" + } + }, + "node_modules/jsonpath/node_modules/esprima": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/launch-editor": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.10.0.tgz", + "integrity": "sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "license": "MIT", + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mem": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz", + "integrity": "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==", + "license": "MIT", + "dependencies": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/mem?sponsor=1" + } + }, + "node_modules/mem/node_modules/mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", + "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz", + "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", + "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", + "dependencies": { + "array.prototype.reduce": "^1.0.6", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "gopd": "^1.0.1", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==" + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", + "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "browserslist": ">=4", + "postcss": ">=8" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", + "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", + "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-custom-properties": { + "version": "12.1.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", + "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", + "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", + "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", + "peerDependencies": { + "postcss": "^8.1.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-image-set-function": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", + "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-lab-function": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", + "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nesting": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", + "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "dependencies": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "browserslist": ">= 4", + "postcss": ">= 8" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz", + "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", + "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", + "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-preset-env": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", + "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", + "dependencies": { + "@csstools/postcss-cascade-layers": "^1.1.1", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.13", + "browserslist": "^4.21.4", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^7.1.0", + "postcss-attribute-case-insensitive": "^5.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.4", + "postcss-color-hex-alpha": "^8.0.4", + "postcss-color-rebeccapurple": "^7.1.1", + "postcss-custom-media": "^8.0.2", + "postcss-custom-properties": "^12.1.10", + "postcss-custom-selectors": "^6.0.3", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.2.1", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.2.0", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.4", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", + "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", + "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/postcss-svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/postcss-svgo/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-svgo/node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types-extra": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", + "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", + "dependencies": { + "react-is": "^16.3.2", + "warning": "^4.0.0" + }, + "peerDependencies": { + "react": ">=0.14.0" + } + }, + "node_modules/prop-types-extra/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-app-polyfill": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", + "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "dependencies": { + "core-js": "^3.19.2", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.9", + "whatwg-fetch": "^3.6.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-app-polyfill/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/react-bootstrap": { + "version": "2.10.9", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.10.9.tgz", + "integrity": "sha512-TJUCuHcxdgYpOqeWmRApM/Dy0+hVsxNRFvq2aRFQuxhNi/+ivOxC5OdWIeHS3agxvzJ4Ev4nDw2ZdBl9ymd/JQ==", + "dependencies": { + "@babel/runtime": "^7.24.7", + "@restart/hooks": "^0.4.9", + "@restart/ui": "^1.9.4", + "@types/prop-types": "^15.7.12", + "@types/react-transition-group": "^4.4.6", + "classnames": "^2.3.2", + "dom-helpers": "^5.2.1", + "invariant": "^2.2.4", + "prop-types": "^15.8.1", + "prop-types-extra": "^1.1.0", + "react-transition-group": "^4.4.5", + "uncontrollable": "^7.2.1", + "warning": "^4.0.3" + }, + "peerDependencies": { + "@types/react": ">=16.14.8", + "react": ">=16.14.0", + "react-dom": ">=16.14.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-calendar": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/react-calendar/-/react-calendar-5.1.0.tgz", + "integrity": "sha512-09o/rQHPZGEi658IXAJtWfra1N69D1eFnuJ3FQm9qUVzlzNnos1+GWgGiUeSs22QOpNm32aoVFOimq0p3Ug9Eg==", + "license": "MIT", + "dependencies": { + "@wojtekmaj/date-utils": "^1.1.3", + "clsx": "^2.0.0", + "get-user-locale": "^2.2.1", + "warning": "^4.0.0" + }, + "funding": { + "url": "https://github.com/wojtekmaj/react-calendar?sponsor=1" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dev-utils/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dnd": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-16.0.1.tgz", + "integrity": "sha512-QeoM/i73HHu2XF9aKksIUuamHPDvRglEwdHL4jsp784BgUuWcg6mzfxT0QDdQz8Wj0qyRKx2eMg8iZtWvU4E2Q==", + "dependencies": { + "@react-dnd/invariant": "^4.0.1", + "@react-dnd/shallowequal": "^4.0.1", + "dnd-core": "^16.0.1", + "fast-deep-equal": "^3.1.3", + "hoist-non-react-statics": "^3.3.2" + }, + "peerDependencies": { + "@types/hoist-non-react-statics": ">= 3.3.1", + "@types/node": ">= 12", + "@types/react": ">= 16", + "react": ">= 16.14" + }, + "peerDependenciesMeta": { + "@types/hoist-non-react-statics": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-dnd-html5-backend": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-16.0.1.tgz", + "integrity": "sha512-Wu3dw5aDJmOGw8WjH1I1/yTH+vlXEL4vmjk5p+MHxP8HuHJS1lAGeIdG/hze1AvNeXWo/JgULV87LyQOr+r5jw==", + "dependencies": { + "dnd-core": "^16.0.1" + } + }, + "node_modules/react-dom": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", + "dependencies": { + "scheduler": "^0.25.0" + }, + "peerDependencies": { + "react": "^19.0.0" + } + }, + "node_modules/react-error-overlay": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.1.0.tgz", + "integrity": "sha512-SN/U6Ytxf1QGkw/9ve5Y+NxBbZM6Ht95tuXNMKs8EJyFa/Vy/+Co3stop3KBHARfn/giv+Lj1uUnTfOJ3moFEQ==" + }, + "node_modules/react-fast-compare": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "node_modules/react-popper": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-2.3.0.tgz", + "integrity": "sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==", + "dependencies": { + "react-fast-compare": "^3.0.1", + "warning": "^4.0.2" + }, + "peerDependencies": { + "@popperjs/core": "^2.0.0", + "react": "^16.8.0 || ^17 || ^18", + "react-dom": "^16.8.0 || ^17 || ^18" + } + }, + "node_modules/react-redux": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", + "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", + "dependencies": { + "@types/use-sync-external-store": "^0.0.6", + "use-sync-external-store": "^1.4.0" + }, + "peerDependencies": { + "@types/react": "^18.2.25 || ^19", + "react": "^18.0 || ^19", + "redux": "^5.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "node_modules/react-refresh": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", + "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.4.0.tgz", + "integrity": "sha512-Y2g5ObjkvX3VFeVt+0CIPuYd9PpgqCslG7ASSIdN73LwA1nNWzcMLaoMRJfP3prZFI92svxFwbn7XkLJ+UPQ6A==", + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0", + "turbo-stream": "2.4.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.4.0.tgz", + "integrity": "sha512-VlksBPf3n2bijPvnA7nkTsXxMAKOj+bWp4R9c3i+bnwlSOFAGOkJkKhzy/OsRkWaBMICqcAl1JDzh9ZSOze9CA==", + "dependencies": { + "react-router": "7.4.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, + "node_modules/react-router/node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "engines": { + "node": ">=18" + } + }, + "node_modules/react-scripts": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", + "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", + "dependencies": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@svgr/webpack": "^5.5.0", + "babel-jest": "^27.4.2", + "babel-loader": "^8.2.3", + "babel-plugin-named-asset-import": "^0.3.8", + "babel-preset-react-app": "^10.0.1", + "bfj": "^7.0.2", + "browserslist": "^4.18.1", + "camelcase": "^6.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "eslint": "^8.3.0", + "eslint-config-react-app": "^7.0.1", + "eslint-webpack-plugin": "^3.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "html-webpack-plugin": "^5.5.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^27.4.3", + "jest-resolve": "^27.4.2", + "jest-watch-typeahead": "^1.0.0", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.4", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.0.1", + "prompts": "^2.4.2", + "react-app-polyfill": "^3.0.0", + "react-dev-utils": "^12.0.1", + "react-refresh": "^0.11.0", + "resolve": "^1.20.0", + "resolve-url-loader": "^4.0.0", + "sass-loader": "^12.3.0", + "semver": "^7.3.5", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.2", + "terser-webpack-plugin": "^5.2.5", + "webpack": "^5.64.4", + "webpack-dev-server": "^4.6.0", + "webpack-manifest-plugin": "^4.0.2", + "workbox-webpack-plugin": "^6.4.1" + }, + "bin": { + "react-scripts": "bin/react-scripts.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": ">= 16", + "typescript": "^3.2.1 || ^4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/reactstrap": { + "version": "9.2.3", + "resolved": "https://registry.npmjs.org/reactstrap/-/reactstrap-9.2.3.tgz", + "integrity": "sha512-1nXy7FIBIoOgXr3AIHOpgzcZXdj6rZE5YvNSPd1hYgwv8X64m6TAJsU0ExlieJdlRXhaRfTYRSZoTWa127b0gw==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@popperjs/core": "^2.6.0", + "classnames": "^2.2.3", + "prop-types": "^15.5.8", + "react-popper": "^2.2.4", + "react-transition-group": "^4.4.2" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==" + }, + "node_modules/redux-devtools-extension": { + "version": "2.13.9", + "resolved": "https://registry.npmjs.org/redux-devtools-extension/-/redux-devtools-extension-2.13.9.tgz", + "integrity": "sha512-cNJ8Q/EtjhQaZ71c8I9+BPySIBVEKssbPpskBfsXqb8HJ002A3KRVHfeRzwRo6mGPqsm7XuHTqNSNeS1Khig0A==", + "deprecated": "Package moved to @redux-devtools/extension.", + "peerDependencies": { + "redux": "^3.1.0 || ^4.0.0" + } + }, + "node_modules/redux-thunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", + "peerDependencies": { + "redux": "^5.0.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.1.tgz", + "integrity": "sha512-yXLRqatcCuKtVHsWrNg0JL3l1zGfdXeEvDa0bdu4tCDQw0RpMDZsqbkyRTUnKMR0tXF627V2oEWjBEaEdqTwtQ==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz", + "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.12.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==" + }, + "node_modules/regjsparser": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz", + "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==", + "dependencies": { + "jsesc": "~3.0.2" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=8.9" + }, + "peerDependencies": { + "rework": "1.0.1", + "rework-visit": "1.0.0" + }, + "peerDependenciesMeta": { + "rework": { + "optional": true + }, + "rework-visit": { + "optional": true + } + } + }, + "node_modules/resolve-url-loader/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/resolve-url-loader/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.79.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", + "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" + }, + "node_modules/sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==" + }, + "node_modules/schema-utils": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", + "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", + "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" + }, + "node_modules/static-eval": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "dependencies": { + "escodegen": "^1.8.1" + } + }, + "node_modules/static-eval/node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/static-eval/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/static-eval/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-eval/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-loader": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", + "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/styled-components": { + "version": "6.1.15", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.15.tgz", + "integrity": "sha512-PpOTEztW87Ua2xbmLa7yssjNyUF9vE7wdldRfn1I2E6RTkqknkBYpj771OxM/xrvRGinLy2oysa7GOd7NcZZIA==", + "license": "MIT", + "dependencies": { + "@emotion/is-prop-valid": "1.2.2", + "@emotion/unitless": "0.8.1", + "@types/stylis": "4.2.5", + "css-to-react-native": "3.2.0", + "csstype": "3.1.3", + "postcss": "8.4.49", + "shallowequal": "1.1.0", + "stylis": "4.3.2", + "tslib": "2.6.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0" + } + }, + "node_modules/styled-components/node_modules/postcss": { + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/styled-components/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "license": "0BSD" + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/stylis": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", + "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==", + "license": "MIT" + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/svgo/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/svgo/node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/svgo/node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/svgo/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svgo/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/svgo/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "node_modules/tailwindcss": { + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.39.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", + "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.11", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", + "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/turbo-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/uncontrollable": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", + "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", + "dependencies": { + "@babel/runtime": "^7.6.3", + "@types/react": ">=16.9.11", + "invariant": "^2.2.4", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": ">=15.0.0" + } + }, + "node_modules/underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==" + }, + "node_modules/undici-types": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", + "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", + "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.98.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.98.0.tgz", + "integrity": "sha512-UFynvx+gM44Gv9qFgj0acCQK2VE1CtdfwFdimkapco3hlPCJ/zeq73n2yVKimVbtm+TnApIugGhLJnkU6gjYXA==", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", + "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.4", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-manifest-plugin": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", + "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", + "dependencies": { + "tapable": "^2.0.0", + "webpack-sources": "^2.2.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "peerDependencies": { + "webpack": "^4.44.2 || ^5.47.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "dependencies": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==" + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-background-sync": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", + "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", + "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-build": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", + "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.6.0", + "workbox-broadcast-update": "6.6.0", + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-google-analytics": "6.6.0", + "workbox-navigation-preload": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-range-requests": "6.6.0", + "workbox-recipes": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0", + "workbox-streams": "6.6.0", + "workbox-sw": "6.6.0", + "workbox-window": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/workbox-build/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", + "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", + "deprecated": "workbox-background-sync@6.6.0", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-core": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", + "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==" + }, + "node_modules/workbox-expiration": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", + "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", + "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", + "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", + "dependencies": { + "workbox-background-sync": "6.6.0", + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", + "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-precaching": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", + "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", + "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-recipes": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", + "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", + "dependencies": { + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-routing": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", + "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-strategies": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", + "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-streams": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", + "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0" + } + }, + "node_modules/workbox-sw": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", + "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==" + }, + "node_modules/workbox-webpack-plugin": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz", + "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==", + "dependencies": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.9.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/workbox-window": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", + "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.6.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..a38e1a3 --- /dev/null +++ b/package.json @@ -0,0 +1,50 @@ +{ + "name": "ranker", + "version": "0.1.0", + "homepage": ".", + "private": true, + "dependencies": { + "axios": "^1.8.1", + "bootstrap": "^5.3.3", + "crypto-js": "^4.2.0", + "eslint-config-react-app": "^7.0.1", + "react": "^19.0.0", + "react-bootstrap": "^2.10.9", + "react-calendar": "^5.1.0", + "react-dnd": "^16.0.1", + "react-dnd-html5-backend": "^16.0.1", + "react-dom": "^19.0.0", + "react-redux": "^9.2.0", + "react-router-dom": "^7.4.0", + "react-scripts": "5.0.1", + "reactstrap": "^9.2.3", + "redux": "^5.0.1", + "redux-devtools-extension": "^2.13.9", + "redux-thunk": "^3.1.0", + "styled-components": "^6.1.15" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/public/baboon.ico b/public/baboon.ico new file mode 100644 index 0000000000000000000000000000000000000000..6fc75a57d28a077337ab700960cfacdd32e723bd GIT binary patch literal 185406 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

gnWi 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 OI2AY*I2HKMD)0v*U)rSr literal 0 HcmV?d00001 diff --git a/public/baboon.jpg b/public/baboon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6145c9b235db98fc15149d1bffe8f48ca3fa0672 GIT binary patch literal 263104 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

OMMz4`K4Ha5&hU~? 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

jRqXE5X)Pz|!pgT3 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� z9$s;vF`mK@9PoIDVERHS&wRirYWs+GA*Z|oDfqMN4jzC*2L~|t0tPuSfyWqyzy}Z@ zW|GnhkfM1C1bw-WB`hHqJCkYds%l#!=<=2S0M8z_2gFI_r)ZA9giP~~o-oNz^AKk; zxfPrYeq^X;=1w9gUla*ey`*}7b2F4XP}1tmqvUy_US(TP{`>hvvN`1-jt?2n$o~M8 zM@#Zexn8z3&Z_1TUen95rb$joTXRxMAbOpy9w5@RJ+2lwwz{fa$u7#0-PJ&lsFi;c ztp&?D{{Y%i`otvw=O@lB8{121EH|b%`wgW{ExMf!WyJHfd1hg-eF@9_e2i8#ZkIbn zsLWF8Oeu+}S3D;gP{Bz6XZ&C~^6DGHRoM6AoO$Et7Jcm5>&+6PmD6syR@dMtrb^PT zO*$2@EbT=#^`9(^GO~UX`?7ZI#a*X7VmT7E95;mgM;yR?1obu2%@1E>7`Z6Z!qn9J zdnSc*vci(JslSaf^J+-k?6FWE7B?Yddw-cL+8Rl8T$g=`NvvMB+||8uwhWzeoa>$_ zl%HUhol+Qz3-DY^-(6-Lu~(%1~!)koG4E0WER{T*kw zytaXX{{TpVpTr4OgSEyIf=ZGDc|VVidGf|PKyr^PK~w-hWfQW!nI&3OhobIZAVnKz4NOyv)lbGV_kgD5oLT zl9eCPK#0L@%@)(EQt_G8RMMWP-gP#;(d&kJ4uq^DRFHl2~@}dAtYxQ4me8imbbT2H|=9iw3@e6 zwSaQ(ss<<)%(|b!n5)k@?$T-WB`!PSD*)d>Aip1#rE&ns*=sJ8l`@oW$p}i-xG7+6 z91h1h%tv~Sece>*N?pXxH2$9GOA}Qptm0o~#wRY9Wt5aMtl%MXvW~vuh&V!>LP-ZO z8+S(Z-kGDCS!!uz8OGNuY*FRu%6unpygu50dhs5vI9B2Lti}h`6w|Q(y6ai9@@-|n@XBml8vDaG?I88KqWj6KqEnP0>tvVOVj#{`bc)RDwTHz za7Vt>-940+}vo5-|t<$~VEo&0($8<}zXV95ThsAn+sPZKlLr2X(I^z9C%=t%V zenp;`dR7!#3+kDfvMo006t@t9rA$;qX_sJxp5@7>5rO@v4{N8YhwXhiHTH-tR_pg2 zU4jllVq&p2wvXMigZGV*Fo5b*hf)d(2s!i50Dh!?k>KgApDCyI1-oO)HWG>jCQ_Z8 z=W?29DN!fPl?4)f$uW}oWS|^l5t=D8+RdZi&>o_hzNK1ixh+DciRC%8q#5~irKz8& zR$5mcYlvNO)~7By)a81jL7S*NW+n(9jpcqdebtlqF?0UcZ8Kfn(>%TJBPylNSk>8i z^|*pJHz_a-yWRQ5^Da(5hdxnCFMtr75sdHxf#c_oK4VaE4(2&nS`g}1w1p%bl%C4@ zACZm`9{rbTS1-G!k7ZjDMsBZOo?@FKzy$b@ys(50I}EEN`2b7=^!844;H$p;o$4y- zrg+r5J;g~-5c7FV)nKP`ok;WWTO%BPH(T>Tjb+wSt9?jy>u^}Mg2d#+#d=1{q!aP@ zZc8?acNAP41SR78tMmh&(QTHUr(|@M)4HkB3qhjkwYxDnG~&_{xu@mO-N zd~=Oc8*L8gS#I; zNY5#tEl0z_1fBqjHuj?H>pIKSYu1$lciyNPa?+@B{u;NT>GHhJIGi7g_kk?`0P2DB zixc*QbySX=G@HSW-RT4{*^2p9Y(i9T&x$*!gd}BJyRi1QLp z`{^~R_{J6cMq~vkv;0bF9vfdqiH%?FR@ATPPfJraJw3%aRln;JbOsrh1TAbKLHEKE zJ0ymiZ_hp`^@*4f`IbRecm4fh6JGY)eNB5o=``8o3A-PsN>g<@hV#9rZYi|~SzzOW zQ?Z2+gO7GnPvXQ8y1GfxhqNoFYcEZw*=;qcDq5y0nfR0{GfoHQo6nxo;A|g62#38q zTR-W0+GDSJxT#c3$k?W%PGMLDwa+OcoWc*)xp|}g+{KRE73mvJ->O{oRTN55-NlK7<2Bu1(CdxFtpDmgJ?;Dv&Zb@t**L z-**vLZ>Tvi^MkUAls<&yM$}HYRHgc3W2d@m9+#DwyXJ11o1++*+bY9S&HCUeFDQe? zLubkYZuKd8Pg8#EyX!M zEn|N}!A~mprMhYR6aAo-XCE;T)7lGpF*7To8doal3|ZQ5Onvs#`6lOOkme81V@-XJ z&LwBF!p2Uiba6nmYN;xwD^TX^PoYEiZnY-lyTP^ml;HC8iAK8Xs@7*iJ)assqDk7! z`l}L-O`#(p#kDChF*dRFnVTPAB4GPDbg_C@(p8fqJ1$$PTx~gYPvl^!bBYRQBh*W! zf%b^~?Gv-#*S@8?d+D;66t><(!)QneZKMsTKpsFO2tnF85!RgCQiUX(q?L>vqkwyn@ejA$5t!|9xC7YcFimQz zPf;|c>#b8n!G4)Xn4fG*s}3Ik2UHXD+J$lF+9=jE`MI8)^$x8=s7p9B$51MBHHuu@ zO**t&wWk7|s7g8la+z6zho%{IBVtx&5}=fnDD3P0!?QJx#h$Zn$yLu#YjVkbxtVv8 zl{TyeF#8U3vGglzsC5GXr6(sO9CN5iS^BPzTvr8}lup-ecGnx)f z+?SArHb)?bmODpM(z$3<85$kwY&cGs>IA&CNlIBf)e4hyH`S81+n$|Fw}6WEInc2sSVLpsZ^sR|hf)v0FvIBlJ2T(v zE~=_0Pr9FQ0#oi*RcZ7Ao`r(q|WG)}2NWT%}Z0gl}F( zN?M*oqp8nimpg7IFJn}u^=9nq__@B-L=hJew?gZr}IQs(< zHpc38b~i@XS5Nff@T=GE;Z#EL`?lm)D2CqW)UBkCsfgvucP9k$PJV#@0LB~1$9{Ms z130>MHm7uH-Iu3MvX<%Ad8xX{&nuXom<~GU(`#&_`={0|%h?~Ks^V@T7zg_WUNQT{LFqo8R`qXEZOt{elC{s=brvbCkb8w)Z8XuLW5SGvmJDd)EPD$?suWbQo!6qHahGeZd zgTcr1hpKb}IDw8}{ILMssvI-t2=n%XoTdS1m}hP?&LEuUf%AlOo?r;qOHW#~=D(&_gt8o^ToQ_wTZI8?mV3KTqdlBL@T9BD2Ruj4R-xG!9-Cd& ziw5tJT%B%#KJ7kvg`}jR#?IW2B_%)wC1ddg)ulU7n`&+tP zm#WI+fp-+2PbUl*{gD4N?zrL+Fy+<3Vg83?WBB@65tg;9C{dAeDMh<0uDp~ zh92;gJ~%zNFbH};CkL1r=d>UJ=Ny;>2{1Bqg+V@o5Ew83`D4}zIKYH^ec(6&IVZ{k zo)kBK$_XdD7z5nHRh+|zFt~$epyXuv!^R*0I{^bc;scRG8*v|g`)fFKdX zE+KBjEa%bykEAieyrd)#h~uAJ9DTD6&!iNL{vZ#L1_G=-w3vxqH9OEJCTXP9XK1VW~eIh{+l_&-F2XOfj z=NdbyHdiHdXocFsGP+KuNXo43&KRgj&PgbIz9*Z4acR$Lt+2(((bdCMT2QxbTHPwF z+KNWxDc6jmuzd2Fo_}8`tG>4^$1I(ApOjRp<%LRvZ&eFwMh}YhDqOx#&&Lk^$%~Wg zPStAh=~q!L_mTrn(ylfk8+8^9{XEk;nMIKrxHjB6tLXmY(Gy z#)-i@TyF_kN@*5{R;keH(v>f>YI9QR7&7e4V-m?(#^+P})Qp4_5*7`$=A!C#<*BvmzKZnoP(xEP0m)0Q z_}iHaVC1FQX>v2;)IvTG+D686y=1H4jw{zqZM#EAC_OLfU4O31X7p&O4I5RsCy zui_<6D4oQU8b?j;i}zS6^{rC0TW(3}(+Z_h>h%WvNjqkcmyTLxtc1eHw@X{nJU9DFXe00;3EkkbNHY!~B^U`> z(~#*_pHOtJ$fH=6{KNB7(g`JVQ;wxmH3@=N>+>%yINvbqiY~aL-#(%{mS&&Z)*UWl zMv8~$AE-=w-BzbK=z4mkGuX{cyMehxBme+P5RjBMlp!fd@U_EJThcoQa_y3%{@1Te zywxt*qq0F=Qm*+@B;`@a_*CKEqxl<4s`7x=6}hvmU0Bj>_Fng^PeGYYVy2}5;Z0qW zttq)lf8i>YmRpXUoS|-{92nYHdkML2>w4072c&6L1}bv}P2@~XOSj^%g$}?63vT?B z5_^d8^iNEG(4L!8ZF+@Gs=a<{b=t+nSOW&9SDSRZJ2%)83W|`7jQD6kjQZ81xWf+B zCeojMp8fi;uEl4>SN{MQPthU+-)yI9hV8{GDI|;>=a?Xk*gc`4C`bVV01x5E9z*B^ z9xy@dd&IM$it4SAPt=`1xU}}Dgf33yrA<=2slwt+wwj}K7M_nnry8y>gN9dr!>ch zBVC?N$0T-bN}HZQeOMpabx$Kcs4+PBBa2+G8OH~bG9tl!k9r){?X118OJ9&U?n?>C;Ck8WE({)|XLc5aSdXFw4^kKpy)zRHaP4*dAO_13cj)xB@(S z<)bgDT}e6tr{; zORfDbv!#HMqRWIkG_<5SH!`!i>6fwjomM~HP7~Mx5nI`d(bIZ8r_F0s^&+u)UXn<1 zQHMYdQt7I~+ic`zD|I_o;O-JzNx|GAb>yfcVG2x=IG_C1q6UakI+MIUCQ5ei(&N4cz*XAls;$uoQW~8rnDN*n)3#m9IX+4zG zpd}gP6|K)A2$Q)hQQx$ckB=UI^UMam)k!4YGyd1tFOyG6D~&cqK^3 z@S(%xAnUDqM^3Z~{I5zj+@m)2qg0rcLO@DU;YuwGpaI*RpaJS5IYflBQ!h=oE}s@* z#I4nB8CsG8Qctb`0DOc-k7;GtEk2C(0j6FrrxW;m)ln^uX_=HOR za?p{W{SWDz)md`Y+p6~vxoQbl!nt`iWYzAHs`Vm2KU% zX4K@B0;Jt(_Q1h;5~s(&9*QlbW7NQGF1IU^l}@N{`ASsSdP;*j#kR`$1wXT8T9PDV z%QEZZ=N9Me-mqS=dOfgMotJP=Ra%;^x&io*iMQ0I{uA4CX>Xq_6Xz6WecTCT5??*YzrMKUn$`zHSMv59!It%Wa0$Ri@D;DR%s>FdV5m+GXWi zDf3T=q!I^Yp++a24N24Oyw0q3d8{2qKF^I#x2994w!)T>LXjqr)Z?j9&g7~802l&0 zjQ!=;%^-x5Pk%h)^x#Id>FY`)G*3z>T4^A%;;C|gy!wU~?846Hol)*o z1SLf%18R5!&_xX=j^;X*2}ya`MaoVxm!;kXx0+XFwxP9Y`V^BLvOpvl;G0vP3br99 z%;Xc>k$^conau!JTXDzCp2_-A0tHDZ+dj+zVUHPT#j`4zY z*FmOJEgeDWis6!Ca+zRUQ?yxmHxyUzHtj_o{U8<3ATu)LzDI9&;{`lyWn1*i7VoWU z6qEBQlDnRg{k+PZ{{UBQ_S+0MK8$b<#IVb%>`;c5a9dXFe!n6tzN9D@yL+3Fzv&CJ zD#WcRLaGvl$=Xw^J;_r`s57|oNohIkAUWu=m6_^A&7!xH^Aoj7Z9T6C-yA{l#IYK&6)M4P9+@NLSS%}bPRIpJj`_i#Oa z7K)F~0+EW858^+p7SuN+D3pwhk>&G%kfkjtN_P@K0~yJUjiLH0cI*D8(X_V5k=;L6 zdkdLT6j_j!NggcQ$^(XwoRWCS+L6fsgy;4{bmuo!xT@Vo+!8?&ly4S=Z5JB=u5rZw z0Ikd*9!YJLcwt?No>=aKi)v4XmUf{SBjFkHF^FkipWAv>VO!dFWyl$76~83ZoQq0p zYW4wzEoaTexw+LV9F>z9YKhy*jx(R-0Ehr_4cpFgVHGRWygSMPZ8+}>YQ15>Lmx;$ z=kEZ+-w@z-jByD=l5qf$o?sC^eqFeLPd`XF%q_gYA=(cn7BL7MKqG_jr~)zA$B%N` zlqw2sXe0E{ju66ip8C2Yt1o$w`dRl z07vT%BxI^l^%o`G9*IN2*8BeewGmS)8$n1Q;aJFu7zy=*lLI*B9@+}ll!7v&j$j!F z>)JV{C7hN~L+m)xi)nQs#E?{l08pXwAcY9vNGHw$&b^A-gw(aksTxf+GqrQll2!R8 zN!meSYGPv^r)$i7{us5jU<_pbu|VF=EBVV0tZh4(dE%K$Ji;LQ;tt&7 z=a^ea?-w)&CbK7kFM`8Wn&b3cm~?+7?2GFuBA5j<7|)a~z#JUp z_P~IPUekHD<+>r%o$AMqDJ&!Aqf?eR{Q-)G=xY9JPCByFE2d>>M7XUrO?^ZYhUSo| zbsjwM?-6RA)%uW<=;FG^iIh*)sPe-j^9h3Dzx!BN4r_D1vAo7}iSxJ4T5~38_ ziNOj4atI(10reDwEhlaX2;3FO!1%ZyUNiTH5xFHNvE%I+W{h9*TCJrPcBM(UmA7-z zWokqL_#azI@lt+aK}pA|OlH{oKygf>UFMY3$U$LXrO>~^P(~G>mfXZ}=q7AQXw_Fr z-tkoSl->2aDPA`YmYAF`OA>n@+&+MD+$4SEd+moCQ$;CIa1@ZC!N|rB$|8<}*BiCE z;p!7iCQzm&?iQ#w%_*fE47(`YyxNHMF1UgH*py2pV?1_&+8m^w{*c~GASA<6+~mWL zXlFT!9C73!WZ?4)=L^psPz5UEm<0O3Rxy$32|b`4+lP{{Srhv4d+(F?BsEx!Gx1dRmRY1CmeCd@`!KkjkS|Kpcd85FE72yUEqZ;gSjnD zNW5G)#~&LB&pvTE>xq=O?K+AjGPbIe$%4?%MjmNPNzcr!Kcq)LXoV=4JBj&+u(V9y(2dED0^rL?Se7<;jzh|-6<*`7D3OZGC#~m9Bu-VK^Pez zi~=(mwv%d|^P@NYFH$u2u&Q-ljQDj90sFTbR|{#>;|ghMB`Qhar22qH5|UD&q2zNM zjK1S!p$;h_V_^fa9*5Q-`VZ+Ns@*&4dc{Rz)_FAg?K!5^UAJ7A9`j9F$HY;_U6$Ml zZNc0tX$T;QkVzz-c!~khdwW^*u7ODF6GLi7vny!Nxh--^GKV}`LXWC z!#6U|0Z%yQ<)kQKw$y=*`=enqOpuk6my&LsF4Hp2hS_DdQiQUQFcO5Pgn&4}j#8Am z*}xzxInQ-xxIbS%SV~%(;UolrfE&gMJBY$hZbz4Khz<$KnR!;w=wXWV!9b9L1>jDq4) zW#xfC3tlqumjRBRtW8$Bn$$=7c(rEVV@|Dkrd-s@>kfv~KH*4lssyru+*GuXsgHMit01e0f9zs2qLP-PoTqw`37qF-4ff~D4D@&DKmuAS4Ca){LLYJ^$l}SqP zoSQzIOHztSJ^uiC8zP}UFHDt~tkfn$5^{~MapkOllqCr(Q2hdlKOyS@hiHB0HGS#D zD!V-SdS%CFa-9>4OQ&gKrz$ zA3wx-%w~@w+M+I+nxyp0DHD}?tMjj%d|Lc3SM?_Nn-Y{Oa!qs7i{O%kkAVmW8=Y}#OKDDdQAi!*LMr=A zI=wmtrmbnMnLmr}`IU7It*{E|l)_3}m?`pGpA&8INc0?{n&ZS$#!4STf6;x$oMma+wp^9#>YLIghgDED9`2P|>(zEJ6KGKg3VvzQGE*|P zh)YQ%9IXq;D`+dZ*3VbcT`^d)^3*n%t7;w4S1WE(8&8U`ckK72x5+6^KuE{N<`O#` zKceoL>KYwpPF(tjIOS(mZ>PU%-W7-34!j*v-ibsyN8oIoswwX7?n$0$xt3Xhyibvj#ZZZ=K; zP)Wypgy8=GGa4^V9hbg(lGR)EE8eASnQ09>r@Ycm8*nx!sz>I0S%wf#{a!wy06nw! z8?zd(r*=|GM5Qv?n5dzVjjj94;+q%)@Z~a%rz6M#+AG!hw-HYW3Mf;f;scEK$@_$k zK2bA0q-@o7TdyT)wZ6cbsI@6Vwk2BtoXkAJT?6~7o5}RYF%@;46p3w9x#^bpN9@{N zN$O;p(~LOGx$qL;{{VZ#-TmmFMqknek^Yf-nbSK|qk1Q9Sw|n*Gqsji5?v=Nv%4iw`&=jp-nk+*JjsQue{2M zY|lCqxu(^hiKdd4*hi`v1dd{i!KPB$l(Lh(V=Goa5j>yg4qDQlFh)-&=h%NdLD{q= zC?sI{nDDR4>lVeGS-2+M2x^xosl}_%H}N0j59tByg$&_f?o#$AKA|L^@G;YvdDAxB zn=ZD6zRK2up|~Y!Qb5S_URJ_{1@a7exNviLSQxJmvGc=?NzvRhU{6LqFu7H7geI{#?lnZ z)v~Ec&Hzzi=UaImtWDr>%8Yw=MXy(_S+!d!my4B(Ic}?LR8|tV6!fx#lBHzuR@pay$p{BF9wWJ-KyR=5&cD9Lhf>kypSW@Ps$=Xyz)h=nq(m#!DAIlqN zgL2TXdOfjw+O;owrPY|1pOKkJ$Bij6&g7{5M$GwzCmcX~l9NVeO_{MS<9;hGyW!*& zBPj~n3F91*^@_Om&+4jQe^2yMRkxIu+kWn!aZQxA>YOW=mhj2`9kV4v%W_0o3-37D z3?;0uATplYvQ7unIQj^n{=c=M8s*ge*@@!gm8JC{%*tPnunPzUcWl zAS2X`K60TyEl;P&xi>d7^K7uhx>UCwabyHGgpO3ANB|CV#9qg<^Q0tn!KZG|-4d)h ze_c$n{cYr=A8>2CQZ27II|x#pAYn^b?h+y=`zLxzGxf<%r*HZ)*CNQ7YS3wIg&|M0 zpxcw``6XMLZ`EPNW8elYg)Fj>fSxiA2;gJ3JplB84K$f{gK16@003vUAo&ns75QQa zIUJY-M>!%9`9g-MsqziBj% zwrJ(wrBnM9o0gLFt1d6IGhhYFyT|Z6hSllEG4p3ol$?^BnUkMwZA>ugko#*GQXEQ( zR0#4Qf+OlF#VhbOtSp~^bH{T5ZCDU7p3v6RRyPxo4+KCo9v~1sV4eZM;uueCdB%AM4E;nAoM$l5 za57;N>l%QQm>)P@_<#t&1~q&EToLo~fS^gpIEN9)IPDDM&N4ZYto&Y3NJ;OQZ)END z^MpIVIu3Y-!WlV$ca#W281sX{^?*Yi;eh%>&l~{^*a7o^L}c-ZBaR4%0f7lvfIz?i ztKl7$@Sk3IfNCbnj@=kl{?dLh(b6q<(J-N@R?m_m!Wt zQ*Hv4ou?`ru#wp3)6yd|lAAz3_qKh^QxbjyhcXBl z!3Up63$pe^YH7TBU~HHCB*|B291qVHRDE)`7{|;Ao$CaogdM8K2hu8ot*e##N3|nI z=McOimi4C6LC)6OT|vUMft~^JRr?oI^ZxN4_3VU)ng^)Nr!-n5e1f-k{1KK#$F|@Dn zgMpqvS9IikK;|C4eBq@9U9vKrhaO@H5JRa8;l7r7@zZ@_nwd^ElGk zaQxPNAk%Q_rNFyGPHsE32rD!SWA$$j_{6Gwaz2GED17rCo9dFes4pr-!2F$7MZ$%r zkfz;h_jn$8O2N!=-xLP!yEe6G%`5kH%52>&XahO%*;{$fkodhk<41H4scF>imh3s_ z9Z&6BYC*eZsEyfMPskqt74msoO}3(Z_eOWIlXRtdHK?6BY2D0|mt3Mt)8|1}N@k?9 zDEd#&#ASKV*Wh6ysJURVYdGafwwppT1fVs`?zCa@fB5g6Z0!y|q~P z^vzn7f^ep(byBBVN<6lL*k5i7-#C#v(<Kl)*vgjf^~0=XF;a6!x>GZ1fHle(L_x@6S$Zz^kMr$(JX zr`%L`SC;BhDjcI}<8nDDRyZVsl&L`6W`^jOPLeg+cT?Rsq|m7seLY_JFHKSXn?EYG zAcoAT;#Jn3K*CzvwP9)7g(yVQ?1h|({T}t;Qe})2@PSNm=Jz=OALJ-mb z2`UOmNf_sh6XZQ{&U3_a_Z+}=)T4uz)`FfwR7MsuM+6cEPTXcRrnq016-vs<2+ zO+JfCZ9xjDRF{&|Nf z>Kd7uysC(O`PC$Xi4@E&wFxG8+@_gJZMBf3g%r4PxoR*Noc%dS}HuF*}sl|bXD7MVOKBTC}rPYPOF-7U(^%Ud*Qn)Fm*QKN^6`AUy(IYMs zk3SM%EcxLEIkfeunwGult;sOiEYlgct(KiuP=F<+oSc6dJ8`<8-tC|c0LDQl7S#H; z`bX+>O>|;bQEt=h#5<{X3yq{~LYPYBsf=#M(p50yj^i2q$j9L(19aQe8f~dSk+&&L zlu6O#*rrRNUTrekSW0o}wLi`kr0{B*x>nNP>~~d9QWkz7gaD?G&n>M#p^r%ol?~1i zq?KThbG+jj`Ewfm>Y28+mRgqLf+a6HBZUO0^0-KLh0fvfDZ5dK3um zBMa866`f4dOVdtVXT?>^Z`3J`58-vj78_T{h3z2vff+Q6*h|Z$zp*Z~%TpNK2`#9p zC0|X+B0Do1(v9ibl{B!TPH;j_;{o#*ZBNf4JEpx0xium8Syff06(c}leEZEw;8M@S=7bVlSpEbab00p`I%V0acif!oXz>6z)5wuLPEmAFYiGGHvz*%#AKy2?A$o!L)HrY6$-m9`d+P~PCnvnk`g z1BeIHKCv&ly6Vcw=~GXCq!phIr*YN`lJ@-%#3)?b$xasIgnUSsYj7)A9$_OTLOa*B z{{W?35p?$??Zq(MwY_K4SfkS`yqZdUG=Yy1NWsf$&8Y^^2qcg|!0|W>=fCqmsf;s7^uF8C zZ8x^`zR+kUlWfSMQI`%1+&Cq34guXxx>n+_K-{yA1ax)#S}0lrq*orQT*0!{4ot3E zP^;pcoLMQCmrt*V=FoB3B%de^d#M+i^)Fg!oibZQxhE?si;Gbvg0b$jo%^L}nH`;+ zcWRs&1TYja`@mDa*_CApEu|h9Ery6l2qh!1xqh|G`BOoQf1^@s{3>*x4<^zdNHr`*DT2R|zOL0n8)V7@R zN$da#C+!+QahgF04W`!M9g>jB4{@fPMVk(`wsxbr8BdPSUddu2;>ZO|RDpfu^0{{W;HwM`1RW)PsW zH!zeT`Q54``n0VQ%_QSHQawyVj*0X&T|;#zYS?q^?xQg>YW35CP?~(H3vnHe1BYWE zo&j_~SwFI$rKfbKOpdhO3B`K-l9ql>S;Sz<)Atp!pswJ!l?9RMx6&t@V`6rUV<)h{ z@8umzbuvnwD%`w;swEp`luIF&#@5}gPE;+4=?9XBFjDl>FEroK# zq0R~Fe$F`F({kQjmxv7N+Yj4)MO^ffskWKEEt*x!Dsz+~Zbj20H~~HX0CMd(k@GRj z)9se_nNx0kBt)@hk850WGd9a*c}rAj(eF$)lia1J7c|O2>>5bV5!St{wAz|9r(UT$ z*G!hGOCk4CwCyyC?7CR*=7dbUAnK1`8Yjz*yoMWQVcD+%uN1VFR!{~`#VDr-`z2}^ z^2zmp)LmX`D)f`4+y4MjX|uvwc8^7Ix^wINvr`2uON@D+5#*m(pxqnN>c+F`rLCnl z@LH!XO0zWJ^J(AVv`8;LQ~V7y9dMsSn6kfYwzK}qwe0N)rO&J0E0apOYbb9cbgLw_ zDud7AQ-Q@}ABm87?HDhyr$$j)y>9Jwt4i-`+LTSdNO4KX_qmb2VM*hKHpogolLx+F zEh@^kC>C9A5^CupV)V7Vq%wUp9 z$6{~>ez+Kfar#Dh^12D<=?D%x!*`|@=+JaEU7^qj&v*u*Sr{<<{{ScnKm&qIIPeL8 zV!2T;L;!gt;t1ok0Ru1;J}4lQx zj`-SpMM(Q;?9Xt&H0Mwd$p)uNoufRUc-<=M9Z1KK+cbI4IQd1mDX``doMeIg!T$g# zuD@+9HeJmOuf#=Z-4 z>8j6}ta~DFx@csrbM%{omdOFO*m_H&2;waP{fsw(&Vgb8v#F5ViH@8GJ=O`UrX+>pDlz6vHoT}D& z;$W$j@$(KJ)-|PW!K%+p?T4r9bvc?-@T#EKEJr zR-3ge{cyTz3TzKGd)rvY*#7{G2hs~kC`y|k4ZL@U06>7Wq^ZM?%%S|u4dVbtXQ3(v z1~KUeIq%*CXf*KzXBiNPIWP|IU(i4-oWVWB40)3X<^YrD3u1i1hNt4rV3pwF0pThm zfdM{HvVCDBWA%V|NlLI6HAIqT z;b@cCNj!(0Kl>2$P#VtBw>$88Cpi0jqv`JLw<*_!vsbh$2`i`9WF{$7N!yTGm~Blc z5#}(nA2Szyxl^<5I<2Q#XtPkE&%aEYY>p87D=n-Kx=a<5Xhx_{Xx^{c+MiEI@h!T< zy!(IymnG7yJl7sdXssvfA4(Lul$~NuTB%HYJtsE8CKz=m;c>STl_6jEN=W*c`E+O! zq<{(a1Jlp>MfZC(wQX9p(uJsJCJVJIKrYyv-1hYoER^^PJY;2u8ypfozrdugXi+jAtVfQ^m?{{WVL@pKCOc^&hZqmOFnbv<9zT~_3u==B{) zR(au!=k-Yt-1J^HM)H*?V|s}mxlzPBKPbnnYk`}p&9^RDb#7|0N|C5GqsZFp2w2Ja z?u>`w@-ZdQkE}GF@azxb{!qj57@(w*dBix5GYkX#Vfo`2fEXT-Fg}p%alr2fX*^~D zxF;vb44>9G7=16VVn`|u7S-qvIQ>Q=nPY`<*|mN9U`7i>xms&iu6rTpmAulawV6?l z$SylB=0CiIf8K$Od)JM+tEZ#gSEd$%($%)*PquKWM-elgeLNCk3VRoINy$sn{{Yds zxBmdu>lEg$85WOV?7G7*1pfeOO}yFv0M&e=%yrU$_1mKwfon2CKW$podU^+NOVUpu zarXu&_u094D$eUKP90RiZeFc5F-3hoP9|zq*3v)rrK9$Mzjl^X8&=YgOJ^jEjN^mz z<|@qZ`ZpF&blpu_R#j^6no2g% z=`%GTmGF|(y9;-d{oEL!?u#`VZqVx!O|MDm#Rb$ZR;1@$C*fLW%9wPkANKjjsDQJZ zp0_WfUesG=r0V_NldYCeqCVr9Nd2WM;S8w%020WSmuP?6#I4o&wwuzc)#ZScqTH%D zq~v8O5|138t|A(HR+i0<#)NB74+pGk`518{Ct(fDt0Z%r$#6cgEINdkmzU5zNvO-Z z--4S$xiB0-$k=Jms4G60#v%`!g^U0(0C;<6GyK?{! zI4}!;BLD;HGZ__`PNUbZs#O-_syiW1ota=(na@e^j*p08W#o`n6MPu~4*Tou$%iOe;UNsLky%Z#YQ! z9tb6+wt357F)3?g)bA&+YQuPXQI*pv3@^02vhZGbjQ%%P5}e~HLI4=t ztny#i{kNu8!?#7s?7?N18vNPX|`1<^%3rJZ(%B(aU<|M zFr(ruaI`Xp+ff9qFdlW2O0VAV)02XPoyh>;ZU-K**F`pu zY%fxC^5qv*RYLZ!y)fY|$+r7t z@`aAuSd&Xl5HgIQ9!Ul~4wmV)Dy)@bS}y5jNZuN-`*$O4(wSv= zs!74|UUNO8%+(5XwzO)cBd11MZR<{fF2&QRZYdy%rrdXRI*Oyn37B=V`>5^UN}(JD zh}>qcDJ3y?U2|@w5>%!Ps@6awY^y7E+#ev7IHB9RAU)Z)*4)gCDJf`7KD2-a2v3Hk z4n06lV^8%*QB|*OTH2t`3$!m9T>Gj>&-%2&%$wl<0A)?SLHkB?S-BXMxa?U8m7jX9 zIX0w@+_z3~#Thvu(Z ze5<%QAkR@Jn%aJ@;(dKJUOunRs5isgY62-!JPSmPl?4I5LK2ZvrTBeI^ zFE|O?oaB?qz#gY@zI* z+y>-2_oN0F*H={&y-({r-Bz1C__8gx9H(0ns>(9J{)L^2QZBy8$ON8JlX>1X^ z`4z2UPAK`QXC?zBnM;Y2aZEZAuLWpiV;DHbPnp5yDyQ0Ct931Y>L$_X_QafWVn&lw zm1?M&Tr1uyGdM{FCxhsMpK+;ARK#fJ3{t+d?-(c8OKXGFZht(tPZ*@d~p%}K%$ zEiIn^027OEaR88#P7Wfiy_A-9M^(D7uIjDM@uI&Nt#Mw*LU?(!UN} zlmIYEa&1Q*W%axF$%$@3 zvct}V1q7i(3gi-SbH~h&Bj@&y35&v+IdaZg@_r+;G9D0^aU>SdR>^n+&U3J~dw;Y{ zc-p_I^sOJTYB$wZRms<-6x_6hK3o9(N}}?^QnHN>Nn5K@Q<0JZQN(mKlTPZEMG3i! zzMzVw-&a%hD~frvW5=GFQda9sobby*rrB(HHp+cWSTnbjh0UdawQlg1y`#PX0I2$7 zBlV4ErPHaG)D2m-oMpz;i-tzJ(*FP|*`1}!ABP<9{Hx>Vi1w*f=jwXdaoXWUZBZ?X zOv2Wav=^r)=LrOQ_;RhrHsxWu4^tAE?mUYE}=w@1)8TCo@j+KnW(AG_4v>%x%lc~(m zYi)cv+wZiqCh5mxxm4nL^C#sSNt#6}Qnfd7vnrOVGtw-{I_b{mT4l!;(n#z=OU{6M z;bt{+Zu_TI75Y+AK&t808fbuU6lJQ@jf0Wq6EFwq4H)-L7SHs@r21}^UH(6fOp~kF zGm2VEYCvS4uTO(7AxM{* zs!SBCl(yPd`=4xu9DL&FqhD!epr=qe#k`Qr%9kl>CR*H;C%O!yL&eXa_lF8J)Tv^la4_Y^Py~EM$=ofh{KE-g9P&2eDK5~Gt#t#h^y+<0D|Vx(*J~zi zNI5<%?B-ojCmaO0;rnJjkmO{gY4WT{)7Wj9X+#NjTW|2CumVt#=mJtAj%6Px2N?5& z;;^h@1~blLPBwV6u-Xg|oc1trfy@-d<#7TUNeai5Kfj!Do>iE#Q2fFqk&HqoJV68i zGu*{zObPBzVfYx#E&;WU>G2OC;(0|^M_#K0UZ4y zX9_$(ET|ArpcFf2vH3-Gdur-UCq{Jcj*^|zS3|Q2^&zP>B>w<6L|CyWAdWfjkHhnd zo%Yz?DVn`B$4^q|4pZq<)rXo2Cm!(fT5RLX{{TmF7qMC?mo9He&QcUd9mpe((mAQr zsj9t7T9r&`Z_Lg-+YBHMRJRlol>JJG5wNsBOr|wHdh=;4m9uNu_3NemzwFZ~ELN3& z?G)Ji#>@6~X<~J2t7{^kH71AYmi)@@T7X)P*4dN+ZRC07^1^?;0cu@fN-?88&s)CM zmcwbKS`s$$HehcqyDuuDG3s1VA}LQsbdKTI4Njoxb*2cNu1$uP{{V-%sX1^0otbk7 z@HWs|)Hpl=+{LCfY2`lsGiDkC=R%I$neMIIS4Q96-A?MYHhWnc5J$( zdx83^);HSCY1(Z^F& zOPZ@YFE1-?S`{jSoq0h%0v4v5E)&=Uw564Ez*nyj7g~}6aHVp8#uhl>MyTnxsC!$f zT{}9DXv@q?NQ$ieGs1Z}Q1^E*hY8~zBWr13d2h#&jj}V?r=K{?^bBAV18z=X&<}0| zXeeD5Y=!<#(wd>Goi``d4dpq za|8?y@JJ_^z*~6EVTE5Peh7wn_Am=M1_>GSfC29Z*XIBZF~?{_80386$p8*a6OTB% zKm-B6gOLO23%q8@d!USih$ozUp`=5B1}sdDClCg5yaV6#{(RuY8+%rCc?P9-}O^z$^6CCc!&PjMdmF9X90Uj;49GMgZ!ckdtCHrU%ffYYBYqh zl~B{_x4tN)JCE%7vX*85$80Q1xKCgZs1jn85%4T-{HHmK9`-cq;J39t@6n0(w#(gA z(N(6lR4`{`$qPb#RJI&avOJmX6~+*xg=CL_;auR6oN*b>iE6b^MfGme)k-*VQ#RdE ziPa?}1w6`0OU->8WlKT-0D21gS1x330FQ@o{bH2;uynU+T~<@4l!6lMBcXNF`Y90CNx%ljR3?3@pP>CIJ$n2;-Fi0X|-F7VfP>V%_$M*fvVt z2{%@n)n)uFkB!7mu4SctcFDbusfj@1)RTlZRlo-X0!dKdXU`cwXsXVjbwr7mM)qbDEY8I zs1(h(Bm$JrAzAuyn39W{_JwK!H0z{2NuTk9b5)5$Zb>AZ6{>aM(}5@c$h@q2CMZge zRh^(#WNUQg2Bzt=P0li`@`oE(T7ONVEUViotnE!!Ed2(h&4nUFxpdYLh5RXb;HKqJ zq5MG}GV$o*BC--dAYkP1eq+uky02;@68fFd1hw}_2waO*S`Em{i8&q=(iX}{KS{I< z{NvlXbu|^wWt`>s{PBKfqopaQ%{)#NxuwgdLDP@>UD-c4#N-`sQ~i&sGp=~v~DUECJ@Zhu0`3*fs?sLswyQp{{XNG`#@I=$N|NW z6Tu+hV+TE>gE`_k9a2<`d|A%oPpR+zU!-vk@C7hoap)mHC^#4+88AB>LfkXN1lsmf zYs0!-)SR`2Ptu0>z^**o&B3uq04w4 z`7-O%3uThvN~dPSN-edKz}lVe6%mAlgOZ{%l?ia(TF&5;&PU=n=P{1kl4z*cDwkvF zQv6NSi2%RC+@l1QtB?9ecc}T{Esnwik&1itDLRc|$&*s4%?<9jpb@wrj}4Tb$VxY1 z2~pgo6)2KaN!J=Ks(nJ_)lFlnz8aRRT@w_!X{Q!ahN(0reajn$4$pZ-LEIdtE+~P? zG41scsPj5iqjy#HPHi)lT5OtAM3nHnRZUgq7M5fiDIN1N>mVl_;GE!QHO8V^PiZGe zbgc@Z)C;w$(^TC(MA=zd=4v%ZP}KC%Q8_9;G~>jKobEnQ87EKEFG%SfYh5d{Dq^Rp zGjmtG(=R9$rcKl(6v~X~| z;@DL;OQ=3G{G2MaSS0Ph@8L=|qw9&t23#doo~Lx~p4*BH(QUh;xav0X@x3D^&;!VT zw{h|&Ivr+(PxSLzvKn|IZuy;~+7h4wd`Bu31|^mHG^Z4O0!(@ojrAU^?uq23O`_h@ zx-_4{K@Gh-QJ#5eA2Nw%kJv^X)E!c0s zr<4c%Nh9!_2ffujp;@nKRXLj)K@MDY&DBJ!TWld)0;VJ;g3{4ZI2+~A`T;x=w5J@# z;kPTY7d;X}=%P%e+I4A`CuCh28<=q^QZSM}6M}LNAjS=>^%PKa>Du(uxJ3%5NUAMh z6oKy5IeqHKeVan_pCg#ctjaus`=l^op9!J4M6$X&G#2MULlni@bsNkas`eBAw58 z4n~);VSbta00`Jx*;oCccp`%*JnQt^UYR3r$cG61+j8vy;Nt_Cg-k5*_?CTRU(2h) zdAAAzwkRm1`QYat$~zPDZqLoXJu>F^Uv*EpllY3sQ91gb)WA=VWA=?Zc57X4S}GE1 zT|UB)Q!+%g_^MN(O{AkI2V()^M>s1-ZVXy(v}*mYpjuIJYOUB)`#Ri|Q;3&Kfh(Px zCu=guQSPO!K|8U=;&Jep*If!|Yh5|?+ilvlh7m1Zsi9X5#9hJ*b8{$32vI-uZHC$> zILa046|wCP>c9U0DLqS)(t8GdZdn%e@?`1DGx%F*o^WDAdmAi-Q8cFQ zzGmc>)YaWuOticEKOD4^SUF#iFFxSMs(j+NdY-wQL8P{WmfNRD zHknC8rw0QqONAV9l_>ee*n2;$!DaM$rL><1YU&hqR@?_ay;S3_OpNEB!sCBo0U}NU zvN;3JJiCJ6quaEZy6wYMm!{LH%&KB`YHifC+_OnZQCie^00Ex;zGMT~pQ=;oGIKQ= zl=CuDaxA$sGcz!-hM8#qm91+$B`E-sPi!AZr4GD$Ym+ zA%x@|;EnIorJJXn40M+LQvI5hr_9sjTdrPH9C(h-y2vS$K{zW`RE8Tza;@FB2&J8D z)++Y7YQ@p2_iJD4_Z<0|3~wq-qY3y~mqFvFeG{JW9_LDSVs#6t4KuVJN?c~4 zbJK*v6pZd+4+mZQY(l=qK8}Ktwzr_+4&!k`U22 z9;O3WXyRL}>b|vJtUBVD{*hDdxnQm`DU{Z{Qa`if%{-r~Pd=VDvbgmps7(j1B!slP zim^a*1BJIYM^mW>>bYV^%tm9=l{TSI(Ytbfx|91>;brTds7^@}RTmXF>Ipt+@zRe^ zf-s(=T`X#Diz@|2Ui+rH03(EWQ_`hp?=;Z+kCaUMH=EP)@@SGo%*btXuBKU{t_zNq z)}VlXdsUC05vVFk4Rv=!c|d_XrIkV)Qc8DtHF*_a`Vbu_9(gg{>Uy%PYf9yBG(46? zyLH9m`2vI=`>|dg z+FSns_GX+|8d)yrNvzgpt4|>$WHTtxX`p=Zx@CCs_z$F95trFJr)}Q7SIXQE%XqTZ zMILsxlCkiKf&{Z0x#tD-D16ZugwXI>Z3svR2>~PcKp4UG?G=~oSFi(iuA}OE+mxz> zMoQn7aX^5U*l51!A5!Zh`>|%21pFkN9v}jNCzIY5-#o$YL?h21Xfw7JGmn%IGv^2- zqz+*oPtqltXdI4VgPzdxav`B5JjIt9AV@o4`EX1-01Uv!eBhXFNb~x9;ckP150+pa z@KNs$9lQNuiSGw+fFwffVG>VxQ3F-w2yl6aapwU?wi2VxI1t?Q2NssnRIKBU2Xn~4 zAACg#drP$;y+!L5^)j=5G?lWcdu~}lTekbFTVF{30P%&t_luS4PhBYeKj@{;s})_L z+FYudrLf=`nyD-lu+|U#XDa^66h?TDojQ#|r&y}YRjN~O%v2}eRMf-DR_7gc!c?W7 zRTU_oyj{^?KFKXAmc3Q2wK|-Ua#D8Aa?(Sem1&*cr;rb>)|)>_+WyA9B>j(M-Wu6I zCZx<D>J@!bRI?tw+9$|_d3aLX>aT0lk= ziMf!SsOSELlp(MVej?|Qjg`}mib-_)qV~p=$xpRBiWH-QZfy+sB5GmBRO_z<=ithg zcsbw!#?Tg71-Y{TgVbgHmiV;!lNJuS{*2m}vy?rdvs24;&G>0lwv1 zG2d#=ydz5VA&oDf&ZU~pqq^le(9SnEMr#IXK_}rGiD{59J{2zqh?+CiIt95&n5$H( zQt~v(30Eg(CRRckX_SJszn?trB}8{B&vO(()NZ9+-E(zb8nBplZMwAMHr<~la-Fg% zaY477?pxjQyx}9^1e3yGHT987l(e*(@YL#=Xiiod7L~e{6z){S#?{Zvpm*@wluDQ? z@>JqSk&Ft3s25eWCs~rWs}ofA>-6PPY9d|Dh51D~msZI=_9;mPL(jKvBVu(QQMP2S zWNB@MJc-L^PSUG(N@sBisLUZnQ?tbG#%3mbLI-5FmVhT2jX2wRAeRy|&pw><{G!2l z-pWc4rSx?}sLPjI70T^meMwi~ICtH~e8|HCu^hzCLukeZKmZIF(7g=XD7893(waua zHm5DdY6?J34(YY7VOja*(Hr#y$G8}DXId@U zCI|qhK9IPCl?|ml_lg1U3owp1aR8(foWLS|2!)f8=MBaNV5R}X(-6BDBaUDwj`)B> zB*6frK`W4G;@MAQo+zhPW$mnkO?UX2|<^r-l zU`9d?1|g?zemrgS&!5T?==q%0Z8x|ypHQwnG`biKRc*?XwE2vV72%Qti9BTsL2Y2* zWGEa)CYDx_;^ia*#yQW-eKI@xh_laZFHa7&P@r`oZ%Bl(G=^wbLXzG~PN#5^nQ)Af z6phR&M}gt8IVuqW?maoEOlb`hTPaNy)26EP7R_U0cubv5mXP~d=l!(0_Y4dbu=G(Y zY)+{zZ~o_k?fPWfX5`Wf`hhhdwVbR|jLPPv3G99eme$!g#@&O?H=ng)`eT3F`h#w`Q9o_e$V!%4bIz3MWvN|&fyQs}m%2t1c& z$wPp8Vq8owKB*B)9Vb!TxH_KFYEl|of$PeWNCPAxGfk;S>=H@(Kz$8g_d7OilXKmV zI+P-bN~ly;N91jW9B`lf5kMUjrciZRrIXbuhTD~uxLK&oyy?OlYFsJj7Nh6_6i?DF z6WS@LOzHPW+J`sqC~jimmKOY)f9aJx@It^mawWs+BhfKK6uP|S9p`5$(<)*A0C##_ zE+CLXT|%2!9+^VcpYKG$n)Mf}lbY$RmxilOZwR<*j=e0}#uU_|aEW%v$;Q@@*zS1- zHPTi|-R3dac|cy%_;bNOq$bjLaB+@ei*wK_^t`XK0_jA^{o5AZ+awCRZgOeFqyGRC z;}HXIE0$uP(KU}__{B`tbt>bnmcijZ?IBN>K_lj=hlu;cqMo`N)BgZtZ3>>Z5Q)p` zw=pJ!XO%VkS;t)?`;v(t-iQNnU9%N?QrWdsos8S)oZw>$c46}3m*11LHlOYY3~9xJ z2pQysbL4T%FmPayNq|8R2XKNEGYy0XoCD7%FvxTbrU7j^?-xt#eAQR44xH**b2~BP zP1rT1wJh0IPq zcAnVt^o%=E?y0*%)}5%)6fT_1(w{pCM|s(af_b1=FRAsxLjpolO_@{r5SeIa&cp_RHtJkSLH?`X@ z%u;L#I;G)Nc!H+H=}C~1K_FpD1<9oW+!P-$V=dDyJg4a8fiG-IR*gclKQS>qSFTJY z33jVlnB3&uLFE1t2?|!yaE6;o6T(1_wvnn@q{T;6WTXLV#e4d0!DSY6Gwj zION36dtzZZ&IATZ%R;ZHj!dn+lD7RdG{(l}9 z*W7Ja0$XQd)jK^b!iEmw(`>C+Q2e9u5Pb8GIM#h5Jk@JQjp~Mi9lP$kp5b0N+$L*t zL8J5xp|8+DWSXl@RpX)8?Fpt_a%O(otW(gOZdZ(DTnXpM?g_yD$UWmTvg+;E?b_+8fQsJQGERlq zBLoHAicu%9{{T^Qyi?kNLGB{vJ+o4bztcUfI+YbJR`_89;UfuLjNrk~`=TkO#Ngu~ z;10*sM3+EHiCS_2mthVD@oA-G`yfmtKC6fYi;U-u1MR~^ng$<)Mmp^Jf=`G z4$Z}dIIhV+&nE&XklxiEuqt|OZZ*@rgID)@{m~+3t_ityd~%f6x1>u2gOobrK=Zh9j?f*sW*wfGZdzTXxic`J+EJ15xTS3z zll`IhkEY8m+n2MgIt`Z~k|n4VsajOHAC(g9A+4nOaFLAn!9AnrKc~u5R|dXmtqE=T zt<~WLdk(db;)=yV&^$&KtM6%?jD7te> zpP8JdQ(YlW&(1ovsp^c`?q77Q{5dIYI7)fRF`<7N)Sxg4&I!&T{u-8|Tll#rjK*)I zIv=Wf?{%Wj(yKCl;HcpXcuS)VO17m0haYuVLnz7oOCWtIN@d>?b(b6=n zI&(*#c3o{bSWDG{g`;ZoHtOa8Q1VvS5;5z*LtMTD`>hFDL>MSvG#(2N=&?q za;&XM@BL)ruzgTO2J2MYGSvp?%^{ZBMLknZAaD?bs5iHPjj07ahwB;}UnT1o7OK$Y zC^Y5G&Dr+D*H}O!J|lJdTc{s0T9TXEJoyo|saDL#B`I#BL98KQtOCo7JtXMJ z`GuU1E+fsd(B(r{^&;YZmfZJsQtiof;Has&X=66-KCjdWDfDgw%<7WeP5%JXW~ERl z#cr;lY0p1REOJ)+4437?G2bd}vN6sN5$4yg2}{REtj?h6NmFR2e#E`sRJclkl3N}e z@>P#C%FWH6t9Z!4#&vJjX^dBAbmcBGshVq2^$AuF#9pPk;?g#cG`6HT&U+N4KB6@* zM{*QtO&L~**1S3AEjq>1XgJHOB@+^ol}Fm}ww_dxEi%9dABDl`0U_H3r3T8@q@_d^ zWE|(Ry?Fq6;}J=I*3Cj)+trlCs?*=NvS^YtkOwL8-AS5tUs7felm6sfor6Z4x2-A- zt2;2K-lND$)62?MNGJFVO6sQpm7W*y#V?y9GRLF2(~ z^`W2-$p}CnNDGzrV_7M(`Zuy2eWKjW#^n8N(T)}4Oei+5{fkXRtWXG0*%(fY+RfP- zQD#|EtOij)w`tVk*c(Dr+`Bsv24m0NsR&mBTFgJ0;6#o1}ej(Vw2Lc9o%mM(D2&b4yFiFSO0fRZ>7BQTW2p>3j z#ygk>qnzR&jP`-R?Et7J86afim}qN`p`enyfTaY3<+%1AbHs2xIVzcRHshhT*(*}k zy`d;52X^Hs5Rjg7uEQPUk@rx5lBEQbox8jCJdZBf@AZnE_K|h(C3gw_p7ch(nTj)j z%Uu=uXSXJ8DclT$3P{43PIBVY{b%6>jPANMFSLWJ%6Cwgw5^9>R24O2+LLa0Q|NVR zZm~Pzr3#n`SHrcxi3m{xa!F9(QRn+LI$oOB?QxX5E-G@@W!O)(RH?kApAK?xFLbn~ zdn+nV^$yz*LB{0fH)-CQ-a5Ic6g@PtDK6A53iQyFmSs5sI2lrxk?^*J1uaTHg#eS< zK7)E@(3@AL?IxmWWvmkVq+9ojjYDY)s7^WkY{CBkc|&SJJRu1Kfe>vpAz{ThP>x1a z6UjIyA8ZnSsxaA?*l7+e&B<>7f(LB&9R6=X-X8AMl27KqBRD<#eSC+`Ab(jMV&4@z zyZ-%bL$^g^Z_w zLuqUgl#>A#%LQQx3QvehPI26fVHoY7Joe|jXSxHUwf%V2n`=sK#H+`+CmU(`kb*?C zsLJLYQSu0F4j-9LJmZ&FEP7^>yxy8FW}i{HIIvlc9x>`m#Z_0r%@2{ zevnF3QU{zP%o#i<111tv=%{x%$LRqo#7t~^dFBS-ayxlKQ5gEeVuyK{2g)7B3D0P0 z1egVnI6&ZY2N)gTKs_o4&KjZc@d#iHj_^(olmmSP9D-l~piCe#d*l4z9p&B^8NnwW zc<%#m&KwiYL5U^|Lsc~9hpSp~a%rv7jMDCEOZ4fd0Lt4^!Pw{?YHeFqpO}iE=(k0M zezDXSLfWcjr0SJfBIJ|rAnlZ_Qr=Pz92|l;G3V1O(^ScshuD2UO-nl{@X7t- zP9tKHtasxF{p5odC+&~W@kYEYje4ZYZAHk@x9e&~aqsf!3zu56-AiC8Jb%y#t$^Cp z2?;nz$v&Lo0H4H8?DN6(i=*~MYk0pj3V%u}bDQdVdpovO1z@dI*@YKbBAWxRaEN9}Rc z%9gY0<=v{4Bp({)t4vf7g{vi|6udIf^THcS5%f$?zhz|_-qD>J)qbqC0nc-y$oO=W zOb`nF+E@qX5ZVa=Yjx$yG>&;#z<}y|W;LO?`XYbi>y1k>p)%Qi>l zQW*}f2e_C_R+@-eQ5ScFXHA3dqE0hG(ZhDi|2OA42ODIwO+bJiKhT8~2 zen=684EaDifCO?&kR08!e$lw3oCN{g9COIyh~pXaf{YB69C62?`4|n;t6I-kxpY@b zG*xp+{g-3YrlveLPFi+iYHjy?L+7|Qqz{%zJjRz=!ht1uQ9F+v$?pwb4*(4J;Qs(9 zZVUkj)(%198a{A%@_<+nK*TpD9gzT`Le618Ha13p>O%B~TCAN*L(4;U<#tMS^!F;3 zO2B;_c`2njIQ5Nh9IcQ@PV}TJ;XAX&MhSrWkPkGbL(MELrGTV3leiR|Z8;vGh{jPO zYga(HpJ^^i(nHdew$_q2zml1WlgH&wT0tD(x&|9ZczSOs@sZ7havVq~xYv zQO5bHaqiEY9_PeiW;RV;Zfpfh(UQui<`Uv1((`A+ONa#Ta~+VCDJmdxr4XM!0|eAc ze9om;W^}eeP9{N8+b((ZD`&dXoxxm_WOkUFN&*SUEwG}nLX?c`2AO7&Bo?;YWwua+ zw1%4qZKlQ&me7y}5;y~n*p3P{22$IlGbJvv^U41JSecku+PSHfV6FGD_?DuQeFp4s z0LPBqfBHp!&Cn@nN~u=MXnwBw{33nOmCMSKdnpX4JhA1yjQ%JO1E~s{q%>0SW>~0A z)v3y%$~F#Esk(tonr5!kdUE_ETUpzNk2W43~}j*!n!P&dSj*CJeN`la!!`ygJUB*W#->yJ^ui*+y;A2 zWq;{zu=r^~w=If6TZ90Rw&v&XdFOCSm5-^8gvy$=b&5u11!0@=oBJtfEbe8Rg*-U> zDqEexoR@jz5`X+1up`__Cibl+NkLC4gH8+rM?dQmxWM_G4sZvaBb`$8>)Mw@u1mb7 zFqh@3tf+ui7J#6nkT?n8djW{>VL&XNesJXD&(<3bPaMEzT47#YqjySPGPCYU&ReWMRFarz{7ufb+KjPJ zm?84f&z1>{S;?fjzZKUC)7o-%RkA4XbDcq3CZ*4n+)rk0A`4xK!pMn?DL z5aXHiKa8jBW9O$@bOTm8e7f7TbzakUlRq-qn3h)bJj}}}B|algAe5~+HbWJ2^hA+4ft~CZ6pMwHV442$w&ZlF~%|T%twnn zrse8bYPl{wAyubVY|0Ccl&K!$Oj{+{gpta;X~oVA{$w)BhCv24zOdG+^xIreZ8y9d zlINRE3XJDd8ug;>e#f} zrM+IRO4dVdP1OXYYGkDD2$+4h8kkBCqE^Fc9-{}$#wDvQyH@HiN2qN|Dam$aZW`4^ zd=w&DSVkOzFM#tBwb)|BgQ#aEYW6#K4TTKbhr9Z5^`@(hU@+X+bg z?o-T^!V;cTrWSGV7|r$J2$->`SM0pQs5U*%O}SiKNhGC)CW{lf$6zI2nF{#>94oDu{EV^gV1NYm9>OU=J8 zEiSp#I)&v9At+P3fd>RABpmh}UZ7IE4EFFJA+40Wjj8J3~}P;gUaCcJ6QwC$RHBXpl4^TYGX(tT_BV{{UD@I3o!>^Vr9S zcV3p2g+zMhy{>vyyGms$@hTN5#7Z)gjDfvm1DqTrWW~hSwY@nV@J`Ti!9QNnk6)UB zWofOeH+$dLRE57or}HsAJm$vINH|DIKQ)}(G6#)Fk75P$@!5xmN~98g3m~yk=^prGKi(p<$URBp%6TT_a!U%CmN{|9?}<eo+Sc()N{D+AAqh)4d#=m$|Q?3s22Ujq)^g5HPhYf|s2D=W2HV zN5ziNpXxl1X-`yhcGb47m~^sXxr@g7Y|7TAko!!gpG{cWwpO(e+kPrAo$F8uXL(Ts z<{&(#qv`KV)_lbuMrsmwPOR1C9cr(8OM~uI7F^*{lz_B_I_||E5@e)p{{Ux@H%5uO zZ))}9QK;5ym3OA5s*kE>X~!H=*80kntIXd6s3Ga1YiK2zFt`E z{%}`ebE=(~F3(M=ZaTFs$D9grMM~vMIps@H&Po3O>Pej)cJJ!O{{Yf{m1t?3qG{~` z?-0sKuL=NfdZSjEQTSCfw3k8(jv5X&+B=fCy40-8ib5M2=j#6aGp#OL`yX-!*U=HKJZ68pQHnb zVJRr5vHC-M`9S>8;hb|6pmPHQAQC}6u?~i)Wa2KKkvl--!+7H`B= zeX1T}8a{dN9E2Xw7B?#i7(Y1HDXJp`K}b$KvkPy|0UYre4(PILM|C~zR0K*047wy1CjfN{YX1~|whj0kWFPvyXZKA3<>%sW128=M?L%3uP( zSHea??wo!h=04&$CK&Na03e}B!jiO%{Ilwj=sC_Kv78+90ZGn#z(=0B^nrTQ(;f9} zN=vQ!q?DKK>QX?-Ox%(25|sY{X~z6iWBYMM*3G;w4L-kWEH*-@613X7@Hc!0aWcxm z@*AfS`bW}>fM61wfO$zDh;53#|=4qRJrBZF?@@my|<;!|;T)RjIZS zl;!)zBqyhE=f;@^Wj)2^E1uY#IL~t4Jd9ak$~OYyeiM#PAOY@S z$sB!QxK=wH!&XudrwXxvK+gj{f6494{_!X7 zA`$ytx`~{zbh@3QR@Bnv>Q~~NdZy|QaYtzFQa5)6=Ymu7LuwvzCc1vF3!dcH3c4Lg z4Qh0Mao4^Vv{u8N=9WY&9di;!pH~1 zT0z2wdl8-wlCXTEqWMbJ3t(et>^%JQ>-B&SC@DZBTapj4Kq#j{^7Z1K>((ePj+B8$mME6N>V;*AV6Y42N?k4v=t>l z9Hhj)wmp^IW?bwdYIee;+sJTbCb3(WLyG#LwK$>lAa;*(f7uDuypw5L0>_>z{Ib>Z zlm7s`X(Rc-LLdq3Ae5;;i6nhQNvprv%hpAb9+{ibS^AW;x;Lr%G~B%KBew}{Wk=_P z_K5p&TQ@DKIOQ(qx2kk`q>`U^o|Ig>nFq}(NX!R~3J%lX2OYaX+k=CVj`@HCv={{- zdBOmW@CyUh5$+)>1O?c8Ag<)xy(+zJ%sb*L)VZhRgCzbIUqe$UBjvrvf1FKvbgRw0 z?BvUTynV$4qz)359E5}4%W?Ufc|~0N6K>~|SJevz#|cEtr82a_Jd#><#$7*f4R0^q7(v#f{gsO4GobV-rh7|$pXsxAPrQ6fD&F3UryRV7A+x3Km<;g`l zfZUXd3Wi6!N`~7U<9T&on8!khMx%8Pblkv|(R8kx{S2n0C=@EMI@>c z^D6fpU|^%*6)R$31G{eDb)RWOXUpN7$sU3`7J}7pT~)gw{5LA-HR?w0F)sUx6D)y_ z15f2Zb_ke2@{cX*lXdz%gQ=U#Oua6LCYA@`MM7N&!Sn&b(LXdtsd})MB`DXSCRzFo zO{u3=oRWqe{{UB+N%cn6g=5tK`9&EO%Wu^$S%wCx*~_POcyjio`Gu2w2`5Tht#?3vPPEved=A6^ARef~i_+aB+k< zekYavmV&X7oCvWVl6{w!9-T>n$L}l$^Y*tfNh|!h9AQX@G{=X$is*+5o~5jerD=pz+KEHPMe`{{T*w5*VoJ zFTd(FZ6|w*s3^))Qog{VQIZKCCl;~tiHU64_O+KuX5X|enpFyv$oM2Fl5NYdlYld^ z0V(nw@?+Tv1GEjv$WGyt*k`;0kc0w&P^^rTk_i0-7Wha64o4seXj@|>y?{ACC?#k~ z&hP+9BPSUHxqz&{ZG|SByGu)}3v7Gib!wENUE75vl`_KAkC@z$ex%0b_Da@Ts`Q0T zltY`HrB`aQD{Tj`Q>lD$<&PUbc+y_mTAs^qNoiRDQxo->ym{db${-)7#~D|#c5&CV zI`x$y&5~D0Qcg}X29TJlBF|lN)JG(lKjC>sZzwcKCK@}^(3xV<}RAGsFq2Yry@>Z zuZ;V<=yMx=NOgse?+EcHu9SaFEemE^V414Ir)~#8#`MWB*4@Rizy;ZsQV9H9p7H0{ z^;Oh0pHk^gHILa6w(Cu&%mqtKIvWSi3Q;-!(e!}z>GD*``TNeuskYkWX5LKGs4MtY zDL*f@?)`$CL;nCTiaL5nTbiD?Wv%Me*807ohbYyBIJ~dMVQE8dC=Y}eS`EAp_Q4U` zwCAQLFKdyP3u|Q*`a9AM`I&XMF@mG!JYe@dumpJTGMgt{SgD<{Q7KlJ%WJNm&A8;XGVjxSn!RhMdIKv{iSep(9z?jr%H5f4 zb}i3L4t5MwE|Y2vLrHZ$*3`;d1?j6=tuItF`t!DjOU*^amm&1rqhM z?nNOs_1Q$K7Y0-ARVE+YJx0Zx$ILQRG2IE{7&-X9vCAm*!w#j%H(g=T#`c$k_Qo;# zzY#{aUV7|uTVPcWRwd}Sno<(ZQzFGt8*wqas7g=zsSaU zBiGMZl)MQ(psuwfay{YnOn>&o9Kd}E_^omK)N|Y75K`g~;#x=EC?;FlU)I#G16=1F z`MXJwSN{N!j@o^v{ca)=K|J?#POBA`!?)FsdX@8I|>fA+Kp&*Xgwr7Bn9Nk2eijnxJar``d! z&b@R<9efZVS>Aww09z>-I$?X)sK(?++rfD*Ey}whcO<;i3gp-e~ zl6U|%l26_@=AU~#y1dj-g~({VUXv>50L)j`-6^nqiA(AZFVFC##hnfDsh-&#Xt^79 zM@qE%-Lp{fP(<9@j#XzH^ioQ~8A`oLZBYs}BUZIHSgVHQ)a%x>bks`l7dlIy_=)4E{>AM>s0Q8C?PQ=*8d%)qwGK(ziunA#Bfb(6NB6$*E3}{4bJB*H zyv0thZcg7*tRx>E<(l!B-SU)eC}~4JOW((=1wLsXPTJY76&5A*vra3u=9K7Z+JiF6 zZb_wY0Qi$i!)O2yPF0XI#94n%KFG@g*riEVdWD%)&s`&X^hr6l8K%pEP7~s{g}iVE zazO3GSPdSFN1@XtsB|iHoiag$7TJ}NmqSwR`QS2vu_^D{9LITpHsvWwP@p&n3BmK= zKzVkxnQPdz2}@GWpvh6Fa!CzK)8rXL3^qFwFfvaZlgW=@C;gyF_=m)-cfr8V+BpVx z-~|vn;K!L=mak1q1Y5I|*;n^rPEJU{iE23@U7FSxh<`%bHIowEV z!zxkrR!5|6W`C@p2UNb(ePh?jX`4#NZOuKio+@c_@-r$m3Fc1(Oib~FANn@JM_8OpE+F?4re_H^`&w5sN`^xlI~ zmv8q{P00S)tt*_T4XF!TXK)x&@Hp=f_g}rNH>G*$%YUY8dQ(p5F9jxIuH=&nt4}C^ zH-slGGH?zL#If8hJ)<`7s}ZkPI%J;EdwB`fyWX2kzUPpar7XD?#PsVj>IC@H&mmp} zrx?RwPB^Ug1CgVAGF8AOAmETYN2yb<)$8>Mnx$r`H9tL2c~4EhGU}XiVbV{=;*@?f z&vHg1XlM=5pcW;`EqUt|kz2k^J-SJGiw<5KQjBx1>-RM|5OO=h$b!2oBpBmS%DIOt=K?N)_k_Xl=2cvyxZ(cfYvh@aPW5ud2L{sZYC*t?%U)(-b=vB2Yf#|Ux zJhchw`mD#i&P_Qo>RL+yZXSF#no1G+AqgL07Deo4*5_$gb=%YZUS~3u<`r>LLf7z# z)&fy7+I>{EOKbUixq!Bil9Pkq9Q|V%)Em-^rnY5wP_8F-Qti5I#Zq|g0G8Tls3d3e zD`*4eL}Z~~2mtm2x#lak+U?XccGjOrbn9!*rB&PA=BFy{wCBdfIi&*97CejZ1mm1- zWm)e8msm`uztuEj*`YhA^YdwyzBRhyxF;l#f>P&;J2v7TnI4-PXsIXrNcD=ZZ~#aL zAa*gkdY#qtsh1TF&!NAIKTRldmbC?xBMrEjW|D{Ih#l21_*%g{?I;JdX%|Y0$x+Gk zKCn|^$x4(mJ3vaY++=!2MIJWv8#o@q)$YEVjBclS!d7NCT80TKQdFSp2^{4~Qj!Pcz%gB2M09PhoihX;CMoY^jjG;|7THiZ0pz5d@DF(U6sStIH7?}3l9eS$QdE^7Eh+>MK}q0(2?QPp zF$i4MX^xZiVqc~{pk7VGqdI_^a3?`@60jlG3r3oF^m=q>=$tCV+G_ z_k{&L;3p@t0`2{Q)o1JnmJ;2`ZqCT^d#SRA!2bZiV&<;-x~(qUsL#<7%IavAbKFqk zH>FbrJ6YU2;5ej{j&|n}K^*{G3buN}(%O#fCStgXdic*14XL60)FbFI_M3BJ9Qcxz zp<|BavJ?;M1O_ETrqOhVO`DaSn|M=gYGc!t8Rq~dV5f8QQw!(uxUlP__REGbo}Dea zoexaqZX2PbBIms(oxCgL_C)OQ4k3*9{lf)@6Xk|PEohfr?>k7*sUq9SxgYndi7H7^ zX53-KnUrB1<@Y=pbng5?$H?KeM!}z+l$4WtdZhfcq^!G2b>+OEmRUj)r7OgDgr%gU zWk;|8XS@cZ>TRFttd*~zQtNQPsP%+5R|yJ9YTJ=hb2U}1NgO4_C5cYsObWddexb2A&f(cpOj3)smmbhjt0I)hDZ!M3v}L%B8#0HrObSez!6q%2IlDL>Z^l6xtYoD{SFBtNS*#7{^y~z#gOS5`#7P5pA3Y)4D zoF7a$ynW-;oZlm_a!GZ>d$rqS%}TA3tQE{t=G#yJdiZr0PthmRBl8O0Utrsvy1;i=0IqrotN1R0;Yd(lQsa-qDYE>>xGZlR}nq5KEr5RG` zk8NsbCm+J3vgz^(ZE?J>VE&HkTe{HH!rQZMu_sEtWz?ksN}FtWQgxH)jfzaP!6$~q zyT<{A=WtXh)T+fYc8^((5b~c40f0CabadM5Rpn_A3022Ym7-b11BO6B;hi!)~NFHJU zAaRiZzcgv?ruvYyx?0nPYIW~Pt5sxXXPKnRN>hLjJ2K#LK$7B;hSCz+vUw*RjBYK% z)I<~Z!?ojduO#Xm&$`}p*Kzfin@{<`Y01xRyP{zxL#D*7gec)t7lH8{=lc?yQ~cw1 z^!e>h(d}-zsg_N}LYuK`)o0T$E&EnvO;g`_L?sP3Hri59wUP(#8%lG5xRL>+b%GXB zMN^fHwG1-2c?z)oG{{W_5j-(%5l5*+e?qa01Cs3}1;*N`Of*`Ob-)yqKD?zXBhP6$$DSh>v@B{ht3;NtC=BeC zlb32wX5?f!lztt=O@Hpn)4YP{{X#I989$_;Lg?UOWq#f*xGmCeqwXq z%kLf@q10WqwECo~QBtPgVXADQQi*WQ%{bh%D#`Ax?_{4qJs_Ibw948h`kkcJCLIfs zx$KI&G$z6dR2h_>lT(Y&{c@dB$2i!AyGLrza8i1g)p-vYUh_F;T9t;A>4Q|3Q68r) zBcGUssFe0Cy>QT%rIv;y(CvQIWgy@LJ4_EWocWy7z{hS$@{cmKS8sL6Y|c93lP`Pe zl}?u0akwgGnNn(D1S{9WoOF@p1$xt042_emlc}1V4O5u2t%+HJP6o$nbMmNP$Ojx~ zljNPzo@#ZV<@IRHQe@{*Ay$`hs)Zh)qyz3XDRq|^e2iqJD@aPxJGP~#v5Ye3wdpmj zeoTeKD8$T#)u$CIY}}&wFEuYwm(Jg`^11E_NfD4~Rc^NZGJ43nr`?;mEhj}Tes#p` zT|u(m`APJEa0|^~uN((b@<-u-?#sM&A5UjwDzt`Ko~g)8Q))E1g`JY~N^MAShYCqM zcjSc+$WljfA3K&UQlDk(HNRKCZTfXiN{ezZ?P{Amz;adAo0$S(rJ(0>NDIgy{RrUw zB|9YA7VN~Ue(vk8c#f^K^01WbNmtJZNcu$udqK3iXGyxTzN!BJvlT5*xGD;`>53=` zY58fv;;5s@1Uz1B{{Xstpe}xo)2B@n^3s!(?Ge*C`djkF`8U6!@^cM5)5`G@;uW-@ zwzTXZr@lOg5!9@7TheWJdg>iI*eOznCRUP(Pv+L#MLzVS*Y>h>#qQSIE{medZAX2- zQFCaQ3RdMRRqSqQMDw)e1pZu{#jR*(v=^oQag$}bW}r&ib=9PoXtyfUAo3J(kcX5@ zFLRu2StNH#dq6U4*}u^w>E8Z?Qvg}~QuS(!NzeCY0RB;mRsED58r0q{$l13IBPSs; zHx$80`gps{OXi+K%_d>D5aJ$ATUuB6(~N}=%B0|fk>w5t0H^|RGk`Mz3X$xI=_#i- zyqn!%o&%Q(NBA-i^N#rTN_2Jx!*1N_A3KTP{{WUH#YVSFq&Y0rR;wo@}V+RuaM-&p}o>dNJv-WN=U{aA`G{(kE0e>mn=%;$VcKX+>>A*`-Fce_G#YC zzKLXVwCJmI0C`MY6$c0Z0B(sRTCY;AsTI`j3Y!$^MuuFPnaW#0{{XC5_z*sDE!&>o zyeX|!t$UJ}T&Jv%CaH6XoNY(YIN2%vU^JyKppK5IVJ1_jyH#WkJ>d^c{-M_ne({}K zy*2dxX|$1U=w*c<;KtV(wq-)oj^7bUSM!aAJA}HDl`qL%#3$WphMkz1bqQ@K-lZ>u zqi3m#I+FDEX>A7S@@>jXq+p^_T`eb%l5j+I8>`ThSN)2b%`DXledFAO(oELeaG-@N zehB$uJvw~ctxi#?>U_+!<1T`vy)Lg2v(GpqBfMg|hoyRLs&b~EsCG3P<7t!-%I9R0 zlc4M~te?`84=VHo})> zv@3@ywYFN=Jwj!hc#-ld5u~nOn)RZ?ZOP7>I*+)h;UPp@H?zODsfq^}ZHJyp<|Xm< zbbTX2>IYk$aCF?YHLiUy(JNHuvX<*~hbEbonA$VFPBtBFBjltuc+SuuCy0{1XAph% z<)uhAPbsIZ73VX;#iXR|KDlM`pnhZd z#L+oRfk{gI6{sgC;b^b)jb*A`OXx<9Fyzjr>b18zm!>!V?lb;%>>#fv1*^%bhmt3OGK3P9l)Xp>PZ?xQT<2R}I!AacW zQYRWp&!Hqs9#7Bj6)e<%)X!{giCexTuAA5wP2)1yAu}^-ZjUCkpW!FOc#Q4fwv+P_ z5H&~I8P*oR$<-;ga^AHlGOQ_cvesmq;l#`T02IvND|I6PEof>W8NB2af-F{>y|_k2#)8!Dq;-c^vJGJ)L_P zAQYhriL4SlWi5QGa*_!uD&UXAdjazLKs^k!!%1zV2HI^Y46@r{C}k-azytgt;NlK= zfKFf%vx5vwJe;V)9iSRUInI3G9GE2Y#4i4D4Fd@S(iSoa7=TYCLxJN00gAwak>>=Y z2pkVM0IZ(I5eYu9lu7Lk%7<(~c84RFXzvamg+u2JM|}K*0SB0B{a~MzEN6%Y0l>(I zftUo2(38M`Teh4+CqJYta{%&S2pmDr$`~;OW4r^0cq;D<$sM4iliY{}`HUV9A1FtT z(4Yc`8TrG!pn3U0Fbz-jW912C?cf4OV0#!uWMT%)jlQrE7usW?j_XfNHA(s_0d?C6 z)!Z^^&&1;`Hbl#5^#y`gk5%XZkwgn1rCu*nVp|om?;vi zG@`IU;N<{}dFK)HD^hk@`T2*b%_*r>xbJ}4fGR^pM4>0=gO9WapBu}f{XkxubxWpK zZ@h-tm$)V6CRU|v0$yx;v)TF~(;7BAvXf89OtU*G>x|4xI38uj{{Y#n5Ky2`%s_n{ z>%UMsebd&H&gzx*P|TdWC`^pAGXOnQnOc8$FD>MyD2`9$NLtPkoS&cVY}M@DDVLRPDca1tK$1dG+CUjOILXN*$9Gveht^$vsMG5@uY6Be9;UFS zFIpgJF7boHjR z-7(YI0>p%<@n$Am&xt)Uq@+18=k}GfeG(EpqeJ^Mx_y(;PMc|WB-Do6mr&5n!BTZe z_|Yt}nK^!W!dh1HG5DQd$|b{Yp-Ln#b_qGoat|Q>gg`k!7Su2TI}AoQf7?!7w!KE! zV&kq*9I3DwZmC0I?<(%zLcipm68HVucx^eHq!l4(S;iI*!X&RveOze| zQ&dwkVb;?xS(jliROmBL13M_93BVZI>P864IQ7JB8_v?VFG>vct#(mmYSfCnyOL9K zGYKUV4Xj|HM1Bc^&CMCfN)WN$4rt=6S2iMPz%p>j*RvF060cP>rE zB=F*Lr2Jeu-be@INKfvI*>43wX&Xk+pm!V``VPVqo0JI(J+Z*a{URcC7uQ`gs%w3A zh3W3}y-T7?1Kdl`#)+)5AWjS-$E}NE};UxHqODNkq%YJxM8F3&2O4>k-TiK=7TfITqZs~@g zRM5Nf(Ufeq`>V^fiedmqyqxpnAw?;3)E3qGj7_P4g3^PHCDarUrqnVPliehG5yViA zwo)!$g}U3S&S|ool|{8yZnZ%K6twj=Wgak=Ryk999C3wu_-ch0;;@38DJdfyg&scf z7=58y7M*$NlH!u5$oSVCtl7CJ#H9GEb%d2X$WIw7mn%j)Z`;Qay)@qax3xmYxAhLx zeJ@e&N^?~SH3O9=c=(%EeA2DJ`Vo2B@ zm!;ifeKWO66)iNkR_cPEousG%DKrW0{Ib%7mE(w|*4>p~oEa{%{!GyFqTBP^#S%jxE}yb=F;( zc%)&r8EpH!x-rqF!sX5Ich%bO)E(F z9i1s(h@RqEw^i_$8z(xvXRZ{=nnju=O?Gt!Elo~tRIGw_^7Dxttd0s<1bBxWgoP+; zinXImv#sep5VPi=nXKw8vq_?`IINm#e!)r@Q9B*=892nU&`fWa+Mv$jb>CH*V zNi@qc(rhDYT4Asf+aWmkKuQoXjy93y8t&0UH4S9CW~5v9ItHK7Wp10Wdsk=E7Ogey^OR9OfFMHXM%7^b73-nO~)&mo& z)6*lX)NAqGsr{*OyKXIGlkUcpw522aCTWBB#Cx~Yn~&-anpUOOgeq3IQ>D5S*d_W* z%D^8*%eNRUN_M8tPL@6OQGMCz+DxsrbWF^UH@`5K7sq%Kuc zY`BJ=Nj;R8lF&&Ug{dkWh{J74Y`(N<1#3mMs#%%pU9HNbdEu#T~hSqhpAIbLkX=@SCzR)nR^5>>u#4k7Y_|Sm8Doiu4Ft76TK>x*?X6! zJ$g*NTK2Uh47Evf4D6S>s4tZ;%~6ynoTX^PQz=Oy4~3350Ui~Fb65IYx~aMysnsW^ zwC=AmnGHL!zTF9*Y*)SOo+bt5U3bw>|20&}@LN56SnR6e6^sxGPNebn`{eOglw z{=}+G%aJoon<)vKrB!7VG8$3Zho#l=3 z%7gTJ;x_@~Q)f;ac_iU!Y$-DhU=<-G1rXQWbaX>T>ZaXd;kKTZrD`3$D&tZU4h^l; zrL(;vPw{;E7yuhz3eNmPHtK2KKG%_QR_6C! zk&zegM*jdvS_nU*w-T!NzM9K66HBWl4oz0*OpN~OpwI=$`BeNVOv6CDl>ZZ|`Zu_FF&CImh)a!;oqE?|Ul_zovHz#t?GC*nMr~svK4=^7-bPI;PYSkI7 z+coNqBBL%xfjdu{T(j-@f|VqN4&Fp|i79IPO?uF^r38@G&)V!D3^d7DI z7gcO3ods?ZnOT<*S1B{!`j^v|-8^%JWO_hvv+Y^yIrXRi0KdvxNl5$*Tk>fC02CO1 z{{VG&toF{qe^S8n@h$l!fAR>1_`%760Wtpo`>UO3t3Up6DIL76sU!aY$rx6+_0_N4 zMCtN0+fnBzlT_b-W~1Us(VLZ+arT0O2~rh;Fyiu&tvUl^zB@@${#pwzBMvF|zdemXeR?#l20CT62sBl6{v zW}nDvZ%`IJsaBapwIlX|s&$En7qJY;Ng-2H3Rx!sA*NJw$101z={H$sHR8^@byddP zMK-N>R2!m)5~QgVhLF<|tJp?z;Au|n@>8lmGE3WfC4@GV%b{3CHY1+HA~l|+Os>B# zX)alysbybOwXcp#Z9cLTeqJMJ$Id;aU-s={pK`Tp+!C{MmZZX|^*?rWJh>_5FqMXv zjDS=g1|w<*Po4KC$9;N`Ii!npLh!mtjcL``%TG ztHo+UTcuT-T`pmG9m*FmD(^fW3O2r_*z#J9VO&-fODUJQsZ%tCxRh=Uc+IJ_xG~tJ zN=m+4K^>!6TCAt3-j!UoFO{jfrO9v1TK5W;*xw^rWG+r@l>Yz|bBvc0^hxYsuBNp6 z<-gPpf!^X|%1AD&Ub5;LNC;Z0RPgk=RH68HOw-y4#z88_awFQ-C#$wJ%$~U0Gzpro z?3r^Tbjird70=Dl6nsGYEs=*Fm2`NaqB6EuFqHgiOk>pAZ0}UPGp^UXCzVLO7;pA{ zT54G!zeT#~Pb7Q8Y3?@6G~3A>ZfR-93yiZwwOVsgsFSqYs-Bt^`)W+4mv~Wg;jU7l zv=K2b6iISYU?om4=*m`tp`FNB0h(ENZMl5g6#K%}t3LDMtVvA02W#Fa-1ZN z$poK-;H2az1p^T8+Mm-T*0kvKzN^{vrx$VQyK@grH?Sqi%1$>-BxHi3(MO7r<~%?F zBxiqAI%v0PmjvDGqc>fDOKX*9RWm>RA4^N5)ZZhQX6cTFODV!TxRBF_pN<68E2^mm zS1OyUN2~J4N`hu*C{-yXtps63Y&9_I4s(J50D^vyA3M_tN?BIYl@EuJ&&(0%2+l{S zjMuf;+BDZzE3$G;q##n}920UR zXFGk>@V3Tz89+*~cp@hTm3wI>WtxxZI#qA0Fe)hqtq4AhwoOwg}MF(%WgQTzwqN4vPJp2%>V_VSDeRIP5N zI#;*d)c%!j^=dws$)rq8*%h_9S8|lgd~c@Ah4|)NCyxv)mXbFB;K)rU1uM6ge0fH7 zr`p-8Iz>6}nqR3G1+<_@T4}WhT4~&$%-Q%={or6M>q&jG)&*1D9eGsvL)vA6Q&JGr&@QjiBrm`+B1IaR_cjR_xS__ zJcShkt>Fk!Jd&>QR641v_g1u3S-5XXRlaMjw4*swrqNiZzdp0cc4;!{N*!~L#!?Td zF^5vBbvhMEnzbgUHBX<(({{U;!Cr}B(5cJX<4V3}QOW3eGr?HIRO}(?awL)@QTU7MI+qtEi7*xe6*C}%; z&vHTW8d3Aw5|Q)gjWed6(te_>%3`gX>T;W@w!7#O^HkfmP)rw?#x|+(@vr{?TjGJ~ z9^B-=LY+*@?zg??r+q<~IBHgH!#`}zEc5uV6)Xt=0*!$=IBif8SoM?a_}1mQRjy25 z`XO~bkPUi+?=c{MHA`*(0ITeusK*+gR63RFKR{3}4Ik^a+tuqvVc>)&a$-(m zt11*h0r@F_UQp*7+fs%BB`DxTPu4D*^;<(w%;o25voS)NAV^$PX@NUQp5Oqc=FySK z{EFCfo&;)Vl%ndCp@ke1&T#=@c5k+8TiZ=E=_E(Vl$DRM?)p7MvuNmA40{6FxG z;cfeAG+vzLrMjTU0P~`Cx{z(L2m=G4Vef2@?o7QwHZv4_I z`8mmed`Y=`X>v1JCnT3--UUZKWUIVJ?Lf0VnAKH1H>cXet8@bDh8cR@O+|*2=YYQn z!aH|xpR7Y@Ac5r*2FTRwGfM50wC0-Y4AtPvrCZT8Y|K*KXy6f@>sm=U@>FZ5f#W4b zUU}#F!$IQ!kRk1ZoaFpGkFV(zai_d;vOr!=cn9)><>n8RW;%1EnwzWDrs!H>VOB0_ z?bs-$$gSic`n={gHlBG>hyyV>bQ9R~sJ8?1)vlnfW^HP430kPsr6ziy=NTw*)c)m; ze8F(}aCv}&I(JRf3Z3mqYfBlguIx<0S4k8v6*K94a+S1N!kfo^!?5Qda~IvxMw;sd zou|@OUZZRBR}Q01q$&BIab(QXWz;a4Ma{RLcyI)TIKBZY3HbK-ip;cQr`;dW8b9n! zDbxC80hbaQer==|Cnqt^ADCWUaO7udm9%*Q+BQmpI5_0`Kp>2B4j;(C2LlEOAmBhF zz`*l>e!Zc`kqthu0RA{YbC?+%!N`Cda}CMNJC5+uGn2#s8P9lh0l>sBkRkvp(i@x~ zSaQ3<5D2RrW(LxEf^bMC8l%a?2R={h1Ykgdp^*T$2x^Iddt`R+4oAc}96&KD&n6#% z#vyG;Rsevbx4)DDA_gV8_KbJ6xBzA-{Jm8*S8VSrhCKwOIK5*q{%hCV?-!OP1IV0)i0C|`r@Z=nDPiP3& z?G;UR9TaMjx5CpjBxI8R0E7r8Ti+%9LULQ$!Vp2* z>9mN^J$?06Sm|F)Bx<&0Evc)D;Gb1KN!9Q0Wm1;%G#?L)L%~Y zXYK1wxg}eqzJGI1xR`QvnNyNfW%js*BP9Gu+*8279Oqwk1=P;2^)Yp^b?TMC+|uM* zQ&ib0Mg+X2J*5z(C6<9WDo_PVQBu{lAgF|ZEVv|>PX5zff3&rNnN`-EMx44V`lQox zRhdbtHk(YVD#Cr`jfqc&rt%h22gZPPgf`XH9RKH@(v;&0sj&WIZPO0WHk5q>QE3 z$jW?)_)o&34sj}{7SM6fQl$)(tAd}G{61KRI)tq|af6-VSkBTp&&nMSo{dSebyK0v zr4c79RT8%iqd470iBo8&z@L&){lmc|^4p2rha1iT@e}12qtpJe+nV>Klnqn16x(vO zsdX*cK1-4lXgg+Q)<+pbp+h8mLu!W#5fQzw+92KCqjZgJqEpK279`-5n{hixT_$Xl zoTP$OQ2A?U{GrDW(ky!{x~XGEHAVd&yz1WVXWwt6OE~+<4AW}B1hVRuNC6I~46OeE z5NMnLVhg9|AOb;A+6eA5#($hu&$e$%SaBM2t}>FyLf%{UrA}bCoTuWLl{g&a0XOr; z1X&f;d|MU`zd3bY_Y|cTlOS6Y6LZQ9p|!2R8%YEbR-!^eQ=F9~BxJ;5>+YE^tz8vg zwF`2cP%m4;Qn=Gq87C#(X)@0t$B09NdRCcry_}2ycJZ{}G-t8vs5dHV1Wd8tZwJX0F!SauxD#ovA-4eo;)cO0aSNbV5!!xYZ8U@y$ zmU$qxf}b^KKR~FGWzk<=+6^ibcI}0&vMgm(`I(Dmr0D$3JD26h$OR@~e|zZ|KD*UF z(;u=^ORtHAh1Bdy%&jJATemGCgE1fyvU&KM_f>twO>VF#mX}c-80s9|n_s0|a!I4T zTc%IbCdAWEOjFb!{o9EpIm1pjw0{wbueP=R+@gCrZoLMYeVLm5$EYpL%F2Rw%E%#^ zSKNI0W5r-J2dkv{MG;HRJCDny9vLMH3uqi5g%t33H~?`cKRJbU$F9;UO=3h{0sgbmj%Z;$dBk-INoRpBNed+C+9f(@9l~NwhXM5kw4d{jnERsLtyz`&rJ-?1IVDx2&OISLEa)L@Of;n- zY5hm?kE7n7Zc%yYMx5QrS#ec+PL(>Yf7&Whz3D$NprHYn)F$NQQ8hh1Fw+vU&8f%U zaX|=aqyV)ntG~b#l1~`hk2u!aM9S-mtn1ath048lG}DykCK?EGoo-9-RGURS?OVIu zn{apB`cQM>2+Z&6Sl*O@ZZ2iEq-W+BO--`Th-Rch!;eXxMiTM@kX8IDQ1g!c!A3>L zZd7QGx*BGsAu}Y841u{WvZR8XcEDHifYx0;I^91-Df*RPluW$M+GlU-j>1%?#Pf=q zKD{7@>sgl&`l#!57h7!_{M`8#B5$IzhQ$af#2muMoM>rS=AaVB)8naLB z^v~!dzMs?(ROKdp+#|O{TKO^Mo-hiOX_ub`F7C7r&^p{R$*s)mrAI*vZvqh`3aX=!dARtC|Z=V2vW$) zsyPXz~Ao|g``;VawnyE|f^jI}7(o0) zvaFzSu}y=B$tg3)pJT^Mb4}%H{oKo58?E_-sXvr~*q%rSzjy}GC^U<4gCjwZZcbDy zcxA2o8&S_G1mOw6BWig0N2nBYyCjp}p703W=kw>t#}vZe2?AWVybOS>fN|t;%m-s= zDNw=5@*Z)HUbZ!zs8-a~t9x7Y`pp`n%*3TZgt)`F^C(clNbiw@#z6-LG3(b^?A zrLn1XQ*B7qW>YIIR-I4&YjxKFC}r7@Hp{Pq6XNU&+rd16p0hIB;S&tH7Tc&pp+My> zqXXgx@Z*qp?*T|Xc=Q_QOw+&9n<2+0EGneJ8A>MI3wD~~&%()YjJkrLaI6J{kPhxu z5WB*0DgdMBA5ItTgKO$dwNSHf8cS6wRZ3auNrqfXRG^1J0mNi{sYg*#q`?!0Q4PkQ0dndv!m21r7EQ?%!4%(CKghmgN`IZBhChaK@5 zB)7BIqd8n9y#lw6IRVLuw=w?!dE?9n&zVlsg`rY)y|1lw%h7(I$=K6kO1$mb)ro8^3mzjb zvqYyb{L^JUiW1zy_YTgjIq%Fh_K?x7Yiq0f%GI=O`c1z}rOMKnM5Q)G5|Zd~auV)1 zqSHwU3R0FyAaj8lV*SX4bM(r!sKROQ?83Y;~GRjEu8Pm`O9R(qYOF}Zz~8vAipx~0D;msLx~ zn$;-@%DdaS-BV%JOeY!qz6+BB9*Ico1XnMJ;to>c!2{PAi39BXx?8k*#nRfm%l;cq zR=;MfsaP1BVcC9uU%e0?L5e6TTGjAi5)^U>1PqhvM`+O!DRV^nfT&1KAuL(?$58#D zOMO8_sSB+VDp?hiLSB*l8tJ-T{rqZu@3VKmUtEIyI zKC?@4UMILtlppnpHxztEmXqQ#wFg_sD{ai`hV6b}*h%+cpTD^ToQmw$v!G6~0sjFIr~4XBh1y*%J; zI1Q%+oSfw380j-A)WBuQ*(Mb0B@Qx50=zdcLY9(7QmhrOfGNlyw zV-rmQ`I0w*+#D6eCbXq&NxJNuz4uV8(rMX9Nllshak`vJgyWbq$N zQ|X#vg}EfsR_@ZIp%_V0fXYB80CVa<^@{fDPoq5@>iHK%)1lK;yJuFYFF1<5F$dk- zsXP=wYIS&heB|oua9^sa0D6DPKPxXhha-<){xIgYTlhrrAubuwi?J3V)2PnmJdZpARD}?39^SP2VCs_1r|N?`e`MZNTZJlliQ0t*S#wRe zl0w*Ugzrm;T1Y(kC~`KEA3P-s3EFp$JP<@Q@8IrN9l7lvK~+y@mqqnJ;hWGZ3t2oF zS&6nk`%}U^2mP3R55D350P{TJJpTZ9a8yA50PWBeCIXKmJj1>qHlz>;=LGW?+b!(D z=!Jy>G;we6IC9{qpZ@?Y9;G|k)6so6>}Npe>m!hO0y00BF+=9~N6Z%2K7EepH}gBKKsvAL$xR8&T7(jI@pvrzAX6_TEYUao%gAE|Zxd zNa@Q?`0c)g%7^m?C+QzL?l#DK33a6)=aj3D<^lag0K<;Bh9%kYR=yIHd}=>r{{X^1 zkZJuebk|EzT|1}kG?!T9Evr&Qs2}%>WX5$wwym3Oq_J*W^txkd8&a7$7Nx>Rpa@9B zYti$0Z0H`hUTZ^EmX6+ag(!`tPJ=Sy2su2cBOab{yX;?PA6YlKORLhh?b&7H_tol) zGPuu~Y!x~&>9;X`B&liJ;wb08#9(-B0kk%s(gLV7``E2;I8gSgYlSLDXbwFoZ_`&a zPdumIA1$RnQiIQwN_{x?Wb}ilEweQ@Va;BXtz?O-nxfY)e)NK$eL z#t$PNkcv_lxFiFd@I23R{G*T_dGm@0000000e}aPgg`z}p+F3C%prjYo@0$9ob%cP zlOyK{oWn9caQ@>E3@}rVI123nJirxq;v4jbk;F3`z#uUQ4>ANJpR_J~`#=S9L<8LU zLx==_ga83NzyqE!4TmcOj$woh_JHhpXE5bs7$z0~>>+mt00;&iM=(>zXa}?uz!Fa< z6#$2@sJ5syd;CxVlK0D?~j00aX7^s6v)lf*D^ zGY037fS-V_}31CK}nx6BAi0Hy&aI1uB&fN1pfhbMqNL^SevhYm3S?03&USnEA0 zD>lQD@37m9Je`g-;zE$L`V^iB`iSfmA6&x%OcQaf=elX>&ZRbI>RJh>6Eh^`PdjVM z6%*=Dhs=9a9U#(+UDVB5`denvoowVTLWL_Xq4z^z#$-Mr&#W~`2b^{>Hw|#ER#ny& zEcC3qjITSJQz$7`d*ovVG~TUrZ_{?OOS}Cy(keox6g~=tEtJSkAm=Jp_KJ6Zco^L1 zBn~|wDIs2<@-hhrp7B*$x~1%0v#MeF{T|iX`a{KJqMdL{3ARTZC&y=M)8ukcxQo|^ zvU{v+VaI=C+Eg2@mb*DeuCS7{`h-lDmVSU{FFR)96_cI2LC;|gQbMu6D!{Zw z>C*>Mns>ZjdLw#M89>UW9HPFtfBmWwq<)HxX5&j`#WgU6HsT3NkfDN;=t0IK>OCZ+ z1f@zy^a>zHg>%@JJ?4#2!Qg=xt$q7HIzZGGo@%3^_WdpQ zlB`ToJW5-QsGROkfS`hV@T3tCW2sMM9pPw6&0PIB+zwsRO&1<^-KiJ4ZH}A0uR3{j`?ayu6})Wfv#0m9>Pi&-GGW31E+dEgZ^+9=dC`{ zo|*N-r@cY3%Io&^a=A*Hr^`xJ=-%+l&xEUDQtJy+Q^-oUD`^CbWQeI}l+TNl6cnXf zQJitKkBLdgY}j; zE*F`1asL2V%9~%&MimoY^<64zbEue8+2nHb`EhPdkrKI$v zkp|KC+xH(l$8kT$bzk>&o#**WQnHqKbCy$e-&{t^S&<7`b-g03XLu5Cmu5Fw?qH?% zJ}O6LAGGZzX?R>>9P%1Js=}0Gaj;0*JXj|ce7&YGB|e!kvoVGq zbAnn-v|G`7I6G{<*cd9#WDC(N&nVUF zwpU|g63UJzCag1mlU_|c-THq7a!av%shWt9RL%*v*?Sj>tf^<~y^PErae)ZP7kGTt|sukS1(b8C-a1X3{qBm;l& z{`NuYe^pfI5F%x}IKcB|+&vq)rl0SmrL;prcsC>0-&T?|!N_13Tw+=~NJ;|-NlD6m zx{JV@aBy&77@)n{X~EB;xO`SXOEX6Y319Rg{!yQ9!Y6MSU>3BuRHGZ<3i(lSCORhh z)E}a#C5!aGt!s*B)&Y0wURIgt8TM6*U3<|*?6|!tNkD47kF!OJKSl6!B`c1^I7w?z zq3Xd<(bF!cjn#>U?)Zdzqb2uVeR@(CuB0a6na4Hn=AcMKt71vr7R5tMEK45|91e`y zy{3=D9ITn>#q3>ob92G!pMKLK#9I-S1TOPdRcc`Mp3uTY{=&bNvIgZ(HqJC9c#H2| zq14Ly7-w7CP<|*g`U87)$f<(ZQ~SJgJ+YlG^lfSYD8)1tFmN0F zcK_jd>16~Lqt-Hh8vpDw3uTv*+79uB?IU|^JaEsu1yZwL>5sD272k6hdVcwu4i||H zDk_?@L}WD|l{9??HG9ST>5+M>+(E%~dc~-OY24cWElOqHe*pgjnfc%wOh={OnqY6K zFiGFQ0PKsKS0W2t}rMeC>6XQN7^a;;`mFIJ3cN5Hr0 zIvG5?PgG-43m1Fr)cDjv~Kx&Kw_>va*mXhTZ?F ztvJh#Q?N|1XP)12}_PFzkLUfn6_kw%zX*o zDHHcMn>G^hI|U<+G#vuT_&()rRwzDvg+p?AT2tg!CqdQ4D3@^L^OloP6BclFfl^wU zUgoAk`-(P6{vcJPlj!jN99`ij(jNmmi?4_BqqlxoWd3=1S5A&N`sJkT5E6^NgJMt1 zZ%cPp$G7u}t7ZgP;0rnFTRs}pvmTHjA%I{lW}iAFL6=O5l_Kv#hZ2WzVD+p;gdSQwu9;pb)auOl zQ>o36(K?e>mb{wBU4;>m!YiXq&Xfb93j-Q#gUUTFE;gVLYD^ zKC(L^E~z9fTyv~+kNY|9Io~N?@bh2_&kxUuj^TB^Zl2VRxG~;HHLnAi(a-PlY*NbV z)YDAS7X+lUv(qZOqE>A^i^Pv^_um%&0bzqRbPuplky?kt#XSn#iJ`&qx=jvtmu)Vj z(`{v(+$}VBmYlX=RLKfv<^>NeB(WZBdKY@h_dIf?(x-C)HJ4}s%Fh&F*ges|L4>pC zg+u)lWgO;N^qiNCGQ4~Wo+{kcv%2AZGvEbBfm#0Rwvt?JcG1b&u~;R$kT8nPemc*c zS%6@3!8N`c8ilkUk4;+RX%ie|eZsVp7t|3ST4O1V@Q zRdnrj?0sTMe20{tk>5TGOCnrNJy%Lo^X4*1-4U7JZj9~8Qibssi-BXEARNJ`ZM`bb z+UJB_YhG5q)?9OW{ovn&u8~$RJ3rG@)5~TL{w&l{GNnKuKHixUVD<;21;#)p^xyk7 z0j(B1(Q8?$UI}5tMZ;T;@l)^Prd3Q_#X;hD`^vO=l96}1D_U9_-^f+NMe)^v=;oB) zpOC#?pR;~JyS&Qq&g9M^Vt-j68jk+T3f(!ov1#D)WWhA6TNHkU{zcP{SS&=6n z65EGjQ;BYtefikxVDX)++5OAI)gGc_hpO=$Wx-{>9CeXPz9xC|#+$nA5X{B}oz0w& zjrWQVMGFsBCA}KMFO8RN=Sy=cDtK-m_dkr3M%(tH?~NrFq}Ncy76!VEk1P(AlqhF| z6A9luaCeGIQ>8MTneK7QSWVX5?aJ-HcVcA$6|2wf4Csq6yh3CGm{S_6x zOKW%DLhWt4v4j?iI7k@8jNDI(%dJrk6J!)@?#^4YwVhsvYP^v(g^L-EEr(rv&#x!Q zdMA28pMnZt@)36zYFpIzJoF6~qJX;DeA&i2^|0MfO`+6GYkB96M<_ErbKxzN`-{cndDIVpRsz39Ho!+=$-Ulk) zhXkgBm>iUoBm?{=NRsH{m+a8B-1d@y@PqCErTYVdizq&5rdNcNHxLj_&6LQ>(Z2+f z2G|oHvpH;tGq`T@LIy{l?Z>evN&woGDB5o~3YAE8xdB-HhmQlQ2E*>n)3Z+~1UiB-# zH=tg1<&gSK*j_$(v|Yw4WGb7JKc%nDA@ttX%0f;MB1^yn($yqIL z(9`gd+i&C|0&0>1v;CudDYw5QTiBr?bd;DVP09Yt#;8~hq@NfygX`%aHs=8rkfav{ z2(Kp(2UXfk*enDGX7R(pxPPYaxVTg|$uiSFzTJOmOw6R95^AF%JOpGGjyME5F-4q>t2=5Q@FiIM(UBV%cU&knAOhP%0oLUyN#GdDe3)yQ{+JY+*0 zsg>^7)LgQ)uY*~6T34zU)&PGlF@|7N+XV5*=l+xBIxh0G_Fuy z&8lo=_;UVIN+L&^z8IC7Ss3_|R8?h{{3ec1bcJ~4F($(?IaVRvR8k+`lxp_y#jU9a z`=0T#xG+y9Jk203Mma^WgzY~3OT0V9RyLl1{Zuroe<-{6OlbFov2nVza9Q1l*?J7# zC$%Gzu^qu5TAb_l!$|G==<-&~;O#k!`1e}II+bM}3JEL;q@lc>2O(mysKDugJFhPv zwOd=RmfKF;=`7lrs+;xH$2HhxRZ7_R>NnDv*lF3~RoOV_<+$lM0@LEzxpoVRztwD? zC@=(x{zWV(1jLlRN{`>Khr~OPHNthoKg-J4{^pn6&Er17sfzsvbPG=G=W?r9o|2S- zrQXvdvU&9f!|Lh9l_n{HYa0T%#>(bt=G3~4ROYT}xoeXq&OfXrKhvYX$FetJArlJ)bfaLKls$>8^|71l_~G!_cl ziQkiNf7YzUkxPuq%Y!Q>#gJ(pkBg^U|AyN%Uzb`BKl?{c{mc{J^_5{E8ERkJcjYWQ zxS2iSyUqdUBo23&l!vD`NxEOyYiDu3!CBK!E;Kb!yyVmwVBJMuSNtFFmXem4x8wF2 zVsth-wx%<+JE~;r7>;xbY{o0BS^im(IsKgYTg<<93%54=N4b0myml8K&=Xzl=?7l_c>!iS;=#SwC+`xU(6vZWDl~?W%HqmSVTm z{o^WLwb@RmUdF_v4}77ys_hK!!Jv#LNNoRr4eO|Dc`3w{n)(Cfncke2CJ+tT^O=4(d$4_@6T@Ztt>xu-i1m8Lne~JB zjdukTuG{VW;_-jxGsO48$61~zxs%|5VV-+ux5#@@*XJ~l)3to!Lqn@x$FjETgtkZpF5_aZEbYw zvx`UitvAZ+244zoWhX|rTkFJMmA%mKmL`#G!U#CE4w8TwJZ3)u)a{>^jQnYyKntM#Y9UH0XAe*{BGo8VE$#}f-P?LxIqN@5qx88hvPrR9dm zla~b}ev}NglEwesm^ya;>N4TH{f|zoQGtaR@;2$i2q&|{s(Eg24MKOcPLYRo^hfR4 ze?Sd|x3+d}^e_2+N3{OL+Kv+11lB9m;%R?nt$o4z5s3jORxT4RhsO4#49zJ+MhUX& zw*mIl4e~Lyo@_ckYjtnztH7A-gZd}k7CBO5*)vTQcRNj9dn$~4pikalY4lBw6{xCv zi(|CbU^41Uh}AiYJXp9}=Vr-lIeV3^Ay8sO!At*&z$<@)k13e-zz4UvgyGOc&f2ac z3lk~!KI-grD-&8z%a25-IdA_fa*gO3Z=eowR%;Rb54dl|n7d{0&DPW^Bq}xK?fRCv zdw{ddkzy^wUAVj=ww@gP9{@QrVgJOsy>G&ucr7(QdFg>bcZKa2Q};(pj9YvE0ddniELud#pSpWA5SDhYk8^j% zCpLg0CCEf)qWOF0MnCfHHBanbcc`nX4rkuzjzx{O!A7-u3AuEN%XO?4S%x?J2XB%z zK)OM86$j46Tm#vi+pQy}?kc5a);u}3Dst{{p?D}>n^~H7_NrND>1s3!N7T6hw8N1{ z{mHuCpj7@z(zdm>crLTdM)3nr^XLm}8Gn|TrpvjCzcXwM!j3Zc{#2MfF%P-?Q8FV| zI?1NUkm7Vw+{|*`T4m;b+0ox;vO?G5jd_bInkiNy?~5*p=eHv3rCd2}m_Ty@n@o9+ z?b?MYNykIf#F6a7E%cwJg&Hj;I!?5SIJhy|!^H{ktqNUL%B}gKy?iyg`1!{6t3{Xf z36OcGIHr5NXx)(}eMDOgu6_xy%P42Yk9# zvkNdJY_jriO`wTUFzS|{TW*c6#glIu#aBp+@6eXxl&-YT3>F^c%biRa8CjlsH(w@} z$d-W^gYu+`Y&j^g02!Ez=oYwZbmuTHUHRNob~f$V2xvN?au6`^$vre-z@7||ZSZO2 z=qSY*r*{WQud9-36J|l{BK>3j1_d^mV;jC#Uw<)j?|;-0ZCLhzE&|9~oe6Z8KhSu- z6YR-`Yy9$lr-(TtSTe*;>zUSG4xJtpN?sO9gI>FdWO3o|yMYiDwBCX*3CuGncd__o zVp{%9sFCs(M@3QrcyNrFVl+Q6e~e%Q$3!2-z|`NGLDRta7taN?czmLJD4>~DcD}>N zf^hqioL$wH-J9T#U=bc&24J2ykav#&p^b}>smQoyAUQ{q;5EwJDVZ4&p~ZOW2#SV2D^~i;B>#fpwTf=J+rmy6vCk66a5O zv4-cFkYq-|w_JLWiH^x|hZ6OmIBv;Ad(S_pfBTRwNB~9hK{`Ze1T4bs*;P{^zMhFFe$CJ4LL z7aa}62`mT^+3DaqC>Srop)e&UVpnq!XxCQ?#EK%6N+y6U!D1Fvgg0Fz0U4cZh05s` zXag1j1KeqwaC~Qjz&n727XvIcUjbAXdUE_&w^0{>#ft_yESzgVyf2#@)D^q|NG)p( zVq+lS_EjF`0hZwQZFO%TM-4@fq^Sv@L~Do!SNwysOlb+aP%X%ytn!+r2~YGyK#>ulb4Moo@SCdy5N--klFi;z;>kjPlcbn<)}fOquzN zvdI>Bb?{zcLsih1i6)d55&1HLclNsS(+7Sv?Tw7iNNjWzNhMmyIG-Z6BE?9(!Js)b zaW$vn$x!~qFLHZ_Lijh0Gox*F<(Y;@=jK0u=8ZHK8bqw5fKQh zCUD9*G0R50s-|cBWK8^n%_ZFH5G0G??FqwZQ&v(v8)&Dpu)np zM04vxc^~#0-*1u(wuwYV?j9puzX^SjM^0@_mqh1j-=#%GaY&K06{__A&GwflxqM~m zxz@@+OCTC&lHPlwr>Wc{pQlEd#b3BW*V%A|)0`^4?Dg>Vv8h$P2mH&Mwcudi#bi5! z@w_;*kr%!g8tq)3$F7VRxMiV@USBOzyHq4)VB~I?E=awUM)~z8tyt}{Gf$oIL48@F zR-=qbO}Xq2J|L;Zd51M-u*f~Y(l@#F|s_w_=%bnn;4s-NGsc~ykINir+&8)Tpx&EXS^k7bbxA>LbWDeUUF=<0W>i3iz` zJMboo36on#OU>NPY2vrBDw>jyKPR-ltltwDFv``B81{U;wspt0di)11u#;{&&8Bc= zC%`T4#=)&hQXkWkN(wEo5J-~uu%w#4nfb#y(U?8b|E+PT_OV2GY#Gkq*PQ2vyUZ(p zloQREW1@FLsytFAilwe!E}F=Kb{Xh){>tf!2Th{_Rb7dB)o#&y+x~^+sT>C9QswXC z3BE}ELPn$IrwGe69(fP{K7(~|!Ci;eDTkN7`?YVf6zBHD$UTUB{Kv<478e_+D$XDqs zjh-y#jrzIaGqXuqcyd~9hGoG0N9>=}<4}}6n7q$*-Eq2*iP7WP;n%qAku9CN85gf2 zTXZML`I*WMIqzc;^yHe!NMknHVL`TCH1-`1&jroL*AORE;R zOr@F>d2ry72E9#$^N(uDdMC+MeO5SBJdrj3TkQDw`CO@r)_QQ?3y)Fhq{)Lbr$i;q zOox^oeBPz}ac-$H4+{&ffaK)l6z*3s-1fAUDin2!oDX+Am*Lui9TA^w9( z%zH2!1U9Pk$Y+9?5~0Ul!Z+y)0|XwCIY=UJ&anS}MO7WD+!&>r22?Jtt_o)5_etL? z-pqEE;n=X+O|un3_;uQt;LdG>R6fEQk>OIJUHA{l90n^aIX;K`Jwb01SjTVq-x{tf ze)1_yKXm*@agE`cY%XT~?b3S=F)SZG?J2*gpK8kQvKY__V?s|=OV1~za@+l@vY;mE z1Dk!8^bfcz@wWXSa#$1z(*G!yva4ls}L zVVzE7llZV5St90wYjbgy zl4hJ8{2U!?AH|@|3_l7wOfPJVE#fhFVK7r#@PlVo#3Cl!`Hp7MSTn;>kuQa;l7?F0 zn}Ka5I@)}>fAnNI0bhjn8xe9$P*N6F-|%xc_5GkwCY|Nkq4@3&@MeDRT8`*ya6`ij z?M*ZH58Lwc5=&nFpXAp6v3(#_DqDC$%A>hDV5p0AkXsx@AWzE)rz>$x?lJ;7U_4@M`i3^uK@0pDXD=F4&re}E$ zaok;DSuPBG@h^71kzEv#JkI$!Be*ei^r77c155^~pEQXz=o)C@ zU;uuZ_sB06KLC9ReQq#7dRRkv5qHI+B09-R!)>oaq&)wwA9F_!+yd0}3dyINXQ z>^%EPz3xy;3y@5E=M%uN+Sh}+?|OWn)k1nhY(BqXFb(;- zlYXXq<+Y;5bT7{lGRfwoE*%I@`D1D!SANy7czQkjnCjUVC|x%*&_7m!Ol4xsN;Nj7 zcF5q9a~7nnHY16e!~X&1<~iwCqYRd^Y!fHP7YAbh6&q2yAg-w*fx!6g)8FbkE#)o| zjnJ7Yx-)v9J=H3)QmuUXw?tvYhwVAKj!Xsa?qp3(sQaUORVJTqIztNmH-S7d9rO_` zfC*XyiSEbIbm)S(b_^5T(9LQuGU?LipX|R_GTrBopc~L3gaK$31qPEH;VNy|y*Srz zMEE6pa%YU_j}7Kb@z{DQY!{Vi9?wo?)Mgyqj!1C{m%NoiM4f7!__VLWpqO$=#JIP8 z>VOg-stYKMhH!*-TI9eD{pdw5uf}P%A!ffXLi>5_X{|NitWnf^Z0yY9)yo=!+*Bs^ zHVkMlUQy?w0ULsbr55zrpab(!csLhDx zVC~Sz4I)Z#7e2VubvY%rCYm{C?k$X}md9b}!#D`=DM!KDkZqXbv(8k4x)dInq-QPg z5lg_MC4qhLkeHJwVi!6>cS;A6M5HB~9zH8M7w)2N5E%%J(>eB$-G1O3h!`_qlD0lD z?h;PA=KxA2ii1Z7L7u0bL4VoVp2eih0b%)VPJ;|xry%%gh=!Cd@F3F&X1Lpi2u3XQ zuy?2KF2j5ygvsmxj*6KrtPhe@UgZfUxbHCPF5JN0f7vep%&o$9<``zE*eF0C1{Aw| zQ+5)25DSb{`4CaT8ru$HE7qrNH+YBoLCQN&Wd;Tmh!Gr5&b;Ss*ncqy0U>K`vjECM z*e5{yVH`4L@7Z$5aWt7iga!z{g+cboP7n>=ZU;eqs6m;qj43G~_lDfq%!jY&lFUpu z*$h6T?~6QaOiXwpTA4x0soE-FPNud0K!fF=)*@Q=%-vvv5=K`MH5Yroca9|GiQJ!R|| zoy0L*4U8&KfQfDZ%PWTg%f1m|-CIp(dSm}MXLzrJ77b$uxZNHn9^gJhN9c|q!kdi2?qQSFBZPfHqugN(G2|FqEC zWSKeOnU1MJVPiUb^1Y}PlvQU12Go$cnAz7b4g zPE5B52NW85qn&lkc|numMOclQnq**xjr*I50lDPsC&OHaKKC+zo;ioru{eHjB$`PR zhy|0QRP)qcu>J=;u{mgpdii+#J}IS9?5T^nl~&))vFiA^XbDfJeUeD{#I3b?@7}I!=HwhGU=|(d^nu5176+3B#{oG zk}gF6B(a2UI*c#(v{-mv(F4w!Tsby*SMDLluTLi5drgOoifw(*x>6Nj5t3~zQgRe8 zTyHDhRTyBp$c3aKO@!gK{}iYfKM^?2{dCYl`GYP(TA zh@tI5i5lioX@zxjOXo`)@49~mGV7`{dUoV>^%M4;$Hg`86Hy;Q9r4a{!#X)5Ijz!x z;mm*TxeXdsS=c!Tp)+^0Y$j5t#V5=(dsfvJkqV@}kuP`9JxKM7CaJF{H-T+~(3^y@ z&1vQ)oWp}nD*EvQQ0J&zyck1dOuC} z5tKW)R9Y&Fic;`R-8!@xM&g(|tE4n(itoR67 zHa{^&!}G~>X!fdnP_3I!SuWu|bKzZbR*AYmE&;0&{C+%s-0WgpcHMVv@87k0{k3f8 z2hz@c!CK1$n+F|68S9)?Tfba*INQX;(fHu07-40s*w#pOhMSuzDTNTqqNPe~WS8{8 z#;~Qall?NWROJ@{P3^l)0~E1Y>81j2fn^s4&b1^8uU)Xl6-lOE)eud|#d#m%J@4jy zAT2r1IQ19XiH>sk_kgMb8}pZPhxz>zZiml!1_mhobje!J6yS{b)LCg{Nt7~Qd~%Lx zLRb0&aQv?yLJOe%mt);=->wHt+|I?7?_lf7{KTKE75&;dSULBtCWncYeahE};4X4s zCXS2Tb#{2GE=mCHOQ^?O|M+vsAmm-$iddCo4#jRPhHFHQ&n3G0ZR+cR#>qDS)DvPa z+OmtJp!udEmzEMfF3VG8Rlgo^r(Hsi^{Yr}nPdK+y4R2F&m%1-=$IM33xFpqr35qi z>C->?`&Ul0B<(U@d;0Duc-Otw)Ee<2BXl%h-WtB_H1JiVR?_$ILRjxWf8WQfl*hJ- z&9(XnO~#N%MNE22$s>M0^XINXYrf>4{jI-x`Avw*&EwyLi9H`J)_n8C&ze)8jyHZ^ z>dJKU*7Yy+FeSwlY1*jCZ;bsg49RIaymIVel3L^O`eMFxoVJTYS(dY~XaEd!nZa(W zS5q)J!AZZU)hZ{gNH1Yu(T^2h^CQdWf%pwa!;_F6@qoGNsYA=3fw$lxNoE-qJuA{2 zgZP&I*1A}N<{6QE?`zJ>ooT9tTgYfBPyC@mSFPQje5vx7#_X$EH3B@3tEnW}pi9TwVc8~CE_^=4<);uV}PuV|N zGi>mGSmr5Jc=F7{+p?78ZUVB5lawg#6-#^?DAztzV5H)BIokF>$ncPcT`SLiSW2pH zFf4zCwB38j+A`32n^}9SG`cppR~?T-t8!jsD;RQp{bA&@O~7gOUALxczB+PB+CMkT zi;CPwUReJEOG%40E^2ALdJ5w=Z8tXOWR;Y$h6>}w!Us5fR#^1V0Q)pGGk}pgf$~<> zkOn7VF(c$vAUZSPhLwGXjy&`!2EMfdL*`bZ6u}S;5$qm8J**wb#P(odf}vWfyY}$q zV9mC}=xZRfKojw12YQDHabc$Ao--=Xx9f?(P7DW`Zn_SgYODAmDO6>(rI+prHZZ~G z68zs+1sd+PQm&Mq62ESuFzUOTfyVpK&j0RiO&X5K9lYZ8A!lk&u;1th)QveIEKlRF zJ|${DM~ov&HSHe{AWMU_c_w>Ll5*YnBWO%roHP`{p!Hnc39%clI=_WrVN`WNVq?E| zzJ(F^&VE4$gruN}!uGV5LT2$s5D>4a%AV;USPYtEpwlH^^7%o;9S9o1RW-Nf07wTa zK5QNi9R#6Zc8eg2x1T7VeS@Cx8PpB#H(!D zK-lk0l#nrN+Y$qhfe*0h2b{S8#v<@xeE?Vjj^ZRyeqgUTRJ2N6o=;FlzY&|E^$z&0wP^5O8*RUY{xZ~7?ap5l!r*&l+;%KU> zd7pU^e^!PJBZ^}xwI-PnnD^OVz3TlliBcV;D0Hf3bqf#v4;Wr!>>Z2{nAZKSvu%WJ zi@_o;PRy)TXk41CF_UHGeCxLFW@4Bm!nR(MwD7nvfs+ z(9lb;A%N|kN)MWM6$0h>j(gatIT^En9R#V8V8Ys)rS1OAT2~&M&)v>WFFLC2Uk6xQ zO^Ryve}a3}5>9@f9mk({vPmP@$A?^#bnfkzy{cg#2v|Jj8e9B_Z|SU+SMqOI;RE+T z!$y^YuLD<$u0PhOi(lOd2{EzDnB#-ctG>6BQVG`CWV@X6xmzzv)M* z2VP2rrOup0@_!JF-t!y~XAG~K`@VQj&nD2powhKcQD~LIdLH=A!2`V6X1dC}1SZ8? z>)l*FN6%>Wf3n|3ENW|rDo3ZlI`ssDpE>3>5$P_%SyYg>pj#{8RyXUtflGS;!RTWo zdG&%H;LCCu%d0$~0%^PQ=Ol7B#}H%am&ptH1;Ci-C5Hw$Ze;#n7S4|oUF1DrWb8Rf zJ?kW@%_C0(3Fx`h91VeFE{&lo-E+~H+gvd$s1xh&8dEx&0Q_W%%%-}ZNfnE*($t{E zbU>LaukB^~Iv3B`K8-cF7K@f##s~dD1)-(;pY7=|`Uv0LPwCrM&}$zOASSjGF#6Do zwoE%zHuT`qblvv=U|DOAU^O5&92vt9gkcs%o@xyVCKI=Xi`2bg@p~xyRbj z*q*9tb=$LV^-)*AU`#yxybVc@^n(;!=iaa7fRvCnWur3ZbP2m`J|Mb_kzx0&F{!D* zCfScgZJ`J74W-eguseX>lDZ?0Hyie}jrul@y}gT06ua~;dhR00P&vu~1!tj4=bS=V zs=|UqYdAjkJj#R+0&=m-ZHLd216}(e08A~vvsvnHb6#O$sJ5?)3tT5c6bx1-DEA<^ z6sIoaPO*SB=KnZQ!mJauxk(P6hWf#&V(snET_r~9|(>A3hS&82>;?Tf$-S&ru@tHRVo)Ps5gn?uCqRarkXOxNoN09RVDnMd$L#`rlmQFBA z{238~+jQ_rw6|Zvw739~LzP&9;=q-_-hEm|GeekBlM`k$q+?2%petz9lAIrt>8&jd0sE^0NqX*3v0N+qkBPe)0t+o++K~uIU~J?D6OZl&kgs*B+2aNxTJ;X7&|PGq zYkyW<;~TcmVnln(7uGqzQRLIML3?&ERv@#i~e*#lt>2yz#yxkASl6ajTzNlO&~%uaRa%)lOsLTv^Fk`NjwUsMNe-Np{40}NGp#oBN~L3Fwl5!!v*G2;i!2zG$*O(cDF zF0ct)CtP?qQ8=KTfC|pkO<`d83BfM1L-t{r)`A6~@&iJSO1p92QYN$k1K$~)IlD|;mq5%PyXa8t(ab=IhNYmlA_*lhL=iD0 zUpnKxxzvK<%?nc{F7o&QZ%KYB@R?kzrJ-|Tz*rKEs3~M6Spy%=V>bdL{>^ca z`S>4@Yo#nC1&WnA(`p}DTtdw2Rw|AF$vz!w2ylO^w2 z2atq?aNu^%I@$yVM1K&)ob5D}S|#AvL5IMeeh4^*Rt$3WHRGoV;OHqh8$}fC^ZP0G z{ZEL%Y(9Y7V)jubC)J2>g)PSDs{H~=R_)I}E;86NnB*`bLj9P93`Z{XgHyzuARX8N zpZMj7XM!qim&nVG47vz{>MtrwJCqm0rWSuCCsdn&eU=i-3zZy1YV5EYx?zBT)r)Tf zl7&w&uq7gpI-sg6gjyB)D1@cs-T2w(MxsepwYzbQq+hW-{h#q=n zuk7H}b^T(V22G&va={OFIo>`~S73omP)i!&@8Vt(-GHD4;z7?Ung#lx!bV}gmlr_| zU2Im~CZ-+Dr-Z6t1dQG(`aI8X)mJz`C2W8**;_RR5Sxdg_hWKSX-6^7h>cNR1q6e3 z=8&ihys;qb-bFwei-7DZ?nmcJ*_!7#kXgSImisWm|70X}o)@M_@zWflObv&zIeyH8 zv_Vs7M_*jT&X5FO$9PS!2J*qFCivU|RDaOLPIJTw(zUWE$^gRN z*B&Lms-gwhM*>9JiA7Rb1SJgSx?#fmno9ucs-LlpWYWY|Ir z3Wy5YkK*F)=aL6f&+}v&x^DD#^zac}9mtxNi$ncPp_)Qi2+g`>%>Y;T9w`VtLIA$P znv64aaZZqgW(}npDV&O~+b#PxtfV*JL5$9f4^$aw^Rc=KP6dt$+?h;+o2M>-UlYdH zp-*{_klzKiKh;=jz#<~`RHZVZ@D3J8g)+hipwZ_g*r6@LEL+f4S|#nFRek6hTZg`4 zpsI$zTP}>x9MAIUanw`;?Vo`L={CbpF;Rs1Hn~tDYD?(8UI?@E4VbDnPG<>NMy}Gf z`E5En*f>dYCL{={&3zKjnJdgHZ2Mjp!3NRl9lQzpfMOpIXJ58Q7^%PA{6%z8ZHrNW zL5biWM1CLmLz$sc1Rl + + + + + + + + + + + + + + + Ranker + + + + + + +

+ + + diff --git a/public/jquery.js b/public/jquery.js new file mode 100644 index 0000000..8c8d149 --- /dev/null +++ b/public/jquery.js @@ -0,0 +1,10364 @@ +/*! + * jQuery JavaScript Library v3.3.1 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2018-01-20T17:24Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var document = window.document; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + +var isFunction = function isFunction( obj ) { + + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + return typeof obj === "function" && typeof obj.nodeType !== "number"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + + + + var preservedScriptAttributes = { + type: true, + src: true, + noModule: true + }; + + function DOMEval( code, doc, node ) { + doc = doc || document; + + var i, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + if ( node[ i ] ) { + script[ i ] = node[ i ]; + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.3.1", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + + if ( copyIsArray ) { + copyIsArray = false; + clone = src && Array.isArray( src ) ? src : []; + + } else { + clone = src && jQuery.isPlainObject( src ) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.3 + * https://sizzlejs.com/ + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2016-08-08 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + disabledAncestor = addCombinator( + function( elem ) { + return elem.disabled === true && ("form" in elem || "label" in elem); + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + + // ID selector + if ( (m = match[1]) ) { + + // Document context + if ( nodeType === 9 ) { + if ( (elem = context.getElementById( m )) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && (elem = newContext.getElementById( m )) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( (m = match[3]) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !compilerCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; + + // qSA looks outside Element context, which is not what we want + // Thanks to Andrew Dupont for this workaround technique + // Support: IE <=8 + // Exclude object elements + } else if ( context.nodeName.toLowerCase() !== "object" ) { + + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", (nid = expando) ); + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[i] = "#" + nid + " " + toSelector( groups[i] ); + } + newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement("fieldset"); + + try { + return !!fn( el ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + disabledAncestor( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9-11, Edge + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + if ( preferredDoc !== document && + (subWindow = document.defaultView) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert(function( el ) { + el.className = "i"; + return !el.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( el ) { + el.appendChild( document.createComment("") ); + return !el.getElementsByTagName("*").length; + }); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + }); + + // ID filter and find + if ( support.getById ) { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( (elem = elems[i++]) ) { + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( el ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement("input"); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll(":enabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll(":disabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( el ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === document ? -1 : + b === document ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + !compilerCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) {} + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return (sel + "").replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + // Use previously-cached element index if available + if ( useCache ) { + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( (oldCache = uniqueCache[ key ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context === document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + if ( !context && elem.ownerDocument !== document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context || document, xml) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( el ) { + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( el ) { + return el.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +}; +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( nodeName( elem, "iframe" ) ) { + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && toType( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the master Deferred + master = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + return master.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( toType( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (#9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( camelCase ); + } else { + key = camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + jQuery.contains( elem.ownerDocument, elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + +var swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, scale, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + while ( maxIterations-- ) { + + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). + jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; + + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); + +var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); + + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // Support: IE <=9 only + option: [ 1, "" ], + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
" ], + col: [ 2, "", "
" ], + tr: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + _default: [ 0, "", "" ] +}; + +// Support: IE <=9 only +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, contains, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( toType( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +} )(); +var documentElement = document.documentElement; + + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 only +// See #13393 for more info +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = {}; + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + // Make a writable jQuery.Event from the native event object + var event = jQuery.event.fix( nativeEvent ); + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || Date.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + + which: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + if ( button & 1 ) { + return 1; + } + + if ( button & 2 ) { + return 3; + } + + if ( button & 4 ) { + return 2; + } + + return 0; + } + + return event.which; + } +}, jQuery.event.addProp ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + /* eslint-disable max-len */ + + // See https://github.com/eslint/eslint/issues/3229 + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + + /* eslint-enable */ + + // Support: IE <=10 - 11, Edge 12 - 13 only + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.access( src ); + pdataCur = dataPriv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + valueIsFunction = isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( valueIsFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( valueIsFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html.replace( rxhtmlTag, "<$1>" ); + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = jQuery.contains( elem.ownerDocument, elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; + div.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + + "margin:auto;border:1px;padding:1px;" + + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; + + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 + // Some styles come back with percentage values, even though they shouldn't + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + div.style.position = "absolute"; + scrollboxSizeVal = div.offsetWidth === 36 || "absolute"; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + jQuery.extend( support, { + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelBoxStyles: function() { + computeStyleTests(); + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }, + + cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style; + +// Return a css property mapped to a potentially vendor prefixed property +function vendorPropName( name ) { + + // Shortcut for names that are not vendor prefixed + if ( name in emptyStyle ) { + return name; + } + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a property mapped along what jQuery.cssProps suggests or to +// a vendor prefixed property. +function finalPropName( name ) { + var ret = jQuery.cssProps[ name ]; + if ( !ret ) { + ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name; + } + return ret; +} + +function setPositiveNumber( elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0; + + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin + if ( box === "margin" ) { + delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); + } + + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { + + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" + } else { + + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + ) ); + } + + return delta; +} + +function getWidthOrHeight( elem, dimension, extra ) { + + // Start with computed style + var styles = getStyles( elem ), + val = curCSS( elem, dimension, styles ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox; + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + // Check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = valueIsBorderBox && + ( support.boxSizingReliable() || val === elem.style[ dimension ] ); + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + if ( val === "auto" || + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) { + + val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ]; + + // offsetWidth/offsetHeight provide border-box values + valueIsBorderBox = true; + } + + // Normalize "" and auto + val = parseFloat( val ) || 0; + + // Adjust for the element's box model + return ( val + + boxModelAdjustment( + elem, + dimension, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: {}, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + if ( type === "number" ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( i, dimension ) { + jQuery.cssHooks[ dimension ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = getStyles( elem ), + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra && boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ); + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && support.scrollboxSize() === styles.position ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 + ); + } + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( prefix !== "margin" ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && + ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || + jQuery.cssHooks[ tween.prop ] ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = Date.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 15 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + result.stop.bind( result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = Date.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); + + if ( typeof stateVal === "boolean" && isValidValue ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( isValidValue ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = classesToArray( value ); + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, valueIsFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + valueIsFunction = isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( valueIsFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +support.focusin = "onfocusin" in window; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = lastElement = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + lastElement = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = Date.now(); + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && toType( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; + } + } + match = responseHeaders[ key.toLowerCase() ]; + } + return match == null ? null : match; + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 15 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + + +jQuery._evalUrl = function( url ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + "throws": true + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var htmlIsFunction = isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain requests + if ( s.crossDomain ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( " + +
+
+ {loginContent} +
+
+ {saveContent} +
+
+ {adminContent} +
+
+ {historyContent} +
+
+ {agonismContent} +
+
+ {colorKeyContent} +
+
+ + +export default HistoryPanel + diff --git a/src/components/PopupModal.js b/src/components/PopupModal.js new file mode 100644 index 0000000..330ad28 --- /dev/null +++ b/src/components/PopupModal.js @@ -0,0 +1,93 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +import { useState, useEffect } from 'react'; +import '../css/App.css' +import { isDescendant } from '../logic/domHelper'; + +function PopupModal({ target, content, contentclass, eventTriggerElementId}) { + const [showModal, setShowModal] = useState(false); + const [modalPosition, setModalPosition] = useState(); + const [loading, setLoading] = useState(false) + + window.onclick = function(event) { + if(!loading) + { + const element = event.target + const clickedOutside = !isDescendant(element, "modalPopup", ['react-calendar']) + if (clickedOutside) { + setShowModal(false) + } + } + else + { + setLoading(false) + } + } + + useEffect(() => { + const triggerElement = document.getElementById(eventTriggerElementId) + triggerElement.addEventListener('onClick', (e) => handleClick(e)); + }, []); + + const handleClick = (e) => { + if(e.target.id === 'close') + { + setShowModal(false) + } else + if(e.target.id === eventTriggerElementId) + { + setLoading(true) + setShowModal(true) + setModalPosition({ position: 'fixed', right: window.innerWidth-e.pageX, top: e.pageY }) + } + + } + + const handleDoubleClick = (e) => { + const isDateTile = e.target.className.includes('react-calendar__tile') || e.target.parentNode.className.includes('react-calendar__tile') + if(isDateTile) { + setShowModal(false) + } + } + +return ( + <> +
+ {target}{showModal && ( + //
+
+ x + {content}
)} +
+ + ); +} + +export default PopupModal; \ No newline at end of file diff --git a/src/components/RolloverModal.js b/src/components/RolloverModal.js new file mode 100644 index 0000000..4ae493e --- /dev/null +++ b/src/components/RolloverModal.js @@ -0,0 +1,110 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +import { useState } from 'react'; +import { useSelector, useDispatch } from 'react-redux' +import { suspendModal, resumeModal, selectZoomscale } from '../redux/globalActions'; +import '../css/App.css' + +function RolloverModal({ target, content, contentclass, ignoreSuspend}) { + const [showModal, setShowModal] = useState(false); + const [modalPosition, setModalPosition] = useState(''); + const [suspendMouseEnter, setSuspendMouseEnter] = useState(false); + + const dispatch = useDispatch() + const getModalSuspended = state => { + return state.global.modalSuspended + } + const modalSuspended = useSelector(getModalSuspended) + const zoomscale = useSelector(selectZoomscale) + + const handleMouseEnter = (e) => { + if(!suspendMouseEnter) + { + if(!modalSuspended || ignoreSuspend ) + { + setModalPosition({ position: 'fixed', left: (e.pageX / zoomscale), top: (e.pageY / zoomscale) }) + setShowModal(true) + } + else + { + setShowModal(false) + dispatch(resumeModal) + } + setSuspendMouseEnter(true) + } + } + + const handleMouseLeave = (e) => { + setShowModal(false) + setSuspendMouseEnter(false) + } + + const handleMouseDown = (e) => { + if(!ignoreSuspend) + { + dispatch(suspendModal) + setShowModal(false) + setSuspendMouseEnter(false) + } + } + + const handleDoubleClick = (e) => { + setShowModal(false) + setSuspendMouseEnter(false) + } + + // const renderModal = () => { + + // const renderThis = {showModal} ? + //
+ // {content}
+ // : <> + + // return( + // renderThis + // ) + // } + + + return ( + <> +
+ {target} + {showModal && ( +
+ {content}
)} +
+ + ); +} + +export default RolloverModal; \ No newline at end of file diff --git a/src/components/css/AppContainer.module.css b/src/components/css/AppContainer.module.css new file mode 100644 index 0000000..b94fd22 --- /dev/null +++ b/src/components/css/AppContainer.module.css @@ -0,0 +1,71 @@ +/* Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +*/ +body { + margin: 10px; +} + +main { + width:100vw; + height: 100vh; + display: grid; + border: 0px solid black; + padding: 0px; + grid-gap: 1px; + grid-template: "nav head" "nav main"; + grid-template-columns: 3fr 1fr; + grid-template-rows: 4fr 1fr; +} + +nav { + grid-area: nav; + border: 4px solid lightgray; + overflow: auto; +} + +header { + width: 100%; + grid-area: head; + border-left: 1px solid black; + overflow: hidden; + +} + +section { + color: black; + grid-area: main; + border-left: 1px solid black; + border-top: 1px solid black; + padding: 5px; + overflow: hidden; +} + +.containerGrid { + width:100vw; + height: 100vh; + border: 0px solid black; + padding: 0px; +} + diff --git a/src/components/css/Controls.module.css b/src/components/css/Controls.module.css new file mode 100644 index 0000000..11f304b --- /dev/null +++ b/src/components/css/Controls.module.css @@ -0,0 +1,292 @@ +/* Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +*/ +:root { + --history-panel-height: 600px; + } + + input { + border-style : solid; + border-color: lightgray; + background-color: rgb(249, 244, 244); + width: calc(100% - 10px); + padding: 2px 2px; + margin: 2px 5px; + color: rgb(40, 40, 237); + font-size: 14px; + /* + width: 200px; + padding: 2px 2px; + margin: 2px 5px; + */ + /* box-sizing: border-box; */ + } + + select { + border-style : solid; + border-color: lightgray; + background-color: rgb(249, 244, 244); + width: calc(100% - 10px); + padding: 2px 2px; + margin: 2px 5px; + color: rgb(40, 40, 237); + font-size: 14px; + } + + ::placeholder { + color: rgb(131, 169, 225); + opacity: 1; /* Firefox */ + } + + .dbCard { + font-size: 14px; + text-align: left; + margin: 5px; + padding: 5px; + /* margin-left: 10px; + margin-right: 10px; + margin-top: 10px; + margin-bottom: 10px; + padding-top: 10px; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; */ + border-radius: 3px; + background: white; + box-shadow: 0 3px 5px 0px rgba(0, 0, 0, 0.64); + } + .dbScrollCard { + height: calc(100% - 330px); + text-align: left; + margin: 5px; + padding: 5px; + /* margin-left: 10px; + margin-right: 10px; + margin-top: 10px; + margin-bottom: 10px; + padding-top: 10px; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; */ + border-radius: 3px; + background: white; + box-shadow: 0 3px 5px 0px rgba(0, 0, 0, 0.64); + overflow-y: auto; + } + + .historyCard { + display: table; + table-layout: fixed; + width: 100%; + height: 100%; + /* height: calc(100% - 30px); */ + text-align: center; + color: black; + font-size: 14px; + /* margin-left: 5px; + margin-right: 10px; + margin-top: 10px; + margin-bottom: 10px;*/ + padding-top: 20px; + padding-bottom: 10px; + padding-left: 10px; + padding-right: 10px; + vertical-align: top; + /* border-radius: 3px; + background: white; + box-shadow: 0 3px 10px 0px rgba(0, 0, 0, 0.64); */ + } + + /* .historyCard td:nth-child(1) { width: 15%;} + .historyCard td:nth-child(2) { width: 35%;} + .historyCard td:nth-child(3) { width: 15%;} + .historyCard td:nth-child(4) { width: 35%;} */ + + .rankerCard { + display: inline-flex; + resize: both; + width: 100%; + text-align: left; + vertical-align: top; + margin: 10px 10px 10px 10px; + padding: 10px 10px 10px 10px; + border-radius: 3px; + background: white; + box-shadow: 0 3px 10px 0px rgba(0, 0, 0, 0.64); + overflow: auto; + } + + .dbButtonPanel { + padding: 10px; + text-align: right; + /* overflow-x: scroll; + white-space: nowrap; */ + + } + + .dbCheckbox{ + text-align: left; + } + + .dbLabel{ + text-align: left; + padding: 10px; + color: blue; + } + + .dbLabelStyle1{ + color: red; + font-style: italic; + } + + .dbLabelStyle2{ + color: lightblue; + font-style: bold; + text-align: center; + font-variant: small-caps; + } + + .dbRow { + width: 20px; + } + + button.dbPrimary { + -webkit-border-radius: 2; + -moz-border-radius: 2; + border-radius: 2px; + border-color: #1fb4f9; + color: #ffffff; + font-size: 11px; + padding: 4px 6px; + margin-left: 5px; + cursor: pointer; + transition: box-shadow 0.1s; + display: inline-block; + font-weight: 600; + background: #1fb4f9; + box-shadow: 0 1px 12px #4cc6eb; + } + + button.dbSecondary { + border-color: #0478ae; + background: #0478ae; + box-shadow: 0 1px 12px #bcbcbc; + -webkit-border-radius: 2; + -moz-border-radius: 2; + border-radius: 2px; + color: #ffffff; + font-size: 11px; + padding: 4px 6px; + margin-left: 5px; + cursor: pointer; + transition: box-shadow 0.1s; + display: inline-block; + font-weight: 600; + } + + .dbSelectable { + font-size: 10px; + background-color: transparent; + :hover { + cursor: pointer; + } + } + .dbSelectable:nth-child(odd) { + background-color: lightgray; + } + + .tdHistoryHeader { + font-size: 12px; + } + + .tdHistory { + font-size: 12px; + border-width: 0px; + } + + .centerHeader { + width: 100%; + text-align: center; + margin: 5px; + color: blue; + } + + .adminControls { + height: 100%; + overflow: hidden; + } + +.centerHeader { + height: 30px; + width: 100%; + color: blue; + text-align: center; +} + +.centerSubHeader { + text-align: center; + font-size: 14; +} + + +.mainContainer { + height: 100%; + width: 100%; +} + +.bodyContainer { + height: calc(100% - 50px); + width: 100%; + overflow: auto; +} + +.headerContainer { + height: 100%; + width: 100%; +} + +.calendarcontrol { + display: flex; + justify-content: space-between; +} + +.calendardate { + display: inline-block; + padding: 0px; + margin: 0px; +} +.uparrow { + display: inline-block; + padding: 0px; + margin: 0px; +} + +.color_block { + width: 20px; + height: 12px; + border-radius: 3; + margin-left: 5px; + margin-right: 5px; +} \ No newline at end of file diff --git a/src/components/css/HistoryPanel.module.css b/src/components/css/HistoryPanel.module.css new file mode 100644 index 0000000..c6ac514 --- /dev/null +++ b/src/components/css/HistoryPanel.module.css @@ -0,0 +1,116 @@ +/* Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +*/ +.tabrow { + text-align: left; + list-style: none; + margin: 5px 0 20px; + padding: 2; + line-height: 24px; + height: 26px; + overflow: auto; + font-size: 12px; + font-family: verdana; + position: relative; + } + .tabrow li { + border: 1px solid #AAA; + background: #D1D1D1; + background: -o-linear-gradient(top, #ECECEC 50%, #D1D1D1 100%); + background: -ms-linear-gradient(top, #ECECEC 50%, #D1D1D1 100%); + background: -moz-linear-gradient(top, #ECECEC 50%, #D1D1D1 100%); + background: -webkit-linear-gradient(top, #ECECEC 50%, #D1D1D1 100%); + background: linear-gradient(top, #ECECEC 50%, #D1D1D1 100%); + display: inline-block; + position: relative; + z-index: 0; + border-top-left-radius: 6px; + border-top-right-radius: 6px; + box-shadow: 0 3px 3px rgba(0, 0, 0, 0.4), inset 0 1px 0 #FFF; + text-shadow: 0 1px #FFF; + margin: 0 -5px; + padding: 0 20px; + } + .tabrow a { + color: #555; + text-decoration: none; + } + .tabrow li.selected { + background: #FFF; + color: #333; + z-index: 2; + border-bottom-color: #FFF; + } + .tabrow:before { + position: absolute; + content: " "; + width: 100%; + bottom: 0; + left: 0; + border-bottom: 1px solid #AAA; + z-index: 1; + } + .tabrow li:before, + .tabrow li:after { + border: 1px solid #AAA; + position: absolute; + bottom: -1px; + width: 5px; + height: 5px; + content: " "; + } + .tabrow li:before { + left: -6px; + border-bottom-right-radius: 6px; + border-width: 0 1px 1px 0; + box-shadow: 2px 2px 0 #D1D1D1; + } + .tabrow li:after { + right: -6px; + border-bottom-left-radius: 6px; + border-width: 0 0 1px 1px; + box-shadow: -2px 2px 0 #D1D1D1; + } + .tabrow li.selected:before { + box-shadow: 2px 2px 0 #FFF; + } + .tabrow li.selected:after { + box-shadow: -2px 2px 0 #FFF; + } + .tabsHide { + display: none; + } + .tabsShow { + display: show; + height: calc(100% - 0px); + } + .historyPanel { + height: calc(100% - 50px); + width: 100%; + } + + .listTabs { + width: 100%; + } diff --git a/src/components/css/fonts.googleapis.com.css b/src/components/css/fonts.googleapis.com.css new file mode 100644 index 0000000..b9e821d --- /dev/null +++ b/src/components/css/fonts.googleapis.com.css @@ -0,0 +1,305 @@ +/* Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +*/ +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmSU5fCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmSU5fABc4EsA.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmSU5fCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmSU5fBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmSU5fCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmSU5fChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 300; + src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmSU5fBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v19/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v19/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v19/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v19/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v19/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v19/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v19/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmEU9fBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmWUlfBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmYUtfCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmYUtfABc4EsA.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmYUtfCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmYUtfBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmYUtfCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmYUtfChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmYUtfBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} \ No newline at end of file diff --git a/src/css/App.css b/src/css/App.css new file mode 100644 index 0000000..deb5d13 --- /dev/null +++ b/src/css/App.css @@ -0,0 +1,182 @@ +/* Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +*/ +body { + display: flex; +} + +tr { + vertical-align: top; +} + +html,body { + height: 100%; + height: 100%; + margin: 0; + overflow: auto; + } + +.height80 { + min-height: 70%; +} + +.height20 { + height: 20%; +} + +.width70 { + width: 70%; +} + +.pad10 { + padding: 10px 10px 10px 10px; +} + +.pad20 { + padding: 20px 20px 20px 20px; +} + +.padmixed-right-top { + padding: 3px 10px 10px 10px; +} + +.padmixed-right-bottom { + padding: 10px 10px 3px 10px; +} + +.padmixed-bottom { + padding: 10px 30px 10px 10px; +} + +.rollover, +.popupModal +{ + cursor: pointer; +} +.rollover-modal { + font-size: 8; + color: black; + background-color: rgb(115, 200, 246); + text-align: left; + margin: 5px; + padding: 5px; + width: 250px; + height:405px; + border-radius: 3px; + box-shadow: 0 3px 10px 0px rgba(0, 0, 0, 0.64); +} + +.rollover-modal-agonism { + font-size: 8; + color: black; + background-color: rgb(115, 200, 246); + text-align: left; + margin: 5px; + padding: 5px; + width: 60px; + height: 80px; + border-radius: 3px; + box-shadow: 0 3px 10px 0px rgba(0, 0, 0, 0.64); +} + +.closebutton { + margin: 0px; + padding: 0px; + color: lightgray; +} +.popup-modal-blank { + font-size: 8; + color: blue; + background-color:white; + text-align: right; + margin: 5px; + padding: 5px; + border-radius: 3px; + box-shadow: 0 3px 10px 0px rgba(0, 0, 0, 0.64); +} + + +.label { + width: 20px; +} + +.text-vertical { + writing-mode: vertical-rl; + text-orientation: upright; + text-align: center; +} + +.container { + background-color: transparent; +} + +.disabled { + color: lightgray; +} + +.App { + text-align: left; + } + + .App-logo { + height: 40vmin; + pointer-events: none; + } + + @media (prefers-reduced-motion: no-preference) { + .App-logo { + animation: App-logo-spin infinite 20s linear; + } + } + + .App-header { + background-color: #282c34; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); + color: white; + } + + .App-link { + color: #61dafb; + } + + @keyframes App-logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } + } + + #resizable { width: 100%; height: 100%; padding: 0.5em; overflow: hidden} + #resizable h3 { text-align: left; margin: 0; } + #main-resizable { width: 100%; height: 100%; padding: 0.5em; overflow: hidden} + + \ No newline at end of file diff --git a/src/css/index.css b/src/css/index.css new file mode 100644 index 0000000..cc20a9e --- /dev/null +++ b/src/css/index.css @@ -0,0 +1,27 @@ +/* Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +*/ + + diff --git a/src/forms/AgonismHistory.js b/src/forms/AgonismHistory.js new file mode 100644 index 0000000..88d699f --- /dev/null +++ b/src/forms/AgonismHistory.js @@ -0,0 +1,75 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +import { useSelector } from 'react-redux' +import { selectAgonismHistory } from '../redux/rankerActions' +import '../css/App.css' +import styles from '../components/css/Controls.module.css' +import 'bootstrap/dist/css/bootstrap.min.css'; +import { getReadableDate } from '../logic/datehelper' + +export const AgonismHistory = () => { + + const agonismhistory = useSelector(selectAgonismHistory) + + const renderAgonismHistory = (data) => { + const agonismHistoryTags = data.map((element, index) => + {getReadableDate(element.date, true, true)} + {element.actor} + {element.act} + {element.actee} + {element.start} + {element.stop} + ) + return ( + agonismHistoryTags + ) + } + + return ( +
+
Agonism History
+
+
+ + + + + + + + + + + + + {renderAgonismHistory(agonismhistory)} + +
DATEACTORACTACTEESTARTSTOP
+
+
+
+ ) +} \ No newline at end of file diff --git a/src/forms/ColorKey.js b/src/forms/ColorKey.js new file mode 100644 index 0000000..fd2c089 --- /dev/null +++ b/src/forms/ColorKey.js @@ -0,0 +1,53 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +import styles from '../components/css/Controls.module.css' +import matrixStyles from './css/MatrixDnD.module.css' + +export const ColorKey = () => { + return( + <> +
Color Key
+
+
+
+  
Immature
+
+
+
+
+  
Immigrant
+
+
+
+
+  
New Born
+
+ + + ) +} + +export default ColorKey \ No newline at end of file diff --git a/src/forms/DataChooser.js b/src/forms/DataChooser.js new file mode 100644 index 0000000..5f6434a --- /dev/null +++ b/src/forms/DataChooser.js @@ -0,0 +1,498 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +import styles from '../components/css/Controls.module.css' +import { DbDateField, DbButton, DbDropdown, DbButtonSecondary } from '../components/Controls' +import { useSelector, useDispatch } from 'react-redux' +import { useState, useEffect } from "react"; +import { buildSqlFetchIndividuals, buildSqlFetchAgonisms, buildSqlFetchRanks} from '../logic/sqlQueries' +import { fetchIndividuals, fetchRanks, fetchAndMergeAgonisms } from '../api/babaseApi' +import { getDefaultRanks, rankAlphabetic } from '../logic/addRanks' +import { loadRanking, loadSavedRanking, loadAgonisms, loadIndividuals, selectIndividuals, thunkLoadRankDates, clearAgonismHistory} from '../redux/rankerActions' +import { setRankButtons, setActivityLog, clearMoveHistory, clearReverted, setRankMethod, selectAgonismHighlight, setDescriptor, selectDescriptor, selectActiveRanking, clearActiveRanking, selectSessionActive, selectRankMethod, clearHasBeenRanked, setZoomscale, clearInvalidrankdates, setInvalidrankdates, setRankingParams, selectRankingParams, clearRankingParams, selectMaxRankDate } from '../redux/globalActions' +import { zoomElement } from '../logic/domHelper' +import { detectBrowser, toggleChildrenDisabled, findNestedChildById } from '../logic/domHelper'; +import { getYearMonthFirstDay, isValidDate, getLastDayOfMonth, isDayOfMonth, isSameYearMonth, getDateForLastMonthDate } from '../logic/datehelper'; +import { validateSession } from '../logic/globalMethods'; + +export const setAgonismDateRange = (clear) => { + const selectedStartDate = document.getElementById('startdate') + const selectedEndDate = document.getElementById('enddate') + const selectedAgonismStart = document.getElementById('agonismstart') + const selectedAgonismEnd = document.getElementById('agonismend') + selectedAgonismStart.value = clear ? null : selectedStartDate.value + selectedAgonismEnd.value = clear ? null : selectedEndDate.value +} + +export const DataChooser = () => { + const [zoomScale, setZoomScale] = useState(1) + const [checkedValue, setCheckedValue] = useState(undefined) + + const dispatch = useDispatch() + const selectRankTypes = state => { + return state.ranker.ranktypes + } + const rankTypes = useSelector(selectRankTypes) + // const selectIndividuals = state => { + // return state.ranker.individuals + // } + const individuals = useSelector(selectIndividuals) + const selectRankDatePayload = state => { + return state.ranker.rankdates + } + const rankdatepayload = useSelector(selectRankDatePayload) + const rankdates = rankdatepayload.rankdates + const rankdateused = rankdatepayload.rankdateused + const selectRankButtons = state => { + return state.global.rankButtons + } + const rankButtons = useSelector(selectRankButtons) + const selectGroups = state => { + return state.ranker.groups + } + const groups = useSelector(selectGroups) + + const agonismHighlight = useSelector(selectAgonismHighlight) + const descriptor = useSelector(selectDescriptor) + const activeRanking = useSelector(selectActiveRanking) + const sessionActive = useSelector(selectSessionActive) + const rankmethod = useSelector(selectRankMethod) + const activityLog = useSelector(state => state.global.activityLog) + const rankingparams = useSelector(selectRankingParams) + const maxrankdate = useSelector(selectMaxRankDate) + + useEffect(() => { + const dbCard = document.getElementById('rankingfields') + if(sessionActive) + { + toggleChildrenDisabled(dbCard, false, []) + } + else + { + toggleChildrenDisabled(dbCard, true, []) + } + }, [sessionActive]) + + useEffect(() => { + if(activeRanking) + { + setAgonismDateRange() + } + else + { + setAgonismDateRange('clear') + } + }, [activeRanking]) + + useEffect(() => { + if(rankdates){ + const radiobutton = (rankdateused === rankingparams.startdate) ? checkedValue : getYearMonthFirstDay(rankdateused) + loadButtons(radiobutton) + if(rankdates.length > 0) { + setCheckedValue(radiobutton) + } + } + }, [rankdates, individuals]) + + useEffect(() => { + zoomElement('matrixContainer', zoomScale) + }, [zoomScale, rankButtons, individuals, agonismHighlight, descriptor, rankmethod, activityLog]) + + const handleZoomMatrix = (scaling) => { + const scale = scaling === 'reset' ? 1 + : scaling === 'out' ? zoomScale * 0.8 + : zoomScale / 0.8 + const root = document.documentElement; + const browser = detectBrowser() + if(browser === 'Firefox') + { + const borderWidth = (scale < 1) ? '1.5pt' : '1px' + root.style.setProperty('--matrix-grid-cell-border-width', borderWidth); + } + setZoomScale(scale) + dispatch(setZoomscale(scale)) + } + + const handleOnClickClear = (e) => { + dispatch(loadIndividuals([])) + dispatch(loadAgonisms([])) + const rankdatepayload = {} + rankdatepayload.rankdates = [] + rankdatepayload.rankingDate = undefined + rankdatepayload.hasBeenRanked = undefined + rankdatepayload.rankdateused = undefined + dispatch(thunkLoadRankDates(rankdatepayload)) + dispatch(setDescriptor('Ready to load new ranking workspace')) + dispatch(clearActiveRanking) + dispatch(clearMoveHistory) + dispatch(clearHasBeenRanked) + dispatch(loadRanking([])) + dispatch(loadSavedRanking([])) + dispatch(clearRankingParams) + dispatch(clearAgonismHistory()) + + // const button = e.target + // const buttonCard = button.closest('div') + // const dbCard = buttonCard.parentElement + const dbCard = document.getElementById('rankingfields') + toggleChildrenDisabled(dbCard, false, []) + } + + const isValid = () => { + const invalid = validateSession() + if(invalid){ + dispatch(invalid) + return false + } + return true + } + + const handleOnClickLoad = (e) => { + if(!isValid()) return + + const button = e.target + const buttonCard = button.closest('div') + const dbCard = buttonCard.parentElement + const selectedRank = findNestedChildById(dbCard, 'ranktype') + const selectedGroup = findNestedChildById(dbCard, 'group') + const selectedStartDate = findNestedChildById(dbCard, 'startdate') + const selectedEndDate = findNestedChildById(dbCard, 'enddate') + + const saveRankingParams = {} + saveRankingParams.rank = selectedRank.value + saveRankingParams.group = selectedGroup.value + saveRankingParams.startdate = selectedStartDate.value + saveRankingParams.enddate = selectedEndDate.value + dispatch(setRankingParams(saveRankingParams)) + + if(selectedRank.value.trim().length == 0 || selectedGroup.value.trim().length == 0 || selectedStartDate.value.trim().length == 0 || selectedEndDate.value.trim().length == 0){ + dispatch(setActivityLog('load must have rank, group, start date and end date', true)) + return + } + + const rankRecord = rankTypes.find(element => element.rnktype === selectedRank.value) + const payload = buildSqlFetchIndividuals(selectedGroup.value, selectedStartDate.value, selectedEndDate.value, rankRecord.query) + const payloadAgonisms = buildSqlFetchAgonisms(selectedGroup.value, selectedStartDate.value, selectedEndDate.value, rankRecord.query) + + if(isValidDate(selectedStartDate.value) && isValidDate(selectedEndDate.value)) + { + const firstDayForStartMonth = getYearMonthFirstDay(selectedStartDate.value) + + setCheckedValue(firstDayForStartMonth) + + // dispatch(clearActivityLog) + dispatch(setActivityLog('loaded new rank group')) + + dispatch(clearMoveHistory) + dispatch(clearReverted) + + const descriptor = 'Ranking ' + selectedGroup.value + ' ' + selectedRank.value + ' for ' + selectedStartDate.value + ' thru ' + selectedEndDate.value + ' (agonism range ' + selectedStartDate.value + ' - ' + selectedEndDate.value + ')' + dispatch(setDescriptor(descriptor)) + + if(!(isSameYearMonth(selectedStartDate.value, selectedEndDate.value) && isDayOfMonth(selectedStartDate.value, 1) && isDayOfMonth(selectedEndDate.value, getLastDayOfMonth(selectedEndDate.value)))) + { + dispatch(setInvalidrankdates) + dispatch(setActivityLog('note: save disabled for non-standard ranking date pair', true)) + } + else + { + dispatch(clearInvalidrankdates) + } + + dispatch(fetchIndividuals(payload, payloadAgonisms, dbCard, [buttonCard.id], saveRankingParams)) + + } + else + { + dispatch(setActivityLog('cannot process invalid date', true)) + } + } + + const handleOnClickRestore = (e) => { + if(!isValid()) return + + if(individuals.length == 0) + { + dispatch(setActivityLog('cannot refresh empty individual set', true)) + return + } + + const selectedRank = document.getElementById('ranktype') + const selectedGroup = document.getElementById('group') + const selectedStartDate = document.getElementById('startdate') + const selectedEndDate = document.getElementById('enddate') + + if(isValidDate(selectedStartDate.value) && isValidDate(selectedEndDate.value)) + { + const rankRecord = rankTypes.find(element => element.rnktype === selectedRank.value) + const payloadAgonisms = buildSqlFetchAgonisms(selectedGroup.value, selectedStartDate.value, selectedEndDate.value, rankRecord.query) + const sqlBodyAgonisms = payloadAgonisms + + dispatch(setActivityLog('restored agonisms to default range ' + selectedStartDate.value + ' - ' + selectedEndDate.value)) + + const descriptor = 'Ranking ' + selectedGroup.value + ' ' + selectedRank.value + ' for ' + selectedStartDate.value + ' (agonism range ' + selectedStartDate.value + ' - ' + selectedEndDate.value + ')' + + dispatch(setDescriptor(descriptor)) + dispatch(fetchAndMergeAgonisms(payloadAgonisms, individuals, false, true)) + } + else + { + dispatch(setActivityLog('cannot process invalid date', true)) + } + } + + const handleOnClickRefresh = (e) => { + if(!isValid()) return + + if(individuals.length == 0) + { + dispatch(setActivityLog('cannot refresh empty individual set', true)) + return + } + + const selectedRank = document.getElementById('ranktype') + const selectedGroup = document.getElementById('group') + const selectedStartDate = document.getElementById('startdate') + const selectedAgonismStart = document.getElementById('agonismstart') + const selectedAgonismEnd = document.getElementById('agonismend') + + if(isValidDate(selectedAgonismStart.value) && isValidDate(selectedAgonismEnd.value)) + { + const rankRecord = rankTypes.find(element => element.rnktype === selectedRank.value) + const payloadAgonisms = buildSqlFetchAgonisms(selectedGroup.value, selectedAgonismStart.value, selectedAgonismEnd.value, rankRecord.query) + const sqlBodyAgonisms = payloadAgonisms + + + const newDescriptor = 'Ranking ' + selectedGroup.value + ' ' + selectedRank.value + ' for ' + selectedStartDate.value + ' (agonism range ' + selectedAgonismStart.value + ' - ' + selectedAgonismEnd.value + ')' + if(descriptor !== newDescriptor) + { + dispatch(setDescriptor(newDescriptor)) + dispatch(fetchAndMergeAgonisms(payloadAgonisms, individuals, false)) + dispatch(setActivityLog('refreshed agonisms with new range ' + selectedAgonismStart.value + ' - ' + selectedAgonismEnd.value)) + } + } + else + { + dispatch(setActivityLog('cannot process invalid date', true)) + } + } + + const handleOnClickRank = (e) => { + if(!isValid()) return + + const selectedRank = document.getElementById('ranktype') + const selectedGroup = document.getElementById('group') + const selectedStartDate = document.getElementById('startdate') + + setCheckedValue(e.target.value) + //loadButtons(e.target.value) + + // dispatch(clearActivityLog) + dispatch(setActivityLog('re-ranked group using ' + e.target.value)) + + dispatch(clearMoveHistory) + dispatch(clearReverted) + dispatch(setRankMethod(e.target.id.includes(selectedStartDate.value) ? 'rank_currentmonth' : e.target.id)) + + switch(e.target.id) + { + case 'rank_alphabetical': + const sortedIndividuals = rankAlphabetic(individuals) + const someIndividuals = [...sortedIndividuals] + dispatch(loadIndividuals(someIndividuals)) + break + case 'rank_default': + const defaultSortedIndividuals = getDefaultRanks(individuals) + const someDefaultSortedIndividuals = [...defaultSortedIndividuals] + dispatch(loadIndividuals(someDefaultSortedIndividuals)) + break + case 'rank_currentmonth': + const payload = buildSqlFetchRanks(selectedGroup.value, selectedStartDate.value, selectedRank.value) + dispatch(fetchRanks(individuals, payload)) + break + default: + const rankDate = e.target.value + const payloadForDate = buildSqlFetchRanks(selectedGroup.value, rankDate, selectedRank.value) + dispatch(fetchRanks(individuals, payloadForDate)) + break + } + } + + const getReadableRankDate = (date) => { + const rankDate = date + const rankYear = rankDate.substring(0,4) + const rankMonth = rankDate.substring(5,7) + const rankDay = rankDate.substring(8,10) + return(rankYear + '-' + rankMonth + '-' + rankDay) + } + + const getReadableRankDateArray = (arr, selectedDate) => { + const readableSelectedDate = getReadableRankDate(selectedDate) + const foundCurrentRankDate = arr.find(element => getReadableRankDate(element.rnkdate) === readableSelectedDate) + + const dateArray = [] + arr.map(element => { + const readableDate = getReadableRankDate(element.rnkdate) + var jsonData = {} + jsonData["id"] = 'rank_' + readableDate + jsonData["value"] = readableDate + jsonData["label"] = (readableDate === readableSelectedDate ? 'current month' : readableDate) + jsonData["checked"] = readableDate === checkedValue ? true : false + dateArray.push(jsonData) + }) + + const currentMonthIndex = dateArray.findIndex(element => element.label === 'current month') + // if(currentMonthIndex > 0) + // { + // moveElement(dateArray, currentMonthIndex, 0) + // } + + const rankDateFound = dateArray.find((element) => element.checked) + if(rankDateFound == null) + { + setCheckedValue('default') + } + + const specialArray = [] + + // var jsonDataalpha = {} + // jsonDataalpha["id"] = 'rank_alphabetical' + // jsonDataalpha["value"] = 'alphabetical' + // jsonDataalpha["label"] = 'Alphabetical' + // jsonDataalpha["checked"] = checkedValue === 'alphabetical' ? true : false + // specialArray.push(jsonDataalpha) + + var jsonDatadefault = {} + jsonDatadefault["id"] = 'rank_default' + jsonDatadefault["value"] = 'default' + jsonDatadefault["label"] = 'Default' + jsonDatadefault["checked"] = checkedValue === 'default' ? true : false + specialArray.push(jsonDatadefault) + + const returnArray = [...specialArray, ...dateArray] + + return returnArray + } + + const loadButtons = () => { + + if(!activeRanking) + { + dispatch(setRankButtons([])) + return + } + + const selectedRankType = document.getElementById('ranktype') + const selectedGroup = document.getElementById('group') + const selectedStartDate = document.getElementById('startdate') + + const rankTypeValue = selectedRankType ? selectedRankType.value : 'ALF' + const rankGroup = selectedGroup ? selectedGroup.value : '1.2110' + const groupCode = rankGroup.substring(0,6) + + const recentDate = selectedStartDate.value + const yearBeforeDate = (String(Number(String(selectedStartDate.value).substring(0,4) - 1)) + String(selectedStartDate.value).substring(4)) + const yearAfterDate = (String(Number(String(selectedStartDate.value).substring(0,4) + 1)) + String(selectedStartDate.value).substring(4)) + + const readableRankDates = getReadableRankDateArray(rankdates, selectedStartDate.value) + + dispatch(setRankButtons(readableRankDates)) + + const selectedRankDate = readableRankDates.find(element => element.checked) + const selectedValue = selectedRankDate ? selectedRankDate.value : 'alphabetical' + return(selectedValue) + } + + const GetButtons = () => { + + const buttons = rankButtons ? + rankButtons.map((element, index) => + // element.value === 'default' ? + //
+ // + // + //
+ // : +
+ + +
+ + ) : + '' + return(<>{buttons}) + } + + const calendarLink = 'calendar' + const rankingButtons = activeRanking + ? < DbButton label='Clear' onClick={handleOnClickClear}/> + : < DbButton label='Load' onClick={handleOnClickLoad}/> + + const useDefaults = false; + const defaultRank = useDefaults ? 'ALF' : '' + const defaultGroup = useDefaults ? `1.1100 (Hokey's)` : '' + const defaultStart = useDefaults ? '2024-01-01' : '' + const defaultEnd = useDefaults ? '2024-01-31' : '' + const onStartDateChange = (value) => { + const endDate = document.getElementById('enddate') + const proposedEndDate = value ? getDateForLastMonthDate(value) : null + endDate.value = endDate.value ? endDate.value : proposedEndDate + } + const groupSelect = +
+
+ < DbDropdown label='Rank Type' name='ranktype' id='ranktype' valueArray={rankTypes} fieldName='rnktype' defaultValue = {defaultRank} includeBlank={true} /> + < DbDropdown label='Group' name='group' id='group' valueArray={groups} fieldName='gidandname' defaultValue = {defaultGroup} includeBlank={true}/> + < DbDateField label='Start Date' name='startdate' id='startdate' placeholder='startdate' defaultValue = {defaultStart} globalDefault = {maxrankdate} onChange={onStartDateChange}/> + < DbDateField label='End Date' name='enddate' id='enddate' placeholder='enddate' defaultValue = {defaultEnd} /> +
+ < DbButtonSecondary label='Zoom out' onClick={() => handleZoomMatrix('out')}/> + < DbButtonSecondary label='Reset' onClick={() => handleZoomMatrix('reset')}/> + < DbButtonSecondary label='Zoom in' onClick={() => handleZoomMatrix('in')}/> + {rankingButtons} +
+
+
+ < DbDateField label='Agonism Start' name='agonismstart' id='agonismstart' placeholder='agonism start'/> + < DbDateField label='Agonism End' name='agonismend' id='agonismend' placeholder='agonism end'/> +
+ < DbButtonSecondary label='Restore' onClick={handleOnClickRestore}/> + < DbButton label='Refresh' onClick={handleOnClickRefresh}/> +
+
+
+ +
+
+ + return( + <> + {groupSelect} + + ) + +} + +export default DataChooser \ No newline at end of file diff --git a/src/forms/Login.js b/src/forms/Login.js new file mode 100644 index 0000000..f1e82e7 --- /dev/null +++ b/src/forms/Login.js @@ -0,0 +1,110 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +import styles from '../components/css/Controls.module.css' +import { DbTextField, DbPasswordField, DbButton} from '../components/Controls' +import { useDispatch, useSelector } from 'react-redux' +import { setActivityLog, selectSessionActive, clearSessionActive, selectCredentials, clearActiveRanking, clearMoveHistory, clearHasBeenRanked, setDescriptor } from '../redux/globalActions' +import CryptoJS from 'crypto-js'; +import { findNestedChildById, toggleChildrenDisabled } from '../logic/domHelper'; +import { sessionCreate } from '../api/babaseApi'; +import { loadAgonisms, loadIndividuals, thunkLoadRankDates, loadRanking, loadSavedRanking } from '../redux/rankerActions'; + +const cryptokey = 'noevildeedliveon' + +export const Login = () => { + const dispatch = useDispatch() + const sessionActive = useSelector(selectSessionActive) + const savedcredentials = useSelector(selectCredentials) + + const clearRankingSession = () => { + dispatch(loadIndividuals([])) + dispatch(loadAgonisms([])) + dispatch(thunkLoadRankDates([])) + dispatch(setDescriptor('Ready to load new ranking workspace')) + dispatch(clearActiveRanking) + dispatch(clearMoveHistory) + dispatch(clearHasBeenRanked) + dispatch(loadRanking([])) + dispatch(loadSavedRanking([])) + const dbCard = document.getElementById('rankingfields') + toggleChildrenDisabled(dbCard, false, []) + } + + const handleOnClickLogin = (e) => { + const button = e.target + const buttonCard = button.closest('div') + const dbCard = buttonCard.parentElement + const userComponent = findNestedChildById(dbCard, 'user') + const user = userComponent.value + const passwordComponent = findNestedChildById(dbCard, 'password') + //const password = CryptoJS.AES.encrypt(passwordComponent.value, "Secret Passphrase") + const password = passwordComponent.value + const encrypted = CryptoJS.AES.encrypt(password, cryptokey).toString() + const dbComponent = findNestedChildById(dbCard, 'database') + const database = dbComponent.value + + var jsonData = {} + jsonData["user"] = user + jsonData["pwd"] = encrypted + jsonData["database"] = database + + if(jsonData.database !== savedcredentials.database) + { + clearRankingSession() + } + + dispatch(sessionCreate(jsonData, dbCard, [buttonCard.id])) + } + + const handleOnClickLogout = (e) => { + const button = e.target + const buttonCard = button.closest('div') + const dbCard = buttonCard.parentElement + toggleChildrenDisabled(dbCard, false, []) + dispatch(clearSessionActive) + dispatch(setActivityLog('logged out')) + document.cookie = "rankersession={}; Max-Age=-99999999; path=/;" + } + + const sessionButton = sessionActive + ? < DbButton label='Log-out' onClick={handleOnClickLogout}/> + : < DbButton label='Log-in' onClick={handleOnClickLogin}/> + + const defaultValues = false ? 'jdm187' : '' + const babaseDefault = false ? 'babase_copy' : '' + return ( +
+ + + +
+ {sessionButton} +
+
+ ) +} + +export default Login \ No newline at end of file diff --git a/src/forms/MatrixDnD.js b/src/forms/MatrixDnD.js new file mode 100644 index 0000000..ee20b3c --- /dev/null +++ b/src/forms/MatrixDnD.js @@ -0,0 +1,321 @@ +import { useState, useEffect, useRef } from "react"; +import { DndProvider, useDrag, useDrop } from 'react-dnd'; +import { HTML5Backend } from 'react-dnd-html5-backend'; +import styles from "./css/MatrixDnD.module.css"; +import RolloverModal from "../components/RolloverModal"; +import Container from 'react-bootstrap/Container' +import Row from 'react-bootstrap/Row' +import Col from 'react-bootstrap/Col' +import { useSelector, useDispatch } from 'react-redux' +import { clearAgonismHistory, loadIndividuals, selectAgonismHistory, selectAgonismHistoryLoaded, selectIndividuals } from '../redux/rankerActions' +import { getNamedObject_sname } from "../logic/rankerMethods"; +import { getReadableDate, getReadableDateTime } from "../logic/datehelper"; +import { addMoveHistory, setActivityLog, selectRankMethod, toggleAgonismHighlight, selectDescriptor, setRanksHaveChanged } from "../redux/globalActions"; +import rankersplash from '../images/rankersplashgray.png' +import {showTime, getTime, getTimeOnly} from '../logic/datehelper' +import { fetchAgonismHistory } from '../api/babaseApi' + +const Matrix = () => { + const [columnHighlight, setColumnHighlight] = useState(''); + const [rowHighlight, setRowHighlight] = useState(''); + const [rerenderCount, setRerenderCount] = useState(0); + const [startTime, setStartTime] = useState(0); + const [endTime, setEndTime] = useState(0); + const [wasOver, setWasOver] = useState(null) + + const ignoreSuspend = false + + const dispatch = useDispatch() + + const rankMethod = useSelector(selectRankMethod) + const descriptor = useSelector(selectDescriptor) + const activityLog = useSelector(state => state.global.activityLog) + const individuals = useSelector(selectIndividuals) + const agonismhistoryloaded = useSelector(selectAgonismHistoryLoaded) + + useEffect(() => { + if(!agonismhistoryloaded){ + setColumnHighlight('') + setRowHighlight('') + } + }, [agonismhistoryloaded]) + + const handleCellClicked = (e) => { + setRerenderCount(rerenderCount+1) + setStartTime(getTimeOnly) + //showTime('matrix (click)>>>') + let col = e.target.closest('td') + let colid = col.id + let actee = colid + let row = e.target.closest('tr') + let rowid = row.cells[0].children[0].innerHTML + let actor = rowid + if(colid===columnHighlight && rowid===rowHighlight) + { + setColumnHighlight('') + setRowHighlight('') + dispatch(clearAgonismHistory()) + } + else + { + setColumnHighlight(colid); + setRowHighlight(rowid); + dispatch(fetchAgonismHistory(actor, actee)) + } + dispatch(toggleAgonismHighlight) + } + + const getRolloverContent = (element) => { + const birthDate = getReadableDate(element.birth, true, true) + const entryDate = getReadableDate(element.entrydate, true, true) + const maturedDate = element.matured ? getReadableDate(element.matured, true, true) : '' + const rankedDate = element.ranked ? getReadableDate(element.ranked, true, true) : '' + const statDate = getReadableDate(element.statdate, true, true) + const memberfirstDate = element.memberfirst ? getReadableDate(element.memberfirst, true, true) : '' + const memberlastDate = element.memberlast ? getReadableDate(element.memberlast, true, true) : '' + + return ( + + {element.sname}{element.name} + bioId:{element.bioid} + pid:{element.pid} + birth:{birthDate} + bstatus:{element.bstatus} + sex:{element.sex} + matGrp:{element.matgrp} + statDate:{statDate} + status:{element.status} + entrydate:{entryDate} + entrytype:{element.entrytype} + matured:{maturedDate} + ranked:{rankedDate} + dCause:{element.dcause} + dCauseNatureConfidence:{element.dcausenatureconfidence} + dCauseAgentConfidence:{element.dcauseagentconfidence} + memberdays:{element.memberdays} + memberfirst:{memberfirstDate} + memberlast:{memberlastDate} + + ) + } + + const getRolloverContentAgonism = (element, id, data) => { + return ( + + {element.sname} + {data} + {id} + + ) + } + + const TableColumn = ({data, id, element, rowindex}) => { + return ( + element.sname === id ? + + : + id==='sname' ? + <> + + {rowindex+1} + + : + id === columnHighlight ? + + : id === rowHighlight ? + + : + ) + } + const getColumns = (element, fields, rowindex) => { + return ( + fields.map((fieldName, index) => ( + + ) + ) + ) + } + + const TableRow = ({element, rowindex, columns, id, dragref}) => { + const newMemberPreviousRank = (rankMethod != 'rank_currentmonth' && rankMethod != 'rank_default') + const useClassName = + element.sname === rowHighlight ? styles.tableRowItemsHighlight + : element.sname === columnHighlight ? styles.tableRowItemsHighlightYielder + : element.newborn === true ? styles.tableRowItemsNewborn + : element.immigrant === true ? styles.tableRowItemsNewmember + : (element.sex === 'M' && element.isranked === null) || (element.sex === 'F' && element.ismatured === null) ? styles.tableRowItemsNotmature + : styles.tableRowItems + return( + <> + + {getColumns(element, columns, rowindex)} + + + ) + } + + const colnumbers = (dataArray) => + { + let i = -1; + const result = [] + for(i=-1; i<=dataArray.length; i++) + { + result.push( + i==-1 ? + : i==0 ? + : {i} + ) + } + return (<>{result}) + } + + const mapHeaders = (headers) => + headers.map((element, index) => ( + element.sname === columnHighlight ? + {element.sname}
} content={getRolloverContent(element)} contentclass='rollover-modal' /> + : + {element.sname} content={getRolloverContent(element)} contentclass='rollover-modal' /> + )) + + const DraggableComponent = ({ id, columns, element, index, onClickHandler, className }) => { + const [{ isDragging }, drag] = useDrag({ + item: { id, index }, + type: 'COMPONENT', + collect: (monitor) => ({ + isDragging: !!monitor.isDragging(), + }), + }); + + return ( + + ); + }; + + const DroppableContainer = () => { + const data = [...individuals] + const headers = ['', '', ...data] + const columnNames = getNamedObject_sname(data) + const finalColumns = ['sname', ...columnNames] + + const drag = useRef(null); + + const moveComponent = (dragIndex, hoverIndex, clientOffset) => { + //showTime('>>>moveComponent') + setRerenderCount(rerenderCount+1) + setStartTime(getTimeOnly) + //showTime('matrix (move)>>>') + const newComponents = [...data] + const componentAbove = newComponents.find((element, index) => index == dragIndex-1) + const [draggedComponent] = newComponents.splice(dragIndex, 1) + const componentAtHover = newComponents[hoverIndex] + if(componentAtHover) + { + newComponents.splice(hoverIndex, 0, draggedComponent) + + const movedIndividual = draggedComponent.sname + const movedFromRank = dragIndex+1 + const movedToRank = Number(hoverIndex)+1 + const displacedIndividual = componentAtHover.sname + const wasBelow = componentAbove ? componentAbove.sname : null + + var jsonData = {} + jsonData["movedIndividual"] = movedIndividual + jsonData["movedFromRank"] = movedFromRank + jsonData["movedToRank"] = movedToRank + jsonData["displacedIndividual"] = displacedIndividual + jsonData["wasBelow"] = wasBelow + + const newActivityLogEntry = 'moved ' + movedIndividual + ' from rank ' + String(movedFromRank) + ' to rank ' + String(movedToRank) + ' displacing ' + displacedIndividual + dispatch(setActivityLog(newActivityLogEntry)) + dispatch(addMoveHistory(jsonData)) + dispatch(setRanksHaveChanged) + dispatch(loadIndividuals(newComponents)) + } + else + { + dispatch(setActivityLog('cannot drop outside of ranking matrix', true)) + } + //showTime('<< { + const clientOffset = monitor.getClientOffset() + const itemId = document.elementFromPoint(clientOffset.x, clientOffset.y).closest('tr').getAttribute('id') + if(item.index != itemId){ + moveComponent(item.index, itemId, clientOffset) + } + }, + hover: (item, monitor) => { + // const clientOffset = monitor.getClientOffset() + // const itemId = document.elementFromPoint(clientOffset.x, clientOffset.y).closest('tr').getAttribute('id') + // console.log('sameindividual hover', item.index, itemId, item.index !== itemId) + + // // const clientOffset = monitor.getClientOffset(); + // const element = document.elementFromPoint(clientOffset.x, clientOffset.y); + // const closestRow = element.closest('tr') + // const snameElement = findNestedChildById(closestRow, 'sname') + // snameElement.style.backgroundColor = element.id === wasOver ? 'red' : + // setWasOver(element.id) + }, + }); + + const getPositions = (e) => + { + const element = document.elementFromPoint(e.nativeEvent.x, e.nativeEvent.y) + // console.log('getPositions: ', element.getAttribute("id")) + // console.log('element: ', element) + } + + const splashImage = + data.length === 0 ? + + : <> + + const groupLoaded = (individuals.length > 0) + return ( + !groupLoaded ?
{descriptor}
{splashImage}
: + <> +
{descriptor}
+
+ + + + {mapHeaders(headers)} + + + + {colnumbers(data)} + {data.map((element, index) => ( + + ))} + +
+
+ + ); + }; + + return ( + +
+ +
+
+ ); + }; + +export default Matrix; + + + diff --git a/src/forms/ReviseRanking.js b/src/forms/ReviseRanking.js new file mode 100644 index 0000000..0410e09 --- /dev/null +++ b/src/forms/ReviseRanking.js @@ -0,0 +1,120 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +import { useSelector, useDispatch } from 'react-redux' +import { loadIndividuals, selectIndividuals } from '../redux/rankerActions' +import { setMoveHistory, setReverted, setActivityLog, setRanksHaveChanged, clearRanksHaveChanged } from '../redux/globalActions' +import '../css/App.css' +import styles from '../components/css/Controls.module.css' +import { showTime } from '../logic/datehelper' +import 'bootstrap/dist/css/bootstrap.min.css'; + +export const ReviseRanking = () => { + + const dispatch = useDispatch() + const moveHistory = useSelector(state => state.global.moveHistory) + const reverted = useSelector(state => state.global.reverted) + const individuals = useSelector(selectIndividuals) + + const restoreToPoint = (e) => { + const rowSelected = e.target.closest('tr') + const rowIndex = Number(rowSelected.id) + const revert = moveHistory.splice(0, rowIndex+1) + const updateReverted = [...revert, ...reverted] + + revert.reverse() + const newComponents = [...individuals] + for(let i = revert.length; i--; i>0) + { + const [popEntry] = revert.splice(i) + + const fromIndex = popEntry.movedToRank-1 + const [restoreComponent] = newComponents.splice(fromIndex, 1) + + const wasBelowIndex = newComponents.findIndex((element) => element.sname === popEntry.wasBelow) + const toPosition = wasBelowIndex+1 + + newComponents.splice(toPosition, 0, restoreComponent) + + const movedIndividual = restoreComponent.sname + const movedFromRank = fromIndex + 1 + const movedToRank = toPosition + 1 + + const newActivityLogEntry = 'restored ' + movedIndividual + ' from rank ' + + String(movedFromRank) + ' to orignal rank ' + String(movedToRank) //+ ' raising up ' + displacedIndividual + dispatch(setActivityLog(newActivityLogEntry)) + } + + dispatch(loadIndividuals(newComponents)) + dispatch(setMoveHistory(moveHistory)) + dispatch(setRanksHaveChanged) + dispatch(setReverted(updateReverted)) + } + + const renderMoveHistory = (data) => { + //showTime('renderMoveHistory>>>') + const moveHistoryTags = data.map((element, index) => + {element.movedFromRank} + {element.movedIndividual} + {element.movedToRank} + {element.displacedIndividual} + ) + //showTime('renderMoveHistory>>>') + return ( + moveHistoryTags + ) + } + + const moveHistoryLabel = ( + styles.centerHeader + ) + + const moveHistoryBody = ( + styles.bodyContainer + ) + + return ( +
+
Move History
+
+
+ + + + + + + + + + + {renderMoveHistory(moveHistory)} + +
From RankNameTo RankDisplacing
+
+
+
+ ) +} \ No newline at end of file diff --git a/src/forms/SavePanel.js b/src/forms/SavePanel.js new file mode 100644 index 0000000..cede224 --- /dev/null +++ b/src/forms/SavePanel.js @@ -0,0 +1,120 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +import styles from '../components/css/Controls.module.css' +import { DbCheckbox, DbButton, DbLabel} from '../components/Controls' +import { useDispatch, useSelector } from 'react-redux' +import { arraysAreEqual } from '../logic/jsHelper' +import { selectCredentials, selectActiveRanking, selectHasBeenRanked, selectSessionActive, selectRankMethod, selectRanksHaveChanged, selectMoveHistory, setActivityLog, selectInvalidrankdates } from '../redux/globalActions' +import { selectRanking, selectSavedRanking } from '../redux/rankerActions' +import { saveRanks } from '../api/babaseApi' +import { isObjectEmpty } from '../logic/jsonHelper' +import { validateSession } from '../logic/globalMethods' + +export const SavePanel = () => { + + const dispatch = useDispatch() + const sessionactive = useSelector(selectSessionActive) + const activeranking = useSelector(selectActiveRanking) + + const hasBeenRanked = useSelector(selectHasBeenRanked) + const ranking = useSelector(selectRanking) + const savedRanking = useSelector(selectSavedRanking) + const credentials = useSelector(selectCredentials) + const invalidrankdates = useSelector(selectInvalidrankdates) + + const selectedRank = document.getElementById('ranktype') + const selectedGroup = document.getElementById('group') + const selectedStartDate = document.getElementById('startdate') + + const isTrue = true + const isFalse = false + + let saveLabel = 'No active rank matrix to save' + let deriveAdultRanksCheckbox = <> + + if(sessionactive && activeranking) { + if(selectedRank.value.length > 0 && selectedGroup.value.length > 0 && selectedStartDate.value.length > 0) + { + saveLabel = 'Create/Update Ranks for ' + selectedRank.value + ' for ' + selectedGroup.value + ' for month beginning ' + selectedStartDate.value + '?' + } + if((selectedRank.value.length > 0 && (selectedRank.value === 'ALF' || selectedRank.value === 'ALM'))) + { + deriveAdultRanksCheckbox = < DbCheckbox label='Derive adult group ranks' name='adultranks' id='adultranks' /> + } + } + + const notSynchronizedLabel = 'not synchronized with database (' + credentials.database + ')' + + const arraysDiffer = !arraysAreEqual(ranking, savedRanking) + const previouslySaved = sessionactive && activeranking && hasBeenRanked ? < DbLabel label='note: a previous ranking has been saved' style={styles.dbLabelStyle1} /> : <> + const overwritecheckbox = sessionactive && activeranking && hasBeenRanked ? < DbCheckbox label='Overwrite' name='overwrite' id='overwrite' checked={isFalse} /> : <> + const synchronized = sessionactive && activeranking && arraysDiffer ? < DbLabel label={notSynchronizedLabel} style={styles.dbLabelStyle2} /> : <> + const saveButtonDisable = (!invalidrankdates && activeranking && (!hasBeenRanked || arraysDiffer)) ? false : true + + const isValid = () => { + const invalid = validateSession() + if(invalid){ + dispatch(invalid) + return false + } + return true + } + + const handleOnClick = (e) => { + if(!isValid()) return + + if(hasBeenRanked) + { + let saveoverrwrite = false + const overwrite = document.getElementById('overwrite') + const saveoverwrite = overwrite ? overwrite.checked : false + if(!saveoverwrite) + { + dispatch(setActivityLog(('check overwrite to force save'), true)) + return + } + } + + const adultranks = document.getElementById('adultranks') + const deriveadultranks = adultranks ? adultranks.checked : false + dispatch(saveRanks(selectedGroup.value, selectedRank.value, selectedStartDate.value, ranking, deriveadultranks)) + } + + return ( +
+
+ < DbLabel label={saveLabel} /> + {deriveAdultRanksCheckbox} + {previouslySaved} + {overwritecheckbox} + {synchronized} + < DbButton label='Save' onClick={handleOnClick} disabled={saveButtonDisable} /> +
+
+ ) +} + +export default SavePanel \ No newline at end of file diff --git a/src/forms/css/MatrixDnD.module.css b/src/forms/css/MatrixDnD.module.css new file mode 100644 index 0000000..2095915 --- /dev/null +++ b/src/forms/css/MatrixDnD.module.css @@ -0,0 +1,345 @@ + /* Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +*/ +:root { + --matrix-grid-cell-border-width: 1px; + --matrix-grid-cell-width: 35px; + --matrix-grid-cell-height: 30px; + --matrix-grid-cell-width-index: 20px; + + --color-key-immature-even: rgb(252, 244, 182); + --color-key-immature-odd: rgb(255, 251, 220); + --color-key-immigrant-even: rgb(212, 249, 161); + --color-key-immigrant-odd: rgb(227, 251, 194); + --color-key-newborn-even: rgb(158, 214, 248); + --color-key-newborn-odd: rgb(202, 232, 250); + + } + + h1 { + margin-top: 50px; + } + + tbody { + width: var(--matrix-grid-cell-width); + min-width: var(--matrix-grid-cell-width); + max-width: var(--matrix-grid-cell-width); + height: var(--matrix-grid-cell-height); + } + + thead { + width: var(--matrix-grid-cell-width); + min-width: var(--matrix-grid-cell-width); + max-width: var(--matrix-grid-cell-width); + height: var(--matrix-grid-cell-height); + } + + tr { + width: inherit; + min-width: inherit; + max-width: inherit; + height: inherit; + } + + th { + width: inherit; + min-width: inherit; + max-width: inherit; + height: inherit; + vertical-align: center; + } + + td { + width: inherit; + min-width: inherit; + max-width: inherit; + height: inherit; + vertical-align: middle; + border-width: var(--matrix-grid-cell-border-width); + } + + th:nth-child(2){ + width: var(--matrix-grid-cell-width-index); + min-width: var(--matrix-grid-cell-width-index); + max-width: var(--matrix-grid-cell-width-index); + } + + td:nth-child(2){ + width: var(--matrix-grid-cell-width-index); + min-width: var(--matrix-grid-cell-width-index); + max-width: var(--matrix-grid-cell-width-index); + } + + .table { + overflow: visible; + border-collapse: collapse; + border-color: gray; + /* width: auto; + height: auto; */ + } + + .tableRowHeader { + text-align: center; + background-color: transparent; + transition: all 0.25s ease; + border-radius: 10px; + } + + .tableHeader { + background-color: #f1f1f1; + padding: 2px 2px 2px 2px; + font-weight: 500; + text-align: center; + font-size: 14px; + color: #2c3e50; + box-shadow: 0pt 0pt 0pt 0pt grey; + outline-color: transparent; + transition: .1s; + } + + .tableHeaderHighlight { + background-color: #bbf8f8; + font-weight: 500; + text-align: left; + font-size: 14px; + color: #2c3e50; + } + + .tableHeader:first-child { + border-top-left-radius: 15px; + box-shadow: 0pt 1pt 0pt 1pt grey; + outline-color: transparent; + transition: .1s; + } + + .tableHeader:last-child { + border-top-right-radius: 15px; + box-shadow: 0pt 0pt 0pt 0pt grey; + outline-color: transparent; + transition: .1s; + } + + .tableHeader:not(:first-child):not(:last-child) { + box-shadow: 0pt 0pt 0pt 0pt grey; + outline-color: transparent; + transition: .1s; + } + + .tableRowItems { + cursor: inherit; + } + .tableRowItems:nth-child(odd) { + background-color: #f9f9f9; + } + .tableRowItemsNotmature{ + background-color: var(--color-key-immature-even); + } + .tableRowItemsNotmature:nth-child(odd) { + background-color: var(--color-key-immature-odd); + } + .tableRowItemsNewmember{ + background-color: var(--color-key-immigrant-even); + } + .tableRowItemsNewmember:nth-child(odd) { + background-color: var(--color-key-immigrant-odd);; + } + /* .tableRowItemsNewmemberPreviousrank{ + background-color: rgb(249, 182, 161); + } + .tableRowItemsNewmemberPreviousrank:nth-child(odd) { + background-color: rgb(251, 196, 194); + } */ + .tableRowItemsNewborn { + background-color: var(--color-key-newborn-even); + } + .tableRowItemsNewborn:nth-child(odd) { + background-color: var(--color-key-newborn-odd); + } + /* .tableRowItemsNotmatureAndNewPreviousrank{ + background-color: rgb(249, 182, 161); + } + .tableRowItemsNotmatureAndNewPreviousrank:nth-child(odd) { + background-color: rgb(251, 196, 194); + } */ + + .tableRowItems:hover, + .tableRowItemsNotmature:hover, + .tableRowItemsNewmember:hover, + .tableRowItemsNewborn:hover + { + background-color: #95e3fd; + } + + /* .tableRowItemsHighlight, .tableRowItemsHighlight:nth-child(odd){ */ + + .tableRowItemsHighlight{ + background-color: #bbf8f8; + } + + .tableRowItemsHighlightYielder{ + background-color: #f2d2f7; + } + + .tableColumnRowNumbers { + padding: 0px; + margin: 0px; + max-width: var(--matrix-grid-cell-width-index); + width: var(--matrix-grid-cell-width-index); + font-size: 8px; + color: white; + background-color: black; + text-align: center; + } + + .tableRowColumnNumbersBlankFirst { + padding: 0px; + margin: 0px; + border-width: 0pt 0pt 0pt 1pt; + border-color: gray; + background-color: #f1f1f1; + box-shadow: 0pt 0pt 0pt 0pt grey; + outline-color: transparent; + transition: .1s; + } + + .tableRowColumnNumbersBlankSecond { + padding: 0px; + margin: 0px; + max-width: var(--matrix-grid-cell-width-index); + width: var(--matrix-grid-cell-width-index); + border-width: 0px 0px 0px 0px; + border-color: #f1f1f1; + background-color: #f1f1f1; + } + + .tableRowColumnNumbers { + height: 18px; + font-size: 8px; + color: white; + border-width: 0px var(--matrix-grid-cell-border-width) 0px 0px; + border-color: black; + text-align: center; + background-color: black; + } + + .tableRowColumnNumbersLast { + height: 18px; + font-size: 8px; + color: white; + border-width: 0px var(--matrix-grid-cell-border-width) 0px 0px; + border-color: black; + text-align: center; + background-color: black; + box-shadow: 1pt 0pt gray; + outline-color: transparent; + transition: .1s; + } + + .tableCell { + font-size: 14px; + color: grey; + text-align: center; + } + + /* .tableCell:last-child { + box-shadow: 1pt 0pt gray; + outline-color: transparent; + transition: .1s; + } + */ + .tableCellHighlight { + font-size: 14px; + color: grey; + text-align: center; + background-color: #bbf8f8; + } + + .tableCellHighlightYielder { + font-size: 14px; + color: grey; + text-align: center; + background-color: #f2d2f7; + } + + .tableCellExempt{ + font-size: 14px; + color: grey; + text-align: center; + background-color: rgb(235, 229, 229); + } + + .tableCellExemptLast { + font-size: 14px; + color: grey; + text-align: center; + background-color: rgb(235, 229, 229); + box-shadow: 1pt 0pt gray; + outline-color: transparent; + transition: .1s; + } + + .splashImage{ + width: 100%; + height: 100%; + } + + .matrixContainer{ + width: 100%; + height: 100%; + } + + .descriptor{ + font-size: 16pt; + color: blue; + } + + .activtyheader{ + height: 100%; + display: inline-block; + } + + .activityclear{ + vertical-align: middle; + height: 100%; + font-family: verdana; + font-size: 10pt; + text-align: right; + color: blue; + } + + .activityclear:hover{ + cursor: pointer; + } + + .autoScrollBox{ + height: calc(100% - 30px); + width: 100%; + overflow: auto; + white-space: nowrap; + font-size: 11px; + } + + + diff --git a/src/forms/css/ReviseRanking.module.css b/src/forms/css/ReviseRanking.module.css new file mode 100644 index 0000000..16f17b8 --- /dev/null +++ b/src/forms/css/ReviseRanking.module.css @@ -0,0 +1,31 @@ +/* Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +*/ +table{ + table-layout: auto; + display: block; + overflow: auto; +} + diff --git a/src/images/baboon.jpg b/src/images/baboon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6145c9b235db98fc15149d1bffe8f48ca3fa0672 GIT binary patch literal 263104 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

OMMz4`K4Ha5&hU~? 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

jRqXE5X)Pz|!pgT3 zD${jZ{UH~fVM+L1aq0JR!j?y!xEH$2Ja)pMxKiG!TzEt7q+ZO+pf{Ax9%40 z>uyoig0`u$QjP51l>9BNOL=N3Nht+;K_w)rOJ@V=$ce`Hpev9tIf(xNE|+Uva@A)U zUioWVN~EOR+xZ`=RvdLh{{UwogB$tPAp?4d+KyEk6GG)B>pI1*cl44~vTEk1S~9C7 zpBi3~PiZeD2l9b2F)}ls#F8TY8}B?AN>9QE&N;l{r{&rSF1ph!w=jiEOc1t~g2RJv z;tnVzkFX#{zUkmix1yGHGJghckw|8jFh?0&qLnI7{^B+>gaDFG4hoX9*%&29{390A ziDXF7=cHRs)XLWCzz;xbGYcQdz<%)DPE%QHNeVd~j!*M|1~Q)f$0qH+5kHC;MhOuo zqB-{k|-hCrTI; z>tJ}!s2z!`(i}SpPjKV1Q%myYGDFjf({K_kUg1bpLL=<|rCTw0f9 zm8*3!?|Puh4{rjcF4W*7<>I+8KA^_RXyBx&IKzi=7{=e?`}d3~iX+tBT&Px>Z~a>0 zwIxyq-rys_14v^Pg_5`r)gDsXMd1W^?GVC`Z8m7B}o7Q$OC?US>#5Kq{=3v z)}_rBHQhKLKzPN2k@Azzyb zeMfJfA~#ou`_-}r#D#6h?vcV#xB2EYcT-Y^zjkO{oWuAv4OEb*yo~VcG}?UZ`Q!f4 zhELQ8+PAIBn>Nb0FL|UTP0*;bRc8`TbKo$yfB6g(8n2|(%T?`r+V)C{+r4!j=&CZa z*~S{3REr8fFA7OJf0TIo)`cglu9^r)@Wc0`juF@;G-MzO?#yZRG$ZXm`ZJAa)L!X-3MA_f)8oVx(F( z{USK~Lr`Do4)>+D(JQM=(CI@e$Mw}|L?7g%5<7l8hY_H9((vZ=s)0m(wD>h`LbIgR zpE9b#JF1k0QBb+Lb-Nz7pnG%t+O6>!0td{7gr- zc1rs|sx76iDta>}=;s@iEnIaf{!b(MKuE0aaRjS4T1oqV^N_&A*Umy6B5*R0P+fh#?#Gd`U$T6V0OkqE=bvgZ{c)F{3EFU9^fJT1hv-%jt zmeJ(sI*~!@!>J1rVWhPsReIXHC8gE)SMQPqiN#~)>jOVn^1YulVQFY>M@@P&!8mKwB=drJv$uXSp#t-bVJzGYAe~sSYHu zxh@QC*|hP_?nvN(bHr$#yY%K?QaW?E8xlrhYTR+Vidg`ZtO-I(`v~WMfTu_vc>9f; zq!+Bdr)hPmezfvdyMl)$PjvTv{64khW$LlaLpPROKr9=;x>!m5-?Q#I;R{6)u-> zQD#z1oxw+Vf>MGxDRm(ZG_i#?=t8~~Ba6-I6Gf=n^QD!IJFC1To|*}nq|}fIc9~Rb z;*^_0)A1mo%w&Qxg)KjtAdgr&bx`WZq)K;CkI?1h^=CmzyPSU=*Y`X6%eh7 z5$kj#a9Mi2L%8}Q)%P1k4*goH)}=>z3!~f(w0ttjCulAqDj4H(kfd|s#ADT+FS|5j zQEU2Ne@P}U-|AkI)J20$nsY`j z>95%LRGTSM%@MhUf?Fva*+POGmtS$QY^d^rz3J^S)8@5bqk83b+hwYomdo;2T$0#W zaVwQZMYM8P8!7!{_VGx zzWys}+J&ec*$u25oQ;E_jMjR8t+y)5=3Oci{n*EV;Qg2I2qU|=dLz`-PMrA6&W?`Zh7n8vUY4}fZkU`HoPpMlz zi1gJLU91TqD`x7GZ`6?_%RwolR+~^2DrPv^mY!DjxEq;uuJ|$F^*5y{(H(fb^s$sJ z5|k>#h^GaEy>d=~?7M`X4q01#=edoq(VZ!ccB5YXBGz1O3%n#9xh&UQb7~|mX%^H_ zr04LV`F|0YbCOb&kTL-Q9&IZ^vwhcvv2DvYF;R7inTAe zw=8}!FD*LS%&fuk@XO4)+Kzt`+5@?a1+{o#B}yO+FK?=nPCvxN)%Il2sd}4J)}08f zG+mXw^!@C1B{LH94TjbM<0(`7!SX2)5p0WIcJRHZ)?}k(&em#j)W(}g$trcw+PV9{ zO8%_$R%1_kDCvgfRHB-gnU$+9pt5-@s4cnH0r~iQ$J#VsO8OZ+)JD2m`c%rCVn(Ad zW-7BF6Yla1q`5G>j>MrQ3D4(R2b@~hwKq+qoamLwN>d3E+I>@^%}aouP|87&!1Mq< zpVBnXvA;=EFK^y@;X2>?)a>&%%{9W16x6!`6ElhgkHVt4bYyvc)`|G4v zsPwj}*8Q!il)5COvne6DMwBJX4J3I0B``jbv%2Hair%v56-B#2B{!{|IL+H_tsE>= zB+8fJpz(z`*>wXX4cjx?I{kNBla(HxtCwXeK)X@Xnw>WJlh6AzPnk>4Ee9Wnv+n?m z@wdw{zoaTsb$JO|#VTPFQk6E5H7xp7lsL&EeqA!4!UV=xvF;Bw#nQw z9`dF)Wm3~1?3iI++HK^xf<8d`#%(mEH!y{TfOtwy>|sP@w^f?_-QH5FsYFy@O7Z>Lbrge!ygbJ5OO#@ z`;I*zBE9#fdV$kz_f*!too$zEmW^f4e7`jERHd~{I*p*!Xzl(KPK2dJ#*Py(1~65$ zr+n#Nr&$`kWlCR~ds}L$MW}o&xRns&3j->bd9%w-wocU{SWv+7!8vr^-J}3KLX4zm zX6zq?Zo$XILHR^@)V&kFENjklUb<{dyBAdAgO@#~`+{1TdNhzp@c{ucwI9Xd%#0;R zhdvdP0U=z%0zMoocfv^{2j)jUUrs)eqwWa?`hU6VI+H_X=5*%bm{ir@AlN%-Q)?gn zdu0RqwiHGtl97ahnT&ic=R48uU9~lq%@=L8F*eiE^9qxy(kcuYdW9CC*Y)xfY^w@s z=E=c9$RpxOQc6r_bF!$IVN$Q5E}`Upq^#<#Ys!G;yQ*~ znJ0pUZ&HpDbHVs?k^D%(A~k&-hqRAToTN1NY+Lqy_bI0Yri)&1scy@FdrQsXZX+Bf zVJ@U_@&NF(%5hpNs%h!=s``bsRFYignodl*N`$K_%+&!)QQW0UWG#Slec5|*uLVXo z71wQ2?)z?f+N-HynWW(^wg`4zNmy~G+gFo~IFv0X$er!k6HHyrI=R%VS|bqcs`=Y>A7lz?}-5ER_V?X|a%QsO`y6{$az##`KS zGBOA1Vq$(~>*r^z?K@7E^-HN%Yb~u3ZC78MlTUD&X{=1P2hlEp{nHn5(Jkx#kUC1z zyO+faShr>AuehG&**(&W&-a)aip}=K*)LH#kfGjs?;Nk{y3ITv5 z<{G}o=>#0X!~=2(`oJ7ylLVLpm<~+wh#2EJhNrT=h7x=7Jm4G#Rh+^D90*&n3n2Fp z3m81YBX@5oB<2P{;KU1QPki$X&&Ap~3CwYvaC=13@8O{GqS9gtE1`q@@T2ODZ5FBo1;<0ArK%ho}UU z{v4G7@n;{(A~&?pTq-&-(Cr?C;Q-jdAL7-V;(jH3G|ZyOy+0 z6bo|d+{-7n?e7MXN0{DVE_1irbhyB#Xx#`A+?F&V1S&61m@0H0#+;t@c097|pc~g#VADKl@1ZTek(mTCC zJ5hH@>bC7Qz$%worLCz@llWboc{1x*K3iH-i$5e7&na}dS}csMHk^f~T1kX3&pAFD zZGsL$~L=^yj-g@tX6c40MGkYWh zkIVtjsLX5qaFdyC#F@M)EN`k=vkhG`fjQpclslhjW4U%z%rbpLxQ&Iu?jx->q@_SD zq^$sMT2DKhsj^iGN$FOnWF2k!X_TerTtUiQX+S9o2h0?ZN65z=MUZA` z^U2QXXC24~@~yQ4{J@M$N@UF*(UY|n_;KrH*Qjbx7$p+RC}1C~xnTX{IRGe-dngb` zr^*3{NJuS$egzbAd*jXn%5ApF+%5o=sYf1wWRKE0liZ9B<_d=Wt^7xFfWSC7&-r)z zLiC@R8dFIU)oWWds`{3hX~tDqrCLlB=PN}no|hg!M9kD)Zv)M<8!Gy{skQ}`U%zWB zP^a6Jxw^#CliW2f(w$f85J%oM$4V(~e@d5fqh{-#>ACC5SV#$Zxw_=q+ED)h)TO_% z5$APS$-3>UM?_jkaayBvQ>c>+m7T_wF0(&VUI(nSqMAAX0Hq$VR!!3tsXt}tRg*)j z6^f#%E!67aeD0}F6FWMfPe1xZ%bXu5+D9iKd4rGAI9b}IxZ+45Yu+%NU@IpI`S1pQ zLOF6aD4!t&)O*$?P0e*_)1@hdlEkWS8tb4O?F~|zltClVnZIJ4xww{*`&+cGDS&T%lm(mJ)pCa>2`wM=lQZMmgYneD`7C|vDURfhinRLeX6 z0CdM|s)c^jr0KPm+elk?PN-XQuAyUb2$y-vo4d!D+ayLlVhY_-EVC@qB;`}Jsd5=@ z2uL9)Z0rLbSP6*xs}5(auAk9>LhakwXC1$FC;tElkkX3YkiCE?jorC9IX}$AeAbtk zruB)_Y|D)jx`Q{RDFhDNsq8)v%a#;By#XRHGuymJF1MzHrJ<&4KY`s|vyw-V#Qx)- z`>`Yv0*-O%5xcIIWtFDZRLknxY5JRK%pl|Q8j2H<^TAO2mHhT$)CHSh{_`D_gr%<;NM#d= z-eq3F;GmMWRiDc7&jK!u8Pd+RPIU9HR&J-uIJ8RBr;yE6DNps($4`eake|)_r4<5u zDFFFL&|TSP+j@yXl$D%qFCmxOs?w)rll#e8k?}P$(efv82h}Q2JQEZ%*5^*s9W`s^ zdd!lRb*plsOl%d()#dL)JfKAQY3-gKQ6s z#8mcOTC*1)SoWBx)6RloOPo31y)K`W??C2oG1MJePKhL z#5(}wKpVfE-_8Rs_BPAB_f}O$5=xt5%br_@9!6$SAbzGWuV)^djX~>9*(;avBrSI* z?nn5@P?su8U+#|?Y{uvIGSOR+yY*vK=MWo}w{6LJCA_hKJXcowfIgdK#(qRbVeDeC z9dv4DuT8QWRMV1H^qj#?K+fs8piiITmHto@ORZaM-F+r%%_E0b{S}|6wvD+eGN4QY z_blWOD8YIX(?!#|6SOS{S1}~@*+HJ2erdmf&Gjc9Ev+gTAf>gmK^%Yqi5Yua68D{v za@muupLVX&X6de={$xJOjVUMo{BYW~+=Y#3(5-5D@g*(FY_x=`c7%kYS%fr@2aq8d zfW$Ob>5ro%vVGcIp0H_b!kbDgJyfsDQ`kty zhfkYuPO-RsLa0%|CRz0q zEki5t+(;Z|0zzJvWv{3fwNk{rsB+b-ezh!R>Jn2Z{nP2s7zy~2K?xy1H`lY5eey>>-T{qMUBUM@rZIHy&y08?G z4p8Gt{{Uv<74fBg(o&pvfXom}gLq1Cl0tdhN8jclucZ#QS{W)McHCzv?0EVZjom(9 z*M^>5uk@d-HK!_9B_c&rwspv~VBJ(S9it@i@3O#nZlL^1PSyNesL4bqsVd0?6`W(X zI3owo*YA%g4GXP$Lv>Q_5A^$>lI%CA)cJHVRir8NDO48QDU_>gvXd?U0JD9iB%x^R2;h*QqnSFC zgoOeUph!;{@5umq<1rTX7592p*H*QmmlG|edZAF4rC&{LA&NzDNbuyVXanJGx4s4@ zRg~ph7Ol$019IzLmCI`NgEeg;tNR+cFEG_o+^wNGdXZO`%H?L;^Y~6up`VGhxP!uo zjy(<3dCgPPYGuJ&r=po~%BghQikZJZvuiS|ElsjhRgee1Ni?QOJ=~IH za;G3O%B>06Jw>Hm(hDUO3Ujn7lVFkJqaoQ>{{Y@?!0JEUnfXRy*(VMa0!SFgZvO!N zB05t^FScE4;!{o{WdkR=PII3^pNDUj40dIkKq_o<+E#X}&m0hb{l3smS0}c%%S7&$ z>E58W)?K7mCTR{R4gw}wE)S>0Dt}nlp2Z8Pa`%3x*=ktXKT4<7n@5-|KDLy9N7E9M z+PQ5iztN?~P)kKhx2n{-q7oCGsrQjCRr2^|PcZ?#koET|U0WuW9Xo4Q#Y#+b_=*A^ z10H|Xe<&*MMhAFU1Ca?o5KpWEc>BN*2Yw))A$mgZ0L6O1PmwT5Pu3B~kbqr}9&odO zqw;_|!??y^7Dgdv7ag$xjGpiaXFcH@XfO}^U1IsXh5Q+5d0Pz5L@`aut4)9O;Kq1M5gXl~Q;umhv9Gl0=7<=Xd zxg2o>c?blaJHj7}5W5oqoMgZfK7Mc^9$`QpGYgD@Jm5e%Bmn^8LG^&8bLS2K9GpTR zA1JeqjztmW#Br03V8S>)Q2_j~l24o*9@yd*G1>rQJ>dX7Arpu&2n@qW8OZGfdgd3( z0B6v^R&uYDI|I@YPkfH>2w?Yu6U-nygd^zy$COfogMtW9$-pFYgYx4MNWRsbesfhi zfp<-*6N_B~Ov99vf(P%aYaq_Mk^CwMX9xa-k=`yxRrLy!r8;kOYE@{b-0f;q)mg+9 z1o)+v%8<~{=34fk4*5{TeA(QUI>pyhs@^rVyEQ*ns4jAPWk@JXlTWEmxu5M7DMyYm z&zuK{g%aXUHz;5vV0ZE#NV^YYri*{0uAgQv`joOoQ&6W&>K0RlBAYHtQsX_w<%d^~ zFhPoY(yIcisrrv@Y4yH>?MC3KOH<{O=e@&%v;CCvN%8>4(siF~(`=h=k!MjEOH|4w zK3<XO-Xlq7hyeLQDk;uRV0PjckujUU2{FL8 za5o+g3iy-3NbU*x!zt3nURgmLZ+Z6z)k@rR_c5*dhP<7!blJz{=8JQ6y44O z74Zdvo_#i){=7mUtKuKy2_->Y;?a#s%bIoLQEzfm)k<1cq}oXQPqqxZ-}nTt=@}qN zNm$N7Q91dZ$T8cqa63#e)Naq{Ukbbe4d_;f_Gv^v#s};3T()mjyDM8EP z>9?(PCw4bCF;Zbu0Q!%1Y5b2dobe7y$uvsQn$w*Vv23Z3(r4%v)jCRaEzUjV66r4~ zTx5;qXOCaBU@y!&e)YF0N*)~5FH0;3r(9lerYiNRklSfcADBtWFYM_&W;faW`>r;m zDM{XwxZz)jd^LY&n5u4(FXfbwXRGrm6I!C7a%-E)+c+qfBRy?tdr=65rt; zK@pqU415g^r&V&TwEO1PnOF8gYDgdAsFN)mpdXNk)$JOm&Cc|9s1MV(8LC@!+QUl6 zV=GaYb$|FmzeounPw!kFej>lb#*5Z@Qs+_KJiMgkD68DzUsX`v1N`H5%1$v-lb5N> zs41zolKKcdZChbu{9{k+4pFY!2)_)FyN0;XSD{rBV;|suNDQ}KD{k95FMV7Rf`;@Ed8Tv;VM#(7%Di&Y!2PNQJ+U$@Zy3{l_5Lu2~tVU z4o3r$Gu)GaJ!4d9H8tA?{=anAVbIkUc6{D8^JIjfnQDerJua0bV1&-5VZnjIWyHVFdYA(%OA|lSk~{ZU=DY%jAJAmf7s7- z%+xeO_Of4bYZNPusir~4z})1pKcQ0u{o~*EM`}}7w@s7!ZB!;<`x3J3xM}RT9H!2t zPc|@f!B@PeZzBmFxQ`RrwPYhj`iSaBMV8XgD0B4TBv<&CB!^~w*=h&OvoO)mo?^~} zeX`WV9RRau6gMf0(JUb2oGwY?K>q;Q#tZCR(^R=7sM@zO%2c-uow+8ZB<(54n0#l~ zh6mV2#rDVJ{Q+3AN^s-)a@pg)6CpF6f4%(UZu>NJ{{Z?2(bbMzK}6leX0A7q2Xiv% z466r^>QLYK#TuL2DKLZ6HLoJtLf)LdkO$RCh^Xny7ff0sC6@(y?_BiSFbG2}y)4%9JK!Nx2k4U!Gul6O zy?b@7sPD)u%r#D$m7*|&Co11BEXzwk9%sf5eEgs#??krhw6oc-t6Hl%3o|!dg?gbb z>OcxItVya(fS`R}69jtZB;T{&N&f)Q{{TvMRR(TYu~n_fs^qC{9}#|iK}}>HHzr*S zp#K277^bl4S}dNAwC|=FX>!!X%~7M#0FB{RD>-{8;Vn%y}N((nCncmLKc~9 zc#0`XK^Va!1mygqow9~1I*0Q7{@-l z;3J1mN;EFEI-#}Q03xF8uV0eql?SAj+ln5ea>Pm6-5QZ|(Wht^6*-EHHm54=tn8e^ zLfL(X5L6VsCxjbOO$l-yH`-{MOTiOM9> z`2PS{V<0pK;zE)JGK9pmWj-QyxC&H`FrW&6@6XqR$J5F+k5Kw0Z|mlsOzG`rb?R)v zd8ztMT3yYPRGOPAE0&s-E9-Mbhiz2Fg%j6bEld$@1;YmZ8GUR{b#sp+K8?CX+P z<)&xa&KRl7ZUFcXr{c*RDMPYWoQJ>E)`cruY?h@h`mnd}i*9UJEc=ZoYU!0`@LMH7 z5?XU^$5K+DPt$nEbnSDOr5E}?d0TVt+qZ2X;2M2eUzZ9-P8oC*tsTG$ zASplt8-`@rh>)R5g zt48x>y*j>KLrO|zTw9yy^Xf?QL&{qUbzB6jCz4Z%HsM-E2q9};%x_5}136AS_~S4b z-j?4~{Z7-%XHcY48fxUEO4S6oR__5%HWuSbBl96;NKozyNHLV5ge0xZ{v-tCdJN71+M|w4gn&B)O$pZV=!E?vX8;0lazr&Tq`K9& zjnmS8tWr|nh@)vw&m|;h;+IH$Abj%I5l(*1dh3)vwKUPxt6-d*oRU{O6ul(!G4~{X zk$JkkPW`u~mz^AA6ZY*+SaF}nDC&OwRm_F{NPR;c?_3{{SVJ zE9kwYZfOc9yJv2-k2`(?`tb|AP3u6(f;on-fN|s@0Ahu;B%eQ6U5_46 z@01TX0std8g@FSj5aEN&19>BZ1tT07AmHFa)Xe4BF4bQ|x5OdCR0N7BuD*HhrJmLUC@Aie*W)3{QPy!Ig zoI4N_Gu{A%q;?S0oRbfRo*)qe$^lP3Ql{k{1a3;0lww^Z5=P~$kHr>EsQP@*QGU>BD;EwGV|4v)NYv{n zaRp5|SejXyWrb&goq>mx2>deY2k{J52U0q$_O@${@u|*)I?ZaeF*7U_qIOB3hNaWr zkKHA__{Z`Lj;2trhG zxRKbCpTGHiqBQ$FG-X;V(*3VZo|6n!?j$bZs(%unnh7Y~{_8EWk@P;XCQ5!G$6=4G z6G-+k*O_R%*+A@gSJFE@u?<-`IP-|ECYwV|B`8kZV}N{sz#mLUA>;LqG_49>hBLS+ zAo18J6Z-KFKM?xG3nC79;v2K(V5o!eh$TahX%*Bh`aX%$(&AF=?y1t|$Up5Hmu2o1 z&mb-IAE*&BTt6Dm_K*0*aC=!Q$YWBvY@~RYXk1g1&ky%zY3K+40E#SqLn>J3@vHn` zx@adJPzs0xw|t-XdqKcXNzMl({G+HH@u%Npa+EOIc>dan{{Z0v39j0dQV1SL5OPU? zpcJKU<8q0FJ{5DE`D}7pd*_a9OI_=I@UR!ye1Nl?%F^;Tg7?c{Qac>qtz;p-38zOIK-mpyLC z&`Z94+1_jOvJKE^Wut}u)Sht?5`=k@9hgGCiTOrnr*>5zPOO`L!J!}~n{87isS>FG z@R@d!-gD+o(xOi!sGjk!^*&kq*H!eg#95SfLY+{azN#%OtHvm>a5UH~~{rZMn$q z$OEyBywW@{N>rtuo`J@-@7y#>3f_VIK2Lpvs#6$ipz z*A-Q$EfSK2803)a;aqt(Ol@Vjq@?Z}a572qA5TA|XuVaY%xYf0=}w+4kZE>%(;ACf zN=YdW%cWAZw)c(|nTKC=ryP5@`jYEn>Ggq0)2j;D(^^|e_X}>9DMgmvkOIREp|aq{ zPUR3*cXCN5F{}DYc4p_N>Q<{xI@`&Gc@dxVP7Oq5CW1-TWR_R79-wlAxx zixSAVZ)cJe#R``{Sa--NGV<$iDM!?X`9Da(IzqOSYV^mYRMj-5pK{Zt%}j?s5@u$a z6Ho8+3NAdNN$y~+%7vpn_>BqFTpg%%CSdD#j0Zg?tviA#GQDDM-tEf|tNJ00m(q>O^rq+_d5s zCo+(>UrA+S)GTcy^ihD;{W9Dtx;k{y+lkkFN9tC69qEIP?)#Dw=hNasqo=HmCA~w? z`oZNaUlTHb{{RSnfm1?B{`ylGk3p!Mkm+jGwQCb2_KlxES+(c6$wK6+Q&Q+p*Jp?N z#&@pGxQcC=S@4KmGX1xfkWb<9r+v|9>9S=|w+2OY(Av3EZnrSnmWf)-wN=0rNB)e3 zy4m|Xu;b4djGkBk(hxf(Ab%)p62Z3GLdnZWDC5r{1O6Y*Ig%2UDD%lD^^CyaKoQ31 zN`WOISWZY#$iN_;K7Zv72R-ozw;=PM)-*htM53uEO)wm?(w5r?z8c(1Lq3T?3I6Dh zQ$C(tec%*IU76W$47-dTqM$RLnJH7AZlI395Yj)iuMOt>hs^a{kVexFp9 zc1CTr9u&jKEv-L76^O-j$=T_xHKDUy1?r79Q}$g!E5RAHrNhR4^zA$AH3HBR^Dsj7INh&8jaAG}DR; zm{Fe9dv;8ZARlpU54IKhn3fMIB)As6gsnj1$YlQjkNLtu4r6ugP zwyrte>X}C0FjeScYwNAX_LS+@Rl4%kLC0sVS=KBnJj$O-pT5|ccguMIAq^MHcsV(f zQOS&h*?ZH{bd#s%FRHAT%ZpK)YOwiO0L#-k5=@nM!kbd&6g>PyjtGh*W};ioT$k3D zA?Ey4(XL6`jnRxJb2Pc8P@+CgO}7{yQ`6H7Y8Ov5RADVn>WsUOgz#1vr%kB=N6ZB{ zRgX|TBYV3nmn%$9ZcqBOqsT$Wldd(p{{VqMq({!KmYQwz)1_&^uL&BzAtk(b%*2$- zNYBWThzTVu0hb902?Zkw9$a}wnd+ux*$X<@tK~voLs4v}raZFO?a5>ueH66k^z)6+ zE(#h6Rx$@aSkc{XQtA~BmbDgUlyNmhrJ~_wVORlF`KD)x`5a3eA1DtOt?C6vPf6*z zzirDr{cA?0wd z?DG#GINHJU%2WUG;~RNJUhYm&@W zBqrJz56isTR@(h}Nges_4`}jrPfjh}SkvnMnO$wWhf}y5!T3M)5UM2OV6$RPX0*>sy7$53WV?3$1 zrMx8tkO?VPVn74A1tmjqPDmbJUH<@Bi`V^4{R!(v&AsKM5G`$VkZQ@UxRc?fs_d5K z)23Ec_|)SrE?g&!glD+Hlq@C0(Shrxmr3h3kllJ$G^DaF zYGbl2K3fY+tii&Ve+Qr4x|A$qk&KAPx@XjB%~#O7Hteq<-`niTid}gwfF5G6B%>=h zoOeo#%_&3sD$ks4$;Qy@MJ^}=tKlQpJ+bGU;QgXDXp896eyBB%L{`z4khx60r`zE> zhyrM)TB?wxX8=v13n4sy`CJGMwKGgzKUicch2WD{wx;BsN>9S4C8rvBANXdTBkvjN zRg~~}0z7(*lP}e2GeHS)QZCFk6_4uoGO(fY$HF7kZwW@+@e>Ce?7AkT-j#7Xkn=7y zQ|c6wKh8dEG||T_t#-9nI!kMyU2+~V^GRZL8PEOG`bW~T6r7~zkhJ6JnEAcxHbeR! z)SjbLm?VDBylP5s0f0Rr!;EGDr8&>YLQkiZ zI~<&Oj6wsCg2fF69oBQV}iJa>c6AO|8GIKcTpYK_@2=-z-5eBEaH6 zfw&%X2>l@7dO!`s)(BXHa1)$Dz&JR7aE2Yq$VnrD4iAy<4(-e}SsPA38^+wa;X z5mT$`jSHuan6<91$p>7|LN=eW1ff(h3SvMuOFLDI@6<6ja zTOj0kemjAjf9leR$wy%tTcbOfo5!V{Gp@4maGD}zo+SK1=9H$C56^N;Zk{`55K-jt zArJw~Abj9<9Qi<1r?v8P-1Un@o^iq9%QZCl&vgF)ugj8u@Q>0hJvdUF2Z9!?ex@oP z+fOx(RMVDH>XPGDmcBB_ZYz;6M1H zRIf=+t8$x3$vlCK6N~~g^-#y&JbO-QHEDV3yK4((ZhB!2C@Vj^WoBJC`uIv$_n>M8 z%FUN()$X~sTWz{rlI9Rx2WsBI45N&kmkVHE9F+)tk3n|Yv#6Hz${S3@KAyz9$A|b- z@IdhtKCW*+cuhQen|2QQ?Eyc8DMK)G@R0~bHWAuJJmEL-Ig(E>a50ku9f0-BEYoz? zQnwjWIUk5%cJho9PGr=l?>mLre-YZ<%Qm(W3Cfz3LsCqDPhtM9qv`P~Gnd{=Xz`Sv zg$oNmVW0AhSUELp*e!dSN~!`^djO|CB-@JIGBen^=19*mljFv)#_#mA5eK zHsvYpfM!lZe~hu{6*~OT^iW|3uo1D+0!cY1;wQhE?;aJCM{3`mo_<~9P-sJnyJ{DXvWd55 zTfAz%1tTFzLTNH;a$Z$P1pXHYao<8zPo!j;#Z#aDhbq{j5{j+eG|jyvw4=mRLS!$- zdu~9>a_!7J+;D(QWfVFsCe@=z+te8*q$yNcW~C(92;sIGM${z)9!3D zfZ8+UP7(Hv6V&7Bxi4J|(fMZ*+}+Kn61C~6cL@nyHi*jS-^d-mdL>hX##97IBn7yl zr46Cgay<#h_;dQfG0>+vCSR$zl<CcP|n z(9@>9Z&c~1Ng3tYcMy}0JS?a5iLE;tZF;k)+Hq>?1ezKsxaiU~j3j(JmeLladgK)- zeMDtS3QA4@IQ%E)jzP~PRI^9MZem*8BR~`*se)6GlYZ2JXYO4nNf|Uu2L?|XT=s9Q`D)+U=*FaxZ0D9bL$ep?UJDCl0d*G7(Q9!`9fEG`o~(9 z`er2%=sDb!f=4{;1o!#oJ0s#5^a3mZaSut)lrVAx5O8q-NXdXwJNiKa&hWlO-m+f zQes(SD0Qb0uc1j1$ifOxg(+VUK~dwmP#i#Mo~CH&t+S=_t7$4z8l!B@s18$xUva>B z`6EAA+S8u&{Vi><_Q&QW%24LeaH2R-^5FCSG2!Yp4Z4(#7HPm-G`oV2Jf1mEhcc9v zf8BC2u-ZbBkT)eEEsT#Y=kxDK_L}G=AipUiabNW0P6VuyWSN(mn44RN zABg96;mKNoCM67&E=HXy)SWtAGR!dA7?*9dgrTNUfZ75F7)n4-Zrn$cKR``F?4VYj z-hW}sPPow=4;A2s@_vZi2h_$&5wsNM8m>PK9G=^TKb~Sb_1`4?wuZ5PvVgZV>g%9h zJ5ml()SUZ%GLeCwg{M}ceFCCJjy&VRzHKU1{btu}O41u$KI5m&QRb73;iuVCWC7>+ ziTa2SY&e$*Q!X~(aD^m=XN4<+^v5yhTyz?J*FdXU^>n3j6{#obvrV3NGU^o4!3T~4 zkJKJxQuKLt)UK|d?TI^#C|s6{FWGksYCa>0sM6MDT*`;$SA>@aa7c1DPR|ns#N%>R zxN*krNXYs?XuggvN&2Tx_RYCoBla>N85UFIN(GsW$B6s9SStInE^KQqzRs;kTv<;72nCOG&zzouoR1 zH*f1)v8hX_xG58Ky1au`8hu(>>3Nw~ zkV{h%%SP3<;uHoqB#;w>#z!z7s|r$^!qkMhoUC))^Zx)oUU22Kmo}|g_*4iUTx1YO zoDJO*!fr6gO&+`3ZG4$BtG)q{u1Ejge(=9}naog`txY*gF&OA)qlYNo| zw9=FS$x%zBo&;DkZm=}Qp{p7LbJ8daQZ8yDQF7Z;2tZS;RVnKCiG7*i73^DC$7f7t zIvJ`|?PtZCOhb3K)H($;nH>#D8`(Mx5N~4d;4SjAxYR_=n7n z+3Z1xztUrA((O*xE|^>fURK$-f2G#Ld<6c(s}SjFvHUE)7N4r&V3h?6T0kJ7T%3=~ z$NvCKMjoY`{{Tl?_n^Ay(&iH)s^j{1UI=vUT$Nq2nPoel$lTLtSvm6=&lr=%N#0fo z2}!{j^zRx=th)khQ95P6C{%I#j+M3-TtX)}>2?Kq7*?=*?4z`DX`QzwW!|#0 z>wi&_KLqOOvm=h%>GJvd@(eUxo`u!Fq`D=i_Z~`>P_*eYWklybEQ>1t023MKpYx3m z(9OV`i=>SxoDZqOn{lZ?ep2o&jlbRS@%D}J4l;5I8<;1LC|gf+0N&@34pu<>zzN5k z5()EwK*96OFoHABco;sg9GMW(eINo;WC~K)wkffv%NX9*WP?B=2 zo&;ff-F~;F+CO^gD~^VhZqTP{4HJ%DLnpc1 zHii^O9wRQ}fs;hCl^ND*0;-49skA7*hYF71?so;})F|X*oX64*fY_{QzK+>8Lv6a- zlv{p6PG@>?;!JocarX{DA!>DQsaYAyxrs)_Cw5d%CxZYZ=L={D=?(|VHA6}hoxOqc zj5k;=6k57ZdtGxcCAR4n-A;W=CmREDuBd-7KUmDp3Bf!cIEy~g>-bo`8{a{dp}D(( zGIsj_s|1;ckR2aC+_wJ!A1_SA7}v6Xy+2*)4xVO|75hHBRFrIEgpJKC41HWt`^3x0 z1g0TRvL;#9Iz>apSWL~;RDCDQ05G5NNr|jdkU=Bm0D?#ugg6jECJ_X{Q~vGZnNaxF!ukbIRo@B9o{e?%8*uTGJ)p0-@^3N4vxdyCFWl_$DYeEQ{>uD@+UO0~wq zaQ^`PBvYTH^W*&DS9>F_V_WGGQkmoLO}TN^sfj^6r7Q5Ja6LJhC!bRRBz1ym$7)s$ zpwo#T(i^%}b3*{1c9CV;g7crtzEzZ;_oHCSB%)od%TkrFZc@9Gj!F5R@u(`wRm;^y zE}EsG*=r)kny9><=@T_c#4v>`9PaQWU&qO3);ACi0hdM;dx6*=LGlm;06gIzPbdH@ zKT`;Dp#-pSPo5zWk2r8Y4g@8f zfJp&3AbQ|-A8vlwgyHP01*{Q|EWt_=Hh>2MnBtjQ!bmA4vM{~9@O?gTHHxB?n%1Er zr!WhWmb{6Sl}g4zo14O&U;D_HLr4eF_XnwtflySY% zUvPo=mZQo2Fh0=re3g-YN4XJ@X|1fSk{e&_i4>8H5`Eb!SNH_6^dWexI{o<3iZq*U-XE_8! zcY*-(A3+Qpa}HX@A-a{$>R3p`>7=bXV}JyKAO9_q%aL?5}f^}<{Bw3sR>Ll;Fkl%{2%6Y!-|Qhp2Io>Zw< zIOZe@4~SAwcv5`3e<;=(^QN^;NU~-n?Kjw#yRGTwE-OZH6lbx_736E? znN8}Ai7`i@PP0$B=@U#=?TUk-kttY{Saw{gUC`3c?wr|$7Ts`WJuN5HDSc0{={KWP zxr$`W;8H47sh~u~E~LwfYI0TFfOoR;9Bkxd;2dE<#%>3Vmw)LJ2Ou5191ss3&wo5d zq@SX%Om#u~mQC`-wST_Utzjp2$qM&|mSrbV#y{3uN+sRT9wTzf?xjFw`je;BT|}fw zQmSt`DO0A;u~ehgCCB>JGJUc`Qw?Le_=;RfI9p0_3I!@L&!^WFTCGJXxhP7c)}-EC ztwx@Qd{nmUcuH2%@C%JNfR`I8__nJZ(m?l++SKA4an){Z8&(GeM2v3w{QWXK%y3Ln z8km_(+iLe|v?Igu&@xtnN{SRaDLEwI`I1J`U_AvWC={oIk(GSA@$-o9)-}HM3V~~N z8$gjt>smKiO?G57-d6p-?i#DhxOf zO-W6(xp|fzKvQlsw3MwX2e?v6PCWNx(hxS9^o!CB%t%e8$ti||((?@{Ee7M|h`kMBOd)O>RgWJeN|I5#BLojI z=NS>-qGs1?*cUd9y4&q5ORs9>s=#}dxga0+$rba+N4rio5=qbDPJf89K1_44lk z*Hj4GoNmYwM_$&-XS#KXQk~#_)VJwVh~vH+Eq(t0s_*uToYZ>FTG`Y4lH{T?nVN+n zi8DVc(f*KL4=A&+LV@yy=fH-fZ0&#`laD9@033P<1z7Fg2WnR za&rU>dBZ@=J^?G9J3~kSVEOY7fKEmr0l^*NCJxk&V0pkioQMQqbLj~AeIXbC1|S%C zBgz*T=gtA0ga~m-Cn6enFbHwaq&SRs?+qCS3HXjZAP^rYS?3TTVM-&ABFUixg=Bd_ zDkQ@;;ao$4PCTPukMuYlzl#t8vUq?`nSu~U_{IVt!P=h&uL1OE5UCPIo+%7G~WoDb#xF;@QDJH(+nTVXKh8QpIxQrqi5CP7j9c(`ix9ZW5&*v|oOZYb2hk>&CLs z=u-juJ%Ifp-EG$0C8sBL%{w|mdj+M!mXx8%@IWKs1kmSC*W9L;>iq*!Op<3!rn#EL zth>2NUYeI-)yoB7@ShkryPm+swfiEixrrW}t5?-k_vWfMt=m65^wWymUP~!$t=_pV z2h>lgfShz${}^N?G8HA#eX=hUWiKm5iv7qNQiTbgaD z_PE|zq*m#*GL(*UH7xT)kExYRV_w^OZra9@Rl-Ibm8{Ds=lEThSpNXxF^u~fE=DO= z=BLu9W{}L1?dclC%9Nm;t;$YeOFl&@L+Z)$1|{%M{R5n0>(%{zzL5AWN!^k*V`?Db zEmEnC6_5V_d7F6g<^*qPnZ!yKyh4y>A4?%5JQT#xTLGuUZGaQLY^D$DMpYevO2!wec0p1L_)V-Ne zJYfE?)>|zgAmi|-x2`$;C`kxCsjIwJ*Qd~c2(#OAL#``RWup{ZK!TlR-oc#B?3V?BslPJ zD&zxX7)I3X8mo6IICNA4)wWJQ| zRaRUR`h)sLIV)hRX?bN?{%HS&JtF85r|?Hy?LR1c zJ6u;kT`K4>pp{2QC@a#9KT97S^b zWEpmoZ)pAU&iPRcjG<|N_oyRlpe?ih@ZJ7#sErZVC{ukh z-8FXdAD~XrYpks!l$lDTquC#1EPdmAkbFh)!6bv^K{<^-)(nzox>VKH3O6YhU0G-Y z)iUZ@Pt++t;TuNYom}+_nL4bKF(oePC%#nDPx-)iPH+Y}1_%cS=h_{No<9a+WGAA#SOY z#z=XDxTNDh6uQUe5tOpD>`D?25(g)^C!Bvj=NNXbTGKamk3UVKEw<}2{uN4y5{m(2!Dd>LW@!OLs^0z&k9K+Ou_HXZOS6T0(@B`VxS)SGCz^P_W}u4Xg6J z+o?l{SCWvE-UHf~cXBrmr#;Wi{Nv2IXf*4Vkv&7M%ca_U^9y10l_)F2DfpCHK8 zl#zm!Bq$t#9(|ozs69?gcK^=?+9jEoV_MDouu4#o#S12e;b8q;2efg4-Se*cTBgINi;4lNIbaBLHe62V* z1a}^v^TcA;WxqE4QlEEH9a3uaWIo$0C3{<%m3L=~!pC)f1h|!cRi!5c6$6mTO|v&F ziJ4+cE6&1wGuV$JJAJd~0nR~47`z3ZTha3SE_a-(&ic1vdom)(I|NMR6W^D{7EGz2M36djw5nQWaKE6kUa6+M0K|0 z)utU~TvU}Z+jQM$pto_!t*LY&Cap~HSe$66d`bm{F!DEcQ;&~0kp<@R14rT|P9zb+ zhW`Lq4J*_GFI)G1k7|=?AW-jyXtT~M@TQ$wVaXLGSp24Gati13Bzi{Xlu`~8;gC`Y zQc6xi9E|b7=eKCW_0GY6Q#6L`u_?s0QK-_LG`G;^#W7K94@o)?k#1qORuA@Lx21Qh zI-95V#-K`}EVXdb>&`jMCpk@*2VO2yu@L`UE%Y7l`rM@gpAq z$jI{@qvy-4xmWBSsrAOwZ+mQ3tMd~IY$%kE8eyr{m5(!p5Iq9S1daAET?mlYE9%L1 zW8tscZB90w+?C3|$LN<;7X#&#`JXtVFJ+~|Xgz4zQiWr~t;y8ss`@HX*8u+jywHo= zNjS+pgae845WDw=j`058kO4eq4{?D29!wyi<(L8h=s*|0dq6pdZ9U-(XAm4`DG+g! zoWquqdq5nB1r6lGlz4{VjF<-z$R4mU2y%XqzY)hgKpMe6s=)z9EQEh$_iW50`j3BZ89wBX0>Y$%1_2cG1Q`0K@pk zV5xhuIDkRKU^MgC!rEbA!=M@f2L=Xt%oE8xK*yJ80#$*@g@fJ#ys-}$BfJAf2L=H+ zz!3Z=)&WTFKP&?rUdGm?oB%$tM}F43-}+J2%r&(!1m{{WPH;q_T}F8=C6QtuBGy3I=JshMSyoXetNO|mocZ3qw=x>;ol zARGlGrAHaUPk8zr=z7d@!s$CpZO2>ioEGH0MZ^#?m#0dm)($-X0DdFq%G03D-4`t` z+K~z~65@19DtvhR(LDK8VO%RHW3U-_v#~GKHLxDeGHJHyBJ!;;o{{TX*k7wm2#Wyh^l{Gy++sF5N zR=H_JETnfWhn^t%kE~jH6mb^|?P|8sTj=_yQ*l2P0^z09QgPU=#mgV369f509OniQUZ1kMUS40L3t`vR zhS-{_R;FCsPSDzB)Rh8z0fgu68&jkjsl9Y=S5}uOSen!-ty<`LvQNT^nYAILbI-#r z!zcv#0TKJ6>zDc~?7dalDzuj^yLR)aEd=o6tvfihrC(y7pJvOrha(Da-)&KhN)--lCA(MKSAdS2mE5o ziCl;TWEcxjK}jTIazW3`fd_EN2eFQ{^4n@%YjxzZgp93fR?vk0WfSFuNaZqM zgU(F45aGz~;-fJ`iBJmN_=ZGK?Wf8XI0gch$HHL){P>H~-yBN{H{^pZrJ>oNgKUMjwA5y1P+Z zP7`uSAJ9AgaK5W5V{(w4>Bqv4wlkRK$=;ubfgEjcfy5GV84wTKJ0{%EOjf-_5LGXI z%cNuYS0g*0=8+SE(3({Bp+ug@QlF&CxH;~k!)ias#3}Z~p=#+$nhJlby{WDeI}l{& zNBG3J(0R9K^jA;k9LZe8rAU25_sXPM%xHA_j}5P<{Zf`%H*c~l#~z_FZ)5zUC)20Q z<%Mm`ukkxZk#PM?vuFI{AJ^3&=x(F9r0!|EHn)`j01z@xlm7q+_q66&$r}>ek#q6O z(WF^eJ@+DAw4df7D9FdeIS>!Z2st@~2=sty{{R^C>eXp#ER(bI%Gkpt4m#!u4L7?B zTCvyxkLT!P&`|ihnCeeROH?Hurp~n6($h#(v+b;KwwxGHKBI2#K77DDDKCX=U*c9u zhni0*DL%ci^AV;rnxZVNWz=mKopBQKkG$TXTS)kZB&XD*)Eh^U4b%|o%10^p#CnLz zG@8FM?H#*zw>GJX#wI7}$(eBBPp(2`$z|kZ{_|^XJ?c{7Jnb>Bdb<@H7GBWmLfq}G0)C2p8il~uyF4d$a>r;zvQkOKtlm7q_ z$G9zi3+l)`cxiMypZciES~xpYQdS1l6rMOF0rm5bCi=D*y)6pep)lu$)pngTOIw}% zG`z~uyXS(SaUKSa-Y;J^9VW3-PTI7yAG50LDIqGAsml{DIMRU56qnmybNC7f;K8Zm zI#9?s=kFZ6V-Upc#^L4X2OxKiMoD7>2c9F39=>q>;eLF2!vQ5qN&LP3U-OuiU=fHo zF#W$c5fs%WM~Ep07>5jI0f2D%#~P4Tgq_I?WvNf=O8ay-0`)-gMV ziis-Bjqy*DK%J0j$w}0=g1M?{iE(Wbcq&5D9Z5Wo-lac`=PSri%2l4n>|u+^N>UNK za)A1O#CrU*6(dD;StT(}vFIA*LTytOT_3GV-Ur>#JV}~CLYk_wl6xg`F21Y|>SRXl zkeZgCWx3jX<8xAz2utj|(}75FwInIE1D-)i1Y^E)9&#k58)jyWKP=qTldY{NVZoHG zr3G(bf-qBz;2!Bw5s2umEmkeKG?B^0KGmR1g)POLsmeG?S0ofqB(%$jWS>^Pd4o-i z;?|@sP4cn$Kiyq^D^V>Yx<{NdCfKdUc`b8pn~1 zvZRudfRvD~J|lq|vbH~>TKR0;n-tuY>qvgno4_2;OKzX1?(@flYG}#x+C3mPvBJ<& zPkthj{jT;fw)(3Vdo6@9dE1gTB`jkLm}hjN#s@qhme1ZU#cm}j+LfnxP)-TQB#aNd zRmZkck4m{LjVsk!4D7V*n{(AlD4mvZD{17cHsS{1{3~Jf{D@Qp9O%a47N1p`PgqpS zSwOn!%s8{;+s=koKIw3eynPlZV{!q{B_rwwG4mH-)ddRsw<}3jKWEk?=C^afZS*Vr zqv_1-Qr%h(s`$m7llA{KMR8m6B4&k#35vCql~1Ih?)>|!0C zI7bk($1n}d zU~UXN5(Xi;!oHB~&;0_LPm{`Yt!VWnm z5g-GY0gPiXi1buDZh7Jwp@V?{fad__4hd0Dpvi)PjGr;u8s@?AEkpuGZs+9zt~!U+ zIZYPPYs*w7)B>%_JjC3taq-QmJ`}P!{wJJledFfpZBq|8x26k=b;WqDD5$G?lry-W zQ^||4_N7nUcXpgueL7faGdDh}UF=HBN~L&9lG3T(qO*gwv_9mrl%v8!YA3OZjMuAn zgJ^2?)ni)E2dTEjR$_w8$-rFUlu>2Lh53~_;v91%pU1Rt1_M3l7R6on)&`eRUzAeX zmad|%=u$F}i6+%Fau1eTNc)KT4`>`E#iI*QJN*GCasL2^+9}W2=cnT1*UOgtb%hyw zQrvkBECO~-&bk_JpD*0D{9JhnMt&^wkL8kLPeYP^6a1j}8P71lPJU46pkq7^_`r(z z_RHDM)^rlkyqjRD$_>}WQ8Jm?@-JebDG(Mz7gbw}w<}@E&nsBXE=_67tsb&ka ztWs56k^v;Fza&vK5RX+UEUh2j#03CWot<2zA&Io%re%wg~k*GiwI)8C;!3bIfn-*J>@{{U8&&(Mgbi`vbUsC2ug`n5}!1V~ovmPJuS zUS&Ie{K%blt4!9Uf@&M<%!K3*idyn6j$ zEK>(K$1u=5;ivGX@_32AhXo0mj;kIU{+eX~{a-}l} z$ItgUkDaxva>}ucoX6BP!%35`QD^9L?WJ;cIaj3KNFRw0B(y=#`^G+F?)z?b&$}yD zjX)oJq10w+ukrrTmsHxnnoJ;`dV8rWwmp!S)QqFbZf>J@F5GQ4G~pYRbv6lAkc1e4_sV)P~qf&{RM`$7~I$N=Nxc9yL0vIX`vQspaG*MwBGm2?^)LQ%iMuK7=i= z)8`)ALW)wQ5>!HaoSxV}%oxRN7fj_!?x?E=-Y!X&fj((rrdR{)TU2GJDsXRFNX`fZ zV2prI^Ckdikdl2*+BJs0O)*lpsd{F`Rcur>9;DT|E*Wqo-*r+;)9xhq1u{&`VD`$= zKQN7(F#B@IDq7Mu;NeHPCu&FBkRwi6&3{j|+UmYvm2ujBpGqdlq5kkGwNAJZHCA=B zp5Oh4FT2&36Y3*BM%t8Vrc{J6DwY}r3J3@ZDHz%l$B<3{^u{6bZg{ecxJEtzKI4P_ z5Y@Q07~nk@LWgW}EPuLqHFQkJpp@%uZ9V@toisVi5&Dyej1% z76&l7-cS7bL0Lyj2hT5TNyvs&qo6_o}QYHpK3zKQ}PfiYa!IqMA zACZl&)1lC%_-a8~l6I8iZ^Mjp^zw~aTa#61s0$`p=UyncZTjVP)D;4cd40)QHZ$ma zHBIB!D)ce6P){Rq$vck`Lh{UG_fsMF?et?iE0WHBiFkt<4l<3A=hWCsfRk64)To%AMJ~DH`1j);y=H=si?v95_78m04SB6Keo1X zA59ux!nW+%DijX~B0-#wtV7>y^xoc`tqNxBDr)s^V;Sz2sq>@Puxu1rejncxqzgkf|5>8AScLxf8rqS!2=^Fx6TGqHxi%@ zLVNZk=a`g7x%n#N&ub;QXY5_iZdc^*TWP0Ptl=t_fLVHEUn=RW~s#wE(2EGSZuUr#SpbJJ3(6NsKmjrfq(+WMr07+ZV>1yNoLv z=4kaD=@|1Rnv0x_oFI8dqv(p{HdeN4{{Tw!FFb}VE1}zx-IsLyEYoKkE;!p@aFiu( zGOwSEbBscGH!nz66;`XFl-pwCs3LB^Va`w4Rh6WIeeRhwKd8H4`O4^)bkL;Fa0RI4f z7}plgDZ%6DVW&9A1d-$+1$G!wQ3Xf!#1cLxut3U&L^o16+I23nRF#dYI0Sm)}k@bL_@yrAA2RVRw1{$t&ftW)+d4PI< z$^wt`f($iWk%$LCIUS($+z32;;>&=f96`t&7#RZtIL`y;0P~NeEdkcj>Tpn%k05-H z@kfzdk(muHp(89N=2<~cfTM&=r-DMb;EZlh%wx_ygpT77$%3E;)GcKva7t7XR7Yfz zcmvG+A`YcGdQx&t6LQXi)5CZrJ5-~Oh^%9U=em1{?W1l|R6dc2Typca%)z{A4yoA& zl;q83N5Lxb+u8w{XY(P}xjRSWPT}8a89a;3O*Wa?cbk}EX|~*D*47r65w|H=S8@~% zN0tYvFdV9FCuv$UjO6+HkLCnobxK^V8sn9_!2Y#pk(+RwB@Bcq30d?RP|5zveIqbX zJgX<+$l{$|FL-RK3hn^!Zw`ZQ6k}{KPKKo8}a&u&iZc+&N zvHhg%Q27}2p22C%W8zK*;lMto2*kAKP^g-vV%yq}ZErF)`2*@~5ei%E>>( z%1-0=B0gV{=kzi3>!&K;r?#nIB+#kqQ67J}YySYI10o+dL|}J;k=z(P-~rAcB*Tc~ z?F@h?9rFkh56TC4JP(pHBgO6AMs1A9Atdrlg0m1Tx^29W5 z8RsyGQSvYj2M`t7810U50nT)yaTw$Fx7X?AdvzA0C?gb zh(nRu4{l&M%oO>-JoAVN>_?mc?Fe^*evlv!5R=?|;BlTHpkR#oMS-f@y9&%F2;K1H zh;iIi@R)cGW4=DoKsi5XUCvA+$yYG5o?{^GFtB?-hX6ak0x%U-P zLw98P_JVVsVICkHGmK^!vOxhVDaip?PI3+9iUv8lyX6(3>(i8z3rDU2*XaxEG@zpJ_sW)oaH27XC81B3u<)nQ(lGjZPMsvGc{d1uSwn3`gW;GbqzN03Tz&CE>)d? zj^%iad)VoHD&OiFyJSqhQ7d)Z4;GqIxN>e$)IQn!G^vl)EV4?-mbbdExo;+AP#C)G zxkb&a59{V-ru+q@{Jb@_$IdDSuFJg_b>!kDnQ~S_%Dm9?dx1bShtA|@)h1p1eV{LL zzflycexp+hNcTA>pGo7DHpCsYsfj-N|&QghuhX)E$BB+IJCp&<&#nq=Bahw73b zHe|wgHbMvQc8~!aXPkdAA3pxjYc;DQtW8X&OH24HR4RzAG63NF>n+TyAK!Ij?H@sF zAxjumGmt(}O@7%M8}=@`+PA_{gj`norB{yXc1`soasK1Y5AMK1i+<^ul%cn2sFNzX z{FPNr`4uvU8|Uol{Y-r^NzJ0CB`G$v{4Iu(3m>Bwd zwvbaoqlA%zDJ*_})uts_*S$Aa7j)^Nxm?L|uU@z(JAPAIn?f=D#3nYPdmR4&5&r-f z(_JAH{{ZCoXgYu}<5SDy`&9{&f5tZ|HmOA_?5MFmvE4(wX*zdjR`2Ta$fnyg$*RQ2 zPBY=lw5Ju{jF6q9=Aq{pw@uUvy}6>+qAoQpRmzNq?b_0oovJk|g4H=R51HEQ>P}BM zNQ^J6Mt`LCU8SQ6N{d>bdeUv#(AmPpF{P@0eE$HtW#ra_{{U&}nBUB)FaGyG0*Kjx zj0^%l#D0-r=+s;Z46+7G(*dj>Fr=?P;ryexoE#_|=aPL62NCAf-44|yB?`8bho5m@ z*-BE_{{Y1B{Ug)C3iyT(#ewqAf8`mzr8y%xjyLd9P@s|&F@iD=%O9KR=N!501aUqF z)o05lDn_!mT1`i&o7S+l1}V0sze#1!3!TnCKQidwpG7n9`EY#WX!%CI)3#8n=Tav) z@e^C8Nh=@qRB1Oq#$d+5`N5(&!Q0=;7`DTo3C7XS-XESYA-@y@hH?j>h2;tX&LAsK z+cNysR-dC*41%}JR;txETWk#FK{AXt+vfTHab)OWrV)l$@m?0TKu2j6%)^e$mF1m8<>jq<*oCRIf>DW}wh4iKdcWugX=Y8eaZF zq|Ck(kD6am{_JdJA-%)^PF3mHkL@2J9y;zR33`I5lL|vKtSy8kvyz>!txdMz{v_@~ z)Ajm@_LI3lDCH_Vtv|!th|yhD*8c#}#l1k*#vE`pW>(~!t0lE<57J(J2z?9nDN$|2 zdMOIWcxH?%sfxmFZmK$2x{94lyya%#wx0*O(@>LT2n76`30K-Q{;^ft(9dbsmueg9 zQ#8F+q<=>$g|vP*+&<)mDP4dMB0*%IEXHB&K%G^;q&jb^)Omup?7c&zRv2-G5T{VK z-Bu8Mv$X~^x3v=ClfQH~L3*FFvc$91HBHDVU~gmI<(ivqmE*Zfl8YZuU?qQ1e)nbd zA=Cb<%S<&dFHo%1wC<>)lD`oZId2kGD#kwy%&EpsGN_T#tKO2Z*-lSwxB#BxK78c; z3`X9w-*)opE^}0^HXM3(*)&~5rK}t&zjS?xwWuE=CDivmQ6eq+oULY$C0dbjw`J-Q z&CRysXDCt~NLosMTT}@9z;~QEPBVgYkD0-YJ5x}Gr7illLRC+>X-eFicbBzqS=6c3dXn=Y zWurv2m~AMR zq0;2(>?J+CHW))+52i8C$|(2#aLjyogOw}*j>mx>J+WAB;g*@LOSl&*?A*k>sUB!$ z!r3F_RN9Z;1K3Ox4Oze^(jF3UAP^t%h2(yazM>jQ=h7MVDZyMp1B}5>Da;=+=@v5U z%{-SWansFryLX+7^DNzJ^cIOaXc34WmQ)(#%3Q$P+c~7V#oM$5kv^{7; zi7hN{3ma6E`GN9{VW#&y-M?L%(VL!W*@}f0SWZ!=W?lH|v|_&vr+4>LtSbz>55>zX zR(wpx(HKd>zMj4Qa95ne9`9Llbv>#KC&W0$Tx{Vv`Rpnm+!5(7;ZF-F&t(IQLtJGJ zk-QS5cIObb?mi4!C3+rgc@UQps&2ec1ZY6WJlmxJdnZi(mGk*=o7^M7V2GMNHJJnw*8n zBI#J{{XXBNQ>J_{ z{H%<-3PKgTD{Tqi;r{>^Xrs~myhDd>AwnzT1Gs=$$bfr5818$XV4m54Y#?#Tg$@bG z>B--bWDl<5IDM0APT7!A>!pK?jU^z%-H}Ao_@QF$)j~96>+j3?%x)lgt7* z$9Q6Y7Z6w803Q-~?wGP@B=-;wa8INpkU2iEPp)BR07eWrc81~*?+`c)9`Nsn`2PT$ zae_}G5!yd65CtY3^Yt(SIqq=>v;YGT;Nfy57_0^F30E1#4P zfn2AEa+985B{=Lc>krYI0Ay|%ga*@}SUh8ZV1)n%M;YcHu7;WGE^tb8r>l+=_^hh4 zfA`oZ{{ZHXo?BvxF>qXT`+8pi+LY@uDaicJI+n-tRDA{Y(A>hhN7bV$H!J!rG*A1P zL0|qH#V2%GXn#)nv(l@1)T?2+4jI|;~w4sRx zTa;}ea+cd05I;ni?U8^WHa`;cfZ^T-dE{jO06+1EXX5!{H*S*`^PHFtq}4K7YGoA#w1VpmJucdhZw=DfKh31YQF~>yWx7?*W$T?f zR}I!>S8Y{XN^p@iE<8zPpHik2>UjSE@NpK>RgedyXuh*FO+7&L^>$b?%%#f1l8dR) z3b-k#N`CQ>GuwB@(ZKvK6XgMg^!Inn>;C{kl&Rl(@v4<;E~P@6Ss(qB)U?E+!o4{| zXXr<)bp4lis_!n1EaqNT`I~ZPdWPZhA*qt%L+sP&A83wV$s785b4&GSNZfp(`d9vW zrlCOo?9IzK!^t`10PMRN1AwI;GtPJHV7S|z>F)5g6yQ_zTftLmN9IFQ5^QbH_tyIT8sKv02B5_e|+41GwQ=ok0Fc5xr2MzXuougY*1Ee}rm2mn9pg=*==kumV`B*IVP%R%b!}akh$( zgsE#*HuLu5KjI*l)``00o4oqNu<1_)p}PjltX$3n;H1se-)f&OPJJ0>f48aijqKLc zG@Lf3(m6_SFp!jx2Omh#nl$Ux{-=6?xg2ml#Vy-r(35cfQ7a(1x6(8J09!tD^o{u8 z3TJu}0!w8{2g^Lfw-t`aO|w6HRT&TN6sZ|hEO`YywY~oU!rOnWWGUJZfIUCw{9_Wb zf*-Hm)fBa}#IB-I1pZ`8$xEaE0F1dAaN-=U*cLJm$VUv&TG&}{JHiM^9=MKZW2s8g zrqoW=q=gW90})2L(#G6Pb5Ngj9L-*ntN#GGDJ0r|@V6Tz0k{vGV0wQpCGIQTzHlyA zUP#ZA^!XQu^HPWF8Q46CCqIXf2qZ&BGY;~{5D6WrBL^o>L|oZ6m(7iX@_-INS3JYF6Ow%SFgSo%U*1N@*LrX5?FiIbKHcJ_Y1U=Z6~@xJH-H@dNAit90s4^CNu5OYPuQ1)%D2uU zVu>Rd%R1UlOj5Ki$l_!>CdDZ(Gr_x>%5Y{`OUM1!pVw&eAHgwMNi^ zl@zltB{&W~vg<#rW{KC*+mag7(CvdssFf;Gw_>8(nqEQOvR!odaz3r|9?wP9`MZy$ zoid%M=iemg4AJI+?w90LsW$=ng-eirVl^kSn!NQ>qicRe$9JZOTdPR0PbC1%hti%q zdhEQjAY){-^3hadAKBYHK>q-A#QHaR#zK$fP*?Mg zjb)E{Yr-krwQ6vGygniP#CkhMG1v|u6d(-6p){aEm9zp}J^cv^{{T499eLN+ZFGyN zv+OTwouwk0f}Z)Dm}Qgp!=^XdfeG41Qndst%Y_^t%V#R{7@MP*14aFPM~zICaicJ~Q!W zfP9DZh|knQC9ZCy`ft;hzt$zyc2@5PfgjWgRXtt_K7+=2AbR8F5?lg?a0<%6#u9ly zG4p`edgrLKI#s1r`@)MRChJIPx^=%Ifw@!lNu?!;1~KQC-9SEx3O-TqY2BDoU1qv8`&(qf)w-rrN1nZqam#oYj7Pz6u?$PqyPS z2q2E^N(rZc{wbD~!2rhUnVOc8m0aB0p|+*cR-$_Wh<}M(!B|#&;N<5KzYDQUVrKwcK}YF1EkJC-@<)(4Kg%$XbAYUF0B0HV z81HW)f*Ds)LT|zPf_klV>LNNIgb?$x|FCky@aGGvQ&j9ISWaQmT7BgwL02Dl+gNiL73IOP+ID|I&jqcU;^W_wuM=yQQLgNW!B?l zeH4KoIWzSsiiDhl536!1?0c(cJ(0a`WB&82kEltBd0EyMDKyeuWz;FRn^4G76bMj1 zA_)=mchqi?&FDV3-da&G=Je2NYie0(QTXLnknFmSd*!zq&(Oi92~VX>PEJ$*0CY=J zvuT%UXY&xWCm;BPeL-L#mVx0I1N(qQ8d~~0CqL0nnd?lXvnF*H+7Hw~Iud!#L@oI9g#e%{v=FX-kkiTYfCHFvdqYev z@DIT47-&4>=>YMcI7;C6g8=fO05W}HbLaJkK<6d_r9Tikf}cOEB|;tX z09A}}4Tl~T_JA?Z(kAzTXUh=b*g_v62*#|yyN*mBEC^~z^oIfjLBjN8i6Jl2s2hB20sDJRqID0LmgzsB+ z8;j)1u~?WH=Lhy|z|Ys>i=^s0U*39m)j4F0sp~4Z*dDo%dx)n00A&jS&alz?%Q^MXJFgPcYEd;n)K=v-zG2e5!c zC(agl!R9#gobq6dmPtZW?Jg~~OsT!TMKe;f2nf$-TR0p>3+!&XRVS+Yxn{JohH5nFYN%+a zf(*3c+c+QY%;5c^T6NW8Os3Mcx`?-B7X5!kE*X26CS9;xn4|cp6U<~1N$~#wf4j*k zUIt88SF+;pr&`@=$|Z+DfPGDx+=W=PUPBttTHPAORaOw-8g1bDv)E;a2b2E>cEAz=Qv>ifJQi6={B?F%M zS3gVuBVFipvoz~MtxRhH61R=cow(p`tIWCo0MDPPjfCrqN*3x$GLTAlb|f9#{*W3I zqj^+LS~`QMP0SgF@4ZjDYfL($xT;;L)krV_Ka@8loDSXMKw&CUH-J-+lb=r^5%-`} zJdTjG%3^4K`f`@^^M}<>&P+N_-+p6v+*O7x`V~UIG*jTyB_Ex0cVL#AQ=j~>XX_Bq ziSb#}nR|e|rw>-k1hqB1Zs9xH7no4R#qKu^6>*jXTVExhV~!D2mRl6%6?^O8Hl9fo0N z(g7rJ1Ou^y+c6!w{M3f@$E1x%tv4~@PSq)jx1_><5}ut`yY4~m2x)GsBcF#cA;DHY zAY!mRv--Hp6uS#VWG1rX@4Ir<8*R)G(g9*sD+9SZ-&PNzOa{&NJ=vm*(=}S=b&Zc) z*F@vUaEuc#EXyn-2fqvP{`raAhZ3c@*-t6K&zxwUiFE#BOS)Cl8&+|W+`?!r)u!80 zaI{QLEpux^zqCEzB>w=r8)BJUVx@4`DH5{**Xd14vhoqakn^pn;0g6Dlw;HH0g`}# zIE8`f9Y>}bWhP;7Ww4OEZUAjbKNfuyN=NA&rEVcPD;Q2Qp8K+LKA-S|4pNVlb!O#d zrkhlx+ik6xpc-|z21BSjf|5t3(s+hbs*=?PA9h*N=waujT<3&1%E}xB`s5$BBb_gy z!lX1(u#}Z!c6WdepUe>k;<&w-Ro8U0R`s8yirelF*|k}kg*~OKAg)Sa%1tC^xl=|> z!H(b)76X5-S*sr7dTchP8l=yuz_Yj%`@4le=gR<$dPQM%33Vf;Pih2~sXn7CNv$fC zTAo5%-MU6?k8qtJe3aUqKQzUTYi#h6(d+(fID(mLQm-&vLE!C?c<1TnK2e{dmb!m= zx{pR3N!vv3EHQ3XkOw$YCP6>RDv2-bgk?8|lWV4%Oszf)*pf!W&;FSwIWDZE_a6dc zF?5u~%}+wQl8|hYgJ(-RMlwlcOu7gD1w@1PDb+y|SKd z$iMyUH!YL%5gYxTG<4Yd!_>~42Eq|ZzLfI`#s`7o%~SuLva8w5XY zRq4+hc2~Sf%p?B*g@37vGoA@Pqr4N(aScJ;g(wh80*LvNf8h_vgEZA2hqiY7KzfnP zL{7L|MO#$5VX~E#3Wli5)IO+`X&aUQ0KSQKvUZY?Gu&hz{#~LZbr=P6t}d4?&=RJp zLh7$PorK`GD4m=h!*f^$3m&p&9Jzg>(vn0MB<$TGerI-aQ#VkmBn14j$_FtdD|LEp zxka6?*J=rqrPAeHo}QX};Y6&fEvZg8v*;2OPtqfngfgn{Sp7v@&TVz7D>kL2B;h}V zHzKFzP(4qGwDIaAx7Q_lesfHydL==1!CBUelAmTamWS_Hr@FB1LSrADv`e8#QT(CY zzx$W-bYVKb}OG>X};>djsI?s1hXa;2qaHlm*`xbj0%O-iR8M5`XBV^`m9xpBzZ zEG(^%mg<#+@L$HX(*4sf7*kqBgrlar44$MW)o2doHjI8ufV5)!Wc&pbz7 zUT93qC21rmx0BD9I6uropCz;x3Niwcta{`AOkf&QcP8dl-$i|E6Ly{3Qld@ed0J3Z ziJ5QimL?iMtaHA!^7RVhnWk%YmeUgIkj->layvmhx`_s#M;^ObaQ?Bgw;|Bm+qbZ! zmlhN-04Y3t$t6EcrZkUG^JusA3qdaD&;liOBvM@OLXXP9HTw7!6L~j{TQp0Kk zYLc9QJ#o+YM&Q;odP5dQx!jE*>7>)OGC`W+0-YWjYO)PCD>7S7a+NzOWLLsSKJ4jH z@{C7YrXJI+W74g6Y!Oct7j*XOS`?L~5;avL+}&|t;V5dL)VM0ZAWa@UGH#;f-K1I4 z8l@no+nm#S#I@9*!omxZC?%ScYt8{eC*((8Fj0g zknFU)>JIRNw)e`-Hlf0hhZ4flq~sMO^OF{hi7us(K_v2WPm+R&DbLFh&5@YaJv!=L zLshhX*u1NfYn83d$#^x!3tk_))n(jVwDUWBw#=~i2e44`jhq5|h|kc~5CJ*C^5ehD z@7g0bSPo5Ty#AkcM^0sHPMKG|&frQ3!tLsw*=gjcCzY05@E!#5@RJgA0OupHj{^9! z=(>Ss*KBKvfbA~gr$0!ZM`C5)Y__}~A`+~Fnat+JGa?3$%MxonZcBl9XZ z*ciq}aR5n94Ny2DC%C-1W#c&PsXYwbdrcWQo^YApe2azf{@*qfDj9QchHms~*m zA>qf&z)Eg}G=_tzKF-QzjaFf|Wv-d}g!`l+SxfEIe{jF|lH{v=_W(riaE z*yO}S_Ek?eKhb@wE|QYEbxyG?uTV_t-N)$QiFOi4rXUh+* zC%i7^3P&Vy!~s?@4TlksVXzC41Y^EAg|v~J!t7uW&T$XG{UMz0&zv|OAQUJ)@x&v6 zd2e;k^b_@7@3$`N2uV6Nq9Cd4O^62!Vmx5#>ZdA}r_xcYu@0f;_R_5C9lkp#pb7 zCmu!-BN+e#pD0Q^{h|fP8+_pF+3>j=00dsN+`Ch3s!j9zxs;Yw z{_24QeugL;+3Pm_t=9gUw&}x-)+VW|ZQpy(2tl&^}OsfOEPI)dDz;0mk?14m=TI%G-$ngkO;hC?m{PR*>X)ig zi9ZzGJuW5ra#VOF$#npG^SF6O(5}RQQ~}RCl23D!{Nl4cvKkEJ{Sw*gCW9cNx-m@x zzUlznC7fRAM~*y_;+$_k^@xD73MFovandRG4GwX+x^-GriTOvGKf7{S$wz3i7uel@jGr?i~l11~oq)0~mt;_-%lL((HJvY%U1svS4CVAWqA%|WA0zJy5LmYkY4m5>C?r73evERMkV zY)zzNzXBx`ty4l%Qk-p~Hi?C#5ON6IuQ>V^=(W=CNxDwpSyzi^)0zX(NlLl@057zB z@gYlE%ACrStP)8ilabH!{&Dmd&~(qe^ogZQN#t8hwv~6nkn_nLe{{tgJ5D5Cri-$k zv4V@HsPcY(I@_2@{T`2A{J7<9J09k`=Mqe<7LPkoczU+fyN(~^f!_5^*$$|mkR}GZ9WmR&)9Kqx zErqmMcAaNY+kFIM_r_7RIiK&TPz)VhqKF#0V@pkxF2l`OXZ0AG)fn2nDu zBQGZ|i77_HCD=+@Z6orf2?)(-TIbNKnwAq*J8Wlh4hzlAhl{58gc!gZ@wgkfkkNC?!iONFT%N_vR5P zBZHXEV@1Y3a5Ib?@DDJ3AQ6y3?07LpQBvVGp!wvcQB3jw0BRNf7>?LiAZ_m)MIg^_ zBPVG&`uC2&5DPgX9h9UM6MzOu^bpg*$?|}uC=-#!(s7RP9ZH>ALX{yiRI1LmEh!|^ zlM_=8D+pz#(p2du9g>hw>l8;)s#N;_0PD(4l(6xnT~+pF8Eq*cQj`f^RH6JT_hy_~ z&*xe7iLvcs>Xu%`u^Z{$(5olCJ`iP^QcHROw`s-}<>Sex&2PVP4YB zenyLQ*;S%Z=R7--{qZPN)NTQ7ODR9=PNZY7Z1`i*PKU{l^~Z|iynNs|`i`uoiKSHsS2SgWesj@vrOh#X5RmCN5bnGS`nJrAs-Zsi50XQmox|1($`yq!F_K7g30ddr4 zD+^b{^4w!1PH8o9=^b&_Z84f;Hi=4&D(|M1uO(8oIS|vqBhfQ*Qw0A2+Q!DK)X`0> z(d8x_@Y7aP(k!}?GMSLcakP&u%0q4*c=$;35f8O1Q(e=qYITcELx@a;@u$pNvzcEW zAe)(am7MXpE;fKM+$fLCVn=l!IX`ab#nXAw<-BT*k1Q^kR^06Cl;x&zLq0`qwCjIG zC`J8mLcM*n_UqKk{{T#H_T{`r>U3H9E2RYCz{AOKBR%nnrGADariN-<&b9kErfV~E zMsBAqVAt)MlECgnT&_qqPn5)~lG8XILvm%lUlH}>Fdt?mhy6Iy z&Y&cGH7w3iBxz|*G6{ZGqMRS807qxo!8(+66?W1}&dJLe_qaWj-2A2w+j)(J>{nE> zr1ff5X;Qpt%V{dXJc5b;0MiE}=ejWuWW~0+4_Nw-ODvQoiE7p)SKr}Ks>&fL{{X>}jCV<2oMwF>+ppW*GwFnj-wee44qmA`r6{FJes42wtdZSHFQ}6m`=PcR zy6F0i)Fb$qR;yn%YNUkAslYU;Hw>(T4mnyvP_3ZwJC5)hGhW@8xtO&yZdpr9_w89N z)Pgt-QDpHkJXA+u0M0-$zqF;MK7KwjGaGHNlpq0w?LY-701h|<9$ZGLvr4XwV7srU zQcRr>ZJkMRSt%%CNq(Z>`Ko1YGyeeMr{^0A>A2}ORk>8V?m5=wsdPC&FV(pycAxf9P0JxF8+w z%P46$DFsDa)N{KkK6&%`MwIDh!KvC>aJ!1=VcAOlqgH1xTI8$qhGkOI6T4L0vRqzN zrrKok(f|uS0Kj`K{VdKH^)KyJ%E9(wHzu?^u&& zPGv*Ll>mc}`m^Vll|@@u$H>Kf^(S!+DE6UfMd+nC)Q!zTZrq$+>>){dVrE$&ljN1Y z!io6^4e{4!?J93gbxZz;%X1Z50<%NBrGihurAX8md1WWacxqW0&TwOY(?ru9rSCv#C|sE?hW3t{xButo^@le^*c zBg!<_Kzg3;p>+L1w<|~8uDw1;vu;Xjirq6OGa`Hxmr{Ak+iY{30tg(Wz({(%I##bP z{W^J;pOl$tOiZxyH?->xCu50HPYMMjj1i3Y;Ks4($rCiaJr*raVQ*Bd8jQ`D)IX(CKCSu z4;yp&cXrQ|1aH#yD^EJY)m=DRygGKEQe-t6mW_o8Ow)L$)RHrRR8-uvrvpD8Nh27M zq=h6Tai7iRVm);$D62x=fcOx4;ES_AY;wrwd!f7w4R zF5*x99faKi`BhStnRi7w$D)oQ|w;~!a6mcA$M8iHD=eaNo7*Qr1 z4o)GY=Z{zbl<~GK1z6n&9%2T27)tLKz==2m=Ltk)eIO7HID$Yu%r*xA0l+W-Ai>(L zr1_4}w;w_GiNrJmoWUpM3&a591NDWR^N#TYVc6q{0U$%i+Ahi&liLvBNIb$&8OVSK zJ>myrm?0pX9KabLNLj(ifa94;P+MA*LR)bvKd6tN%URa+i`oMsiKQvFEqzz_S%vli zmg>c|pZ%FsU;O^(7;q$zN)&;PZdYaQn|hUTN&*?HNik4wUga|MJLy%yB=LC$1URZz%^5PZ&^MtJ9hzaDtI4BW_#kDU_t-V^YEBbAA%a`ca z6q}MW3C8Rt#QZKJKZQ-W611!GsQ|`O4m_YKuu-u}J9!uf9&sq7{)aAGi==+L=Coe$ ze6ufDpP8}hYH>STb;UWEDS(o3@i-dVbNC-4&ONVbUExr$df%0<)7?`a`JRP1rKh&k zq4w3EP*ArLN0?C^jAcI8eK4q4TEk~`8Ebg5ZdUe6&P_IuJPM?S)ylX?$=;@RV?Ip$ zjA-v^Mf)eI+SzGpEQ%Wq+?sc9)k|SvVYNQnuBjOqtpB*^>zQVH5K}MFFKDZiBEV3Ejt_97oVcv+k7bC!@V6l6@*cT@cOX zUTJ=5_fz_XgBlVAr6yFOdB!zglNSYMlWwg(EV~Q+t2&^ZZV4D^ zBz{t-3z#3+k8XBl$3kUg+3_EFIZ9QKl>Av6y-3>zmr62bW^LzuS;@r(Ou5G@AA}D; zo^U_3VpAQ{!f;*P@Pz^g1je(~iFPWNj+Rkg3R)h!RaJWn+5%*0vu`Aymx@{bQL_}1 zl%NEHcLDb2F|KQ^qN%PH%(pu!Hnn1LK>0f}GbJwB{{Xt&$LkW?hBg}sC}9n)KN3;_ z$;mhXf0S|n2VnuNizI{QK>BVu{&|i8CQ+wLdf4oJNo8->N%n zrEMvhzN>!kH(8wqR^FqjcygmTv(xc-E#)paybYrW{7Xnar&0Y*>6c74L$`jQ)SFz( z=~HxiGcFH(s=gDDmQjL2Gk~WQ0uT=*l9ZY=)@@?ejUFBr!fA9G9X$nY zOQ5-irr}YtyF!nvR$!-%uF~F z!VreQ!bSl;8)@z${%tE-(9z91rCJvFm!n%&r7+7e?+XLLmSH=T^NPkd9gA^FIOlof z#*64{quNhOx^}PH36-9|ZZ^`o?Mb8srIMT!$uO?|3v15hekWYX{3$?8VfLx@lO~Bd z{+G1Mt_;JDBl>Glmve?toGH3;6qE5NsP1$R!a!`3mjGYnG`ZS;b>CmS$3?UE9vr9Sy#+PbDfqz}pvM7L_P1BLQ2NkF0$Cdp#d%J!WY@eFy{g z%YdGFQI>ck^f<&{@*Fs2C*j^O3G(D5AGtru0eU+SX&0J^27JZe;o@u1Sq z{sgp|O94p!%GTSf{{YrS?r6nfb-f#~?ggm0-7F$w#mC8&@zk)db0PumHc?S_;)SHHvuUZ1l$4FCd$lsQG>j?vLR=J5) zrN)$>?5RrxXTC&NpSBH6)g*0d!dm|T&@S5LIST`v3UxCh>AkgoINYAc%~e(1)8$i5 z=H?XS<%e1cVI_G|WG2aZ1D?P-CI=p(GlN$30e885dm-#9^XO4_SWu~MDa92jPDwoU zp;0H2NMs+rBT9Q8s^Ukg`N}fagxBo~l{_T&QA*|CAIX#a<1W_=hF03>D*Vw?=Ln{i+_JvTW`SoJT-KH7irltzT5_AyFK zQZ9{Pq|AT}yu}V(V5jr8w%p(!!T z?AfCJ!q(2Fq=Hu3q;Hu?6sK?D37e_}@%}$7M%U1bQL9JV71UaZTXOa4J-c3)&k9mq z3Golp#!G?&J-VL$k9E;uRG&dI_kNw$sLeP5z?hMoYHJ7o09Nyd5g|f}0Rw4B$qEO! z;x$gRN_)LRz`mv19wo7N)BHuHKOeeOLg~{3pUauHlz-fft1eb@7DBnk;65HO4m~*s z;W;Ci%@4s!c*H$8?~f=)1Yq&!18^Op#(SGz}ynxQW?q)plOH|)75Q^5Ds%Qq;?gVPSU zo;>j$wwcqU`fuq{+LE4>RxDdBsfo4%u&1WmmkzwxAH=uG1Lmwox9i<#x~$zd(Wa1> z6{&igM5N8M3EH_PoHH{DKOj)ve^}i5q5lBiEn3vm_EZ*{#avb@DN=F`HbF^!N$>gJ z60Pz%Nm=sY8F#dP&7ZOK{((TMzF(_KNP|&*Zf+A57m1jhbe}S*haEZjnAbf=Pq%yB z`g_x=4~WIHhXj+DAqoR-Ml<)02V5;OW)A=)V}snQ13w}mvh!kUW@)Ar2w~vLi8%p#LX;2C zD1NXVl^hbG=l=i*uFq^$sW#P}rP{wr@kHgbaJx#&N+~&+Y(B{+%MMB4A5}$$xZ;tG z*a%T1AMED<{{Z4o^N9J^#+@%zdQH??1eCZ{PMb?j#VS$>UyUNa9H9xpDpH$iEZ_MsX%e;iOAdrQB%l0WY$Zrz4)qQTh;KHd<{{^gpk=rqN*xO53{k zZl>mxX@z06SL7C?&LIgLl{(s-c|?9CE3xwMeUv(`oBO7w?3u}xJ5|%Fqm<;Nt8;># zFbndk&+y@HwlX_2h|fCb(~Fkr(rH~p)07YC){@lNzAgU%4Wgp|0K4SO%k2j{Txlg` zBRiDZQQc4yU9^=YZ095Jk~kix9OQlD%&$^dotdT8TuOXOWZIr5{;9^)(|~{9N&2K1 z#Iz?^t<81PyKh!4hX9heWW(+<4&_Qrp*Waj!JZU{5~Sd8MitKN#=%b4cLjh`p4mST zDf0wz-}yjmzM%BAonz4(<4au|-MJ`pY)cX{6F5FL93#&UA*1$=pG-QW?y_hdkEnBQ zZm88M4I-))!jVy9_Y-L&xIQy(aCsSxp0ptjrQwwW0bRsDmM8ZAo4nZDquvWO;z6I6S0+G2a%Rv=uaRag_J;ih1i^dSc+aI+D=3i>|5LLgA-s zeYDm|!*9#5%~7CEeib5ZseqA;7G6J@P#Dj$4(2qTso%H4u+?_on`3G0r8cBEo_<&{ zb-;tneEEAn?;%j zPZo1=wNaVKgtvM z`W>_p=L8T2F#wGAFoaHALOk|@24EfzA;-6@W=su)K9F|&;C$kTLcoENM-Yj}>xd2~ zHUdh?03R+U=U%ZG>Q^NDH@qC1bFivxx^ zgMr2dAYi0t10Prbl@XDQMYF9B8*$vghV!_2L$EX6F)oBga3KVQ{h@P_^@4HFF}pD+ z40*$`_kod|;t@WgGMb4V)EhCIyQ90pVG^yoH*QTyS6EO^(%PGtOHQm~x$s?5dGd-q zuh*w*QdB`unq0$_%2}qjypyq{I^jZofH{Hk0zQa3tD&`V^x>*BR~yP^Eb7KEoRGB2 zEonIOJCG0BK5-mgSDbR73HsxhV@GWc6&}apJ^cYV{z5*K^di|+ouRsaY6f;YMYX9C zN=IxhxmNccJoj#oon0!mSAObEr({dZspsqU%6&Dqz|MSWgrJ|%QS`_Xlx=C0gdrJ1 zQac2Lf&8%m8DT9EoUHdMJQ7cH#B!&w+t>_4P)OjM@eUq9eIN!x09uuVr1|zHHN~|! z%}ZRbRHj^?*p}_TB&QYI#c}ERm85@lOlR%#jfmrkLV#G{r~pYDbLe9X(`g2#r!K3- zzYMD6u0FK5g=8*XQ7MyWA0il9zrJEvYc^~EJ`{nI$N2vMnTLQ?-Wqe|j!tpu$7l<5 zwgFH$CKAsX^hR@mjQrp)aZ-3r%#F(3*hf-&ttn1UXBMO#rDZAZ5<8RR5^&PJF>oXRwM!Ig*!8oOOGk2vyZ6bk6I9Bfk_Y@I2>Toh!3uz|<_osnc#Hn^^ zmL<&8%c)_6Ah_e}a3!=PcO`rQfs@QYeyaVcdU>TYbC#ZjIWK-(=n7_Hc}}g$B{|O9 zf|2n}uRLu+gM9uxf|CV0)23>*t#Yw#YmZVB+LM1|KUJkupK;nv4JrrsJJeE-9OPxD z*g{YUB%Q!UHPaVHI@i@bRDVL~-?J@d94$^<)dt*5gt$osNN*gz?>X?%oNgP62O&Bb zg+j5e-B;@RW+tYqch&oGE8W>?q<-)qXZL7IKtl|m6%q#4(4EAQ%v;|>od#RIF4D#E zc_Lc3sr4yCY|jD^av8$5P`nvo0(* zRjeTAa$VR@fXad830CFzQm}Rf>_~3AJ*Bj(8d9aC-8+Y#bTh4q=DN0u55~IqAJ;}-M9E{6N&AQyA ziWM;X$_yd4P*kTBq7sy)AY_to00Sh)9Nd$VZ?0MJ;v8v34xw$7skM#@NIqbKG4h9l zbo5I!sUEGgh4#V9uG(uSAN7vx{{RI=`f7#FEPXS&F6O3^%d|=?{Of918%o%eany6) z2`SI6Vukt+r;3kQT1_fjQQ2}!%;Ua%B(1=H+alQd%)i9d6Hv6qLTGK0(wg-_0hZ!c1~2eP^;18B&p4$aJk8OXXctu z%PzEnPpXd`MCbNy->qML7})C%6;0cSnYSlWPD@LdeL8-5Y$`>0GheYM2nU6%(d9WloT)-3k4O4w?X}Wg zgx<5V<)u&SjE!)qO`Mh{3hB+9jQ3hw!9KA@-sqN$ntxIKT%aXnjX{-oXMh6To^WFy z@BWyLq>6f}J$y^lmV7oY-6eg55_ocAn^|apK7JI~&(b{JnkY)7^)1yRf;J{#z}sxrYSz5T+l{Q$sj6`aC+9OHz#ldKp`B_yoQ*)R ztG08?RJ)Z~2bpDUs|#iFH?Xv*c2XQmY9BEk-3D+}sgku&0!-YyQw2PXDZ~XUj^B$v zq;{Fy+@oayNJ+p!Cnp&NKU{YDM^>EAxo(!*wY0eM8y<)bD1r6|5a@a(StN19H8>=b zo*;p_XOH>f2n2DrFxh-1!Tf4QTKGzU`(`1}LKH@-m3>sy4dwP~dX09@Hl=gB#+qq{ zi264w=+E}m69!^oxi(ie;`TPe6za+CwIgx73f8!vDe>#|I>kxF5z4nz z9|u0X?)_l8<<%6qbM@DvHoC%JZpgJRE6!n{2E{t+Q6kHPdF@tq`V*Mm)Jk!lyl3tw zkhMD}Cfz<=cu2wu!;WL>q@;QQ#AvH^rPsZo*Tq;Qd%dltbZQz(RDK0cR2MVb<`S>a zeWbjMl4WI-+J8EfRIGQ&&+_dAVY<^$1WMkB~z&dv$tgI%gL8zSUio3 zcq=`ygC50)Xi)V2&7oM<^LuG_{W@NkCQk)SvVef4WAQ0UZ*eENQ90%tUX>Mlij5%R zNDNIHlFrTsp8<(0;g_Ium+ z13f&qsaHY)xOGOiQNC&fl@g`SJ+@qDxkrYCtDZnm@`&B-Z`H}#wEdsc9lY-9opy3s zuU1MGy?HJcWhKB)NJ(0h=H0ng)E`XPwTErWS@vBD)TFe8Nzm!cQzgLQ23bN|Z6JKY zJNaf4evZ|_Tcuj`I*q|vnMAE7l_vEj=Ra=U>p{Y$ZJ7n{ zS~&b7Y34(Fyuwz3J}xBFV{i)z+7-^aR?)T>FmP?VZr6(LhBxh~mB8BTu*8S~r+ z%K%4Gi(HYqZTSlHw%6sVa>3Ox!RH%YYvSN-JHmnIg-5M1xFEXPkQ9-WjlAvzVCU%( z*QCuzMN;L~JrSs^e$~@`LaRF}#&WSqs7*UJD&ljD?OTsGf!QG*pg=*Mn5N$7m)Z|o z(K`IWV$-_j6>dw+IPvhzyu!Wak1@EMDMxT*l1>WT2asaf!WIZ}V-u%J_cla-YY z_!tFA?URwf5nO)Q9U7jSquL!pTV=*)X$~UYtUoTIl3H5J(hntB7zlgCM(pGlP&kQs z(hk2!^&8Xuxv0izu~-ZmeSIhcELA1K1K9w66$K&e56b9(j`mdJT?O?$QPY~@+mz8Q zX{b9=wa{4F6vY681#EGx1dB6>CAC@3w>>p{bu=W4N>e=*0VBUtOk zhuGaf>19(&Z^32UNEHr&tk72e@M|9 z#M&%LQ= zbCL7TIs3*Ft(tT-Q%bIT0SgJ4t4OR!I^xPiwEJof$~+V~Np18rphuVx8KMfjMQ%^T zFokyDR+LkKPt?^usNR|X08Z! zXb)EeQM82C?g2?h8ByR2f3VMtdTcE>SDe$|R|)Q+%jgsVOk zR!WmqApT{0ni)7gnQ33I$^tX#eQa7mV;jD)XfvHZ`8TD+k)GtR30GbYwDLl zaU}YO0+N1_o>!rtz#}j+e75BL;YPpt&~x&Ix&$0?m?i?0kVrWB!UuA=fPS6fBzeI= zf%*s@W*mD!126;(K_G}3#2lCb=M6pJlLI(8fN&mgyB_cdXmJGjz{5{+Ad!^7De{ML z$1!MR5HcXBaREFIdqfU~9%0*)96?C0$qY8h5D-X0E2G~;n6 z(g7y{IDkp*1v~-_ExV6=7zC4!L=^GN3~~2_4+buSSHE^!u>pxQ-Q>Vg_pO&UJpW#fbn=IgC=7k@;Polv+jrHGo z>8jt5HEe%(*-dc*m zqt#{6=a8v}7su61=j9e1Xx_@L>h1AsE#!u6s&xsZr1?EGiK&Mb{p9!~`;o2qHXr{0 zQUbVu7NrD|f;T5|9DFC!>kj54H=xI)FTW77A#O+^Ip@>Q5HybiBhCg$IgYba?LR){ zJ)Eev&~-}4z{-@6KEDAm*&h^JbU1^I!p1wo9gh%6<{~j2Sd|l+XLre|K`4HOP;Eqv zj4Dmwf5tv$9N>fMl>Y#LkERW0oD|(4zGv3Gsg$;AuPI%>44bO|06*m)G$8@PfC%Iy zW9QotYE-HAV_0JI>i*80m~AVSwi=zdUkeyYM7t#|D?VSpb)UG4=12$$NbHf0e4?;D zk=88=!L{l-uXN9~B~a9g`fVFom7{X!o0DbPsie2?{{U9CHbGW#nS2})GiR)fBqMQA zPEu5RsE*|MXFi-lO)HTp&pF0>!?xi=pPV3-XUhPFi*~ zZs4XPeMN~<-8~@ysdJ8y)VpIK{wG%0?H&6vfU9EIq+6~`nU|?@Oi8@{z>giq&;s1Y z_Lfwm^CmnijS0FhYCR1p3zoMQiuC9s;Z(s&o0LKFB_&IH2h9zb%@}Alk`i-+#~qX9 z{%7uBv;86pRHL;(WRiRRqt35ZSfa=~IW)|}%pXx77dpTm%^$Fxm>WZ0{ zqb<~}yIF?<x#CU`!P9d<0@#E0uWI3K|Ej4zCxbZp(D-)5S4&F0$4Ti8&f= zE=)`&fRfQ6-wi47!~Pn#B>^ERNZ#N|K;7u|E7V@7RBoko%hF8^%GRh(w3jP&ZMc!M zrJhPhiu;EsL;Fc7&PqYyD_VkMy`#Dxr2P$P^yS%Dt-o_$_dLOFuXC6X7buT=FuflN~W0AXp>HlTAXhccq|Mscz?zPy|^#?-W( zsPPr?W=C2YZKWDFZ_PDhS~k^}OOlpblW$YxnUX?SLP1lnJOEOFN^(}U6Y%7o1P9NB z{ioeSRSi#4^&ZC52UPQkcB5LaNKJz4i_Qw&bt6B8Ky$_;1E*4Im3o|=8jmA0JuyD| zWu)aL*;9_Z>x3n=Hr@#y+T z0U;#^AS((?0aV9~;aP7gP~5dGMP*0S=g&Dmc(Oli-mD^i^|CZdl|8w-9Fx}-Q4KE$ zRMg2RU@0Avv^0gN9FvFqyz6~%`avD~4luX(cMqSFg z3_m*0!`zYIh>iZq=>s{{n-hp{BAstkok=4&E_iJIxOB!%Os>sc9@VLgJYDd$g-sNJ z!AzpvWE}qhWi1i7vp8o(( zol)xUgiE#>wQt#RsP>|EmfJ$SK*apANhEGUoM+)2>_Sd48b79rDCz$I+KH+9QW4-$ zuj)kgMvB-VA;dVQ>J04pAtGtKe`NYZ-PQXVYNK1TH9mnNr>piAYu^}X46bTMaX#rk zE_uhs(vs>)_(GULJ)$C|{i?Ob)zpP@%4NW$((0&Tna`X;`3bX6 zoR*(pl)WmnOd#it=~hRV$bOMBJ*@PHq`JAR)Qb1Z)M(Vju;vKKX_U0FpUgoSC+CkS zhAUc9wI^;3T_8>UByfOG|yHol3{g#Azd+ z<3A_|XvMJIGP$Z3dP&(1UHDK=!7_gQueC`y**!g4~KQE^#6?3RF@EJmwb$0q2-Q8T&+& z6Bwqg&$~#{tIn@3y^cuRwKngNS3(pQEpCo^$FGORE?`gky?^4 z6hxCLI8T;O-YT^=f>WNH>Yu60xIN-Bs1Nt4xnfxb&+e{{R%OBXZBxDfDVo z#b%)UY)Z&7xw(ZYW8iHGD^Wj0q@Sc$M^hS$P|^PYX4NKD*P3qX*4d|K=2Q>^n`+Oy zQJW-lz+uLi^#Muq5D{Zb?&ql|X;v1zC5m)|3wm7&BLoz;F4#XZ zeB$xY(Mu>{ut&lY2pj-0wD-vwF-tzksv9+Kt0rphw3UiYt5JP9N&HJwY~=bJERH;) z*!qsth3N)^U;3KM$!2neZ_P}|sGo=5JTi%7^Zx)`<8dX?q54U2-CgP*U%HTSYJOEU zwzTrseLSU^2>?8D(K*0c%T8yJxU1I@FIvKY+xSSx;~Yd~_HkIMvU)wR*-{pn>io3j zc42OJadS_pO{rdg)g`WCNLA}J>Ljq7s7wYKGZNClXRurDrKW*DHLWA>6n78_!b-Ap zyBPxj@&5qR6+Nwb$o~LIe$`5i{{TAb*XM4b5AqkfCfou zkIZ7&2gE{3Nddrn;N;{Fw;76n_R&xTmbBP6VPOE(ZB@vvz%Ul6dB+rfxJ3R zQ=K$feM;F#x9&ARO|DXuW-a>kk~29-oftkM6bRhkz@6wF%2HE>r79K2(I-}SFGiQ$ zXQpnWsVzdbFE9L-I4Scz(-sll~DO<_PE6oiEXfzN+YgX@UZy7|+toAnoE ze?qkmpD>qY9y2tm#G-;H=`)81#$o(nJb(&F+Oh^lKqF0By5p*SG1ZZ${aQ~kRkYo3 zu|w5~X=RB=vT&9v&7>&H%#Z*JBVjoBmCC?w+8roq-mcUorPxa}EBD5zFxUhZD#%Jz zG6GKtF9e4$KN5nBZ3HZk2Ha&iJmhEV=NNt8Lu&lA(7FuUFHW)=tI(=4&m~Qn#`2~X z90Y|01f?oGf|Z$7Wh~%8ovZ8x_ z36}ntiy7D1Im=DjFHkgzIf<#u4Tlq5mX%6Y^!>FpwA5SM!C7Fm%-cY6S1eFCaZwe$ zuQq(G)6>nPsPy28=B=xdvF~gwEg!R|<&W=DLBT?uX^dm|gc?_EucdRkk<$g$d|UF) zO;q&0ywt@-2ua=hB6+=~cpgo@#!i1LiacQE*!`84{Egqy?YBa1XiU#q6$*tCbtk)I z%qnG}^GAaEelIK^NP}L6AyDM;06@o_BaZq0Pz(Zd!4WV!aKCH${{Vyt`ZlXnrRemz%EZ!wS*OdnHsL?O+6vGA01SM=SE{oW+O+LzX+=*|CZ3vg zN6l_5sGropOwVMU_|37@^xe5NGPE1I*q@M=0P?Ap6x`x5^VuxuA6T&7o$jf7yQv4PxT(9;(pJfS7n}`EhBpU z(L}c~wLh6&64!y|a3a7xlGoJb^{krta7+vvt#Xyuf|c3DPfaKfuzZh}B7SAMEOySg zg>J2PQv$*LfnPNB4=|<3NzDQF6ETzI9!Fwv8ZSrcGm>3OYrU~Egflw3V(gVcJ<~Nz z_cv5OzfJ)CV|bhv$qL5MRgg29*!I z16paG^p{cmjjhynO2INQQ<36vT~pdyJK-k zBn0l{k1$E(AEDwbxRuHjQj$pE9`VwwRM?|RJ5ZW!*AUBUUxv~*DP&*-qioXQ8fNw0L9S>a2;1=H(*Ku@8`^o-f{n&P(T&qztQ zx%U#e`RCl8ognT4VR+gSeA3!NTOLFwK5_4-BRDXhE^is(wnQi?zrNKYF<9%qj6*Z}t`89C>-CO5`h3`;&9(p^%J z6}u~0C$Ju89!ItZJ+sV0?zUz%Td0f9L!$i^a7atfFx6K6uey~cUY{Y5re$(4Tu~cV zqz?O;8N$_xg>zTsEz5d-w>F{S$*{KyPCg@y1oPaIKm*K>2Qi6hJ%jxcrcKuB&9=La z=9pblvodm}Ddl5m8RZ}&YIcs;1Ij4JdT;4#N_tqd1+!pMlBvg=Pwjf_%2KK7o4!TW z0f5?ab~2nH8P6&zQQL&9r7f>;SK!FT60O+a00s}NIHZ0Aws56ngsT9U)_q0l%)W-` zednr=Ew#Twq&VcV9CQy7WyJ(bjC!f{fIdSoqK$gLxobMb)&`=~X)Kzo)kf-ihfHcr zDaA~-!qX=#mc}wlgGd7dlCCowFRSe$lh7S1vve|){HwJ~K@!!g?s2of#<*(jEVnDW z^C5{zH57m`vCyvW9Bl7rri{}pJAS>_cDW%*q}#I7v-Cjd3S7dIy%RHGJ5 z@x>@|l$i25&9^SJbf08u#rA^L&#RZ@_3Kn=S>Gtk%$C_HROD{(*_3U(1Nb-N&I7sZ zaiR&0WxK24ptB)Ll9b#(DSB)u{{SWr@{bdvnNfZFPii&y3SD8lrs=qsw~(czPHZ6h zZh0m)=dp5zmZ{p6a=6|@m1;DYUVrG?n{bSOeI_-JvL0Dg{;qDC>*&g*Z5pKDInEq* zc2ynzjw%|ulwQyZNz#2}(4McUjWo(F3jDpla=w5*8gt4jLYKEEZ-%MFWcjTl9EhGO zEulNwJJ0|qAz8=?JAR<&F|B%v(t38b=%wGKbtaIcS1FGoQN@JeiPp!9F7F;eX+h7H z53FnMgEeZSsG0>&x32XqyUR~z9J1~3k0cLYw0$T@Uv>_u*6+O` zd2YQwYpE2wj*m9jK}@{VzUJmItcO{3wdEv!WE_me1ocIt6&{~;%IDKcgDVo!69#IY z?*%VNx;HSio&gv;eyKi?8DF#h`=#l(S2}lJtxYvABK<|$Q_rbDB_8(5*hwVt2Imu# z<(&CNpL$`3DTw-R!x~X;Kywb9ytqwUXqA}0Fqk*u`2G)N=v#%SqpTtIW7kTB`>$T z81Ctd8sSA~@*fAw0P%>HjAFr;M4d8voZ1Qmonogh2bRM&wIwtga;;HGN##mzUCpEQ z2?PD_lu9(0vqnm3eJ#_jS-?{D)pA$sOFzZFd2Qr;iDo5I+fuTP*vP;>Vl;n5R0(@; zq^%^U%QkTBsUbYP_X?Q`m{%T~-7&mWt)P-fz|MUljXBjNUS%2&bknHszM75J#J#g1 zfI(X3s&2O=geMv24yd0@6BWJfk-22$bvsWqnv77@Hr2M3G?{cCg|$BCgn&oMnMT0* z6YCZuuM=jisah#vp{=5R?Rw#wBw(UilTUg40Gt9;`_kh*hGL!lqj%ZAI>Xc%hF=R} zhcwN;&PECMMpDzC`@ru%Kb!{o_AasFYc2aQm87`Us?riqkW}+UU&uta_OIQh-sv)8 zj2!qbyPB6xaT&o<8(WiWA52Oo^@wNeWv`+~sVky}>VOq%HeqcizUNt-mRKM66u;6p zN4BEjm}cM7doo!?U$!b$dF3{F0Zp>Rx(^@z(zsxsS}{o!JteYeY_u6gKHa6Tlo5h} ziAF}>)GI$&)PB(0qH@aV7W=s<^9z-qlzNo8S3x;T$f?UM3jYAX5)zRnX|&lX00w2{ zT4;gBHX$kP_K0uoYrAA9eIZZLUYPLaE-QkWPhqtvZgaz0rW8Q(PS$gunDu~`mJQn{ ze%bcz?My%tw;eJ{tk4HIL+tpt&&zQiSg&twU83B^o9UhR;T`mv#O)PC_9ALoE|1X4 zn2^5B8_9RCM-~IqE-7<#X6EQ_tN2kZG_@97zN%wE_xO2pAy1UWZ+M5!;VoL!&lYr_|P*F*v{~ zD3Y2f9HYei4q-}YsO2ORn&r{HsJfc=eqOU0S$^8{uh6AmTeTZPwxZiWl@ec&eIY@u z#AGeM5tZ&LDLKgB9XR`5T$GZMw0e)WCuWw*NSFSU&|3flr+%ySU#WUZ zW;E{O*;toky+3bH0WVXN2MQpxqOTPP;mfU+r=ICQ2->yEB^v3X&fE7rE>f*Yo?+Q( z*;%$r%*-&q#)SpvAaFM4k)8$tidyOq+2^j^IaYtC8c#JdJD?L5bwBqTh>W56uQmxvxVx-K~#cWNs zQA(~BRHCIeLQl9&tt(jZPzy`X#@>E0o3VPth(dzM+Cdm6KYV}5hbbiSxToe1F|Ksm zSZO!Y&eAG0nw_(A$Ti~B?drQhso5|TPzE!JhR-SwvR26$!m@E26UJ#t3Jb_1AmHN> zW!7=V^s_Irwx&=VZC)T#YEJa23K-f(IT$C8oI#ypv%TY|J#pyveFNWYi*x!}WO&55 zx!Y-%jMSrTjP5IyahGJ3pDzHMg~aMs6bd$-*c=hqp1{Ok>qX`)8a0#DX>El$r&k=K zb%%BprfS@(uiUCkC~oBn@mg^^w*)P;;BlC$q%9%TTF#N`U9qXw`bz2+%}QRN+hJRL zL^iFg*Pn-es8{XLqUJ=CmxOupD&GBOU)ocV%~Iggr~ zu1c9py6Uv*G~k`5Nz`ALm31n}d6YV&wxF*tP!ecR1bKp zTV5i+t*5C&$CW`RlGCTe2^^F-al%dl$%zDfp>7x?c|!uyasskKici#ch2N2k7`ro| z^qidf!XTcS15HJArh#RzaFmODe9A~^QyaB-TfOs&6CK7@2fCneBg`b=u+6Qm) zfJf9A1d{}e2m%0te9SETpb`WC&pKX^mA0ujzJ1hYUS1qBqGVEp-m!2Cf_70N)*oCW7UkIFYYFB!|zzRA*m<7O4&zv}8 z@7f0-gO1RTko7PcSFJ0_Rwqijr*XFTg8Np~)RQaz7iNH#Mm~9XN6xac5|DhekDOhf zweIm%1EqvpEUPYE*DQpAKs=V%OOq-;_nK&Z#8P9swxvYm9OL}p8jKQ09E03;^NUmV zEZS;nkE-{i(+Vxjze=OapAR?*OvCPh>-}RUD!GL2QnGLYNhizi7tQR>(tq@2(nYM~ z+a474-sAUF(h^SsXKEP9JpTab?K8)zFc}@jujt2H79CN3D@fE0J*`{o0l$ISie%d} zjAw7*P;L2)6UGh)F(E?I5UdaiakwZDIR}IG2Z+-hO}5pwBV%haP=q5+ZrLgNgNn&5 z(kD{7Z22U9R5Lc0)$(ILQMpr+>Vo;$c9f?+Kot|5WRd{Sr=Kty531))BH++U;bbma zOIRr~t_1?1gw9FMO18hVuAmP>p_t!n2Er1B9H|8eS_kD&LE!pEt?Hjnt6G_$_f5NN zEq~G(X>?ZTN=W#{T1n(iO6@(yTx2)LlE{pwOLZQLs=9w}>U9;y%!ScQVxugT94UgN zZgH0}=7so)IqX|dfYlmbD?4U&iLBPmN^CgY^+=#!6u>?miD|bf(=GhUR?8&g{*f^u z!Q&or9(shHMxE*$7zerFeIt_xIP-}8*AGxA>CdODlJk<9OLf`i#TMUA z>@3tKK>eqj-LkCfmj3{{=(atlPIjYMt<9oJpDfWI8}2A1XZTV( zsY<{J1fB+Bi&5wv@6^t(dYQaBu+&LawMVpRPFuFTg9{>Fp7heU7Mefp7MXp;*9gj# z`c41|NU_EkOF;plgd}Z9zyls#qgnLPp_C4tv}W7ViV;M@sjL@jlZ}jf{QHA+#K7Y? zQ<+LZJT?%V@f%DP>`GipQlOEzC$K(Xe4skBQvUoyPiNiILX?!8DaCqy2lI|}A$xGG zyN7a~6TlyYXMz6!(+~3l7%+hV@d9*PNCS76%mc_E5twmM>|ulPW)f`xHVMkJ2Pcp` zj1qY5+8UFE9Q|RPhn#r`Jf6t};~e=zatVS60k65P^j# zK$@zHx_g+6Uo68L%8;-6`cXnIaOk zCp>I$w%G)CB~h!rvli3y+6ib~453RDd$6+U$KY;aRl$?}=FmRztQhC9)uP6RY82i{ zTJDr1k5tq1{{YV#x7ev9m1`!T)o?P+tjieBVC3s${{Z&5+MdTZn14p^x;U6ZUN?NH zT1n??vO81ylq(-Y7$335Su~Ah)p|OWhoz|uHL#2j8=q2D`f>Wk1+SsD_5*{rg&uiP z+kgkiL_)Y}C#J5l=^B$H%BAdmZ!Owa5g9GZ+zC-#I%#9D@qsL7uqs*4F)#<)EgojSM+h-RwD64MF%a#L-nIK;{nIZE4gDN=BA#8F=TYU-71q`tkZuAnGP zOub3EEy;OW{E7f8ot0tY%+pB<_(RD;SyDh(3P8^aG0*K`)5~L3bXvpe!%rM$ttlpn zc}c0}5=v$%Q-gG~u6d_p*+$dKRQ3)Cj2qg4H&MMbb4V|XhFrIDQRiw_wSBPKQUy&2 zY`#Fp!W8oha2_&;Qyu>RW=;P9PS))u)NYBjCS_Ap+4?-qLW8|{RJ^mx37KuIf)U}q zrlt@%!j$2}2DJ8lY5RRdX%@Nkzf^IgxmTu0T-N*U9DB7&S;e%66Osu^%9%ol?47{( z#7G}w?c-IEqH0cr+>*{pRV|9TDoT@>${b_F23~2hlgd<=m}_=?%tfw%tMmFD*A*ts zxR!}|iK>+SlU7T3+v6|9X(0+D;YpZnqmjuVURUQ2eVn&tkZpRu$h&)Eg$>zbOQJmB&hytIO><1-XWj=o$0I@*-gN$s-9$ zc<-N_5xdM{3Hb;-c|`-01b|RbtnF6^9zqa2k?9FU1d>iLl1cR90y6cbHpK14)2+7R z%WJ7?EfRH2j!Ka#)9&MsAhkAQhuTAOJ#F+`sT0gB`1A7ebcXr-LS}V@JO2QHtV6nz zr?Xq?r=_U}UI^K7+*8S9{&6o!4;B9abx8w1+K&U;F2h$Ip6PCx9PYlgPTiv|p~+Jv zPOZgb&=TH$qBDIGV@<8!=w*XzS>6zAP-wDLkOnXV60M^gaor?+qb65|Mitoi`bP>> zR_d}z1=RtMEE1r9kP*szgBltZzWS=2Wm+<`qb%CGe^8nP_Ak|HlG5l0=39|^C_hze zPTabmcU;f7r8`!x)TdloBPDK3II@47Uah@8OJlR`~E@5ge1RcK`i3Fc4<2=Ag{{Ut!*qd9d`w_PY67``_ zq&j9E;*U?+b8h~?=(5Y1Q)Ld-=Bjm9c(k9;(<*m{xmzK2Jha+@%F#1FF*`EqK14Rmr|NS7P)?+!SSQPm`SOlNTx|$YSD(u{ z&Zanho4Z~=yZ0OkW}*;+erYaJqfcS@3~t;0rO%+6aLF8Y(w$sZHa3C8K9 zpbw3tlIn5@O4F4LV#>a+?Jc;4#bDi4n_{;nr8cRWbkgOVN_!~_AcKtL6sQrNF&%3H z@v2yNT{iHb&%Y;AqrREBN7!(->Ksq-tOJaUj1W>rLV*N`u-Y|&q#o1_K7Qn&IZClQ zg|{V8y2(pHsVjvEJALWqla-X5r6u8&wxw-e^z4Af^gG(+tJc$uQZ>fdk-lWv+Slz# zCs9qRw44#RkOMA(w0QXz{eU*%*X??t$DDZNTw1N*gfbz9}*)gj+eKg(K(~bJY z${SF6PC{|k>Ge{o^~xKvQP{TXW9_HY|hFyF(Ms z129PiZMbmhPjY}pG2}G>z#h>*S-cfRqa3vu8ax*znO7az!N{X?! zYLr1rQ=z?Yxm$u_*qL(7sWBm2kV+>c3#5s4ID&RC_#YT$#SN< zPE6Vo)kZ1TJkuv@l!VMH!ET@u4qRm}siZiNcLY1VAdpgPbJ}@n%;?UqQ#H3uDvbWh z);m_CNU5S#((I(lJTxK2BLiq{)?Sx&DM>%PX-fp=0=rhUjld|7d!&xX)Oto=raF^w zX&v`M)SDi6-D|e&+f&l66nraKBq_Cep-q(`N&LZT`9>C_1gjhf52Vck*84}OT`QpK zy_liyb!NxB$`yq!ojQSs<($XnNj!1!0+kLFBV+{)iNr{%IwDmrtE{VxWrW^}u zVTGhA4k1H@B&31}@0iS%T^;eyK2W|w0dVczj0^*qJo)#Fb_S8mA={G<7=%Di0w@FP z1f28f4aR#PmLUQ$hy%DlByj_@5)R>*1Bht+SouSPLyCxqnofJ3}4&^)sQobU`1hdIt+*gf%)0FFc>oQ@*HL*P;G+8#mv7;5koG3VzG z3rGM)r$&%CfJO&Cuo8YyNzVo_p$Ci{Lo??GzkVS)19^qK`WPT%IOY*QEI=X7VZaP? z4FL9s4n_n4;P-~8D;v^4C_A|s;0QSza(Ev&;hdP4l$TuW)XF8eK>SN>Fz# zMDPFyComO5?W5FoCNCW~(+MfmII2}TcE2`+o(krc8e=2Kgv+=`$$9gN(Rd`CtpGsu z=g5DYZa%OzncaWt9`e-Iom-UI>GLZ|83ie)%Z~MN_a#U1601o(o*gZ1nUBlEqwOe{!MV4^4QJG7%DS(r< zRzU<8-cbX95O5Egl#%BjM$~F$Hj7G;qfzBO+CrZu)RdzM7)vZP0uYa|Nc|!$bOq6q zJt!Mf6fVO z%epPReQURljXm{O2G3A1~Yk#czFrj3Qr$6@~N`EN88#tXd&@>BOK@bqcLHZ&IA!w4$KV56Y~0prz)U!SasIfof89 zhez!VMs<${V!25{n`LVFnVd#inrUhC+UslY+nCQO;%v#bW|>P<0Bul85(fhzQK%CVG9S>&ty0LL4Y@Tg;{^l5N@mjYqYJ?fV0M7piXbEq ztf-tebLLJ4e(^`X)1Iao*8Oc=hicVZcFfcDyClP{C@HzxlGTaHq^r8d;2KXPZD^@H zDksOZi>wCvd(zh|ODePB>NVdeq)92Y67@2iPloL2Ba|&!QW_^2P+EaL7zU2d;yZr` zUkeAG-limjl3rS7dSw!lvd%d4!h>wI&?kD-MgSepaTgQp+33OD8KAMOT8%^qzAhPJ zC1s{tJ}nkONgul?S1EbXoy6d!1Sj(tgnb}&6VsPX6o>EIyG(03gQ(8BQBQ5s#JxI@ z$UhFp94jT|sAWqGoq&J|InL0%J+gY;P!BO;>6MLcp~VsJFSh+gVI!OrscLNm{M3V= zNTTB<-9QOI1d>J)6Y&I|M;>2KDC@sdmz7#X>&ch#9q^his316_oFzHNPaT9(CAX{H zN_B5hng0Mxyhz<{X%kcq_quY`os#lg1uMUVhl^k3s9?aF94p!~TEg0FHd&B{_sh?G8!r z7J2~~Og1?c+c3p)qlmN!L%$Gs#vx+>5g87Gae_0%Fq7NYSnocwWhAwb}37jUZKsR)uk(FN|I(9D|%sGds&oA>nF<*x7C$4ppc?SI00Kv z>*e)~dFwulKXS=l6SV1Rnzc0!B0_D}x4R^V0S@>@Uxc_a3GNa|9pO4s)7u(>rj}J2 z#kS>A-7<+L+?zmtV3Cr&y|*cOB>dw~b>F3DR(e>!t*L2sy+0#PRdSvJvcGzjSG;gP zw1h1K>kt0$n>z}KJ^ujJCUfbL5|^pQRnyP4 zD@*l=r^BUQhDE8@ly;=4X;mt0obkhIX~X{TF`O2N-yni=e8>^P`gb;@B}F+yfB<%< za3Jm{$iv!B!la*wp<7g}`TqdV_`+L(rTESy4V#oX$l!VZ0CYtad+ly+PLE?rA+&8p z!*fd37&}6c2FsTpxX6hYI^1riAq&bw(5I%E2le_W|9Zy z{mY8S_LK67-R(G)O?RX16}=_5KH6NS6*^Ahq|VaZbt+N$md`$MSE*$=@YJ9WJnjH1 z=ac2%9?lB1e02lD{3PfDg5H3GxKABM#;8V7Kom`g^ zKshamxs*wzSn|jOeWMcUa(LanarC{WlHjenWYu2qn@QwhroVD=>XRt%-BFv^=#aX4 z@zr{p&F-AEEE`_k3jPF5Og}p4`G2z{Mh|K!jY0ONUe#y+0Dj(>>BN;DT}eBV+{DtG zbpHUlcFjHr@4<;X?Nc$WiEXqb=U~Y`WRc|w#}X2tP6*)qq0OWMbAf|^W2aQ9Gf1aQ z)uvUJr5Sc*+>oDvq?M==cpN11a6Mse2$J1R>t9bgoYxtZJj=4T73A!rqlGC_ROwoC z8$OOpI5X;gQCaq`kjx)vwfC!zG2wXnheeZRL}5-bEiChH1fStkv*Yg9$}Cf=N$LA* z*`IROD)P#dtlbpZN!ga2ST3~nUas8BtSFA^LS|MEuGo)yw@zzLy^z*Ts`DumR~+ps zuIq{zD_r#4+~NuKA(oInfI@aFLm=~zFp+`t$9R~%WMAo?>K8_}98LJ;HYJ-^dCl3v z&`XOX{D?V-Z{-_5TC3*aYQdOWz9OXTT4g^u&O8$GG4=pO8*kcIc{_S_YjaFG;*~EU zPo_#s?^obKl|#pG$f?zzs-i8lpqC1jjll08U`{{EHa}5S_1(IuIdUmpBIl^|CmmMo z<G_E{vQR^%lPjvpG7Ts`WUHM``KEzpdDZ8o8`qK;k@m7jGEpUP-xH22Gh@) zT5%&DQD$9#YIAxg(lzlrN_i5Kl}R+(w3focaH+g7qK63iR zhlIb18zmko1cYa{;sH4C#AKHJp8aylx~^$rKl|D=`G?YbhF^6|D4#*%Euo&=k5L=L zr2RNL*`?a$rjl~LC1z6Ilf9`xoPPS9Fr>JEe7CbUr19MC^ni@WPD)e4GI%QB7|pb+ zQ19Ipz9|})V$Z)xtI}pe(z69CEWP|pEDUdL#N{hNI4LLP7@HE4l^KSlO^KNgeQzg=|?=r5ojG2`&yTxt94-^0ug`q`ju&s8`eL3n|Oy=x6 z-bIPI3CvAWs#5Kt6Eaf@1HzeMeYX%t1mVC+6fi~uY)d^aG}~^mbC}p>jckFq-0Z#`ZNgLhv)V9hIo#z`4I110g zPs=#Z%P|Lf#_6|EEi0iNU-Y))^sPprx8ql7vdyJvuF35Mz%g^>=u-t?jF6{o^hta3L9}i{n&v zGyNH})2-<`%|er8S7scg`^uKNiet@(8JU)8K>q+#vO@MNAtfIH8B$Ei>hoQw9Z&Sz zr(IfUsWdG?(;JnFePUi&+)Ytkm`QP!q>=l^jKs5RX=ku;X~y8ZK@DAgZmWLQE_wA8 zJ##tzBMaNLDop4TC+b3;QaJ2TN0d>7V<&?d9i67SiKtT!%UCuY#d19^Ky?&~Tl0!+ zkVxDbO0mLJdGtP!jwg;tiyQV*^N3W;4fo5u*qffo;3z|;7 zL8_oRFFz{aQWffz`Ju#|rASZ;N`V9dBO*%D;sc3TT2EyT#x$mu^p&GJ8C{*M=?taC zYD?4(>FQLSdS&Wt&%zUx%f4Jr?2Li{S8<)EY;MMyOKqj3WF-J3Zc$Ok)c1_ua2N-X z%pSy#NN!Fdz>(j#FfoJ76mUd5fO+Bpg!aS`2V!9m2mb&>H_x9q2NZ%hFbKvm%n|hF z3B&*$peTYkf}YUQK2QXC<`#T}9w2=HfDl12ApF6A3Q-+_`$62VL-mE+4%vms#}Er~ zfeI7?@`5sW%pvGtzybgm9fSdp24TeGKCl(*o&+yRM03mq08c)Uge>#)i^Y;w(fEBJ zWJ9nC=Yau8!S5OlfTeNF4E&&^q=ULJ*|0#&E;A1DKS&0Xj=}*sCJ^VJD0~11m?`6r zv=9a$6NB0bt~We1=X#O=P7dS22aFG%aTV3=RO<~kMZCV7boQ}}n&M?9=9pyRRQUyj zkt`Me07&@3Ryj*)^4=m-^?B6A52hU?p1o!oMD@cvx<=cjcUuJ5iaNR$Y2w#T6-J4tXj##~xl#S8B-9%ga%#E!);z z0)DA7;RRj;3R+lgO55VPur{`Ut_qYu%v@))`=R?|MlD$#PP)-dt6$T~eNwY>(+$o_ z$TnBumCLC-7dC@rrB0Syu}uQMVCyRgqsK`ZKMO74DzB$DpJ*zElMgS zM3VvTBgH96QWAv!018I{XW<`EGoPrARQG|;=I;v-Ogx{5usHROB9L%OaI$h0j!JzY z*x~`)QhYE}N1)6J(1HNu`9oB3#&P%U4Q(nQq%gFn`%Ro?JS*b)v^3Jwp1t)3;gq1z z>1_D(v$KwbwBMG~!BW<80#J}tqC!9e)5R)E@~k5%cDp;f_C&EfWwfM)%p8pOOMHWs_K2C(*Hv20 z*IuYIr8-YXu75qTZ%-IhUvJ-6O0uOlu(3BtmE8(g6HQdR(YBIR5}> z6CXt6a~)?`X+_Yqj3|yX!m=mS*#VrsO6{qv)gNgHPMZ3X2^N+Gr+s$3i;##8V%vZS22k(H7&o?@Hpv^NabjOj?wPL*hH8yF{{Wfi+~8$OSU%{y!BVuYC$?XS_8rQ)X!`$-LMJX~csgI^YWAI1jlvFmr}-p4^3i z^r5TF>%M_mTAa7gLc9S&aYF1g*khY&;&vu?dLGubrD#w3;d_|wEf&0U> z1nqOS0os51LB~v_EAZ)1nx|e8tC6y6LPsqM)g1yf-}3K|B)F!wLX-2R?C9 zn!l&>x>Kq*R+`iT%+0Y^o29917%rukRFpaNQUX*z-hi3?A-LX>$CYxTX%ZAbh8%m}_+eSRUd^`G| zD20B=(k({PYN#T9%hXDR zG5q@YO(8@6^9z8;y`A!3&?hzHMM9P(?2SmBa!mvQwpwKa!UN^|ulPfHX?R*4c=btO z2EtmYE{Ak7G2FPoQ>X5!q54Kqpp-T!9cA?+B-+B8tF>)b3UT?JW#A9$6&U@qPyLzg zL%om)LhcV~m3(y<)jqDid_+{QM(9!xc@`y{nZW-5*`{7LA5FJhwF^si zn_MT(Y4r_3ysmxcpY>TE^>+UNL`cRR?3K4BX?-c8>!^h)a`U<>m6g1I8^Jpzw=3nj zmp@pNVy33l{&A2y#v!V0%*|N!s(UF&ex)oat%KN^w*FU(eTXTuqvh}7?WaX3o(G4>B0Q!#*us=w{ zeXJCkO@-1Ok6=;A64dLOmq=sb#u<{O%ppIgANP!H&Z}tO)84CkVzE$-%+o8i3$Ac1 z@|4N8hZ0qv%a#ZqSkeC4O52R-&X~}50IBNzMxmdZ63r+4W(-&=Ry|4jl*IKuL8p`n zl3>ZBBz_&`WB&k(JhkO2DKLV_8$sarfb}bN7b-K&PASZhCn(7|{{W+54S(`PhxT#U zPG8+#*fQQ2RJ{^q`s~3Yj}BF`vHt*%VEe>nQNRRxVl2bh(_>Sq)4G|iw-T9^r_ia4 z(NQw@;cW}uH8!$*f?8#-uJ{h0wntglacTvlpwx#{w(W^US1Qe=Tq=HTIAOIU{$|)o zQ1$nmM~CeL)7JDOr0$)xMb<-8@}i?ssj>(J&aI}D?nv%ZxrHY`D8qVdq|EiB?Fn7~ z0AH71?3e4aSEWIR)sWpfQE6183-VHTd$UJAK~b~)t*WVNH&FUlq!#*BGg4I-#Ap%l zs$za^Nd$a|mj@n@8e^gDFrCy3PhD*#$)(pST6jYVP|hCSskvo(=X|;d$Ec5I*%@*g zKUWM=oyyU0+Z9S{jS-Z(lqI=$A(G&lmCydEZH#%C$okvS2~8%|3VqpYQ;fZjskEkU+hsg>a_E{$TzXS-d-x7J zfIoq4XE}|J?RB6tM(W}Enh=oX!EDni4`Ylvj}}~y(p@nuIkhnFCCfWTsk4TP0fE%2~(4&-XVJB>w;iLC+EMO+a$sp(a}Uw`L!d zc7sutTNBdC{p6h2F0inCj`qn(^+KcQ+d;KDS6Q@n&eaw$4arAharC7dLS}Kb^pEVN z)VK%B>j8rGPo*`B=FySVTLG<_iKWvY(tAc=0t@ap@l41su_>BqD`{!Y0=y&JAnltL z?5E#$jRNq~R#|mFPx0ALSkmjcc)G zTavcKtGlJ?<<_OgkZDe-#HBwZc%C280vDl@?&dfjZ4M)0Xb>>G?FR=u5uP#*4?dB~ zoR}^ET3SzrRvhtY)%%!PvFGE zLBwMKB4Na*;Ykq$s*AhnLvbWZq>IXU7kT7$D82+?$*{$6@)ESl4{X3}8 zTAOiA%T1^y`8kygk{f-sDWxa?NKWn8#}Rma2~*@G`b5%3KFTZ}w>KfqmaZY{x& z;wviM>w_CJQ*_44)w>d>r}~FMVy!`|HQ~(4zs^)o4>Yb;hmv_hhap%47=Ww4XXmtD zr)JbB+7qv}cV}&xlGKgAaZW6k=^Kbca`Or&_mYQzl_=$&#FS&hw{(rI?KlJ+caNS9 zt@>cOx>eOFiz=!dsL-lA=I!dbnNkrwDV{=)<$0{^bsk3tvXV`V`!4#$e^ad={Gas# zt>fLc%&=9vH!$g1s+8o67L=~)c3c2A9!q5>9|DX8f`q3h)*Z+mP{z~>5~P(7QZc)} zK7TkTu`x0NeBqe&ha_-BBqt+3GaAf^ZW=qovIhnh-g`qy-GlOov$KcJ8etCbm6P~J zU>q^$0G>J0rXSj2Hu) z{GfxAh}NbLkbp=W9%0AGh-1Ht?F}$T9Qi>oRti!=K`_A)M+fT*xWqf0K-zPW01|VN z4jypR#zZ_GAPPnVaXd1jkfjaaAe8b(bJ!j~`jGwDfT6rWF{-ZZ0@JJCQE9rJf71nS zc8egHDm=YGK~fZi1s5E345aK+iy$RVDb`)VC&-k-;vwrKuqE;fA>LH&xY+s7YwwPWRTKO*Y!sOrt);n`*`!o0uL0 zDZw0#&H_iEG4tDMTlY4n-xTX!jV`JChUThE$jP>)Y)i9qE`%VJc0x+jpNotE>DZ|Q z(Jhy)dgXCcbQenRnVT-%t0VTc-&dzJmS&xhZ)y_K+(MG4L2<%{+1wIK%PRPDi=@## zBcbT6nNHK%9m8=~P>@ujaF9%7XLmmrlzG+Leu-a|M76;~kf}?d#JZGDN}^%5)H^R? z!5fD-ILOQsRfDX4);sp~tjt;+Ch4^6i&C~TTb__y^xMA{GR%v6(%2~g0_OFQc}ikG zUF!CvYQQx+o{z5+Og=*V33_bpI$HxgrG`-3Y5xGZ7IV~>S-Kt44JkBP;@v{yQ$bRe zod?2VVIf#3T*6a?%eS<5IV5&T@~u5x_NjG2sIwC-+O>*RflpZ;8&p=e&SQbKQ%>bs z@5l%rC@V|V?;fu-W_nR~1;MK}ROa<6U-pc}MoCK}oTtVq3ha9b@@6jmb?PeWq}kQW z*6+XTbs5ykQR($6w9N4{4iFNi(zO&IVDhd287BZ3#4gM3^uMYGe)GF)mlWYyQF^IT za&2Uv;oeR=@rbxTX5U0j=uNi9uWC&z{{YS<#U_OdO=6 zw*dpgiPR(y#DG9|`yeawoY`u> z`Xi||DJwq9vNZ`-CM9N2re+#>AxUwif|Vqsj1Zu99Px}qP5Akdw(E+$E1a|~P`p}E#*`3q{HdfTv4HTp4b>!|E6ZHC=?3Eg2 z<#Cic9U@rU8hxk(B7+cw?w5~T*;W!C&Z8N}d>u2aQAi8v}{l>wZX zu-q8e8u6pn{=4ZF)ulDI(%Tmdf~8n}0A^Zc3h^0x82Qb+oN{5^UYV{_C^mpwu zw>7#@nQKn=oMN>!>v;{TUTghYs5AML6juH}>svYVi)(GgZ0ExuWRedACp`Tz%vEPp z)=hI+J)c&U;c-*LH|~Sg9JKCs)Q}xzEGaTif=&Sn0-pXybf~CA+UQ?bKhtMS7A4a& zIpWo2Bn1kuxqFxIazHY*DE|Nxh)YiY0PA2NpIGVKSAcTF_U z=#N(&Q(35M3{F+(7duPG3is((7P3F}g+uKXXYA{^(?RPaOWabzT9~XmE6;FdB_Cub z^;%-y=rSUc*FEOzYD!UY>5UR`cs!S7s#8o8_6k6Z-2&EZQo82U6qgPvns07S>>u@W z(~Rf&Mmcm#CX4MGva6d27Y>qD=)3XwjHLK~`2`5hjEku2KlY$0EzfCZyOG$HOV)G# z69zG@MUpdJZ)n=mkB(N#yXF*}_6l602lHHNcqE#;l;r0m;QAODBgzA3dIExRkPdU- zfdR#MNG=?FKNe452RSjRK_}wv-aI?v;bP9S>$hyt9t{eaH&kAI7-eq%0P;t$g(1Wt z?O46{d6cln#>6p;nbysF6T`XVnvQCjda7Z<4Ni>X=JpDpp639r$nMxDHNveuStas6YJ$)hm-eGh>9rX{CH_AmN2>90+!<)>@%7TlSdPw>n> zk9c?g02}HN4?U=ID5x{j{{TuB!^%Tf6@Fc>cW7|iOr?nle2(M-`^0gNgr6v}iB{T| zK$e#qTVwYq91Y1z5;8uR0t1~{K3tI;3qlKsm~$XBwY$g71wZE;i_SQJ-~}KOJ}wS> zW9JGqg$mV{x;m%2^%i-9y2!VwmaQn1!D@qRQzZ&>{?cLDm-COHL<9_mp72kUB=>;qw~~MYf>NZAta*0H`+y?NDsw;i zE&C^_v{sL~+}hgmoheRLmMR!p)JLGFFwzg9dMld4wWlwezK3Pg!85l7MpBnAv~#`p z(8_=KqHz0M?@;!#+FB=WxBmc|bn4q-me@yhO-*gu0!9Ho12Vv1eq)FY{{ZZE(ga(& zNp|ZkLS4j7UKKM;r!8J`5+Id0kN2h);!n+y9pk5uYOl3QzjIVtZeo{VN=Pt`%1|CM zDF|?mJksRg`WTm8JL!8mGoiLNmV_1;Z&78~olqF@Cl-?I($I6pUR$a;9gZUg>0-)s zPv1JtRcxwjQEqCLLQ&1-TciX29KPP%DqdP!A0(I~-_wg4Zr<13X}jFdx?GG~3vB1% z-z^~XN=W|z-JiIKEumBeSG}_zCq}=5J$4A8DjLl2CAotZxO(&mK ze4=rCEGzC-IzYFnkF=z{ZB?q&cXul%B4@_|L&$`_2iiLo8%Y+ow7Sy1WhMMJuPrX9 zNzEvBTk=y4Wc`~mp0HcmL=lo&YPn0ig@z^QGGnhaH93I9QoO~uZGCmykgKina;ma3-LXHa5704+A zkbYRqeDL+1qtbdE)UD@Y(c0NWGs&va$oNt2GiXcfr9PnnYH#Yjt*pnvd)lHBcxaqOqNWv+gV?aDiAN}RQ;6-qn2@|CJ! z%%day$)OVv93?w)N&CQP{;m3NwmP8FI+mW++?JH7acYNZri=ATDb)($B8R8!p>50khEkR_e+RT9EEfAX>_jXZj(6m zsVOBpJlIpL%2Z!dEKHE0kX}epY!Q%>5TKvTF%;G93a;tqs$B}yc`Isu!qqwxtx<2= zCcY3RoWe0HJuc!t3C7ZZ5T&HC zDu_aEK%Dk~Aiy6;9hU_8tda77cOFp19`Lsl>H5Ow9KkKZPbr3l zWbNV}G5n#p!GSK2{8)m26drecpkpM#OTRzL3ScE59!xtR5CHGY03_##W)tU#j?J1Fx=#bK=G3RPB49O11HF49o`yy;6M?`$ryq% z2?NtG2L}cM_W)F%A(QkGbXUi=YW#YMp_XlfD(P)^MZ&4Ku%Zf>lVqG9QQ|(?=glM1 zDgH`gYF))l$<4ge%?u&Nijtt55KiIvMmzc73yVs*`^F>Id}_EduP*fd2pxX$lGQ$sTx!ErZ!fp(ji_ zemC`Inpv-EE3MUcJIjfrwhClZ<^Wz^d+6#i1_VvN#k8z*j`@s6z`1C3)@CIv`4s;E zMyWx$3UvDm9_uoux3u#tjOA%$wv>3IC{ZOKl7&WA=qgW!lBAWN3>4!j-Nx>FeHz^Z>9|+s9*JDu{TtjU${^yj=QtpCrVEW3HXCZ2vXLe&e4JKDIy?W zP9D!~K1w!2h&#F~AEUY~u(SCX~5v?QKS#B-bs`er&8jhT1Z6X~X2wxwR*pM9jv zwJ%bWa$V5bQ3DBH4#S*+N05vD)l2(F`Y6!4mC;GI=`=bu5k3Vnk4b3~;(l!K+dKfJ zD3S`+N#H1x6nR~%>Ze#5{M5wDBBOTSRYs*{*=;IAGNX~-p7AZ|3trGyn9GvUm5Cmn!wW-3ol@9W=8u9*wpPcC`-1$vydDT(PvLR?5G!jpr- z!nqp`LWV&GK9Myh!lY__k8tVzeUz?7=A_M0-YQP*htsITw!kcaRPoVr7>G2}$8?xPybi1}-Pr^VhRF{{Txyl4{LO zrgbixE`7>n;2K54EQFF)fRlqVgpJN6AQdMoNFgf;3Bx}6C8gY%an&KF&{pb_Gls`1 z``~epoH|j&I@oa!A>=I~O}K>xC20JlA6yZi*UmbD`GCAQmdcyXP@YucMma$|5JnCO z&Uoz@9PMhSq?JXzT|!r2O**FyK`O`eZPj3@58!9qR8Hi({{YzPBsu$%7SL?*fy^QY zej}+bFtu%Px`&%_2~$fz;Yt21f>Fs8SEh*&;p3_i8=>q@5~qlZ~=gEFdgv9J|yk~f(Y*m1_4n}AdKg{29>VqZ3ee| z>TQo(lbZgIYW=js)5!}Vwa+lxWt{ zl_6l|C+&=aJ3vXNELM7C_J`5z^sj9`*3^nqlB!;R`q=E#PO?e!J_E=E`iQt`ro_Kl zw5NPC{=KEuRtkbgd3wC5PEUXK%0F1A{;qDholLv*ho}iRaXWk3^v`}%d?__*d*)g2 z5BFJD+(p6G6T7Th8_f~6OHC^(RzHc_w30{v00O_9NIgl}V9!$&YLLL+r}a5-0V-MB zRFXNt{{VZRnT!&(HnsagtvLr4+M1BkI>gW`JcT({mq9--zy^M?w`OTYI;BRfEhsx} zij1an&P?Q*@%j(t8j-g>@7fDEmfGGa+A}VbxgQEuF+R*oDU#|^eMxA4iBbI{LiHlr z@11JUZ6j%Ul$yEbZ;HV}GrCTOz*{L;?X^=cGMsskJtKJ8ZmruQfb_{B)zYLEvPTIe zmhw-o3D4Fv^}kT3);h)1o4TO1OGxRBi$|cT*SSkhPdxofaar>H%Tl@d0Rb1UX{Bp7 zweHiPl4fKyqKezodq(6T=4D))Qit}v;%$Tz>X1C5$Xjf-8$y632~u;O00aU0{{WO$ zXR_o@>i1Dv@6@eF#B=t8zUL^n`A|gc(w`_F?z1e)ewYzvz8V3@NCW}p{{TLw0OKbB za~)a6R`jE+kM@9%wmFX1ZbU4e2RH|`2Lh0m+6=ag1Oy|F1^^fzPn1%Zv{|<b&gn=VWYeD^jn^TcKs1xYo7L}B#Axb>taxe^bX;jHN zH8M_*Akq;pAj5LZ1f&3zwwMXvIXtnLA>X=Nkmi-25Zdif0bihK8!U;SOUU9GzIV6C1F@lT z6x6V*)`GzcMMi8TOKn;6Z5tXm<1L?9&GkCemDJg~R-RNFVfsTA85-5VmlM4!W?BCL z7FtvSFjVZrZIuK5$)`NjnC|NSq)O>NlU@3$J`l9qbZN?{LXOnD^G&P5Y#;5p;h{c9 zc6{PzYJuG^(i5#-)7@*=2NUB`tS2Vvl5Zy^3V&#)HMI7@Wr>Ax>z_EXgd}_;2^iyp z_&^{1NQ8dLeLbGGI&YlRdh%4|UsA3Ks-mV=a^tehp8>L?^K~;T{{Yr!&L-d+ijtv| zoE|&H8qV~x+MU+TGQJRx-_qqP)Iv$)WX!Wp=k=5ysgE0`+j35iD}Glbz#r1f_TjEL zae|}otCnqFJfc`*Jz;v&ba<0>p7yHqtFR45baF6(&)j z($r7lb0uq6)TwGD`jZ64MV@g9Mo>g?yshg6yBo^JhsjW-b+8>cmw66+b2h~CJEq%WW!_>v(g&pmH z;2BWQ>lHceI=!vEThS|O>Zi4~r(xFaKxujH5dQ$$ zxuJCX!%L((gtpm|cC~4SrK&SBzlNnknc9Y)O43h=8hOBwN934SI0%V1*OrnEW9eG@ zw&i6E%}$jhs`V)-KvSOiCHw3)KeW(wpgk9lII5nWdd70q(%Roon!=fi-H%DB7E0+q#KDSXDCSrc2dj%2kpO>tSj^^ioM6`Vk*81e7ceGM}Gg z7eDNW)rrf)r>dr%)RgL`H1eoXEVIa6K6EYCkO}0eE~a1)APPW$p6KNusUT;t&Uo_v zP}9L8IGY6xp(Q&ol>9mE#5j^kF=fz4A{PZh2236@A?SBw12}|8Fwya61~d7}xOPGG zfy4pc3C1F!4$$7p?mI%s=a^W@fOsEhIU|T>NHFfg0cXw@;$f$^bIcLj5Dh;#CyqRz zk&z9~e4rE@9Kgo|m^m;@G>AUE;bR<_Sh}Y5uezzr9xooXEMDjHkQreQSXfu+@{{ZW3q~yl> zjNn&vsSHb{0YIdsF0Ffp$dcaLg&*{@r;ey_<*zaa)J`k^0HPxYN;?$kLrQ7; z>X}FsOCnjug3`@Oe60@89Px%Fn|p!?Ql3Ic__6}^?25&cC0ZIcV5yheu<6ot>GtHu z?rBX1cFRjCL*NdSqkn`xB(_kZ09r}S-604`E+r{(K{+jzC<1ZDJ0G8vMc-z%mpy9q zpKjJ`u1q~xzGr8y>Wk9~D|%sbPVH^i7OqycGSf;bJe}V-l*?@k;F1!rgba{*B4x>aZ)L&9yQ{{R|g!T5@o zg*bNMDN24I)4hImT{qPBsHv(G&b4OSD_o@(Rl~xS_*CkWINq`e&!@wZ5)4dFWS>jY zlsirSr7qbpYBkk4BWjI5#oFTO$J;AtyR&zQ%YeHvQU#Tv`E>2`IuB;2JkhbYxLL4)`kmua-21M7r? z&vHqLM?$|m{{Zd#W`xsjIEmTEr)IaOmfDtQcu77)ytW6Y9&wYm_;@|eV_T}XH8s?1 zt+${Qqn#G{=0M#~9KGmhR+iMR*1-U-MYdBQk65df=<2&U4))sVaRX5A)`HW>%yA{{YS}X8`fDsFi}r<0RLSKea3p7c0*Uk5`zTM##)zm*(=Suj9lI`#A?jYsYW33h zmRpvYQ(h%b*;3E-vTlqy;2fV3l%G{2oyc-$S3Q;*Yj}Rd)ef0;t?DDMxW!tBQDFjM zkhHj$8hM8sQhyE!%1TO9fyPM@QYtQ?L?4AmAwz(D2;=-BYx_F7;CrX*i0PiBRF=Iq zt;{9Gsbs8CrpW;_EvLVRrECr)a529b&O+a`f~kI0>}e@YS)<8GUJ@uvb!AiD@u~B! zjzr|Em>Fr@6>T6XvQ*g^NGi=i^q=HoATiR{rf^Y##s2M67O0Z)~UHSv479uJ)J)PB- zuG8ru3R0Mc)oCbqiNlbbjxnRW>}@ zownzsnVSUxLDm&7IO8p?X~KwYCAAVye3%I(!R-hS(mYE{-UgC`dnSr1DkVx3lJ|m? z0POd=FX<^`E-QAUb%&)^+JdC# zq^DS1(+UTWww`Wfv+08rfU~rOpy$Ipa0fAc_s*CqN`!P|pDjuX3|Fb{nBK~iH#B^9cgZ>M&1=f#+|HCCM<$~*Wn zb$1&CdhIVTe&#N5iD5O>ja~HxsWk08lSbkAN4(Z1m5;cVAEZ-Hv+W`Yw+kkY30*Hvoj1eRp&$}ZgSg*7cPG*UkEsWC8YHy8@5 z$%SdxPc2ayHe4iAg8(8;RZ zlm<$koqZC`r~d$cN6?teUU@YgNRg2&tfr4edU4`-2~^X_Ws&vSFEJQKyUn>)y)=VQ zWtuL2-o24hnaau%B&l+bO{qs8h$ziuL!X0XTy_te16OT88S03tW<&6sa_he5GX{bbOWRh?tuFbX2U( z7`*N(BX7G~O)cqKLKqvIT}EpX@`z8?Vdlr)D`(oDI>m!!XrD-SVOx^)N?InJlx-PX z>uDlNO+!BsDseM}^O9AQliFqd0_jGbbGqB8o4#tZb;lCm0Zp=nd$hP8B8Cdb z{iICnjO6z{%whUTVxvqny3^CyX3#~oLz1MVC3#Ae%(_scoaE)eu79-|Vw998CBi-; z6Wij!C;UIc1CX4-AY;?#4EVbP&v5thU^hEbaH?S>e-Kj+eUFq$ zjJfmIu5e`!w37R@$Vmcb2#Z%a+3CBi*cprw=QqZvlvM&$O5f2+E` zY3NR$Oy3t_efFi4%#}WyD32C)tv2t$D<>|I%a6FQcpM}J6NIFg$n1A6$E_+$*UY4( zt-$n?PSmBP6}g#tl_zrALccIUR?Xj=X74;edxa@lu%Vr!1Ml7)@aH6QNk4M{ai3gs z11C5q?EvyY9ia?ym}EE)NS%d%dyK*OapWOm;V0z`$A60eMF)2~v5lu7{UV0CqMM$l zYS&X5Y~u^}Kk17%V<{@nhPipC7)}B8W~!o3q6A*OX01)4NI6oh&od<`l_e^1Dqiy`v^>-|KHxn3Z(4-21Xgd=3MRKTnleN&fH$KA=EKzhWglXr=2V zP>;s#1%w=TDHE$u{{X}y&`3DKPcdG;#tH+HIthB*OGeeyuH!C&$HbXwHc3CL<}5KB z9w0cwV;ho;t*}7~?ay=b20nSZ($S`L6R9iO!lp8Y=;C|!r6Z4oNKLonGT0sP-t{%} zDDB!W`tqq4vRo zwwd*DrnTm$S*($6Of9sH?y{!cnU@Zy{hQ4x54NPMpD)Q1d%;_cuoRV)peQ$ztSg&H8&c@iiQ0t;=MWAh>N3e~($bIinV4Z|_4xk)gvZe4fz}1rqB?JK zJfQQHOG=MD;tUhHaxD{|Ux=t5sU4z?h}u%Lc$1GjicN?S-u5)cwG zw00QsA1FlQj^8-H04X`+{2&fHpXClo+%jO4f@2dyN{Qpr7avGmbMk@CPGd_b`SA`u zq8p464#|R0$I2E2B`AVHfDTR|4hC_LC>)OF3H9`W@W3t!!SsR#4q$PfJcKxNjKC0m zU|?_)30wdKG?F;X1F;QP$`!k?R3de%l&x zV(!wquueqHDyb@ypEl+hS8t<{UK)RCR5b$lpx9JEMD@#5l%z_M3b5?MsA)L^%PR-% z7Cr5^bt12$j1^>}QoOQ0tCIu#BD?gPP%1iCf6_G)h{G;a=t^>GpW>t`Elvhp3_3yX z5aN)$e`W*dM@cU`Vx@LmdP!llm0Q|NBTly6nr%T%nef_)l|qLFOfZH#Pe&do?t>dm z>E-387FEiZ;38ZS zeDZwbm#tk~zHR$*+|hjzc#TulY3C^PH&F3M?8!8z{c@tRo=}$CBn4wBDl1M)cz})F zYwEtLb#tmq=(nZBDy1PwR_ofX+Sb&cyrE|@&%6N%mTgJOyO$lp06rcSTYW%j^|hs1 zy>aQKw{^R5%iB{4rp?qAfXH@vw$dh$fHUwR@Zu6raEQ983o}lApPeh+HH$robw6&> z9-W@5%(Mi}auK!)2s|ZgU zoX5WA6j0ia3n4krBR-KR(;8@_S?V8Ht|G4y6olK>lMY~InSAnNoQY`S$17&ZFo3P;Nt`lpO_?L%oy5TQ)z?RG1N`{ zr%o`o*`-$|7bk!)WS%}WvF+y5i0#BJ7qPU*RjR_syYEz3HL2g-(koMK__T*+PvK^8 zkKQmB*)EOA2k|EyfS$g}uC!(ynUm>nQmTc-IFtPis5-EAZAnt8>nFDWsjT^>Nb^iu z6DuzR;w365+mxpS6WlA;Y3@FU(mr;zlct?}>2BbapTDh{%4%AfLzKIYn)i($`_17^ zshN}vAz*-@6cW6ru;wmLp^mL7{ZeTo6$+Hxqc`2Qgh<@-$nBm(b7&u#w}MoD9uTm! z_5i3PVw6zeX~z+jGM@J5!T^+;NmRVvRGI3`{r}0CVJFz{2C@4N=Ev2OsAQS0Ln=K}SFEf_(UcIP>P| zG7}S$wHMh*c0@W`m^s|q77~|H^9o2w$84o1xDoSbt{QnYrFy}6>D=tOVB6Kn$pi!c z07QpX;V2J9Hc&^%$I{Z0I8o%M{5>L>{ji!sEZuvgYMhL=*&F_l6Ed*h;;2b&Y0^mJ zC6!AnpY1`W1?;krH9oIxd2E2(vs0BNjpsOGS?#IDIrx^7{n)vUE0A!#dfe_M1NujG z&c4wHIbu~UNVY-rB2h{Q(NR%;$(dQ{exWN@k|c|a(JhzRLxC9$&CNc;OpmI_otmpOf-_~t`pfP__6fBCqF3E zy(-fG0B7huuQH|#tJeZ%?ne+0A$2LYr!szJFC=}$dp$zcX6YI=cdD4RnvC@+>P&FAT>+u$&k}v=vBhUffHBU;&cCl$)I<-88(J`qv zMNYiZlDvdSAx2hAZdNy^!IujKKnyRifXS~@J#gx!ooXfdWYB3+(^q9=IE~-DVQsZe zK{*KtOYXlgRC&yrJb{YC(`%KUxV@*e+tnr%?N^|rMr;}e%S6l!QGDcdN^o8K5CKh}gNIp@R1J{-VUiAY;&4k<%9X+9_MY^>zSX}?sGd)nM!4nr1@=PLTP_55k5p`V`U`^ zOUp`7a#mEWpeG*@C+H(V^pRJe)CyJat`$aIY-$D7Gf<H{r%`wpwxQ z_C7X8c#udfsyI<0Ag5_Qk>uPJ+D*MjoUhjB1g$=sD)mBnsmt~k$39?A(iEaCTCqg$s;!C_eo_j$5~saOOnYGh^E89V~` z7$D*+Np1x=rJ*4pl5rGp!_(yr+9AWZfRP;m)xTtQV`1iGv?>nI(#Qvud&G>xNJu_e zT9J>ONN$2WTW{J|cU$utw>v#?uoR=pw!Gqj`=sU}MvC33u{D0ky^Ee0pj>p?ijVeM znL^c{kw{Q6K2au(Gxp6e%&J2&mHM}cjE?D?rkvv#?(c5@0C)>#YlQCeSOor%m4VD8 zpWUHKJ<>nI0SZtA5Hs2X%(*L4*3}lFUZ^OEI%Jd6^FI(6Wt1t!o=1O&A43qspjtol zV@U6gu(hgoQk_=ST7=ctSD%`R^ph)CkaygRV5&NN$|YV0o+|{*DFrwtk#}e zGl`Y1YF$>JVAGbcLei>>;klKiBa#s+nS~Rc08)<$!GIlkbqwyT-4t$y`fZaB+cZjr zKHLbAe+jA1G@k-qNgRY3c2<<-N+1^jRyLq0hTG{X`oDVU>c*$9H*;^Xrg~VXKcZAe z5EU&iKQKHwbrHZ^!deS?ZXLx6ErGOciy&<{9e`Kn9DF}6KIiWmr>7kbqV(^hHvW`Q zOuW&jv*J{zTW`btr#|o=Gx;C{<$NS%O4x)a$~H{pZkb1sT~e)5m6DQ3K`+f80SPK0 z2ua)q+^YZrNjU?#5FPW8l6@h#_=)*IL#lDt8&hQ=2}v0Q6Q4XD-%ftH;5>ji&+8eQ z7h%LZJi}AZCLe*0@t`xtA)_ZaPD$esLCh__dz3u#JHToFuBb0u-8AZjGMuLoHk)F8 zrz+!XC|H`5K$vAgL!H5FB#)$0e_T3`C#+iNtyh)sP;Sd!-l@F93d&f0RMrFSWcMg_ zD@V{~FaEVkVzEhnhcM7vQ}UA%?x9_j9BoM>=yylVT~ebq`k9uTQBjm-61XGqhVlUW zWkcx!cwWjH5@|ge+tZFTgsQVys?QZ;Jb2y~e?~-1VS&s?Z)e3D_9sSKStd|2{ULLz z&*t&w9dq@q_~ulQc90K`OZIB`R?l?-nle?UUfS~lRq@oth=z> zlC<(kV{6U0?5l}M;E>GXn`OO39SW)U6b^GO#co zQ!{TNvPYQ#Kxfb=(k^x}4vp<8J#y)Ps67vvVQy8a5^`7VyUupb$+YSm037n-LRmau zhZV@;EdKzZ8Ht&mk+hxp;!4wOOSS#PIN)r5-AZD$y^mF2aO#SwOML-yb*nz1DEb^m zJI;Fo60SaEMYHH#nBJagO|xPmNphmxk#3Y2@i*YKwPOnNNf;yKLfKs&Gl z!jaapx2pNErUo zfcfM_gZ1&GH@2hMmrq!_lZjz@8TY7jXj{vxYy69sCNmIWO z2jPtg?BTH5zdFIw*5>8I(v(@5n&bP3P~9fVoNwp@o(u)=TXZ>lZri3?bo2!?NRnbf zl%N0tSZytYBpy4r$Cf_Ptn9rzm8xqE)6^Y(2$-l;q?xxZR4g3G(O4={mVj}E&CIFC z6mk7h83Verw^YenPBih{96)V+o_-uF9)$DEaJ<+;5{7}=aFCSXcfd#}1jbH+5dx-BzYK z;Zr2rx2X>}li~Q!pAu(bKbZ}ow30gqNb`uz?G@Dj0Q9HTrQ~GXZel{&ajROMqykRK zJfX}S^SWTZc=Zu-JtXLihJxq?m8a;DM7>H{LAm6D?0YKUzG^u4OKOulSA3qq66`I~PuUUgpT?r1c_0YUy=~9b znCWKxkfM+$ZaFziWuf0Hsm?JXKptmo%DDMMGFXsoT2azJP?J)X>Lq!TPq&|~vL+fU#sxNKcp+@8XTwsyB(LEFg(N3v);dMJdNJ1; zZ&Lj>F;uEpjXIXD`zABWx$pnOD* zN`5c~R1(26t-Fqgbx`S-HLp-+p+~ApH#;FV$XACj!>QbbB&(iBaolm7LoSMCR;fjq zkfPjEG&$D*EYv0CS(#H9IVZz-6ewdOksYZC89I1eyo(IWwxy}U(`{_pvUe=ta5AM5 zcm(7gd&hCarN&m)F}v588qgI^oi%R1H88rzSvt1Vv){ZzDKa#v0Fp;!trEoJ9$a(V z(mAP}E4rCg)2sbSYaP)b`U_K(>g`UKJt;QX{77||WK=f%!N@#<4>9R#Crj2%-&mQu z=vRIDVcc^sIWqND)41kkRN~e6x67=#F1^?p%YIy7^B7w;Z(90KFsZ9AR;}G;p|GVb zbX&qzx>a2)fPMyQGQmwPWPyV7U~+N>AUExkW=L3;^u4i3sMY4ABvzzKnw>#&k2cl@ z){^U)S#3DrD3S*mzyN#afRv9i0gY>>TI*}-B>R@s^%ARTUUE%`r>$!Au$QPX*&h?E zV3y|C$l>XAEj*0i{4uc7`ilPm3Q`J+Q@PBNGBB(T!16i4-NroNIq~sg2<;8ebt~b= zlss|R#L#d=G^7|qk(hA=j`2qr7&wRLjlx}L9KP=>&>nk4u*m(+V z#H-XPDkBh0R4=jCX_}U$-}X0%mR_2qQmgGOoZwTcZ7oCZGHW&=(DdGJAUhQvnfTmW-VILCkb|+GOq+aPjY~jF)%w5v_V zoRP^VZ>S`mJcKn`+Wc)dMx$7kU%PnBNzOlZP5FSCHvBnIudK`HSo6yqM#6a+mT)*h zamKcj=5m~K_sn6o%&kIqRBtNG)R}5lpD9YB$vC5epp-6Y@;+OpT1o!^vy9SWVJ*5F zbK)yr)Rd1RKuGlNeSUp`AT|ED*QyqNmQ`P%ggI4qS(;@rAzN`dG_*>~kbkhZg7Mt# zz>e&NyG_%bJ*HT6H&9xoNHIi`@z=WzGT7ehr#$=#Q;OaH0L>Wf=C^MxW3y~F8g(?= zWtHDmcNB#N)T9+lQyD7lg*>U5f({7xB>Kj(>&smwv}>mOinSp+O~rUiE`e?`J|_^D z+bVuw0to>uha6Gw%Ru1b9ujX+S^YrX_a|FDTGBN7$#rkgjZrqerqC+zTa*s|{(V>^ z9}{b@EnsJ3XdRFu?Cc9J-_u(vg#U1ca?=N_kTKTv^K1kTO(Hc&x8u z$4^U}x$YjKE-57@T8JID?c(A{Dw}Z$6K|mZ0AZpU1Y~99j^Zshg z#elhxkT_1jmRKW>WzTqoo4as0{&DHo>$OXcwNkIv=A50VRi@pZotbc*&rCR?w-$X# zT9khA<-ibg2hT8o#3&9_q^Ue1B!nNoKjX-Y0@Vwo)w<^CZ&#A>TX(G*#;G{=PTvtz z23hoz-yum*F<*_il&BJp0R(gB$NVBYz}oiP)S zC-_{Rl_oStvHL~lE?rf)HLjygX>{8u`Iy(Fe2M}A=2tcPn{=Pl-qzy(w&^9uIjkv zW`IC#>42Ax^VuP$5Yi4u=h);(K&?xy;Nn^O}PLk+IXvy!(x&fBDy3d5>pKp}H4gfg!b zq_`W$#Et$MA-@q_)B*qDnbf5 zN)iRROQbjg)>NaCcN5YBd_^l88 zA2@f6>o;ZnTdPuAP-e4Pntoj*bFt^iNAg&RK8U(oqW-|?qeGrRL+81jjO8fo%Q%@B1?e^2^fLr1vHb|2;%|< zGE5WShyqS~0SQ2Dfw&G#BCPg+Xgu~Epn^O4K-fyN+8jm%04IS512EkB_JRn2b^$%0 zej&$~Xdy`$`oJp381Dd553Ds@bM}WI{5*Ma0F3rHfF1tOds|m;eDI5#? z;CjS<)+grX`ladGfYWOCcAmTI?v4lsUY40;ERXl6jy|xLyi9Mlg35tW2jfsU`J@y4 z@f^hiJ&XjPrvwCzy}S1F`@^%4PpFLBZC4(7#?=0hFi(9{y$dAy!UqEw zgbx^n+p+H$vqDI~gP2_T!$^$+6%HhbXavDMpbRxdS-?1lq;B)XEvM200N1-oo9{#~ z>o#Io%nHr5Q)jmqAsS3EKR?n3sF^8!A5wT6cE8l!GjkTWlJ+H{J;WFVj{`?!{v zR~#SpnP>U+%zY<{rl1hLie-1`skh;s#I&}-DjWxV!GKxy9+qUu3%7MlTW!bIH zKP1^6TT-XT_k;$Y>2p-Hn#;V}rE9*H+xKmkI@xM@Pf`oh(n;=@S#_ryQgCor_|CvW zQV_9 zks98G=4q{7_N!X5lRAlMi+bX032Ka-yXk&U#X!f4D&Qx33(n+j!oWLL0Ze7dJbx&~ zwC7Q5Jyx{jFU>Z&S%kgBO& zZc6NBr|C+aere{@@P$k~Qrm7jw189)0U#U*$EYo;V+!F;s+>D z!3S^z5J3Ql44|hxliR<}8-jZnLDUp(+&(e6I627qK_dg7D99tUKj{p}96<*I0yGFd zSnmTqUa$cqlg0r7M?Ikri_0Ha2Y^(b{Kpfh{Ko`@?M8cy_r!7ox9tF{e<$q|S*m~b z#%Q>=HA>gk+H|;TQty!znxmtW@A89c99NktmQ!Po`V$r*(Y~^cap|7O)H#Q|T9>#c zpI8YwP@k3k!`V-8T-Y1~$T$pR-q1Z7I@i+$;Y5;S$E#3S7Zoi50I5?lsZ)z>K7YJq zI*ep;QxLD%->m7UT-RQJS0>Vi>x~PRjk#a_l*&+#HrAJ+DbF^HZx#tHYON zv%yk#615SHs6viF8I76{;Ydk9Rzg&fw+RIH1Jeij03tDIrrx7Ekg4l*!jU&(>1mm@ ztko!;wJO54ik(pzz#+8aS+%Dr&xwPOV@bN(`V*ycS~aIsn+jTGQoKbkKUySfpzfuPSfB+qb zF{Ap=>KUG!bQ0p!2Id)VzcAUP+p_8(6O}iC4XbJH8cz3=JkrHO%L^QWdIvBENgP+j3 zChOOW>^K5us_!7FAwUlzx17Nz32~9#AjY-mPT8b0sWq;nwGLd&+IlfhcIl`s!bzN| zoym}vNjXo7xBfAbIYG=v{YJko9Za%D(rxk3HfbA*YBNy&M}lzxBe>p;i-A&Upnt7R!|z}U#% z;=w%UCwKnKA>z}Cyg|->U=ahOj$3rlc)zQy*Q@mRlPX2s`tvBoT`SLA#BoGbN6!C z1Z@tu06wT>jzYN6e#gBla=EQ{MyyUW5hZ0&7bwHd4WX&o(ohr?+u)aOV4QP>h>X2p zYjnp@eL~&W?5l-zlSHg-IBH!is^6hW zNxqZ=g-sTMo>mV(6RL4XKCz#;cJQD^PSSCZKS-h5x$Ov;Vs~H@kJcUQ@{6BA@AC72 zPC3S5W9JJT;Fy`Idx6Gthz@Yth|WOrhnx=Z$4E*^Bm|Io`C=wxG9m9>ccYeF<)+gm z(9>*Nx{XsxfyUP*t)~NNA2M7dMKtJD1NvF5dVg*azxJKSOqEc^eiclh5syA1%6+o8 zW464;lcGsU_nFFd*(kJb_>j!ZyqvK;kL6Ow>ky~e>1&&>tnDw6OC?E_tFET5GLVT@ z9DIK^)B442^bVx$QEYILgm&zoA@+naNhJAV2IVOjRyP!oPtVo}P&~jvPiy6%n$Jv> zyRnvszuNaSo2BgXhNf6{U1L698DRZVBC5KU)w!K?)tQY=oZatLT0Ie|qNQ$Eys=G} zVdWEnoVwGB?fIhXy`r=QTzwj9gqMbunM!1>NhK-eE0>#L;(zX?Ut<&mR)nco+@hWV zJn$4TkJ2O;$Lz?Xe#hvlz$)AoJ^NC5WDI{RQ^2>!UZ@9X=)8`y)mu7{62; zf*{d_J;r?Cfq@H;BbZ$JKqVw&v@~rBImhV_R~*9$3g<8fa6ADEJmZJ}d4U9xpQHl7 zJbJ*`2N)lu5OQ%2>@fh%m<9)K51c>bV306*fN1oEx&{dughn77NFBr^`sNveMmUFL zki1|W&xz0;6NPkAs+qVz+~b81nmds2!rbm&##m; ztC$W&Lw1i?Dj7}z1fQH8rw|OlPcXSWgAd>iU~oJ3FbO09g>qn?RmW%;!GZzxfLXxg z!*j@jR06S%VPhvgP!TWMl^`d2EWRc-6?>G`9%qjrDlDL%(b$Im#TkH|V$?Yyf?Tzl zUflQFID!8F&-~(j_3cA7-jKCkNTYCS+;VpxId__TAGd{=u3uwqRl0Xlmt2C>k?+=2 z=t0kN)ZD6wA7W3~z*(JZRi@F^-KnDzlO?%#^!~GP%`|^Is-2Z;T%LFdOH)7hq7M6O zZ^bs=nCYCm!)Y`31k+0Ik+NNbkN*I8jQMxBi|vO^B4N-IEoXm6QdF)Ie`XodpRVQq z05cIg+Us-+hpTnc{9Wj`Et*|FXg!M3i$o9wHRj zBySsXJhR4QM9;cwJ#bK^Ur5<&>19H7v}2IvMy$g?kD?@257b8YB=}1M8QO7^j(np* z(UO;X?Yy7IGP+l9vJQNgRi9D+009BNRB$_*@<5EdZ zN7e*AU9cgfU`0|8d@v7uzySAxejZ1h0T6IKVWC|1g}4*v06^!6Z|3^L!4ST13kWU8$XN<*sYQ~pLYOhbdR_V&xQYzMNsMIdnazb*Y zHsq|d;0gJywTmg}EVlBXWDipmcAg^O{9ble{zsRE7Q1wf_L(&!$eIOLYr!cO@xxIRHA4;!95q zA!#KlQWdbQgw%Hc6sY5oj!4`)=Z`O!oNGNwsB4X=wOn>365qV&(&Q=n6R2E;RfLRX z$v4oYH!w#hz*<{Uv4G}qld;fUDk)C=${Sae3?GDozm`cHf5JH)Nl5VnX+H=;m5h=x zgTdp@14UA`Gg@z26L%GfVrjK*oa4o&<`a8VBox!=Ud5sI7f(vrc`D&;ECr!l5Kj?@ z%XIUsw@viDM6DxBw9>6Mv^h0Wv)ZW6Ri?0V1G5WUyu8A(fL7xU9C`7W+V`H8*X6ER zok`Lv#ElN^nM-ZdCFYQ&((Xo(kQ+?;5;rCE0ksn-%F>^N?@kgut8)CGM}sGQSk-G% zprR0^Iksw^r4x^aaf7i*JZ2d`<-D|9+&r&jL?`;G21GdjZztepBZfDhj% z=NS?Ck=`1VrFeCv2N15sBoPiFC(Oop@7B2nGCRY7$$$nS9trgvpOk5ri&?nQNvhE4 zp_DCkiS@~nrEnC67VuBhp|g)JMq}JcR8G|M=a|yEk#N5`)K-&NRMiEznJbp#s3i*l zXp?495^dyXKO577YQO4?ZA#_KO1B%4n5s>pUAg($YI`duDOAM5_A-q6tz;x0QaxZj zOrAjm9^AnI?d&6tVquo$9GY6TpbgnRUcYh7a-{q_amY9^l)g9~LryDV&>Sio3KTMu z4o4%*9>?nxGp{rotD=6lDis|+XvzNoN2^G>b+-09WETYtV1SQ10+4;;P z(h!~})r+Xs)}v{)3si0CrGCP$(i2x{V3I|Zk}i7fStCc ze{RtV)B?nW%C=1<2?HOwe5HBG&%E{kM=!Ovs8m}vH5aE#Ze+JNb_VM8v>{&;G?rZd z09Rm;d%W{%aP~V{$7MlK`jYM6?F;KkhpLO1ZeHfA4-twp0)Y;ZDXvMl*#v z=HvK`UWKlL!xB?pHFlSwx>Z`#N{p*h&&oEI>6HD) zbw;A+!o<1~IVDRYfHREan0KbNw^DkUa96GxUrU-lI9k4MsdcKMS3(Pd-J);VIXJK2 zcf%zO1Ib&c#sSQ3T|2QYtueGH_6?mNihT-$Dv1hovQAHil6h8ptwfb6UDTpfahyi7 z>32r1TN;y9)ZJGpoYdVyaWxB#ma%rO~x1X3q zvrV>1T9y)&0H29lkL3UppFmHPXmM0367nKlE=;#B+neSVw+IMrhQ{Yqr5+NHFbVSA z6gAgxRkaSNb$Q9kJL(oitX`(u5^5(dAdr>LD1K)hC`kj!C~YUPCT@E`dcKpU=p&Tt zPN2DJmaU<3R6VOLy49wa2wg*A!jg&IxNmS9no&6fU{@ziEzl(ODL38F+^p3mz^Bb# z4oE&e8id4{Ntc$#Wd|lquvpGKFu$ZPLv3|0P?72PKD%YLcRd%OZt<5`7o||;# zPP*cWQi<~9;3NP5#yF1$lg3~aJN^($D+6%=1DqU=ao!HojGSXWzw_wxU34r(LIsM-kf8^XCngyFeTIWh;h)Rk}v+B`lz6- zlsL0z$QHT(0BX~dQz$?8<FK9RYK%D1Tb5-dD?(M03K&Z&h>m1wIC zCPr%mo)a|Qc==~BD2#eFO;=4m%1gHXLenW+zG?GyF!D}ZZB+#(LQe$qkj`8Hb}J{& zD^EwHC90aiWYZ=kota{4@Ijk;l}?+7pD z_mJ6j#i>C4@NhD4GuTG8v2Rpg`jvXj(pDhVEO%g}b8%-9_+ z*pjtU>8jSL;^V0;R5b}_m5KM6(sbySp6r!Q&l1Tnoj#VEla}GMr2*KdM0FD+0A#zB@At@?SN^&{v zljoiy?s_UW+fzJdwI5An)KnJ53VrdP?al;`zwY^rH`w!OCbQKAR_J$@t&3V|*42ak zbI!FcoPTw0N2~3is432&EUHLQ%(a%>$sR#Y&&`AX0NUeb`xEV!(?`{dxowp#*_u5r zUBlcZ0%7L|-*bPY8d?@GGsFSF=lMf{$Q(x*aVa=C@9FacKg>XC?y002sdUk+GP5cD z)7DjeO2;H^kaVQ|iV}XY^OZ}GnySuA(jcw_cmS1m?E^gb;tt}Z z4aWi-1rl;TaN)>?@H-ee5CWX~}ja77jd$7xvFFAG+eZf2Q4A>ZNcjZD!+` zrXY9Aa%oJc{!9<@j2BZiRaYZwnanDr_IpG26P}n7b~@ zz0Ed4pR7(hKQKp=j*_+hg+>DE{gSdKL!`My55qTd)*a9BVQn@K{s@{!J-p%;dnG54 zInpgPq^uQ4+*NiKJqcS*bM|n4u{86NaC^WEVFx3CGlvKt1`xU44iA0Aa9zo&| zC$SigG!jyhdvOmWa$|Pn3)UNw2X04{IADkh9&v@F4-m3*m=L_P6$dyluzbF-fy5l- zKp0reA;&OqPcRKx9pMb*7z7*+Ac8!g3BdS@cVi@DzHt$3y(TY%Z>xDLREK zFXB#FmDbj!?FVF>;!6$;`WHmG^NL@1f)kJd01n-N5uny`SG7IJAaD;Sf#3XMP;_P1 zmE+RIb@>HKIa;wRPNj9aJBcb!kX*wj@;%}3K=@UJ?%-rbDKdcg4l*4{1tl3HIUUC% zk=%VEPV~{DS}oM=HF{=^MW3;?Y%DH}dWTkIyC~vY+H>1s&nYP!W7DxI!HlnSWeEe%oM6RE^tpR$U$e_t zS!(43eRN_w&d2#B1wD z{{XzxY}5LF(h0zgN7c8Sq*D~4b4{jzKWI<8fJ;rb&g7+FZpzeCl_UrTboo(hS2ep< zdW4d3sf&7DQnm%5H{xwevNYwb$@zphGr5;198d~D!h>TYv5x0j7ZlaMq>WVR^GOrd z{ZgNKIkh9;k)}?|y1a6Bl2+PMPnwTBM%2=6Hn+5EO)ae_wHf~a&34R+Deb7F1xze* zE9-7?xTXUf%LguGAB&SMpW!yZp@<*DG;6jJZ zA~RGx+pQ(^I247XEGyIy4u70+OeIQjJ3t47?j-&aejt4~#t*I_K6iAM{{X#uKk8aa zhurDch>6S!a%x4R0#!Pu;E8>gmyG`YQ?{a{t~15%oC>H{;P zyL4qo!fsD+Or0^ZFhW$6A*AvTgwuz(=Qj4bXcDZ=Q>1IH7D;W=Z^p!xSey{mR#^Zg zM32H=VF*_PB}}+Uh zM}u0q)5G(8{x+rZ5`_T7x6*(>O2OQ{ZuL=1>2F7-t{G>Tdhe};NZS%lVOyqg@jkTq zw#fL;@hf6KHbqnGWqxy~{T5b+&reLdsyd|W7jCG|Jn1u1%q*8=XznO-98h!Kp9;YW zaU&`R0X-ULs7+?8YksCy@4AbNM7+i%sgj|v(^7Qiuoz(oNgx0K<0KEbjcSR-wue%~ z&NJg=FKHukPBN2@;P?ALeMnLQ1A$w23@5g7Irw1P!OX$3pbe~Gpd@%e8|1%`FYHBGTPBGk5N zZ3bkeZKi0l=qH4<^NdQi2lrMY9(x$d4_{2yLYn99> z9Ux3m)V+e{xoNcBory{o?9M*k?4Qy#kFjzENy_V&uHzhGpzkhbm!CEFu0Ud=clIUi(nNs zCbyYw=K#q367rJ==ZMfg&D%Yx4!>`i8OBOpv}yM#8SaM@G?`<^`>rf~;(JgmmhV2f zZ+&8_vabV8Z0c2|O2{}9lc{ocX~B=qhF?N|_3;`yQMQE#+F8`A?6gpcd3u|`p1{sj z#SX=xdB z%1X zoLmDHCMDdb$~dxzXVUA4IQ+;Pm*3^j+5^y2h$DhLvyT1aRqLfHt*BaIe%e-}#$M*6 zvdrZLX&(@&%cZ&5Bl8Afl&6m4A~t)TBDa1-l2f>Wkgp@h(EhQ6KT>v!tWwfJDMY>5 zL0Mp_KZb6e=vKuMo>auyKl+pAAU#bszUf+%W6*EJ$+fh&KsDf&p4G$OR@*RpLU#6 z$tVC}4mN!A5>v!%sHG|xPDVasyd?`Bu$D&B3B(XWyB_hz_Tq(Oz9TkvDKpynQe5X& zEVAOi^b1CpERl~TDfbBdTqY)$vI5gh1Eo2-!;Ecu;<{=RfoGk_WeiKCeFB?v^)Uwh ztaA)Z^?y3r9SiX7`Z^o~x=CcK2kfAJ@n+u6ib5!z7HNdLK!EK!Vs%&?l|MZ&=_l9m z57IOwlY=Q7M~`;b*|lwY#nCp{@aZxy&$tho8f8lf{{X`t#_vP+jW^ZJX%xG+o1n42TGXM;&Z*3P2V7biY-7GiTc4zB?P%&kZusc)MRYM!LD`FC z>Wt+{M5}j%%kDEzMtfl`I`IDLdqmy#E!Yy&?JB=DDfwkLHCnGCjN64g`?RYGbz4uE z-!MV>rW}f~?<}P}9>Nj)J-HB2kd~63ct{-g`@lS&U>cm`kq_)U!0iW;AQnL+!+0bZ zaO3M7Y0g1_c=9)^D^1?tFB=+tH_>m6eoB?2CaD zGNnUkb+UL0K_OW=8A#xqU@<*t*1I!9ZTel=eLm!^4tl#SL!6(-?rFvFy^qX!hJw(P zk~?^bC*cIfH?2DA=8avtV5*FTId+Bja<1K|)RdeJp-ESf1tfXq z6VLS(Q`Tz_QTht%;7HIlT3%UnswI8Zrdpj^s7jPOB&U|)31#P&+7yR=7TrU*8x&HN zM?`gTDR=a5adfM$Vx=p0S@BV=^&gPwMJ|hTo7zkJj+FJ!-c!*cT zu%)D^U@trpp^!-a&!^8YB2a}#Ykq!Nwy<|#t7pF$RyC#xv`#M#>e%_#eYf2<- zZfzSt84swMdK>9<{l#fr+0AP#(9EL zD&sJq1z=>Kv?IyRjvAc2F(fS&N<%mL1R zkPZi&5sx@(fZzxKqMUM~06F3*%iANSFHm*1*3~IFWA2x22uaK=BOuO6D{8W@Qp2op zdBO}_W)2A5_5vYywSP=a^U|c<%_%CEr)+w(wP`BG6q#k^hrs!M@wFfK1O*@VPI2aN zeMBHna56|E5MRkxISR?nc*n~hC`}~q0Gu3-PnVnp$$J@VNt@}$?V-5pOO*S~*FrOu zB@anUk&)yHZC{~@{0c{76?g1Sxe}>uSF~PO3JRoESsS~9?+mYx{h#uSL1j`@5d03FFZMWcVEqL#tVcZJ6%wJkEUNtbxeDZ$}*ZYfDh7q|_isB?})W3H%`k_P|)2cR4e z@Q%eUc4|g(skt|l!^|i;(}`BqA!#{Ef`=f20R#|11Car4Jw5dnb@_>&hk@8CIanWvG$Sn+8_nO#4Zo2m1 zP*nCeNz4^C*zppiA!-Q(V4T@g6vrBNN$K^qIX^0ew5h)ZC{lue+@PMx-GuHb{uGE0 zP<9Zu=gdGk`N8MX0YZVe`3PM0;xasoo~`>1i9J|;N@{Q1+FOWbO*@~NUcy67AP`pS z@v$lODO74r1kwAFfm*HWcCLwcbyD?ZmS)h?>3NHCn%~7QNS0ad+h79oiT<_HrDa$O zjmrBTI@)nxy$IZ-qiHEFoPwkB1F`Lx#V;%2R@fA)evSPhxu!w=pF)>+V~&%`S1{s% z60+UO-C9oEdGs+ny|ZSj{P-geAXoKA8XmO_-_ zQNTM;jOPL~8)C<|G{;G$tSV;FO1G#^N$*m2hfVLm5`YnvOuEXMWh2z7*INL2k^q3jx?OP;ev99-2oV@~BJmy^m+sWmMB04xFY zF|4#cRlP6K4wS2#LS(1drn58@tPlL_PE%y#)5UgCU)@)%Y#mvXb4Ge3xh)xW`12O# zpS5Pl22MOl#mP4y)(@Uvc?0{uIOug{YPVzbyGoO!1fS>>#Ra)VHa;X4iX~IG)A1wp zfZlXD<0Dp_v}aD$)6m@1f|Q|`q*kJwe9LPa73Mwye-Mn7C@1k}Jm>X|Ypgc|Hr2IF z)#-KOQrVkga(JL;#iPwB4bJD}hTKd409ka#$Qf^QWaOnv@827Y28-)sMVQxqo9_!9 zxgjxCVo7y+KR+9D@~BgdZ27DOw0=&Qs&8fma$XZVdNzWJ~);@eX)zRsl3hGktvl^9K6#2Q6 zS)#2;1UV%%d_=gApTJT=(ZCoj5sz2B3u@^OnKi0a+pnwpzEx|eY74K(TP?aiDt)gk z^3cKoJRr<19wLrAAqPJcNm~7CjcVKV3zp)aZbp?wlzO8-G~n8ab{J@_$5s!0sZMj{ zjK;U=I^ngi4xIGvL=%`eM{VOflX7~T?X7+fZ;ExAM10VpD=0FCUC06AznOVnKM-vl^Pl+_}K3ktE zQO}?ra22cVpRT3dNYfitN$|}&gF8}M55!aNGeNwO^p*ZmHGQ0#Fy4=Jw`itvMKbl9 zqF?$+P(B{l0_KM1w*oV{3p4>X z49uOqBQ-h{k_&S)L`*!4d7lyDK3IuG4fP;P-9&1mh(X$`*0y*Y49~rY*E!m7M`4KB zx~oK=yn2tj?aC~X?jIU zmKh#uP-zN3??=ySRg5U$1bJtZn7R*R^~k!nOf|cFxK`~7?ww(wocs^Vu1Ny0TMrgA%<1rK0-J_w$3dj9|~RrZ2g`VC8a#cJ2GD$i9)Pr_Qz^HnYiVyD!ZWM_+jCcr{t7{B_qfH1O>~h_h$(zDhlNM_XCg6nATlF&92q5 zTh(?MTaIbPMZ2BP4?EQ$*i&@|(~eGL-F$@ksVVtJ(h9=B+ud0?A2{-BvaHRyFC{xF znW-6;W@V=sS^|>eYi|U4W4WF4C(ssm>pyRagK`NjeWH zQ))aF09KNP-~~pu>58*Crk7R6(k;s|Jy57vXhlxcs4ZSMzuFUS{{X52yp%Nh!%o^>UWZf$DobPf{ij&7)p2l#NN0##%yDu*8*oCpq6PrKP99&gpfP9$Pt> z(o1hZUfh5@qm9C(B}zdBLnK3G-EBlADngJ@6xl%p6!C-e9PoW1vkKhHpbQG1iJrIb*;WdcnFi?6s2%?R4Kh@b`l!XibYzKEdQ8$3%5Cuf0HO4?D{1bvG4X%n zC-0c09=2`-T|Hy!ty!g^#5HtGNQG_(KI^rP{-3zV-Yw(VtyVRDiZsb;aZb9#y+%)R z&nXR5CJ>N*iNGI00VflIk&rM#e*Qu$SK6i26ZVYSw62*p=ZkPywJ`buu$3Zmu}^6V zBmT;pHV6HwizJ?#Oq84RfNt>6RtKub0DW_aqQ7bl(kp#n+;npJeXDAXO`wGi!D*FC z$^+%%yrcEZ1V~!}4@eqd)wJR;U(NH7B zLV#K@3EY8<@(4oz0BRph15~u|Yt5TS3A*grPyF)I6jmqbU@2;J_VE=gNpUJqC8aMp z+K?&&Zehn%UwP*g;?%XN#VtxISsas|cM?e?^T_mx3$DNUO?01k)buW=s`s3&6@)3u zV^Y<5mgK5*w~(fjFw%GJN*qSyDY5ue6oZnS#CM-A_-Ip#Dh?gM;Xo?`X;&w?Am`7B z47*BoPVCXE{*kFVe_Q>TT%o_?ODmP3X*dOkJe1ObP+EA(N`N^rGIh_aN!!l+((bqP zbIX;e2P+gfdTYg)2~r_an!b-%W4LmRM51qYHF0lsUm8X zHlgt_`bG|N4%Ooe9}p)IwD+WtkfD>D4EM))`O4|9s7uGDomZx6MVnD|$#ghbtkZH! zRXTA{@mX;v;mVRSllc^ctI98vL3)AHj-YhfQ&cP(gUnN=rj<{cm!H_g#FXMxlzXel z1f(qQM$!&c7K~>i18HtJ%mQ-^P86cv^o4&8dHo}lfD?}~+`u;^XAn0Ma|Cgi3E+L; z2Gfq_5aYZ&3?5;s&oBU(5J2^T^AG@}@@H;>UFiGPO0~k2@ zL51ZFCzuCAPk0BmK5$7^Km*DEx604bJUjNyq2KmxX2iKzOVrDbLSmUTlAYOY)D)gQ zMt1}1nD-J$;KPXuz{v#pgXP?T^TY?w#*Jum>~)<>&|8|6)Wp>~y*WmiW!x6ueTE+? zQO_Gxq$OUMjW1KS<|J(SOs)eDA$eNtQv;53=V zPD#{dRmZ}l%uGwD0o@8g@-QABvBKs3k<_(%*?6aIcF>w_2nX>@OU$t1fA9xl<{MH- zC_?uDuKCVRGJl+W{`)?!#%vC-G}^H@GNzcFsVa{8)T{!Twp75+$Sr7#{{TktvK#;r zlpU$~M&D1VCNq5xc7x0ad?luVoV43cyKvie8f>^%<(YC_VWoXTfeQOZhH!>b!UVVn z4GoFhe-H=1%;Fp~`~wlJ`fR_Is(J^fT7u-jn3$|vG7rwI4n6cVmgX_^b+=O+JoXWu zEZMXV${F!zKgtO_eGDM3aAQqo5cPwch+U!FdcZU!9?)@)Js|xI42T8g+7=9bV?Wdr);B18f{@@5Sws(MmpLT+M8b)_{iF6x?fwG0%kB!vP# zL>TW{meqRjxM}viu}GMzRccR$B_!qB-sA2b$x3|5$7tGpXj$_17gYM8ZAqm`mSW|b zeT1LN+v@j(kFa_)?3?bfGTW>zNpL6>sVXTT=OE;AIRmx~2fuY$x1OF>O%C|AYZmQE zDIv)^w2P9?oMaz?#HR@$<0COXIu!Pk)U^HTPLp*3KJ4Y7RGC_J!t;w$)LpHFrKd&- zc3d5)$@rQI&Pq5>Tcn=8DHlY9w@pKd@G~VawP6Qo7-_{2Ku#CPNee=4 zXmAxaQsPvgpj%c!Nf}Ck^AXBV{35YEoc(3o7PVC!D|Ht!KS!LVzM4(BF;$lLcjVT9 z5-D>AS;C0nIhS`Xq6)J&>UpUfC@ zzhj;2&bwHBJXjN2kABZMiAL4#(vlMY036*?XymsoES!K=r4<5C0U+dnGaCN@rHwVe zuVf~w+(Yhv~hC| z2kRFzH(h-@Lei-kFcZ%yep^*gRD)+c9}tM`^@diiny-q7gojg0lwz{uZjK9blZ;HS zw?BooeZ+ONQRM1IsA>kdHh}#tnW17@>rw)PwAyQn_t(&`KOUmv$=%N6$+Tn8>fUX- zZ%P`qG_tIVGODDUVEBt+K|lD2fcKrXQGI9uvE~$3n}*I^B}GH})V(66fgfU%59#{n zn!NNcPp-+Q%k!0cR+lvLm-vh7m2brgKD)x>C9ouBsTNJQN}f`cF(XTnmRgi~D@zTf zS^MTSS4EE>{F`l7oO8rYHgdO2Z$Fv2TD;>8kFpy~2J1u3I@o!SjkRYVGL;mpf6t^> zkG3m9#m%Kw{<+d+5~_uhG$}P#kdh0O>6HYwwI4?2Hi7bd#O>3m@jpYHSBbn!SF3Vh zpCHvnVE}!A1MM6-yJ6AwOHD3KHLs)@8>X8vNm<59R_Y2+vFK2&FF)9Tua9Gfw@c4j zH-3ZE=Mt&fOwhTgjJW32Er(JOG}~kNTXhItJp5%GcZkjHUDS6kZmcRc<5O#TPRXUp zQ5(+*FBE&j>I2K;e`)^!ay36s*R|2pM^tv*YH?1;&D-}7qt{RtRF`GU!IzzEpFEEf z8S_Xnj&(I$p18V!)SAsrd**;~LL409G2UG^ zc3M@L=cUMD)eWjS!6Xs~A5Y~5g-fVcD)LlXOq27I)d$flD=fgvkG$f7P})bCQivG& z#JlUCOevi?*;+x;c(^bsdZJc~ca$O5(EAp3t@`-4Sp3c1^n|ey{>eBI$Qf{4Q ztIkyA1L+&(XpT%N#@ila$8ZI4-3>E{ne{52K9f(It5l|%mz9ud$(gBzoFx+Nr+U_X z2GDu=M_P$UrBUSNDD--J60$VuR^??S*!WV@EuG6ReQIw>I$*3( zWF}C}V^AD6%&rlY33o>Mwfz#tJvqnE5H`lqdfHR}q)14KkY4 z4`}`2ru25yW~;U7axkCcrZV%G{Z#=BNd4zH;w{VAu{fiqI+Z9?fQf4SjK{^Ob3vX5_ET5-<_&?$xETNa>UrAK6jgcJ^3?m0D~#_EzZ=9_gRJ}XTZlr!@E?m_bhK5-szO;%OC(WaALs%x8O5LvN9c|ZL^9?RphLiU3W!?Q^VtW)URkcXe z-AI^1f+l9^v>8%+WuUo-zmnO2v=k6CoRUf8#=F;P+Kn2LiqZb&;(b4sUXq;8pJ+6tO}-J8Qx!L=(pl*#aBkcDxC zs|00P-cmISR{sFCQ9CGUb^CVYr+BDd68yD7MrFKUf;OoRAw;P-AwZuz#x0_Et6I6F zHqGx-l9YU1bQyQ*OgN3`_rkzpa$UyGcLciH(4ct0R(lxJx>+qd(nhGu=pA-`aOq|9 zP+PidRGC>QqtqSV3+fy@3 zCB;&6mZe-IoV_Xv844#WVJ#@-L1s28l9x6lfI)cxk6(yK8Ub-(VI&2WxR9cd26m(b zv$55zC(j+Eov!@J5FyzyR`z@fX{{SSweA{aUTvc_V{;sGX{?NHlZ`pvUSCDVQ99M4b4<*O{dU*ueh)AF-5b}(-YMhilfAbCLUbD`mIEt@r#o7a_UVk z$M${IF6xSbX3?ovLedTj)$lx&k3xJ@f%Om)`q8~4H6o*2m!>VZDHi=VePwV}m2eCz$!~)*GI!u6q4;-PG3HoSM8Yd4Q(7nq{&PbWU!Zted=XD#j%tWC0)|D5`4MTKFcj3XHt5BX635ME$V%c zsd~!XKN172c&cOn0D6YV{{VIZ!}?3<;*q5K!Kjr9IYh2b)}!0ncSf2G;Y&=tHJQqj z-1kGXGffh4_|ULDB3k1K0P;pTG1X}yqT{GaTP`|Zbp8;fDJf15_P8IUc83WA2g|wU z1CI*8=Me890e#_oSm(3?J>aLx8~KbpcYs)e0fqR6U}ganf-tYrF}v!{qhFT2LeaQe znN>Qd*MPGu>23Cw2vct|q04Tz;!x@wNeV*SN`c6XjakO;NaA&}P7$yvTmrO`p4lgl zkT`&*UbZz-YPXi?;UA@ctK7!ELT4g_bkHW2Rt%+V=%Do!#F88{KV`f}HmX+kc| zIJrdB?Te_ihpAPWM#)m8X2Mitsw{v;*QMX^)xqUEha@145Mjtr3IwDP=wL4s*}v91 z{YO~t*gAz#L;8njOSI$fxUd&hktCo^1dJaMvO`XcVajn~Povv+GIE$04_4%W#*6l3PD-NYjxsiX& zv}$!0AId3h%{HaUv_Lpi%a0UqK{;(8{5enpS)x`#9Of8>I6`vX2v!fu9|kY7T;+u zr}-`@53a2z8a35T^=wPYsft}ffA-xk_!TKOJY?LZvrEg3nNSVB+Llr(PNvQgblgb1A!yEm101QNVw-AdX zt;@ofDJ0@#^(Mlm+@Zy<;WPA!mB>7hJjs@slsWSV9)ctu6aWhD24gqS7ybqkd4� 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 literal 0 HcmV?d00001 diff --git a/src/images/icons8-chevron-up-8.png b/src/images/icons8-chevron-up-8.png new file mode 100644 index 0000000000000000000000000000000000000000..50e33fa63dd4bfaab4fa479138d72ab3e1f87af2 GIT binary patch literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#S9GG!XV7ZFl&wkP%zxn z#WAE}&eZ-yE{6mGm-+jj7@ShwFzQYC#2_c9C31KC$Wbe+r&)Mq|2v-oS zk}50~f`x@eiWF&5+E`dvq)cHUq_D6^2&7Q35(E(f5eY&dB1DvY;ZKkei;D!&_3o15 zJ}@xMoHNgRCW;CQ3JO{zP1Ea=K7zLUz5y&r`V=OwR4P}2 z_rP+JBwcNl12=&c;A6R5zLq(^B5592Ycv|S+aj-4tG6VrN}5a4^z!lhX0v$-n3ePy zxRa|qj^n$)7vNnGoltsF(hTs`d*73byk4(&OWKh1HV979ashZFX){TZd*_k^y}&nM zIy`)qUP+U{mYF?hNnWef?o0YEY3dvUyau+NbA4xOG_!}m4@ncP%CjLP?V8!6Q#Cl} zD!>l#D#{5-FC^_b=V~Vw0s?*lFY}UTLX1oL1N8s1zCqBI&o8JwAT% z1o#V#Ms3D>KMd@9?*|VLfPwHeX7;?@@=S9TY)F*fZH)>l78lFgNO^p!mV&O`6?EKM)#5ajT? z=gF&Q`Zi4~Y9V;$s9ejef0nRsmafVm?)VMIzJ@4mCTu%!-eb=FTVMU1Lq7oO1vz}x zk{D-X5 z=fb75e~i=}{=x%aTH85(3)YsllhPN@h_RB!*^_yfY~Dr?-zz`o@7vG(1{#aq1)s&I zXUhB8Wb4~TuR~&12^8%)<-%dd2j7vT4docaS=qDg%!^^iXKZo7W-$p`9Etv2_o`pw z&(3P}Y7-Roopf+OJ|wr}W%;$pNxQj@)EvAd&Tl{Z6^|8A_8gkKUX|a&ttK|Sdj&!s zRYSqbACF~ApL?24_jR>mn<#(mO;n)?2CZ?-= z|Ac^bnqnQ}TZez7&Bw0-p3^(^?|doL9Qqt%{|T*pZJKmV&H$_ZY>ixV_RiOP*-PUt zdpsPc5f;U)0A--c;fdV-wQpS}*5^+Ma&v6V7p64VF?JJJ&UxFz*ErT#0e$e$j=2a0 z&m47}O@_sC)%{Lx9r+1XTbo_9`@(adWBAP{zJ>54oyZ^WWxBEZb;2}B`b2E3TN$;x zg~hQeS-f~-V;^80!@kCYyE}%je(X96*at6?){&n{^_!mwJBPk^!FA@q?i*iw&1Wtm zSug6TIdsWu-jwe@yI}Z?yF#gi^1Vm+>H{AN^@EeJ{ooYsJ~u-;$8VCh;cLRCCkGc4 zKQuCoTIy^xzrNJbHZ@e@dl|4Xts(uM;-g*~6rv)k&=5g^_kl7%3At5UMJ#6y(z~VB zMs;~c601$*1A>G6=378;AVkDPlZ3SzqBZJ-^gIJuza@tlN-TVKMFE(rtOC=E4RR_9 zh&pX0Niph)gy-vNwikh+IFIP_O(ZpI9j`U$&>tO5G3j}o#Y9ZDe6q2+*sB(~z4K~H zASz)w$*`J54s%^Ex942PjL17Q;t|k1z6O@YFZ*9!%oW4m_Zun;0euCd&2nGx{qcJ+ P|6hGrXfLoX-q+v1FAlsw literal 0 HcmV?d00001 diff --git a/src/images/rankericon.xcf b/src/images/rankericon.xcf new file mode 100644 index 0000000000000000000000000000000000000000..4c0ac488dd8c2137690a54d1dbf23ec02ec6d9d8 GIT binary patch literal 3199 zcmb7Gdr(x@89#gX-UXJ2D35B;dcg;xSzu8rZ-TNuL0M5MC>vH-mgTYR1$1!IDQ1$X zwM~5(y;3G!aJ8jcRCw4m3&ScuL?--ko9Y?r-b)r1>-gEjp%Wkrr>LfkP zchB$q&i8%iJLk8TbG^R4fIQsZDIY4d+X{%^=pjNy-02I^|`$sTc2mh-QgZ`gC@vjYOkms?(3Bgc?Jf3{r<{adwyZA?D4nv zcli9?%G^D>H`z*ZtE;RP(ZDLJELRMz5N9g; z{Ow(yK_1`V**WML`m{hE{lC;4^WUNT94uaUUtjbGNzx1R*A=fTE}q+1_!)j1xM!r9 zYolncPdpYgmVvq9$4%xBxcxo&We0lQgI)OnzZYEiE#bWd#@`wS%jUTH2%dPeV4UX( z5+WEK$%(;>W3V*_%P}}H1}DYfd zd!h)v95J33O;qOk@KeT<8=Cm(A&!tUPGehnZI)Aa%*%gDaz3ixSiaV7FDiHJusTCK zvud0>1gG9mmLtWHe~Sxq?WI+^|I(gJW^Vl6 zP8Pg!H$kI!w`nRf2ixBiwdsj99TO9y9VKQGr_J0he{)hB{g$ZBPPV?M z{njKB_8p5h_2JIZNlp7h<(e`*qmvFOeVqQ>rHIN_0q@!Z7vbnW5o z1!B#SgH3_klRfF0KKYNoJ&@p2twB+j(d1~za_J3eUs)=-9yRZ9RFsyM*EY0RU7>y1 zb*>h{rSIREXMv)YB?V<0x9;4%x3zV*tqgpd%T>x1wI-R&doh0J@>_#YG`&@D2`W3r z6@C7t6R!e0q3DXuCq;E8xPNhrd-Gx_y7t8R@12uWI(|)1>G?V+dg_hkB(eWef=Vxy zLeWz%<2Y6yPEgr5q3DuDA{71p*CC$D&O*^+*T&v@{mc(f9)J023nxQYQVCHcb^5zq zO~tg60^kOQJR70k!Wd_ldo41%hmtLq5)8fUY~^0R7$WzR#<7e!ScUursz zlHSgSpz7?IFAcw5IwGpm<8pm){7C(32&&GEK0OjtkMxLYD7g7m^)-pGK8rdvR&gY# zsz0d?f*(`Wi|et0 z{Lxcp)i|5?Qi@8?)j-erV;)gu*Dws$Lr+(5Rl53cG*Ku#&{ESh8r+qk8ka6ym*7&Z zLQaQKT~wCk(94o?GbG2On$n^*d3metIT$Yy% zITts3TRJ6$2K<6Ty-!2V*7gNN+|ZMt&>k6bwl?83GPfisY!~EANfaRG{yHe9ur|oq z*x&7KZ*%QyZt5%MWT+Sah-)QfdT&)xbH96M9OP8=HH4Ij%2Z$xuFfvS4~^m3w}g;w zoJ}QZZAye?J0NF+sOVsuQBvQ0$f?Y>S+^XJ>qKQbkZKDA>TQ{jQ z+owDWHES%2;mfHP6r*E#KvY6LMd@CO`X!&F7`+8fvtk5R_~I4XoeR-y0kfj_?#|hT z{kwe@MfbOEjtB2-gE3Kul($%*bN8L8&3JN7OJvjD-w?T3HAKM$HTqjbjfn(mB)_6%4S5OM@qd zRA459>c*EDGcuV@Lpq|EkpUlFml%eKnitNeQwu{pVvJ-qqf-h$nt&pb7}G^gCx8){ zfhh~42EtfKV4vtL#OSQfy^VQrH^E)vnNXskr=WiLiENgldP<`nBGyElk&3u@UKmf! zu$Bqc>J$rN9+85P$OPmx;Rvu37D8&n0*Y@88$gv5TM8c$3ZN*|pz+9pY?#MsQ3}ZdfNF%q+IVF z>;W6To_Qbrd>8@F=6p40|NqYi88MNonWRLp2|fPF5i<;JC5(ST#J1?o&s}3$(q;_g Wh(+d-+G8A|bD)x*i}EA5r~U)CHgom> literal 0 HcmV?d00001 diff --git a/src/images/rankericon2.ico b/src/images/rankericon2.ico new file mode 100644 index 0000000000000000000000000000000000000000..c74d0b3aca9bd333703f1e706e89dd5b937e2803 GIT binary patch literal 1150 zcmZQzU<5(|0R|wcz>vYhz#zuJz@P!dKp~(AL>x$A1%*4_{KtheR^9q%5m)_>iIwxe zu3y^!l*N}&)D~=i{STL3ka)qim;b$M7X0H9SNyN$9QiL{-f0x|g!JcceevJDZ00{! zKGFYbPT@fPr~VagfBnB;`zxT?um0x)&Bted*1G%utW%o)0Yl)wrbpbr$celECCokb zH)i_b|B;jS{0;Bl`4^Xdpxgd~+^gvx3)Ii>pG`pgpRlUYKS3q^fBf=V|9NFK{`1PH z!R^oA^8A19rYHaMfOOvGXa7@{T>58|+We10MCLz8KQ0UoC!k$H9UK0dM3(%s&+7bZ zo!s~j=-&U_5=uDr!OVl{4`^NUPeje+KO4XJe-<9$|BTG61oeW<$lLVjU-sHN|AO1s z{uS4@BuWp=ZV>HXQvc7luMa6$C?0D>DWcbg_#`2$opZh&IQ+47&M zm;FCWKj(ii{V>`kHsHTwgwH?Q5RZS>fo}h-16==uXuD9)e@;<;|3LCEwWD+(D84BI E0P27Qd;kCd literal 0 HcmV?d00001 diff --git a/src/images/rankericon2.xcf b/src/images/rankericon2.xcf new file mode 100644 index 0000000000000000000000000000000000000000..05ad79dae956014a9b337c36eae812b88a70fb22 GIT binary patch literal 1921 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 L4<)t{DEa>Z&nI*) literal 0 HcmV?d00001 diff --git a/src/images/rankersplashgray.png b/src/images/rankersplashgray.png new file mode 100644 index 0000000000000000000000000000000000000000..6f6a896c7b3dc4bd9c06c297cfbf219a9c3d066c GIT binary patch literal 56947 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 gFPDL(`mu~WsCzsQOltRXX1rONUHGFM)Bpeg literal 0 HcmV?d00001 diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..4f27e07 --- /dev/null +++ b/src/index.js @@ -0,0 +1,58 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import './css/index.css'; +import App from './App'; +import { Provider } from 'react-redux' +import 'bootstrap/dist/css/bootstrap.min.css' + +import store from './redux/store' +import { setActivityLog, setDescriptor, setVersion } from './redux/globalActions'; +import { errorHandler } from './react/errorHandler' + +//LoadTest1() +const version = '2.027' +const development_mode = true +store.dispatch(setVersion(version)) +store.dispatch(setDescriptor('Welcome to Ranker (version ' + version + ')')) +store.dispatch(setActivityLog('Initialized ranker ' + version + ' session')) + +errorHandler() + +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render( + development_mode ? + + + + + + : + + + +); \ No newline at end of file diff --git a/src/logic/addRanks.js b/src/logic/addRanks.js new file mode 100644 index 0000000..8656563 --- /dev/null +++ b/src/logic/addRanks.js @@ -0,0 +1,159 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +export const addRanks = (individuals, ranks) => { + const rankedIndividuals = [] + //const testRanks = [{sname: 'ACI', rank: 2}, {sname: 'APP', rank: 1}] + + for(let i = 1; i <= ranks.length; i++) + { + const rank = ranks.find(rank => rank.rank == i) + const individual = individuals.find(individual => individual.sname === rank.sname) + if(individual) { + rankedIndividuals.push(individual) + } + } + + const remainingIndividuals = individuals.filter(individual => !ranks.some(element => element.sname === individual.sname)) + const finalIndividuals = [...rankedIndividuals, ...remainingIndividuals] + + return (finalIndividuals) +} + +export const rankAlphabetic = (individuals) => { + + individuals.sort( + (a, b) => { + if (a.sname < b.sname) { + return -1; + } + if (a.name > b.name) { + return 1; + } + return 0; + } + ) + + return(individuals) +} + +export const getDefaultRanks = (individuals) => { + const defaultRanks = [] + + for(let individual of individuals) { + const rankIndividual = {} + rankIndividual.sname = individual.sname + rankIndividual.adultFemale = individual.sex === 'F' && individual.ismatured !== null ? true : false + rankIndividual.adultMale = individual.sex === 'M' && individual.isranked !== null ? true : false + rankIndividual.juvenileFemale = individual.sex === 'F' && individual.ismatured === null ? true : false + rankIndividual.juvenileMale = individual.sex === 'M' && individual.isranked === null && individual.ismatured === null ? true : false + rankIndividual.subAdultMale = individual.sex === 'M' && individual.isranked === null && individual.ismatured !== null ? true : false + rankIndividual.unknown = !(rankIndividual.adultFemale || rankIndividual.adultMale || rankIndividual.juvenileFemale || rankIndividual.juvenileMale || rankIndividual.subAdultMale) ? true : false + rankIndividual.birth = new Date(individual.birth) + rankIndividual.rank = -1 + defaultRanks.push(rankIndividual) + } + + defaultRanks.sort((a,b) => { + if(a.adultMale != b.adultMale) + { + return b.adultMale - a.adultMale + } + else + { + if(a.adultMale === true) + { + return a.birth > b.birth + } + else + { + if(a.subAdultMale != b.subAdultMale) + { + return b.subAdultMale - a.subAdultMale + } + else + { + if(a.subAdultMale === true) + { + return a.birth < b.birth + } + else + { + if(a.adultFemale != b.adultFemale) + { + return b.adultFemale - a.adultFemale + } + else + { + if(a.adultFemale === true) + { + return a.sname.localeCompare(b.sname) + } + else + { + if(a.juvenileMale != b.juvenileMale) + { + return b.juvenileMale - a.juvenileMale + } + else + { + if(a.juvenileMale === true) + { + return a.birth < b.birth + } + else + { + if(a.juvenileFemale != b.juvenileFemale) + { + return b.juvenileFemale - a.juvenileFemale + } + else + { + if(a.juvenileFemale === true) + { + return a.birth < b.birth + } + } + } + } + } + } + } + } + } + } + }) + + for(let i = 0; i < defaultRanks.length ; i++) + { + defaultRanks[i].rank = i+1 + } + + const finalRankedIndividuals = addRanks(individuals, defaultRanks) + + return(finalRankedIndividuals) +} + +export default addRanks \ No newline at end of file diff --git a/src/logic/authHelper.js b/src/logic/authHelper.js new file mode 100644 index 0000000..f6321b3 --- /dev/null +++ b/src/logic/authHelper.js @@ -0,0 +1,39 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +import { getCookie } from './domHelper' + +export const GetSession = () => { + + let sessionValid = false + const rankersession = getCookie('rankersession') + + + if(rankersession){ + sessionValid = true; + } + + return sessionValid +} diff --git a/src/logic/datehelper.js b/src/logic/datehelper.js new file mode 100644 index 0000000..b20f1c3 --- /dev/null +++ b/src/logic/datehelper.js @@ -0,0 +1,191 @@ + // Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +function formatDate(date, format) { + const map = { + 'YYYY': date.getFullYear(), + 'MM': ('0' + (date.getMonth() + 1)).slice(-2), + 'DD': ('0' + date.getDate()).slice(-2), + 'HH': ('0' + date.getHours()).slice(-2), + 'mm': ('0' + date.getMinutes()).slice(-2), + 'ss': ('0' + date.getSeconds()).slice(-2) + }; + + return format.replace(/YYYY|MM|DD|HH|mm|ss/g, matched => map[matched]); + } + + export function getDateFromSimpleString(date, noLocalTimeConversion) + { + /* 2011-02-21 */ + const sourceDateString = String(date) + const sourceDateStringFinal = noLocalTimeConversion ? sourceDateString + " 00:00:00" : sourceDateString + " 00:00:00Z" + const sourceDate = new Date(Date.parse(sourceDateStringFinal)) + return sourceDate + } + + export function getReadableDate(date, fromString, noLocalTimeConversion) { + /* 2011-02-21T05:00:00.000Z */ + const sourceDateString = String(date) + const sourceDateStringFinal = noLocalTimeConversion ? sourceDateString.replace("Z", "") : sourceDateString + const sourceDate = fromString ? new Date(Date.parse(sourceDateStringFinal)) : date + const dateFormat = 'YYYY-MM-DD' + const formattedDate = formatDate(sourceDate, dateFormat) + return formattedDate + } + + export function getReadableDateTime(date, fromString, noLocalTimeConversion) { + /* 2011-02-21T05:00:00.000Z */ + const sourceDateString = String(date) + const sourceDateStringFinal = noLocalTimeConversion ? sourceDateString.replace("Z", "") : sourceDateString + const sourceDate = fromString ? new Date(Date.parse(sourceDateStringFinal)) : date + const dateFormat = 'YYYY-MM-DD HH:mm:ss' + const formattedDate = formatDate(sourceDate, dateFormat) + return formattedDate + } + + export const subtractOneMonth = (date) => { + const dateSource = new Date(Date.parse(date)) + const dateTarget = new Date(dateSource.setMonth(dateSource.getMonth()-1)) + const dateTargetFormatted = getReadableDate(dateTarget, false, true) + return(dateTargetFormatted) + } + + export const monthsAdd = (date, months) => { + const dateSource = new Date(Date.parse(date)) + const dateTarget = new Date(dateSource.setMonth(dateSource.getMonth()+months)) + const dateTargetFormatted = getReadableDate(dateTarget, false, true) + return(dateTargetFormatted) + } + + export const subtractOneMonthSpecialized = (date) => { + const year = date.substring(0,4) + const month = date.substring(5,7) + const day = date.substring(8,10) + + const previousMonthInt = (parseInt(month)-1) == 0 ? 12 : parseInt(month)-1 + const yearForPreviousMonthInt = previousMonthInt == 12 ? parseInt(year) -1 : parseInt(year) + const yearForPreviousMonth = String(yearForPreviousMonthInt).padStart(4, '0') + + const previousMonth = String(previousMonthInt).padStart(2, '0') + + let dayForPreviousMonth = day + const yearForPreviousMonthTwoDigit = yearForPreviousMonth.substring(2) + if(previousMonth == 2 && day > 28) + { + if(day > 29 && yearForPreviousMonthTwoDigit % 4 == 0) + { + dayForPreviousMonth = 29 + } + else + { + dayForPreviousMonth = 28 + } + } + if((previousMonth == 4 || previousMonth == 6 || previousMonth == 9 || previousMonth == 11) && day == 31) + { + dayForPreviousMonth = 30 + } + + return yearForPreviousMonth + '-' + previousMonth + '-' + dayForPreviousMonth + } + + export const showTime = (message) => + console.log(message + ': ' + new Date().getTime()) + + export const getTime = (message) => + message + ': ' + new Date().getTime() + + export const getTimeOnly = () => + new Date().getTime() + + export function isValidDate(simpleDateString) { + const year = Number(simpleDateString.substring(0, 4)) + const month = Number(simpleDateString.substring(5,7)) + const day = Number(simpleDateString.substring(8,10)) + const date = new Date(year, month - 1, day); + return ( + date.getFullYear() === year && + date.getMonth() + 1 === month && + date.getDate() === day + ); + } + + export function getYearMonthFirstDay(datestring) + { + const year = datestring.substring(0,4) + const month = datestring.substring(5,7) + const dayone = '01' + return(year + '-' + month + '-' + dayone) + } + + export function isDayOfMonth(datestring, day) + { + const date = new Date(datestring + " 00:00:00") + const tryday = date.getDate() + if(tryday === day) + { + return true + } + return false + } + + export function isSameYearMonth(datestring1, datestring2) + { + const date1 = new Date(datestring1 + " 00:00:00") + const date2 = new Date(datestring2 + " 00:00:00") + const month1 = date1.getMonth() + const month2 = date2.getMonth() + const year1 = date1.getFullYear() + const year2 = date2.getFullYear() + if( ((year1 === year2) && (month1 === month2))) + { + return true + } + return false + } + + + export function getLastDayOfMonth(datestring){ + const date = new Date(datestring + " 00:00:00") + const month = date.getMonth() + const year = date.getFullYear() + const yearmod = year%4 + switch(month){ + default: + return(31) + case 3: + case 5: + case 8: + case 10: + return(30) + case 1: + return( yearmod === 0 ? 29 : 28 ) + } + } + + export function getDateForLastMonthDate(datestring){ + const dateday = getLastDayOfMonth(datestring) + return datestring.substring(0, 8) + String(dateday); + } diff --git a/src/logic/domHelper.js b/src/logic/domHelper.js new file mode 100644 index 0000000..f6827f7 --- /dev/null +++ b/src/logic/domHelper.js @@ -0,0 +1,125 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +export function isDescendant(element, parentId, acceptParentClassStartsWithArray) { + let parent = document.getElementById(parentId); + if (!parent) { + return false; // Parent ID not found + } + + let current = element; + let currentPreviousClass = undefined + let i = 0; + while (current) { + if (current === parent) { + return true; + } + currentPreviousClass = current.className + current = current.parentNode; + } + let foundClass = false + if(currentPreviousClass) + { + foundClass = acceptParentClassStartsWithArray.find(element => currentPreviousClass.startsWith(element))!=undefined + } + if(foundClass) + { + return true; + } + else + { + return false; + } + } + + export function findNestedChildById(parent, targetId) { + if (parent.id === targetId) { + return parent; + } + + for (const child of parent.children) { + const found = findNestedChildById(child, targetId); + if (found) { + return found; + } + } + return null; + } + + export function toggleChildrenDisabled(element, disable, exemptions, isChild) { + if(element && !exemptions.includes(element.id)){ + if(isChild) { + element.disabled = disable + element.style = disable ? "opacity: 0.8" : "opacity: 1" + } + for (const child of element.children) { + toggleChildrenDisabled(child, disable, exemptions, true) + } + } + return null; + } + + export function zoomElement(elementId, zoomLevel) { + const element = document.getElementById(elementId) + if (element) { + const width = element.offsetWidth + element.style.width = String(width/zoomLevel) + element.style.transformOrigin = `top left` + element.style.transform = `scale(${zoomLevel})` + } else { + console.error(`Element with ID "${elementId}" not found.`) + } + } + + export function detectBrowser() { + const userAgent = navigator.userAgent; + + if (userAgent.includes("Firefox")) { + return "Firefox"; + } else if (userAgent.includes("Chrome")) { + return "Chrome"; + } else if (userAgent.includes("Safari")) { + return "Safari"; + } else if (userAgent.includes("Edge") || userAgent.includes("Edg")) { + return "Edge"; + } else if (userAgent.includes("MSIE") || userAgent.includes("Trident/")) { + return "Internet Explorer"; + } else if (userAgent.includes("Opera") || userAgent.includes("OPR")) { + return "Opera"; + } else { + return "Unknown"; + } + } + + export const getCookie = (name) => { + const cookies = document.cookie.split('; '); + const cookie = cookies.find(row => row.startsWith(`${name}=`)); + return cookie ? cookie.split('=')[1] : undefined; + }; + + + + + \ No newline at end of file diff --git a/src/logic/globalMethods.js b/src/logic/globalMethods.js new file mode 100644 index 0000000..21a4d7b --- /dev/null +++ b/src/logic/globalMethods.js @@ -0,0 +1,45 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +import { GetSession } from './authHelper' +import { selectActivityTabByIndex } from '../components/HistoryPanel' +import { toggleChildrenDisabled } from './domHelper' +import { setActivityLog, clearSessionActive } from '../redux/globalActions' + +export const validateSession = () => { + + if(!GetSession()) + { + return function invalidSession(dispatch) { + dispatch(setActivityLog('no valid session please log in', true)) + dispatch(clearSessionActive) + const dbCard = document.getElementById('loginfields') + toggleChildrenDisabled(dbCard, false, []) + selectActivityTabByIndex(1) + } + } + return undefined +} + diff --git a/src/logic/jsHelper.js b/src/logic/jsHelper.js new file mode 100644 index 0000000..2f92e14 --- /dev/null +++ b/src/logic/jsHelper.js @@ -0,0 +1,84 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +export function moveElement(arr, oldIndex, newIndex) { + if (newIndex >= arr.length) { + newIndex = arr.length - 1; + } else if (newIndex < 0) { + newIndex = 0; + } + arr.splice(newIndex, 0, arr.splice(oldIndex, 1)[0]); + return arr; + } + + function areEqualJSONStringify(obj1, obj2) { + return JSON.stringify(obj1) === JSON.stringify(obj2); + } + + function areEqualDeep(obj1, obj2) { + if (typeof obj1 !== 'object' || typeof obj2 !== 'object' || obj1 === null || obj2 === null) { + return obj1 === obj2; + } + + const keys1 = Object.keys(obj1); + const keys2 = Object.keys(obj2); + + if (keys1.length !== keys2.length) { + return false; + } + + for (let key of keys1) { + if (!obj2.hasOwnProperty(key) || !areEqualDeep(obj1[key], obj2[key])) { + return false; + } + } + + return true; + } + + export function arraysAreEqual(arr1, arr2) { + if (arr1.length !== arr2.length) { + return false; + } + for (let i = 0; i < arr1.length; i++) { + if (!areEqualJSONStringify(arr1[i], arr2[i])) { + return false; + } + } + return true; + } + + export function ensureRadioButtonVisible(radioButton) { + const container = radioButton.closest('div[style*="overflow"]'); + if (container) { + const containerRect = container.getBoundingClientRect(); + const radioRect = radioButton.getBoundingClientRect(); + + if (radioRect.top < containerRect.top || radioRect.bottom > containerRect.bottom) { + container.scrollTop = radioButton.offsetTop - container.offsetTop; + } + } + } + \ No newline at end of file diff --git a/src/logic/jsonHelper.js b/src/logic/jsonHelper.js new file mode 100644 index 0000000..baec5e1 --- /dev/null +++ b/src/logic/jsonHelper.js @@ -0,0 +1,28 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +export function isObjectEmpty(obj) { + return Object.keys(obj).length === 0; +} \ No newline at end of file diff --git a/src/logic/rankerMethods.js b/src/logic/rankerMethods.js new file mode 100644 index 0000000..2cd93f5 --- /dev/null +++ b/src/logic/rankerMethods.js @@ -0,0 +1,80 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +import { getReadableDate } from './datehelper' + +export function getNamedObject_sname(arr) { + + const returnArray = [] + arr.map(element => returnArray.push(element.sname)) + return returnArray +} + +export const addAgonisms = (individuals, agonisms) => { + const sNames = getNamedObject_sname(individuals) + + /* ADD AGONISM TO INDIVIDUALS */ + sNames.map(element => { + individuals.map(iElement => { + let agonismEntry = agonisms.find(agonism => agonism.actor === iElement.sname && agonism.actee === element) + if(agonismEntry) + { + iElement[element] = agonismEntry.count + } + }) + }) +} + +export const clearAgonisms = (individuals) => { + const sNames = getNamedObject_sname(individuals) + + sNames.map(element => { + individuals.map(iElement => { + delete iElement[element] + }) + }) +} + +export const getRanking = (individuals) => individuals.map(({sname, matured}, index) => + ({sname, matured, index}) +) + +export const useAvailableRanking = (rankdates, rankingDate, hasBeenRanked) => + { + const mostRecentRanked = (rankdates && rankdates.length > 0) ? rankdates.reduce((max, current) => { + return current.rnkdate > max.rnkdate ? current : max; + }) + : undefined + const rankMatch = (rankdates && rankdates.length > 0) ? rankdates.find(element => getReadableDate(element.rnkdate, true, true) === rankingDate) + : undefined + + if(mostRecentRanked && !rankMatch) + { + const rank_date = getReadableDate(mostRecentRanked.rnkdate, true, true) + } + } + + + diff --git a/src/logic/sqlQueries.js b/src/logic/sqlQueries.js new file mode 100644 index 0000000..bf76aac --- /dev/null +++ b/src/logic/sqlQueries.js @@ -0,0 +1,267 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +import { subtractOneMonthSpecialized } from "./datehelper" +import { monthsAdd } from '../logic/datehelper'; + +export const buildSqlFetchGroups = () => { + // select gid, name, cast(gid as varchar)||' ('||name||')' idAndName from groups where cease_to_exist is null + // const sqlString = `select gid, name, cast(gid as varchar)||' ('||name||')' gidandname from groups where cease_to_exist is null order by gid` + // const sqlString = `select gid, name, cast(gid as varchar)||' ('||name||')' gidandname from groups where gid < 3 order by gid` + const sqlString = `select gid, name, cast(gid as varchar)||' ('||name||')' gidandname from groups where study_grp is not null order by gid` + return sqlString +} + +export const buildSqlFetchIndividuals = (group, startDate, endDate, rankQuery) => { + + const isMember = buildMemberSubQuery(group, startDate, endDate, rankQuery) + const isNewborn = buildNewbornSubQuery(startDate, endDate) + const memberdays = buildMemberDaysSubQuery(group, startDate, endDate) + const memberfirst = buildMemberFirstsSubQuery(group, startDate, endDate) + const memberlast = buildMemberLastSubQuery(group, startDate, endDate) + + const groupCode = group.substring(0,6) + + const sqlSubSelect = String(rankQuery) + .replace("%s", "'" + startDate + "'") + .replace("%f", "'" + endDate + "'") + .replace("%g", groupCode) + .replace("%f", "'" + endDate + "'") + + const sql = + `SELECT + bioid + , sname + , name + , pid + , birth + , bstatus + , sex + , matgrp + , statdate + , status + , dcause + , dcausenatureconfidence + , dcauseagentconfidence + , entrydate + , entrytype + , (SELECT MIN(matured) FROM maturedates WHERE sname = biograph.sname HAVING MIN(matured) <= '` + endDate + `') ismatured + , (SELECT MIN(ranked) FROM rankdates WHERE sname = biograph.sname HAVING MIN(ranked) <= '` + endDate + `') isranked + , (SELECT MIN(matured) FROM maturedates WHERE sname = biograph.sname ) matured + , (SELECT MIN(ranked) FROM rankdates WHERE sname = biograph.sname ) ranked + , ` + isMember + ` + , ` + isNewborn + ` + , ` + memberdays + ` + , ` + memberfirst + ` + , ` + memberlast + ` + FROM biograph + WHERE + sname IN ( ` + sqlSubSelect + `) + ORDER BY sname` + return( + {sql} + ) + + /* , (SELECT MIN(matured) FROM maturedates WHERE sname = biograph.sname) matured */ + /* (SELECT MIN(matured) FROM maturedates WHERE sname = biograph.sname) */ + /* , (SELECT min(rnkdate) FROM ranks WHERE sname = biograph.sname AND grp = ` + groupCode + ` ) ranked */ + /* , (SELECT MIN(ranked) FROM rankdates WHERE sname = biograph.sname) ranked */ +} + +export const buildSqlFetchAgonisms = (group, startDate, endDate, rankQuery) => { + + const groupCode = group.substring(0,6) + const sqlSubSelect = String(rankQuery) + .replace("%s", "'" + startDate + "'") + .replace("%f", "'" + endDate + "'") + .replace("%g", groupCode) + .replace("%f", "'" + endDate + "'") + + const sql = + `SELECT + actor + , actee + , COUNT(*) + FROM actor_actees + WHERE + actor IN ( ` + sqlSubSelect + `) + AND actee IN ( ` + sqlSubSelect + `) + AND date >= '` + startDate + `' AND date <= '` + endDate + `' + AND act IN (SELECT act FROM acts WHERE class = 'A') + GROUP BY actor, actee` + + return( + {sql} + ) + +} + +export const buildSqlFetchMaxRankDate = () => { + const sql = 'SELECT MAX(rnkdate) from ranks' + return {sql} +} + +export const buildSqlFetchRankTypes = () => { + const sql = 'SELECT * from rnktypes' + return {sql} +} + +export const buildSqlFetchRankDates = (group, rankingDate, ranktype) => { + // const sqlString = `select distinct rnkdate, grp, rnktype from ranks where rnkdate >= '` + monthsAdd(rankingDate, -6) + `' and rnkdate <= '` + monthsAdd(rankingDate, 6) + `' order by rnkdate desc` + + const groupCode = group.substring(0,6) + const sql = `select distinct rnkdate, grp, rnktype from ranks where grp = '` + groupCode + `' and rnktype = '` + ranktype + `' and rnkdate >= '` + monthsAdd(rankingDate, -6) + `' and rnkdate <= '` + monthsAdd(rankingDate, 6) + `' order by rnkdate desc` + return( + {sql} + ) +} + +export const buildSqlFetchRanks = (group, rankdate, ranktype) => { + + const groupCode = group.substring(0,6) + const sql = `select sname, rank from ranks where grp = ` + groupCode + ` and rnkdate = '` + rankdate + `' and rnktype = '` + ranktype + `'` + return( + {sql} + ) + +} + +export const buildSqlDeleteRanks = (group, rnktype, rnkdate) => { + const grp = group.substring(0,6) + const sql = 'DELETE FROM ranks WHERE grp = $1 AND rnktype = $2 AND rnkdate = $3 RETURNING *' + const params = {} + params['grp'] = grp + params['rnktype'] = rnktype + params['rnkdate'] = rnkdate + const payload = {} + payload['sql'] = sql + payload['params'] = params + return( + payload + ) +} + +export const buildSqlInsertRanks = (group, rnktype, rnkdate, ranking) => { + const grp = group.substring(0,6) + const sql = 'INSERT INTO ranks (sname, rnkdate, grp, rnktype, rank) VALUES($1, $2, $3, $4, $5)' + const params = {} + params['grp'] = grp + params['rnktype'] = rnktype + params['rnkdate'] = rnkdate + params['ranking'] = ranking + const payload = {} + payload['sql'] = sql + payload['params'] = params + return( + payload + ) +} + +export const buildSqlFetchAgonismHistory = (actor, actee) => +{ + const sql = ` SELECT date, actor, act, actee, start, stop FROM actor_actees WHERE actor IN ('`+ actor + `','`+ actee + `') AND actee IN ('`+ actor + `','`+ actee + `') AND act IN ('AS','DS','OS','A') ORDER BY date ` + return sql +} + +const buildAgonismHistory = (actor, actee) => + { + const sql = ` SELECT date, actor, act, actee, start, stop FROM actor_actees WHERE actor IN ('`+ actor + `','`+ actee + `') AND actee IN ('`+ actor + `','`+ actee + `') AND act IN ('AS','DS','OS','A') ORDER BY date ` + return sql + } + +const buildMemberSubQuery_notused = (group, startDate, endDate, rankQuery) => { + /* NOT NEW: (SELECT DISTINCT b.sname FROM biograph b, members a, maturedates c WHERE b.sname = a.sname AND a.date >= '2023-11-01' AND a.date <= '2023-11-30' AND a.grp = 1.2110 AND b.sex = 'F' AND c.sname = b.sname AND b.sname = biograph.sname) NOTNEW */ + + const groupCode = group.substring(0,6) + + const gteDate = subtractOneMonthSpecialized(startDate) + const lteDate = subtractOneMonthSpecialized(endDate) + const maturedLteDate = subtractOneMonthSpecialized(endDate) + + const rankQueryWithAliasReferences = String(rankQuery).replaceAll("biograph.", "BIOG.").replaceAll("members.", "MEMB.").replaceAll("maturedates.", "MATU.") + const rankQueryWithAliases = String(rankQueryWithAliasReferences).replace("biograph", "biograph BIOG").replaceAll("members", "members MEMB").replace("maturedates", "maturedates MATU") + const rankQueryWithSnameRef = String(rankQueryWithAliases) + " AND biograph.sname = BIOG.sname" + + const subQuery = String(rankQueryWithSnameRef) + .replace("%s", "'" + gteDate + "'") + .replace("%f", "'" + lteDate + "'") + .replace("%g", groupCode) + .replace("%f", "'" + maturedLteDate + "'") + + const finalQuery = "(" + subQuery + ") groupmember" + + return(finalQuery) +} + +const buildMemberSubQuery = (group, startDate, endDate, rankQuery) => { + const groupCode = group.substring(0,6) + const gteDate = subtractOneMonthSpecialized(startDate) + const lteDate = subtractOneMonthSpecialized(endDate) + + const subquery = ` (SELECT count(*) FROM members where biograph.sname = members.sname and grp = '` + groupCode + `' and date >= '` + gteDate + `' and date <= '` + lteDate + `')` + const finalQuery = `(CASE ` + subquery + ` WHEN 0 THEN true ELSE false END) immigrant ` + + return(finalQuery) +} + +const buildNewbornSubQuery = (startDate, endDate) => { + const subquery = ` (biograph.birth >= '` + startDate + `' and biograph.birth <= '` + endDate + `') newborn ` + + return(subquery) +} + +// select count(membid) memberdays, min(date) memberfirst, max(date) memberlast from members where sname = 'JOJ' and grp = '1.1100' and date >= '2023-12-01' and date <= '2023-12-31' + +const buildMemberDaysSubQuery = (group, startDate, endDate) => { + const groupCode = group.substring(0,6) + // const gteDate = subtractOneMonthSpecialized(startDate) + // const lteDate = subtractOneMonthSpecialized(endDate) + + const subquery = ` (SELECT count(*) memberdays FROM members where biograph.sname = members.sname and grp = '` + groupCode + `' and date >= '` + startDate + `' and date <= '` + endDate + `') memberdays` + + return(subquery) +} + +const buildMemberFirstsSubQuery = (group, startDate, endDate) => { + const groupCode = group.substring(0,6) + // const gteDate = subtractOneMonthSpecialized(startDate) + // const lteDate = subtractOneMonthSpecialized(endDate) + + const subquery = ` (SELECT min(date) memberfirst FROM members where biograph.sname = members.sname and grp = '` + groupCode + `' and date >= '` + startDate + `' and date <= '` + endDate + `') memberfirst` + + return(subquery) +} + +const buildMemberLastSubQuery = (group, startDate, endDate) => { + const groupCode = group.substring(0,6) + // const gteDate = subtractOneMonthSpecialized(startDate) + // const lteDate = subtractOneMonthSpecialized(endDate) + + const subquery = ` (SELECT max(date) memberfirst FROM members where biograph.sname = members.sname and grp = '` + groupCode + `' and date >= '` + startDate + `' and date <= '` + endDate + `') memberlast` + + return(subquery) +} + + diff --git a/src/react/errorHandler.js b/src/react/errorHandler.js new file mode 100644 index 0000000..7d40534 --- /dev/null +++ b/src/react/errorHandler.js @@ -0,0 +1,64 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +export const errorHandler = () => { + + const consoleError = console.error; + const consoleInfo = console.info; + const consoleWarn = console.warn; + const SUPPRESSED_ERRORS = ['Use the `defaultValue` or `value` props'] /* ERROR FOR USING SELECT ATTRIBUTE ON OPTION TAG FOR SELECT CONTROL */ + const SUPPRESSED_INFO = ['Test Case: suppressed'] + const SUPPRESSED_WARNINGS = ['Test Case: suppressed']; + const HANDLE_AJAX_ERRORS = ['Access to XMLHttpRequest at', 'Error while trying to use ']; + + console.error = function filterErrors(msg, ...args) { + if (HANDLE_AJAX_ERRORS.some((entry) => msg.includes(entry))) { + HANDLE_AJAX_ERRORS.map((entry) => console.log('entry', entry)) + } + if (!SUPPRESSED_ERRORS.some((entry) => msg.includes(entry))) { + consoleError(msg, ...args); + } + }; + + console.info = function filterErrors(msg, ...args) { + if (!SUPPRESSED_INFO.some((entry) => msg.includes(entry))) { + consoleInfo(msg, ...args); + } + }; + + console.warn = function filterWarnings(msg, ...args) { + if (!SUPPRESSED_WARNINGS.some((entry) => msg.includes(entry))) { + consoleWarn(msg, ...args); + } + }; + + //console.info('Test Case: suppressed') + //console.info('Test Case: not-suppressed') + //console.warn('Test Case: suppressed') + //console.warn('Test Case: not-suppressed') + //console.error('Access to XMLHttpRequest at foo') + //console.error('Access to XMLHttpRequest at') + //console.error('Error while trying to use ') +} \ No newline at end of file diff --git a/src/react/middleware.js b/src/react/middleware.js new file mode 100644 index 0000000..98aac46 --- /dev/null +++ b/src/react/middleware.js @@ -0,0 +1,59 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +import { isObjectEmpty } from "../logic/jsonHelper" +import { getRanking, useAvailableRanking } from "../logic/rankerMethods" +import { loadRanking, loadRankDates } from "../redux/rankerActions" + +export const loggerMiddleware = storeAPI => next => action => { + //console.log('dispatching', action) + const label = action.type ? action.type : action.toString().substring(15,35) + let result = next(action) + console.log(label, ': next state', storeAPI.getState()) + return {"Note" : "from loggerMiddleware" , result} +} + +export const updateRanking = storeAPI => next => action => { + if (action.type === 'ranker/loadIndividuals' || action.type === 'ranker/thunkLoadIndividuals') { + const individuals = [...action.payload] + const ranking = getRanking(individuals) + storeAPI.dispatch(loadRanking(ranking)) + } + + return next(action) +} + +export const getLatestRanking = storeAPI => next => action => { + if (action.type === 'ranker/thunkLoadRankDates') { + if(!isObjectEmpty(action.payload)){ + const rankdates = [...action.payload.rankdates] + const rankingDate = action.payload.rankingDate + const hasBeenRanked = action.payload.hasBeenRanked + const rankingparams = storeAPI.getState().global.rankingparams + useAvailableRanking(rankdates, rankingDate, hasBeenRanked) + } + } + return next(action) +} diff --git a/src/redux/globalActions.js b/src/redux/globalActions.js new file mode 100644 index 0000000..3510332 --- /dev/null +++ b/src/redux/globalActions.js @@ -0,0 +1,149 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +const newAction = (actionName) => { + return { + type: 'global/' + actionName + } +} +const newDataAction = (actionName, data) => { + return { + type: 'global/' + actionName, + payload: data + } +} + + +export const setBackground = background => { + return { + type: 'global/setBackground', + payload: background + } + } + + export const suspendModal = { + type: 'global/suspendModal' + } + + export const resumeModal = { + type: 'global/resumeModal' + } + + export const setRankButtons = rankButtons => { + return { + type: 'global/setRankButtons', + payload: rankButtons + } + } + + export const setColumnHighlight = columnId => { + return { + type: 'global/setColumnHighlight', + payload: columnId + } + } + + export const setRowHighlight = rowId => { + return { + type: 'global/setRowHighlight', + payload: rowId + } + } + + export const setActivityLog = (logEntry, error) => { + let payload = logEntry + if(error) + { + payload =

{logEntry}

+ } + return ( + { + type: 'global/setActivityLog', + payload: payload + } + ) + } + export const clearActivityLog = newAction('clearActivityLog') + + export const addMoveHistory = movement => newDataAction('addMoveHistory', movement) + export const setMoveHistory = historyArray => newDataAction('setMoveHistory', historyArray) + export const clearMoveHistory = newAction('clearMoveHistory') + export const selectMoveHistory = state => state.global.moveHistory + + export const setReverted = reverted => newDataAction('setReverted', reverted) + export const clearReverted = newAction('clearReverted') + + export const setCredentials = credentials => newDataAction('setCredentials', credentials) + export const clearCredentials = newAction('clearCredentials') + export const selectCredentials = state => state.global.credentials + + export const setRankMethod = method => newDataAction('setRankMethod', method) + export const selectRankMethod = state => state.global.rankMethod + + export const toggleAgonismHighlight = newAction('toggleAgonismHighlight') + export const selectAgonismHighlight = state => state.global.agonismHighlight + + export const setDescriptor = descriptor => newDataAction('setDescriptor', descriptor) + export const selectDescriptor = state => state.global.descriptor + + export const setVersion = version => newDataAction('setVersion', version) + export const selectVersion = state => state.global.version + + export const setCookie = cookie => newDataAction('setCookie', cookie) + export const clearCookie = newAction('clearCookie') + export const selectCookie = state => state.global.cookie + + export const setSessionActive = newAction('setSessionActive') + export const clearSessionActive = newAction('clearSessionActive') + export const selectSessionActive = state => state.global.sessionactive + + export const setActiveRanking = newAction('setRankingActive') + export const clearActiveRanking = newAction('clearRankingActive') + export const selectActiveRanking = state => state.global.rankingactive + + export const setHasBeenRanked = newAction('setHasBeenRanked') + export const clearHasBeenRanked = newAction('clearHasBeenRanked') + export const selectHasBeenRanked = state => state.global.hasBeenRanked + + export const setRanksHaveChanged = newAction('setRanksHaveChanged') + export const clearRanksHaveChanged = newAction('clearRanksHaveChanged') + export const selectRanksHaveChanged = state => state.global.ranksHaveChanged + + export const setZoomscale = zoomscale => newDataAction('setZoomscale', zoomscale) + export const clearZoomscale = newAction('clearZoomScale') + export const selectZoomscale = state => state.global.zoomscale + + export const setInvalidrankdates = newAction('setInvalidrankdates') + export const clearInvalidrankdates = newAction('clearInvalidrankdates') + export const selectInvalidrankdates = state => state.global.invalidrankdates + + export const setRankingParams = rankingparams => newDataAction('setRankingParams', rankingparams) + export const clearRankingParams = newAction('clearRankingParams') + export const selectRankingParams = state => state.global.rankingparams + + export const loadMaxRankDate = rankdate => newDataAction('loadMaxRankDate', rankdate) + export const selectMaxRankDate= state => state.global.maxrankdate + + diff --git a/src/redux/globalReducer.js b/src/redux/globalReducer.js new file mode 100644 index 0000000..1d71ffa --- /dev/null +++ b/src/redux/globalReducer.js @@ -0,0 +1,129 @@ + +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +const initialState = { + defaultRank : 'ALF', + columnHighlight : '', + rowHighlight : '', + activityLog : [''], + moveHistory : [], + reverted : [], + credentials : {}, + agonismHighlight : false, + descriptor: '', + version: '0', + cookie: {}, + sessionactive: false, + rankingactive: false, + rankMethod: '', + hasBeenRanked: false, + ranksHaveChanged: false, + zoomscale: 1, + invalidrankdates: false, + rankingparams: {}, + maxrankdate: '' +} + +export default function globalReducer(state = initialState, action) { + switch (action.type) { + case 'global/suspendModal': + return {...state, modalSuspended : true} + case 'global/resumeModal': + return {...state, modalSuspended : false} + case 'global/setBackground': + return {...state, background : action.payload} + case 'global/setRankButtons': + return {...state, rankButtons : action.payload} + case 'global/setolumnHighlight': + return {...state, columnHighlight : action.payload} + case 'global/setRowHighlight': + return {...state, rowHighlight : action.payload} + case 'global/setRankMethod': + return {...state, rankMethod : action.payload} + case 'global/setActivityLog': + return {...state, activityLog : [ action.payload, ...state.activityLog ]} + case 'global/clearActivityLog': + return {...state, activityLog : []} + case 'global/setReverted': + return {...state, reverted : action.payload } + case 'global/clearReverted': + return {...state, reverted : []} + case 'global/addMoveHistory': + return {...state, moveHistory : [ action.payload, ...state.moveHistory ]} + case 'global/setMoveHistory': + return {...state, moveHistory : [...action.payload]} + case 'global/clearMoveHistory': + return {...state, moveHistory : []} + case 'global/setDescriptor': + return {...state, descriptor : action.payload} + case 'global/setVersion': + return {...state, version : action.payload} + case 'global/setCookie': + return {...state, cookie : action.payload} + case 'global/clearCredentials': + return {...state, cookie : {}} + case 'global/setCredentials': + return {...state, credentials : action.payload} + case 'global/clearCredentials': + return {...state, credentials : {}} + case 'global/setZoomscale': + return {...state, zoomscale : action.payload} + case 'global/clearZoomscale': + return {...state, zoomscale : 1 } + case 'global/setSessionActive': + return {...state, sessionactive : true} + case 'global/clearSessionActive': + return {...state, sessionactive : false} + case 'global/setRankingActive': + return {...state, rankingactive : true} + case 'global/clearRankingActive': + return {...state, rankingactive : false} + case 'global/toggleAgonismHighlight': + return {...state, agonismHighlight : !state.agonismHighlight} + case 'global/setHasBeenRanked': + return {...state, hasBeenRanked : true} + case 'global/clearHasBeenRanked': + return {...state, hasBeenRanked : false} + case 'global/setRanksHaveChanged': + return {...state, ranksHaveChanged : true} + case 'global/clearRanksHaveChanged': + return {...state, ranksHaveChanged : false} + case 'global/setInvalidrankdates': + return {...state, invalidrankdates : true} + case 'global/clearInvalidrankdates': + return {...state, invalidrankdates : false} + case 'global/setRankingParams': + return {...state, rankingparams : action.payload} + case 'global/clearRankingParams': + return {...state, rankingparams : {} } + case 'global/loadMaxRankDate': + return {...state, maxrankdate : action.payload} + default: { + return state; + } + } +} + diff --git a/src/redux/rankerActions.js b/src/redux/rankerActions.js new file mode 100644 index 0000000..e831655 --- /dev/null +++ b/src/redux/rankerActions.js @@ -0,0 +1,124 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +export const loadIndividuals = individuals => { + return { + type: 'ranker/loadIndividuals', + payload: individuals + } + } + export const selectIndividuals = state => { + return state.ranker.individuals + } + export const thunkLoadIndividuals = individuals => { + return { + type: 'ranker/thunkLoadIndividuals', + payload: individuals + } + } + + + + export const loadAgonisms = agonisms => { + return { + type: 'ranker/loadAgonisms', + payload: agonisms + } + } + export const selectAgonisms = state => state.ranker.agonisms + + + export const thunkLoadAgonisms = agonisms => { + return { + type: 'ranker/thunkLoadAgonisms', + payload: agonisms + } + } + + export const thunkLoadRankDates = rankdates => { + return { + type: 'ranker/thunkLoadRankDates', + payload: rankdates + } + } + export const loadRankDates = rankdates => { + return { + type: 'ranker/loadRankDates', + payload: rankdates + } + } + + + export const thunkLoadGroups = groups => { + return { + type: 'ranker/thunkLoadGroups', + payload: groups + } + } + + export const thunkLoadRankTypes = ranktypes => { + return { + type: 'ranker/thunkLoadRankTypes', + payload: ranktypes + } + } + + export const loadRanking = ranking => { + return { + type: 'ranker/loadRanking', + payload: ranking + } + } + export const selectRanking = state => state.ranker.ranking + + export const loadSavedRanking = savedRanking => { + return { + type: 'ranker/loadSavedRanking', + payload: savedRanking + } + } + export const selectSavedRanking = state => state.ranker.savedRanking + + /* AGONISM HISTORY */ + export const loadAgonismHistory = agonismhistory => { + return { + type: 'ranker/loadAgonismHistory', + payload: agonismhistory + } + } + export const clearAgonismHistory = agonismhistory => { + return { + type: 'ranker/clearAgonismHistory', + } + } + export const selectAgonismHistory = state => state.ranker.agonismhistory + export const selectAgonismHistoryLoaded = state => state.ranker.agonismhistoryloaded + + + + + + + diff --git a/src/redux/rankerReducer.js b/src/redux/rankerReducer.js new file mode 100644 index 0000000..c59a514 --- /dev/null +++ b/src/redux/rankerReducer.js @@ -0,0 +1,71 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +const initalState = { + rankdates: {rankdates : []}, + individuals: [], + agonisms: [], + ranktypes: [], + groups: [], + ranking: [], + savedRanking: [], + agonismhistory: [], + agonismhistoryloaded: false +} + + +export const rankerReducer = (state = initalState, action) => { + switch (action.type) { + case 'ranker/loadIndividuals': + return {...state, individuals : action.payload} + case 'ranker/loadAgonisms': + return {...state, agonisms : action.payload} + case 'ranker/thunkLoadIndividuals': + return {...state, individuals : [...action.payload]} + case 'ranker/thunkLoadAgonisms': + return {...state, agonisms : action.payload} + case 'ranker/thunkLoadGroups': + return {...state, groups : action.payload} + case 'ranker/thunkLoadRankDates': + return {...state, rankdates : action.payload } + case 'ranker/loadRankDates': + return {...state, rankdates : action.payload } + case 'ranker/thunkLoadRankTypes': + return {...state, ranktypes : action.payload} + case 'ranker/loadRanking': + return {...state, ranking : action.payload} + case 'ranker/loadSavedRanking': + return {...state, savedRanking : action.payload} + case 'ranker/loadAgonismHistory': + return {...state, agonismhistory : action.payload, agonismhistoryloaded : true} + case 'ranker/clearAgonismHistory': + return {...state, agonismhistory : [], agonismhistoryloaded : false} + default: + return state; + } + +}; + +export default rankerReducer; \ No newline at end of file diff --git a/src/redux/reducer.js b/src/redux/reducer.js new file mode 100644 index 0000000..04c3775 --- /dev/null +++ b/src/redux/reducer.js @@ -0,0 +1,36 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +import { combineReducers } from 'redux' + +import rankerReducer from './rankerReducer' +import globalReducer from './globalReducer' + +const rootReducer = combineReducers({ + ranker: rankerReducer, + global: globalReducer +}) + +export default rootReducer \ No newline at end of file diff --git a/src/redux/store.js b/src/redux/store.js new file mode 100644 index 0000000..dbb7bd2 --- /dev/null +++ b/src/redux/store.js @@ -0,0 +1,40 @@ +// Copyright (C) 2025 James D. Marks +// +// This file is part of Babase. +// +// Babase is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Babase. If not, see . +// +// Convert a m4 file defining constants to a different format. +// +// Syntax: See usage() below. +// +// James D. Marks +// +// Bugs: +// +import { createStore, applyMiddleware } from 'redux' +import { composeWithDevTools } from 'redux-devtools-extension' +import rootReducer from './reducer' +import { getLatestRanking, loggerMiddleware, updateRanking } from '../react/middleware' +import { thunk } from 'redux-thunk' + +const development_mode = false + +const middleware = development_mode + ? composeWithDevTools(applyMiddleware(loggerMiddleware, thunk, updateRanking, getLatestRanking )) + : applyMiddleware(loggerMiddleware, thunk, updateRanking, getLatestRanking) + +const store = createStore(rootReducer, middleware) + +export default store \ No newline at end of file -- 2.34.1