From 56e257cb93f25a82ee23d012759d230afb234097 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Fri, 18 Jul 2025 15:04:42 -0500 Subject: [PATCH 001/129] docs(v6): update v6 stackblitz setup for Angular and JS --- src/components/global/Playground/index.tsx | 2 +- .../global/Playground/stackblitz.utils.ts | 13 +- .../code/stackblitz/v6/angular/angular.json | 122 ++++++++++-------- .../stackblitz/v6/angular/app.component.html | 4 +- .../stackblitz/v6/angular/app.component.ts | 7 +- .../v6/angular/app.component.withContent.html | 4 +- .../v6/angular/app.component.withContent.ts | 15 +++ .../code/stackblitz/v6/angular/app.routes.ts | 13 ++ .../v6/angular/example.component.ts | 5 +- static/code/stackblitz/v6/angular/index.html | 16 +++ static/code/stackblitz/v6/angular/main.ts | 19 ++- .../code/stackblitz/v6/angular/package.json | 26 +++- .../stackblitz/v6/angular/tsconfig.app.json | 9 ++ static/code/stackblitz/v6/html/index.html | 11 +- .../stackblitz/v6/html/index.withContent.html | 11 +- static/code/stackblitz/v6/html/package.json | 17 ++- static/code/stackblitz/v6/html/tsconfig.json | 19 +++ static/code/stackblitz/v6/html/vite.config.ts | 18 +++ .../angular/example_component_ts.md | 4 +- .../version-v5/developer-resources/books.md | 2 +- .../version-v6/developer-resources/books.md | 2 +- versions.json | 3 +- versionsArchived.json | 1 - 23 files changed, 263 insertions(+), 80 deletions(-) create mode 100644 static/code/stackblitz/v6/angular/app.component.withContent.ts create mode 100644 static/code/stackblitz/v6/angular/app.routes.ts create mode 100644 static/code/stackblitz/v6/angular/index.html create mode 100644 static/code/stackblitz/v6/angular/tsconfig.app.json create mode 100644 static/code/stackblitz/v6/html/tsconfig.json create mode 100644 static/code/stackblitz/v6/html/vite.config.ts diff --git a/src/components/global/Playground/index.tsx b/src/components/global/Playground/index.tsx index 9d7f033b445..3489ae7840b 100644 --- a/src/components/global/Playground/index.tsx +++ b/src/components/global/Playground/index.tsx @@ -153,7 +153,7 @@ export default function Playground({ * The major version of Ionic to use in the generated StackBlitz examples. * This will also load assets for StackBlitz from the specified version directory. */ - version: number; + version: string; }) { if (!code || Object.keys(code).length === 0) { console.warn('No code usage examples provided for this Playground example.'); diff --git a/src/components/global/Playground/stackblitz.utils.ts b/src/components/global/Playground/stackblitz.utils.ts index 2adb362df0d..a9461afc6d2 100644 --- a/src/components/global/Playground/stackblitz.utils.ts +++ b/src/components/global/Playground/stackblitz.utils.ts @@ -38,10 +38,10 @@ export interface EditorOptions { */ mode?: string; - version?: number; + version?: string; } -const loadSourceFiles = async (files: string[], version: number) => { +const loadSourceFiles = async (files: string[], version: string) => { const versionDir = `v${version}`; const sourceFiles = await Promise.all(files.map((f) => fetch(`/docs/code/stackblitz/${versionDir}/${f}`))); return await Promise.all(sourceFiles.map((res) => res.text())); @@ -155,7 +155,14 @@ const openAngularEditor = async (code: string, options?: EditorOptions) => { ...options?.files, }; - files[main] = files[main].replace('provideIonicAngular()', `provideIonicAngular({ mode: '${options?.mode}' })`); + if (options?.version === '6') { + files[main] = files[main].replace( + 'importProvidersFrom(IonicModule.forRoot({ }))', + `importProvidersFrom(IonicModule.forRoot({ mode: '${options?.mode}' }))` + ); + } else { + files[main] = files[main].replace('provideIonicAngular()', `provideIonicAngular({ mode: '${options?.mode}' })`); + } sdk.openProject({ template: 'node', diff --git a/static/code/stackblitz/v6/angular/angular.json b/static/code/stackblitz/v6/angular/angular.json index 811624f69b5..167ced0d882 100644 --- a/static/code/stackblitz/v6/angular/angular.json +++ b/static/code/stackblitz/v6/angular/angular.json @@ -4,11 +4,10 @@ "newProjectRoot": "projects", "projects": { "app": { + "projectType": "application", "root": "", "sourceRoot": "src", - "projectType": "application", "prefix": "app", - "schematics": {}, "architect": { "build": { "builder": "@angular-devkit/build-angular:browser", @@ -16,38 +15,53 @@ "outputPath": "dist", "index": "src/index.html", "main": "src/main.ts", - "polyfills": "src/polyfills.ts", - "tsConfig": "src/tsconfig.app.json", - "assets": ["src/favicon.ico", "src/assets"], + "polyfills": [ + "src/polyfills.ts" + ], + "tsConfig": "tsconfig.app.json", + "assets": [ + { + "glob": "**/*", + "input": "src/assets", + "output": "assets" + } + ], "styles": ["src/styles.css", "src/global.css", "src/theme/variables.css"], "scripts": [] }, "configurations": { "production": { - "fileReplacements": [ - { - "replace": "src/environments/environment.ts", - "with": "src/environments/environment.prod.ts" - } - ], - "optimization": true, - "outputHashing": "all", - "sourceMap": false, - "extractCss": true, - "namedChunks": false, - "aot": true, - "extractLicenses": true, - "vendorChunk": false, - "buildOptimizer": true, "budgets": [ { "type": "initial", "maximumWarning": "2mb", "maximumError": "5mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kb", + "maximumError": "4kb" } - ] + ], + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true, + "namedChunks": true + }, + "ci": { + "progress": false } - } + }, + "defaultConfiguration": "production" }, "serve": { "builder": "@angular-devkit/build-angular:dev-server", @@ -57,8 +71,15 @@ "configurations": { "production": { "browserTarget": "app:build:production" + }, + "development": { + "browserTarget": "app:build:development" + }, + "ci": { + "progress": false } - } + }, + "defaultConfiguration": "development" }, "extract-i18n": { "builder": "@angular-devkit/build-angular:extract-i18n", @@ -73,46 +94,41 @@ "polyfills": "src/polyfills.ts", "tsConfig": "src/tsconfig.spec.json", "karmaConfig": "src/karma.conf.js", - "styles": ["src/styles.css"], - "scripts": [], - "assets": ["src/favicon.ico", "src/assets"] - } - }, - "lint": { - "builder": "@angular-devkit/build-angular:tslint", - "options": { - "tsConfig": ["src/tsconfig.app.json", "src/tsconfig.spec.json"], - "exclude": ["**/node_modules/**"] - } - } - } - }, - "app-e2e": { - "root": "e2e/", - "projectType": "application", - "prefix": "", - "architect": { - "e2e": { - "builder": "@angular-devkit/build-angular:protractor", - "options": { - "protractorConfig": "e2e/protractor.conf.js", - "devServerTarget": "app:serve" + "assets": [ + { + "glob": "**/*", + "input": "src/assets", + "output": "assets" + } + ], + "styles": ["src/styles.css", "src/global.css", "src/theme/variables.css"], + "scripts": [] }, "configurations": { - "production": { - "devServerTarget": "app:serve:production" + "ci": { + "progress": false, + "watch": false } } }, "lint": { - "builder": "@angular-devkit/build-angular:tslint", + "builder": "@angular-eslint/builder:lint", "options": { - "tsConfig": "e2e/tsconfig.e2e.json", - "exclude": ["**/node_modules/**"] + "lintFilePatterns": ["src/**/*.ts", "src/**/*.html"] } } } } }, - "defaultProject": "app" + "cli": { + "schematicCollections": ["@ionic/angular-toolkit"] + }, + "schematics": { + "@angular-eslint/schematics:application": { + "setParserOptionsProject": true + }, + "@angular-eslint/schematics:library": { + "setParserOptionsProject": true + } + } } diff --git a/static/code/stackblitz/v6/angular/app.component.html b/static/code/stackblitz/v6/angular/app.component.html index 1031647a0e0..3aeab946d20 100644 --- a/static/code/stackblitz/v6/angular/app.component.html +++ b/static/code/stackblitz/v6/angular/app.component.html @@ -1,3 +1,5 @@ - + + + diff --git a/static/code/stackblitz/v6/angular/app.component.ts b/static/code/stackblitz/v6/angular/app.component.ts index ed440084f8f..dabad158164 100644 --- a/static/code/stackblitz/v6/angular/app.component.ts +++ b/static/code/stackblitz/v6/angular/app.component.ts @@ -1,8 +1,13 @@ import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { RouterOutlet } from '@angular/router'; +import { ExampleComponent } from './example.component'; @Component({ selector: 'app-root', templateUrl: 'app.component.html', - styleUrls: ['app.component.css'] + styleUrls: ['app.component.css'], + imports: [IonicModule, ExampleComponent, RouterOutlet], + standalone: true }) export class AppComponent { } diff --git a/static/code/stackblitz/v6/angular/app.component.withContent.html b/static/code/stackblitz/v6/angular/app.component.withContent.html index 96ebf597215..df5c543377f 100644 --- a/static/code/stackblitz/v6/angular/app.component.withContent.html +++ b/static/code/stackblitz/v6/angular/app.component.withContent.html @@ -1,5 +1,7 @@ - + + + diff --git a/static/code/stackblitz/v6/angular/app.component.withContent.ts b/static/code/stackblitz/v6/angular/app.component.withContent.ts new file mode 100644 index 00000000000..2078352ad98 --- /dev/null +++ b/static/code/stackblitz/v6/angular/app.component.withContent.ts @@ -0,0 +1,15 @@ +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { RouterOutlet } from '@angular/router'; +import { ExampleComponent } from './example.component'; + +@Component({ + selector: 'app-root', + templateUrl: 'app.component.html', + styleUrls: ['app.component.css'], + imports: [IonicModule, ExampleComponent, RouterOutlet], + standalone: true +}) +export class AppComponent { + constructor() {} +} diff --git a/static/code/stackblitz/v6/angular/app.routes.ts b/static/code/stackblitz/v6/angular/app.routes.ts new file mode 100644 index 00000000000..4a49853c7f4 --- /dev/null +++ b/static/code/stackblitz/v6/angular/app.routes.ts @@ -0,0 +1,13 @@ +import { Routes } from '@angular/router'; + +export const routes: Routes = [ + { + path: 'example', + loadComponent: () => import('./example.component').then((m) => m.ExampleComponent), + }, + { + path: '', + redirectTo: 'example', + pathMatch: 'full', + }, +]; \ No newline at end of file diff --git a/static/code/stackblitz/v6/angular/example.component.ts b/static/code/stackblitz/v6/angular/example.component.ts index 6b67261e0b3..b1cd8b6af79 100644 --- a/static/code/stackblitz/v6/angular/example.component.ts +++ b/static/code/stackblitz/v6/angular/example.component.ts @@ -1,8 +1,11 @@ import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', - styleUrls: ['example.component.css'] + styleUrls: ['example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent { } diff --git a/static/code/stackblitz/v6/angular/index.html b/static/code/stackblitz/v6/angular/index.html new file mode 100644 index 00000000000..79599e62e32 --- /dev/null +++ b/static/code/stackblitz/v6/angular/index.html @@ -0,0 +1,16 @@ + + + + + + + + Ionic App + + + + + + + + diff --git a/static/code/stackblitz/v6/angular/main.ts b/static/code/stackblitz/v6/angular/main.ts index 518110491b2..13819b6a52c 100644 --- a/static/code/stackblitz/v6/angular/main.ts +++ b/static/code/stackblitz/v6/angular/main.ts @@ -1,7 +1,14 @@ -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; +import { bootstrapApplication } from '@angular/platform-browser'; +import { RouteReuseStrategy, provideRouter, withPreloading, PreloadAllModules } from '@angular/router'; +import { IonicRouteStrategy, IonicModule } from '@ionic/angular'; +import { importProvidersFrom } from '@angular/core'; +import { routes } from './app/app.routes'; +import { AppComponent } from './app/app.component'; -import { AppModule } from './app/app.module'; - -platformBrowserDynamic() - .bootstrapModule(AppModule) - .catch((err: any) => console.error(err)); +bootstrapApplication(AppComponent, { + providers: [ + { provide: RouteReuseStrategy, useClass: IonicRouteStrategy }, + importProvidersFrom(IonicModule.forRoot({ })), + provideRouter(routes, withPreloading(PreloadAllModules)), + ], +}) \ No newline at end of file diff --git a/static/code/stackblitz/v6/angular/package.json b/static/code/stackblitz/v6/angular/package.json index 0ecc1227dd5..a80e5d13a5f 100644 --- a/static/code/stackblitz/v6/angular/package.json +++ b/static/code/stackblitz/v6/angular/package.json @@ -1,7 +1,31 @@ { + "name": "angular-starter", + "private": true, + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build" + }, "dependencies": { + "@angular/animations": "^15.0.0", + "@angular/common": "^15.0.0", + "@angular/compiler": "^15.0.0", + "@angular/core": "^15.0.0", + "@angular/forms": "^15.0.0", + "@angular/platform-browser": "^15.0.0", + "@angular/platform-browser-dynamic": "^15.0.0", + "@angular/router": "^15.0.0", + "rxjs": "~7.8.0", + "tslib": "^2.3.0", + "zone.js": "~0.12.0", "@ionic/angular": "^6.0.0", "@ionic/core": "^6.0.0", - "@angular/platform-browser-dynamic": "17.3.2" + "ionicons": "8.0.13" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^15.0.0", + "@angular/cli": "^15.0.0", + "@angular/compiler-cli": "^15.0.0", + "typescript": "~4.9.4" } } diff --git a/static/code/stackblitz/v6/angular/tsconfig.app.json b/static/code/stackblitz/v6/angular/tsconfig.app.json new file mode 100644 index 00000000000..f69a169a56e --- /dev/null +++ b/static/code/stackblitz/v6/angular/tsconfig.app.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/app", + "types": [] + }, + "files": ["src/main.ts", "src/polyfills.ts"], + "include": ["src/**/*.d.ts"] +} diff --git a/static/code/stackblitz/v6/html/index.html b/static/code/stackblitz/v6/html/index.html index 8a59c2afc0f..fb14e96ba98 100644 --- a/static/code/stackblitz/v6/html/index.html +++ b/static/code/stackblitz/v6/html/index.html @@ -1,14 +1,19 @@ - + + - - + + + + Ionic App {{ TEMPLATE }} + + diff --git a/static/code/stackblitz/v6/html/index.withContent.html b/static/code/stackblitz/v6/html/index.withContent.html index 3cd31834675..404344868cd 100644 --- a/static/code/stackblitz/v6/html/index.withContent.html +++ b/static/code/stackblitz/v6/html/index.withContent.html @@ -1,8 +1,11 @@ - + + - - + + + + Ionic App @@ -11,6 +14,8 @@ {{ TEMPLATE }} + + diff --git a/static/code/stackblitz/v6/html/package.json b/static/code/stackblitz/v6/html/package.json index b6dbee21fd0..113d2325e30 100644 --- a/static/code/stackblitz/v6/html/package.json +++ b/static/code/stackblitz/v6/html/package.json @@ -1,5 +1,20 @@ { + "name": "html-starter", + "private": true, + "type": "module", + "main": "index.ts", + "scripts": { + "dev": "vite", + "build": "vite build", + "start": "vite preview" + }, "dependencies": { - "@ionic/core": "^6.0.0" + "@ionic/core": "^6.0.0", + "ionicons": "8.0.13" + }, + "devDependencies": { + "typescript": "^5.0.0", + "vite": "^7.0.0", + "vite-plugin-static-copy": "^3.1.0" } } diff --git a/static/code/stackblitz/v6/html/tsconfig.json b/static/code/stackblitz/v6/html/tsconfig.json new file mode 100644 index 00000000000..0b999e71b8e --- /dev/null +++ b/static/code/stackblitz/v6/html/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "baseUrl": "./", + "target": "esnext", + "module": "nodenext", + "moduleResolution": "nodenext", + "outDir": "dist", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "lib": ["esnext", "dom"], + "resolveJsonModule": true, + "allowSyntheticDefaultImports": true, + "isolatedModules": true, + "types": ["node"] + }, + "include": ["src/**/*.ts"] +} diff --git a/static/code/stackblitz/v6/html/vite.config.ts b/static/code/stackblitz/v6/html/vite.config.ts new file mode 100644 index 00000000000..3e356ac9e72 --- /dev/null +++ b/static/code/stackblitz/v6/html/vite.config.ts @@ -0,0 +1,18 @@ +import { defineConfig } from 'vite'; +import { viteStaticCopy } from 'vite-plugin-static-copy'; + +export default defineConfig({ + optimizeDeps: { + exclude: ['@ionic/core'], + }, + plugins: [ + viteStaticCopy({ + targets: [ + { + src: 'node_modules/ionicons/dist/svg/*', + dest: 'svg' + } + ] + }) + ] +}); diff --git a/static/usage/v6/alert/presenting/controller/angular/example_component_ts.md b/static/usage/v6/alert/presenting/controller/angular/example_component_ts.md index 32583600432..1aa9c3cf014 100644 --- a/static/usage/v6/alert/presenting/controller/angular/example_component_ts.md +++ b/static/usage/v6/alert/presenting/controller/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { AlertController } from '@ionic/angular'; +import { IonicModule, AlertController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true, }) export class ExampleComponent { constructor(private alertController: AlertController) {} diff --git a/versioned_docs/version-v5/developer-resources/books.md b/versioned_docs/version-v5/developer-resources/books.md index 1a51bc94e8f..4553ac800c3 100644 --- a/versioned_docs/version-v5/developer-resources/books.md +++ b/versioned_docs/version-v5/developer-resources/books.md @@ -6,7 +6,7 @@ Angular. Vue. React. Vanilla JavaScript. All of these tools can be used to creat -by [Paul Halliday](https:://developer.school) +by [Paul Halliday](https://developer.school) ### [Creating Ionic Applications with StencilJS](https://www.joshmorony.com/creating-ionic-applications-with-stencil-js/) - [Free Preview](https://cdn2.hubspot.net/hubfs/3776657/PREVIEW-Creating-Ionic-Apps-with-StencilJS.pdf) diff --git a/versioned_docs/version-v6/developer-resources/books.md b/versioned_docs/version-v6/developer-resources/books.md index 1a51bc94e8f..4553ac800c3 100644 --- a/versioned_docs/version-v6/developer-resources/books.md +++ b/versioned_docs/version-v6/developer-resources/books.md @@ -6,7 +6,7 @@ Angular. Vue. React. Vanilla JavaScript. All of these tools can be used to creat -by [Paul Halliday](https:://developer.school) +by [Paul Halliday](https://developer.school) ### [Creating Ionic Applications with StencilJS](https://www.joshmorony.com/creating-ionic-applications-with-stencil-js/) - [Free Preview](https://cdn2.hubspot.net/hubfs/3776657/PREVIEW-Creating-Ionic-Apps-with-StencilJS.pdf) diff --git a/versions.json b/versions.json index 48698a4fdec..ed163ab5c09 100644 --- a/versions.json +++ b/versions.json @@ -1,3 +1,4 @@ [ - "v7" + "v7", + "v6" ] diff --git a/versionsArchived.json b/versionsArchived.json index 9d103a53775..56bd2d5bcb6 100644 --- a/versionsArchived.json +++ b/versionsArchived.json @@ -1,4 +1,3 @@ { - "v6": "https://ionic-docs-o31kiyk8l-ionic1.vercel.app/docs/v6", "v5": "https://ionic-docs-5utg8ms4c-ionic1.vercel.app/docs/v5" } From c625d4dd1886c1653880aa71408e2f0e82b55ddf Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Mon, 21 Jul 2025 11:24:17 -0500 Subject: [PATCH 002/129] docs(v6): update Angular examples for accordion --- .../angular/example_component_ts.md | 3 +++ .../example_component_html.md} | 0 .../icons/angular/example_component_ts.md | 23 +++++++++++++++++++ .../v6/accordion/customization/icons/index.md | 10 ++++++-- .../angular/example_component_ts.md | 3 +++ .../toggle/angular/example_component_ts.md | 4 +++- 6 files changed, 40 insertions(+), 3 deletions(-) rename static/usage/v6/accordion/customization/icons/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/accordion/customization/icons/angular/example_component_ts.md diff --git a/static/usage/v6/accordion/customization/advanced-expansion-styles/angular/example_component_ts.md b/static/usage/v6/accordion/customization/advanced-expansion-styles/angular/example_component_ts.md index 4db53a836a9..1b3dae1494b 100644 --- a/static/usage/v6/accordion/customization/advanced-expansion-styles/angular/example_component_ts.md +++ b/static/usage/v6/accordion/customization/advanced-expansion-styles/angular/example_component_ts.md @@ -1,10 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent {} ``` diff --git a/static/usage/v6/accordion/customization/icons/angular.md b/static/usage/v6/accordion/customization/icons/angular/example_component_html.md similarity index 100% rename from static/usage/v6/accordion/customization/icons/angular.md rename to static/usage/v6/accordion/customization/icons/angular/example_component_html.md diff --git a/static/usage/v6/accordion/customization/icons/angular/example_component_ts.md b/static/usage/v6/accordion/customization/icons/angular/example_component_ts.md new file mode 100644 index 00000000000..e225a168a07 --- /dev/null +++ b/static/usage/v6/accordion/customization/icons/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { caretDownCircle } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ caretDownCircle }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/accordion/customization/icons/index.md b/static/usage/v6/accordion/customization/icons/index.md index 691d4b933b1..b7668a6ee7c 100644 --- a/static/usage/v6/accordion/customization/icons/index.md +++ b/static/usage/v6/accordion/customization/icons/index.md @@ -3,7 +3,8 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; Date: Mon, 21 Jul 2025 11:25:13 -0500 Subject: [PATCH 003/129] docs(v6): update Angular examples for action-sheet --- .../v6/action-sheet/basic/angular/example_component_ts.md | 4 +++- .../theming/css-properties/angular/example_component_ts.md | 4 +++- .../theming/styling/angular/example_component_ts.md | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/static/usage/v6/action-sheet/basic/angular/example_component_ts.md b/static/usage/v6/action-sheet/basic/angular/example_component_ts.md index 3961dc7ff5e..97e780edf31 100644 --- a/static/usage/v6/action-sheet/basic/angular/example_component_ts.md +++ b/static/usage/v6/action-sheet/basic/angular/example_component_ts.md @@ -1,12 +1,14 @@ ```ts import { Component } from '@angular/core'; -import { ActionSheetController } from '@ionic/angular'; +import { IonicModule, ActionSheetController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['./example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent { result: string; diff --git a/static/usage/v6/action-sheet/theming/css-properties/angular/example_component_ts.md b/static/usage/v6/action-sheet/theming/css-properties/angular/example_component_ts.md index d8f200f27ee..fbca9f2f603 100644 --- a/static/usage/v6/action-sheet/theming/css-properties/angular/example_component_ts.md +++ b/static/usage/v6/action-sheet/theming/css-properties/angular/example_component_ts.md @@ -1,12 +1,14 @@ ```ts import { Component } from '@angular/core'; -import { ActionSheetController } from '@ionic/angular'; +import { IonicModule, ActionSheetController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['./example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private actionSheetCtrl: ActionSheetController) {} diff --git a/static/usage/v6/action-sheet/theming/styling/angular/example_component_ts.md b/static/usage/v6/action-sheet/theming/styling/angular/example_component_ts.md index d8f200f27ee..fbca9f2f603 100644 --- a/static/usage/v6/action-sheet/theming/styling/angular/example_component_ts.md +++ b/static/usage/v6/action-sheet/theming/styling/angular/example_component_ts.md @@ -1,12 +1,14 @@ ```ts import { Component } from '@angular/core'; -import { ActionSheetController } from '@ionic/angular'; +import { IonicModule, ActionSheetController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['./example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private actionSheetCtrl: ActionSheetController) {} From 1170b47cd1536521882103bb830add12c57c5260 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Mon, 21 Jul 2025 11:41:47 -0500 Subject: [PATCH 004/129] docs(v6): update Angular examples for alert --- static/usage/v6/alert/buttons/angular/example_component_ts.md | 4 +++- .../v6/alert/customization/angular/example_component_ts.md | 4 +++- .../v6/alert/inputs/radios/angular/example_component_ts.md | 4 +++- .../alert/inputs/text-inputs/angular/example_component_ts.md | 4 +++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/static/usage/v6/alert/buttons/angular/example_component_ts.md b/static/usage/v6/alert/buttons/angular/example_component_ts.md index f4a7b4e9a18..f03a98e678b 100644 --- a/static/usage/v6/alert/buttons/angular/example_component_ts.md +++ b/static/usage/v6/alert/buttons/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { AlertController } from '@ionic/angular'; +import { IonicModule, AlertController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { handlerMessage = ''; diff --git a/static/usage/v6/alert/customization/angular/example_component_ts.md b/static/usage/v6/alert/customization/angular/example_component_ts.md index 9606aeb72f4..5cef7d8e3a4 100644 --- a/static/usage/v6/alert/customization/angular/example_component_ts.md +++ b/static/usage/v6/alert/customization/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { AlertController } from '@ionic/angular'; +import { IonicModule, AlertController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private alertController: AlertController) {} diff --git a/static/usage/v6/alert/inputs/radios/angular/example_component_ts.md b/static/usage/v6/alert/inputs/radios/angular/example_component_ts.md index 78b305a0f59..f06812967dc 100644 --- a/static/usage/v6/alert/inputs/radios/angular/example_component_ts.md +++ b/static/usage/v6/alert/inputs/radios/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { AlertController } from '@ionic/angular'; +import { IonicModule, AlertController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private alertController: AlertController) {} diff --git a/static/usage/v6/alert/inputs/text-inputs/angular/example_component_ts.md b/static/usage/v6/alert/inputs/text-inputs/angular/example_component_ts.md index 2c4f2ab04d2..a8ad4eb12a6 100644 --- a/static/usage/v6/alert/inputs/text-inputs/angular/example_component_ts.md +++ b/static/usage/v6/alert/inputs/text-inputs/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { AlertController } from '@ionic/angular'; +import { IonicModule, AlertController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private alertController: AlertController) {} From fbbde066bfebd3600abb5eb0e2ec972527421ec0 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Mon, 21 Jul 2025 13:52:35 -0500 Subject: [PATCH 005/129] docs(v6): update Angular examples for breadcrumbs --- .../angular/example_component_ts.md | 3 +++ .../angular/example_component_ts.md | 4 ++++ .../example_component_html.md} | 0 .../angular/example_component_ts.md | 23 +++++++++++++++++++ .../icons/custom-separators/index.md | 15 ++++++++++-- .../example_component_html.md} | 0 .../angular/example_component_ts.md | 23 +++++++++++++++++++ .../breadcrumbs/icons/icons-on-items/index.md | 15 ++++++++++-- 8 files changed, 79 insertions(+), 4 deletions(-) rename static/usage/v6/breadcrumbs/icons/custom-separators/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/breadcrumbs/icons/custom-separators/angular/example_component_ts.md rename static/usage/v6/breadcrumbs/icons/icons-on-items/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/breadcrumbs/icons/icons-on-items/angular/example_component_ts.md diff --git a/static/usage/v6/breadcrumbs/collapsing-items/expand-on-click/angular/example_component_ts.md b/static/usage/v6/breadcrumbs/collapsing-items/expand-on-click/angular/example_component_ts.md index 8ae69af72a5..38122fed8e3 100644 --- a/static/usage/v6/breadcrumbs/collapsing-items/expand-on-click/angular/example_component_ts.md +++ b/static/usage/v6/breadcrumbs/collapsing-items/expand-on-click/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component, ViewChild } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { maxBreadcrumbs = 4; diff --git a/static/usage/v6/breadcrumbs/collapsing-items/popover-on-click/angular/example_component_ts.md b/static/usage/v6/breadcrumbs/collapsing-items/popover-on-click/angular/example_component_ts.md index aabfb29a821..22380950ca4 100644 --- a/static/usage/v6/breadcrumbs/collapsing-items/popover-on-click/angular/example_component_ts.md +++ b/static/usage/v6/breadcrumbs/collapsing-items/popover-on-click/angular/example_component_ts.md @@ -1,9 +1,13 @@ ```ts import { Component, ViewChild } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent { @ViewChild('popover') popover; diff --git a/static/usage/v6/breadcrumbs/icons/custom-separators/angular.md b/static/usage/v6/breadcrumbs/icons/custom-separators/angular/example_component_html.md similarity index 100% rename from static/usage/v6/breadcrumbs/icons/custom-separators/angular.md rename to static/usage/v6/breadcrumbs/icons/custom-separators/angular/example_component_html.md diff --git a/static/usage/v6/breadcrumbs/icons/custom-separators/angular/example_component_ts.md b/static/usage/v6/breadcrumbs/icons/custom-separators/angular/example_component_ts.md new file mode 100644 index 00000000000..dcd6b853b2b --- /dev/null +++ b/static/usage/v6/breadcrumbs/icons/custom-separators/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { arrowForwardCircle } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ arrowForwardCircle }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/breadcrumbs/icons/custom-separators/index.md b/static/usage/v6/breadcrumbs/icons/custom-separators/index.md index a9305b79feb..83c578d8742 100644 --- a/static/usage/v6/breadcrumbs/icons/custom-separators/index.md +++ b/static/usage/v6/breadcrumbs/icons/custom-separators/index.md @@ -3,10 +3,21 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; diff --git a/static/usage/v6/breadcrumbs/icons/icons-on-items/angular.md b/static/usage/v6/breadcrumbs/icons/icons-on-items/angular/example_component_html.md similarity index 100% rename from static/usage/v6/breadcrumbs/icons/icons-on-items/angular.md rename to static/usage/v6/breadcrumbs/icons/icons-on-items/angular/example_component_html.md diff --git a/static/usage/v6/breadcrumbs/icons/icons-on-items/angular/example_component_ts.md b/static/usage/v6/breadcrumbs/icons/icons-on-items/angular/example_component_ts.md new file mode 100644 index 00000000000..a679de8d05c --- /dev/null +++ b/static/usage/v6/breadcrumbs/icons/icons-on-items/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { home, flash, camera, film } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ home, flash, camera, film }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/breadcrumbs/icons/icons-on-items/index.md b/static/usage/v6/breadcrumbs/icons/icons-on-items/index.md index 0f2e9ac47cc..584eec676de 100644 --- a/static/usage/v6/breadcrumbs/icons/icons-on-items/index.md +++ b/static/usage/v6/breadcrumbs/icons/icons-on-items/index.md @@ -3,11 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; From 40e55c04874ee500f17c3bd4c3998f9ffabe5d50 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Mon, 21 Jul 2025 14:43:25 -0500 Subject: [PATCH 006/129] docs(v6): update Angular examples for content --- .../v6/content/scroll-events/angular/example_component_ts.md | 4 +++- .../v6/content/scroll-methods/angular/example_component_ts.md | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/static/usage/v6/content/scroll-events/angular/example_component_ts.md b/static/usage/v6/content/scroll-events/angular/example_component_ts.md index 7e3f7625f57..658772dd54e 100644 --- a/static/usage/v6/content/scroll-events/angular/example_component_ts.md +++ b/static/usage/v6/content/scroll-events/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { ScrollDetail } from '@ionic/angular'; +import { IonicModule, ScrollDetail } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { handleScrollStart() { diff --git a/static/usage/v6/content/scroll-methods/angular/example_component_ts.md b/static/usage/v6/content/scroll-methods/angular/example_component_ts.md index 1975fe3b341..bba0e43f6ff 100644 --- a/static/usage/v6/content/scroll-methods/angular/example_component_ts.md +++ b/static/usage/v6/content/scroll-methods/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component, ViewChild } from '@angular/core'; -import { IonContent } from '@ionic/angular'; +import { IonicModule, IonContent } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { @ViewChild(IonContent) content: IonContent; From 9c37e159593181bc8a9f8ef10242d5e4c580222e Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Mon, 21 Jul 2025 14:44:19 -0500 Subject: [PATCH 007/129] docs(v6): update Angular examples for datetime --- .../date-constraints/advanced/angular/example_component_ts.md | 3 +++ .../highlightedDates/array/angular/example_component_ts.md | 3 +++ .../highlightedDates/callback/angular/example_component_ts.md | 3 +++ 3 files changed, 9 insertions(+) diff --git a/static/usage/v6/datetime/date-constraints/advanced/angular/example_component_ts.md b/static/usage/v6/datetime/date-constraints/advanced/angular/example_component_ts.md index 3021390e188..8d011a739b5 100644 --- a/static/usage/v6/datetime/date-constraints/advanced/angular/example_component_ts.md +++ b/static/usage/v6/datetime/date-constraints/advanced/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { isWeekday = (dateString: string) => { diff --git a/static/usage/v6/datetime/highlightedDates/array/angular/example_component_ts.md b/static/usage/v6/datetime/highlightedDates/array/angular/example_component_ts.md index 4ca93b85f44..5efbdc20571 100644 --- a/static/usage/v6/datetime/highlightedDates/array/angular/example_component_ts.md +++ b/static/usage/v6/datetime/highlightedDates/array/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { highlightedDates = [ diff --git a/static/usage/v6/datetime/highlightedDates/callback/angular/example_component_ts.md b/static/usage/v6/datetime/highlightedDates/callback/angular/example_component_ts.md index 60f9c700d05..2d4359fee21 100644 --- a/static/usage/v6/datetime/highlightedDates/callback/angular/example_component_ts.md +++ b/static/usage/v6/datetime/highlightedDates/callback/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { highlightedDates = (isoString) => { From edf261ff09af1d381c7fa08ea0eeb24101518732 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Mon, 21 Jul 2025 14:52:38 -0500 Subject: [PATCH 008/129] docs(v6): update Angular examples for picker --- .../v6/picker/multiple-column/angular/example_component_ts.md | 4 +++- .../v6/picker/single-column/angular/example_component_ts.md | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/static/usage/v6/picker/multiple-column/angular/example_component_ts.md b/static/usage/v6/picker/multiple-column/angular/example_component_ts.md index ce535b1391a..55b1da9dbd4 100644 --- a/static/usage/v6/picker/multiple-column/angular/example_component_ts.md +++ b/static/usage/v6/picker/multiple-column/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { PickerController } from '@ionic/angular'; +import { IonicModule, PickerController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private pickerCtrl: PickerController) {} diff --git a/static/usage/v6/picker/single-column/angular/example_component_ts.md b/static/usage/v6/picker/single-column/angular/example_component_ts.md index 849da3f0f16..91001efb481 100644 --- a/static/usage/v6/picker/single-column/angular/example_component_ts.md +++ b/static/usage/v6/picker/single-column/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { PickerController } from '@ionic/angular'; +import { IonicModule, PickerController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private pickerCtrl: PickerController) {} From e54bffb61e6d6e556a91e8204f18226e66afc1ee Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 11:10:58 -0500 Subject: [PATCH 009/129] docs(v6): update Angular examples for infinite-scroll --- .../infinite-scroll/basic/angular/example_component_ts.md | 7 ++++--- .../angular/example_component_ts.md | 8 +++++--- .../angular/example_component_ts.md | 7 ++++--- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/static/usage/v6/infinite-scroll/basic/angular/example_component_ts.md b/static/usage/v6/infinite-scroll/basic/angular/example_component_ts.md index 390ba6b75f1..ebf6b9ed53b 100644 --- a/static/usage/v6/infinite-scroll/basic/angular/example_component_ts.md +++ b/static/usage/v6/infinite-scroll/basic/angular/example_component_ts.md @@ -1,12 +1,13 @@ ```tsx import { Component, OnInit } from '@angular/core'; - -import { InfiniteScrollCustomEvent } from '@ionic/angular'; +import { CommonModule } from '@angular/common'; +import { IonicModule, InfiniteScrollCustomEvent } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', - styleUrls: ['example.component.scss'], + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent implements OnInit { items = []; diff --git a/static/usage/v6/infinite-scroll/custom-infinite-scroll-content/angular/example_component_ts.md b/static/usage/v6/infinite-scroll/custom-infinite-scroll-content/angular/example_component_ts.md index 415ed5dba8b..ea0f1eb9cae 100644 --- a/static/usage/v6/infinite-scroll/custom-infinite-scroll-content/angular/example_component_ts.md +++ b/static/usage/v6/infinite-scroll/custom-infinite-scroll-content/angular/example_component_ts.md @@ -1,12 +1,14 @@ ```tsx import { Component, OnInit } from '@angular/core'; - -import { InfiniteScrollCustomEvent } from '@ionic/angular'; +import { CommonModule } from '@angular/common'; +import { IonicModule, InfiniteScrollCustomEvent } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', - styleUrls: ['example.component.scss'], + styleUrls: ['example.component.css'], + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent implements OnInit { items = []; diff --git a/static/usage/v6/infinite-scroll/infinite-scroll-content/angular/example_component_ts.md b/static/usage/v6/infinite-scroll/infinite-scroll-content/angular/example_component_ts.md index 415ed5dba8b..542b7f41ba9 100644 --- a/static/usage/v6/infinite-scroll/infinite-scroll-content/angular/example_component_ts.md +++ b/static/usage/v6/infinite-scroll/infinite-scroll-content/angular/example_component_ts.md @@ -1,12 +1,13 @@ ```tsx import { Component, OnInit } from '@angular/core'; - -import { InfiniteScrollCustomEvent } from '@ionic/angular'; +import { CommonModule } from '@angular/common'; +import { IonicModule, InfiniteScrollCustomEvent } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', - styleUrls: ['example.component.scss'], + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent implements OnInit { items = []; From a27f649f73aa8f4ed9e08f64e85778e57fd6ea0d Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 11:12:19 -0500 Subject: [PATCH 010/129] docs(v6): update Angular example for icon --- .../example_component_html.md} | 0 .../basic/angular/example_component_ts.md | 23 +++++++++++++++++++ static/usage/v6/icon/basic/index.md | 20 ++++++++++++++-- 3 files changed, 41 insertions(+), 2 deletions(-) rename static/usage/v6/icon/basic/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/icon/basic/angular/example_component_ts.md diff --git a/static/usage/v6/icon/basic/angular.md b/static/usage/v6/icon/basic/angular/example_component_html.md similarity index 100% rename from static/usage/v6/icon/basic/angular.md rename to static/usage/v6/icon/basic/angular/example_component_html.md diff --git a/static/usage/v6/icon/basic/angular/example_component_ts.md b/static/usage/v6/icon/basic/angular/example_component_ts.md new file mode 100644 index 00000000000..0ca64333da3 --- /dev/null +++ b/static/usage/v6/icon/basic/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { logoIonic } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ logoIonic }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/icon/basic/index.md b/static/usage/v6/icon/basic/index.md index 6b3a026b7dc..ec92154552f 100644 --- a/static/usage/v6/icon/basic/index.md +++ b/static/usage/v6/icon/basic/index.md @@ -3,6 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; - + From f6bbe3e53fad819ae23f714f1ddb8ef1f47baf9b Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 11:25:30 -0500 Subject: [PATCH 011/129] docs(v6): update Angular example for input --- .../usage/v6/input/filtering/angular/example_component_ts.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/static/usage/v6/input/filtering/angular/example_component_ts.md b/static/usage/v6/input/filtering/angular/example_component_ts.md index b0fc6a3331f..edfd287601c 100644 --- a/static/usage/v6/input/filtering/angular/example_component_ts.md +++ b/static/usage/v6/input/filtering/angular/example_component_ts.md @@ -1,10 +1,13 @@ ```ts import { Component, ViewChild } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; import type { IonInput } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { inputModel = ''; From 067d6aa95739296e66024cf3ca018bea50078d71 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 11:25:51 -0500 Subject: [PATCH 012/129] docs(v6): update Angular example for item --- static/usage/v6/item/counter/angular/example_component_ts.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/static/usage/v6/item/counter/angular/example_component_ts.md b/static/usage/v6/item/counter/angular/example_component_ts.md index 2c08dc06fc2..ae875052f85 100644 --- a/static/usage/v6/item/counter/angular/example_component_ts.md +++ b/static/usage/v6/item/counter/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { customCounterFormatter(inputLength: number, maxLength: number) { From 09130ffa65a3f329e402da661e776996cdd69bd9 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 12:20:05 -0500 Subject: [PATCH 013/129] docs(v6): update Angular examples for item --- .../example_component_html.md} | 0 .../buttons/angular/example_component_ts.md | 23 +++++++++++++++++++ static/usage/v6/item/buttons/index.md | 20 ++++++++++++++-- .../example_component_html.md} | 0 .../icons/angular/example_component_ts.md | 23 +++++++++++++++++++ static/usage/v6/item/icons/index.md | 20 ++++++++++++++-- .../example_component_html.md} | 0 .../lines/angular/example_component_ts.md | 23 +++++++++++++++++++ static/usage/v6/item/lines/index.md | 20 ++++++++++++++-- 9 files changed, 123 insertions(+), 6 deletions(-) rename static/usage/v6/item/buttons/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/item/buttons/angular/example_component_ts.md rename static/usage/v6/item/icons/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/item/icons/angular/example_component_ts.md rename static/usage/v6/item/lines/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/item/lines/angular/example_component_ts.md diff --git a/static/usage/v6/item/buttons/angular.md b/static/usage/v6/item/buttons/angular/example_component_html.md similarity index 100% rename from static/usage/v6/item/buttons/angular.md rename to static/usage/v6/item/buttons/angular/example_component_html.md diff --git a/static/usage/v6/item/buttons/angular/example_component_ts.md b/static/usage/v6/item/buttons/angular/example_component_ts.md new file mode 100644 index 00000000000..4a6b6830389 --- /dev/null +++ b/static/usage/v6/item/buttons/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { home, star, navigate } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ home, star, navigate }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/item/buttons/index.md b/static/usage/v6/item/buttons/index.md index d46337926bc..09299818a97 100644 --- a/static/usage/v6/item/buttons/index.md +++ b/static/usage/v6/item/buttons/index.md @@ -3,6 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; - + diff --git a/static/usage/v6/item/icons/angular.md b/static/usage/v6/item/icons/angular/example_component_html.md similarity index 100% rename from static/usage/v6/item/icons/angular.md rename to static/usage/v6/item/icons/angular/example_component_html.md diff --git a/static/usage/v6/item/icons/angular/example_component_ts.md b/static/usage/v6/item/icons/angular/example_component_ts.md new file mode 100644 index 00000000000..fd72c48805d --- /dev/null +++ b/static/usage/v6/item/icons/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { informationCircle, star } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ informationCircle, star }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/item/icons/index.md b/static/usage/v6/item/icons/index.md index 97b18d73650..92c2fdc5f3e 100644 --- a/static/usage/v6/item/icons/index.md +++ b/static/usage/v6/item/icons/index.md @@ -3,6 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; - + diff --git a/static/usage/v6/item/lines/angular.md b/static/usage/v6/item/lines/angular/example_component_html.md similarity index 100% rename from static/usage/v6/item/lines/angular.md rename to static/usage/v6/item/lines/angular/example_component_html.md diff --git a/static/usage/v6/item/lines/angular/example_component_ts.md b/static/usage/v6/item/lines/angular/example_component_ts.md new file mode 100644 index 00000000000..7322fe3faae --- /dev/null +++ b/static/usage/v6/item/lines/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { star, informationCircle } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ star, informationCircle }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/item/lines/index.md b/static/usage/v6/item/lines/index.md index f1ccef30f7e..5d7f93525ae 100644 --- a/static/usage/v6/item/lines/index.md +++ b/static/usage/v6/item/lines/index.md @@ -3,6 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; - + From 9af634defd1d43454faf5277d84ca3bc0987afd6 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 12:49:08 -0500 Subject: [PATCH 014/129] docs(v6): update Angular example for menu --- static/usage/v6/menu/type/angular/example_component_html.md | 2 +- static/usage/v6/menu/type/angular/example_component_ts.md | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/static/usage/v6/menu/type/angular/example_component_html.md b/static/usage/v6/menu/type/angular/example_component_html.md index fd995d7a32f..738aca5079b 100644 --- a/static/usage/v6/menu/type/angular/example_component_html.md +++ b/static/usage/v6/menu/type/angular/example_component_html.md @@ -20,7 +20,7 @@

Select an overlay type:

- + overlay diff --git a/static/usage/v6/menu/type/angular/example_component_ts.md b/static/usage/v6/menu/type/angular/example_component_ts.md index 5f03ec13b76..1950bbb5e86 100644 --- a/static/usage/v6/menu/type/angular/example_component_ts.md +++ b/static/usage/v6/menu/type/angular/example_component_ts.md @@ -1,9 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [FormsModule, IonicModule], + standalone: true }) export class ExampleComponent { menuType: string = 'overlay'; From 710cf8958aa61b11355488cda1e779c9a106755b Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 13:39:32 -0500 Subject: [PATCH 015/129] docs(v6): update Angular examples for modal --- .../boolean/angular/example_component_ts.md | 4 +++- .../function/angular/example_component_ts.md | 4 +++- .../angular/example_component_ts.md | 3 +++ .../basic/angular/example_component_ts.md | 3 +++ .../modal/controller/angular/app_module_ts.md | 19 ------------------- .../angular/example_component_ts.md | 4 +++- .../angular/modal-example_component_ts.md | 6 ++++-- static/usage/v6/modal/controller/index.md | 2 -- .../basic/angular/example_component_ts.md | 5 ++++- .../is-open/angular/example_component_ts.md | 3 +++ .../angular/example_component_ts.md | 3 +++ .../angular/example_component_ts.md | 4 +++- 12 files changed, 32 insertions(+), 28 deletions(-) delete mode 100644 static/usage/v6/modal/controller/angular/app_module_ts.md diff --git a/static/usage/v6/modal/can-dismiss/boolean/angular/example_component_ts.md b/static/usage/v6/modal/can-dismiss/boolean/angular/example_component_ts.md index b13c147dc2d..88be5262118 100644 --- a/static/usage/v6/modal/can-dismiss/boolean/angular/example_component_ts.md +++ b/static/usage/v6/modal/can-dismiss/boolean/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { CheckboxCustomEvent } from '@ionic/angular'; +import { IonicModule, CheckboxCustomEvent } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { canDismiss = false; diff --git a/static/usage/v6/modal/can-dismiss/function/angular/example_component_ts.md b/static/usage/v6/modal/can-dismiss/function/angular/example_component_ts.md index a62465cfee3..93cc0c51c83 100644 --- a/static/usage/v6/modal/can-dismiss/function/angular/example_component_ts.md +++ b/static/usage/v6/modal/can-dismiss/function/angular/example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; -import { ActionSheetController } from '@ionic/angular'; +import { IonicModule, ActionSheetController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { presentingElement = undefined; diff --git a/static/usage/v6/modal/can-dismiss/prevent-swipe-to-close/angular/example_component_ts.md b/static/usage/v6/modal/can-dismiss/prevent-swipe-to-close/angular/example_component_ts.md index 788b9a14c0f..2721c21e79f 100644 --- a/static/usage/v6/modal/can-dismiss/prevent-swipe-to-close/angular/example_component_ts.md +++ b/static/usage/v6/modal/can-dismiss/prevent-swipe-to-close/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { async canDismiss(data?: any, role?: string) { diff --git a/static/usage/v6/modal/card/basic/angular/example_component_ts.md b/static/usage/v6/modal/card/basic/angular/example_component_ts.md index 5a28a156a32..3fff7fde680 100644 --- a/static/usage/v6/modal/card/basic/angular/example_component_ts.md +++ b/static/usage/v6/modal/card/basic/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { // Typically referenced to your ion-router-outlet diff --git a/static/usage/v6/modal/controller/angular/app_module_ts.md b/static/usage/v6/modal/controller/angular/app_module_ts.md deleted file mode 100644 index e9e4f00dff3..00000000000 --- a/static/usage/v6/modal/controller/angular/app_module_ts.md +++ /dev/null @@ -1,19 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { BrowserModule } from '@angular/platform-browser'; -import { FormsModule } from '@angular/forms'; - -import { IonicModule } from '@ionic/angular'; - -import { AppComponent } from './app.component'; -import { ExampleComponent } from './example.component'; - -import { ModalExampleComponent } from './modal-example.component'; - -@NgModule({ - imports: [BrowserModule, FormsModule, IonicModule.forRoot({})], - declarations: [AppComponent, ExampleComponent, ModalExampleComponent], - bootstrap: [AppComponent], -}) -export class AppModule {} -``` diff --git a/static/usage/v6/modal/controller/angular/example_component_ts.md b/static/usage/v6/modal/controller/angular/example_component_ts.md index 920a2335257..36e27e8ee33 100644 --- a/static/usage/v6/modal/controller/angular/example_component_ts.md +++ b/static/usage/v6/modal/controller/angular/example_component_ts.md @@ -1,12 +1,14 @@ ```ts import { Component } from '@angular/core'; -import { ModalController } from '@ionic/angular'; +import { IonicModule, ModalController } from '@ionic/angular'; import { ModalExampleComponent } from './modal-example.component'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { message = 'This modal example uses the modalController to present and dismiss modals.'; diff --git a/static/usage/v6/modal/controller/angular/modal-example_component_ts.md b/static/usage/v6/modal/controller/angular/modal-example_component_ts.md index 621996015b4..c01da56515b 100644 --- a/static/usage/v6/modal/controller/angular/modal-example_component_ts.md +++ b/static/usage/v6/modal/controller/angular/modal-example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; - -import { ModalController } from '@ionic/angular'; +import { FormsModule } from '@angular/forms'; +import { IonicModule, ModalController } from '@ionic/angular'; @Component({ selector: 'app-modal-example', templateUrl: 'modal-example.component.html', + imports: [FormsModule, IonicModule], + standalone: true }) export class ModalExampleComponent { name: string; diff --git a/static/usage/v6/modal/controller/index.md b/static/usage/v6/modal/controller/index.md index 2f1d5c9b961..fa08d9ba1be 100644 --- a/static/usage/v6/modal/controller/index.md +++ b/static/usage/v6/modal/controller/index.md @@ -6,7 +6,6 @@ import react from './react.md'; import vue_example from './vue/example_vue.md'; import vue_modal from './vue/modal_vue.md'; -import angular_app_module_ts from './angular/app_module_ts.md'; import angular_example_component_html from './angular/example_component_html.md'; import angular_example_component_ts from './angular/example_component_ts.md'; import angular_modal_example_component_ts from './angular/modal-example_component_ts.md'; @@ -29,7 +28,6 @@ import angular_modal_example_component_html from './angular/modal-example_compon 'src/app/example.component.ts': angular_example_component_ts, 'src/app/modal-example.component.html': angular_modal_example_component_html, 'src/app/modal-example.component.ts': angular_modal_example_component_ts, - 'src/app/app.module.ts': angular_app_module_ts, }, }, }} diff --git a/static/usage/v6/modal/inline/basic/angular/example_component_ts.md b/static/usage/v6/modal/inline/basic/angular/example_component_ts.md index a21954ec5f1..8a756a79d36 100644 --- a/static/usage/v6/modal/inline/basic/angular/example_component_ts.md +++ b/static/usage/v6/modal/inline/basic/angular/example_component_ts.md @@ -1,11 +1,14 @@ ```ts import { Component, ViewChild } from '@angular/core'; -import { IonModal } from '@ionic/angular'; +import { FormsModule } from '@angular/forms'; +import { IonicModule, IonModal } from '@ionic/angular'; import { OverlayEventDetail } from '@ionic/core/components'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [FormsModule, IonicModule], + standalone: true }) export class ExampleComponent { @ViewChild(IonModal) modal: IonModal; diff --git a/static/usage/v6/modal/inline/is-open/angular/example_component_ts.md b/static/usage/v6/modal/inline/is-open/angular/example_component_ts.md index 321577939a9..fb4be0a7328 100644 --- a/static/usage/v6/modal/inline/is-open/angular/example_component_ts.md +++ b/static/usage/v6/modal/inline/is-open/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { isModalOpen = false; diff --git a/static/usage/v6/modal/sheet/background-content/angular/example_component_ts.md b/static/usage/v6/modal/sheet/background-content/angular/example_component_ts.md index e132d2f84c7..8473fe29d8a 100644 --- a/static/usage/v6/modal/sheet/background-content/angular/example_component_ts.md +++ b/static/usage/v6/modal/sheet/background-content/angular/example_component_ts.md @@ -1,10 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent { count = 0; diff --git a/static/usage/v6/modal/styling/animations/angular/example_component_ts.md b/static/usage/v6/modal/styling/animations/angular/example_component_ts.md index c4a743b2745..95789450895 100644 --- a/static/usage/v6/modal/styling/animations/angular/example_component_ts.md +++ b/static/usage/v6/modal/styling/animations/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { AnimationController } from '@ionic/angular'; +import { IonicModule, AnimationController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private animationCtrl: AnimationController) {} From 89b3478f34c81bf9021d16940e0107e9308d36d9 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 14:53:25 -0500 Subject: [PATCH 016/129] docs(v6): update Angular example for nav --- .../v6/nav/nav-link/angular/app_module_ts.md | 21 ------------------- .../nav-link/angular/example_component_ts.md | 4 +++- .../nav-link/angular/page_one_component_ts.md | 4 +++- .../angular/page_three_component_ts.md | 3 +++ .../nav-link/angular/page_two_component_ts.md | 4 +++- static/usage/v6/nav/nav-link/index.md | 2 -- 6 files changed, 12 insertions(+), 26 deletions(-) delete mode 100644 static/usage/v6/nav/nav-link/angular/app_module_ts.md diff --git a/static/usage/v6/nav/nav-link/angular/app_module_ts.md b/static/usage/v6/nav/nav-link/angular/app_module_ts.md deleted file mode 100644 index d3b8b44f6ce..00000000000 --- a/static/usage/v6/nav/nav-link/angular/app_module_ts.md +++ /dev/null @@ -1,21 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { BrowserModule } from '@angular/platform-browser'; -import { RouterModule } from '@angular/router'; - -import { IonicModule } from '@ionic/angular'; - -import { AppComponent } from './app.component'; -import { ExampleComponent } from './example.component'; - -import { PageOneComponent } from './page-one.component'; -import { PageTwoComponent } from './page-two.component'; -import { PageThreeComponent } from './page-three.component'; - -@NgModule({ - imports: [BrowserModule, RouterModule.forRoot([]), IonicModule.forRoot({})], - declarations: [AppComponent, ExampleComponent, PageOneComponent, PageTwoComponent, PageThreeComponent], - bootstrap: [AppComponent], -}) -export class AppModule {} -``` diff --git a/static/usage/v6/nav/nav-link/angular/example_component_ts.md b/static/usage/v6/nav/nav-link/angular/example_component_ts.md index b123a4858ce..370b2ed24e1 100644 --- a/static/usage/v6/nav/nav-link/angular/example_component_ts.md +++ b/static/usage/v6/nav/nav-link/angular/example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; - +import { IonicModule } from '@ionic/angular'; import { PageOneComponent } from './page-one.component'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { component = PageOneComponent; diff --git a/static/usage/v6/nav/nav-link/angular/page_one_component_ts.md b/static/usage/v6/nav/nav-link/angular/page_one_component_ts.md index 06c42b342cf..3b6dd80abc4 100644 --- a/static/usage/v6/nav/nav-link/angular/page_one_component_ts.md +++ b/static/usage/v6/nav/nav-link/angular/page_one_component_ts.md @@ -1,6 +1,6 @@ ```ts import { Component } from '@angular/core'; - +import { IonicModule } from '@ionic/angular'; import { PageTwoComponent } from './page-two.component'; @Component({ @@ -18,6 +18,8 @@ import { PageTwoComponent } from './page-two.component';
`, + imports: [IonicModule], + standalone: true }) export class PageOneComponent { component = PageTwoComponent; diff --git a/static/usage/v6/nav/nav-link/angular/page_three_component_ts.md b/static/usage/v6/nav/nav-link/angular/page_three_component_ts.md index d9e95ed7218..025f44e021f 100644 --- a/static/usage/v6/nav/nav-link/angular/page_three_component_ts.md +++ b/static/usage/v6/nav/nav-link/angular/page_three_component_ts.md @@ -1,5 +1,6 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-page-one', @@ -16,6 +17,8 @@ import { Component } from '@angular/core';

Page Three

`, + imports: [IonicModule], + standalone: true }) export class PageThreeComponent {} ``` diff --git a/static/usage/v6/nav/nav-link/angular/page_two_component_ts.md b/static/usage/v6/nav/nav-link/angular/page_two_component_ts.md index d6edd90a593..35cbfd185fa 100644 --- a/static/usage/v6/nav/nav-link/angular/page_two_component_ts.md +++ b/static/usage/v6/nav/nav-link/angular/page_two_component_ts.md @@ -1,6 +1,6 @@ ```ts import { Component } from '@angular/core'; - +import { IonicModule } from '@ionic/angular'; import { PageThreeComponent } from './page-three.component'; @Component({ @@ -23,6 +23,8 @@ import { PageThreeComponent } from './page-three.component'; `, + imports: [IonicModule], + standalone: true }) export class PageTwoComponent { component = PageThreeComponent; diff --git a/static/usage/v6/nav/nav-link/index.md b/static/usage/v6/nav/nav-link/index.md index 2fdeadbbbdd..0f81390a599 100644 --- a/static/usage/v6/nav/nav-link/index.md +++ b/static/usage/v6/nav/nav-link/index.md @@ -2,7 +2,6 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; -import angular_app_module_ts from './angular/app_module_ts.md'; import angular_example_component_html from './angular/example_component_html.md'; import angular_example_component_ts from './angular/example_component_ts.md'; import angular_page_one_component_ts from './angular/page_one_component_ts.md'; @@ -30,7 +29,6 @@ import vue_page_three from './vue/page_three_vue.md'; 'src/app/page-one.component.ts': angular_page_one_component_ts, 'src/app/page-two.component.ts': angular_page_two_component_ts, 'src/app/page-three.component.ts': angular_page_three_component_ts, - 'src/app/app.module.ts': angular_app_module_ts, }, }, react: { From b105668454b583ba756b3631582eecff093521ec Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 15:11:10 -0500 Subject: [PATCH 017/129] docs(v6): update Angular examples for popover --- .../angular/example_component_ts.md | 3 +++ .../controller/angular/app_module_ts.md | 19 ------------------- .../angular/example_component_ts.md | 4 +++- .../angular/popover_component_ts.md | 4 +++- .../v6/popover/presenting/controller/index.md | 2 -- .../angular/example_component_ts.md | 3 +++ 6 files changed, 12 insertions(+), 23 deletions(-) delete mode 100644 static/usage/v6/popover/presenting/controller/angular/app_module_ts.md diff --git a/static/usage/v6/popover/customization/positioning/angular/example_component_ts.md b/static/usage/v6/popover/customization/positioning/angular/example_component_ts.md index 4db53a836a9..1b3dae1494b 100644 --- a/static/usage/v6/popover/customization/positioning/angular/example_component_ts.md +++ b/static/usage/v6/popover/customization/positioning/angular/example_component_ts.md @@ -1,10 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent {} ``` diff --git a/static/usage/v6/popover/presenting/controller/angular/app_module_ts.md b/static/usage/v6/popover/presenting/controller/angular/app_module_ts.md deleted file mode 100644 index 887ca3acf89..00000000000 --- a/static/usage/v6/popover/presenting/controller/angular/app_module_ts.md +++ /dev/null @@ -1,19 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { BrowserModule } from '@angular/platform-browser'; - -import { IonicModule } from '@ionic/angular'; - -import { AppComponent } from './app.component'; -import { ExampleComponent } from './example.component'; - -import { PopoverComponent } from './popover.component'; - -@NgModule({ - imports: [BrowserModule, FormsModule, IonicModule.forRoot({})], - declarations: [AppComponent, ExampleComponent, PopoverComponent], - bootstrap: [AppComponent], -}) -export class AppModule {} -``` diff --git a/static/usage/v6/popover/presenting/controller/angular/example_component_ts.md b/static/usage/v6/popover/presenting/controller/angular/example_component_ts.md index bf0e0165d78..bb01bd2c127 100644 --- a/static/usage/v6/popover/presenting/controller/angular/example_component_ts.md +++ b/static/usage/v6/popover/presenting/controller/angular/example_component_ts.md @@ -1,13 +1,15 @@ ```ts import { Component, ViewChild } from '@angular/core'; -import { PopoverController } from '@ionic/angular'; +import { IonicModule, PopoverController } from '@ionic/angular'; import { PopoverComponent } from './popover.component'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { roleMsg = ''; diff --git a/static/usage/v6/popover/presenting/controller/angular/popover_component_ts.md b/static/usage/v6/popover/presenting/controller/angular/popover_component_ts.md index 2900a32240c..ce19e40b408 100644 --- a/static/usage/v6/popover/presenting/controller/angular/popover_component_ts.md +++ b/static/usage/v6/popover/presenting/controller/angular/popover_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { PopoverController } from '@ionic/angular'; +import { IonicModule, PopoverController } from '@ionic/angular'; @Component({ selector: 'app-popover', templateUrl: 'popover.component.html', + imports: [IonicModule], + standalone: true }) export class PopoverComponent {} ``` diff --git a/static/usage/v6/popover/presenting/controller/index.md b/static/usage/v6/popover/presenting/controller/index.md index 4906017d235..e51317d21fe 100644 --- a/static/usage/v6/popover/presenting/controller/index.md +++ b/static/usage/v6/popover/presenting/controller/index.md @@ -10,7 +10,6 @@ import angular_example_component_html from './angular/example_component_html.md' import angular_example_component_ts from './angular/example_component_ts.md'; import angular_popover_component_html from './angular/popover_component_html.md'; import angular_popover_component_ts from './angular/popover_component_ts.md'; -import angular_app_module from './angular/app_module_ts.md'; Date: Wed, 23 Jul 2025 15:22:28 -0500 Subject: [PATCH 018/129] docs(v6): update Angular examples for loading --- .../v6/loading/controller/angular/example_component_ts.md | 4 +++- .../usage/v6/loading/spinners/angular/example_component_ts.md | 4 +++- .../usage/v6/loading/theming/angular/example_component_ts.md | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/static/usage/v6/loading/controller/angular/example_component_ts.md b/static/usage/v6/loading/controller/angular/example_component_ts.md index bd4b86eef29..38ffd0010e4 100644 --- a/static/usage/v6/loading/controller/angular/example_component_ts.md +++ b/static/usage/v6/loading/controller/angular/example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; -import { LoadingController } from '@ionic/angular'; +import { IonicModule, LoadingController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private loadingCtrl: LoadingController) {} diff --git a/static/usage/v6/loading/spinners/angular/example_component_ts.md b/static/usage/v6/loading/spinners/angular/example_component_ts.md index 7e522cb3a64..ba83143f18d 100644 --- a/static/usage/v6/loading/spinners/angular/example_component_ts.md +++ b/static/usage/v6/loading/spinners/angular/example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; -import { LoadingController } from '@ionic/angular'; +import { IonicModule, LoadingController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private loadingCtrl: LoadingController) {} diff --git a/static/usage/v6/loading/theming/angular/example_component_ts.md b/static/usage/v6/loading/theming/angular/example_component_ts.md index 800335c91ad..30bf2c4c8e0 100644 --- a/static/usage/v6/loading/theming/angular/example_component_ts.md +++ b/static/usage/v6/loading/theming/angular/example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; -import { LoadingController } from '@ionic/angular'; +import { IonicModule, LoadingController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private loadingCtrl: LoadingController) {} From 45666ff199f87e2d27838009b55f78d2a391e73d Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 15:35:44 -0500 Subject: [PATCH 019/129] docs(v6): update Angular examples for progress-bar --- .../v6/progress-bar/buffer/angular/example_component_ts.md | 3 +++ .../progress-bar/determinate/angular/example_component_ts.md | 3 +++ 2 files changed, 6 insertions(+) diff --git a/static/usage/v6/progress-bar/buffer/angular/example_component_ts.md b/static/usage/v6/progress-bar/buffer/angular/example_component_ts.md index a876a376204..6b72f5b5232 100644 --- a/static/usage/v6/progress-bar/buffer/angular/example_component_ts.md +++ b/static/usage/v6/progress-bar/buffer/angular/example_component_ts.md @@ -1,10 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent { public buffer = 0.06; diff --git a/static/usage/v6/progress-bar/determinate/angular/example_component_ts.md b/static/usage/v6/progress-bar/determinate/angular/example_component_ts.md index 971d3d92ed0..8a288deb400 100644 --- a/static/usage/v6/progress-bar/determinate/angular/example_component_ts.md +++ b/static/usage/v6/progress-bar/determinate/angular/example_component_ts.md @@ -1,10 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent { public progress = 0; From 107b465f75ae2e7acb13a9890175e4f2e43a7d7b Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 15:44:41 -0500 Subject: [PATCH 020/129] docs(v6): update Angular example for skeleton-text --- .../v6/skeleton-text/basic/angular/example_component_ts.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/static/usage/v6/skeleton-text/basic/angular/example_component_ts.md b/static/usage/v6/skeleton-text/basic/angular/example_component_ts.md index 8423962a3e9..40d968506a8 100644 --- a/static/usage/v6/skeleton-text/basic/angular/example_component_ts.md +++ b/static/usage/v6/skeleton-text/basic/angular/example_component_ts.md @@ -1,10 +1,14 @@ ```ts import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['example.component.css'], + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent { public loaded = false; From 47ef96777eab75f6551041d7919bf4fcff31af58 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 15:54:20 -0500 Subject: [PATCH 021/129] docs(v6): update Angular examples for range --- .../v6/range/ion-change-event/angular/example_component_ts.md | 4 +++- .../range/ion-knob-move-event/angular/example_component_ts.md | 4 +++- static/usage/v6/range/pins/angular/example_component_ts.md | 3 +++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/static/usage/v6/range/ion-change-event/angular/example_component_ts.md b/static/usage/v6/range/ion-change-event/angular/example_component_ts.md index b90eff62d29..5598aea1444 100644 --- a/static/usage/v6/range/ion-change-event/angular/example_component_ts.md +++ b/static/usage/v6/range/ion-change-event/angular/example_component_ts.md @@ -1,12 +1,14 @@ ```ts import { Component } from '@angular/core'; -import { RangeCustomEvent } from '@ionic/angular'; +import { IonicModule, RangeCustomEvent } from '@ionic/angular'; import { RangeValue } from '@ionic/core'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { lastEmittedValue: RangeValue; diff --git a/static/usage/v6/range/ion-knob-move-event/angular/example_component_ts.md b/static/usage/v6/range/ion-knob-move-event/angular/example_component_ts.md index e4b331a10f2..e9221985fbb 100644 --- a/static/usage/v6/range/ion-knob-move-event/angular/example_component_ts.md +++ b/static/usage/v6/range/ion-knob-move-event/angular/example_component_ts.md @@ -1,12 +1,14 @@ ```ts import { Component } from '@angular/core'; -import { RangeCustomEvent } from '@ionic/angular'; +import { IonicModule, RangeCustomEvent } from '@ionic/angular'; import { RangeValue } from '@ionic/core'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { moveStart: RangeValue; diff --git a/static/usage/v6/range/pins/angular/example_component_ts.md b/static/usage/v6/range/pins/angular/example_component_ts.md index 8dc875e1bda..07226d94d76 100644 --- a/static/usage/v6/range/pins/angular/example_component_ts.md +++ b/static/usage/v6/range/pins/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { pinFormatter(value: number) { From dc66afa5b7065fab0d3045ad6fa8b9cd93573262 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 16:13:21 -0500 Subject: [PATCH 022/129] docs(v6): update Angular examples for refresher --- .../advanced/angular/example_component_ts.md | 15 +++++++++++++++ .../basic/angular/example_component_ts.md | 3 +++ .../angular/example_component_ts.md | 3 +++ .../angular/example_component_ts.md | 3 +++ .../angular/example_component_ts.md | 3 +++ 5 files changed, 27 insertions(+) diff --git a/static/usage/v6/refresher/advanced/angular/example_component_ts.md b/static/usage/v6/refresher/advanced/angular/example_component_ts.md index 98888ac14fa..6c7bd37d064 100644 --- a/static/usage/v6/refresher/advanced/angular/example_component_ts.md +++ b/static/usage/v6/refresher/advanced/angular/example_component_ts.md @@ -1,12 +1,27 @@ ```ts import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { ellipse } from 'ionicons/icons'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['./example.component.css'], + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ ellipse }); + } + public names = [ 'Burt Bear', 'Charlie Cheetah', diff --git a/static/usage/v6/refresher/basic/angular/example_component_ts.md b/static/usage/v6/refresher/basic/angular/example_component_ts.md index 74304953d4e..da645e02fcc 100644 --- a/static/usage/v6/refresher/basic/angular/example_component_ts.md +++ b/static/usage/v6/refresher/basic/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { handleRefresh(event) { diff --git a/static/usage/v6/refresher/custom-content/angular/example_component_ts.md b/static/usage/v6/refresher/custom-content/angular/example_component_ts.md index 74304953d4e..da645e02fcc 100644 --- a/static/usage/v6/refresher/custom-content/angular/example_component_ts.md +++ b/static/usage/v6/refresher/custom-content/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { handleRefresh(event) { diff --git a/static/usage/v6/refresher/custom-scroll-target/angular/example_component_ts.md b/static/usage/v6/refresher/custom-scroll-target/angular/example_component_ts.md index a5ac7eaaa9a..c2d3fc6797e 100644 --- a/static/usage/v6/refresher/custom-scroll-target/angular/example_component_ts.md +++ b/static/usage/v6/refresher/custom-scroll-target/angular/example_component_ts.md @@ -1,10 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent { handleRefresh(event) { diff --git a/static/usage/v6/refresher/pull-properties/angular/example_component_ts.md b/static/usage/v6/refresher/pull-properties/angular/example_component_ts.md index 74304953d4e..da645e02fcc 100644 --- a/static/usage/v6/refresher/pull-properties/angular/example_component_ts.md +++ b/static/usage/v6/refresher/pull-properties/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { handleRefresh(event) { From 7eea39b8042ce27eeb077b37a80897b6be37a0c4 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 16:36:27 -0500 Subject: [PATCH 023/129] docs(v6): update Angular examples for reorder --- .../basic/angular/example_component_ts.md | 4 +++- .../custom-icon/angular/example_component_ts.md | 16 ++++++++++++++-- .../angular/example_component_ts.md | 4 +++- .../angular/example_component_ts.md | 4 +++- .../angular/example_component_ts.md | 6 ++++-- .../wrapper/angular/example_component_ts.md | 4 +++- 6 files changed, 30 insertions(+), 8 deletions(-) diff --git a/static/usage/v6/reorder/basic/angular/example_component_ts.md b/static/usage/v6/reorder/basic/angular/example_component_ts.md index 7a5c867f791..bba98788a9a 100644 --- a/static/usage/v6/reorder/basic/angular/example_component_ts.md +++ b/static/usage/v6/reorder/basic/angular/example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; -import { ItemReorderEventDetail } from '@ionic/angular'; +import { IonicModule, ItemReorderEventDetail } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { handleReorder(ev: CustomEvent) { diff --git a/static/usage/v6/reorder/custom-icon/angular/example_component_ts.md b/static/usage/v6/reorder/custom-icon/angular/example_component_ts.md index 7a5c867f791..c8d1d3d7d7f 100644 --- a/static/usage/v6/reorder/custom-icon/angular/example_component_ts.md +++ b/static/usage/v6/reorder/custom-icon/angular/example_component_ts.md @@ -1,13 +1,25 @@ ```ts import { Component } from '@angular/core'; - -import { ItemReorderEventDetail } from '@ionic/angular'; +import { IonicModule, ItemReorderEventDetail } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { pizza } from 'ionicons/icons' @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ pizza }); + } + handleReorder(ev: CustomEvent) { // The `from` and `to` properties contain the index of the item // when the drag started and ended, respectively diff --git a/static/usage/v6/reorder/custom-scroll-target/angular/example_component_ts.md b/static/usage/v6/reorder/custom-scroll-target/angular/example_component_ts.md index 2cd3dd66740..d85638526b6 100644 --- a/static/usage/v6/reorder/custom-scroll-target/angular/example_component_ts.md +++ b/static/usage/v6/reorder/custom-scroll-target/angular/example_component_ts.md @@ -1,12 +1,14 @@ ```ts import { Component } from '@angular/core'; -import { ItemReorderEventDetail } from '@ionic/angular'; +import { IonicModule, ItemReorderEventDetail } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['./example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent { handleReorder(ev: CustomEvent) { diff --git a/static/usage/v6/reorder/toggling-disabled/angular/example_component_ts.md b/static/usage/v6/reorder/toggling-disabled/angular/example_component_ts.md index af0ff643b26..82b984f02af 100644 --- a/static/usage/v6/reorder/toggling-disabled/angular/example_component_ts.md +++ b/static/usage/v6/reorder/toggling-disabled/angular/example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; -import { ItemReorderEventDetail } from '@ionic/angular'; +import { IonicModule, ItemReorderEventDetail } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { public isDisabled = true; diff --git a/static/usage/v6/reorder/updating-data/angular/example_component_ts.md b/static/usage/v6/reorder/updating-data/angular/example_component_ts.md index 11e2f59d553..70e52c80f30 100644 --- a/static/usage/v6/reorder/updating-data/angular/example_component_ts.md +++ b/static/usage/v6/reorder/updating-data/angular/example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; - -import { ItemReorderEventDetail } from '@ionic/angular'; +import { CommonModule } from '@angular/common'; +import { IonicModule, ItemReorderEventDetail } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent { items = [1, 2, 3, 4, 5]; diff --git a/static/usage/v6/reorder/wrapper/angular/example_component_ts.md b/static/usage/v6/reorder/wrapper/angular/example_component_ts.md index 7a5c867f791..bba98788a9a 100644 --- a/static/usage/v6/reorder/wrapper/angular/example_component_ts.md +++ b/static/usage/v6/reorder/wrapper/angular/example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; -import { ItemReorderEventDetail } from '@ionic/angular'; +import { IonicModule, ItemReorderEventDetail } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { handleReorder(ev: CustomEvent) { From 1d609aa938399cdacd588d4ec0cbed02424809ef Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 17:02:51 -0500 Subject: [PATCH 024/129] docs(v6): update Angular examples for searchbar --- .../example_component_html.md} | 0 .../angular/example_component_ts.md | 23 +++++++++++++++++++ .../usage/v6/searchbar/cancel-button/index.md | 15 ++++++++++-- .../example_component_html.md} | 0 .../angular/example_component_ts.md | 23 +++++++++++++++++++ .../usage/v6/searchbar/clear-button/index.md | 15 ++++++++++-- .../debounce/angular/example_component_ts.md | 4 ++++ .../example_component_html.md} | 0 .../angular/example_component_ts.md | 23 +++++++++++++++++++ .../usage/v6/searchbar/search-icon/index.md | 20 ++++++++++++++-- 10 files changed, 117 insertions(+), 6 deletions(-) rename static/usage/v6/searchbar/cancel-button/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/searchbar/cancel-button/angular/example_component_ts.md rename static/usage/v6/searchbar/clear-button/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/searchbar/clear-button/angular/example_component_ts.md rename static/usage/v6/searchbar/search-icon/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/searchbar/search-icon/angular/example_component_ts.md diff --git a/static/usage/v6/searchbar/cancel-button/angular.md b/static/usage/v6/searchbar/cancel-button/angular/example_component_html.md similarity index 100% rename from static/usage/v6/searchbar/cancel-button/angular.md rename to static/usage/v6/searchbar/cancel-button/angular/example_component_html.md diff --git a/static/usage/v6/searchbar/cancel-button/angular/example_component_ts.md b/static/usage/v6/searchbar/cancel-button/angular/example_component_ts.md new file mode 100644 index 00000000000..15d1ac8b9b8 --- /dev/null +++ b/static/usage/v6/searchbar/cancel-button/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { trash } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ trash }); + } +} +``` diff --git a/static/usage/v6/searchbar/cancel-button/index.md b/static/usage/v6/searchbar/cancel-button/index.md index 4ad2c30b731..514ad222d50 100644 --- a/static/usage/v6/searchbar/cancel-button/index.md +++ b/static/usage/v6/searchbar/cancel-button/index.md @@ -3,11 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; diff --git a/static/usage/v6/searchbar/clear-button/angular.md b/static/usage/v6/searchbar/clear-button/angular/example_component_html.md similarity index 100% rename from static/usage/v6/searchbar/clear-button/angular.md rename to static/usage/v6/searchbar/clear-button/angular/example_component_html.md diff --git a/static/usage/v6/searchbar/clear-button/angular/example_component_ts.md b/static/usage/v6/searchbar/clear-button/angular/example_component_ts.md new file mode 100644 index 00000000000..de602d23876 --- /dev/null +++ b/static/usage/v6/searchbar/clear-button/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { trashBin } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ trashBin }); + } +} +``` diff --git a/static/usage/v6/searchbar/clear-button/index.md b/static/usage/v6/searchbar/clear-button/index.md index aa821ec048b..1aa1969a5e0 100644 --- a/static/usage/v6/searchbar/clear-button/index.md +++ b/static/usage/v6/searchbar/clear-button/index.md @@ -3,11 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; diff --git a/static/usage/v6/searchbar/debounce/angular/example_component_ts.md b/static/usage/v6/searchbar/debounce/angular/example_component_ts.md index 1017ac602f9..f0b1bc3058a 100644 --- a/static/usage/v6/searchbar/debounce/angular/example_component_ts.md +++ b/static/usage/v6/searchbar/debounce/angular/example_component_ts.md @@ -1,9 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent { public data = [ diff --git a/static/usage/v6/searchbar/search-icon/angular.md b/static/usage/v6/searchbar/search-icon/angular/example_component_html.md similarity index 100% rename from static/usage/v6/searchbar/search-icon/angular.md rename to static/usage/v6/searchbar/search-icon/angular/example_component_html.md diff --git a/static/usage/v6/searchbar/search-icon/angular/example_component_ts.md b/static/usage/v6/searchbar/search-icon/angular/example_component_ts.md new file mode 100644 index 00000000000..ca4327f025d --- /dev/null +++ b/static/usage/v6/searchbar/search-icon/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { searchCircle } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ searchCircle }); + } +} +``` diff --git a/static/usage/v6/searchbar/search-icon/index.md b/static/usage/v6/searchbar/search-icon/index.md index c3611623923..e7dbf671773 100644 --- a/static/usage/v6/searchbar/search-icon/index.md +++ b/static/usage/v6/searchbar/search-icon/index.md @@ -3,6 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; - + From 143d9ef0ed8cff9c808476e6d78112958760068d Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 23 Jul 2025 17:27:00 -0500 Subject: [PATCH 025/129] docs(v6): update Angular examples for segment --- .../example_component_html.md} | 0 .../angular/example_component_ts.md | 23 +++++++++++++++++++ static/usage/v6/segment/scrollable/index.md | 15 ++++++++++-- 3 files changed, 36 insertions(+), 2 deletions(-) rename static/usage/v6/segment/scrollable/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/segment/scrollable/angular/example_component_ts.md diff --git a/static/usage/v6/segment/scrollable/angular.md b/static/usage/v6/segment/scrollable/angular/example_component_html.md similarity index 100% rename from static/usage/v6/segment/scrollable/angular.md rename to static/usage/v6/segment/scrollable/angular/example_component_html.md diff --git a/static/usage/v6/segment/scrollable/angular/example_component_ts.md b/static/usage/v6/segment/scrollable/angular/example_component_ts.md new file mode 100644 index 00000000000..cc1db4d8b9e --- /dev/null +++ b/static/usage/v6/segment/scrollable/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { home, heart, pin, star, call, globe, basket, barbell, trash, person } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ home, heart, pin, star, call, globe, basket, barbell, trash, person }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/segment/scrollable/index.md b/static/usage/v6/segment/scrollable/index.md index de206ca652a..99fb5dd2b5b 100644 --- a/static/usage/v6/segment/scrollable/index.md +++ b/static/usage/v6/segment/scrollable/index.md @@ -3,11 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; From 34fcc9b4c88a47d1fe37aac85f81b10eeb0833bd Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Thu, 24 Jul 2025 11:34:58 -0500 Subject: [PATCH 026/129] docs(v6): update Angular examples for segment-button --- .../example_component_html.md} | 0 .../layout/angular/example_component_ts.md | 23 +++++++++++++++++++ .../usage/v6/segment-button/layout/index.md | 15 ++++++++++-- 3 files changed, 36 insertions(+), 2 deletions(-) rename static/usage/v6/segment-button/layout/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/segment-button/layout/angular/example_component_ts.md diff --git a/static/usage/v6/segment-button/layout/angular.md b/static/usage/v6/segment-button/layout/angular/example_component_html.md similarity index 100% rename from static/usage/v6/segment-button/layout/angular.md rename to static/usage/v6/segment-button/layout/angular/example_component_html.md diff --git a/static/usage/v6/segment-button/layout/angular/example_component_ts.md b/static/usage/v6/segment-button/layout/angular/example_component_ts.md new file mode 100644 index 00000000000..a28895e2963 --- /dev/null +++ b/static/usage/v6/segment-button/layout/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { call, heart, pin } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ call, heart, pin }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/segment-button/layout/index.md b/static/usage/v6/segment-button/layout/index.md index 5ddcc6a17b8..7667f27685c 100644 --- a/static/usage/v6/segment-button/layout/index.md +++ b/static/usage/v6/segment-button/layout/index.md @@ -3,11 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; From 050151398ee917ba80f1e5bd9ce75335a2207f30 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Thu, 24 Jul 2025 11:48:19 -0500 Subject: [PATCH 027/129] docs(v6): update Angular example for segment-button --- .../segment-button/layout/angular/example_component_ts.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/static/usage/v6/segment-button/layout/angular/example_component_ts.md b/static/usage/v6/segment-button/layout/angular/example_component_ts.md index a28895e2963..d9efe5ebb6b 100644 --- a/static/usage/v6/segment-button/layout/angular/example_component_ts.md +++ b/static/usage/v6/segment-button/layout/angular/example_component_ts.md @@ -5,10 +5,10 @@ import { addIcons } from 'ionicons'; import { call, heart, pin } from 'ionicons/icons'; @Component({ - selector: 'app-example', - templateUrl: 'example.component.html', - imports: [IonicModule], - standalone: true + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor() { From 626a46f4499171cc181a72646440b839702fe54c Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Thu, 24 Jul 2025 12:57:58 -0500 Subject: [PATCH 028/129] docs(v6): update Angular examples for select --- .../angular/example_component_ts.md | 4 ++++ .../angular/example_component_ts.md | 3 +++ .../angular/example_component_ts.md | 3 +++ .../angular/example_component_ts.md | 4 ++++ .../angular/example_component_ts.md | 4 ++++ .../select/typeahead/angular/app_module_ts.md | 19 ------------------- .../typeahead/angular/example_component_ts.md | 5 ++++- .../angular/modal-example_component_ts.md | 7 +++++-- static/usage/v6/select/typeahead/index.md | 2 -- 9 files changed, 27 insertions(+), 24 deletions(-) delete mode 100644 static/usage/v6/select/typeahead/angular/app_module_ts.md diff --git a/static/usage/v6/select/basic/responding-to-interaction/angular/example_component_ts.md b/static/usage/v6/select/basic/responding-to-interaction/angular/example_component_ts.md index 18c0b1eaa1b..bb9cd83a61d 100644 --- a/static/usage/v6/select/basic/responding-to-interaction/angular/example_component_ts.md +++ b/static/usage/v6/select/basic/responding-to-interaction/angular/example_component_ts.md @@ -1,9 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent { logs: string[] = []; diff --git a/static/usage/v6/select/customization/interface-options/angular/example_component_ts.md b/static/usage/v6/select/customization/interface-options/angular/example_component_ts.md index c3f34d0adaf..182ba06c748 100644 --- a/static/usage/v6/select/customization/interface-options/angular/example_component_ts.md +++ b/static/usage/v6/select/customization/interface-options/angular/example_component_ts.md @@ -1,9 +1,12 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { customAlertOptions = { diff --git a/static/usage/v6/select/customization/styling-select/angular/example_component_ts.md b/static/usage/v6/select/customization/styling-select/angular/example_component_ts.md index 4db53a836a9..1b3dae1494b 100644 --- a/static/usage/v6/select/customization/styling-select/angular/example_component_ts.md +++ b/static/usage/v6/select/customization/styling-select/angular/example_component_ts.md @@ -1,10 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', styleUrls: ['example.component.css'], + imports: [IonicModule], + standalone: true }) export class ExampleComponent {} ``` diff --git a/static/usage/v6/select/objects-as-values/multiple-selection/angular/example_component_ts.md b/static/usage/v6/select/objects-as-values/multiple-selection/angular/example_component_ts.md index 76fa7e51e49..b40026fbcc5 100644 --- a/static/usage/v6/select/objects-as-values/multiple-selection/angular/example_component_ts.md +++ b/static/usage/v6/select/objects-as-values/multiple-selection/angular/example_component_ts.md @@ -1,9 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent { currentFood = undefined; diff --git a/static/usage/v6/select/objects-as-values/using-comparewith/angular/example_component_ts.md b/static/usage/v6/select/objects-as-values/using-comparewith/angular/example_component_ts.md index afbd5f454cd..c4702a09f86 100644 --- a/static/usage/v6/select/objects-as-values/using-comparewith/angular/example_component_ts.md +++ b/static/usage/v6/select/objects-as-values/using-comparewith/angular/example_component_ts.md @@ -1,9 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [CommonModule, IonicModule], + standalone: true }) export class ExampleComponent { currentFood = undefined; diff --git a/static/usage/v6/select/typeahead/angular/app_module_ts.md b/static/usage/v6/select/typeahead/angular/app_module_ts.md deleted file mode 100644 index 0fa58037717..00000000000 --- a/static/usage/v6/select/typeahead/angular/app_module_ts.md +++ /dev/null @@ -1,19 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { BrowserModule } from '@angular/platform-browser'; -import { FormsModule } from '@angular/forms'; - -import { IonicModule } from '@ionic/angular'; - -import { AppComponent } from './app.component'; -import { ExampleComponent } from './example.component'; - -import { TypeaheadComponent } from './typeahead.component'; - -@NgModule({ - imports: [BrowserModule, FormsModule, IonicModule.forRoot({})], - declarations: [AppComponent, ExampleComponent, TypeaheadComponent], - bootstrap: [AppComponent], -}) -export class AppModule {} -``` diff --git a/static/usage/v6/select/typeahead/angular/example_component_ts.md b/static/usage/v6/select/typeahead/angular/example_component_ts.md index ded6fa60b0f..261d85387f2 100644 --- a/static/usage/v6/select/typeahead/angular/example_component_ts.md +++ b/static/usage/v6/select/typeahead/angular/example_component_ts.md @@ -1,11 +1,14 @@ ```ts import { Component, ViewChild } from '@angular/core'; -import { IonModal } from '@ionic/angular'; +import { IonicModule, IonModal } from '@ionic/angular'; +import { TypeaheadComponent } from './typeahead.component'; import { Item } from './types'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule, TypeaheadComponent], + standalone: true }) export class ExampleComponent { @ViewChild('modal', { static: true }) modal!: IonModal; diff --git a/static/usage/v6/select/typeahead/angular/modal-example_component_ts.md b/static/usage/v6/select/typeahead/angular/modal-example_component_ts.md index 9bd21f1b404..7fa35713398 100644 --- a/static/usage/v6/select/typeahead/angular/modal-example_component_ts.md +++ b/static/usage/v6/select/typeahead/angular/modal-example_component_ts.md @@ -1,11 +1,14 @@ ```ts -import { Component, Input, Output, EventEmitter } from '@angular/core'; -import type { OnInit } from '@angular/core'; +import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicModule } from '@ionic/angular'; import { Item } from './types'; @Component({ selector: 'app-typeahead', templateUrl: 'typeahead.component.html', + imports: [CommonModule, IonicModule], + standalone: true }) export class TypeaheadComponent implements OnInit { @Input() items: Item[] = []; diff --git a/static/usage/v6/select/typeahead/index.md b/static/usage/v6/select/typeahead/index.md index aa76c597de1..bd7317bc117 100644 --- a/static/usage/v6/select/typeahead/index.md +++ b/static/usage/v6/select/typeahead/index.md @@ -10,7 +10,6 @@ import vue_example from './vue/example_vue.md'; import vue_types_ts from './vue/vue_types_ts.md'; import vue_typeahead_component from './vue/typeahead_component_vue.md'; -import angular_app_module_ts from './angular/app_module_ts.md'; import angular_example_component_html from './angular/example_component_html.md'; import angular_example_component_ts from './angular/example_component_ts.md'; import angular_modal_example_component_ts from './angular/modal-example_component_ts.md'; @@ -41,7 +40,6 @@ import angular_types_ts from './angular/angular_types_ts.md'; 'src/app/example.component.ts': angular_example_component_ts, 'src/app/typeahead.component.html': angular_modal_example_component_html, 'src/app/typeahead.component.ts': angular_modal_example_component_ts, - 'src/app/app.module.ts': angular_app_module_ts, 'src/app/types.ts': angular_types_ts, }, }, From d243ff3448c7c2e658917c1b857c1f9119677488 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Thu, 24 Jul 2025 15:24:25 -0500 Subject: [PATCH 029/129] docs(v6): update Angular example for router --- .../tabs/router/angular/app_component_html.md | 3 -- .../v6/tabs/router/angular/app_module_ts.md | 19 --------- .../v6/tabs/router/angular/app_routes_ts.md | 33 +++++++++++++++ .../router/angular/app_routing_module_ts.md | 42 ------------------- .../router/angular/example_component_html.md | 9 ++-- .../router/angular/example_component_ts.md | 25 +++++++++++ .../router/angular/home_page_component_ts.md | 4 ++ .../router/angular/home_page_module_ts.md | 14 ------- .../angular/library_page_component_ts.md | 4 ++ .../router/angular/library_page_module_ts.md | 14 ------- .../router/angular/radio_page_component_ts.md | 4 ++ .../router/angular/radio_page_module_ts.md | 14 ------- .../angular/search_page_component_ts.md | 4 ++ .../router/angular/search_page_module_ts.md | 14 ------- static/usage/v6/tabs/router/index.md | 20 +++------ 15 files changed, 84 insertions(+), 139 deletions(-) delete mode 100644 static/usage/v6/tabs/router/angular/app_component_html.md delete mode 100644 static/usage/v6/tabs/router/angular/app_module_ts.md create mode 100644 static/usage/v6/tabs/router/angular/app_routes_ts.md delete mode 100644 static/usage/v6/tabs/router/angular/app_routing_module_ts.md create mode 100644 static/usage/v6/tabs/router/angular/example_component_ts.md delete mode 100644 static/usage/v6/tabs/router/angular/home_page_module_ts.md delete mode 100644 static/usage/v6/tabs/router/angular/library_page_module_ts.md delete mode 100644 static/usage/v6/tabs/router/angular/radio_page_module_ts.md delete mode 100644 static/usage/v6/tabs/router/angular/search_page_module_ts.md diff --git a/static/usage/v6/tabs/router/angular/app_component_html.md b/static/usage/v6/tabs/router/angular/app_component_html.md deleted file mode 100644 index 7636539f28a..00000000000 --- a/static/usage/v6/tabs/router/angular/app_component_html.md +++ /dev/null @@ -1,3 +0,0 @@ -```html - -``` diff --git a/static/usage/v6/tabs/router/angular/app_module_ts.md b/static/usage/v6/tabs/router/angular/app_module_ts.md deleted file mode 100644 index e36b8c6316e..00000000000 --- a/static/usage/v6/tabs/router/angular/app_module_ts.md +++ /dev/null @@ -1,19 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { BrowserModule } from '@angular/platform-browser'; - -import { IonicModule } from '@ionic/angular'; - -import { AppComponent } from './app.component'; -import { ExampleComponent } from './example.component'; - -import { AppRoutingModule } from './app-routing.module'; - -@NgModule({ - imports: [BrowserModule, FormsModule, AppRoutingModule, IonicModule.forRoot({})], - declarations: [AppComponent, ExampleComponent], - bootstrap: [AppComponent], -}) -export class AppModule {} -``` diff --git a/static/usage/v6/tabs/router/angular/app_routes_ts.md b/static/usage/v6/tabs/router/angular/app_routes_ts.md new file mode 100644 index 00000000000..12354f4efa7 --- /dev/null +++ b/static/usage/v6/tabs/router/angular/app_routes_ts.md @@ -0,0 +1,33 @@ +```ts +import { Routes } from '@angular/router'; + +export const routes: Routes = [ + { + path: '', + loadComponent: () => import('./example.component').then((m) => m.ExampleComponent), + children: [ + { + path: 'home', + loadComponent: () => import('./home/home-page.component').then((m) => m.HomePageComponent), + }, + { + path: 'radio', + loadComponent: () => import('./radio/radio-page.component').then((m) => m.RadioPageComponent), + }, + { + path: 'library', + loadComponent: () => import('./library/library-page.component').then((m) => m.LibraryPageComponent), + }, + { + path: 'search', + loadComponent: () => import('./search/search-page.component').then((m) => m.SearchPageComponent), + }, + { + path: '', + redirectTo: '/home', + pathMatch: 'full', + }, + ] + }, +]; +``` \ No newline at end of file diff --git a/static/usage/v6/tabs/router/angular/app_routing_module_ts.md b/static/usage/v6/tabs/router/angular/app_routing_module_ts.md deleted file mode 100644 index 7ff1067030f..00000000000 --- a/static/usage/v6/tabs/router/angular/app_routing_module_ts.md +++ /dev/null @@ -1,42 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; - -import { ExampleComponent } from './example.component'; - -@NgModule({ - imports: [ - RouterModule.forRoot([ - { - path: '', - component: ExampleComponent, - children: [ - { - path: '', - pathMatch: 'full', - redirectTo: 'home', - }, - { - path: 'home', - loadChildren: () => import('./home/home-page.module').then((m) => m.HomePageModule), - }, - { - path: 'radio', - loadChildren: () => import('./radio/radio-page.module').then((m) => m.RadioPageModule), - }, - { - path: 'library', - loadChildren: () => import('./library/library-page.module').then((m) => m.LibraryPageModule), - }, - { - path: 'search', - loadChildren: () => import('./search/search-page.module').then((m) => m.SearchPageModule), - }, - ], - }, - ]), - ], - exports: [RouterModule], -}) -export class AppRoutingModule {} -``` diff --git a/static/usage/v6/tabs/router/angular/example_component_html.md b/static/usage/v6/tabs/router/angular/example_component_html.md index 67be68b564c..50736b8d969 100644 --- a/static/usage/v6/tabs/router/angular/example_component_html.md +++ b/static/usage/v6/tabs/router/angular/example_component_html.md @@ -1,19 +1,20 @@ ```html + - + Listen Now - + Radio - + Library - + Search diff --git a/static/usage/v6/tabs/router/angular/example_component_ts.md b/static/usage/v6/tabs/router/angular/example_component_ts.md new file mode 100644 index 00000000000..6c41e6987d3 --- /dev/null +++ b/static/usage/v6/tabs/router/angular/example_component_ts.md @@ -0,0 +1,25 @@ +```ts +import { Component } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { playCircle, library, radio, search } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [CommonModule, IonicModule, RouterModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ playCircle, library, radio, search }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/tabs/router/angular/home_page_component_ts.md b/static/usage/v6/tabs/router/angular/home_page_component_ts.md index 9e2ef0a3e8c..72d45fbf0b6 100644 --- a/static/usage/v6/tabs/router/angular/home_page_component_ts.md +++ b/static/usage/v6/tabs/router/angular/home_page_component_ts.md @@ -1,9 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-home-page', templateUrl: './home-page.component.html', + imports: [IonicModule], + standalone: true }) export class HomePageComponent {} + ``` diff --git a/static/usage/v6/tabs/router/angular/home_page_module_ts.md b/static/usage/v6/tabs/router/angular/home_page_module_ts.md deleted file mode 100644 index 2a1fb15b460..00000000000 --- a/static/usage/v6/tabs/router/angular/home_page_module_ts.md +++ /dev/null @@ -1,14 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { HomePageComponent } from './home-page.component'; - -import { IonicModule } from '@ionic/angular'; - -@NgModule({ - imports: [IonicModule, RouterModule.forChild([{ path: '', component: HomePageComponent }])], - declarations: [HomePageComponent], - exports: [HomePageComponent], -}) -export class HomePageModule {} -``` diff --git a/static/usage/v6/tabs/router/angular/library_page_component_ts.md b/static/usage/v6/tabs/router/angular/library_page_component_ts.md index f5a92a4868a..e98a5767193 100644 --- a/static/usage/v6/tabs/router/angular/library_page_component_ts.md +++ b/static/usage/v6/tabs/router/angular/library_page_component_ts.md @@ -1,9 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-library-page', templateUrl: './library-page.component.html', + imports: [IonicModule], + standalone: true }) export class LibraryPageComponent {} + ``` diff --git a/static/usage/v6/tabs/router/angular/library_page_module_ts.md b/static/usage/v6/tabs/router/angular/library_page_module_ts.md deleted file mode 100644 index 8e2ab48cf39..00000000000 --- a/static/usage/v6/tabs/router/angular/library_page_module_ts.md +++ /dev/null @@ -1,14 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { IonicModule } from '@ionic/angular'; - -import { LibraryPageComponent } from './library-page.component'; - -@NgModule({ - imports: [IonicModule, RouterModule.forChild([{ path: '', component: LibraryPageComponent }])], - declarations: [LibraryPageComponent], - exports: [LibraryPageComponent], -}) -export class LibraryPageModule {} -``` diff --git a/static/usage/v6/tabs/router/angular/radio_page_component_ts.md b/static/usage/v6/tabs/router/angular/radio_page_component_ts.md index d29209c00dd..0a0e41154be 100644 --- a/static/usage/v6/tabs/router/angular/radio_page_component_ts.md +++ b/static/usage/v6/tabs/router/angular/radio_page_component_ts.md @@ -1,9 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-radio-page', templateUrl: './radio-page.component.html', + imports: [IonicModule], + standalone: true }) export class RadioPageComponent {} + ``` diff --git a/static/usage/v6/tabs/router/angular/radio_page_module_ts.md b/static/usage/v6/tabs/router/angular/radio_page_module_ts.md deleted file mode 100644 index f50a0088632..00000000000 --- a/static/usage/v6/tabs/router/angular/radio_page_module_ts.md +++ /dev/null @@ -1,14 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { RadioPageComponent } from './radio-page.component'; - -import { IonicModule } from '@ionic/angular'; - -@NgModule({ - imports: [IonicModule, RouterModule.forChild([{ path: '', component: RadioPageComponent }])], - declarations: [RadioPageComponent], - exports: [RadioPageComponent], -}) -export class RadioPageModule {} -``` diff --git a/static/usage/v6/tabs/router/angular/search_page_component_ts.md b/static/usage/v6/tabs/router/angular/search_page_component_ts.md index bd6e723d332..1c4f7e91650 100644 --- a/static/usage/v6/tabs/router/angular/search_page_component_ts.md +++ b/static/usage/v6/tabs/router/angular/search_page_component_ts.md @@ -1,9 +1,13 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-search-page', templateUrl: './search-page.component.html', + imports: [IonicModule], + standalone: true }) export class SearchPageComponent {} + ``` diff --git a/static/usage/v6/tabs/router/angular/search_page_module_ts.md b/static/usage/v6/tabs/router/angular/search_page_module_ts.md deleted file mode 100644 index a1d599c5d9b..00000000000 --- a/static/usage/v6/tabs/router/angular/search_page_module_ts.md +++ /dev/null @@ -1,14 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { SearchPageComponent } from './search-page.component'; - -import { IonicModule } from '@ionic/angular'; - -@NgModule({ - imports: [IonicModule, RouterModule.forChild([{ path: '', component: SearchPageComponent }])], - declarations: [SearchPageComponent], - exports: [SearchPageComponent], -}) -export class SearchPageModule {} -``` diff --git a/static/usage/v6/tabs/router/index.md b/static/usage/v6/tabs/router/index.md index 7acff190150..bd728e9f3df 100644 --- a/static/usage/v6/tabs/router/index.md +++ b/static/usage/v6/tabs/router/index.md @@ -2,28 +2,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; -import angular_app_component_html from './angular/app_component_html.md'; -import angular_app_module_ts from './angular/app_module_ts.md'; -import angular_app_routing_module_ts from './angular/app_routing_module_ts.md'; - import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; -import angular_home_page_module_ts from './angular/home_page_module_ts.md'; import angular_home_page_component_ts from './angular/home_page_component_ts.md'; import angular_home_page_component_html from './angular/home_page_component_html.md'; -import angular_library_page_module_ts from './angular/library_page_module_ts.md'; import angular_library_page_component_ts from './angular/library_page_component_ts.md'; import angular_library_page_component_html from './angular/library_page_component_html.md'; -import angular_radio_page_module_ts from './angular/radio_page_module_ts.md'; import angular_radio_page_component_ts from './angular/radio_page_component_ts.md'; import angular_radio_page_component_html from './angular/radio_page_component_html.md'; -import angular_search_page_module_ts from './angular/search_page_module_ts.md'; import angular_search_page_component_ts from './angular/search_page_component_ts.md'; import angular_search_page_component_html from './angular/search_page_component_html.md'; +import app_routes_ts from './angular/app_routes_ts.md'; import angular_global_css from './angular/global_css.md'; import vue_app_vue from './vue/app_vue.md'; @@ -48,22 +42,18 @@ import react_search_page_tsx from './react/search_page_tsx.md'; angular: { files: { 'src/app/example.component.html': angular_example_component_html, + 'src/app/example.component.ts': angular_example_component_ts, + 'src/app/app.routes.ts': + app_routes_ts, 'src/app/home/home-page.component.ts': angular_home_page_component_ts, 'src/app/home/home-page.component.html': angular_home_page_component_html, 'src/global.css': angular_global_css, - 'src/app/home/home-page.module.ts': angular_home_page_module_ts, 'src/app/library/library-page.component.ts': angular_library_page_component_ts, 'src/app/library/library-page.component.html': angular_library_page_component_html, - 'src/app/library/library-page.module.ts': angular_library_page_module_ts, 'src/app/radio/radio-page.component.ts': angular_radio_page_component_ts, 'src/app/radio/radio-page.component.html': angular_radio_page_component_html, - 'src/app/radio/radio-page.module.ts': angular_radio_page_module_ts, 'src/app/search/search-page.component.ts': angular_search_page_component_ts, 'src/app/search/search-page.component.html': angular_search_page_component_html, - 'src/app/search/search-page.module.ts': angular_search_page_module_ts, - 'src/app/app.module.ts': angular_app_module_ts, - 'src/app/app.component.html': angular_app_component_html, - 'src/app/app-routing.module.ts': angular_app_routing_module_ts, }, }, vue: { From 2ee2ea98ac5ad421702fb99ef9e39494d0dcff9e Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Thu, 24 Jul 2025 16:35:46 -0500 Subject: [PATCH 030/129] docs(v6): update Angular examples for toast --- .../toast/buttons/angular/example_component_ts.md | 4 +++- .../v6/toast/icon/angular/example_component_ts.md | 15 +++++++++++++-- .../toast/layout/angular/example_component_ts.md | 5 +++-- .../controller/angular/example_component_ts.md | 4 +++- .../toast/theming/angular/example_component_ts.md | 4 +++- 5 files changed, 25 insertions(+), 7 deletions(-) diff --git a/static/usage/v6/toast/buttons/angular/example_component_ts.md b/static/usage/v6/toast/buttons/angular/example_component_ts.md index faf1f33ed5b..3ecbef74070 100644 --- a/static/usage/v6/toast/buttons/angular/example_component_ts.md +++ b/static/usage/v6/toast/buttons/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { ToastController } from '@ionic/angular'; +import { IonicModule, ToastController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { handlerMessage = ''; diff --git a/static/usage/v6/toast/icon/angular/example_component_ts.md b/static/usage/v6/toast/icon/angular/example_component_ts.md index d72053bd950..76fb647250e 100644 --- a/static/usage/v6/toast/icon/angular/example_component_ts.md +++ b/static/usage/v6/toast/icon/angular/example_component_ts.md @@ -1,13 +1,24 @@ ```ts import { Component } from '@angular/core'; -import { ToastController } from '@ionic/angular'; +import { IonicModule, ToastController } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { globe } from 'ionicons/icons'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { - constructor(private toastController: ToastController) {} + constructor(private toastController: ToastController) { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ globe }); + } async presentToast() { const toast = await this.toastController.create({ diff --git a/static/usage/v6/toast/layout/angular/example_component_ts.md b/static/usage/v6/toast/layout/angular/example_component_ts.md index 01636b04a97..c8193f8d7f4 100644 --- a/static/usage/v6/toast/layout/angular/example_component_ts.md +++ b/static/usage/v6/toast/layout/angular/example_component_ts.md @@ -1,11 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { ToastController } from '@ionic/angular'; -import type { ToastOptions } from '@ionic/angular'; +import { IonicModule, ToastController, ToastOptions } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private toastController: ToastController) {} diff --git a/static/usage/v6/toast/presenting/controller/angular/example_component_ts.md b/static/usage/v6/toast/presenting/controller/angular/example_component_ts.md index db133a99f1e..7ca690867d4 100644 --- a/static/usage/v6/toast/presenting/controller/angular/example_component_ts.md +++ b/static/usage/v6/toast/presenting/controller/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { ToastController } from '@ionic/angular'; +import { IonicModule, ToastController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private toastController: ToastController) {} diff --git a/static/usage/v6/toast/theming/angular/example_component_ts.md b/static/usage/v6/toast/theming/angular/example_component_ts.md index 7f490b9bacc..e537ed3839c 100644 --- a/static/usage/v6/toast/theming/angular/example_component_ts.md +++ b/static/usage/v6/toast/theming/angular/example_component_ts.md @@ -1,10 +1,12 @@ ```ts import { Component } from '@angular/core'; -import { ToastController } from '@ionic/angular'; +import { IonicModule, ToastController } from '@ionic/angular'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { constructor(private toastController: ToastController) {} From 5934210a1596f39407825ac12b305eee225aabcb Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Fri, 25 Jul 2025 10:20:26 -0500 Subject: [PATCH 031/129] docs(v6): update Angular examples for toolbar --- .../example_component_html.md} | 0 .../buttons/angular/example_component_ts.md | 23 +++++++++++++++++++ static/usage/v6/toolbar/buttons/index.md | 15 ++++++++++-- 3 files changed, 36 insertions(+), 2 deletions(-) rename static/usage/v6/toolbar/buttons/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/toolbar/buttons/angular/example_component_ts.md diff --git a/static/usage/v6/toolbar/buttons/angular.md b/static/usage/v6/toolbar/buttons/angular/example_component_html.md similarity index 100% rename from static/usage/v6/toolbar/buttons/angular.md rename to static/usage/v6/toolbar/buttons/angular/example_component_html.md diff --git a/static/usage/v6/toolbar/buttons/angular/example_component_ts.md b/static/usage/v6/toolbar/buttons/angular/example_component_ts.md new file mode 100644 index 00000000000..34d9c7d9c6a --- /dev/null +++ b/static/usage/v6/toolbar/buttons/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { personCircle, search, ellipsisHorizontal, ellipsisVertical, helpCircle, star, create } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent{ + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ personCircle, search, ellipsisHorizontal, ellipsisVertical, helpCircle, star, create }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/toolbar/buttons/index.md b/static/usage/v6/toolbar/buttons/index.md index 2ac28550f9d..2423b16df41 100644 --- a/static/usage/v6/toolbar/buttons/index.md +++ b/static/usage/v6/toolbar/buttons/index.md @@ -3,11 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; From 28795fba12ccb91d04d3873281f86bdc3fe5d708 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Fri, 25 Jul 2025 10:43:01 -0500 Subject: [PATCH 032/129] docs(v6): update Angular example for buttons --- .../example_component_html.md} | 0 .../types/angular/example_component_ts.md | 23 +++++++++++++++++++ static/usage/v6/buttons/types/index.md | 15 ++++++++++-- 3 files changed, 36 insertions(+), 2 deletions(-) rename static/usage/v6/buttons/types/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/buttons/types/angular/example_component_ts.md diff --git a/static/usage/v6/buttons/types/angular.md b/static/usage/v6/buttons/types/angular/example_component_html.md similarity index 100% rename from static/usage/v6/buttons/types/angular.md rename to static/usage/v6/buttons/types/angular/example_component_html.md diff --git a/static/usage/v6/buttons/types/angular/example_component_ts.md b/static/usage/v6/buttons/types/angular/example_component_ts.md new file mode 100644 index 00000000000..34d9c7d9c6a --- /dev/null +++ b/static/usage/v6/buttons/types/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { personCircle, search, ellipsisHorizontal, ellipsisVertical, helpCircle, star, create } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent{ + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ personCircle, search, ellipsisHorizontal, ellipsisVertical, helpCircle, star, create }); + } +} +``` \ No newline at end of file diff --git a/static/usage/v6/buttons/types/index.md b/static/usage/v6/buttons/types/index.md index f0bee55af1c..dc1a527af29 100644 --- a/static/usage/v6/buttons/types/index.md +++ b/static/usage/v6/buttons/types/index.md @@ -3,11 +3,22 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; From b9b4fd06e898e52471ef73093f35a95aae04b524 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Fri, 25 Jul 2025 11:09:54 -0500 Subject: [PATCH 033/129] docs(v6): update Angular examples for back-button --- .../basic/angular/app_module_ts.md | 20 ------------------- .../basic/angular/example_component_ts.md | 4 +++- .../basic/angular/page_one_component_ts.md | 4 +++- .../basic/angular/page_two_component_ts.md | 3 +++ static/usage/v6/back-button/basic/index.md | 2 -- .../custom/angular/app_module_ts.md | 20 ------------------- .../custom/angular/example_component_ts.md | 3 +++ .../custom/angular/page_one_component_ts.md | 4 +++- .../custom/angular/page_two_component_ts.md | 16 ++++++++++++++- static/usage/v6/back-button/custom/index.md | 2 -- 10 files changed, 30 insertions(+), 48 deletions(-) delete mode 100644 static/usage/v6/back-button/basic/angular/app_module_ts.md delete mode 100644 static/usage/v6/back-button/custom/angular/app_module_ts.md diff --git a/static/usage/v6/back-button/basic/angular/app_module_ts.md b/static/usage/v6/back-button/basic/angular/app_module_ts.md deleted file mode 100644 index 3c20b511446..00000000000 --- a/static/usage/v6/back-button/basic/angular/app_module_ts.md +++ /dev/null @@ -1,20 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { BrowserModule } from '@angular/platform-browser'; -import { RouterModule } from '@angular/router'; - -import { IonicModule } from '@ionic/angular'; - -import { AppComponent } from './app.component'; -import { ExampleComponent } from './example.component'; - -import { PageOneComponent } from './page-one.component'; -import { PageTwoComponent } from './page-two.component'; - -@NgModule({ - imports: [BrowserModule, RouterModule.forRoot([]), IonicModule.forRoot({})], - declarations: [AppComponent, ExampleComponent, PageOneComponent, PageTwoComponent], - bootstrap: [AppComponent], -}) -export class AppModule {} -``` diff --git a/static/usage/v6/back-button/basic/angular/example_component_ts.md b/static/usage/v6/back-button/basic/angular/example_component_ts.md index b123a4858ce..370b2ed24e1 100644 --- a/static/usage/v6/back-button/basic/angular/example_component_ts.md +++ b/static/usage/v6/back-button/basic/angular/example_component_ts.md @@ -1,11 +1,13 @@ ```ts import { Component } from '@angular/core'; - +import { IonicModule } from '@ionic/angular'; import { PageOneComponent } from './page-one.component'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { component = PageOneComponent; diff --git a/static/usage/v6/back-button/basic/angular/page_one_component_ts.md b/static/usage/v6/back-button/basic/angular/page_one_component_ts.md index d181c5a5268..821db5df9a4 100644 --- a/static/usage/v6/back-button/basic/angular/page_one_component_ts.md +++ b/static/usage/v6/back-button/basic/angular/page_one_component_ts.md @@ -1,6 +1,6 @@ ```ts import { Component } from '@angular/core'; - +import { IonicModule } from '@ionic/angular'; import { PageTwoComponent } from './page-two.component'; @Component({ @@ -19,6 +19,8 @@ import { PageTwoComponent } from './page-two.component'; `, + imports: [IonicModule], + standalone: true }) export class PageOneComponent { component = PageTwoComponent; diff --git a/static/usage/v6/back-button/basic/angular/page_two_component_ts.md b/static/usage/v6/back-button/basic/angular/page_two_component_ts.md index b2cda11d2a8..8caa5a483e8 100644 --- a/static/usage/v6/back-button/basic/angular/page_two_component_ts.md +++ b/static/usage/v6/back-button/basic/angular/page_two_component_ts.md @@ -1,5 +1,6 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; @Component({ selector: 'app-page-two', @@ -17,6 +18,8 @@ import { Component } from '@angular/core';

Use the back button to navigate to the previous page.

`, + imports: [IonicModule], + standalone: true }) export class PageTwoComponent {} ``` diff --git a/static/usage/v6/back-button/basic/index.md b/static/usage/v6/back-button/basic/index.md index 6c29748fe6f..5015c2398fe 100644 --- a/static/usage/v6/back-button/basic/index.md +++ b/static/usage/v6/back-button/basic/index.md @@ -2,7 +2,6 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; -import angular_app_module_ts from './angular/app_module_ts.md'; import angular_example_component_html from './angular/example_component_html.md'; import angular_example_component_ts from './angular/example_component_ts.md'; import angular_page_one_component_ts from './angular/page_one_component_ts.md'; @@ -26,7 +25,6 @@ import vue_page_two from './vue/page_two_vue.md'; 'src/app/example.component.ts': angular_example_component_ts, 'src/app/page-one.component.ts': angular_page_one_component_ts, 'src/app/page-two.component.ts': angular_page_two_component_ts, - 'src/app/app.module.ts': angular_app_module_ts, }, }, react: { diff --git a/static/usage/v6/back-button/custom/angular/app_module_ts.md b/static/usage/v6/back-button/custom/angular/app_module_ts.md deleted file mode 100644 index 3c20b511446..00000000000 --- a/static/usage/v6/back-button/custom/angular/app_module_ts.md +++ /dev/null @@ -1,20 +0,0 @@ -```ts -import { NgModule } from '@angular/core'; -import { BrowserModule } from '@angular/platform-browser'; -import { RouterModule } from '@angular/router'; - -import { IonicModule } from '@ionic/angular'; - -import { AppComponent } from './app.component'; -import { ExampleComponent } from './example.component'; - -import { PageOneComponent } from './page-one.component'; -import { PageTwoComponent } from './page-two.component'; - -@NgModule({ - imports: [BrowserModule, RouterModule.forRoot([]), IonicModule.forRoot({})], - declarations: [AppComponent, ExampleComponent, PageOneComponent, PageTwoComponent], - bootstrap: [AppComponent], -}) -export class AppModule {} -``` diff --git a/static/usage/v6/back-button/custom/angular/example_component_ts.md b/static/usage/v6/back-button/custom/angular/example_component_ts.md index b123a4858ce..ea06d82a402 100644 --- a/static/usage/v6/back-button/custom/angular/example_component_ts.md +++ b/static/usage/v6/back-button/custom/angular/example_component_ts.md @@ -1,11 +1,14 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; import { PageOneComponent } from './page-one.component'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true }) export class ExampleComponent { component = PageOneComponent; diff --git a/static/usage/v6/back-button/custom/angular/page_one_component_ts.md b/static/usage/v6/back-button/custom/angular/page_one_component_ts.md index d181c5a5268..821db5df9a4 100644 --- a/static/usage/v6/back-button/custom/angular/page_one_component_ts.md +++ b/static/usage/v6/back-button/custom/angular/page_one_component_ts.md @@ -1,6 +1,6 @@ ```ts import { Component } from '@angular/core'; - +import { IonicModule } from '@ionic/angular'; import { PageTwoComponent } from './page-two.component'; @Component({ @@ -19,6 +19,8 @@ import { PageTwoComponent } from './page-two.component'; `, + imports: [IonicModule], + standalone: true }) export class PageOneComponent { component = PageTwoComponent; diff --git a/static/usage/v6/back-button/custom/angular/page_two_component_ts.md b/static/usage/v6/back-button/custom/angular/page_two_component_ts.md index 05a1bd64d79..2cfa4a7dfbd 100644 --- a/static/usage/v6/back-button/custom/angular/page_two_component_ts.md +++ b/static/usage/v6/back-button/custom/angular/page_two_component_ts.md @@ -1,5 +1,8 @@ ```ts import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { caretBack } from 'ionicons/icons'; @Component({ selector: 'app-page-two', @@ -17,6 +20,17 @@ import { Component } from '@angular/core';

Use the back button to navigate to the previous page.

`, + imports: [IonicModule], + standalone: true }) -export class PageTwoComponent {} +export class PageTwoComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ caretBack }); + } +} ``` diff --git a/static/usage/v6/back-button/custom/index.md b/static/usage/v6/back-button/custom/index.md index 30f58541ecb..69bde337fa3 100644 --- a/static/usage/v6/back-button/custom/index.md +++ b/static/usage/v6/back-button/custom/index.md @@ -2,7 +2,6 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; -import angular_app_module_ts from './angular/app_module_ts.md'; import angular_example_component_html from './angular/example_component_html.md'; import angular_example_component_ts from './angular/example_component_ts.md'; import angular_page_one_component_ts from './angular/page_one_component_ts.md'; @@ -26,7 +25,6 @@ import vue_page_two from './vue/page_two_vue.md'; 'src/app/example.component.ts': angular_example_component_ts, 'src/app/page-one.component.ts': angular_page_one_component_ts, 'src/app/page-two.component.ts': angular_page_two_component_ts, - 'src/app/app.module.ts': angular_app_module_ts, }, }, react: { From f48db54f1796cf1616d489cc1480b8b26b075d12 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Fri, 25 Jul 2025 11:20:33 -0500 Subject: [PATCH 034/129] docs(v6): update Angular example for text --- .../example_component_html.md} | 0 .../basic/angular/example_component_ts.md | 23 +++++++++++++++++++ static/usage/v6/text/basic/index.md | 18 +++++++++++++-- 3 files changed, 39 insertions(+), 2 deletions(-) rename static/usage/v6/text/basic/{angular.md => angular/example_component_html.md} (100%) create mode 100644 static/usage/v6/text/basic/angular/example_component_ts.md diff --git a/static/usage/v6/text/basic/angular.md b/static/usage/v6/text/basic/angular/example_component_html.md similarity index 100% rename from static/usage/v6/text/basic/angular.md rename to static/usage/v6/text/basic/angular/example_component_html.md diff --git a/static/usage/v6/text/basic/angular/example_component_ts.md b/static/usage/v6/text/basic/angular/example_component_ts.md new file mode 100644 index 00000000000..6ed4de437b4 --- /dev/null +++ b/static/usage/v6/text/basic/angular/example_component_ts.md @@ -0,0 +1,23 @@ +```ts +import { Component } from '@angular/core'; +import { IonicModule } from '@ionic/angular'; +import { addIcons } from 'ionicons'; +import { warning } from 'ionicons/icons'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true +}) +export class ExampleComponent { + constructor() { + /** + * Any icons you want to use in your application + * can be registered in app.component.ts and then + * referenced by name anywhere in your application. + */ + addIcons({ warning }); + } +} +``` diff --git a/static/usage/v6/text/basic/index.md b/static/usage/v6/text/basic/index.md index 06efaf44145..24f162c246d 100644 --- a/static/usage/v6/text/basic/index.md +++ b/static/usage/v6/text/basic/index.md @@ -3,6 +3,20 @@ import Playground from '@site/src/components/global/Playground'; import javascript from './javascript.md'; import react from './react.md'; import vue from './vue.md'; -import angular from './angular.md'; +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; - + From 50c1e6f83829116f55ebcb7b99628f672df52bf9 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Fri, 25 Jul 2025 14:29:08 -0500 Subject: [PATCH 035/129] docs(v6): revert changes required to build v6 docs locally --- versioned_docs/version-v5/developer-resources/books.md | 2 +- versioned_docs/version-v6/developer-resources/books.md | 2 +- versions.json | 3 +-- versionsArchived.json | 1 + 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/versioned_docs/version-v5/developer-resources/books.md b/versioned_docs/version-v5/developer-resources/books.md index 4553ac800c3..1a51bc94e8f 100644 --- a/versioned_docs/version-v5/developer-resources/books.md +++ b/versioned_docs/version-v5/developer-resources/books.md @@ -6,7 +6,7 @@ Angular. Vue. React. Vanilla JavaScript. All of these tools can be used to creat -by [Paul Halliday](https://developer.school) +by [Paul Halliday](https:://developer.school) ### [Creating Ionic Applications with StencilJS](https://www.joshmorony.com/creating-ionic-applications-with-stencil-js/) - [Free Preview](https://cdn2.hubspot.net/hubfs/3776657/PREVIEW-Creating-Ionic-Apps-with-StencilJS.pdf) diff --git a/versioned_docs/version-v6/developer-resources/books.md b/versioned_docs/version-v6/developer-resources/books.md index 4553ac800c3..1a51bc94e8f 100644 --- a/versioned_docs/version-v6/developer-resources/books.md +++ b/versioned_docs/version-v6/developer-resources/books.md @@ -6,7 +6,7 @@ Angular. Vue. React. Vanilla JavaScript. All of these tools can be used to creat -by [Paul Halliday](https://developer.school) +by [Paul Halliday](https:://developer.school) ### [Creating Ionic Applications with StencilJS](https://www.joshmorony.com/creating-ionic-applications-with-stencil-js/) - [Free Preview](https://cdn2.hubspot.net/hubfs/3776657/PREVIEW-Creating-Ionic-Apps-with-StencilJS.pdf) diff --git a/versions.json b/versions.json index ed163ab5c09..48698a4fdec 100644 --- a/versions.json +++ b/versions.json @@ -1,4 +1,3 @@ [ - "v7", - "v6" + "v7" ] diff --git a/versionsArchived.json b/versionsArchived.json index 56bd2d5bcb6..9d103a53775 100644 --- a/versionsArchived.json +++ b/versionsArchived.json @@ -1,3 +1,4 @@ { + "v6": "https://ionic-docs-o31kiyk8l-ionic1.vercel.app/docs/v6", "v5": "https://ionic-docs-5utg8ms4c-ionic1.vercel.app/docs/v5" } From d49391baf7798a5c5bad4f9fd31938f06a1d1f29 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Fri, 25 Jul 2025 14:35:15 -0500 Subject: [PATCH 036/129] docs(v6): run linter --- .../angular/example_component_ts.md | 2 +- .../icons/angular/example_component_ts.md | 10 +++++----- .../listen-changes/angular/example_component_ts.md | 2 +- .../accordion/toggle/angular/example_component_ts.md | 2 +- .../action-sheet/basic/angular/example_component_ts.md | 2 +- .../css-properties/angular/example_component_ts.md | 2 +- .../theming/styling/angular/example_component_ts.md | 2 +- .../v6/alert/buttons/angular/example_component_ts.md | 2 +- .../customization/angular/example_component_ts.md | 2 +- .../inputs/radios/angular/example_component_ts.md | 2 +- .../inputs/text-inputs/angular/example_component_ts.md | 2 +- .../back-button/basic/angular/example_component_ts.md | 2 +- .../back-button/basic/angular/page_one_component_ts.md | 2 +- .../back-button/basic/angular/page_two_component_ts.md | 2 +- .../back-button/custom/angular/example_component_ts.md | 2 +- .../custom/angular/page_one_component_ts.md | 2 +- .../custom/angular/page_two_component_ts.md | 2 +- .../expand-on-click/angular/example_component_ts.md | 2 +- .../popover-on-click/angular/example_component_ts.md | 2 +- .../custom-separators/angular/example_component_ts.md | 10 +++++----- .../icons-on-items/angular/example_component_ts.md | 10 +++++----- .../v6/buttons/types/angular/example_component_ts.md | 6 +++--- static/usage/v6/buttons/types/index.md | 2 +- .../scroll-events/angular/example_component_ts.md | 2 +- .../scroll-methods/angular/example_component_ts.md | 2 +- .../advanced/angular/example_component_ts.md | 2 +- .../array/angular/example_component_ts.md | 2 +- .../callback/angular/example_component_ts.md | 2 +- .../v6/icon/basic/angular/example_component_ts.md | 10 +++++----- static/usage/v6/icon/basic/index.md | 2 +- .../basic/angular/example_component_ts.md | 2 +- .../angular/example_component_ts.md | 2 +- .../angular/example_component_ts.md | 2 +- .../v6/input/filtering/angular/example_component_ts.md | 2 +- .../v6/item/buttons/angular/example_component_ts.md | 10 +++++----- static/usage/v6/item/buttons/index.md | 2 +- .../v6/item/counter/angular/example_component_ts.md | 2 +- .../v6/item/icons/angular/example_component_ts.md | 10 +++++----- static/usage/v6/item/icons/index.md | 2 +- .../v6/item/lines/angular/example_component_ts.md | 10 +++++----- static/usage/v6/item/lines/index.md | 2 +- .../loading/controller/angular/example_component_ts.md | 2 +- .../loading/spinners/angular/example_component_ts.md | 2 +- .../v6/loading/theming/angular/example_component_ts.md | 2 +- .../usage/v6/menu/type/angular/example_component_ts.md | 2 +- .../boolean/angular/example_component_ts.md | 2 +- .../function/angular/example_component_ts.md | 2 +- .../angular/example_component_ts.md | 2 +- .../modal/card/basic/angular/example_component_ts.md | 2 +- .../modal/controller/angular/example_component_ts.md | 2 +- .../controller/angular/modal-example_component_ts.md | 2 +- .../modal/inline/basic/angular/example_component_ts.md | 2 +- .../inline/is-open/angular/example_component_ts.md | 2 +- .../background-content/angular/example_component_ts.md | 2 +- .../styling/animations/angular/example_component_ts.md | 2 +- .../v6/nav/nav-link/angular/example_component_ts.md | 2 +- .../v6/nav/nav-link/angular/page_one_component_ts.md | 2 +- .../v6/nav/nav-link/angular/page_three_component_ts.md | 2 +- .../v6/nav/nav-link/angular/page_two_component_ts.md | 2 +- .../multiple-column/angular/example_component_ts.md | 2 +- .../single-column/angular/example_component_ts.md | 2 +- .../positioning/angular/example_component_ts.md | 2 +- .../controller/angular/example_component_ts.md | 2 +- .../controller/angular/popover_component_ts.md | 2 +- .../inline-isopen/angular/example_component_ts.md | 2 +- .../buffer/angular/example_component_ts.md | 2 +- .../determinate/angular/example_component_ts.md | 2 +- .../ion-change-event/angular/example_component_ts.md | 2 +- .../angular/example_component_ts.md | 2 +- .../v6/range/pins/angular/example_component_ts.md | 2 +- .../refresher/advanced/angular/example_component_ts.md | 4 ++-- .../v6/refresher/basic/angular/example_component_ts.md | 2 +- .../custom-content/angular/example_component_ts.md | 2 +- .../angular/example_component_ts.md | 2 +- .../pull-properties/angular/example_component_ts.md | 2 +- .../v6/reorder/basic/angular/example_component_ts.md | 2 +- .../custom-icon/angular/example_component_ts.md | 4 ++-- .../angular/example_component_ts.md | 2 +- .../toggling-disabled/angular/example_component_ts.md | 2 +- .../updating-data/angular/example_component_ts.md | 2 +- .../v6/reorder/wrapper/angular/example_component_ts.md | 2 +- .../cancel-button/angular/example_component_ts.md | 8 ++++---- static/usage/v6/searchbar/cancel-button/index.md | 2 +- .../clear-button/angular/example_component_ts.md | 8 ++++---- static/usage/v6/searchbar/clear-button/index.md | 2 +- .../searchbar/debounce/angular/example_component_ts.md | 2 +- .../search-icon/angular/example_component_ts.md | 8 ++++---- static/usage/v6/searchbar/search-icon/index.md | 2 +- .../layout/angular/example_component_ts.md | 4 ++-- static/usage/v6/segment-button/layout/index.md | 2 +- .../segment/scrollable/angular/example_component_ts.md | 10 +++++----- static/usage/v6/segment/scrollable/index.md | 2 +- .../angular/example_component_ts.md | 2 +- .../interface-options/angular/example_component_ts.md | 2 +- .../styling-select/angular/example_component_ts.md | 2 +- .../multiple-selection/angular/example_component_ts.md | 2 +- .../using-comparewith/angular/example_component_ts.md | 2 +- .../select/typeahead/angular/example_component_ts.md | 2 +- .../typeahead/angular/modal-example_component_ts.md | 2 +- .../basic/angular/example_component_ts.md | 2 +- static/usage/v6/tabs/router/angular/app_routes_ts.md | 4 ++-- .../v6/tabs/router/angular/example_component_html.md | 2 +- .../v6/tabs/router/angular/example_component_ts.md | 4 ++-- .../v6/tabs/router/angular/home_page_component_ts.md | 3 +-- .../tabs/router/angular/library_page_component_ts.md | 3 +-- .../v6/tabs/router/angular/radio_page_component_ts.md | 3 +-- .../v6/tabs/router/angular/search_page_component_ts.md | 3 +-- static/usage/v6/tabs/router/index.md | 3 +-- .../v6/text/basic/angular/example_component_ts.md | 2 +- static/usage/v6/text/basic/index.md | 3 ++- .../v6/toast/buttons/angular/example_component_ts.md | 2 +- .../v6/toast/icon/angular/example_component_ts.md | 2 +- .../v6/toast/layout/angular/example_component_ts.md | 2 +- .../controller/angular/example_component_ts.md | 2 +- .../v6/toast/theming/angular/example_component_ts.md | 2 +- .../v6/toolbar/buttons/angular/example_component_ts.md | 6 +++--- static/usage/v6/toolbar/buttons/index.md | 2 +- 117 files changed, 168 insertions(+), 172 deletions(-) diff --git a/static/usage/v6/accordion/customization/advanced-expansion-styles/angular/example_component_ts.md b/static/usage/v6/accordion/customization/advanced-expansion-styles/angular/example_component_ts.md index 1b3dae1494b..1f697a67f80 100644 --- a/static/usage/v6/accordion/customization/advanced-expansion-styles/angular/example_component_ts.md +++ b/static/usage/v6/accordion/customization/advanced-expansion-styles/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule } from '@ionic/angular'; templateUrl: 'example.component.html', styleUrls: ['example.component.css'], imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent {} ``` diff --git a/static/usage/v6/accordion/customization/icons/angular/example_component_ts.md b/static/usage/v6/accordion/customization/icons/angular/example_component_ts.md index e225a168a07..03ea4c8b466 100644 --- a/static/usage/v6/accordion/customization/icons/angular/example_component_ts.md +++ b/static/usage/v6/accordion/customization/icons/angular/example_component_ts.md @@ -5,10 +5,10 @@ import { addIcons } from 'ionicons'; import { caretDownCircle } from 'ionicons/icons'; @Component({ - selector: 'app-example', - templateUrl: 'example.component.html', - imports: [IonicModule], - standalone: true + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true, }) export class ExampleComponent { constructor() { @@ -20,4 +20,4 @@ export class ExampleComponent { addIcons({ caretDownCircle }); } } -``` \ No newline at end of file +``` diff --git a/static/usage/v6/accordion/listen-changes/angular/example_component_ts.md b/static/usage/v6/accordion/listen-changes/angular/example_component_ts.md index 376333ed4c1..6ebf16a77b2 100644 --- a/static/usage/v6/accordion/listen-changes/angular/example_component_ts.md +++ b/static/usage/v6/accordion/listen-changes/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { @ViewChild('listenerOut', { static: true }) listenerOut: ElementRef; diff --git a/static/usage/v6/accordion/toggle/angular/example_component_ts.md b/static/usage/v6/accordion/toggle/angular/example_component_ts.md index 52f252cf2a0..fded6cb4af2 100644 --- a/static/usage/v6/accordion/toggle/angular/example_component_ts.md +++ b/static/usage/v6/accordion/toggle/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule, IonAccordionGroup } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { @ViewChild('accordionGroup', { static: true }) accordionGroup: IonAccordionGroup; diff --git a/static/usage/v6/action-sheet/basic/angular/example_component_ts.md b/static/usage/v6/action-sheet/basic/angular/example_component_ts.md index 97e780edf31..ba50bc70655 100644 --- a/static/usage/v6/action-sheet/basic/angular/example_component_ts.md +++ b/static/usage/v6/action-sheet/basic/angular/example_component_ts.md @@ -8,7 +8,7 @@ import { IonicModule, ActionSheetController } from '@ionic/angular'; templateUrl: 'example.component.html', styleUrls: ['./example.component.css'], imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { result: string; diff --git a/static/usage/v6/action-sheet/theming/css-properties/angular/example_component_ts.md b/static/usage/v6/action-sheet/theming/css-properties/angular/example_component_ts.md index fbca9f2f603..d3f8f924ea3 100644 --- a/static/usage/v6/action-sheet/theming/css-properties/angular/example_component_ts.md +++ b/static/usage/v6/action-sheet/theming/css-properties/angular/example_component_ts.md @@ -8,7 +8,7 @@ import { IonicModule, ActionSheetController } from '@ionic/angular'; templateUrl: 'example.component.html', styleUrls: ['./example.component.css'], imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { constructor(private actionSheetCtrl: ActionSheetController) {} diff --git a/static/usage/v6/action-sheet/theming/styling/angular/example_component_ts.md b/static/usage/v6/action-sheet/theming/styling/angular/example_component_ts.md index fbca9f2f603..d3f8f924ea3 100644 --- a/static/usage/v6/action-sheet/theming/styling/angular/example_component_ts.md +++ b/static/usage/v6/action-sheet/theming/styling/angular/example_component_ts.md @@ -8,7 +8,7 @@ import { IonicModule, ActionSheetController } from '@ionic/angular'; templateUrl: 'example.component.html', styleUrls: ['./example.component.css'], imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { constructor(private actionSheetCtrl: ActionSheetController) {} diff --git a/static/usage/v6/alert/buttons/angular/example_component_ts.md b/static/usage/v6/alert/buttons/angular/example_component_ts.md index f03a98e678b..9701e160be2 100644 --- a/static/usage/v6/alert/buttons/angular/example_component_ts.md +++ b/static/usage/v6/alert/buttons/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule, AlertController } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { handlerMessage = ''; diff --git a/static/usage/v6/alert/customization/angular/example_component_ts.md b/static/usage/v6/alert/customization/angular/example_component_ts.md index 5cef7d8e3a4..b2c2a175342 100644 --- a/static/usage/v6/alert/customization/angular/example_component_ts.md +++ b/static/usage/v6/alert/customization/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule, AlertController } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { constructor(private alertController: AlertController) {} diff --git a/static/usage/v6/alert/inputs/radios/angular/example_component_ts.md b/static/usage/v6/alert/inputs/radios/angular/example_component_ts.md index f06812967dc..b1a8dbc56c0 100644 --- a/static/usage/v6/alert/inputs/radios/angular/example_component_ts.md +++ b/static/usage/v6/alert/inputs/radios/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule, AlertController } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { constructor(private alertController: AlertController) {} diff --git a/static/usage/v6/alert/inputs/text-inputs/angular/example_component_ts.md b/static/usage/v6/alert/inputs/text-inputs/angular/example_component_ts.md index a8ad4eb12a6..14b247e3789 100644 --- a/static/usage/v6/alert/inputs/text-inputs/angular/example_component_ts.md +++ b/static/usage/v6/alert/inputs/text-inputs/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule, AlertController } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { constructor(private alertController: AlertController) {} diff --git a/static/usage/v6/back-button/basic/angular/example_component_ts.md b/static/usage/v6/back-button/basic/angular/example_component_ts.md index 370b2ed24e1..9f9e53a29f6 100644 --- a/static/usage/v6/back-button/basic/angular/example_component_ts.md +++ b/static/usage/v6/back-button/basic/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { PageOneComponent } from './page-one.component'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { component = PageOneComponent; diff --git a/static/usage/v6/back-button/basic/angular/page_one_component_ts.md b/static/usage/v6/back-button/basic/angular/page_one_component_ts.md index 821db5df9a4..14bc20480f7 100644 --- a/static/usage/v6/back-button/basic/angular/page_one_component_ts.md +++ b/static/usage/v6/back-button/basic/angular/page_one_component_ts.md @@ -20,7 +20,7 @@ import { PageTwoComponent } from './page-two.component'; `, imports: [IonicModule], - standalone: true + standalone: true, }) export class PageOneComponent { component = PageTwoComponent; diff --git a/static/usage/v6/back-button/basic/angular/page_two_component_ts.md b/static/usage/v6/back-button/basic/angular/page_two_component_ts.md index 8caa5a483e8..8aee8320f42 100644 --- a/static/usage/v6/back-button/basic/angular/page_two_component_ts.md +++ b/static/usage/v6/back-button/basic/angular/page_two_component_ts.md @@ -19,7 +19,7 @@ import { IonicModule } from '@ionic/angular'; `, imports: [IonicModule], - standalone: true + standalone: true, }) export class PageTwoComponent {} ``` diff --git a/static/usage/v6/back-button/custom/angular/example_component_ts.md b/static/usage/v6/back-button/custom/angular/example_component_ts.md index ea06d82a402..a19973fd10a 100644 --- a/static/usage/v6/back-button/custom/angular/example_component_ts.md +++ b/static/usage/v6/back-button/custom/angular/example_component_ts.md @@ -8,7 +8,7 @@ import { PageOneComponent } from './page-one.component'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { component = PageOneComponent; diff --git a/static/usage/v6/back-button/custom/angular/page_one_component_ts.md b/static/usage/v6/back-button/custom/angular/page_one_component_ts.md index 821db5df9a4..14bc20480f7 100644 --- a/static/usage/v6/back-button/custom/angular/page_one_component_ts.md +++ b/static/usage/v6/back-button/custom/angular/page_one_component_ts.md @@ -20,7 +20,7 @@ import { PageTwoComponent } from './page-two.component'; `, imports: [IonicModule], - standalone: true + standalone: true, }) export class PageOneComponent { component = PageTwoComponent; diff --git a/static/usage/v6/back-button/custom/angular/page_two_component_ts.md b/static/usage/v6/back-button/custom/angular/page_two_component_ts.md index 2cfa4a7dfbd..f2025503ad2 100644 --- a/static/usage/v6/back-button/custom/angular/page_two_component_ts.md +++ b/static/usage/v6/back-button/custom/angular/page_two_component_ts.md @@ -21,7 +21,7 @@ import { caretBack } from 'ionicons/icons'; `, imports: [IonicModule], - standalone: true + standalone: true, }) export class PageTwoComponent { constructor() { diff --git a/static/usage/v6/breadcrumbs/collapsing-items/expand-on-click/angular/example_component_ts.md b/static/usage/v6/breadcrumbs/collapsing-items/expand-on-click/angular/example_component_ts.md index 38122fed8e3..04f35de0538 100644 --- a/static/usage/v6/breadcrumbs/collapsing-items/expand-on-click/angular/example_component_ts.md +++ b/static/usage/v6/breadcrumbs/collapsing-items/expand-on-click/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { maxBreadcrumbs = 4; diff --git a/static/usage/v6/breadcrumbs/collapsing-items/popover-on-click/angular/example_component_ts.md b/static/usage/v6/breadcrumbs/collapsing-items/popover-on-click/angular/example_component_ts.md index 22380950ca4..4f93cafc682 100644 --- a/static/usage/v6/breadcrumbs/collapsing-items/popover-on-click/angular/example_component_ts.md +++ b/static/usage/v6/breadcrumbs/collapsing-items/popover-on-click/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [CommonModule, IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { @ViewChild('popover') popover; diff --git a/static/usage/v6/breadcrumbs/icons/custom-separators/angular/example_component_ts.md b/static/usage/v6/breadcrumbs/icons/custom-separators/angular/example_component_ts.md index dcd6b853b2b..123f58cf8f5 100644 --- a/static/usage/v6/breadcrumbs/icons/custom-separators/angular/example_component_ts.md +++ b/static/usage/v6/breadcrumbs/icons/custom-separators/angular/example_component_ts.md @@ -5,10 +5,10 @@ import { addIcons } from 'ionicons'; import { arrowForwardCircle } from 'ionicons/icons'; @Component({ - selector: 'app-example', - templateUrl: 'example.component.html', - imports: [IonicModule], - standalone: true + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true, }) export class ExampleComponent { constructor() { @@ -20,4 +20,4 @@ export class ExampleComponent { addIcons({ arrowForwardCircle }); } } -``` \ No newline at end of file +``` diff --git a/static/usage/v6/breadcrumbs/icons/icons-on-items/angular/example_component_ts.md b/static/usage/v6/breadcrumbs/icons/icons-on-items/angular/example_component_ts.md index a679de8d05c..c553dcb693c 100644 --- a/static/usage/v6/breadcrumbs/icons/icons-on-items/angular/example_component_ts.md +++ b/static/usage/v6/breadcrumbs/icons/icons-on-items/angular/example_component_ts.md @@ -5,10 +5,10 @@ import { addIcons } from 'ionicons'; import { home, flash, camera, film } from 'ionicons/icons'; @Component({ - selector: 'app-example', - templateUrl: 'example.component.html', - imports: [IonicModule], - standalone: true + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true, }) export class ExampleComponent { constructor() { @@ -20,4 +20,4 @@ export class ExampleComponent { addIcons({ home, flash, camera, film }); } } -``` \ No newline at end of file +``` diff --git a/static/usage/v6/buttons/types/angular/example_component_ts.md b/static/usage/v6/buttons/types/angular/example_component_ts.md index 34d9c7d9c6a..f962e4d49ce 100644 --- a/static/usage/v6/buttons/types/angular/example_component_ts.md +++ b/static/usage/v6/buttons/types/angular/example_component_ts.md @@ -8,9 +8,9 @@ import { personCircle, search, ellipsisHorizontal, ellipsisVertical, helpCircle, selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) -export class ExampleComponent{ +export class ExampleComponent { constructor() { /** * Any icons you want to use in your application @@ -20,4 +20,4 @@ export class ExampleComponent{ addIcons({ personCircle, search, ellipsisHorizontal, ellipsisVertical, helpCircle, star, create }); } } -``` \ No newline at end of file +``` diff --git a/static/usage/v6/buttons/types/index.md b/static/usage/v6/buttons/types/index.md index dc1a527af29..01e9778e127 100644 --- a/static/usage/v6/buttons/types/index.md +++ b/static/usage/v6/buttons/types/index.md @@ -17,7 +17,7 @@ import angular_example_component_ts from './angular/example_component_ts.md'; 'src/app/example.component.html': angular_example_component_html, 'src/app/example.component.ts': angular_example_component_ts, }, - } + }, }} src="usage/v6/buttons/types/demo.html" size="medium" diff --git a/static/usage/v6/content/scroll-events/angular/example_component_ts.md b/static/usage/v6/content/scroll-events/angular/example_component_ts.md index 658772dd54e..9926796477b 100644 --- a/static/usage/v6/content/scroll-events/angular/example_component_ts.md +++ b/static/usage/v6/content/scroll-events/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule, ScrollDetail } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { handleScrollStart() { diff --git a/static/usage/v6/content/scroll-methods/angular/example_component_ts.md b/static/usage/v6/content/scroll-methods/angular/example_component_ts.md index bba0e43f6ff..01a79eec0ce 100644 --- a/static/usage/v6/content/scroll-methods/angular/example_component_ts.md +++ b/static/usage/v6/content/scroll-methods/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule, IonContent } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { @ViewChild(IonContent) content: IonContent; diff --git a/static/usage/v6/datetime/date-constraints/advanced/angular/example_component_ts.md b/static/usage/v6/datetime/date-constraints/advanced/angular/example_component_ts.md index 8d011a739b5..af65d2cf671 100644 --- a/static/usage/v6/datetime/date-constraints/advanced/angular/example_component_ts.md +++ b/static/usage/v6/datetime/date-constraints/advanced/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { isWeekday = (dateString: string) => { diff --git a/static/usage/v6/datetime/highlightedDates/array/angular/example_component_ts.md b/static/usage/v6/datetime/highlightedDates/array/angular/example_component_ts.md index 5efbdc20571..56dff055f84 100644 --- a/static/usage/v6/datetime/highlightedDates/array/angular/example_component_ts.md +++ b/static/usage/v6/datetime/highlightedDates/array/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { highlightedDates = [ diff --git a/static/usage/v6/datetime/highlightedDates/callback/angular/example_component_ts.md b/static/usage/v6/datetime/highlightedDates/callback/angular/example_component_ts.md index 2d4359fee21..33986b357d3 100644 --- a/static/usage/v6/datetime/highlightedDates/callback/angular/example_component_ts.md +++ b/static/usage/v6/datetime/highlightedDates/callback/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { highlightedDates = (isoString) => { diff --git a/static/usage/v6/icon/basic/angular/example_component_ts.md b/static/usage/v6/icon/basic/angular/example_component_ts.md index 0ca64333da3..c6a25a5dc11 100644 --- a/static/usage/v6/icon/basic/angular/example_component_ts.md +++ b/static/usage/v6/icon/basic/angular/example_component_ts.md @@ -5,10 +5,10 @@ import { addIcons } from 'ionicons'; import { logoIonic } from 'ionicons/icons'; @Component({ - selector: 'app-example', - templateUrl: 'example.component.html', - imports: [IonicModule], - standalone: true + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true, }) export class ExampleComponent { constructor() { @@ -20,4 +20,4 @@ export class ExampleComponent { addIcons({ logoIonic }); } } -``` \ No newline at end of file +``` diff --git a/static/usage/v6/icon/basic/index.md b/static/usage/v6/icon/basic/index.md index ec92154552f..a27247f3e3d 100644 --- a/static/usage/v6/icon/basic/index.md +++ b/static/usage/v6/icon/basic/index.md @@ -18,7 +18,7 @@ import angular_example_component_ts from './angular/example_component_ts.md'; 'src/app/example.component.html': angular_example_component_html, 'src/app/example.component.ts': angular_example_component_ts, }, - } + }, }} src="usage/v6/icon/basic/demo.html" /> diff --git a/static/usage/v6/infinite-scroll/basic/angular/example_component_ts.md b/static/usage/v6/infinite-scroll/basic/angular/example_component_ts.md index ebf6b9ed53b..934a39abea7 100644 --- a/static/usage/v6/infinite-scroll/basic/angular/example_component_ts.md +++ b/static/usage/v6/infinite-scroll/basic/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule, InfiniteScrollCustomEvent } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [CommonModule, IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent implements OnInit { items = []; diff --git a/static/usage/v6/infinite-scroll/custom-infinite-scroll-content/angular/example_component_ts.md b/static/usage/v6/infinite-scroll/custom-infinite-scroll-content/angular/example_component_ts.md index ea0f1eb9cae..40bb589e5bf 100644 --- a/static/usage/v6/infinite-scroll/custom-infinite-scroll-content/angular/example_component_ts.md +++ b/static/usage/v6/infinite-scroll/custom-infinite-scroll-content/angular/example_component_ts.md @@ -8,7 +8,7 @@ import { IonicModule, InfiniteScrollCustomEvent } from '@ionic/angular'; templateUrl: 'example.component.html', styleUrls: ['example.component.css'], imports: [CommonModule, IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent implements OnInit { items = []; diff --git a/static/usage/v6/infinite-scroll/infinite-scroll-content/angular/example_component_ts.md b/static/usage/v6/infinite-scroll/infinite-scroll-content/angular/example_component_ts.md index 542b7f41ba9..2ec1adfcafe 100644 --- a/static/usage/v6/infinite-scroll/infinite-scroll-content/angular/example_component_ts.md +++ b/static/usage/v6/infinite-scroll/infinite-scroll-content/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule, InfiniteScrollCustomEvent } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [CommonModule, IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent implements OnInit { items = []; diff --git a/static/usage/v6/input/filtering/angular/example_component_ts.md b/static/usage/v6/input/filtering/angular/example_component_ts.md index edfd287601c..8f083cadfe4 100644 --- a/static/usage/v6/input/filtering/angular/example_component_ts.md +++ b/static/usage/v6/input/filtering/angular/example_component_ts.md @@ -7,7 +7,7 @@ import type { IonInput } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { inputModel = ''; diff --git a/static/usage/v6/item/buttons/angular/example_component_ts.md b/static/usage/v6/item/buttons/angular/example_component_ts.md index 4a6b6830389..03e8f4a7d5f 100644 --- a/static/usage/v6/item/buttons/angular/example_component_ts.md +++ b/static/usage/v6/item/buttons/angular/example_component_ts.md @@ -5,10 +5,10 @@ import { addIcons } from 'ionicons'; import { home, star, navigate } from 'ionicons/icons'; @Component({ - selector: 'app-example', - templateUrl: 'example.component.html', - imports: [IonicModule], - standalone: true + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true, }) export class ExampleComponent { constructor() { @@ -20,4 +20,4 @@ export class ExampleComponent { addIcons({ home, star, navigate }); } } -``` \ No newline at end of file +``` diff --git a/static/usage/v6/item/buttons/index.md b/static/usage/v6/item/buttons/index.md index 09299818a97..63de2031246 100644 --- a/static/usage/v6/item/buttons/index.md +++ b/static/usage/v6/item/buttons/index.md @@ -17,7 +17,7 @@ import angular_example_component_ts from './angular/example_component_ts.md'; 'src/app/example.component.html': angular_example_component_html, 'src/app/example.component.ts': angular_example_component_ts, }, - } + }, }} src="usage/v6/item/buttons/demo.html" size="250px" diff --git a/static/usage/v6/item/counter/angular/example_component_ts.md b/static/usage/v6/item/counter/angular/example_component_ts.md index ae875052f85..9eb78aca216 100644 --- a/static/usage/v6/item/counter/angular/example_component_ts.md +++ b/static/usage/v6/item/counter/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { customCounterFormatter(inputLength: number, maxLength: number) { diff --git a/static/usage/v6/item/icons/angular/example_component_ts.md b/static/usage/v6/item/icons/angular/example_component_ts.md index fd72c48805d..a21d45a08a0 100644 --- a/static/usage/v6/item/icons/angular/example_component_ts.md +++ b/static/usage/v6/item/icons/angular/example_component_ts.md @@ -5,10 +5,10 @@ import { addIcons } from 'ionicons'; import { informationCircle, star } from 'ionicons/icons'; @Component({ - selector: 'app-example', - templateUrl: 'example.component.html', - imports: [IonicModule], - standalone: true + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true, }) export class ExampleComponent { constructor() { @@ -20,4 +20,4 @@ export class ExampleComponent { addIcons({ informationCircle, star }); } } -``` \ No newline at end of file +``` diff --git a/static/usage/v6/item/icons/index.md b/static/usage/v6/item/icons/index.md index 92c2fdc5f3e..f4b1f4c15cc 100644 --- a/static/usage/v6/item/icons/index.md +++ b/static/usage/v6/item/icons/index.md @@ -17,7 +17,7 @@ import angular_example_component_ts from './angular/example_component_ts.md'; 'src/app/example.component.html': angular_example_component_html, 'src/app/example.component.ts': angular_example_component_ts, }, - } + }, }} src="usage/v6/item/icons/demo.html" size="250px" diff --git a/static/usage/v6/item/lines/angular/example_component_ts.md b/static/usage/v6/item/lines/angular/example_component_ts.md index 7322fe3faae..91fbb1dde73 100644 --- a/static/usage/v6/item/lines/angular/example_component_ts.md +++ b/static/usage/v6/item/lines/angular/example_component_ts.md @@ -5,10 +5,10 @@ import { addIcons } from 'ionicons'; import { star, informationCircle } from 'ionicons/icons'; @Component({ - selector: 'app-example', - templateUrl: 'example.component.html', - imports: [IonicModule], - standalone: true + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true, }) export class ExampleComponent { constructor() { @@ -20,4 +20,4 @@ export class ExampleComponent { addIcons({ star, informationCircle }); } } -``` \ No newline at end of file +``` diff --git a/static/usage/v6/item/lines/index.md b/static/usage/v6/item/lines/index.md index 5d7f93525ae..c676c68e29e 100644 --- a/static/usage/v6/item/lines/index.md +++ b/static/usage/v6/item/lines/index.md @@ -17,7 +17,7 @@ import angular_example_component_ts from './angular/example_component_ts.md'; 'src/app/example.component.html': angular_example_component_html, 'src/app/example.component.ts': angular_example_component_ts, }, - } + }, }} src="usage/v6/item/lines/demo.html" size="medium" diff --git a/static/usage/v6/loading/controller/angular/example_component_ts.md b/static/usage/v6/loading/controller/angular/example_component_ts.md index 38ffd0010e4..71f74d8ae87 100644 --- a/static/usage/v6/loading/controller/angular/example_component_ts.md +++ b/static/usage/v6/loading/controller/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule, LoadingController } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { constructor(private loadingCtrl: LoadingController) {} diff --git a/static/usage/v6/loading/spinners/angular/example_component_ts.md b/static/usage/v6/loading/spinners/angular/example_component_ts.md index ba83143f18d..709a0271ab4 100644 --- a/static/usage/v6/loading/spinners/angular/example_component_ts.md +++ b/static/usage/v6/loading/spinners/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule, LoadingController } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { constructor(private loadingCtrl: LoadingController) {} diff --git a/static/usage/v6/loading/theming/angular/example_component_ts.md b/static/usage/v6/loading/theming/angular/example_component_ts.md index 30bf2c4c8e0..2a09a263895 100644 --- a/static/usage/v6/loading/theming/angular/example_component_ts.md +++ b/static/usage/v6/loading/theming/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule, LoadingController } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { constructor(private loadingCtrl: LoadingController) {} diff --git a/static/usage/v6/menu/type/angular/example_component_ts.md b/static/usage/v6/menu/type/angular/example_component_ts.md index 1950bbb5e86..92b2db0db56 100644 --- a/static/usage/v6/menu/type/angular/example_component_ts.md +++ b/static/usage/v6/menu/type/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [FormsModule, IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { menuType: string = 'overlay'; diff --git a/static/usage/v6/modal/can-dismiss/boolean/angular/example_component_ts.md b/static/usage/v6/modal/can-dismiss/boolean/angular/example_component_ts.md index 88be5262118..be3736f5953 100644 --- a/static/usage/v6/modal/can-dismiss/boolean/angular/example_component_ts.md +++ b/static/usage/v6/modal/can-dismiss/boolean/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule, CheckboxCustomEvent } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { canDismiss = false; diff --git a/static/usage/v6/modal/can-dismiss/function/angular/example_component_ts.md b/static/usage/v6/modal/can-dismiss/function/angular/example_component_ts.md index 93cc0c51c83..be1dbbdeab2 100644 --- a/static/usage/v6/modal/can-dismiss/function/angular/example_component_ts.md +++ b/static/usage/v6/modal/can-dismiss/function/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule, ActionSheetController } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { presentingElement = undefined; diff --git a/static/usage/v6/modal/can-dismiss/prevent-swipe-to-close/angular/example_component_ts.md b/static/usage/v6/modal/can-dismiss/prevent-swipe-to-close/angular/example_component_ts.md index 2721c21e79f..9f63c97689f 100644 --- a/static/usage/v6/modal/can-dismiss/prevent-swipe-to-close/angular/example_component_ts.md +++ b/static/usage/v6/modal/can-dismiss/prevent-swipe-to-close/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { async canDismiss(data?: any, role?: string) { diff --git a/static/usage/v6/modal/card/basic/angular/example_component_ts.md b/static/usage/v6/modal/card/basic/angular/example_component_ts.md index 3fff7fde680..db193258411 100644 --- a/static/usage/v6/modal/card/basic/angular/example_component_ts.md +++ b/static/usage/v6/modal/card/basic/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { // Typically referenced to your ion-router-outlet diff --git a/static/usage/v6/modal/controller/angular/example_component_ts.md b/static/usage/v6/modal/controller/angular/example_component_ts.md index 36e27e8ee33..f5f8f036b43 100644 --- a/static/usage/v6/modal/controller/angular/example_component_ts.md +++ b/static/usage/v6/modal/controller/angular/example_component_ts.md @@ -8,7 +8,7 @@ import { ModalExampleComponent } from './modal-example.component'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { message = 'This modal example uses the modalController to present and dismiss modals.'; diff --git a/static/usage/v6/modal/controller/angular/modal-example_component_ts.md b/static/usage/v6/modal/controller/angular/modal-example_component_ts.md index c01da56515b..95e82b92d37 100644 --- a/static/usage/v6/modal/controller/angular/modal-example_component_ts.md +++ b/static/usage/v6/modal/controller/angular/modal-example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule, ModalController } from '@ionic/angular'; selector: 'app-modal-example', templateUrl: 'modal-example.component.html', imports: [FormsModule, IonicModule], - standalone: true + standalone: true, }) export class ModalExampleComponent { name: string; diff --git a/static/usage/v6/modal/inline/basic/angular/example_component_ts.md b/static/usage/v6/modal/inline/basic/angular/example_component_ts.md index 8a756a79d36..df4455acb0e 100644 --- a/static/usage/v6/modal/inline/basic/angular/example_component_ts.md +++ b/static/usage/v6/modal/inline/basic/angular/example_component_ts.md @@ -8,7 +8,7 @@ import { OverlayEventDetail } from '@ionic/core/components'; selector: 'app-example', templateUrl: 'example.component.html', imports: [FormsModule, IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { @ViewChild(IonModal) modal: IonModal; diff --git a/static/usage/v6/modal/inline/is-open/angular/example_component_ts.md b/static/usage/v6/modal/inline/is-open/angular/example_component_ts.md index fb4be0a7328..97d3759e62d 100644 --- a/static/usage/v6/modal/inline/is-open/angular/example_component_ts.md +++ b/static/usage/v6/modal/inline/is-open/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { isModalOpen = false; diff --git a/static/usage/v6/modal/sheet/background-content/angular/example_component_ts.md b/static/usage/v6/modal/sheet/background-content/angular/example_component_ts.md index 8473fe29d8a..06f99831b44 100644 --- a/static/usage/v6/modal/sheet/background-content/angular/example_component_ts.md +++ b/static/usage/v6/modal/sheet/background-content/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule } from '@ionic/angular'; templateUrl: 'example.component.html', styleUrls: ['example.component.css'], imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { count = 0; diff --git a/static/usage/v6/modal/styling/animations/angular/example_component_ts.md b/static/usage/v6/modal/styling/animations/angular/example_component_ts.md index 95789450895..539abae59e1 100644 --- a/static/usage/v6/modal/styling/animations/angular/example_component_ts.md +++ b/static/usage/v6/modal/styling/animations/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule, AnimationController } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { constructor(private animationCtrl: AnimationController) {} diff --git a/static/usage/v6/nav/nav-link/angular/example_component_ts.md b/static/usage/v6/nav/nav-link/angular/example_component_ts.md index 370b2ed24e1..9f9e53a29f6 100644 --- a/static/usage/v6/nav/nav-link/angular/example_component_ts.md +++ b/static/usage/v6/nav/nav-link/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { PageOneComponent } from './page-one.component'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { component = PageOneComponent; diff --git a/static/usage/v6/nav/nav-link/angular/page_one_component_ts.md b/static/usage/v6/nav/nav-link/angular/page_one_component_ts.md index 3b6dd80abc4..5e4f0c982a5 100644 --- a/static/usage/v6/nav/nav-link/angular/page_one_component_ts.md +++ b/static/usage/v6/nav/nav-link/angular/page_one_component_ts.md @@ -19,7 +19,7 @@ import { PageTwoComponent } from './page-two.component'; `, imports: [IonicModule], - standalone: true + standalone: true, }) export class PageOneComponent { component = PageTwoComponent; diff --git a/static/usage/v6/nav/nav-link/angular/page_three_component_ts.md b/static/usage/v6/nav/nav-link/angular/page_three_component_ts.md index 025f44e021f..63df48e0f60 100644 --- a/static/usage/v6/nav/nav-link/angular/page_three_component_ts.md +++ b/static/usage/v6/nav/nav-link/angular/page_three_component_ts.md @@ -18,7 +18,7 @@ import { IonicModule } from '@ionic/angular'; `, imports: [IonicModule], - standalone: true + standalone: true, }) export class PageThreeComponent {} ``` diff --git a/static/usage/v6/nav/nav-link/angular/page_two_component_ts.md b/static/usage/v6/nav/nav-link/angular/page_two_component_ts.md index 35cbfd185fa..854e62b431a 100644 --- a/static/usage/v6/nav/nav-link/angular/page_two_component_ts.md +++ b/static/usage/v6/nav/nav-link/angular/page_two_component_ts.md @@ -24,7 +24,7 @@ import { PageThreeComponent } from './page-three.component'; `, imports: [IonicModule], - standalone: true + standalone: true, }) export class PageTwoComponent { component = PageThreeComponent; diff --git a/static/usage/v6/picker/multiple-column/angular/example_component_ts.md b/static/usage/v6/picker/multiple-column/angular/example_component_ts.md index 55b1da9dbd4..e8eb28ea20b 100644 --- a/static/usage/v6/picker/multiple-column/angular/example_component_ts.md +++ b/static/usage/v6/picker/multiple-column/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule, PickerController } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { constructor(private pickerCtrl: PickerController) {} diff --git a/static/usage/v6/picker/single-column/angular/example_component_ts.md b/static/usage/v6/picker/single-column/angular/example_component_ts.md index 91001efb481..6a5c043ff10 100644 --- a/static/usage/v6/picker/single-column/angular/example_component_ts.md +++ b/static/usage/v6/picker/single-column/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule, PickerController } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { constructor(private pickerCtrl: PickerController) {} diff --git a/static/usage/v6/popover/customization/positioning/angular/example_component_ts.md b/static/usage/v6/popover/customization/positioning/angular/example_component_ts.md index 1b3dae1494b..1f697a67f80 100644 --- a/static/usage/v6/popover/customization/positioning/angular/example_component_ts.md +++ b/static/usage/v6/popover/customization/positioning/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule } from '@ionic/angular'; templateUrl: 'example.component.html', styleUrls: ['example.component.css'], imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent {} ``` diff --git a/static/usage/v6/popover/presenting/controller/angular/example_component_ts.md b/static/usage/v6/popover/presenting/controller/angular/example_component_ts.md index bb01bd2c127..2a438b4d8df 100644 --- a/static/usage/v6/popover/presenting/controller/angular/example_component_ts.md +++ b/static/usage/v6/popover/presenting/controller/angular/example_component_ts.md @@ -9,7 +9,7 @@ import { PopoverComponent } from './popover.component'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { roleMsg = ''; diff --git a/static/usage/v6/popover/presenting/controller/angular/popover_component_ts.md b/static/usage/v6/popover/presenting/controller/angular/popover_component_ts.md index ce19e40b408..657697d0a88 100644 --- a/static/usage/v6/popover/presenting/controller/angular/popover_component_ts.md +++ b/static/usage/v6/popover/presenting/controller/angular/popover_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule, PopoverController } from '@ionic/angular'; selector: 'app-popover', templateUrl: 'popover.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class PopoverComponent {} ``` diff --git a/static/usage/v6/popover/presenting/inline-isopen/angular/example_component_ts.md b/static/usage/v6/popover/presenting/inline-isopen/angular/example_component_ts.md index 91fde982016..fb1970636cc 100644 --- a/static/usage/v6/popover/presenting/inline-isopen/angular/example_component_ts.md +++ b/static/usage/v6/popover/presenting/inline-isopen/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { @ViewChild('popover') popover; diff --git a/static/usage/v6/progress-bar/buffer/angular/example_component_ts.md b/static/usage/v6/progress-bar/buffer/angular/example_component_ts.md index 6b72f5b5232..e79bf07d2d2 100644 --- a/static/usage/v6/progress-bar/buffer/angular/example_component_ts.md +++ b/static/usage/v6/progress-bar/buffer/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule } from '@ionic/angular'; templateUrl: 'example.component.html', styleUrls: ['example.component.css'], imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { public buffer = 0.06; diff --git a/static/usage/v6/progress-bar/determinate/angular/example_component_ts.md b/static/usage/v6/progress-bar/determinate/angular/example_component_ts.md index 8a288deb400..27883f1af9c 100644 --- a/static/usage/v6/progress-bar/determinate/angular/example_component_ts.md +++ b/static/usage/v6/progress-bar/determinate/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule } from '@ionic/angular'; templateUrl: 'example.component.html', styleUrls: ['example.component.css'], imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { public progress = 0; diff --git a/static/usage/v6/range/ion-change-event/angular/example_component_ts.md b/static/usage/v6/range/ion-change-event/angular/example_component_ts.md index 5598aea1444..f86cf22cd98 100644 --- a/static/usage/v6/range/ion-change-event/angular/example_component_ts.md +++ b/static/usage/v6/range/ion-change-event/angular/example_component_ts.md @@ -8,7 +8,7 @@ import { RangeValue } from '@ionic/core'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { lastEmittedValue: RangeValue; diff --git a/static/usage/v6/range/ion-knob-move-event/angular/example_component_ts.md b/static/usage/v6/range/ion-knob-move-event/angular/example_component_ts.md index e9221985fbb..d983e1bdf5b 100644 --- a/static/usage/v6/range/ion-knob-move-event/angular/example_component_ts.md +++ b/static/usage/v6/range/ion-knob-move-event/angular/example_component_ts.md @@ -8,7 +8,7 @@ import { RangeValue } from '@ionic/core'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { moveStart: RangeValue; diff --git a/static/usage/v6/range/pins/angular/example_component_ts.md b/static/usage/v6/range/pins/angular/example_component_ts.md index 07226d94d76..f05934a2875 100644 --- a/static/usage/v6/range/pins/angular/example_component_ts.md +++ b/static/usage/v6/range/pins/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { pinFormatter(value: number) { diff --git a/static/usage/v6/refresher/advanced/angular/example_component_ts.md b/static/usage/v6/refresher/advanced/angular/example_component_ts.md index 6c7bd37d064..1f76c9f6632 100644 --- a/static/usage/v6/refresher/advanced/angular/example_component_ts.md +++ b/static/usage/v6/refresher/advanced/angular/example_component_ts.md @@ -10,10 +10,10 @@ import { ellipse } from 'ionicons/icons'; templateUrl: 'example.component.html', styleUrls: ['./example.component.css'], imports: [CommonModule, IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { - constructor() { + constructor() { /** * Any icons you want to use in your application * can be registered in app.component.ts and then diff --git a/static/usage/v6/refresher/basic/angular/example_component_ts.md b/static/usage/v6/refresher/basic/angular/example_component_ts.md index da645e02fcc..5c64eb4022e 100644 --- a/static/usage/v6/refresher/basic/angular/example_component_ts.md +++ b/static/usage/v6/refresher/basic/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { handleRefresh(event) { diff --git a/static/usage/v6/refresher/custom-content/angular/example_component_ts.md b/static/usage/v6/refresher/custom-content/angular/example_component_ts.md index da645e02fcc..5c64eb4022e 100644 --- a/static/usage/v6/refresher/custom-content/angular/example_component_ts.md +++ b/static/usage/v6/refresher/custom-content/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { handleRefresh(event) { diff --git a/static/usage/v6/refresher/custom-scroll-target/angular/example_component_ts.md b/static/usage/v6/refresher/custom-scroll-target/angular/example_component_ts.md index c2d3fc6797e..c9b0974c621 100644 --- a/static/usage/v6/refresher/custom-scroll-target/angular/example_component_ts.md +++ b/static/usage/v6/refresher/custom-scroll-target/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule } from '@ionic/angular'; templateUrl: 'example.component.html', styleUrls: ['example.component.css'], imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { handleRefresh(event) { diff --git a/static/usage/v6/refresher/pull-properties/angular/example_component_ts.md b/static/usage/v6/refresher/pull-properties/angular/example_component_ts.md index da645e02fcc..5c64eb4022e 100644 --- a/static/usage/v6/refresher/pull-properties/angular/example_component_ts.md +++ b/static/usage/v6/refresher/pull-properties/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { handleRefresh(event) { diff --git a/static/usage/v6/reorder/basic/angular/example_component_ts.md b/static/usage/v6/reorder/basic/angular/example_component_ts.md index bba98788a9a..a92743c0a9f 100644 --- a/static/usage/v6/reorder/basic/angular/example_component_ts.md +++ b/static/usage/v6/reorder/basic/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule, ItemReorderEventDetail } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { handleReorder(ev: CustomEvent) { diff --git a/static/usage/v6/reorder/custom-icon/angular/example_component_ts.md b/static/usage/v6/reorder/custom-icon/angular/example_component_ts.md index c8d1d3d7d7f..9373dc6e267 100644 --- a/static/usage/v6/reorder/custom-icon/angular/example_component_ts.md +++ b/static/usage/v6/reorder/custom-icon/angular/example_component_ts.md @@ -2,13 +2,13 @@ import { Component } from '@angular/core'; import { IonicModule, ItemReorderEventDetail } from '@ionic/angular'; import { addIcons } from 'ionicons'; -import { pizza } from 'ionicons/icons' +import { pizza } from 'ionicons/icons'; @Component({ selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { constructor() { diff --git a/static/usage/v6/reorder/custom-scroll-target/angular/example_component_ts.md b/static/usage/v6/reorder/custom-scroll-target/angular/example_component_ts.md index d85638526b6..a785fccd603 100644 --- a/static/usage/v6/reorder/custom-scroll-target/angular/example_component_ts.md +++ b/static/usage/v6/reorder/custom-scroll-target/angular/example_component_ts.md @@ -8,7 +8,7 @@ import { IonicModule, ItemReorderEventDetail } from '@ionic/angular'; templateUrl: 'example.component.html', styleUrls: ['./example.component.css'], imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { handleReorder(ev: CustomEvent) { diff --git a/static/usage/v6/reorder/toggling-disabled/angular/example_component_ts.md b/static/usage/v6/reorder/toggling-disabled/angular/example_component_ts.md index 82b984f02af..e4604f61e72 100644 --- a/static/usage/v6/reorder/toggling-disabled/angular/example_component_ts.md +++ b/static/usage/v6/reorder/toggling-disabled/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule, ItemReorderEventDetail } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { public isDisabled = true; diff --git a/static/usage/v6/reorder/updating-data/angular/example_component_ts.md b/static/usage/v6/reorder/updating-data/angular/example_component_ts.md index 70e52c80f30..de676e5e783 100644 --- a/static/usage/v6/reorder/updating-data/angular/example_component_ts.md +++ b/static/usage/v6/reorder/updating-data/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule, ItemReorderEventDetail } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [CommonModule, IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { items = [1, 2, 3, 4, 5]; diff --git a/static/usage/v6/reorder/wrapper/angular/example_component_ts.md b/static/usage/v6/reorder/wrapper/angular/example_component_ts.md index bba98788a9a..a92743c0a9f 100644 --- a/static/usage/v6/reorder/wrapper/angular/example_component_ts.md +++ b/static/usage/v6/reorder/wrapper/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule, ItemReorderEventDetail } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { handleReorder(ev: CustomEvent) { diff --git a/static/usage/v6/searchbar/cancel-button/angular/example_component_ts.md b/static/usage/v6/searchbar/cancel-button/angular/example_component_ts.md index 15d1ac8b9b8..b396d9b6408 100644 --- a/static/usage/v6/searchbar/cancel-button/angular/example_component_ts.md +++ b/static/usage/v6/searchbar/cancel-button/angular/example_component_ts.md @@ -5,10 +5,10 @@ import { addIcons } from 'ionicons'; import { trash } from 'ionicons/icons'; @Component({ - selector: 'app-example', - templateUrl: 'example.component.html', - imports: [IonicModule], - standalone: true + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true, }) export class ExampleComponent { constructor() { diff --git a/static/usage/v6/searchbar/cancel-button/index.md b/static/usage/v6/searchbar/cancel-button/index.md index 514ad222d50..8d0c31441c6 100644 --- a/static/usage/v6/searchbar/cancel-button/index.md +++ b/static/usage/v6/searchbar/cancel-button/index.md @@ -17,7 +17,7 @@ import angular_example_component_ts from './angular/example_component_ts.md'; 'src/app/example.component.html': angular_example_component_html, 'src/app/example.component.ts': angular_example_component_ts, }, - } + }, }} src="usage/v6/searchbar/cancel-button/demo.html" size="250px" diff --git a/static/usage/v6/searchbar/clear-button/angular/example_component_ts.md b/static/usage/v6/searchbar/clear-button/angular/example_component_ts.md index de602d23876..bf918edf656 100644 --- a/static/usage/v6/searchbar/clear-button/angular/example_component_ts.md +++ b/static/usage/v6/searchbar/clear-button/angular/example_component_ts.md @@ -5,10 +5,10 @@ import { addIcons } from 'ionicons'; import { trashBin } from 'ionicons/icons'; @Component({ - selector: 'app-example', - templateUrl: 'example.component.html', - imports: [IonicModule], - standalone: true + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true, }) export class ExampleComponent { constructor() { diff --git a/static/usage/v6/searchbar/clear-button/index.md b/static/usage/v6/searchbar/clear-button/index.md index 1aa1969a5e0..3cf16532cca 100644 --- a/static/usage/v6/searchbar/clear-button/index.md +++ b/static/usage/v6/searchbar/clear-button/index.md @@ -17,7 +17,7 @@ import angular_example_component_ts from './angular/example_component_ts.md'; 'src/app/example.component.html': angular_example_component_html, 'src/app/example.component.ts': angular_example_component_ts, }, - } + }, }} src="usage/v6/searchbar/clear-button/demo.html" size="250px" diff --git a/static/usage/v6/searchbar/debounce/angular/example_component_ts.md b/static/usage/v6/searchbar/debounce/angular/example_component_ts.md index f0b1bc3058a..43f4f0e1b8c 100644 --- a/static/usage/v6/searchbar/debounce/angular/example_component_ts.md +++ b/static/usage/v6/searchbar/debounce/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [CommonModule, IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { public data = [ diff --git a/static/usage/v6/searchbar/search-icon/angular/example_component_ts.md b/static/usage/v6/searchbar/search-icon/angular/example_component_ts.md index ca4327f025d..f5d54536679 100644 --- a/static/usage/v6/searchbar/search-icon/angular/example_component_ts.md +++ b/static/usage/v6/searchbar/search-icon/angular/example_component_ts.md @@ -5,10 +5,10 @@ import { addIcons } from 'ionicons'; import { searchCircle } from 'ionicons/icons'; @Component({ - selector: 'app-example', - templateUrl: 'example.component.html', - imports: [IonicModule], - standalone: true + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true, }) export class ExampleComponent { constructor() { diff --git a/static/usage/v6/searchbar/search-icon/index.md b/static/usage/v6/searchbar/search-icon/index.md index e7dbf671773..1fb24e3367a 100644 --- a/static/usage/v6/searchbar/search-icon/index.md +++ b/static/usage/v6/searchbar/search-icon/index.md @@ -18,7 +18,7 @@ import angular_example_component_ts from './angular/example_component_ts.md'; 'src/app/example.component.html': angular_example_component_html, 'src/app/example.component.ts': angular_example_component_ts, }, - } + }, }} src="usage/v6/searchbar/search-icon/demo.html" /> diff --git a/static/usage/v6/segment-button/layout/angular/example_component_ts.md b/static/usage/v6/segment-button/layout/angular/example_component_ts.md index d9efe5ebb6b..19b0271e7f9 100644 --- a/static/usage/v6/segment-button/layout/angular/example_component_ts.md +++ b/static/usage/v6/segment-button/layout/angular/example_component_ts.md @@ -8,7 +8,7 @@ import { call, heart, pin } from 'ionicons/icons'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { constructor() { @@ -20,4 +20,4 @@ export class ExampleComponent { addIcons({ call, heart, pin }); } } -``` \ No newline at end of file +``` diff --git a/static/usage/v6/segment-button/layout/index.md b/static/usage/v6/segment-button/layout/index.md index 7667f27685c..2d95cde28f3 100644 --- a/static/usage/v6/segment-button/layout/index.md +++ b/static/usage/v6/segment-button/layout/index.md @@ -17,7 +17,7 @@ import angular_example_component_ts from './angular/example_component_ts.md'; 'src/app/example.component.html': angular_example_component_html, 'src/app/example.component.ts': angular_example_component_ts, }, - } + }, }} src="usage/v6/segment-button/layout/demo.html" size="medium" diff --git a/static/usage/v6/segment/scrollable/angular/example_component_ts.md b/static/usage/v6/segment/scrollable/angular/example_component_ts.md index cc1db4d8b9e..cc606fc1f10 100644 --- a/static/usage/v6/segment/scrollable/angular/example_component_ts.md +++ b/static/usage/v6/segment/scrollable/angular/example_component_ts.md @@ -5,10 +5,10 @@ import { addIcons } from 'ionicons'; import { home, heart, pin, star, call, globe, basket, barbell, trash, person } from 'ionicons/icons'; @Component({ - selector: 'app-example', - templateUrl: 'example.component.html', - imports: [IonicModule], - standalone: true + selector: 'app-example', + templateUrl: 'example.component.html', + imports: [IonicModule], + standalone: true, }) export class ExampleComponent { constructor() { @@ -20,4 +20,4 @@ export class ExampleComponent { addIcons({ home, heart, pin, star, call, globe, basket, barbell, trash, person }); } } -``` \ No newline at end of file +``` diff --git a/static/usage/v6/segment/scrollable/index.md b/static/usage/v6/segment/scrollable/index.md index 99fb5dd2b5b..f5079b1d546 100644 --- a/static/usage/v6/segment/scrollable/index.md +++ b/static/usage/v6/segment/scrollable/index.md @@ -17,7 +17,7 @@ import angular_example_component_ts from './angular/example_component_ts.md'; 'src/app/example.component.html': angular_example_component_html, 'src/app/example.component.ts': angular_example_component_ts, }, - } + }, }} src="usage/v6/segment/scrollable/demo.html" size="100px" diff --git a/static/usage/v6/select/basic/responding-to-interaction/angular/example_component_ts.md b/static/usage/v6/select/basic/responding-to-interaction/angular/example_component_ts.md index bb9cd83a61d..d0d524be6ff 100644 --- a/static/usage/v6/select/basic/responding-to-interaction/angular/example_component_ts.md +++ b/static/usage/v6/select/basic/responding-to-interaction/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [CommonModule, IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { logs: string[] = []; diff --git a/static/usage/v6/select/customization/interface-options/angular/example_component_ts.md b/static/usage/v6/select/customization/interface-options/angular/example_component_ts.md index 182ba06c748..78596828750 100644 --- a/static/usage/v6/select/customization/interface-options/angular/example_component_ts.md +++ b/static/usage/v6/select/customization/interface-options/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { customAlertOptions = { diff --git a/static/usage/v6/select/customization/styling-select/angular/example_component_ts.md b/static/usage/v6/select/customization/styling-select/angular/example_component_ts.md index 1b3dae1494b..1f697a67f80 100644 --- a/static/usage/v6/select/customization/styling-select/angular/example_component_ts.md +++ b/static/usage/v6/select/customization/styling-select/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule } from '@ionic/angular'; templateUrl: 'example.component.html', styleUrls: ['example.component.css'], imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent {} ``` diff --git a/static/usage/v6/select/objects-as-values/multiple-selection/angular/example_component_ts.md b/static/usage/v6/select/objects-as-values/multiple-selection/angular/example_component_ts.md index b40026fbcc5..8bdabd81816 100644 --- a/static/usage/v6/select/objects-as-values/multiple-selection/angular/example_component_ts.md +++ b/static/usage/v6/select/objects-as-values/multiple-selection/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [CommonModule, IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { currentFood = undefined; diff --git a/static/usage/v6/select/objects-as-values/using-comparewith/angular/example_component_ts.md b/static/usage/v6/select/objects-as-values/using-comparewith/angular/example_component_ts.md index c4702a09f86..7b44b96fdd3 100644 --- a/static/usage/v6/select/objects-as-values/using-comparewith/angular/example_component_ts.md +++ b/static/usage/v6/select/objects-as-values/using-comparewith/angular/example_component_ts.md @@ -7,7 +7,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [CommonModule, IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { currentFood = undefined; diff --git a/static/usage/v6/select/typeahead/angular/example_component_ts.md b/static/usage/v6/select/typeahead/angular/example_component_ts.md index 261d85387f2..ed634b81620 100644 --- a/static/usage/v6/select/typeahead/angular/example_component_ts.md +++ b/static/usage/v6/select/typeahead/angular/example_component_ts.md @@ -8,7 +8,7 @@ import { Item } from './types'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule, TypeaheadComponent], - standalone: true + standalone: true, }) export class ExampleComponent { @ViewChild('modal', { static: true }) modal!: IonModal; diff --git a/static/usage/v6/select/typeahead/angular/modal-example_component_ts.md b/static/usage/v6/select/typeahead/angular/modal-example_component_ts.md index 7fa35713398..9a3e5674c17 100644 --- a/static/usage/v6/select/typeahead/angular/modal-example_component_ts.md +++ b/static/usage/v6/select/typeahead/angular/modal-example_component_ts.md @@ -8,7 +8,7 @@ import { Item } from './types'; selector: 'app-typeahead', templateUrl: 'typeahead.component.html', imports: [CommonModule, IonicModule], - standalone: true + standalone: true, }) export class TypeaheadComponent implements OnInit { @Input() items: Item[] = []; diff --git a/static/usage/v6/skeleton-text/basic/angular/example_component_ts.md b/static/usage/v6/skeleton-text/basic/angular/example_component_ts.md index 40d968506a8..4a23226e859 100644 --- a/static/usage/v6/skeleton-text/basic/angular/example_component_ts.md +++ b/static/usage/v6/skeleton-text/basic/angular/example_component_ts.md @@ -8,7 +8,7 @@ import { IonicModule } from '@ionic/angular'; templateUrl: 'example.component.html', styleUrls: ['example.component.css'], imports: [CommonModule, IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { public loaded = false; diff --git a/static/usage/v6/tabs/router/angular/app_routes_ts.md b/static/usage/v6/tabs/router/angular/app_routes_ts.md index 12354f4efa7..55cd79f38f3 100644 --- a/static/usage/v6/tabs/router/angular/app_routes_ts.md +++ b/static/usage/v6/tabs/router/angular/app_routes_ts.md @@ -27,7 +27,7 @@ export const routes: Routes = [ redirectTo: '/home', pathMatch: 'full', }, - ] + ], }, ]; -``` \ No newline at end of file +``` diff --git a/static/usage/v6/tabs/router/angular/example_component_html.md b/static/usage/v6/tabs/router/angular/example_component_html.md index 50736b8d969..1600255c79f 100644 --- a/static/usage/v6/tabs/router/angular/example_component_html.md +++ b/static/usage/v6/tabs/router/angular/example_component_html.md @@ -1,5 +1,5 @@ ```html - + diff --git a/static/usage/v6/tabs/router/angular/example_component_ts.md b/static/usage/v6/tabs/router/angular/example_component_ts.md index 6c41e6987d3..5050049f431 100644 --- a/static/usage/v6/tabs/router/angular/example_component_ts.md +++ b/static/usage/v6/tabs/router/angular/example_component_ts.md @@ -10,7 +10,7 @@ import { playCircle, library, radio, search } from 'ionicons/icons'; selector: 'app-example', templateUrl: 'example.component.html', imports: [CommonModule, IonicModule, RouterModule], - standalone: true + standalone: true, }) export class ExampleComponent { constructor() { @@ -22,4 +22,4 @@ export class ExampleComponent { addIcons({ playCircle, library, radio, search }); } } -``` \ No newline at end of file +``` diff --git a/static/usage/v6/tabs/router/angular/home_page_component_ts.md b/static/usage/v6/tabs/router/angular/home_page_component_ts.md index 72d45fbf0b6..e49329ee43c 100644 --- a/static/usage/v6/tabs/router/angular/home_page_component_ts.md +++ b/static/usage/v6/tabs/router/angular/home_page_component_ts.md @@ -6,8 +6,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-home-page', templateUrl: './home-page.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class HomePageComponent {} - ``` diff --git a/static/usage/v6/tabs/router/angular/library_page_component_ts.md b/static/usage/v6/tabs/router/angular/library_page_component_ts.md index e98a5767193..2af4a195441 100644 --- a/static/usage/v6/tabs/router/angular/library_page_component_ts.md +++ b/static/usage/v6/tabs/router/angular/library_page_component_ts.md @@ -6,8 +6,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-library-page', templateUrl: './library-page.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class LibraryPageComponent {} - ``` diff --git a/static/usage/v6/tabs/router/angular/radio_page_component_ts.md b/static/usage/v6/tabs/router/angular/radio_page_component_ts.md index 0a0e41154be..14a2e0cb1f1 100644 --- a/static/usage/v6/tabs/router/angular/radio_page_component_ts.md +++ b/static/usage/v6/tabs/router/angular/radio_page_component_ts.md @@ -6,8 +6,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-radio-page', templateUrl: './radio-page.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class RadioPageComponent {} - ``` diff --git a/static/usage/v6/tabs/router/angular/search_page_component_ts.md b/static/usage/v6/tabs/router/angular/search_page_component_ts.md index 1c4f7e91650..f3f06f35c3b 100644 --- a/static/usage/v6/tabs/router/angular/search_page_component_ts.md +++ b/static/usage/v6/tabs/router/angular/search_page_component_ts.md @@ -6,8 +6,7 @@ import { IonicModule } from '@ionic/angular'; selector: 'app-search-page', templateUrl: './search-page.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class SearchPageComponent {} - ``` diff --git a/static/usage/v6/tabs/router/index.md b/static/usage/v6/tabs/router/index.md index bd728e9f3df..dce11150a21 100644 --- a/static/usage/v6/tabs/router/index.md +++ b/static/usage/v6/tabs/router/index.md @@ -43,8 +43,7 @@ import react_search_page_tsx from './react/search_page_tsx.md'; files: { 'src/app/example.component.html': angular_example_component_html, 'src/app/example.component.ts': angular_example_component_ts, - 'src/app/app.routes.ts': - app_routes_ts, + 'src/app/app.routes.ts': app_routes_ts, 'src/app/home/home-page.component.ts': angular_home_page_component_ts, 'src/app/home/home-page.component.html': angular_home_page_component_html, 'src/global.css': angular_global_css, diff --git a/static/usage/v6/text/basic/angular/example_component_ts.md b/static/usage/v6/text/basic/angular/example_component_ts.md index 6ed4de437b4..21415b248db 100644 --- a/static/usage/v6/text/basic/angular/example_component_ts.md +++ b/static/usage/v6/text/basic/angular/example_component_ts.md @@ -8,7 +8,7 @@ import { warning } from 'ionicons/icons'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { constructor() { diff --git a/static/usage/v6/text/basic/index.md b/static/usage/v6/text/basic/index.md index 24f162c246d..b14a61e304e 100644 --- a/static/usage/v6/text/basic/index.md +++ b/static/usage/v6/text/basic/index.md @@ -19,4 +19,5 @@ import angular_example_component_ts from './angular/example_component_ts.md'; }, }, }} -src="usage/v6/text/basic/demo.html" /> + src="usage/v6/text/basic/demo.html" +/> diff --git a/static/usage/v6/toast/buttons/angular/example_component_ts.md b/static/usage/v6/toast/buttons/angular/example_component_ts.md index 3ecbef74070..bea8016b6a5 100644 --- a/static/usage/v6/toast/buttons/angular/example_component_ts.md +++ b/static/usage/v6/toast/buttons/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule, ToastController } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { handlerMessage = ''; diff --git a/static/usage/v6/toast/icon/angular/example_component_ts.md b/static/usage/v6/toast/icon/angular/example_component_ts.md index 76fb647250e..fb37272cbdd 100644 --- a/static/usage/v6/toast/icon/angular/example_component_ts.md +++ b/static/usage/v6/toast/icon/angular/example_component_ts.md @@ -8,7 +8,7 @@ import { globe } from 'ionicons/icons'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { constructor(private toastController: ToastController) { diff --git a/static/usage/v6/toast/layout/angular/example_component_ts.md b/static/usage/v6/toast/layout/angular/example_component_ts.md index c8193f8d7f4..3ccb8ba19ea 100644 --- a/static/usage/v6/toast/layout/angular/example_component_ts.md +++ b/static/usage/v6/toast/layout/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule, ToastController, ToastOptions } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { constructor(private toastController: ToastController) {} diff --git a/static/usage/v6/toast/presenting/controller/angular/example_component_ts.md b/static/usage/v6/toast/presenting/controller/angular/example_component_ts.md index 7ca690867d4..95cfc01ba70 100644 --- a/static/usage/v6/toast/presenting/controller/angular/example_component_ts.md +++ b/static/usage/v6/toast/presenting/controller/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule, ToastController } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { constructor(private toastController: ToastController) {} diff --git a/static/usage/v6/toast/theming/angular/example_component_ts.md b/static/usage/v6/toast/theming/angular/example_component_ts.md index e537ed3839c..254785b7736 100644 --- a/static/usage/v6/toast/theming/angular/example_component_ts.md +++ b/static/usage/v6/toast/theming/angular/example_component_ts.md @@ -6,7 +6,7 @@ import { IonicModule, ToastController } from '@ionic/angular'; selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) export class ExampleComponent { constructor(private toastController: ToastController) {} diff --git a/static/usage/v6/toolbar/buttons/angular/example_component_ts.md b/static/usage/v6/toolbar/buttons/angular/example_component_ts.md index 34d9c7d9c6a..f962e4d49ce 100644 --- a/static/usage/v6/toolbar/buttons/angular/example_component_ts.md +++ b/static/usage/v6/toolbar/buttons/angular/example_component_ts.md @@ -8,9 +8,9 @@ import { personCircle, search, ellipsisHorizontal, ellipsisVertical, helpCircle, selector: 'app-example', templateUrl: 'example.component.html', imports: [IonicModule], - standalone: true + standalone: true, }) -export class ExampleComponent{ +export class ExampleComponent { constructor() { /** * Any icons you want to use in your application @@ -20,4 +20,4 @@ export class ExampleComponent{ addIcons({ personCircle, search, ellipsisHorizontal, ellipsisVertical, helpCircle, star, create }); } } -``` \ No newline at end of file +``` diff --git a/static/usage/v6/toolbar/buttons/index.md b/static/usage/v6/toolbar/buttons/index.md index 2423b16df41..52f368cf5ff 100644 --- a/static/usage/v6/toolbar/buttons/index.md +++ b/static/usage/v6/toolbar/buttons/index.md @@ -17,7 +17,7 @@ import angular_example_component_ts from './angular/example_component_ts.md'; 'src/app/example.component.html': angular_example_component_html, 'src/app/example.component.ts': angular_example_component_ts, }, - } + }, }} src="usage/v6/toolbar/buttons/demo.html" size="500px" From 362e902b488a4ac51d1a19d709424bc7e1fb7b55 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Mon, 28 Jul 2025 13:59:53 -0500 Subject: [PATCH 037/129] docs(v6): update JavaScript example for icon --- static/usage/v6/icon/basic/index.md | 11 +++++-- .../index_html.md} | 0 .../v6/icon/basic/javascript/index_ts.md | 29 +++++++++++++++++++ .../version-v6/developer-resources/books.md | 2 +- versions.json | 3 +- versionsArchived.json | 1 - 6 files changed, 41 insertions(+), 5 deletions(-) rename static/usage/v6/icon/basic/{javascript.md => javascript/index_html.md} (100%) create mode 100644 static/usage/v6/icon/basic/javascript/index_ts.md diff --git a/static/usage/v6/icon/basic/index.md b/static/usage/v6/icon/basic/index.md index a27247f3e3d..aa8ae0b3b47 100644 --- a/static/usage/v6/icon/basic/index.md +++ b/static/usage/v6/icon/basic/index.md @@ -1,6 +1,8 @@ import Playground from '@site/src/components/global/Playground'; -import javascript from './javascript.md'; +import javascript_index_html from './javascript/index_html.md'; +import javascript_index_ts from './javascript/index_ts.md'; + import react from './react.md'; import vue from './vue.md'; import angular_example_component_html from './angular/example_component_html.md'; @@ -10,7 +12,12 @@ import angular_example_component_ts from './angular/example_component_ts.md'; version="6" size="xsmall" code={{ - javascript, + javascript: { + files: { + 'index.html': javascript_index_html, + 'index.ts': javascript_index_ts, + }, + }, react, vue, angular: { diff --git a/static/usage/v6/icon/basic/javascript.md b/static/usage/v6/icon/basic/javascript/index_html.md similarity index 100% rename from static/usage/v6/icon/basic/javascript.md rename to static/usage/v6/icon/basic/javascript/index_html.md diff --git a/static/usage/v6/icon/basic/javascript/index_ts.md b/static/usage/v6/icon/basic/javascript/index_ts.md new file mode 100644 index 00000000000..e31975b6f14 --- /dev/null +++ b/static/usage/v6/icon/basic/javascript/index_ts.md @@ -0,0 +1,29 @@ +```ts +import { defineCustomElements } from '@ionic/core/loader'; + +import { addIcons } from 'ionicons'; +import { logoIonic } from 'ionicons/icons'; + +/* Core CSS required for Ionic components to work properly */ +import '@ionic/core/css/core.css'; + +/* Basic CSS for apps built with Ionic */ +import '@ionic/core/css/normalize.css'; +import '@ionic/core/css/structure.css'; +import '@ionic/core/css/typography.css'; + +/* Optional CSS utils that can be commented out */ +import '@ionic/core/css/padding.css'; +import '@ionic/core/css/float-elements.css'; +import '@ionic/core/css/text-alignment.css'; +import '@ionic/core/css/text-transformation.css'; +import '@ionic/core/css/flex-utils.css'; +import '@ionic/core/css/display.css'; + +/* Theme variables */ +import './theme/variables.css'; + +addIcons({ logoIonic }); + +defineCustomElements(); +``` \ No newline at end of file diff --git a/versioned_docs/version-v6/developer-resources/books.md b/versioned_docs/version-v6/developer-resources/books.md index 1a51bc94e8f..4553ac800c3 100644 --- a/versioned_docs/version-v6/developer-resources/books.md +++ b/versioned_docs/version-v6/developer-resources/books.md @@ -6,7 +6,7 @@ Angular. Vue. React. Vanilla JavaScript. All of these tools can be used to creat -by [Paul Halliday](https:://developer.school) +by [Paul Halliday](https://developer.school) ### [Creating Ionic Applications with StencilJS](https://www.joshmorony.com/creating-ionic-applications-with-stencil-js/) - [Free Preview](https://cdn2.hubspot.net/hubfs/3776657/PREVIEW-Creating-Ionic-Apps-with-StencilJS.pdf) diff --git a/versions.json b/versions.json index 48698a4fdec..ed163ab5c09 100644 --- a/versions.json +++ b/versions.json @@ -1,3 +1,4 @@ [ - "v7" + "v7", + "v6" ] diff --git a/versionsArchived.json b/versionsArchived.json index 9d103a53775..56bd2d5bcb6 100644 --- a/versionsArchived.json +++ b/versionsArchived.json @@ -1,4 +1,3 @@ { - "v6": "https://ionic-docs-o31kiyk8l-ionic1.vercel.app/docs/v6", "v5": "https://ionic-docs-5utg8ms4c-ionic1.vercel.app/docs/v5" } From 3ef6fd8e1dfb80be636293392b6512c4f6bcc1ec Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Mon, 28 Jul 2025 14:13:47 -0500 Subject: [PATCH 038/129] docs(v6): update JavaScript example for accordion --- .../v6/accordion/customization/icons/index.md | 10 +++++-- .../index_html.md} | 0 .../icons/javascript/index_ts.md | 29 +++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) rename static/usage/v6/accordion/customization/icons/{javascript.md => javascript/index_html.md} (100%) create mode 100644 static/usage/v6/accordion/customization/icons/javascript/index_ts.md diff --git a/static/usage/v6/accordion/customization/icons/index.md b/static/usage/v6/accordion/customization/icons/index.md index b7668a6ee7c..86dfd7e51bf 100644 --- a/static/usage/v6/accordion/customization/icons/index.md +++ b/static/usage/v6/accordion/customization/icons/index.md @@ -1,6 +1,7 @@ import Playground from '@site/src/components/global/Playground'; -import javascript from './javascript.md'; +import javascript_index_html from './javascript/index_html.md'; +import javascript_index_ts from './javascript/index_ts.md'; import react from './react.md'; import vue from './vue.md'; import angular_example_component_html from './angular/example_component_html.md'; @@ -9,7 +10,12 @@ import angular_example_component_ts from './angular/example_component_ts.md'; Date: Mon, 28 Jul 2025 14:31:32 -0500 Subject: [PATCH 039/129] docs(v6): update JavaScript example for back-button --- static/usage/v6/back-button/custom/index.md | 10 +++++-- .../index_html.md} | 0 .../back-button/custom/javascript/index_ts.md | 29 +++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) rename static/usage/v6/back-button/custom/{javascript.md => javascript/index_html.md} (100%) create mode 100644 static/usage/v6/back-button/custom/javascript/index_ts.md diff --git a/static/usage/v6/back-button/custom/index.md b/static/usage/v6/back-button/custom/index.md index 69bde337fa3..eb31312d9fe 100644 --- a/static/usage/v6/back-button/custom/index.md +++ b/static/usage/v6/back-button/custom/index.md @@ -1,6 +1,7 @@ import Playground from '@site/src/components/global/Playground'; -import javascript from './javascript.md'; +import javascript_index_html from './javascript/index_html.md'; +import javascript_index_ts from './javascript/index_ts.md'; import angular_example_component_html from './angular/example_component_html.md'; import angular_example_component_ts from './angular/example_component_ts.md'; @@ -18,7 +19,12 @@ import vue_page_two from './vue/page_two_vue.md'; Date: Mon, 28 Jul 2025 14:47:10 -0500 Subject: [PATCH 040/129] docs(v6): update JavaScript examples for breadcrumbs --- .../icons/custom-separators/index.md | 10 ++++- .../index_html.md} | 0 .../custom-separators/javascript/index_ts.md | 29 +++++++++++++ .../breadcrumbs/icons/icons-on-items/index.md | 10 ++++- .../icons-on-items/javascript/index_html.md | 41 +++++++++++++++++++ .../icons-on-items/javascript/index_ts.md | 29 +++++++++++++ 6 files changed, 115 insertions(+), 4 deletions(-) rename static/usage/v6/breadcrumbs/icons/custom-separators/{javascript.md => javascript/index_html.md} (100%) create mode 100644 static/usage/v6/breadcrumbs/icons/custom-separators/javascript/index_ts.md create mode 100644 static/usage/v6/breadcrumbs/icons/icons-on-items/javascript/index_html.md create mode 100644 static/usage/v6/breadcrumbs/icons/icons-on-items/javascript/index_ts.md diff --git a/static/usage/v6/breadcrumbs/icons/custom-separators/index.md b/static/usage/v6/breadcrumbs/icons/custom-separators/index.md index 83c578d8742..10e4a52bea2 100644 --- a/static/usage/v6/breadcrumbs/icons/custom-separators/index.md +++ b/static/usage/v6/breadcrumbs/icons/custom-separators/index.md @@ -1,6 +1,7 @@ import Playground from '@site/src/components/global/Playground'; -import javascript from './javascript.md'; +import javascript_index_html from './javascript/index_html.md'; +import javascript_index_ts from './javascript/index_ts.md'; import react from './react.md'; import vue from './vue.md'; import angular_example_component_html from './angular/example_component_html.md'; @@ -9,7 +10,12 @@ import angular_example_component_ts from './angular/example_component_ts.md'; Icons at Start + + + + Home + + + + Electronics + + + + Cameras + + + + Film + + + +Icons at End + + + Home + + + + Electronics + + + + Cameras + + + + Film + + + +``` diff --git a/static/usage/v6/breadcrumbs/icons/icons-on-items/javascript/index_ts.md b/static/usage/v6/breadcrumbs/icons/icons-on-items/javascript/index_ts.md new file mode 100644 index 00000000000..17e173cd6d8 --- /dev/null +++ b/static/usage/v6/breadcrumbs/icons/icons-on-items/javascript/index_ts.md @@ -0,0 +1,29 @@ +```ts +import { defineCustomElements } from '@ionic/core/loader'; + +import { addIcons } from 'ionicons'; +import { home, flash, camera, film } from 'ionicons/icons'; + +/* Core CSS required for Ionic components to work properly */ +import '@ionic/core/css/core.css'; + +/* Basic CSS for apps built with Ionic */ +import '@ionic/core/css/normalize.css'; +import '@ionic/core/css/structure.css'; +import '@ionic/core/css/typography.css'; + +/* Optional CSS utils that can be commented out */ +import '@ionic/core/css/padding.css'; +import '@ionic/core/css/float-elements.css'; +import '@ionic/core/css/text-alignment.css'; +import '@ionic/core/css/text-transformation.css'; +import '@ionic/core/css/flex-utils.css'; +import '@ionic/core/css/display.css'; + +/* Theme variables */ +import './theme/variables.css'; + +addIcons({ home, flash, camera, film }); + +defineCustomElements(); +``` \ No newline at end of file From bf28ee7eedf785ca9fd582471ac0c840f9db0892 Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 30 Jul 2025 12:07:59 -0500 Subject: [PATCH 041/129] docs(v6): update JavaScript example for buttons --- static/usage/v6/buttons/types/index.md | 10 +++++-- .../index_html.md} | 0 .../v6/buttons/types/javascript/index_ts.md | 29 +++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) rename static/usage/v6/buttons/types/{javascript.md => javascript/index_html.md} (100%) create mode 100644 static/usage/v6/buttons/types/javascript/index_ts.md diff --git a/static/usage/v6/buttons/types/index.md b/static/usage/v6/buttons/types/index.md index 01e9778e127..f3059adc7dd 100644 --- a/static/usage/v6/buttons/types/index.md +++ b/static/usage/v6/buttons/types/index.md @@ -1,6 +1,7 @@ import Playground from '@site/src/components/global/Playground'; -import javascript from './javascript.md'; +import javascript_index_html from './javascript/index_html.md'; +import javascript_index_ts from './javascript/index_ts.md'; import react from './react.md'; import vue from './vue.md'; import angular_example_component_html from './angular/example_component_html.md'; @@ -9,7 +10,12 @@ import angular_example_component_ts from './angular/example_component_ts.md'; Date: Wed, 30 Jul 2025 12:16:11 -0500 Subject: [PATCH 042/129] docs(v6): update JavaScript examples for item --- static/usage/v6/item/buttons/index.md | 10 +++++-- .../index_html.md} | 0 .../v6/item/buttons/javascript/index_ts.md | 29 +++++++++++++++++++ static/usage/v6/item/icons/index.md | 10 +++++-- .../index_html.md} | 0 .../v6/item/icons/javascript/index_ts.md | 29 +++++++++++++++++++ static/usage/v6/item/lines/index.md | 11 +++++-- .../index_html.md} | 0 .../v6/item/lines/javascript/index_ts.md | 29 +++++++++++++++++++ 9 files changed, 111 insertions(+), 7 deletions(-) rename static/usage/v6/item/buttons/{javascript.md => javascript/index_html.md} (100%) create mode 100644 static/usage/v6/item/buttons/javascript/index_ts.md rename static/usage/v6/item/icons/{javascript.md => javascript/index_html.md} (100%) create mode 100644 static/usage/v6/item/icons/javascript/index_ts.md rename static/usage/v6/item/lines/{javascript.md => javascript/index_html.md} (100%) create mode 100644 static/usage/v6/item/lines/javascript/index_ts.md diff --git a/static/usage/v6/item/buttons/index.md b/static/usage/v6/item/buttons/index.md index 63de2031246..70652dc8252 100644 --- a/static/usage/v6/item/buttons/index.md +++ b/static/usage/v6/item/buttons/index.md @@ -1,6 +1,7 @@ import Playground from '@site/src/components/global/Playground'; -import javascript from './javascript.md'; +import javascript_index_html from './javascript/index_html.md'; +import javascript_index_ts from './javascript/index_ts.md'; import react from './react.md'; import vue from './vue.md'; import angular_example_component_html from './angular/example_component_html.md'; @@ -9,7 +10,12 @@ import angular_example_component_ts from './angular/example_component_ts.md'; Date: Wed, 30 Jul 2025 12:21:12 -0500 Subject: [PATCH 043/129] docs(v6): update JavaScript example for refresher --- static/usage/v6/refresher/advanced/index.md | 10 +++++-- .../index_html.md} | 0 .../refresher/advanced/javascript/index_ts.md | 29 +++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) rename static/usage/v6/refresher/advanced/{javascript.md => javascript/index_html.md} (100%) create mode 100644 static/usage/v6/refresher/advanced/javascript/index_ts.md diff --git a/static/usage/v6/refresher/advanced/index.md b/static/usage/v6/refresher/advanced/index.md index 287a2d7dc66..bb23ef33e8d 100644 --- a/static/usage/v6/refresher/advanced/index.md +++ b/static/usage/v6/refresher/advanced/index.md @@ -1,6 +1,7 @@ import Playground from '@site/src/components/global/Playground'; -import javascript from './javascript.md'; +import javascript_index_html from './javascript/index_html.md'; +import javascript_index_ts from './javascript/index_ts.md'; import react_main_tsx from './react/main_tsx.md'; import react_main_css from './react/main_css.md'; @@ -14,7 +15,12 @@ import angular_example_component_css from './angular/example_component_css.md'; Date: Wed, 30 Jul 2025 12:27:16 -0500 Subject: [PATCH 044/129] docs(v6): update JavaScript example for reorder --- static/usage/v6/reorder/custom-icon/index.md | 10 +++++-- .../index_html.md} | 0 .../custom-icon/javascript/index_ts.md | 29 +++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) rename static/usage/v6/reorder/custom-icon/{javascript.md => javascript/index_html.md} (100%) create mode 100644 static/usage/v6/reorder/custom-icon/javascript/index_ts.md diff --git a/static/usage/v6/reorder/custom-icon/index.md b/static/usage/v6/reorder/custom-icon/index.md index 4a5490803bf..239b8cf04a4 100644 --- a/static/usage/v6/reorder/custom-icon/index.md +++ b/static/usage/v6/reorder/custom-icon/index.md @@ -1,6 +1,7 @@ import Playground from '@site/src/components/global/Playground'; -import javascript from './javascript.md'; +import javascript_index_html from './javascript/index_html.md'; +import javascript_index_ts from './javascript/index_ts.md'; import react from './react.md'; import vue from './vue.md'; @@ -10,7 +11,12 @@ import angular_example_component_html from './angular/example_component_html.md' Date: Wed, 30 Jul 2025 12:38:53 -0500 Subject: [PATCH 045/129] docs(v6): update JavaScript examples for searchbar --- .../usage/v6/searchbar/cancel-button/index.md | 11 +++++-- .../index_html.md} | 0 .../cancel-button/javascript/index_ts.md | 29 +++++++++++++++++++ .../usage/v6/searchbar/clear-button/index.md | 10 +++++-- .../index_html.md} | 0 .../clear-button/javascript/index_ts.md | 29 +++++++++++++++++++ .../usage/v6/searchbar/search-icon/index.md | 10 +++++-- .../index_html.md} | 0 .../search-icon/javascript/index_ts.md | 29 +++++++++++++++++++ 9 files changed, 111 insertions(+), 7 deletions(-) rename static/usage/v6/searchbar/cancel-button/{javascript.md => javascript/index_html.md} (100%) create mode 100644 static/usage/v6/searchbar/cancel-button/javascript/index_ts.md rename static/usage/v6/searchbar/clear-button/{javascript.md => javascript/index_html.md} (100%) create mode 100644 static/usage/v6/searchbar/clear-button/javascript/index_ts.md rename static/usage/v6/searchbar/search-icon/{javascript.md => javascript/index_html.md} (100%) create mode 100644 static/usage/v6/searchbar/search-icon/javascript/index_ts.md diff --git a/static/usage/v6/searchbar/cancel-button/index.md b/static/usage/v6/searchbar/cancel-button/index.md index 8d0c31441c6..800e4550573 100644 --- a/static/usage/v6/searchbar/cancel-button/index.md +++ b/static/usage/v6/searchbar/cancel-button/index.md @@ -1,7 +1,7 @@ import Playground from '@site/src/components/global/Playground'; -import javascript from './javascript.md'; -import react from './react.md'; +import javascript_index_html from './javascript/index_html.md'; +import javascript_index_ts from './javascript/index_ts.md';import react from './react.md'; import vue from './vue.md'; import angular_example_component_html from './angular/example_component_html.md'; import angular_example_component_ts from './angular/example_component_ts.md'; @@ -9,7 +9,12 @@ import angular_example_component_ts from './angular/example_component_ts.md'; Date: Wed, 30 Jul 2025 12:44:02 -0500 Subject: [PATCH 046/129] docs(v6): update JavaScript examples for segment --- static/usage/v6/segment/scrollable/index.md | 10 +++++-- .../index_html.md} | 0 .../segment/scrollable/javascript/index_ts.md | 29 +++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) rename static/usage/v6/segment/scrollable/{javascript.md => javascript/index_html.md} (100%) create mode 100644 static/usage/v6/segment/scrollable/javascript/index_ts.md diff --git a/static/usage/v6/segment/scrollable/index.md b/static/usage/v6/segment/scrollable/index.md index f5079b1d546..0babe824bd0 100644 --- a/static/usage/v6/segment/scrollable/index.md +++ b/static/usage/v6/segment/scrollable/index.md @@ -1,6 +1,7 @@ import Playground from '@site/src/components/global/Playground'; -import javascript from './javascript.md'; +import javascript_index_html from './javascript/index_html.md'; +import javascript_index_ts from './javascript/index_ts.md'; import react from './react.md'; import vue from './vue.md'; import angular_example_component_html from './angular/example_component_html.md'; @@ -9,7 +10,12 @@ import angular_example_component_ts from './angular/example_component_ts.md'; Date: Wed, 30 Jul 2025 12:52:17 -0500 Subject: [PATCH 047/129] docs(v6): update JavaScript examples for segment-button --- .../usage/v6/segment-button/layout/index.md | 10 +++++-- .../index_html.md} | 0 .../layout/javascript/index_ts.md | 29 +++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) rename static/usage/v6/segment-button/layout/{javascript.md => javascript/index_html.md} (100%) create mode 100644 static/usage/v6/segment-button/layout/javascript/index_ts.md diff --git a/static/usage/v6/segment-button/layout/index.md b/static/usage/v6/segment-button/layout/index.md index 2d95cde28f3..89cffab91fa 100644 --- a/static/usage/v6/segment-button/layout/index.md +++ b/static/usage/v6/segment-button/layout/index.md @@ -1,6 +1,7 @@ import Playground from '@site/src/components/global/Playground'; -import javascript from './javascript.md'; +import javascript_index_html from './javascript/index_html.md'; +import javascript_index_ts from './javascript/index_ts.md'; import react from './react.md'; import vue from './vue.md'; import angular_example_component_html from './angular/example_component_html.md'; @@ -9,7 +10,12 @@ import angular_example_component_ts from './angular/example_component_ts.md'; Date: Wed, 30 Jul 2025 13:01:31 -0500 Subject: [PATCH 048/129] docs(v6): update JavaScript example for tabs --- static/usage/v6/tabs/router/index.md | 10 +++++-- .../index_html.md} | 0 .../v6/tabs/router/javascript/index_ts.md | 29 +++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) rename static/usage/v6/tabs/router/{javascript.md => javascript/index_html.md} (100%) create mode 100644 static/usage/v6/tabs/router/javascript/index_ts.md diff --git a/static/usage/v6/tabs/router/index.md b/static/usage/v6/tabs/router/index.md index dce11150a21..fff1f621e8c 100644 --- a/static/usage/v6/tabs/router/index.md +++ b/static/usage/v6/tabs/router/index.md @@ -1,6 +1,7 @@ import Playground from '@site/src/components/global/Playground'; -import javascript from './javascript.md'; +import javascript_index_html from './javascript/index_html.md'; +import javascript_index_ts from './javascript/index_ts.md'; import angular_example_component_html from './angular/example_component_html.md'; import angular_example_component_ts from './angular/example_component_ts.md'; @@ -38,7 +39,12 @@ import react_search_page_tsx from './react/search_page_tsx.md'; Date: Wed, 30 Jul 2025 13:06:51 -0500 Subject: [PATCH 049/129] docs(v6): update JavaScript examples for text --- static/usage/v6/text/basic/index.md | 10 +++++-- .../index_html.md} | 0 .../v6/text/basic/javascript/index_ts.md | 29 +++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) rename static/usage/v6/text/basic/{javascript.md => javascript/index_html.md} (100%) create mode 100644 static/usage/v6/text/basic/javascript/index_ts.md diff --git a/static/usage/v6/text/basic/index.md b/static/usage/v6/text/basic/index.md index b14a61e304e..2358549e4fb 100644 --- a/static/usage/v6/text/basic/index.md +++ b/static/usage/v6/text/basic/index.md @@ -1,6 +1,7 @@ import Playground from '@site/src/components/global/Playground'; -import javascript from './javascript.md'; +import javascript_index_html from './javascript/index_html.md'; +import javascript_index_ts from './javascript/index_ts.md'; import react from './react.md'; import vue from './vue.md'; import angular_example_component_html from './angular/example_component_html.md'; @@ -9,7 +10,12 @@ import angular_example_component_ts from './angular/example_component_ts.md'; Date: Wed, 30 Jul 2025 13:20:54 -0500 Subject: [PATCH 050/129] docs(v6): update JavaScript example for toast --- static/usage/v6/toast/icon/index.md | 10 ++++-- .../index_html.md} | 0 .../v6/toast/icon/javascript/index_ts.md | 31 +++++++++++++++++++ 3 files changed, 39 insertions(+), 2 deletions(-) rename static/usage/v6/toast/icon/{javascript.md => javascript/index_html.md} (100%) create mode 100644 static/usage/v6/toast/icon/javascript/index_ts.md diff --git a/static/usage/v6/toast/icon/index.md b/static/usage/v6/toast/icon/index.md index d636c54d905..8790ff7ecb4 100644 --- a/static/usage/v6/toast/icon/index.md +++ b/static/usage/v6/toast/icon/index.md @@ -1,6 +1,7 @@ import Playground from '@site/src/components/global/Playground'; -import javascript from './javascript.md'; +import javascript_index_html from './javascript/index_html.md'; +import javascript_index_ts from './javascript/index_ts.md'; import react from './react.md'; import vue from './vue.md'; @@ -11,7 +12,12 @@ import angular_example_component_ts from './angular/example_component_ts.md'; version="6" devicePreview code={{ - javascript, + javascript: { + files: { + 'index.html': javascript_index_html, + 'index.ts': javascript_index_ts, + }, + }, react, vue, angular: { diff --git a/static/usage/v6/toast/icon/javascript.md b/static/usage/v6/toast/icon/javascript/index_html.md similarity index 100% rename from static/usage/v6/toast/icon/javascript.md rename to static/usage/v6/toast/icon/javascript/index_html.md diff --git a/static/usage/v6/toast/icon/javascript/index_ts.md b/static/usage/v6/toast/icon/javascript/index_ts.md new file mode 100644 index 00000000000..4d9dc46e53a --- /dev/null +++ b/static/usage/v6/toast/icon/javascript/index_ts.md @@ -0,0 +1,31 @@ +```ts +import { defineCustomElements } from '@ionic/core/loader'; +import { toastController } from '@ionic/core'; +import { addIcons } from 'ionicons'; +import { globe } from 'ionicons/icons'; + +/* Core CSS required for Ionic components to work properly */ +import '@ionic/core/css/core.css'; + +/* Basic CSS for apps built with Ionic */ +import '@ionic/core/css/normalize.css'; +import '@ionic/core/css/structure.css'; +import '@ionic/core/css/typography.css'; + +/* Optional CSS utils that can be commented out */ +import '@ionic/core/css/padding.css'; +import '@ionic/core/css/float-elements.css'; +import '@ionic/core/css/text-alignment.css'; +import '@ionic/core/css/text-transformation.css'; +import '@ionic/core/css/flex-utils.css'; +import '@ionic/core/css/display.css'; + +/* Theme variables */ +import './theme/variables.css'; + +addIcons({ globe }); + +defineCustomElements(); + +(window as any).toastController = toastController; +``` From f136105fcee1a2116ef137d27f5e10f5801a1f0c Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 30 Jul 2025 13:26:19 -0500 Subject: [PATCH 051/129] docs(v6): update JavaScript example for toolbar --- static/usage/v6/toolbar/buttons/index.md | 10 +++++-- .../index_html.md} | 0 .../v6/toolbar/buttons/javascript/index_ts.md | 29 +++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) rename static/usage/v6/toolbar/buttons/{javascript.md => javascript/index_html.md} (100%) create mode 100644 static/usage/v6/toolbar/buttons/javascript/index_ts.md diff --git a/static/usage/v6/toolbar/buttons/index.md b/static/usage/v6/toolbar/buttons/index.md index 52f368cf5ff..ad1b830f9f5 100644 --- a/static/usage/v6/toolbar/buttons/index.md +++ b/static/usage/v6/toolbar/buttons/index.md @@ -1,6 +1,7 @@ import Playground from '@site/src/components/global/Playground'; -import javascript from './javascript.md'; +import javascript_index_html from './javascript/index_html.md'; +import javascript_index_ts from './javascript/index_ts.md'; import react from './react.md'; import vue from './vue.md'; import angular_example_component_html from './angular/example_component_html.md'; @@ -9,7 +10,12 @@ import angular_example_component_ts from './angular/example_component_ts.md'; Date: Wed, 30 Jul 2025 13:38:05 -0500 Subject: [PATCH 052/129] revert changes required to build v6 docs locally --- versioned_docs/version-v6/developer-resources/books.md | 2 +- versions.json | 3 +-- versionsArchived.json | 1 + 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/versioned_docs/version-v6/developer-resources/books.md b/versioned_docs/version-v6/developer-resources/books.md index 4553ac800c3..1a51bc94e8f 100644 --- a/versioned_docs/version-v6/developer-resources/books.md +++ b/versioned_docs/version-v6/developer-resources/books.md @@ -6,7 +6,7 @@ Angular. Vue. React. Vanilla JavaScript. All of these tools can be used to creat -by [Paul Halliday](https://developer.school) +by [Paul Halliday](https:://developer.school) ### [Creating Ionic Applications with StencilJS](https://www.joshmorony.com/creating-ionic-applications-with-stencil-js/) - [Free Preview](https://cdn2.hubspot.net/hubfs/3776657/PREVIEW-Creating-Ionic-Apps-with-StencilJS.pdf) diff --git a/versions.json b/versions.json index ed163ab5c09..48698a4fdec 100644 --- a/versions.json +++ b/versions.json @@ -1,4 +1,3 @@ [ - "v7", - "v6" + "v7" ] diff --git a/versionsArchived.json b/versionsArchived.json index 56bd2d5bcb6..9d103a53775 100644 --- a/versionsArchived.json +++ b/versionsArchived.json @@ -1,3 +1,4 @@ { + "v6": "https://ionic-docs-o31kiyk8l-ionic1.vercel.app/docs/v6", "v5": "https://ionic-docs-5utg8ms4c-ionic1.vercel.app/docs/v5" } From 78537516f7a5adaac228c3e471064f33f9b80bfd Mon Sep 17 00:00:00 2001 From: soundproofboot Date: Wed, 30 Jul 2025 13:44:15 -0500 Subject: [PATCH 053/129] docs(v6): run linter --- .../v6/accordion/customization/icons/javascript/index_ts.md | 2 +- static/usage/v6/back-button/custom/javascript/index_ts.md | 2 +- .../breadcrumbs/icons/custom-separators/javascript/index_ts.md | 2 +- .../v6/breadcrumbs/icons/icons-on-items/javascript/index_ts.md | 2 +- static/usage/v6/buttons/types/javascript/index_ts.md | 2 +- static/usage/v6/icon/basic/javascript/index_ts.md | 2 +- static/usage/v6/item/buttons/javascript/index_ts.md | 2 +- static/usage/v6/item/icons/javascript/index_ts.md | 2 +- static/usage/v6/item/lines/index.md | 3 ++- static/usage/v6/item/lines/javascript/index_ts.md | 2 +- static/usage/v6/refresher/advanced/javascript/index_ts.md | 2 +- static/usage/v6/reorder/custom-icon/javascript/index_ts.md | 2 +- static/usage/v6/searchbar/cancel-button/index.md | 3 ++- static/usage/v6/searchbar/cancel-button/javascript/index_ts.md | 2 +- static/usage/v6/searchbar/clear-button/javascript/index_ts.md | 2 +- static/usage/v6/searchbar/search-icon/javascript/index_ts.md | 2 +- static/usage/v6/segment-button/layout/javascript/index_ts.md | 2 +- static/usage/v6/segment/scrollable/javascript/index_ts.md | 2 +- static/usage/v6/tabs/router/javascript/index_ts.md | 2 +- static/usage/v6/text/basic/javascript/index_ts.md | 2 +- static/usage/v6/toolbar/buttons/javascript/index_ts.md | 2 +- 21 files changed, 23 insertions(+), 21 deletions(-) diff --git a/static/usage/v6/accordion/customization/icons/javascript/index_ts.md b/static/usage/v6/accordion/customization/icons/javascript/index_ts.md index b0cc33acaec..4f1a13e0062 100644 --- a/static/usage/v6/accordion/customization/icons/javascript/index_ts.md +++ b/static/usage/v6/accordion/customization/icons/javascript/index_ts.md @@ -26,4 +26,4 @@ import './theme/variables.css'; addIcons({ caretDownCircle }); defineCustomElements(); -``` \ No newline at end of file +``` diff --git a/static/usage/v6/back-button/custom/javascript/index_ts.md b/static/usage/v6/back-button/custom/javascript/index_ts.md index 0c6fe6fadec..0d048d49089 100644 --- a/static/usage/v6/back-button/custom/javascript/index_ts.md +++ b/static/usage/v6/back-button/custom/javascript/index_ts.md @@ -26,4 +26,4 @@ import './theme/variables.css'; addIcons({ caretBack }); defineCustomElements(); -``` \ No newline at end of file +``` diff --git a/static/usage/v6/breadcrumbs/icons/custom-separators/javascript/index_ts.md b/static/usage/v6/breadcrumbs/icons/custom-separators/javascript/index_ts.md index 83e2dab7a36..b7e5f1d2a1c 100644 --- a/static/usage/v6/breadcrumbs/icons/custom-separators/javascript/index_ts.md +++ b/static/usage/v6/breadcrumbs/icons/custom-separators/javascript/index_ts.md @@ -26,4 +26,4 @@ import './theme/variables.css'; addIcons({ arrowForwardCircle }); defineCustomElements(); -``` \ No newline at end of file +``` diff --git a/static/usage/v6/breadcrumbs/icons/icons-on-items/javascript/index_ts.md b/static/usage/v6/breadcrumbs/icons/icons-on-items/javascript/index_ts.md index 17e173cd6d8..81e2f85f56c 100644 --- a/static/usage/v6/breadcrumbs/icons/icons-on-items/javascript/index_ts.md +++ b/static/usage/v6/breadcrumbs/icons/icons-on-items/javascript/index_ts.md @@ -26,4 +26,4 @@ import './theme/variables.css'; addIcons({ home, flash, camera, film }); defineCustomElements(); -``` \ No newline at end of file +``` diff --git a/static/usage/v6/buttons/types/javascript/index_ts.md b/static/usage/v6/buttons/types/javascript/index_ts.md index 240d292200e..f5fba4b55e8 100644 --- a/static/usage/v6/buttons/types/javascript/index_ts.md +++ b/static/usage/v6/buttons/types/javascript/index_ts.md @@ -26,4 +26,4 @@ import './theme/variables.css'; addIcons({ personCircle, search, ellipsisHorizontal, ellipsisVertical, helpCircle, star, create }); defineCustomElements(); -``` \ No newline at end of file +``` diff --git a/static/usage/v6/icon/basic/javascript/index_ts.md b/static/usage/v6/icon/basic/javascript/index_ts.md index e31975b6f14..b4b3a93f923 100644 --- a/static/usage/v6/icon/basic/javascript/index_ts.md +++ b/static/usage/v6/icon/basic/javascript/index_ts.md @@ -26,4 +26,4 @@ import './theme/variables.css'; addIcons({ logoIonic }); defineCustomElements(); -``` \ No newline at end of file +``` diff --git a/static/usage/v6/item/buttons/javascript/index_ts.md b/static/usage/v6/item/buttons/javascript/index_ts.md index d03fe845f0b..b615ca86d4f 100644 --- a/static/usage/v6/item/buttons/javascript/index_ts.md +++ b/static/usage/v6/item/buttons/javascript/index_ts.md @@ -26,4 +26,4 @@ import './theme/variables.css'; addIcons({ home, star, navigate }); defineCustomElements(); -``` \ No newline at end of file +``` diff --git a/static/usage/v6/item/icons/javascript/index_ts.md b/static/usage/v6/item/icons/javascript/index_ts.md index 5c15a282c26..f1edf662596 100644 --- a/static/usage/v6/item/icons/javascript/index_ts.md +++ b/static/usage/v6/item/icons/javascript/index_ts.md @@ -26,4 +26,4 @@ import './theme/variables.css'; addIcons({ informationCircle, star }); defineCustomElements(); -``` \ No newline at end of file +``` diff --git a/static/usage/v6/item/lines/index.md b/static/usage/v6/item/lines/index.md index a42601c1a57..e53d3cb01b8 100644 --- a/static/usage/v6/item/lines/index.md +++ b/static/usage/v6/item/lines/index.md @@ -1,7 +1,8 @@ import Playground from '@site/src/components/global/Playground'; import javascript_index_html from './javascript/index_html.md'; -import javascript_index_ts from './javascript/index_ts.md';import react from './react.md'; +import javascript_index_ts from './javascript/index_ts.md'; +import react from './react.md'; import vue from './vue.md'; import angular_example_component_html from './angular/example_component_html.md'; import angular_example_component_ts from './angular/example_component_ts.md'; diff --git a/static/usage/v6/item/lines/javascript/index_ts.md b/static/usage/v6/item/lines/javascript/index_ts.md index d8d50c52dc7..0de176a28d0 100644 --- a/static/usage/v6/item/lines/javascript/index_ts.md +++ b/static/usage/v6/item/lines/javascript/index_ts.md @@ -26,4 +26,4 @@ import './theme/variables.css'; addIcons({ star, informationCircle }); defineCustomElements(); -``` \ No newline at end of file +``` diff --git a/static/usage/v6/refresher/advanced/javascript/index_ts.md b/static/usage/v6/refresher/advanced/javascript/index_ts.md index e6819bf2099..15e7d004187 100644 --- a/static/usage/v6/refresher/advanced/javascript/index_ts.md +++ b/static/usage/v6/refresher/advanced/javascript/index_ts.md @@ -26,4 +26,4 @@ import './theme/variables.css'; addIcons({ ellipse }); defineCustomElements(); -``` \ No newline at end of file +``` diff --git a/static/usage/v6/reorder/custom-icon/javascript/index_ts.md b/static/usage/v6/reorder/custom-icon/javascript/index_ts.md index ab8d006d102..c57c3e59a1e 100644 --- a/static/usage/v6/reorder/custom-icon/javascript/index_ts.md +++ b/static/usage/v6/reorder/custom-icon/javascript/index_ts.md @@ -26,4 +26,4 @@ import './theme/variables.css'; addIcons({ pizza }); defineCustomElements(); -``` \ No newline at end of file +``` diff --git a/static/usage/v6/searchbar/cancel-button/index.md b/static/usage/v6/searchbar/cancel-button/index.md index 800e4550573..6c738ecd396 100644 --- a/static/usage/v6/searchbar/cancel-button/index.md +++ b/static/usage/v6/searchbar/cancel-button/index.md @@ -1,7 +1,8 @@ import Playground from '@site/src/components/global/Playground'; import javascript_index_html from './javascript/index_html.md'; -import javascript_index_ts from './javascript/index_ts.md';import react from './react.md'; +import javascript_index_ts from './javascript/index_ts.md'; +import react from './react.md'; import vue from './vue.md'; import angular_example_component_html from './angular/example_component_html.md'; import angular_example_component_ts from './angular/example_component_ts.md'; diff --git a/static/usage/v6/searchbar/cancel-button/javascript/index_ts.md b/static/usage/v6/searchbar/cancel-button/javascript/index_ts.md index c8aa3333e19..9a6d57f2016 100644 --- a/static/usage/v6/searchbar/cancel-button/javascript/index_ts.md +++ b/static/usage/v6/searchbar/cancel-button/javascript/index_ts.md @@ -26,4 +26,4 @@ import './theme/variables.css'; addIcons({ trash }); defineCustomElements(); -``` \ No newline at end of file +``` diff --git a/static/usage/v6/searchbar/clear-button/javascript/index_ts.md b/static/usage/v6/searchbar/clear-button/javascript/index_ts.md index 80b1363b75f..f78dec30492 100644 --- a/static/usage/v6/searchbar/clear-button/javascript/index_ts.md +++ b/static/usage/v6/searchbar/clear-button/javascript/index_ts.md @@ -26,4 +26,4 @@ import './theme/variables.css'; addIcons({ trashBin }); defineCustomElements(); -``` \ No newline at end of file +``` diff --git a/static/usage/v6/searchbar/search-icon/javascript/index_ts.md b/static/usage/v6/searchbar/search-icon/javascript/index_ts.md index 3390dff9e80..5dee4220727 100644 --- a/static/usage/v6/searchbar/search-icon/javascript/index_ts.md +++ b/static/usage/v6/searchbar/search-icon/javascript/index_ts.md @@ -26,4 +26,4 @@ import './theme/variables.css'; addIcons({ searchCircle }); defineCustomElements(); -``` \ No newline at end of file +``` diff --git a/static/usage/v6/segment-button/layout/javascript/index_ts.md b/static/usage/v6/segment-button/layout/javascript/index_ts.md index f60426f1553..84770b3fa12 100644 --- a/static/usage/v6/segment-button/layout/javascript/index_ts.md +++ b/static/usage/v6/segment-button/layout/javascript/index_ts.md @@ -26,4 +26,4 @@ import './theme/variables.css'; addIcons({ call, heart, pin }); defineCustomElements(); -``` \ No newline at end of file +``` diff --git a/static/usage/v6/segment/scrollable/javascript/index_ts.md b/static/usage/v6/segment/scrollable/javascript/index_ts.md index 53e05428a72..2d69d3a2375 100644 --- a/static/usage/v6/segment/scrollable/javascript/index_ts.md +++ b/static/usage/v6/segment/scrollable/javascript/index_ts.md @@ -26,4 +26,4 @@ import './theme/variables.css'; addIcons({ home, heart, pin, star, call, globe, basket, barbell, trash, person }); defineCustomElements(); -``` \ No newline at end of file +``` diff --git a/static/usage/v6/tabs/router/javascript/index_ts.md b/static/usage/v6/tabs/router/javascript/index_ts.md index 184f77e6501..0c4bc90f1e8 100644 --- a/static/usage/v6/tabs/router/javascript/index_ts.md +++ b/static/usage/v6/tabs/router/javascript/index_ts.md @@ -26,4 +26,4 @@ import './theme/variables.css'; addIcons({ playCircle, radio, library, search }); defineCustomElements(); -``` \ No newline at end of file +``` diff --git a/static/usage/v6/text/basic/javascript/index_ts.md b/static/usage/v6/text/basic/javascript/index_ts.md index 611648e0517..e539d87b01d 100644 --- a/static/usage/v6/text/basic/javascript/index_ts.md +++ b/static/usage/v6/text/basic/javascript/index_ts.md @@ -26,4 +26,4 @@ import './theme/variables.css'; addIcons({ warning }); defineCustomElements(); -``` \ No newline at end of file +``` diff --git a/static/usage/v6/toolbar/buttons/javascript/index_ts.md b/static/usage/v6/toolbar/buttons/javascript/index_ts.md index 240d292200e..f5fba4b55e8 100644 --- a/static/usage/v6/toolbar/buttons/javascript/index_ts.md +++ b/static/usage/v6/toolbar/buttons/javascript/index_ts.md @@ -26,4 +26,4 @@ import './theme/variables.css'; addIcons({ personCircle, search, ellipsisHorizontal, ellipsisVertical, helpCircle, star, create }); defineCustomElements(); -``` \ No newline at end of file +``` From 14f71e0f17900030795ee0420c02afcc469794be Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 4 Aug 2025 10:57:42 -0400 Subject: [PATCH 054/129] chore(deps): update dependency @types/node to v22.17.0 (#4233) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/react/package-lock.json | 12 ++++++------ static/code/stackblitz/v8/react/package-lock.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json index 7640f0a80a3..873542cfbca 100644 --- a/static/code/stackblitz/v7/react/package-lock.json +++ b/static/code/stackblitz/v7/react/package-lock.json @@ -1043,9 +1043,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "node_modules/@types/node": { - "version": "22.16.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.5.tgz", - "integrity": "sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==", + "version": "22.17.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.0.tgz", + "integrity": "sha512-bbAKTCqX5aNVryi7qXVMi+OkB3w/OyblodicMbvE38blyAz7GxXf6XYhklokijuPwwVg9sDLKRxt0ZHXQwZVfQ==", "dependencies": { "undici-types": "~6.21.0" } @@ -2336,9 +2336,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "@types/node": { - "version": "22.16.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.5.tgz", - "integrity": "sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==", + "version": "22.17.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.0.tgz", + "integrity": "sha512-bbAKTCqX5aNVryi7qXVMi+OkB3w/OyblodicMbvE38blyAz7GxXf6XYhklokijuPwwVg9sDLKRxt0ZHXQwZVfQ==", "requires": { "undici-types": "~6.21.0" } diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index f905408c366..b79031f18f8 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -1149,9 +1149,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "node_modules/@types/node": { - "version": "22.16.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.5.tgz", - "integrity": "sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==", + "version": "22.17.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.0.tgz", + "integrity": "sha512-bbAKTCqX5aNVryi7qXVMi+OkB3w/OyblodicMbvE38blyAz7GxXf6XYhklokijuPwwVg9sDLKRxt0ZHXQwZVfQ==", "dependencies": { "undici-types": "~6.21.0" } @@ -2502,9 +2502,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "@types/node": { - "version": "22.16.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.5.tgz", - "integrity": "sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==", + "version": "22.17.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.0.tgz", + "integrity": "sha512-bbAKTCqX5aNVryi7qXVMi+OkB3w/OyblodicMbvE38blyAz7GxXf6XYhklokijuPwwVg9sDLKRxt0ZHXQwZVfQ==", "requires": { "undici-types": "~6.21.0" } From 6adebfb68aea2af91afdf53d37af214b34d124e8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 4 Aug 2025 10:58:37 -0400 Subject: [PATCH 055/129] chore(deps): update react monorepo to v19.1.9 (#4232) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../stackblitz/v7/react/package-lock.json | 24 +++++++++---------- .../stackblitz/v8/react/package-lock.json | 24 +++++++++---------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json index 873542cfbca..e18e84b4329 100644 --- a/static/code/stackblitz/v7/react/package-lock.json +++ b/static/code/stackblitz/v7/react/package-lock.json @@ -1051,17 +1051,17 @@ } }, "node_modules/@types/react": { - "version": "19.1.8", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz", - "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==", + "version": "19.1.9", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.9.tgz", + "integrity": "sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA==", "dependencies": { "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "19.1.6", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.6.tgz", - "integrity": "sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==", + "version": "19.1.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.7.tgz", + "integrity": "sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==", "peerDependencies": { "@types/react": "^19.0.0" } @@ -2344,17 +2344,17 @@ } }, "@types/react": { - "version": "19.1.8", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz", - "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==", + "version": "19.1.9", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.9.tgz", + "integrity": "sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA==", "requires": { "csstype": "^3.0.2" } }, "@types/react-dom": { - "version": "19.1.6", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.6.tgz", - "integrity": "sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==", + "version": "19.1.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.7.tgz", + "integrity": "sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==", "requires": {} }, "@types/react-router": { diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index b79031f18f8..38d5aeb0bb5 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -1157,17 +1157,17 @@ } }, "node_modules/@types/react": { - "version": "19.1.8", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz", - "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==", + "version": "19.1.9", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.9.tgz", + "integrity": "sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA==", "dependencies": { "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "19.1.6", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.6.tgz", - "integrity": "sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==", + "version": "19.1.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.7.tgz", + "integrity": "sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==", "peerDependencies": { "@types/react": "^19.0.0" } @@ -2510,17 +2510,17 @@ } }, "@types/react": { - "version": "19.1.8", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.8.tgz", - "integrity": "sha512-AwAfQ2Wa5bCx9WP8nZL2uMZWod7J7/JSplxbTmBQ5ms6QpqNYm672H0Vu9ZVKVngQ+ii4R/byguVEUZQyeg44g==", + "version": "19.1.9", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.9.tgz", + "integrity": "sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA==", "requires": { "csstype": "^3.0.2" } }, "@types/react-dom": { - "version": "19.1.6", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.6.tgz", - "integrity": "sha512-4hOiT/dwO8Ko0gV1m/TJZYk3y0KBnY9vzDh7W+DH17b2HFSOGgdj33dhihPeuy3l0q23+4e+hoXHV6hCC4dCXw==", + "version": "19.1.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.7.tgz", + "integrity": "sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==", "requires": {} }, "@types/react-router": { From fd28a67cbe863bc989b5ccf7b1f61f7f9b020561 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Aug 2025 10:07:00 -0400 Subject: [PATCH 056/129] chore(deps): update dependency web-vitals to v5.1.0 (#4237) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/react/package-lock.json | 12 ++++++------ static/code/stackblitz/v8/react/package-lock.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json index e18e84b4329..3ae484dc0ac 100644 --- a/static/code/stackblitz/v7/react/package-lock.json +++ b/static/code/stackblitz/v7/react/package-lock.json @@ -1752,9 +1752,9 @@ } }, "node_modules/web-vitals": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-5.0.3.tgz", - "integrity": "sha512-4KmOFYxj7qT6RAdCH0SWwq8eKeXNhAFXR4PmgF6nrWFmrJ41n7lq3UCA6UK0GebQ4uu+XP8e8zGjaDO3wZlqTg==" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-5.1.0.tgz", + "integrity": "sha512-ArI3kx5jI0atlTtmV0fWU3fjpLmq/nD3Zr1iFFlJLaqa5wLBkUSzINwBPySCX/8jRyjlmy1Volw1kz1g9XE4Jg==" }, "node_modules/yallist": { "version": "3.1.1", @@ -2796,9 +2796,9 @@ } }, "web-vitals": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-5.0.3.tgz", - "integrity": "sha512-4KmOFYxj7qT6RAdCH0SWwq8eKeXNhAFXR4PmgF6nrWFmrJ41n7lq3UCA6UK0GebQ4uu+XP8e8zGjaDO3wZlqTg==" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-5.1.0.tgz", + "integrity": "sha512-ArI3kx5jI0atlTtmV0fWU3fjpLmq/nD3Zr1iFFlJLaqa5wLBkUSzINwBPySCX/8jRyjlmy1Volw1kz1g9XE4Jg==" }, "yallist": { "version": "3.1.1", diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index 38d5aeb0bb5..a15c9c82720 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -1858,9 +1858,9 @@ } }, "node_modules/web-vitals": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-5.0.3.tgz", - "integrity": "sha512-4KmOFYxj7qT6RAdCH0SWwq8eKeXNhAFXR4PmgF6nrWFmrJ41n7lq3UCA6UK0GebQ4uu+XP8e8zGjaDO3wZlqTg==" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-5.1.0.tgz", + "integrity": "sha512-ArI3kx5jI0atlTtmV0fWU3fjpLmq/nD3Zr1iFFlJLaqa5wLBkUSzINwBPySCX/8jRyjlmy1Volw1kz1g9XE4Jg==" }, "node_modules/yallist": { "version": "3.1.1", @@ -2962,9 +2962,9 @@ } }, "web-vitals": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-5.0.3.tgz", - "integrity": "sha512-4KmOFYxj7qT6RAdCH0SWwq8eKeXNhAFXR4PmgF6nrWFmrJ41n7lq3UCA6UK0GebQ4uu+XP8e8zGjaDO3wZlqTg==" + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-5.1.0.tgz", + "integrity": "sha512-ArI3kx5jI0atlTtmV0fWU3fjpLmq/nD3Zr1iFFlJLaqa5wLBkUSzINwBPySCX/8jRyjlmy1Volw1kz1g9XE4Jg==" }, "yallist": { "version": "3.1.1", From 025ad77b8641ec8c6737b0e7ac9ffc39c4dc408a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Aug 2025 10:08:10 -0400 Subject: [PATCH 057/129] chore(deps): update dependency vue-tsc to v3.0.5 (#4235) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../code/stackblitz/v7/vue/package-lock.json | 80 +++++++++---------- .../code/stackblitz/v8/vue/package-lock.json | 80 +++++++++---------- 2 files changed, 80 insertions(+), 80 deletions(-) diff --git a/static/code/stackblitz/v7/vue/package-lock.json b/static/code/stackblitz/v7/vue/package-lock.json index 4a6001fdc67..5b98d0470f8 100644 --- a/static/code/stackblitz/v7/vue/package-lock.json +++ b/static/code/stackblitz/v7/vue/package-lock.json @@ -795,27 +795,27 @@ } }, "node_modules/@volar/language-core": { - "version": "2.4.20", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.20.tgz", - "integrity": "sha512-dRDF1G33xaAIDqR6+mXUIjXYdu9vzSxlMGfMEwBxQsfY/JMUEXSpLTR057oTKlUQ2nIvCmP9k94A8h8z2VrNSA==", + "version": "2.4.22", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.22.tgz", + "integrity": "sha512-gp4M7Di5KgNyIyO903wTClYBavRt6UyFNpc5LWfyZr1lBsTUY+QrVZfmbNF2aCyfklBOVk9YC4p+zkwoyT7ECg==", "dev": true, "dependencies": { - "@volar/source-map": "2.4.20" + "@volar/source-map": "2.4.22" } }, "node_modules/@volar/source-map": { - "version": "2.4.20", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.20.tgz", - "integrity": "sha512-mVjmFQH8mC+nUaVwmbxoYUy8cww+abaO8dWzqPUjilsavjxH0jCJ3Mp8HFuHsdewZs2c+SP+EO7hCd8Z92whJg==", + "version": "2.4.22", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.22.tgz", + "integrity": "sha512-L2nVr/1vei0xKRgO2tYVXtJYd09HTRjaZi418e85Q+QdbbqA8h7bBjfNyPPSsjnrOO4l4kaAo78c8SQUAdHvgA==", "dev": true }, "node_modules/@volar/typescript": { - "version": "2.4.20", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.20.tgz", - "integrity": "sha512-Oc4DczPwQyXcVbd+5RsNEqX6ia0+w3p+klwdZQ6ZKhFjWoBP9PCPQYlKYRi/tDemWphW93P/Vv13vcE9I9D2GQ==", + "version": "2.4.22", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.22.tgz", + "integrity": "sha512-6ZczlJW1/GWTrNnkmZxJp4qyBt/SGVlcTuCWpI5zLrdPdCZsj66Aff9ZsfFaT3TyjG8zVYgBMYPuCm/eRkpcpQ==", "dev": true, "dependencies": { - "@volar/language-core": "2.4.20", + "@volar/language-core": "2.4.22", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -882,12 +882,12 @@ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "node_modules/@vue/language-core": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.4.tgz", - "integrity": "sha512-BvueED4LfBCSNH66eeUQk37MQCb7hjdezzGgxniM0LbriW53AJIyLorgshAtStmjfsAuOCcTl/c1b+nz/ye8xQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.5.tgz", + "integrity": "sha512-gCEjn9Ik7I/seHVNIEipOm8W+f3/kg60e8s1IgIkMYma2wu9ZGUTMv3mSL2bX+Md2L8fslceJ4SU8j1fgSRoiw==", "dev": true, "dependencies": { - "@volar/language-core": "2.4.20", + "@volar/language-core": "2.4.22", "@vue/compiler-dom": "^3.5.0", "@vue/compiler-vue2": "^2.7.16", "@vue/shared": "^3.5.0", @@ -1345,13 +1345,13 @@ } }, "node_modules/vue-tsc": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.4.tgz", - "integrity": "sha512-kZmSEjGtROApVBuaIcoprrXZsFNGon5ggkTJokmhQ/H1hMzCFRPQ0Ed8IHYFsmYJYvHBcdmEQVGVcRuxzPzNbw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.5.tgz", + "integrity": "sha512-PsTFN9lo1HJCrZw9NoqjYcAbYDXY0cOKyuW2E7naX5jcaVyWpqEsZOHN9Dws5890E8e5SDAD4L4Zam3dxG3/Cw==", "dev": true, "dependencies": { - "@volar/typescript": "2.4.20", - "@vue/language-core": "3.0.4" + "@volar/typescript": "2.4.22", + "@vue/language-core": "3.0.5" }, "bin": { "vue-tsc": "bin/vue-tsc.js" @@ -1763,27 +1763,27 @@ } }, "@volar/language-core": { - "version": "2.4.20", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.20.tgz", - "integrity": "sha512-dRDF1G33xaAIDqR6+mXUIjXYdu9vzSxlMGfMEwBxQsfY/JMUEXSpLTR057oTKlUQ2nIvCmP9k94A8h8z2VrNSA==", + "version": "2.4.22", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.22.tgz", + "integrity": "sha512-gp4M7Di5KgNyIyO903wTClYBavRt6UyFNpc5LWfyZr1lBsTUY+QrVZfmbNF2aCyfklBOVk9YC4p+zkwoyT7ECg==", "dev": true, "requires": { - "@volar/source-map": "2.4.20" + "@volar/source-map": "2.4.22" } }, "@volar/source-map": { - "version": "2.4.20", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.20.tgz", - "integrity": "sha512-mVjmFQH8mC+nUaVwmbxoYUy8cww+abaO8dWzqPUjilsavjxH0jCJ3Mp8HFuHsdewZs2c+SP+EO7hCd8Z92whJg==", + "version": "2.4.22", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.22.tgz", + "integrity": "sha512-L2nVr/1vei0xKRgO2tYVXtJYd09HTRjaZi418e85Q+QdbbqA8h7bBjfNyPPSsjnrOO4l4kaAo78c8SQUAdHvgA==", "dev": true }, "@volar/typescript": { - "version": "2.4.20", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.20.tgz", - "integrity": "sha512-Oc4DczPwQyXcVbd+5RsNEqX6ia0+w3p+klwdZQ6ZKhFjWoBP9PCPQYlKYRi/tDemWphW93P/Vv13vcE9I9D2GQ==", + "version": "2.4.22", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.22.tgz", + "integrity": "sha512-6ZczlJW1/GWTrNnkmZxJp4qyBt/SGVlcTuCWpI5zLrdPdCZsj66Aff9ZsfFaT3TyjG8zVYgBMYPuCm/eRkpcpQ==", "dev": true, "requires": { - "@volar/language-core": "2.4.20", + "@volar/language-core": "2.4.22", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -1850,12 +1850,12 @@ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "@vue/language-core": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.4.tgz", - "integrity": "sha512-BvueED4LfBCSNH66eeUQk37MQCb7hjdezzGgxniM0LbriW53AJIyLorgshAtStmjfsAuOCcTl/c1b+nz/ye8xQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.5.tgz", + "integrity": "sha512-gCEjn9Ik7I/seHVNIEipOm8W+f3/kg60e8s1IgIkMYma2wu9ZGUTMv3mSL2bX+Md2L8fslceJ4SU8j1fgSRoiw==", "dev": true, "requires": { - "@volar/language-core": "2.4.20", + "@volar/language-core": "2.4.22", "@vue/compiler-dom": "^3.5.0", "@vue/compiler-vue2": "^2.7.16", "@vue/shared": "^3.5.0", @@ -2139,13 +2139,13 @@ } }, "vue-tsc": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.4.tgz", - "integrity": "sha512-kZmSEjGtROApVBuaIcoprrXZsFNGon5ggkTJokmhQ/H1hMzCFRPQ0Ed8IHYFsmYJYvHBcdmEQVGVcRuxzPzNbw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.5.tgz", + "integrity": "sha512-PsTFN9lo1HJCrZw9NoqjYcAbYDXY0cOKyuW2E7naX5jcaVyWpqEsZOHN9Dws5890E8e5SDAD4L4Zam3dxG3/Cw==", "dev": true, "requires": { - "@volar/typescript": "2.4.20", - "@vue/language-core": "3.0.4" + "@volar/typescript": "2.4.22", + "@vue/language-core": "3.0.5" } } } diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index b5ab39571be..3b20cf37b8b 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -923,27 +923,27 @@ } }, "node_modules/@volar/language-core": { - "version": "2.4.20", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.20.tgz", - "integrity": "sha512-dRDF1G33xaAIDqR6+mXUIjXYdu9vzSxlMGfMEwBxQsfY/JMUEXSpLTR057oTKlUQ2nIvCmP9k94A8h8z2VrNSA==", + "version": "2.4.22", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.22.tgz", + "integrity": "sha512-gp4M7Di5KgNyIyO903wTClYBavRt6UyFNpc5LWfyZr1lBsTUY+QrVZfmbNF2aCyfklBOVk9YC4p+zkwoyT7ECg==", "dev": true, "dependencies": { - "@volar/source-map": "2.4.20" + "@volar/source-map": "2.4.22" } }, "node_modules/@volar/source-map": { - "version": "2.4.20", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.20.tgz", - "integrity": "sha512-mVjmFQH8mC+nUaVwmbxoYUy8cww+abaO8dWzqPUjilsavjxH0jCJ3Mp8HFuHsdewZs2c+SP+EO7hCd8Z92whJg==", + "version": "2.4.22", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.22.tgz", + "integrity": "sha512-L2nVr/1vei0xKRgO2tYVXtJYd09HTRjaZi418e85Q+QdbbqA8h7bBjfNyPPSsjnrOO4l4kaAo78c8SQUAdHvgA==", "dev": true }, "node_modules/@volar/typescript": { - "version": "2.4.20", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.20.tgz", - "integrity": "sha512-Oc4DczPwQyXcVbd+5RsNEqX6ia0+w3p+klwdZQ6ZKhFjWoBP9PCPQYlKYRi/tDemWphW93P/Vv13vcE9I9D2GQ==", + "version": "2.4.22", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.22.tgz", + "integrity": "sha512-6ZczlJW1/GWTrNnkmZxJp4qyBt/SGVlcTuCWpI5zLrdPdCZsj66Aff9ZsfFaT3TyjG8zVYgBMYPuCm/eRkpcpQ==", "dev": true, "dependencies": { - "@volar/language-core": "2.4.20", + "@volar/language-core": "2.4.22", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -1010,12 +1010,12 @@ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "node_modules/@vue/language-core": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.4.tgz", - "integrity": "sha512-BvueED4LfBCSNH66eeUQk37MQCb7hjdezzGgxniM0LbriW53AJIyLorgshAtStmjfsAuOCcTl/c1b+nz/ye8xQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.5.tgz", + "integrity": "sha512-gCEjn9Ik7I/seHVNIEipOm8W+f3/kg60e8s1IgIkMYma2wu9ZGUTMv3mSL2bX+Md2L8fslceJ4SU8j1fgSRoiw==", "dev": true, "dependencies": { - "@volar/language-core": "2.4.20", + "@volar/language-core": "2.4.22", "@vue/compiler-dom": "^3.5.0", "@vue/compiler-vue2": "^2.7.16", "@vue/shared": "^3.5.0", @@ -1473,13 +1473,13 @@ } }, "node_modules/vue-tsc": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.4.tgz", - "integrity": "sha512-kZmSEjGtROApVBuaIcoprrXZsFNGon5ggkTJokmhQ/H1hMzCFRPQ0Ed8IHYFsmYJYvHBcdmEQVGVcRuxzPzNbw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.5.tgz", + "integrity": "sha512-PsTFN9lo1HJCrZw9NoqjYcAbYDXY0cOKyuW2E7naX5jcaVyWpqEsZOHN9Dws5890E8e5SDAD4L4Zam3dxG3/Cw==", "dev": true, "dependencies": { - "@volar/typescript": "2.4.20", - "@vue/language-core": "3.0.4" + "@volar/typescript": "2.4.22", + "@vue/language-core": "3.0.5" }, "bin": { "vue-tsc": "bin/vue-tsc.js" @@ -1958,27 +1958,27 @@ } }, "@volar/language-core": { - "version": "2.4.20", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.20.tgz", - "integrity": "sha512-dRDF1G33xaAIDqR6+mXUIjXYdu9vzSxlMGfMEwBxQsfY/JMUEXSpLTR057oTKlUQ2nIvCmP9k94A8h8z2VrNSA==", + "version": "2.4.22", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.22.tgz", + "integrity": "sha512-gp4M7Di5KgNyIyO903wTClYBavRt6UyFNpc5LWfyZr1lBsTUY+QrVZfmbNF2aCyfklBOVk9YC4p+zkwoyT7ECg==", "dev": true, "requires": { - "@volar/source-map": "2.4.20" + "@volar/source-map": "2.4.22" } }, "@volar/source-map": { - "version": "2.4.20", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.20.tgz", - "integrity": "sha512-mVjmFQH8mC+nUaVwmbxoYUy8cww+abaO8dWzqPUjilsavjxH0jCJ3Mp8HFuHsdewZs2c+SP+EO7hCd8Z92whJg==", + "version": "2.4.22", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.22.tgz", + "integrity": "sha512-L2nVr/1vei0xKRgO2tYVXtJYd09HTRjaZi418e85Q+QdbbqA8h7bBjfNyPPSsjnrOO4l4kaAo78c8SQUAdHvgA==", "dev": true }, "@volar/typescript": { - "version": "2.4.20", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.20.tgz", - "integrity": "sha512-Oc4DczPwQyXcVbd+5RsNEqX6ia0+w3p+klwdZQ6ZKhFjWoBP9PCPQYlKYRi/tDemWphW93P/Vv13vcE9I9D2GQ==", + "version": "2.4.22", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.22.tgz", + "integrity": "sha512-6ZczlJW1/GWTrNnkmZxJp4qyBt/SGVlcTuCWpI5zLrdPdCZsj66Aff9ZsfFaT3TyjG8zVYgBMYPuCm/eRkpcpQ==", "dev": true, "requires": { - "@volar/language-core": "2.4.20", + "@volar/language-core": "2.4.22", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -2045,12 +2045,12 @@ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "@vue/language-core": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.4.tgz", - "integrity": "sha512-BvueED4LfBCSNH66eeUQk37MQCb7hjdezzGgxniM0LbriW53AJIyLorgshAtStmjfsAuOCcTl/c1b+nz/ye8xQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.5.tgz", + "integrity": "sha512-gCEjn9Ik7I/seHVNIEipOm8W+f3/kg60e8s1IgIkMYma2wu9ZGUTMv3mSL2bX+Md2L8fslceJ4SU8j1fgSRoiw==", "dev": true, "requires": { - "@volar/language-core": "2.4.20", + "@volar/language-core": "2.4.22", "@vue/compiler-dom": "^3.5.0", "@vue/compiler-vue2": "^2.7.16", "@vue/shared": "^3.5.0", @@ -2334,13 +2334,13 @@ } }, "vue-tsc": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.4.tgz", - "integrity": "sha512-kZmSEjGtROApVBuaIcoprrXZsFNGon5ggkTJokmhQ/H1hMzCFRPQ0Ed8IHYFsmYJYvHBcdmEQVGVcRuxzPzNbw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.5.tgz", + "integrity": "sha512-PsTFN9lo1HJCrZw9NoqjYcAbYDXY0cOKyuW2E7naX5jcaVyWpqEsZOHN9Dws5890E8e5SDAD4L4Zam3dxG3/Cw==", "dev": true, "requires": { - "@volar/typescript": "2.4.20", - "@vue/language-core": "3.0.4" + "@volar/typescript": "2.4.22", + "@vue/language-core": "3.0.5" } } } From 4e17d4b86f67ae27137828290e22a0bab47549ff Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 5 Aug 2025 10:21:45 -0400 Subject: [PATCH 058/129] chore(deps): update dependency typescript to v5.9.2 (#4236) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/react/package-lock.json | 12 ++++++------ static/code/stackblitz/v7/vue/package-lock.json | 12 ++++++------ static/code/stackblitz/v8/react/package-lock.json | 12 ++++++------ static/code/stackblitz/v8/vue/package-lock.json | 12 ++++++------ 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json index 3ae484dc0ac..85c0d062a38 100644 --- a/static/code/stackblitz/v7/react/package-lock.json +++ b/static/code/stackblitz/v7/react/package-lock.json @@ -1628,9 +1628,9 @@ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" }, "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -2758,9 +2758,9 @@ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" }, "typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==" + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==" }, "undici-types": { "version": "6.21.0", diff --git a/static/code/stackblitz/v7/vue/package-lock.json b/static/code/stackblitz/v7/vue/package-lock.json index 5b98d0470f8..2380146e495 100644 --- a/static/code/stackblitz/v7/vue/package-lock.json +++ b/static/code/stackblitz/v7/vue/package-lock.json @@ -1218,9 +1218,9 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "devOptional": true, "bin": { "tsc": "bin/tsc", @@ -2092,9 +2092,9 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "devOptional": true }, "vite": { diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index a15c9c82720..7c16fbcff82 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -1734,9 +1734,9 @@ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" }, "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -2924,9 +2924,9 @@ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" }, "typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==" + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==" }, "undici-types": { "version": "6.21.0", diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index 3b20cf37b8b..c01168329c1 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -1346,9 +1346,9 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "devOptional": true, "bin": { "tsc": "bin/tsc", @@ -2287,9 +2287,9 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "version": "5.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", + "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", "devOptional": true }, "vite": { From 6df374d49a2396c5b9129626a5047eb548844730 Mon Sep 17 00:00:00 2001 From: Brandy Smith Date: Tue, 5 Aug 2025 11:02:59 -0400 Subject: [PATCH 059/129] docs(migration): remove unused migration files (#4239) Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com> --- static/usage/v8/checkbox/migration/index.md | 188 -------------- static/usage/v8/input/migration/index.md | 248 ------------------- static/usage/v8/radio/migration/index.md | 188 -------------- static/usage/v8/range/migration/index.md | 256 -------------------- static/usage/v8/select/migration/index.md | 140 ----------- static/usage/v8/textarea/migration/index.md | 248 ------------------- static/usage/v8/toggle/migration/index.md | 188 -------------- 7 files changed, 1456 deletions(-) delete mode 100644 static/usage/v8/checkbox/migration/index.md delete mode 100644 static/usage/v8/input/migration/index.md delete mode 100644 static/usage/v8/radio/migration/index.md delete mode 100644 static/usage/v8/range/migration/index.md delete mode 100644 static/usage/v8/select/migration/index.md delete mode 100644 static/usage/v8/textarea/migration/index.md delete mode 100644 static/usage/v8/toggle/migration/index.md diff --git a/static/usage/v8/checkbox/migration/index.md b/static/usage/v8/checkbox/migration/index.md deleted file mode 100644 index acf77957566..00000000000 --- a/static/usage/v8/checkbox/migration/index.md +++ /dev/null @@ -1,188 +0,0 @@ -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -````mdx-code-block - - - -```html - - - - - Checkbox Label - - - - - - Checkbox Label - - - - - - - Checkbox Label - - - - - - Checkbox Label - - - - - - - Checkbox Label - - - - - - Checkbox Label - -``` - - - -```html - - - - - Checkbox Label - - - - - - Checkbox Label - - - - - - - Checkbox Label - - - - - - Checkbox Label - - - - - - - Checkbox Label - - - - - - Checkbox Label - -``` - - - -```tsx -{/* Basic */} - -{/* Before */} - - Checkbox Label - - - -{/* After */} - - Checkbox Label - - -{/* Fixed Labels */} - -{/* Before */} - - Checkbox Label - - - -{/* After */} - - Checkbox Label - - -{/* Checkbox at the start of line, Label at the end of line */} - -{/* Before */} - - Checkbox Label - - - -{/* After */} - - Checkbox Label - -``` - - - -```html - - - - - Checkbox Label - - - - - - Checkbox Label - - - - - - - Checkbox Label - - - - - - Checkbox Label - - - - - - - Checkbox Label - - - - - - Checkbox Label - -``` - - -```` diff --git a/static/usage/v8/input/migration/index.md b/static/usage/v8/input/migration/index.md deleted file mode 100644 index 34e3ccaece5..00000000000 --- a/static/usage/v8/input/migration/index.md +++ /dev/null @@ -1,248 +0,0 @@ -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -````mdx-code-block - - - -```html - - - - - Email: - - - - - - - - - - - - - - Email: - - - - - - - - - - - - - Email: - -
Enter an email
-
Please enter a valid email
-
- - - - - - -``` -
- - -```html - - - - - Email: - - - - - - - - - - - - - - Email: - - - - - - - - - - - - - Email: - -
Enter an email
-
Please enter a valid email
-
- - - - - - -``` -
- - -```tsx -{/* Label and Label Position */} - -{/* Before */} - - Email: - - - -{/* After */} - - - - - -{/* Fill */} - -{/* Before */} - - Email: - - - -{/* After */} - -{/* Inputs using `fill` should not be placed in IonItem */} - - -{/* Input-specific features on IonItem */} - -{/* Before */} - - Email: - -
Enter an email
-
Please enter a valid email
-
- -{/* After */} - -{/* - Metadata such as counters and helper text should not - be used when an input is in an item/list. If you need to - provide more context on a input, consider using an IonNote - underneath the IonList. -*/} - - -``` -
- - -```html - - - - - Email: - - - - - - - - - - - - - - Email: - - - - - - - - - - - - - Email: - -
Enter an email
-
Please enter a valid email
-
- - - - - - -``` -
-
-```` diff --git a/static/usage/v8/radio/migration/index.md b/static/usage/v8/radio/migration/index.md deleted file mode 100644 index 4c0477f1e4a..00000000000 --- a/static/usage/v8/radio/migration/index.md +++ /dev/null @@ -1,188 +0,0 @@ -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -````mdx-code-block - - - -```html - - - - - Radio Label - - - - - - Radio Label - - - - - - - Radio Label - - - - - - Radio Label - - - - - - - Radio Label - - - - - - Radio Label - -``` - - - -```html - - - - - Radio Label - - - - - - Radio Label - - - - - - - Radio Label - - - - - - Radio Label - - - - - - - Radio Label - - - - - - Radio Label - -``` - - - -```tsx -{/* Basic */} - -{/* Before */} - - Radio Label - - - -{/* After */} - - Radio Label - - -{/* Fixed Labels */} - -{/* Before */} - - Radio Label - - - -{/* After */} - - Radio Label - - -{/* Radio at the start of line, Label at the end of line */} - -{/* Before */} - - Radio Label - - - -{/* After */} - - Radio Label - -``` - - - -```html - - - - - Radio Label - - - - - - Radio Label - - - - - - - Radio Label - - - - - - Radio Label - - - - - - - Radio Label - - - - - - Radio Label - -``` - - -```` diff --git a/static/usage/v8/range/migration/index.md b/static/usage/v8/range/migration/index.md deleted file mode 100644 index 4025f91bc31..00000000000 --- a/static/usage/v8/range/migration/index.md +++ /dev/null @@ -1,256 +0,0 @@ -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -````mdx-code-block - - - -```html - - - - - Notifications - - - - - - - - - - - - - Notifications - - - - - - - - - - - - - Notifications - - - - - - - - - - - - - -
Notifications
-
- -
- - - - -
Notifications
-
-
-``` -
- - -```html - - - - - Notifications - - - - - - - - - - - - - Notifications - - - - - - - - - - - - - Notifications - - - - - - - - - - - - - -
Notifications
-
- -
- - - - -
Notifications
-
-
-``` -
- - -```tsx -{/* Basic */} - -{/* Before */} - - Notifications - - - -{/* After */} - - - - -{/* Fixed Labels */} - -{/* Before */} - - Notifications - - - -{/* After */} - - - - -{/* Range at the start of line, Label at the end of line */} - -{/* Before */} - - Notifications - - - -{/* After */} - - - - -{/* Custom HTML label */} - -{/* Before */} - - -
Notifications
-
- -
- - - - -
Notifications
-
-
-``` -
- - -```html - - - - - Notifications - - - - - - - - - - - - - Notifications - - - - - - - - - - - - - Notifications - - - - - - - - - - - - - -
Notifications
-
- -
- - - - -
Notifications
-
-
-``` -
-
-```` diff --git a/static/usage/v8/select/migration/index.md b/static/usage/v8/select/migration/index.md deleted file mode 100644 index daf1a3a2612..00000000000 --- a/static/usage/v8/select/migration/index.md +++ /dev/null @@ -1,140 +0,0 @@ -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -````mdx-code-block - - - -```html - - - - - Favorite Fruit: - ... - - - - - ... - - - - - - - - Favorite Fruit: - ... - - - - - -... -``` - - - -```html - - - - - Favorite Fruit: - ... - - - - - ... - - - - - - - - Favorite Fruit: - ... - - - - - -... -``` - - - -```tsx -{/* Label and Label Position */} - -{/* Before */} - - Favorite Fruit: - ... - - -{/* After */} - - ... - - - -{/* Fill */} - -{/* Before */} - - Favorite Fruit: - ... - - -{/* After */} - -{/* Inputs using `fill` should not be placed in IonItem */} -... -``` - - - -```html - - - - - Favorite Fruit: - ... - - - - - ... - - - - - - - - Favorite Fruit: - ... - - - - - -... -``` - - -```` diff --git a/static/usage/v8/textarea/migration/index.md b/static/usage/v8/textarea/migration/index.md deleted file mode 100644 index aa820c53b48..00000000000 --- a/static/usage/v8/textarea/migration/index.md +++ /dev/null @@ -1,248 +0,0 @@ -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -````mdx-code-block - - - -```html - - - - - Label: - - - - - - - - - - - - - - Label: - - - - - - - - - - - - - Label: - -
Enter text
-
Please enter text
-
- - - - - - -``` -
- - -```html - - - - - Label: - - - - - - - - - - - - - - Label: - - - - - - - - - - - - - Label: - -
Enter text
-
Please enter text
-
- - - - - - -``` -
- - -```tsx -{/* Label and Label Position */} - -{/* Before */} - - Label: - - - -{/* After */} - - - - - -{/* Fill */} - -{/* Before */} - - Label: - - - -{/* After */} - -{/* Textareas using `fill` should not be placed in IonItem */} - - -{/* Textarea-specific features on IonItem */} - -{/* Before */} - - Label: - -
Enter text
-
Please enter text
-
- -{/* After */} - -{/* - Metadata such as counters and helper text should not - be used when a textarea is in an item/list. If you need to - provide more context on a textarea, consider using an IonNote - underneath the IonList. -*/} - - -``` -
- - -```html - - - - - Label: - - - - - - - - - - - - - - Label: - - - - - - - - - - - - - Label: - -
Enter text
-
Please enter text
-
- - - - - - -``` -
-
-```` diff --git a/static/usage/v8/toggle/migration/index.md b/static/usage/v8/toggle/migration/index.md deleted file mode 100644 index a1f855766b8..00000000000 --- a/static/usage/v8/toggle/migration/index.md +++ /dev/null @@ -1,188 +0,0 @@ -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -````mdx-code-block - - - -```html - - - - - Notifications - - - - - - Notifications - - - - - - - Notifications - - - - - - Notifications - - - - - - - Notifications - - - - - - Notifications - -``` - - - -```html - - - - - Notifications - - - - - - Notifications - - - - - - - Notifications - - - - - - Notifications - - - - - - - Notifications - - - - - - Notifications - -``` - - - -```tsx -{/* Basic */} - -{/* Before */} - - Notifications - - - -{/* After */} - - Notifications - - -{/* Fixed Labels */} - -{/* Before */} - - Notifications - - - -{/* After */} - - Notifications - - -{/* Toggle at the start of line, Label at the end of line */} - -{/* Before */} - - Notifications - - - -{/* After */} - - Notifications - -``` - - - -```html - - - - - Notifications - - - - - - Notifications - - - - - - - Notifications - - - - - - Notifications - - - - - - - Notifications - - - - - - Notifications - -``` - - -```` From 63d43570affb35d5dcabe203885dd19c1e6ab035 Mon Sep 17 00:00:00 2001 From: Ken Sodemann Date: Tue, 5 Aug 2025 12:27:10 -0500 Subject: [PATCH 060/129] docs(storage): replace outdated or sunset products with active projects (#4238) Co-authored-by: Ken Sodemann --- docs/angular/storage.md | 40 ++++++++++++----- docs/react/storage.md | 47 +++++++++++++++----- docs/vue/storage.md | 42 ++++++++++++----- versioned_docs/version-v7/angular/storage.md | 40 ++++++++++++----- versioned_docs/version-v7/react/storage.md | 47 +++++++++++++++----- versioned_docs/version-v7/vue/storage.md | 42 ++++++++++++----- 6 files changed, 190 insertions(+), 68 deletions(-) diff --git a/docs/angular/storage.md b/docs/angular/storage.md index dad80e77f3a..b7774589e80 100644 --- a/docs/angular/storage.md +++ b/docs/angular/storage.md @@ -7,26 +7,44 @@ sidebar_label: Storage Angular App Data Storage Options - Ionic Documentation -There are variety of options available for storing data within an Ionic app. +There are a variety of options available for storing data within an Ionic application. It is best to choose options that best fit the needs of your application. A single application may have requirements that span multiple options. -Here are two official Ionic options: +:::info +Some storage options involve third-party plugins or products. In such cases, we neither endorse nor support those plugins or products. We are mentioning them here for informational purposes only. +::: -## Ionic Secure Storage +Here are some common use cases and solutions: -For teams building mission-critical apps or requiring encryption support, [Ionic Secure Storage](https://ionic.io/docs/secure-storage) is an official premium solution from the Ionic team that provides a cross-platform data storage system that works on iOS and Android. +## Local Application Settings and Data -It makes it easy to build high performance, offline-ready Ionic apps across iOS, Android, and the web. +Many applications need to locally store settings as well as other lightweight key/value data. The [Capacitor Preferences](https://capacitorjs.com/docs/apis/preferences) plugin is specifically designed to handle these scenarios. -[Learn more](https://ionic.io/products/secure-storage) +## Relational Data Storage (Mobile Only) -## @ionic/storage +Some applications, especially those following an offline-first methodology, may require locally storing high volumes of complex relational data. For such scenarios, a SQLite plugin may be used. The most common SQLite plugin offerings are: -For developers not requiring encryption nor relational data support, [@ionic/storage](https://github.com/ionic-team/ionic-storage) is an open source key/value API for building apps that work across storage engines on multiple platforms. +- [Cordova SQLite Storage](https://github.com/storesafe/cordova-sqlite-storage) (a [convenience wrapper](https://danielsogl.gitbook.io/awesome-cordova-plugins/sqlite) also exists for this plugin to aid in implementation) +- [Capacitor Community SQLite Plugin](https://github.com/capacitor-community/sqlite) -Additionally, Ionic Secure Storage has a driver that works with the key/value API in `@ionic/storage` while providing encryption and SQLite support. +## Non-Relational High Volume Data Storage (Mobile and Web) -Learn more about [@ionic/storage](https://github.com/ionic-team/ionic-storage) +For applications that need to store a high volume of data as well as operate on both web and mobile, a potential solution is to create a key/value pair data storage service that uses [indexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) on the web and one of the previously mentioned SQLite plugins on mobile. + +Here a sample of how this can be accomplished: + +- [Full application](https://github.com/ionic-enterprise/tutorials-and-demos-ng/tree/main/demos/sqlcipher-kv-pair) +- [Mobile Service](https://github.com/ionic-enterprise/tutorials-and-demos-ng/blob/main/demos/sqlcipher-kv-pair/src/app/core/mobile-kv-store.ts) +- [Web Service](https://github.com/ionic-enterprise/tutorials-and-demos-ng/blob/main/demos/sqlcipher-kv-pair/src/app/core/web-kv-store.ts) + +## Other Options + +Other storage options that provide local as well as cloud-based storage that work well within Capacitor applications also exist and may integrate well with your application. + +For example: + +- [PouchDB](https://pouchdb.com/) +- [Firestore](https://firebase.google.com/docs/firestore) diff --git a/docs/react/storage.md b/docs/react/storage.md index ea044c7ccc6..cf61466e673 100644 --- a/docs/react/storage.md +++ b/docs/react/storage.md @@ -1,25 +1,50 @@ --- +title: Data Storage sidebar_label: Storage --- -# Data Storage + + React App Data Storage Options - Ionic Documentation + + -There are variety of options available for storing data within an Ionic app. +There are a variety of options available for storing data within an Ionic application. It is best to choose options that best fit the needs of your application. A single application may have requirements that span multiple options. -Here are two official Ionic options: +:::info +Some storage options involve third-party plugins or products. In such cases, we neither endorse nor support those plugins or products. We are mentioning them here for informational purposes only. +::: -## Ionic Secure Storage +Here are some common use cases and solutions: -For teams building mission-critical apps or requiring encryption support, [Ionic Secure Storage](https://ionic.io/docs/secure-storage) is an official premium solution from the Ionic team that provides a cross-platform data storage system that works on iOS and Android. +## Local Application Settings and Data -It makes it easy to build high performance, offline-ready Ionic apps across iOS, Android, and the web. +Many applications need to locally store settings as well as other lightweight key/value data. The [Capacitor Preferences](https://capacitorjs.com/docs/apis/preferences) plugin is specifically designed to handle these scenarios. -[Learn more](https://ionic.io/products/secure-storage) +## Relational Data Storage (Mobile Only) -## @ionic/storage +Some applications, especially those following an offline-first methodology, may require locally storing high volumes of complex relational data. For such scenarios, a SQLite plugin may be used. The most common SQLite plugin offerings are: -For developers not requiring encryption nor relational data support, [@ionic/storage](https://github.com/ionic-team/ionic-storage) is an open source key/value API for building apps that work across storage engines on multiple platforms. +- [Cordova SQLite Storage](https://github.com/storesafe/cordova-sqlite-storage) (a [convenience wrapper](https://danielsogl.gitbook.io/awesome-cordova-plugins/sqlite) also exists for this plugin to aid in implementation) +- [Capacitor Community SQLite Plugin](https://github.com/capacitor-community/sqlite) -Additionally, Ionic Secure Storage has a driver that works with the key/value API in `@ionic/storage` while providing encryption and SQLite support. +## Non-Relational High Volume Data Storage (Mobile and Web) -Learn more about [@ionic/storage](https://github.com/ionic-team/ionic-storage) +For applications that need to store a high volume of data as well as operate on both web and mobile, a potential solution is to create a key/value pair data storage service that uses [indexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) on the web and one of the previously mentioned SQLite plugins on mobile. + +Here a sample of how this can be accomplished: + +- [Full application](https://github.com/ionic-enterprise/tutorials-and-demos-react/tree/main/demos/sqlcipher-kv-pair) +- [Mobile Service](https://github.com/ionic-enterprise/tutorials-and-demos-react/blob/main/demos/sqlcipher-kv-pair/src/utils/mobile-kv-store.ts) +- [Web Service](https://github.com/ionic-enterprise/tutorials-and-demos-react/blob/main/demos/sqlcipher-kv-pair/src/utils/web-kv-store.ts) + +## Other Options + +Other storage options that provide local as well as cloud-based storage that work well within Capacitor applications also exist and may integrate well with your application. + +For example: + +- [PouchDB](https://pouchdb.com/) +- [Firestore](https://firebase.google.com/docs/firestore) diff --git a/docs/vue/storage.md b/docs/vue/storage.md index 7909f96e793..6fcfc8b8c3b 100644 --- a/docs/vue/storage.md +++ b/docs/vue/storage.md @@ -4,29 +4,47 @@ sidebar_label: Storage --- - Vue App Data Storage for iOS and Android - Ionic Documentation + Vue App Data Storage Options - Ionic Documentation -There are variety of options available for storing data within an Ionic app. +There are a variety of options available for storing data within an Ionic application. It is best to choose options that best fit the needs of your application. A single application may have requirements that span multiple options. -Here are two official Ionic options: +:::info +Some storage options involve third-party plugins or products. In such cases, we neither endorse nor support those plugins or products. We are mentioning them here for informational purposes only. +::: -## Ionic Secure Storage +Here are some common use cases and solutions: -For teams building mission-critical apps or requiring encryption support, [Ionic Secure Storage](https://ionic.io/docs/secure-storage) is an official premium solution from the Ionic team that provides a cross-platform data storage system that works on iOS and Android. +## Local Application Settings and Data -It makes it easy to build high performance, offline-ready Ionic apps across iOS, Android, and the web. +Many applications need to locally store settings as well as other lightweight key/value data. The [Capacitor Preferences](https://capacitorjs.com/docs/apis/preferences) plugin is specifically designed to handle these scenarios. -[Learn more](https://ionic.io/products/secure-storage) +## Relational Data Storage (Mobile Only) -## @ionic/storage +Some applications, especially those following an offline-first methodology, may require locally storing high volumes of complex relational data. For such scenarios, a SQLite plugin may be used. The most common SQLite plugin offerings are: -For developers not requiring encryption nor relational data support, [@ionic/storage](https://github.com/ionic-team/ionic-storage) is an open source key/value API for building apps that work across storage engines on multiple platforms. +- [Cordova SQLite Storage](https://github.com/storesafe/cordova-sqlite-storage) (a [convenience wrapper](https://danielsogl.gitbook.io/awesome-cordova-plugins/sqlite) also exists for this plugin to aid in implementation) +- [Capacitor Community SQLite Plugin](https://github.com/capacitor-community/sqlite) -Additionally, Ionic Secure Storage has a driver that works with the key/value API in `@ionic/storage` while providing encryption and SQLite support. +## Non-Relational High Volume Data Storage (Mobile and Web) -Learn more about [@ionic/storage](https://github.com/ionic-team/ionic-storage) +For applications that need to store a high volume of data as well as operate on both web and mobile, a potential solution is to create a key/value pair data storage service that uses [indexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) on the web and one of the previously mentioned SQLite plugins on mobile. + +Here a sample of how this can be accomplished: + +- [Full application](https://github.com/ionic-enterprise/tutorials-and-demos-vue/tree/main/demos/sqlcipher-kv-pair) +- [Mobile Service](https://github.com/ionic-enterprise/tutorials-and-demos-vue/blob/main/demos/sqlcipher-kv-pair/src/composables/mobile-kv-store.ts) +- [Web Service](https://github.com/ionic-enterprise/tutorials-and-demos-vue/blob/main/demos/sqlcipher-kv-pair/src/composables/web-kv-store.ts) + +## Other Options + +Other storage options that provide local as well as cloud-based storage that work well within Capacitor applications also exist and may integrate well with your application. + +For example: + +- [PouchDB](https://pouchdb.com/) +- [Firestore](https://firebase.google.com/docs/firestore) diff --git a/versioned_docs/version-v7/angular/storage.md b/versioned_docs/version-v7/angular/storage.md index dad80e77f3a..b7774589e80 100644 --- a/versioned_docs/version-v7/angular/storage.md +++ b/versioned_docs/version-v7/angular/storage.md @@ -7,26 +7,44 @@ sidebar_label: Storage Angular App Data Storage Options - Ionic Documentation -There are variety of options available for storing data within an Ionic app. +There are a variety of options available for storing data within an Ionic application. It is best to choose options that best fit the needs of your application. A single application may have requirements that span multiple options. -Here are two official Ionic options: +:::info +Some storage options involve third-party plugins or products. In such cases, we neither endorse nor support those plugins or products. We are mentioning them here for informational purposes only. +::: -## Ionic Secure Storage +Here are some common use cases and solutions: -For teams building mission-critical apps or requiring encryption support, [Ionic Secure Storage](https://ionic.io/docs/secure-storage) is an official premium solution from the Ionic team that provides a cross-platform data storage system that works on iOS and Android. +## Local Application Settings and Data -It makes it easy to build high performance, offline-ready Ionic apps across iOS, Android, and the web. +Many applications need to locally store settings as well as other lightweight key/value data. The [Capacitor Preferences](https://capacitorjs.com/docs/apis/preferences) plugin is specifically designed to handle these scenarios. -[Learn more](https://ionic.io/products/secure-storage) +## Relational Data Storage (Mobile Only) -## @ionic/storage +Some applications, especially those following an offline-first methodology, may require locally storing high volumes of complex relational data. For such scenarios, a SQLite plugin may be used. The most common SQLite plugin offerings are: -For developers not requiring encryption nor relational data support, [@ionic/storage](https://github.com/ionic-team/ionic-storage) is an open source key/value API for building apps that work across storage engines on multiple platforms. +- [Cordova SQLite Storage](https://github.com/storesafe/cordova-sqlite-storage) (a [convenience wrapper](https://danielsogl.gitbook.io/awesome-cordova-plugins/sqlite) also exists for this plugin to aid in implementation) +- [Capacitor Community SQLite Plugin](https://github.com/capacitor-community/sqlite) -Additionally, Ionic Secure Storage has a driver that works with the key/value API in `@ionic/storage` while providing encryption and SQLite support. +## Non-Relational High Volume Data Storage (Mobile and Web) -Learn more about [@ionic/storage](https://github.com/ionic-team/ionic-storage) +For applications that need to store a high volume of data as well as operate on both web and mobile, a potential solution is to create a key/value pair data storage service that uses [indexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) on the web and one of the previously mentioned SQLite plugins on mobile. + +Here a sample of how this can be accomplished: + +- [Full application](https://github.com/ionic-enterprise/tutorials-and-demos-ng/tree/main/demos/sqlcipher-kv-pair) +- [Mobile Service](https://github.com/ionic-enterprise/tutorials-and-demos-ng/blob/main/demos/sqlcipher-kv-pair/src/app/core/mobile-kv-store.ts) +- [Web Service](https://github.com/ionic-enterprise/tutorials-and-demos-ng/blob/main/demos/sqlcipher-kv-pair/src/app/core/web-kv-store.ts) + +## Other Options + +Other storage options that provide local as well as cloud-based storage that work well within Capacitor applications also exist and may integrate well with your application. + +For example: + +- [PouchDB](https://pouchdb.com/) +- [Firestore](https://firebase.google.com/docs/firestore) diff --git a/versioned_docs/version-v7/react/storage.md b/versioned_docs/version-v7/react/storage.md index ea044c7ccc6..cf61466e673 100644 --- a/versioned_docs/version-v7/react/storage.md +++ b/versioned_docs/version-v7/react/storage.md @@ -1,25 +1,50 @@ --- +title: Data Storage sidebar_label: Storage --- -# Data Storage + + React App Data Storage Options - Ionic Documentation + + -There are variety of options available for storing data within an Ionic app. +There are a variety of options available for storing data within an Ionic application. It is best to choose options that best fit the needs of your application. A single application may have requirements that span multiple options. -Here are two official Ionic options: +:::info +Some storage options involve third-party plugins or products. In such cases, we neither endorse nor support those plugins or products. We are mentioning them here for informational purposes only. +::: -## Ionic Secure Storage +Here are some common use cases and solutions: -For teams building mission-critical apps or requiring encryption support, [Ionic Secure Storage](https://ionic.io/docs/secure-storage) is an official premium solution from the Ionic team that provides a cross-platform data storage system that works on iOS and Android. +## Local Application Settings and Data -It makes it easy to build high performance, offline-ready Ionic apps across iOS, Android, and the web. +Many applications need to locally store settings as well as other lightweight key/value data. The [Capacitor Preferences](https://capacitorjs.com/docs/apis/preferences) plugin is specifically designed to handle these scenarios. -[Learn more](https://ionic.io/products/secure-storage) +## Relational Data Storage (Mobile Only) -## @ionic/storage +Some applications, especially those following an offline-first methodology, may require locally storing high volumes of complex relational data. For such scenarios, a SQLite plugin may be used. The most common SQLite plugin offerings are: -For developers not requiring encryption nor relational data support, [@ionic/storage](https://github.com/ionic-team/ionic-storage) is an open source key/value API for building apps that work across storage engines on multiple platforms. +- [Cordova SQLite Storage](https://github.com/storesafe/cordova-sqlite-storage) (a [convenience wrapper](https://danielsogl.gitbook.io/awesome-cordova-plugins/sqlite) also exists for this plugin to aid in implementation) +- [Capacitor Community SQLite Plugin](https://github.com/capacitor-community/sqlite) -Additionally, Ionic Secure Storage has a driver that works with the key/value API in `@ionic/storage` while providing encryption and SQLite support. +## Non-Relational High Volume Data Storage (Mobile and Web) -Learn more about [@ionic/storage](https://github.com/ionic-team/ionic-storage) +For applications that need to store a high volume of data as well as operate on both web and mobile, a potential solution is to create a key/value pair data storage service that uses [indexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) on the web and one of the previously mentioned SQLite plugins on mobile. + +Here a sample of how this can be accomplished: + +- [Full application](https://github.com/ionic-enterprise/tutorials-and-demos-react/tree/main/demos/sqlcipher-kv-pair) +- [Mobile Service](https://github.com/ionic-enterprise/tutorials-and-demos-react/blob/main/demos/sqlcipher-kv-pair/src/utils/mobile-kv-store.ts) +- [Web Service](https://github.com/ionic-enterprise/tutorials-and-demos-react/blob/main/demos/sqlcipher-kv-pair/src/utils/web-kv-store.ts) + +## Other Options + +Other storage options that provide local as well as cloud-based storage that work well within Capacitor applications also exist and may integrate well with your application. + +For example: + +- [PouchDB](https://pouchdb.com/) +- [Firestore](https://firebase.google.com/docs/firestore) diff --git a/versioned_docs/version-v7/vue/storage.md b/versioned_docs/version-v7/vue/storage.md index 7909f96e793..6fcfc8b8c3b 100644 --- a/versioned_docs/version-v7/vue/storage.md +++ b/versioned_docs/version-v7/vue/storage.md @@ -4,29 +4,47 @@ sidebar_label: Storage --- - Vue App Data Storage for iOS and Android - Ionic Documentation + Vue App Data Storage Options - Ionic Documentation -There are variety of options available for storing data within an Ionic app. +There are a variety of options available for storing data within an Ionic application. It is best to choose options that best fit the needs of your application. A single application may have requirements that span multiple options. -Here are two official Ionic options: +:::info +Some storage options involve third-party plugins or products. In such cases, we neither endorse nor support those plugins or products. We are mentioning them here for informational purposes only. +::: -## Ionic Secure Storage +Here are some common use cases and solutions: -For teams building mission-critical apps or requiring encryption support, [Ionic Secure Storage](https://ionic.io/docs/secure-storage) is an official premium solution from the Ionic team that provides a cross-platform data storage system that works on iOS and Android. +## Local Application Settings and Data -It makes it easy to build high performance, offline-ready Ionic apps across iOS, Android, and the web. +Many applications need to locally store settings as well as other lightweight key/value data. The [Capacitor Preferences](https://capacitorjs.com/docs/apis/preferences) plugin is specifically designed to handle these scenarios. -[Learn more](https://ionic.io/products/secure-storage) +## Relational Data Storage (Mobile Only) -## @ionic/storage +Some applications, especially those following an offline-first methodology, may require locally storing high volumes of complex relational data. For such scenarios, a SQLite plugin may be used. The most common SQLite plugin offerings are: -For developers not requiring encryption nor relational data support, [@ionic/storage](https://github.com/ionic-team/ionic-storage) is an open source key/value API for building apps that work across storage engines on multiple platforms. +- [Cordova SQLite Storage](https://github.com/storesafe/cordova-sqlite-storage) (a [convenience wrapper](https://danielsogl.gitbook.io/awesome-cordova-plugins/sqlite) also exists for this plugin to aid in implementation) +- [Capacitor Community SQLite Plugin](https://github.com/capacitor-community/sqlite) -Additionally, Ionic Secure Storage has a driver that works with the key/value API in `@ionic/storage` while providing encryption and SQLite support. +## Non-Relational High Volume Data Storage (Mobile and Web) -Learn more about [@ionic/storage](https://github.com/ionic-team/ionic-storage) +For applications that need to store a high volume of data as well as operate on both web and mobile, a potential solution is to create a key/value pair data storage service that uses [indexedDB](https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API) on the web and one of the previously mentioned SQLite plugins on mobile. + +Here a sample of how this can be accomplished: + +- [Full application](https://github.com/ionic-enterprise/tutorials-and-demos-vue/tree/main/demos/sqlcipher-kv-pair) +- [Mobile Service](https://github.com/ionic-enterprise/tutorials-and-demos-vue/blob/main/demos/sqlcipher-kv-pair/src/composables/mobile-kv-store.ts) +- [Web Service](https://github.com/ionic-enterprise/tutorials-and-demos-vue/blob/main/demos/sqlcipher-kv-pair/src/composables/web-kv-store.ts) + +## Other Options + +Other storage options that provide local as well as cloud-based storage that work well within Capacitor applications also exist and may integrate well with your application. + +For example: + +- [PouchDB](https://pouchdb.com/) +- [Firestore](https://firebase.google.com/docs/firestore) From 688866a95025031be2bc13c9c81324dc25a4795c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 7 Aug 2025 10:30:40 -0400 Subject: [PATCH 061/129] chore(deps): update ionic to v8.7.2 (#4240) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../code/stackblitz/v8/angular/package.json | 4 +- static/code/stackblitz/v8/html/package.json | 2 +- .../stackblitz/v8/react/package-lock.json | 48 +++++++++---------- static/code/stackblitz/v8/react/package.json | 4 +- .../code/stackblitz/v8/vue/package-lock.json | 48 +++++++++---------- static/code/stackblitz/v8/vue/package.json | 4 +- 6 files changed, 55 insertions(+), 55 deletions(-) diff --git a/static/code/stackblitz/v8/angular/package.json b/static/code/stackblitz/v8/angular/package.json index c9f6be2329f..e695dfe99a2 100644 --- a/static/code/stackblitz/v8/angular/package.json +++ b/static/code/stackblitz/v8/angular/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@ionic/angular": "8.7.1", - "@ionic/core": "8.7.1", + "@ionic/angular": "8.7.2", + "@ionic/core": "8.7.2", "ionicons": "8.0.13", "rxjs": "^7.8.1", "tslib": "^2.5.0", diff --git a/static/code/stackblitz/v8/html/package.json b/static/code/stackblitz/v8/html/package.json index 4b159c1495f..31fa964edbf 100644 --- a/static/code/stackblitz/v8/html/package.json +++ b/static/code/stackblitz/v8/html/package.json @@ -9,7 +9,7 @@ "start": "vite preview" }, "dependencies": { - "@ionic/core": "8.7.1", + "@ionic/core": "8.7.2", "ionicons": "8.0.13" }, "devDependencies": { diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index 7c16fbcff82..9829ebe0133 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -8,8 +8,8 @@ "name": "vite-react-typescript", "version": "0.1.0", "dependencies": { - "@ionic/react": "8.7.1", - "@ionic/react-router": "8.7.1", + "@ionic/react": "8.7.2", + "@ionic/react-router": "8.7.2", "@types/node": "^22.0.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", @@ -669,9 +669,9 @@ } }, "node_modules/@ionic/core": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.7.1.tgz", - "integrity": "sha512-TSJDPWayn23Dw0gjwvbumo6piDrpZvyVccgMUGyKDrqduvBogzIsPrjPBYfTF4z4Sc/W0HMad17nBskC2+ybqw==", + "version": "8.7.2", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.7.2.tgz", + "integrity": "sha512-u1xTJHltvcwiHkwGowQ/uywiUmvszNeR4mXT5JSp1RH6npe8e9doIY9KSzKRrzpWu1T+H0bUwGbhaYg/I/poRA==", "dependencies": { "@stencil/core": "4.36.2", "ionicons": "^8.0.13", @@ -679,11 +679,11 @@ } }, "node_modules/@ionic/react": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.7.1.tgz", - "integrity": "sha512-J3PcON2QKqaHiY4+IHy24OoQIzVCCYkHpGM6gAEvuvhXSaQ4nv466eNYCaxnjma4fkz9tS2fwTbPc0C6X8bnXg==", + "version": "8.7.2", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.7.2.tgz", + "integrity": "sha512-HEKZvbrM7O9pjPtrWH48uarm+O84pVbjfc8aSU/PTG4cE+TbYhSW9xMqIAUEpIUxb56bB1B189uDfPI5zBc7Bg==", "dependencies": { - "@ionic/core": "8.7.1", + "@ionic/core": "8.7.2", "ionicons": "^8.0.13", "tslib": "*" }, @@ -693,11 +693,11 @@ } }, "node_modules/@ionic/react-router": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.7.1.tgz", - "integrity": "sha512-zpCngFcvqKqeZP7SV6038rkU2eVRbAdrRVINasRSNnnPPnPVqMGlUpQUQ2ql6STr6giMYsNR+riFenkY9pFIdw==", + "version": "8.7.2", + "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.7.2.tgz", + "integrity": "sha512-URQBIYPWyB1t8s1xQjZn19NCOVFgmFAVwSlAZmemiTDzvU7JGa+rqtjufhUrq7DYbJV7SlgE+YbYwdC34NFJEg==", "dependencies": { - "@ionic/react": "8.7.1", + "@ionic/react": "8.7.2", "tslib": "*" }, "peerDependencies": { @@ -2208,9 +2208,9 @@ "optional": true }, "@ionic/core": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.7.1.tgz", - "integrity": "sha512-TSJDPWayn23Dw0gjwvbumo6piDrpZvyVccgMUGyKDrqduvBogzIsPrjPBYfTF4z4Sc/W0HMad17nBskC2+ybqw==", + "version": "8.7.2", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.7.2.tgz", + "integrity": "sha512-u1xTJHltvcwiHkwGowQ/uywiUmvszNeR4mXT5JSp1RH6npe8e9doIY9KSzKRrzpWu1T+H0bUwGbhaYg/I/poRA==", "requires": { "@stencil/core": "4.36.2", "ionicons": "^8.0.13", @@ -2218,21 +2218,21 @@ } }, "@ionic/react": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.7.1.tgz", - "integrity": "sha512-J3PcON2QKqaHiY4+IHy24OoQIzVCCYkHpGM6gAEvuvhXSaQ4nv466eNYCaxnjma4fkz9tS2fwTbPc0C6X8bnXg==", + "version": "8.7.2", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.7.2.tgz", + "integrity": "sha512-HEKZvbrM7O9pjPtrWH48uarm+O84pVbjfc8aSU/PTG4cE+TbYhSW9xMqIAUEpIUxb56bB1B189uDfPI5zBc7Bg==", "requires": { - "@ionic/core": "8.7.1", + "@ionic/core": "8.7.2", "ionicons": "^8.0.13", "tslib": "*" } }, "@ionic/react-router": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.7.1.tgz", - "integrity": "sha512-zpCngFcvqKqeZP7SV6038rkU2eVRbAdrRVINasRSNnnPPnPVqMGlUpQUQ2ql6STr6giMYsNR+riFenkY9pFIdw==", + "version": "8.7.2", + "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.7.2.tgz", + "integrity": "sha512-URQBIYPWyB1t8s1xQjZn19NCOVFgmFAVwSlAZmemiTDzvU7JGa+rqtjufhUrq7DYbJV7SlgE+YbYwdC34NFJEg==", "requires": { - "@ionic/react": "8.7.1", + "@ionic/react": "8.7.2", "tslib": "*" } }, diff --git a/static/code/stackblitz/v8/react/package.json b/static/code/stackblitz/v8/react/package.json index 63b3a0cc4e9..4efa40fdc37 100644 --- a/static/code/stackblitz/v8/react/package.json +++ b/static/code/stackblitz/v8/react/package.json @@ -3,8 +3,8 @@ "version": "0.1.0", "private": true, "dependencies": { - "@ionic/react": "8.7.1", - "@ionic/react-router": "8.7.1", + "@ionic/react": "8.7.2", + "@ionic/react-router": "8.7.2", "@types/node": "^22.0.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index c01168329c1..bf9951b676d 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -8,8 +8,8 @@ "name": "vite-vue-starter", "version": "0.0.0", "dependencies": { - "@ionic/vue": "8.7.1", - "@ionic/vue-router": "8.7.1", + "@ionic/vue": "8.7.2", + "@ionic/vue-router": "8.7.2", "vue": "^3.2.25", "vue-router": "4.5.1" }, @@ -463,9 +463,9 @@ } }, "node_modules/@ionic/core": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.7.1.tgz", - "integrity": "sha512-TSJDPWayn23Dw0gjwvbumo6piDrpZvyVccgMUGyKDrqduvBogzIsPrjPBYfTF4z4Sc/W0HMad17nBskC2+ybqw==", + "version": "8.7.2", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.7.2.tgz", + "integrity": "sha512-u1xTJHltvcwiHkwGowQ/uywiUmvszNeR4mXT5JSp1RH6npe8e9doIY9KSzKRrzpWu1T+H0bUwGbhaYg/I/poRA==", "dependencies": { "@stencil/core": "4.36.2", "ionicons": "^8.0.13", @@ -473,21 +473,21 @@ } }, "node_modules/@ionic/vue": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.7.1.tgz", - "integrity": "sha512-b/wIsactN870z1t+jRWEemtCtO5QwBg5e49ycWiOjHYPYZd7UBU1lRWSrvzbtMNvBEYbTTWBHg/ewGFL7EFxBw==", + "version": "8.7.2", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.7.2.tgz", + "integrity": "sha512-5sOMt15X4DRHbIyrotv8FyUK8805V7ePJ36Hx0IS8Grv5PXySg+G0cN/bYHR+eg3Oc525ldkBlaM/cYwu1GOzQ==", "dependencies": { - "@ionic/core": "8.7.1", + "@ionic/core": "8.7.2", "@stencil/vue-output-target": "0.10.7", "ionicons": "^8.0.13" } }, "node_modules/@ionic/vue-router": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.7.1.tgz", - "integrity": "sha512-k+iku90EZ/VQswK0lFDq++Lq7GzDwIARMzp2e887ORsnfficaP7pBsIHB2BpLjzEtxClx0pyBMeqiFxvZiH/Gw==", + "version": "8.7.2", + "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.7.2.tgz", + "integrity": "sha512-KfT3RmunE8N/xYgEOcBwgI62x7pPxu8eoaWdpy2XkHX5oDgMcZgFuD8+ffoOIMtAOL5GCNxD+5cSGNcdLmj7cQ==", "dependencies": { - "@ionic/vue": "8.7.1" + "@ionic/vue": "8.7.2" } }, "node_modules/@jridgewell/sourcemap-codec": { @@ -1693,9 +1693,9 @@ "optional": true }, "@ionic/core": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.7.1.tgz", - "integrity": "sha512-TSJDPWayn23Dw0gjwvbumo6piDrpZvyVccgMUGyKDrqduvBogzIsPrjPBYfTF4z4Sc/W0HMad17nBskC2+ybqw==", + "version": "8.7.2", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.7.2.tgz", + "integrity": "sha512-u1xTJHltvcwiHkwGowQ/uywiUmvszNeR4mXT5JSp1RH6npe8e9doIY9KSzKRrzpWu1T+H0bUwGbhaYg/I/poRA==", "requires": { "@stencil/core": "4.36.2", "ionicons": "^8.0.13", @@ -1703,21 +1703,21 @@ } }, "@ionic/vue": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.7.1.tgz", - "integrity": "sha512-b/wIsactN870z1t+jRWEemtCtO5QwBg5e49ycWiOjHYPYZd7UBU1lRWSrvzbtMNvBEYbTTWBHg/ewGFL7EFxBw==", + "version": "8.7.2", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.7.2.tgz", + "integrity": "sha512-5sOMt15X4DRHbIyrotv8FyUK8805V7ePJ36Hx0IS8Grv5PXySg+G0cN/bYHR+eg3Oc525ldkBlaM/cYwu1GOzQ==", "requires": { - "@ionic/core": "8.7.1", + "@ionic/core": "8.7.2", "@stencil/vue-output-target": "0.10.7", "ionicons": "^8.0.13" } }, "@ionic/vue-router": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.7.1.tgz", - "integrity": "sha512-k+iku90EZ/VQswK0lFDq++Lq7GzDwIARMzp2e887ORsnfficaP7pBsIHB2BpLjzEtxClx0pyBMeqiFxvZiH/Gw==", + "version": "8.7.2", + "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.7.2.tgz", + "integrity": "sha512-KfT3RmunE8N/xYgEOcBwgI62x7pPxu8eoaWdpy2XkHX5oDgMcZgFuD8+ffoOIMtAOL5GCNxD+5cSGNcdLmj7cQ==", "requires": { - "@ionic/vue": "8.7.1" + "@ionic/vue": "8.7.2" } }, "@jridgewell/sourcemap-codec": { diff --git a/static/code/stackblitz/v8/vue/package.json b/static/code/stackblitz/v8/vue/package.json index 4786a9cbf91..f33a2959f90 100644 --- a/static/code/stackblitz/v8/vue/package.json +++ b/static/code/stackblitz/v8/vue/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@ionic/vue": "8.7.1", - "@ionic/vue-router": "8.7.1", + "@ionic/vue": "8.7.2", + "@ionic/vue-router": "8.7.2", "vue": "^3.2.25", "vue-router": "4.5.1" }, From de08bf73d4f4b962029519f8556aa34a6cdc1bea Mon Sep 17 00:00:00 2001 From: Colin Bares Date: Fri, 8 Aug 2025 15:05:34 -0500 Subject: [PATCH 062/129] docs(radio): add example for wrapping label text (#4234) --- docs/api/radio.md | 8 ++++ .../angular/example_component_css.md | 9 ++++ .../angular/example_component_html.md | 17 +++++++ .../angular/example_component_ts.md | 12 +++++ static/usage/v7/radio/label-wrap/demo.html | 48 +++++++++++++++++++ static/usage/v7/radio/label-wrap/index.md | 34 +++++++++++++ .../usage/v7/radio/label-wrap/javascript.md | 27 +++++++++++ .../v7/radio/label-wrap/react/main_css.md | 9 ++++ .../v7/radio/label-wrap/react/main_tsx.md | 29 +++++++++++ static/usage/v7/radio/label-wrap/vue.md | 38 +++++++++++++++ .../angular/example_component_css.md | 9 ++++ .../angular/example_component_html.md | 17 +++++++ .../angular/example_component_ts.md | 12 +++++ static/usage/v8/radio/label-wrap/demo.html | 48 +++++++++++++++++++ static/usage/v8/radio/label-wrap/index.md | 34 +++++++++++++ .../usage/v8/radio/label-wrap/javascript.md | 27 +++++++++++ .../v8/radio/label-wrap/react/main_css.md | 9 ++++ .../v8/radio/label-wrap/react/main_tsx.md | 29 +++++++++++ static/usage/v8/radio/label-wrap/vue.md | 38 +++++++++++++++ versioned_docs/version-v7/api/radio.md | 8 ++++ 20 files changed, 462 insertions(+) create mode 100644 static/usage/v7/radio/label-wrap/angular/example_component_css.md create mode 100644 static/usage/v7/radio/label-wrap/angular/example_component_html.md create mode 100644 static/usage/v7/radio/label-wrap/angular/example_component_ts.md create mode 100644 static/usage/v7/radio/label-wrap/demo.html create mode 100644 static/usage/v7/radio/label-wrap/index.md create mode 100644 static/usage/v7/radio/label-wrap/javascript.md create mode 100644 static/usage/v7/radio/label-wrap/react/main_css.md create mode 100644 static/usage/v7/radio/label-wrap/react/main_tsx.md create mode 100644 static/usage/v7/radio/label-wrap/vue.md create mode 100644 static/usage/v8/radio/label-wrap/angular/example_component_css.md create mode 100644 static/usage/v8/radio/label-wrap/angular/example_component_html.md create mode 100644 static/usage/v8/radio/label-wrap/angular/example_component_ts.md create mode 100644 static/usage/v8/radio/label-wrap/demo.html create mode 100644 static/usage/v8/radio/label-wrap/index.md create mode 100644 static/usage/v8/radio/label-wrap/javascript.md create mode 100644 static/usage/v8/radio/label-wrap/react/main_css.md create mode 100644 static/usage/v8/radio/label-wrap/react/main_tsx.md create mode 100644 static/usage/v8/radio/label-wrap/vue.md diff --git a/docs/api/radio.md b/docs/api/radio.md index 3cd52c13a4b..62a86923dda 100644 --- a/docs/api/radio.md +++ b/docs/api/radio.md @@ -36,6 +36,14 @@ import LabelPlacement from '@site/static/usage/v8/radio/label-placement/index.md +## Label Wrapping + +Regardless of label placement, long text will not wrap by default. If the width of the radio is constrained, overflowing text will be truncated with an ellipsis. You can enable text wrapping by adding the `ion-text-wrap` class to a wrapper around the radio text or styling the `label` shadow part using the `::part()` selector. + +import LabelWrap from '@site/static/usage/v8/radio/label-wrap/index.md'; + + + ## Object Value References By default, the radio group uses strict equality (`===`) to determine if an option is selected. This can be overridden by providing a property name or a function to the `compareWith` property. diff --git a/static/usage/v7/radio/label-wrap/angular/example_component_css.md b/static/usage/v7/radio/label-wrap/angular/example_component_css.md new file mode 100644 index 00000000000..ec109440a50 --- /dev/null +++ b/static/usage/v7/radio/label-wrap/angular/example_component_css.md @@ -0,0 +1,9 @@ +```css +ion-list { + width: 250px; +} + +ion-radio.wrapped::part(label) { + white-space: normal; +} +``` diff --git a/static/usage/v7/radio/label-wrap/angular/example_component_html.md b/static/usage/v7/radio/label-wrap/angular/example_component_html.md new file mode 100644 index 00000000000..0837d088fab --- /dev/null +++ b/static/usage/v7/radio/label-wrap/angular/example_component_html.md @@ -0,0 +1,17 @@ +```html + + + + Truncated with ellipsis by default + + + Wrapping with text-wrap applied to label shadow part + + + +
Wrapping with ion-text-wrap class applied wrapper element
+
+
+
+
+``` diff --git a/static/usage/v7/radio/label-wrap/angular/example_component_ts.md b/static/usage/v7/radio/label-wrap/angular/example_component_ts.md new file mode 100644 index 00000000000..151a9f44f80 --- /dev/null +++ b/static/usage/v7/radio/label-wrap/angular/example_component_ts.md @@ -0,0 +1,12 @@ +```ts +import { Component } from '@angular/core'; +import { IonItem, IonList, IonRadio, IonRadioGroup } from '@ionic/angular/standalone'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + styleUrls: ['example.component.css'], + imports: [IonItem, IonList, IonRadio, IonRadioGroup], +}) +export class ExampleComponent {} +``` diff --git a/static/usage/v7/radio/label-wrap/demo.html b/static/usage/v7/radio/label-wrap/demo.html new file mode 100644 index 00000000000..6f8f030bcf2 --- /dev/null +++ b/static/usage/v7/radio/label-wrap/demo.html @@ -0,0 +1,48 @@ + + + + + + Radio + + + + + + + + + + + +
+ + + + Truncated with ellipsis by default + + + + Wrapping with text-wrap applied to label shadow part + + + + +
Wrapping with ion-text-wrap class applied wrapper element
+
+
+
+
+
+
+
+ + diff --git a/static/usage/v7/radio/label-wrap/index.md b/static/usage/v7/radio/label-wrap/index.md new file mode 100644 index 00000000000..95f743485e5 --- /dev/null +++ b/static/usage/v7/radio/label-wrap/index.md @@ -0,0 +1,34 @@ +import Playground from '@site/src/components/global/Playground'; + +import javascript from './javascript.md'; + +import react_main_tsx from './react/main_tsx.md'; +import react_main_css from './react/main_css.md'; + +import vue from './vue.md'; + +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_css from './angular/example_component_css.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; + + diff --git a/static/usage/v7/radio/label-wrap/javascript.md b/static/usage/v7/radio/label-wrap/javascript.md new file mode 100644 index 00000000000..1bce1a8fd7a --- /dev/null +++ b/static/usage/v7/radio/label-wrap/javascript.md @@ -0,0 +1,27 @@ +```html + + + + Truncated with ellipsis by default + + + Wrapping with text-wrap applied to label shadow part + + + +
Wrapping with ion-text-wrap class applied wrapper element
+
+
+
+
+ + +``` diff --git a/static/usage/v7/radio/label-wrap/react/main_css.md b/static/usage/v7/radio/label-wrap/react/main_css.md new file mode 100644 index 00000000000..ec109440a50 --- /dev/null +++ b/static/usage/v7/radio/label-wrap/react/main_css.md @@ -0,0 +1,9 @@ +```css +ion-list { + width: 250px; +} + +ion-radio.wrapped::part(label) { + white-space: normal; +} +``` diff --git a/static/usage/v7/radio/label-wrap/react/main_tsx.md b/static/usage/v7/radio/label-wrap/react/main_tsx.md new file mode 100644 index 00000000000..25b4d4618dc --- /dev/null +++ b/static/usage/v7/radio/label-wrap/react/main_tsx.md @@ -0,0 +1,29 @@ +```tsx +import React from 'react'; +import { IonList, IonItem, IonRadio, IonRadioGroup } from '@ionic/react'; + +import './main.css'; + +function Example() { + return ( + + + + Truncated with ellipsis by default + + + + Wrapping with text-wrap applied to label shadow part + + + + +
Wrapping with ion-text-wrap class applied wrapper element
+
+
+
+
+ ); +} +export default Example; +``` diff --git a/static/usage/v7/radio/label-wrap/vue.md b/static/usage/v7/radio/label-wrap/vue.md new file mode 100644 index 00000000000..ecabbadb8b1 --- /dev/null +++ b/static/usage/v7/radio/label-wrap/vue.md @@ -0,0 +1,38 @@ +```html + + + + + +``` diff --git a/static/usage/v8/radio/label-wrap/angular/example_component_css.md b/static/usage/v8/radio/label-wrap/angular/example_component_css.md new file mode 100644 index 00000000000..ec109440a50 --- /dev/null +++ b/static/usage/v8/radio/label-wrap/angular/example_component_css.md @@ -0,0 +1,9 @@ +```css +ion-list { + width: 250px; +} + +ion-radio.wrapped::part(label) { + white-space: normal; +} +``` diff --git a/static/usage/v8/radio/label-wrap/angular/example_component_html.md b/static/usage/v8/radio/label-wrap/angular/example_component_html.md new file mode 100644 index 00000000000..0837d088fab --- /dev/null +++ b/static/usage/v8/radio/label-wrap/angular/example_component_html.md @@ -0,0 +1,17 @@ +```html + + + + Truncated with ellipsis by default + + + Wrapping with text-wrap applied to label shadow part + + + +
Wrapping with ion-text-wrap class applied wrapper element
+
+
+
+
+``` diff --git a/static/usage/v8/radio/label-wrap/angular/example_component_ts.md b/static/usage/v8/radio/label-wrap/angular/example_component_ts.md new file mode 100644 index 00000000000..151a9f44f80 --- /dev/null +++ b/static/usage/v8/radio/label-wrap/angular/example_component_ts.md @@ -0,0 +1,12 @@ +```ts +import { Component } from '@angular/core'; +import { IonItem, IonList, IonRadio, IonRadioGroup } from '@ionic/angular/standalone'; + +@Component({ + selector: 'app-example', + templateUrl: 'example.component.html', + styleUrls: ['example.component.css'], + imports: [IonItem, IonList, IonRadio, IonRadioGroup], +}) +export class ExampleComponent {} +``` diff --git a/static/usage/v8/radio/label-wrap/demo.html b/static/usage/v8/radio/label-wrap/demo.html new file mode 100644 index 00000000000..6f8f030bcf2 --- /dev/null +++ b/static/usage/v8/radio/label-wrap/demo.html @@ -0,0 +1,48 @@ + + + + + + Radio + + + + + + + + + + + +
+ + + + Truncated with ellipsis by default + + + + Wrapping with text-wrap applied to label shadow part + + + + +
Wrapping with ion-text-wrap class applied wrapper element
+
+
+
+
+
+
+
+ + diff --git a/static/usage/v8/radio/label-wrap/index.md b/static/usage/v8/radio/label-wrap/index.md new file mode 100644 index 00000000000..95f743485e5 --- /dev/null +++ b/static/usage/v8/radio/label-wrap/index.md @@ -0,0 +1,34 @@ +import Playground from '@site/src/components/global/Playground'; + +import javascript from './javascript.md'; + +import react_main_tsx from './react/main_tsx.md'; +import react_main_css from './react/main_css.md'; + +import vue from './vue.md'; + +import angular_example_component_html from './angular/example_component_html.md'; +import angular_example_component_css from './angular/example_component_css.md'; +import angular_example_component_ts from './angular/example_component_ts.md'; + + diff --git a/static/usage/v8/radio/label-wrap/javascript.md b/static/usage/v8/radio/label-wrap/javascript.md new file mode 100644 index 00000000000..1bce1a8fd7a --- /dev/null +++ b/static/usage/v8/radio/label-wrap/javascript.md @@ -0,0 +1,27 @@ +```html + + + + Truncated with ellipsis by default + + + Wrapping with text-wrap applied to label shadow part + + + +
Wrapping with ion-text-wrap class applied wrapper element
+
+
+
+
+ + +``` diff --git a/static/usage/v8/radio/label-wrap/react/main_css.md b/static/usage/v8/radio/label-wrap/react/main_css.md new file mode 100644 index 00000000000..ec109440a50 --- /dev/null +++ b/static/usage/v8/radio/label-wrap/react/main_css.md @@ -0,0 +1,9 @@ +```css +ion-list { + width: 250px; +} + +ion-radio.wrapped::part(label) { + white-space: normal; +} +``` diff --git a/static/usage/v8/radio/label-wrap/react/main_tsx.md b/static/usage/v8/radio/label-wrap/react/main_tsx.md new file mode 100644 index 00000000000..25b4d4618dc --- /dev/null +++ b/static/usage/v8/radio/label-wrap/react/main_tsx.md @@ -0,0 +1,29 @@ +```tsx +import React from 'react'; +import { IonList, IonItem, IonRadio, IonRadioGroup } from '@ionic/react'; + +import './main.css'; + +function Example() { + return ( + + + + Truncated with ellipsis by default + + + + Wrapping with text-wrap applied to label shadow part + + + + +
Wrapping with ion-text-wrap class applied wrapper element
+
+
+
+
+ ); +} +export default Example; +``` diff --git a/static/usage/v8/radio/label-wrap/vue.md b/static/usage/v8/radio/label-wrap/vue.md new file mode 100644 index 00000000000..ecabbadb8b1 --- /dev/null +++ b/static/usage/v8/radio/label-wrap/vue.md @@ -0,0 +1,38 @@ +```html + + + + + +``` diff --git a/versioned_docs/version-v7/api/radio.md b/versioned_docs/version-v7/api/radio.md index c470a326ed6..8cec4707042 100644 --- a/versioned_docs/version-v7/api/radio.md +++ b/versioned_docs/version-v7/api/radio.md @@ -39,6 +39,14 @@ import LabelPlacement from '@site/static/usage/v7/radio/label-placement/index.md +## Label Wrapping + +Regardless of label placement, long text will not wrap by default. If the width of the radio is constrained, overflowing text will be truncated with an ellipsis. You can enable text wrapping by adding the `ion-text-wrap` class to a wrapper around the radio text or styling the `label` shadow part using the `::part()` selector. + +import LabelWrap from '@site/static/usage/v7/radio/label-wrap/index.md'; + + + ## Object Value References By default, the radio group uses strict equality (`===`) to determine if an option is selected. This can be overridden by providing a property name or a function to the `compareWith` property. From 171ba030fb74a1d315a1a3582eba6d84569f59f5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Aug 2025 09:31:24 -0400 Subject: [PATCH 063/129] chore(deps): update dependency vite to v7.1.1 (#4245) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../stackblitz/v7/react/package-lock.json | 368 +++++++++--------- .../stackblitz/v8/react/package-lock.json | 368 +++++++++--------- 2 files changed, 368 insertions(+), 368 deletions(-) diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json index 85c0d062a38..fff34c957ac 100644 --- a/static/code/stackblitz/v7/react/package-lock.json +++ b/static/code/stackblitz/v7/react/package-lock.json @@ -744,9 +744,9 @@ "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.0.tgz", - "integrity": "sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", + "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", "cpu": [ "arm" ], @@ -756,9 +756,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.0.tgz", - "integrity": "sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", + "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", "cpu": [ "arm64" ], @@ -768,9 +768,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.0.tgz", - "integrity": "sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", + "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", "cpu": [ "arm64" ], @@ -780,9 +780,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.0.tgz", - "integrity": "sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", + "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", "cpu": [ "x64" ], @@ -792,9 +792,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.0.tgz", - "integrity": "sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", + "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", "cpu": [ "arm64" ], @@ -804,9 +804,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.0.tgz", - "integrity": "sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", + "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", "cpu": [ "x64" ], @@ -816,9 +816,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.0.tgz", - "integrity": "sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", + "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", "cpu": [ "arm" ], @@ -828,9 +828,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.0.tgz", - "integrity": "sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", + "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", "cpu": [ "arm" ], @@ -840,9 +840,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.0.tgz", - "integrity": "sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", + "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", "cpu": [ "arm64" ], @@ -852,9 +852,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.0.tgz", - "integrity": "sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", + "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", "cpu": [ "arm64" ], @@ -864,9 +864,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.0.tgz", - "integrity": "sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", + "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", "cpu": [ "loong64" ], @@ -875,10 +875,10 @@ "linux" ] }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.0.tgz", - "integrity": "sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==", + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", + "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", "cpu": [ "ppc64" ], @@ -888,9 +888,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.0.tgz", - "integrity": "sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", + "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", "cpu": [ "riscv64" ], @@ -900,9 +900,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.0.tgz", - "integrity": "sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", + "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", "cpu": [ "riscv64" ], @@ -912,9 +912,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.0.tgz", - "integrity": "sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", + "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", "cpu": [ "s390x" ], @@ -924,9 +924,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.0.tgz", - "integrity": "sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", + "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", "cpu": [ "x64" ], @@ -936,9 +936,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.0.tgz", - "integrity": "sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", + "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", "cpu": [ "x64" ], @@ -948,9 +948,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.0.tgz", - "integrity": "sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", + "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", "cpu": [ "arm64" ], @@ -960,9 +960,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.0.tgz", - "integrity": "sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", + "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", "cpu": [ "ia32" ], @@ -972,9 +972,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.0.tgz", - "integrity": "sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", + "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", "cpu": [ "x64" ], @@ -1033,9 +1033,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==" + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==" }, "node_modules/@types/history": { "version": "4.7.11", @@ -1539,11 +1539,11 @@ "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" }, "node_modules/rollup": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.0.tgz", - "integrity": "sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", + "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", "dependencies": { - "@types/estree": "1.0.7" + "@types/estree": "1.0.8" }, "bin": { "rollup": "dist/bin/rollup" @@ -1553,26 +1553,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.40.0", - "@rollup/rollup-android-arm64": "4.40.0", - "@rollup/rollup-darwin-arm64": "4.40.0", - "@rollup/rollup-darwin-x64": "4.40.0", - "@rollup/rollup-freebsd-arm64": "4.40.0", - "@rollup/rollup-freebsd-x64": "4.40.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.40.0", - "@rollup/rollup-linux-arm-musleabihf": "4.40.0", - "@rollup/rollup-linux-arm64-gnu": "4.40.0", - "@rollup/rollup-linux-arm64-musl": "4.40.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.40.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.40.0", - "@rollup/rollup-linux-riscv64-gnu": "4.40.0", - "@rollup/rollup-linux-riscv64-musl": "4.40.0", - "@rollup/rollup-linux-s390x-gnu": "4.40.0", - "@rollup/rollup-linux-x64-gnu": "4.40.0", - "@rollup/rollup-linux-x64-musl": "4.40.0", - "@rollup/rollup-win32-arm64-msvc": "4.40.0", - "@rollup/rollup-win32-ia32-msvc": "4.40.0", - "@rollup/rollup-win32-x64-msvc": "4.40.0", + "@rollup/rollup-android-arm-eabi": "4.46.2", + "@rollup/rollup-android-arm64": "4.46.2", + "@rollup/rollup-darwin-arm64": "4.46.2", + "@rollup/rollup-darwin-x64": "4.46.2", + "@rollup/rollup-freebsd-arm64": "4.46.2", + "@rollup/rollup-freebsd-x64": "4.46.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", + "@rollup/rollup-linux-arm-musleabihf": "4.46.2", + "@rollup/rollup-linux-arm64-gnu": "4.46.2", + "@rollup/rollup-linux-arm64-musl": "4.46.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", + "@rollup/rollup-linux-ppc64-gnu": "4.46.2", + "@rollup/rollup-linux-riscv64-gnu": "4.46.2", + "@rollup/rollup-linux-riscv64-musl": "4.46.2", + "@rollup/rollup-linux-s390x-gnu": "4.46.2", + "@rollup/rollup-linux-x64-gnu": "4.46.2", + "@rollup/rollup-linux-x64-musl": "4.46.2", + "@rollup/rollup-win32-arm64-msvc": "4.46.2", + "@rollup/rollup-win32-ia32-msvc": "4.46.2", + "@rollup/rollup-win32-x64-msvc": "4.46.2", "fsevents": "~2.3.2" } }, @@ -1679,15 +1679,15 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "node_modules/vite": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.6.tgz", - "integrity": "sha512-MHFiOENNBd+Bd9uvc8GEsIzdkn1JxMmEeYX35tI3fv0sJBUTfW5tQsoaOwuY4KhBI09A3dUJ/DXf2yxPVPUceg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.1.tgz", + "integrity": "sha512-yJ+Mp7OyV+4S+afWo+QyoL9jFWD11QFH0i5i7JypnfTcA1rmgxCbiA8WwAICDEtZ1Z1hzrVhN8R8rGTqkTY8ZQ==", "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.6", "picomatch": "^4.0.3", "postcss": "^8.5.6", - "rollup": "^4.40.0", + "rollup": "^4.43.0", "tinyglobby": "^0.2.14" }, "bin": { @@ -2164,123 +2164,123 @@ "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==" }, "@rollup/rollup-android-arm-eabi": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.0.tgz", - "integrity": "sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", + "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", "optional": true }, "@rollup/rollup-android-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.0.tgz", - "integrity": "sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", + "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", "optional": true }, "@rollup/rollup-darwin-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.0.tgz", - "integrity": "sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", + "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", "optional": true }, "@rollup/rollup-darwin-x64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.0.tgz", - "integrity": "sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", + "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", "optional": true }, "@rollup/rollup-freebsd-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.0.tgz", - "integrity": "sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", + "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", "optional": true }, "@rollup/rollup-freebsd-x64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.0.tgz", - "integrity": "sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", + "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", "optional": true }, "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.0.tgz", - "integrity": "sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", + "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", "optional": true }, "@rollup/rollup-linux-arm-musleabihf": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.0.tgz", - "integrity": "sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", + "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", "optional": true }, "@rollup/rollup-linux-arm64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.0.tgz", - "integrity": "sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", + "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", "optional": true }, "@rollup/rollup-linux-arm64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.0.tgz", - "integrity": "sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", + "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", "optional": true }, "@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.0.tgz", - "integrity": "sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", + "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", "optional": true }, - "@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.0.tgz", - "integrity": "sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==", + "@rollup/rollup-linux-ppc64-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", + "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", "optional": true }, "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.0.tgz", - "integrity": "sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", + "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", "optional": true }, "@rollup/rollup-linux-riscv64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.0.tgz", - "integrity": "sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", + "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", "optional": true }, "@rollup/rollup-linux-s390x-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.0.tgz", - "integrity": "sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", + "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", "optional": true }, "@rollup/rollup-linux-x64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.0.tgz", - "integrity": "sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", + "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", "optional": true }, "@rollup/rollup-linux-x64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.0.tgz", - "integrity": "sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", + "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", "optional": true }, "@rollup/rollup-win32-arm64-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.0.tgz", - "integrity": "sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", + "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", "optional": true }, "@rollup/rollup-win32-ia32-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.0.tgz", - "integrity": "sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", + "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", "optional": true }, "@rollup/rollup-win32-x64-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.0.tgz", - "integrity": "sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", + "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", "optional": true }, "@stencil/core": { @@ -2326,9 +2326,9 @@ } }, "@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==" + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==" }, "@types/history": { "version": "4.7.11", @@ -2690,31 +2690,31 @@ "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" }, "rollup": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.0.tgz", - "integrity": "sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", + "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", "requires": { - "@rollup/rollup-android-arm-eabi": "4.40.0", - "@rollup/rollup-android-arm64": "4.40.0", - "@rollup/rollup-darwin-arm64": "4.40.0", - "@rollup/rollup-darwin-x64": "4.40.0", - "@rollup/rollup-freebsd-arm64": "4.40.0", - "@rollup/rollup-freebsd-x64": "4.40.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.40.0", - "@rollup/rollup-linux-arm-musleabihf": "4.40.0", - "@rollup/rollup-linux-arm64-gnu": "4.40.0", - "@rollup/rollup-linux-arm64-musl": "4.40.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.40.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.40.0", - "@rollup/rollup-linux-riscv64-gnu": "4.40.0", - "@rollup/rollup-linux-riscv64-musl": "4.40.0", - "@rollup/rollup-linux-s390x-gnu": "4.40.0", - "@rollup/rollup-linux-x64-gnu": "4.40.0", - "@rollup/rollup-linux-x64-musl": "4.40.0", - "@rollup/rollup-win32-arm64-msvc": "4.40.0", - "@rollup/rollup-win32-ia32-msvc": "4.40.0", - "@rollup/rollup-win32-x64-msvc": "4.40.0", - "@types/estree": "1.0.7", + "@rollup/rollup-android-arm-eabi": "4.46.2", + "@rollup/rollup-android-arm64": "4.46.2", + "@rollup/rollup-darwin-arm64": "4.46.2", + "@rollup/rollup-darwin-x64": "4.46.2", + "@rollup/rollup-freebsd-arm64": "4.46.2", + "@rollup/rollup-freebsd-x64": "4.46.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", + "@rollup/rollup-linux-arm-musleabihf": "4.46.2", + "@rollup/rollup-linux-arm64-gnu": "4.46.2", + "@rollup/rollup-linux-arm64-musl": "4.46.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", + "@rollup/rollup-linux-ppc64-gnu": "4.46.2", + "@rollup/rollup-linux-riscv64-gnu": "4.46.2", + "@rollup/rollup-linux-riscv64-musl": "4.46.2", + "@rollup/rollup-linux-s390x-gnu": "4.46.2", + "@rollup/rollup-linux-x64-gnu": "4.46.2", + "@rollup/rollup-linux-x64-musl": "4.46.2", + "@rollup/rollup-win32-arm64-msvc": "4.46.2", + "@rollup/rollup-win32-ia32-msvc": "4.46.2", + "@rollup/rollup-win32-x64-msvc": "4.46.2", + "@types/estree": "1.0.8", "fsevents": "~2.3.2" } }, @@ -2782,16 +2782,16 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "vite": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.6.tgz", - "integrity": "sha512-MHFiOENNBd+Bd9uvc8GEsIzdkn1JxMmEeYX35tI3fv0sJBUTfW5tQsoaOwuY4KhBI09A3dUJ/DXf2yxPVPUceg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.1.tgz", + "integrity": "sha512-yJ+Mp7OyV+4S+afWo+QyoL9jFWD11QFH0i5i7JypnfTcA1rmgxCbiA8WwAICDEtZ1Z1hzrVhN8R8rGTqkTY8ZQ==", "requires": { "esbuild": "^0.25.0", "fdir": "^6.4.6", "fsevents": "~2.3.3", "picomatch": "^4.0.3", "postcss": "^8.5.6", - "rollup": "^4.40.0", + "rollup": "^4.43.0", "tinyglobby": "^0.2.14" } }, diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index 9829ebe0133..4857064c6ca 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -744,9 +744,9 @@ "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.0.tgz", - "integrity": "sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", + "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", "cpu": [ "arm" ], @@ -756,9 +756,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.0.tgz", - "integrity": "sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", + "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", "cpu": [ "arm64" ], @@ -768,9 +768,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.0.tgz", - "integrity": "sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", + "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", "cpu": [ "arm64" ], @@ -780,9 +780,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.0.tgz", - "integrity": "sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", + "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", "cpu": [ "x64" ], @@ -792,9 +792,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.0.tgz", - "integrity": "sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", + "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", "cpu": [ "arm64" ], @@ -804,9 +804,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.0.tgz", - "integrity": "sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", + "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", "cpu": [ "x64" ], @@ -816,9 +816,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.0.tgz", - "integrity": "sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", + "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", "cpu": [ "arm" ], @@ -828,9 +828,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.0.tgz", - "integrity": "sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", + "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", "cpu": [ "arm" ], @@ -840,9 +840,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.0.tgz", - "integrity": "sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", + "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", "cpu": [ "arm64" ], @@ -852,9 +852,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.0.tgz", - "integrity": "sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", + "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", "cpu": [ "arm64" ], @@ -864,9 +864,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.0.tgz", - "integrity": "sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", + "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", "cpu": [ "loong64" ], @@ -875,10 +875,10 @@ "linux" ] }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.0.tgz", - "integrity": "sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==", + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", + "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", "cpu": [ "ppc64" ], @@ -888,9 +888,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.0.tgz", - "integrity": "sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", + "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", "cpu": [ "riscv64" ], @@ -900,9 +900,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.0.tgz", - "integrity": "sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", + "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", "cpu": [ "riscv64" ], @@ -912,9 +912,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.0.tgz", - "integrity": "sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", + "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", "cpu": [ "s390x" ], @@ -924,9 +924,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.0.tgz", - "integrity": "sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", + "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", "cpu": [ "x64" ], @@ -936,9 +936,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.0.tgz", - "integrity": "sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", + "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", "cpu": [ "x64" ], @@ -948,9 +948,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.0.tgz", - "integrity": "sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", + "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", "cpu": [ "arm64" ], @@ -960,9 +960,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.0.tgz", - "integrity": "sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", + "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", "cpu": [ "ia32" ], @@ -972,9 +972,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.0.tgz", - "integrity": "sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", + "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", "cpu": [ "x64" ], @@ -1139,9 +1139,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==" + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==" }, "node_modules/@types/history": { "version": "4.7.11", @@ -1645,11 +1645,11 @@ "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" }, "node_modules/rollup": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.0.tgz", - "integrity": "sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", + "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", "dependencies": { - "@types/estree": "1.0.7" + "@types/estree": "1.0.8" }, "bin": { "rollup": "dist/bin/rollup" @@ -1659,26 +1659,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.40.0", - "@rollup/rollup-android-arm64": "4.40.0", - "@rollup/rollup-darwin-arm64": "4.40.0", - "@rollup/rollup-darwin-x64": "4.40.0", - "@rollup/rollup-freebsd-arm64": "4.40.0", - "@rollup/rollup-freebsd-x64": "4.40.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.40.0", - "@rollup/rollup-linux-arm-musleabihf": "4.40.0", - "@rollup/rollup-linux-arm64-gnu": "4.40.0", - "@rollup/rollup-linux-arm64-musl": "4.40.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.40.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.40.0", - "@rollup/rollup-linux-riscv64-gnu": "4.40.0", - "@rollup/rollup-linux-riscv64-musl": "4.40.0", - "@rollup/rollup-linux-s390x-gnu": "4.40.0", - "@rollup/rollup-linux-x64-gnu": "4.40.0", - "@rollup/rollup-linux-x64-musl": "4.40.0", - "@rollup/rollup-win32-arm64-msvc": "4.40.0", - "@rollup/rollup-win32-ia32-msvc": "4.40.0", - "@rollup/rollup-win32-x64-msvc": "4.40.0", + "@rollup/rollup-android-arm-eabi": "4.46.2", + "@rollup/rollup-android-arm64": "4.46.2", + "@rollup/rollup-darwin-arm64": "4.46.2", + "@rollup/rollup-darwin-x64": "4.46.2", + "@rollup/rollup-freebsd-arm64": "4.46.2", + "@rollup/rollup-freebsd-x64": "4.46.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", + "@rollup/rollup-linux-arm-musleabihf": "4.46.2", + "@rollup/rollup-linux-arm64-gnu": "4.46.2", + "@rollup/rollup-linux-arm64-musl": "4.46.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", + "@rollup/rollup-linux-ppc64-gnu": "4.46.2", + "@rollup/rollup-linux-riscv64-gnu": "4.46.2", + "@rollup/rollup-linux-riscv64-musl": "4.46.2", + "@rollup/rollup-linux-s390x-gnu": "4.46.2", + "@rollup/rollup-linux-x64-gnu": "4.46.2", + "@rollup/rollup-linux-x64-musl": "4.46.2", + "@rollup/rollup-win32-arm64-msvc": "4.46.2", + "@rollup/rollup-win32-ia32-msvc": "4.46.2", + "@rollup/rollup-win32-x64-msvc": "4.46.2", "fsevents": "~2.3.2" } }, @@ -1785,15 +1785,15 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "node_modules/vite": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.6.tgz", - "integrity": "sha512-MHFiOENNBd+Bd9uvc8GEsIzdkn1JxMmEeYX35tI3fv0sJBUTfW5tQsoaOwuY4KhBI09A3dUJ/DXf2yxPVPUceg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.1.tgz", + "integrity": "sha512-yJ+Mp7OyV+4S+afWo+QyoL9jFWD11QFH0i5i7JypnfTcA1rmgxCbiA8WwAICDEtZ1Z1hzrVhN8R8rGTqkTY8ZQ==", "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.6", "picomatch": "^4.0.3", "postcss": "^8.5.6", - "rollup": "^4.40.0", + "rollup": "^4.43.0", "tinyglobby": "^0.2.14" }, "bin": { @@ -2270,123 +2270,123 @@ "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==" }, "@rollup/rollup-android-arm-eabi": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.0.tgz", - "integrity": "sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", + "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", "optional": true }, "@rollup/rollup-android-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.0.tgz", - "integrity": "sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", + "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", "optional": true }, "@rollup/rollup-darwin-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.0.tgz", - "integrity": "sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", + "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", "optional": true }, "@rollup/rollup-darwin-x64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.0.tgz", - "integrity": "sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", + "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", "optional": true }, "@rollup/rollup-freebsd-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.0.tgz", - "integrity": "sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", + "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", "optional": true }, "@rollup/rollup-freebsd-x64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.0.tgz", - "integrity": "sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", + "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", "optional": true }, "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.0.tgz", - "integrity": "sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", + "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", "optional": true }, "@rollup/rollup-linux-arm-musleabihf": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.0.tgz", - "integrity": "sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", + "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", "optional": true }, "@rollup/rollup-linux-arm64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.0.tgz", - "integrity": "sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", + "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", "optional": true }, "@rollup/rollup-linux-arm64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.0.tgz", - "integrity": "sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", + "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", "optional": true }, "@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.0.tgz", - "integrity": "sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", + "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", "optional": true }, - "@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.0.tgz", - "integrity": "sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==", + "@rollup/rollup-linux-ppc64-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", + "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", "optional": true }, "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.0.tgz", - "integrity": "sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", + "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", "optional": true }, "@rollup/rollup-linux-riscv64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.0.tgz", - "integrity": "sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", + "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", "optional": true }, "@rollup/rollup-linux-s390x-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.0.tgz", - "integrity": "sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", + "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", "optional": true }, "@rollup/rollup-linux-x64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.0.tgz", - "integrity": "sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", + "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", "optional": true }, "@rollup/rollup-linux-x64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.0.tgz", - "integrity": "sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", + "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", "optional": true }, "@rollup/rollup-win32-arm64-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.0.tgz", - "integrity": "sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", + "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", "optional": true }, "@rollup/rollup-win32-ia32-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.0.tgz", - "integrity": "sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", + "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", "optional": true }, "@rollup/rollup-win32-x64-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.0.tgz", - "integrity": "sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", + "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", "optional": true }, "@stencil/core": { @@ -2492,9 +2492,9 @@ } }, "@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==" + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==" }, "@types/history": { "version": "4.7.11", @@ -2856,31 +2856,31 @@ "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" }, "rollup": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.0.tgz", - "integrity": "sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", + "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", "requires": { - "@rollup/rollup-android-arm-eabi": "4.40.0", - "@rollup/rollup-android-arm64": "4.40.0", - "@rollup/rollup-darwin-arm64": "4.40.0", - "@rollup/rollup-darwin-x64": "4.40.0", - "@rollup/rollup-freebsd-arm64": "4.40.0", - "@rollup/rollup-freebsd-x64": "4.40.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.40.0", - "@rollup/rollup-linux-arm-musleabihf": "4.40.0", - "@rollup/rollup-linux-arm64-gnu": "4.40.0", - "@rollup/rollup-linux-arm64-musl": "4.40.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.40.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.40.0", - "@rollup/rollup-linux-riscv64-gnu": "4.40.0", - "@rollup/rollup-linux-riscv64-musl": "4.40.0", - "@rollup/rollup-linux-s390x-gnu": "4.40.0", - "@rollup/rollup-linux-x64-gnu": "4.40.0", - "@rollup/rollup-linux-x64-musl": "4.40.0", - "@rollup/rollup-win32-arm64-msvc": "4.40.0", - "@rollup/rollup-win32-ia32-msvc": "4.40.0", - "@rollup/rollup-win32-x64-msvc": "4.40.0", - "@types/estree": "1.0.7", + "@rollup/rollup-android-arm-eabi": "4.46.2", + "@rollup/rollup-android-arm64": "4.46.2", + "@rollup/rollup-darwin-arm64": "4.46.2", + "@rollup/rollup-darwin-x64": "4.46.2", + "@rollup/rollup-freebsd-arm64": "4.46.2", + "@rollup/rollup-freebsd-x64": "4.46.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", + "@rollup/rollup-linux-arm-musleabihf": "4.46.2", + "@rollup/rollup-linux-arm64-gnu": "4.46.2", + "@rollup/rollup-linux-arm64-musl": "4.46.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", + "@rollup/rollup-linux-ppc64-gnu": "4.46.2", + "@rollup/rollup-linux-riscv64-gnu": "4.46.2", + "@rollup/rollup-linux-riscv64-musl": "4.46.2", + "@rollup/rollup-linux-s390x-gnu": "4.46.2", + "@rollup/rollup-linux-x64-gnu": "4.46.2", + "@rollup/rollup-linux-x64-musl": "4.46.2", + "@rollup/rollup-win32-arm64-msvc": "4.46.2", + "@rollup/rollup-win32-ia32-msvc": "4.46.2", + "@rollup/rollup-win32-x64-msvc": "4.46.2", + "@types/estree": "1.0.8", "fsevents": "~2.3.2" } }, @@ -2948,16 +2948,16 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "vite": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.6.tgz", - "integrity": "sha512-MHFiOENNBd+Bd9uvc8GEsIzdkn1JxMmEeYX35tI3fv0sJBUTfW5tQsoaOwuY4KhBI09A3dUJ/DXf2yxPVPUceg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.1.tgz", + "integrity": "sha512-yJ+Mp7OyV+4S+afWo+QyoL9jFWD11QFH0i5i7JypnfTcA1rmgxCbiA8WwAICDEtZ1Z1hzrVhN8R8rGTqkTY8ZQ==", "requires": { "esbuild": "^0.25.0", "fdir": "^6.4.6", "fsevents": "~2.3.3", "picomatch": "^4.0.3", "postcss": "^8.5.6", - "rollup": "^4.40.0", + "rollup": "^4.43.0", "tinyglobby": "^0.2.14" } }, From bf9abc82c458c66879dd05148d8f66b04a377ab7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Aug 2025 09:37:51 -0400 Subject: [PATCH 064/129] chore(deps): update dependency vite to v7.1.1 (#4246) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../code/stackblitz/v7/vue/package-lock.json | 368 +++++++++--------- .../code/stackblitz/v8/vue/package-lock.json | 368 +++++++++--------- 2 files changed, 368 insertions(+), 368 deletions(-) diff --git a/static/code/stackblitz/v7/vue/package-lock.json b/static/code/stackblitz/v7/vue/package-lock.json index 2380146e495..35ac8991228 100644 --- a/static/code/stackblitz/v7/vue/package-lock.json +++ b/static/code/stackblitz/v7/vue/package-lock.json @@ -501,9 +501,9 @@ "dev": true }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.0.tgz", - "integrity": "sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", + "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", "cpu": [ "arm" ], @@ -514,9 +514,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.0.tgz", - "integrity": "sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", + "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", "cpu": [ "arm64" ], @@ -527,9 +527,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.0.tgz", - "integrity": "sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", + "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", "cpu": [ "arm64" ], @@ -540,9 +540,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.0.tgz", - "integrity": "sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", + "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", "cpu": [ "x64" ], @@ -553,9 +553,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.0.tgz", - "integrity": "sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", + "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", "cpu": [ "arm64" ], @@ -566,9 +566,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.0.tgz", - "integrity": "sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", + "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", "cpu": [ "x64" ], @@ -579,9 +579,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.0.tgz", - "integrity": "sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", + "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", "cpu": [ "arm" ], @@ -592,9 +592,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.0.tgz", - "integrity": "sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", + "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", "cpu": [ "arm" ], @@ -605,9 +605,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.0.tgz", - "integrity": "sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", + "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", "cpu": [ "arm64" ], @@ -618,9 +618,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.0.tgz", - "integrity": "sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", + "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", "cpu": [ "arm64" ], @@ -631,9 +631,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.0.tgz", - "integrity": "sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", + "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", "cpu": [ "loong64" ], @@ -643,10 +643,10 @@ "linux" ] }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.0.tgz", - "integrity": "sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==", + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", + "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", "cpu": [ "ppc64" ], @@ -657,9 +657,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.0.tgz", - "integrity": "sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", + "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", "cpu": [ "riscv64" ], @@ -670,9 +670,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.0.tgz", - "integrity": "sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", + "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", "cpu": [ "riscv64" ], @@ -683,9 +683,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.0.tgz", - "integrity": "sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", + "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", "cpu": [ "s390x" ], @@ -696,9 +696,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.0.tgz", - "integrity": "sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", + "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", "cpu": [ "x64" ], @@ -709,9 +709,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.0.tgz", - "integrity": "sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", + "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", "cpu": [ "x64" ], @@ -722,9 +722,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.0.tgz", - "integrity": "sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", + "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", "cpu": [ "arm64" ], @@ -735,9 +735,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.0.tgz", - "integrity": "sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", + "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", "cpu": [ "ia32" ], @@ -748,9 +748,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.0.tgz", - "integrity": "sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", + "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", "cpu": [ "x64" ], @@ -773,9 +773,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true }, "node_modules/@vitejs/plugin-vue": { @@ -1150,12 +1150,12 @@ } }, "node_modules/rollup": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.0.tgz", - "integrity": "sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", + "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", "dev": true, "dependencies": { - "@types/estree": "1.0.7" + "@types/estree": "1.0.8" }, "bin": { "rollup": "dist/bin/rollup" @@ -1165,26 +1165,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.40.0", - "@rollup/rollup-android-arm64": "4.40.0", - "@rollup/rollup-darwin-arm64": "4.40.0", - "@rollup/rollup-darwin-x64": "4.40.0", - "@rollup/rollup-freebsd-arm64": "4.40.0", - "@rollup/rollup-freebsd-x64": "4.40.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.40.0", - "@rollup/rollup-linux-arm-musleabihf": "4.40.0", - "@rollup/rollup-linux-arm64-gnu": "4.40.0", - "@rollup/rollup-linux-arm64-musl": "4.40.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.40.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.40.0", - "@rollup/rollup-linux-riscv64-gnu": "4.40.0", - "@rollup/rollup-linux-riscv64-musl": "4.40.0", - "@rollup/rollup-linux-s390x-gnu": "4.40.0", - "@rollup/rollup-linux-x64-gnu": "4.40.0", - "@rollup/rollup-linux-x64-musl": "4.40.0", - "@rollup/rollup-win32-arm64-msvc": "4.40.0", - "@rollup/rollup-win32-ia32-msvc": "4.40.0", - "@rollup/rollup-win32-x64-msvc": "4.40.0", + "@rollup/rollup-android-arm-eabi": "4.46.2", + "@rollup/rollup-android-arm64": "4.46.2", + "@rollup/rollup-darwin-arm64": "4.46.2", + "@rollup/rollup-darwin-x64": "4.46.2", + "@rollup/rollup-freebsd-arm64": "4.46.2", + "@rollup/rollup-freebsd-x64": "4.46.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", + "@rollup/rollup-linux-arm-musleabihf": "4.46.2", + "@rollup/rollup-linux-arm64-gnu": "4.46.2", + "@rollup/rollup-linux-arm64-musl": "4.46.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", + "@rollup/rollup-linux-ppc64-gnu": "4.46.2", + "@rollup/rollup-linux-riscv64-gnu": "4.46.2", + "@rollup/rollup-linux-riscv64-musl": "4.46.2", + "@rollup/rollup-linux-s390x-gnu": "4.46.2", + "@rollup/rollup-linux-x64-gnu": "4.46.2", + "@rollup/rollup-linux-x64-musl": "4.46.2", + "@rollup/rollup-win32-arm64-msvc": "4.46.2", + "@rollup/rollup-win32-ia32-msvc": "4.46.2", + "@rollup/rollup-win32-x64-msvc": "4.46.2", "fsevents": "~2.3.2" } }, @@ -1231,16 +1231,16 @@ } }, "node_modules/vite": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.6.tgz", - "integrity": "sha512-MHFiOENNBd+Bd9uvc8GEsIzdkn1JxMmEeYX35tI3fv0sJBUTfW5tQsoaOwuY4KhBI09A3dUJ/DXf2yxPVPUceg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.1.tgz", + "integrity": "sha512-yJ+Mp7OyV+4S+afWo+QyoL9jFWD11QFH0i5i7JypnfTcA1rmgxCbiA8WwAICDEtZ1Z1hzrVhN8R8rGTqkTY8ZQ==", "dev": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.6", "picomatch": "^4.0.3", "postcss": "^8.5.6", - "rollup": "^4.40.0", + "rollup": "^4.43.0", "tinyglobby": "^0.2.14" }, "bin": { @@ -1603,142 +1603,142 @@ "dev": true }, "@rollup/rollup-android-arm-eabi": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.0.tgz", - "integrity": "sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", + "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", "dev": true, "optional": true }, "@rollup/rollup-android-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.0.tgz", - "integrity": "sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", + "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", "dev": true, "optional": true }, "@rollup/rollup-darwin-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.0.tgz", - "integrity": "sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", + "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", "dev": true, "optional": true }, "@rollup/rollup-darwin-x64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.0.tgz", - "integrity": "sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", + "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", "dev": true, "optional": true }, "@rollup/rollup-freebsd-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.0.tgz", - "integrity": "sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", + "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", "dev": true, "optional": true }, "@rollup/rollup-freebsd-x64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.0.tgz", - "integrity": "sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", + "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.0.tgz", - "integrity": "sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", + "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm-musleabihf": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.0.tgz", - "integrity": "sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", + "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.0.tgz", - "integrity": "sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", + "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.0.tgz", - "integrity": "sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", + "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", "dev": true, "optional": true }, "@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.0.tgz", - "integrity": "sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", + "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", "dev": true, "optional": true }, - "@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.0.tgz", - "integrity": "sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==", + "@rollup/rollup-linux-ppc64-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", + "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", "dev": true, "optional": true }, "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.0.tgz", - "integrity": "sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", + "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", "dev": true, "optional": true }, "@rollup/rollup-linux-riscv64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.0.tgz", - "integrity": "sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", + "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", "dev": true, "optional": true }, "@rollup/rollup-linux-s390x-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.0.tgz", - "integrity": "sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", + "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.0.tgz", - "integrity": "sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", + "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.0.tgz", - "integrity": "sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", + "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", "dev": true, "optional": true }, "@rollup/rollup-win32-arm64-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.0.tgz", - "integrity": "sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", + "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", "dev": true, "optional": true }, "@rollup/rollup-win32-ia32-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.0.tgz", - "integrity": "sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", + "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", "dev": true, "optional": true }, "@rollup/rollup-win32-x64-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.0.tgz", - "integrity": "sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", + "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", "dev": true, "optional": true }, @@ -1748,9 +1748,9 @@ "integrity": "sha512-WEMpoqwMV4hY/ab2z9NxRhSeZwuKEugjyn6Vd+qA9xqZh6VNUL27QbP8vCa7IeqD4Zql4JBtKu3lVuBHutWE6w==" }, "@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true }, "@vitejs/plugin-vue": { @@ -2042,32 +2042,32 @@ } }, "rollup": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.0.tgz", - "integrity": "sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", + "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", "dev": true, "requires": { - "@rollup/rollup-android-arm-eabi": "4.40.0", - "@rollup/rollup-android-arm64": "4.40.0", - "@rollup/rollup-darwin-arm64": "4.40.0", - "@rollup/rollup-darwin-x64": "4.40.0", - "@rollup/rollup-freebsd-arm64": "4.40.0", - "@rollup/rollup-freebsd-x64": "4.40.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.40.0", - "@rollup/rollup-linux-arm-musleabihf": "4.40.0", - "@rollup/rollup-linux-arm64-gnu": "4.40.0", - "@rollup/rollup-linux-arm64-musl": "4.40.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.40.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.40.0", - "@rollup/rollup-linux-riscv64-gnu": "4.40.0", - "@rollup/rollup-linux-riscv64-musl": "4.40.0", - "@rollup/rollup-linux-s390x-gnu": "4.40.0", - "@rollup/rollup-linux-x64-gnu": "4.40.0", - "@rollup/rollup-linux-x64-musl": "4.40.0", - "@rollup/rollup-win32-arm64-msvc": "4.40.0", - "@rollup/rollup-win32-ia32-msvc": "4.40.0", - "@rollup/rollup-win32-x64-msvc": "4.40.0", - "@types/estree": "1.0.7", + "@rollup/rollup-android-arm-eabi": "4.46.2", + "@rollup/rollup-android-arm64": "4.46.2", + "@rollup/rollup-darwin-arm64": "4.46.2", + "@rollup/rollup-darwin-x64": "4.46.2", + "@rollup/rollup-freebsd-arm64": "4.46.2", + "@rollup/rollup-freebsd-x64": "4.46.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", + "@rollup/rollup-linux-arm-musleabihf": "4.46.2", + "@rollup/rollup-linux-arm64-gnu": "4.46.2", + "@rollup/rollup-linux-arm64-musl": "4.46.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", + "@rollup/rollup-linux-ppc64-gnu": "4.46.2", + "@rollup/rollup-linux-riscv64-gnu": "4.46.2", + "@rollup/rollup-linux-riscv64-musl": "4.46.2", + "@rollup/rollup-linux-s390x-gnu": "4.46.2", + "@rollup/rollup-linux-x64-gnu": "4.46.2", + "@rollup/rollup-linux-x64-musl": "4.46.2", + "@rollup/rollup-win32-arm64-msvc": "4.46.2", + "@rollup/rollup-win32-ia32-msvc": "4.46.2", + "@rollup/rollup-win32-x64-msvc": "4.46.2", + "@types/estree": "1.0.8", "fsevents": "~2.3.2" } }, @@ -2098,9 +2098,9 @@ "devOptional": true }, "vite": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.6.tgz", - "integrity": "sha512-MHFiOENNBd+Bd9uvc8GEsIzdkn1JxMmEeYX35tI3fv0sJBUTfW5tQsoaOwuY4KhBI09A3dUJ/DXf2yxPVPUceg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.1.tgz", + "integrity": "sha512-yJ+Mp7OyV+4S+afWo+QyoL9jFWD11QFH0i5i7JypnfTcA1rmgxCbiA8WwAICDEtZ1Z1hzrVhN8R8rGTqkTY8ZQ==", "dev": true, "requires": { "esbuild": "^0.25.0", @@ -2108,7 +2108,7 @@ "fsevents": "~2.3.3", "picomatch": "^4.0.3", "postcss": "^8.5.6", - "rollup": "^4.40.0", + "rollup": "^4.43.0", "tinyglobby": "^0.2.14" } }, diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index bf9951b676d..178759496a3 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -502,9 +502,9 @@ "dev": true }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.0.tgz", - "integrity": "sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", + "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", "cpu": [ "arm" ], @@ -515,9 +515,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.0.tgz", - "integrity": "sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", + "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", "cpu": [ "arm64" ], @@ -528,9 +528,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.0.tgz", - "integrity": "sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", + "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", "cpu": [ "arm64" ], @@ -541,9 +541,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.0.tgz", - "integrity": "sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", + "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", "cpu": [ "x64" ], @@ -554,9 +554,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.0.tgz", - "integrity": "sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", + "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", "cpu": [ "arm64" ], @@ -567,9 +567,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.0.tgz", - "integrity": "sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", + "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", "cpu": [ "x64" ], @@ -580,9 +580,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.0.tgz", - "integrity": "sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", + "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", "cpu": [ "arm" ], @@ -593,9 +593,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.0.tgz", - "integrity": "sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", + "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", "cpu": [ "arm" ], @@ -606,9 +606,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.0.tgz", - "integrity": "sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", + "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", "cpu": [ "arm64" ], @@ -619,9 +619,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.0.tgz", - "integrity": "sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", + "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", "cpu": [ "arm64" ], @@ -632,9 +632,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.0.tgz", - "integrity": "sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", + "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", "cpu": [ "loong64" ], @@ -644,10 +644,10 @@ "linux" ] }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.0.tgz", - "integrity": "sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==", + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", + "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", "cpu": [ "ppc64" ], @@ -658,9 +658,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.0.tgz", - "integrity": "sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", + "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", "cpu": [ "riscv64" ], @@ -671,9 +671,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.0.tgz", - "integrity": "sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", + "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", "cpu": [ "riscv64" ], @@ -684,9 +684,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.0.tgz", - "integrity": "sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", + "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", "cpu": [ "s390x" ], @@ -697,9 +697,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.0.tgz", - "integrity": "sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", + "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", "cpu": [ "x64" ], @@ -710,9 +710,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.0.tgz", - "integrity": "sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", + "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", "cpu": [ "x64" ], @@ -723,9 +723,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.0.tgz", - "integrity": "sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", + "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", "cpu": [ "arm64" ], @@ -736,9 +736,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.0.tgz", - "integrity": "sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", + "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", "cpu": [ "ia32" ], @@ -749,9 +749,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.0.tgz", - "integrity": "sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", + "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", "cpu": [ "x64" ], @@ -901,9 +901,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true }, "node_modules/@vitejs/plugin-vue": { @@ -1278,12 +1278,12 @@ } }, "node_modules/rollup": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.0.tgz", - "integrity": "sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", + "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", "dev": true, "dependencies": { - "@types/estree": "1.0.7" + "@types/estree": "1.0.8" }, "bin": { "rollup": "dist/bin/rollup" @@ -1293,26 +1293,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.40.0", - "@rollup/rollup-android-arm64": "4.40.0", - "@rollup/rollup-darwin-arm64": "4.40.0", - "@rollup/rollup-darwin-x64": "4.40.0", - "@rollup/rollup-freebsd-arm64": "4.40.0", - "@rollup/rollup-freebsd-x64": "4.40.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.40.0", - "@rollup/rollup-linux-arm-musleabihf": "4.40.0", - "@rollup/rollup-linux-arm64-gnu": "4.40.0", - "@rollup/rollup-linux-arm64-musl": "4.40.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.40.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.40.0", - "@rollup/rollup-linux-riscv64-gnu": "4.40.0", - "@rollup/rollup-linux-riscv64-musl": "4.40.0", - "@rollup/rollup-linux-s390x-gnu": "4.40.0", - "@rollup/rollup-linux-x64-gnu": "4.40.0", - "@rollup/rollup-linux-x64-musl": "4.40.0", - "@rollup/rollup-win32-arm64-msvc": "4.40.0", - "@rollup/rollup-win32-ia32-msvc": "4.40.0", - "@rollup/rollup-win32-x64-msvc": "4.40.0", + "@rollup/rollup-android-arm-eabi": "4.46.2", + "@rollup/rollup-android-arm64": "4.46.2", + "@rollup/rollup-darwin-arm64": "4.46.2", + "@rollup/rollup-darwin-x64": "4.46.2", + "@rollup/rollup-freebsd-arm64": "4.46.2", + "@rollup/rollup-freebsd-x64": "4.46.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", + "@rollup/rollup-linux-arm-musleabihf": "4.46.2", + "@rollup/rollup-linux-arm64-gnu": "4.46.2", + "@rollup/rollup-linux-arm64-musl": "4.46.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", + "@rollup/rollup-linux-ppc64-gnu": "4.46.2", + "@rollup/rollup-linux-riscv64-gnu": "4.46.2", + "@rollup/rollup-linux-riscv64-musl": "4.46.2", + "@rollup/rollup-linux-s390x-gnu": "4.46.2", + "@rollup/rollup-linux-x64-gnu": "4.46.2", + "@rollup/rollup-linux-x64-musl": "4.46.2", + "@rollup/rollup-win32-arm64-msvc": "4.46.2", + "@rollup/rollup-win32-ia32-msvc": "4.46.2", + "@rollup/rollup-win32-x64-msvc": "4.46.2", "fsevents": "~2.3.2" } }, @@ -1359,16 +1359,16 @@ } }, "node_modules/vite": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.6.tgz", - "integrity": "sha512-MHFiOENNBd+Bd9uvc8GEsIzdkn1JxMmEeYX35tI3fv0sJBUTfW5tQsoaOwuY4KhBI09A3dUJ/DXf2yxPVPUceg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.1.tgz", + "integrity": "sha512-yJ+Mp7OyV+4S+afWo+QyoL9jFWD11QFH0i5i7JypnfTcA1rmgxCbiA8WwAICDEtZ1Z1hzrVhN8R8rGTqkTY8ZQ==", "dev": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.6", "picomatch": "^4.0.3", "postcss": "^8.5.6", - "rollup": "^4.40.0", + "rollup": "^4.43.0", "tinyglobby": "^0.2.14" }, "bin": { @@ -1732,142 +1732,142 @@ "dev": true }, "@rollup/rollup-android-arm-eabi": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.0.tgz", - "integrity": "sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", + "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", "dev": true, "optional": true }, "@rollup/rollup-android-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.0.tgz", - "integrity": "sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", + "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", "dev": true, "optional": true }, "@rollup/rollup-darwin-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.0.tgz", - "integrity": "sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", + "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", "dev": true, "optional": true }, "@rollup/rollup-darwin-x64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.0.tgz", - "integrity": "sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", + "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", "dev": true, "optional": true }, "@rollup/rollup-freebsd-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.0.tgz", - "integrity": "sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", + "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", "dev": true, "optional": true }, "@rollup/rollup-freebsd-x64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.0.tgz", - "integrity": "sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", + "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.0.tgz", - "integrity": "sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", + "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm-musleabihf": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.0.tgz", - "integrity": "sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", + "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.0.tgz", - "integrity": "sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", + "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.0.tgz", - "integrity": "sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", + "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", "dev": true, "optional": true }, "@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.0.tgz", - "integrity": "sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", + "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", "dev": true, "optional": true }, - "@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.0.tgz", - "integrity": "sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==", + "@rollup/rollup-linux-ppc64-gnu": { + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", + "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", "dev": true, "optional": true }, "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.0.tgz", - "integrity": "sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", + "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", "dev": true, "optional": true }, "@rollup/rollup-linux-riscv64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.0.tgz", - "integrity": "sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", + "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", "dev": true, "optional": true }, "@rollup/rollup-linux-s390x-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.0.tgz", - "integrity": "sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", + "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.0.tgz", - "integrity": "sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", + "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.0.tgz", - "integrity": "sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", + "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", "dev": true, "optional": true }, "@rollup/rollup-win32-arm64-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.0.tgz", - "integrity": "sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", + "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", "dev": true, "optional": true }, "@rollup/rollup-win32-ia32-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.0.tgz", - "integrity": "sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", + "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", "dev": true, "optional": true }, "@rollup/rollup-win32-x64-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.0.tgz", - "integrity": "sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", + "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", "dev": true, "optional": true }, @@ -1943,9 +1943,9 @@ "requires": {} }, "@types/estree": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", - "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", "dev": true }, "@vitejs/plugin-vue": { @@ -2237,32 +2237,32 @@ } }, "rollup": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.0.tgz", - "integrity": "sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==", + "version": "4.46.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", + "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", "dev": true, "requires": { - "@rollup/rollup-android-arm-eabi": "4.40.0", - "@rollup/rollup-android-arm64": "4.40.0", - "@rollup/rollup-darwin-arm64": "4.40.0", - "@rollup/rollup-darwin-x64": "4.40.0", - "@rollup/rollup-freebsd-arm64": "4.40.0", - "@rollup/rollup-freebsd-x64": "4.40.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.40.0", - "@rollup/rollup-linux-arm-musleabihf": "4.40.0", - "@rollup/rollup-linux-arm64-gnu": "4.40.0", - "@rollup/rollup-linux-arm64-musl": "4.40.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.40.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.40.0", - "@rollup/rollup-linux-riscv64-gnu": "4.40.0", - "@rollup/rollup-linux-riscv64-musl": "4.40.0", - "@rollup/rollup-linux-s390x-gnu": "4.40.0", - "@rollup/rollup-linux-x64-gnu": "4.40.0", - "@rollup/rollup-linux-x64-musl": "4.40.0", - "@rollup/rollup-win32-arm64-msvc": "4.40.0", - "@rollup/rollup-win32-ia32-msvc": "4.40.0", - "@rollup/rollup-win32-x64-msvc": "4.40.0", - "@types/estree": "1.0.7", + "@rollup/rollup-android-arm-eabi": "4.46.2", + "@rollup/rollup-android-arm64": "4.46.2", + "@rollup/rollup-darwin-arm64": "4.46.2", + "@rollup/rollup-darwin-x64": "4.46.2", + "@rollup/rollup-freebsd-arm64": "4.46.2", + "@rollup/rollup-freebsd-x64": "4.46.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", + "@rollup/rollup-linux-arm-musleabihf": "4.46.2", + "@rollup/rollup-linux-arm64-gnu": "4.46.2", + "@rollup/rollup-linux-arm64-musl": "4.46.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", + "@rollup/rollup-linux-ppc64-gnu": "4.46.2", + "@rollup/rollup-linux-riscv64-gnu": "4.46.2", + "@rollup/rollup-linux-riscv64-musl": "4.46.2", + "@rollup/rollup-linux-s390x-gnu": "4.46.2", + "@rollup/rollup-linux-x64-gnu": "4.46.2", + "@rollup/rollup-linux-x64-musl": "4.46.2", + "@rollup/rollup-win32-arm64-msvc": "4.46.2", + "@rollup/rollup-win32-ia32-msvc": "4.46.2", + "@rollup/rollup-win32-x64-msvc": "4.46.2", + "@types/estree": "1.0.8", "fsevents": "~2.3.2" } }, @@ -2293,9 +2293,9 @@ "devOptional": true }, "vite": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.6.tgz", - "integrity": "sha512-MHFiOENNBd+Bd9uvc8GEsIzdkn1JxMmEeYX35tI3fv0sJBUTfW5tQsoaOwuY4KhBI09A3dUJ/DXf2yxPVPUceg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.1.tgz", + "integrity": "sha512-yJ+Mp7OyV+4S+afWo+QyoL9jFWD11QFH0i5i7JypnfTcA1rmgxCbiA8WwAICDEtZ1Z1hzrVhN8R8rGTqkTY8ZQ==", "dev": true, "requires": { "esbuild": "^0.25.0", @@ -2303,7 +2303,7 @@ "fsevents": "~2.3.3", "picomatch": "^4.0.3", "postcss": "^8.5.6", - "rollup": "^4.40.0", + "rollup": "^4.43.0", "tinyglobby": "^0.2.14" } }, From 3aa3b4dccadace363fd568061661df0c1d33c9f3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 11 Aug 2025 09:38:59 -0400 Subject: [PATCH 065/129] chore(deps): update dependency @vitejs/plugin-react to v5 (#4247) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../stackblitz/v7/react/package-lock.json | 32 +++++++++---------- static/code/stackblitz/v7/react/package.json | 2 +- .../stackblitz/v8/react/package-lock.json | 32 +++++++++---------- static/code/stackblitz/v8/react/package.json | 2 +- 4 files changed, 34 insertions(+), 34 deletions(-) diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json index fff34c957ac..0cfe6780f92 100644 --- a/static/code/stackblitz/v7/react/package-lock.json +++ b/static/code/stackblitz/v7/react/package-lock.json @@ -15,7 +15,7 @@ "@types/react-dom": "^19.0.0", "@types/react-router": "^5.1.11", "@types/react-router-dom": "^5.1.7", - "@vitejs/plugin-react": "^4.1.1", + "@vitejs/plugin-react": "^5.0.0", "clsx": "^2.0.0", "react": "^19.0.0", "react-dom": "^19.0.0", @@ -739,9 +739,9 @@ } }, "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", - "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==" + "version": "1.0.0-beta.30", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.30.tgz", + "integrity": "sha512-whXaSoNUFiyDAjkUF8OBpOm77Szdbk5lGNqFe6CbVbJFrhCCPinCbRA3NjawwlNHla1No7xvXXh+CpSxnPfUEw==" }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.46.2", @@ -1086,19 +1086,19 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", - "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.0.tgz", + "integrity": "sha512-Jx9JfsTa05bYkS9xo0hkofp2dCmp1blrKjw9JONs5BTHOvJCgLbaPSuZLGSVJW6u2qe0tc4eevY0+gSNNi0YCw==", "dependencies": { "@babel/core": "^7.28.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.27", + "@rolldown/pluginutils": "1.0.0-beta.30", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^20.19.0 || >=22.12.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" @@ -2159,9 +2159,9 @@ } }, "@rolldown/pluginutils": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", - "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==" + "version": "1.0.0-beta.30", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.30.tgz", + "integrity": "sha512-whXaSoNUFiyDAjkUF8OBpOm77Szdbk5lGNqFe6CbVbJFrhCCPinCbRA3NjawwlNHla1No7xvXXh+CpSxnPfUEw==" }, "@rollup/rollup-android-arm-eabi": { "version": "4.46.2", @@ -2377,14 +2377,14 @@ } }, "@vitejs/plugin-react": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", - "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.0.tgz", + "integrity": "sha512-Jx9JfsTa05bYkS9xo0hkofp2dCmp1blrKjw9JONs5BTHOvJCgLbaPSuZLGSVJW6u2qe0tc4eevY0+gSNNi0YCw==", "requires": { "@babel/core": "^7.28.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.27", + "@rolldown/pluginutils": "1.0.0-beta.30", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" } diff --git a/static/code/stackblitz/v7/react/package.json b/static/code/stackblitz/v7/react/package.json index d17b05ba513..4e584d87c4f 100644 --- a/static/code/stackblitz/v7/react/package.json +++ b/static/code/stackblitz/v7/react/package.json @@ -10,7 +10,7 @@ "@types/react-dom": "^19.0.0", "@types/react-router": "^5.1.11", "@types/react-router-dom": "^5.1.7", - "@vitejs/plugin-react": "^4.1.1", + "@vitejs/plugin-react": "^5.0.0", "clsx": "^2.0.0", "react": "^19.0.0", "react-dom": "^19.0.0", diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index 4857064c6ca..d7beaf4615d 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -15,7 +15,7 @@ "@types/react-dom": "^19.0.0", "@types/react-router": "^5.1.11", "@types/react-router-dom": "^5.1.7", - "@vitejs/plugin-react": "^4.1.1", + "@vitejs/plugin-react": "^5.0.0", "clsx": "^2.0.0", "react": "^19.0.0", "react-dom": "^19.0.0", @@ -739,9 +739,9 @@ } }, "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", - "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==" + "version": "1.0.0-beta.30", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.30.tgz", + "integrity": "sha512-whXaSoNUFiyDAjkUF8OBpOm77Szdbk5lGNqFe6CbVbJFrhCCPinCbRA3NjawwlNHla1No7xvXXh+CpSxnPfUEw==" }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.46.2", @@ -1192,19 +1192,19 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", - "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.0.tgz", + "integrity": "sha512-Jx9JfsTa05bYkS9xo0hkofp2dCmp1blrKjw9JONs5BTHOvJCgLbaPSuZLGSVJW6u2qe0tc4eevY0+gSNNi0YCw==", "dependencies": { "@babel/core": "^7.28.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.27", + "@rolldown/pluginutils": "1.0.0-beta.30", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^20.19.0 || >=22.12.0" }, "peerDependencies": { "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" @@ -2265,9 +2265,9 @@ } }, "@rolldown/pluginutils": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", - "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==" + "version": "1.0.0-beta.30", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.30.tgz", + "integrity": "sha512-whXaSoNUFiyDAjkUF8OBpOm77Szdbk5lGNqFe6CbVbJFrhCCPinCbRA3NjawwlNHla1No7xvXXh+CpSxnPfUEw==" }, "@rollup/rollup-android-arm-eabi": { "version": "4.46.2", @@ -2543,14 +2543,14 @@ } }, "@vitejs/plugin-react": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", - "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.0.tgz", + "integrity": "sha512-Jx9JfsTa05bYkS9xo0hkofp2dCmp1blrKjw9JONs5BTHOvJCgLbaPSuZLGSVJW6u2qe0tc4eevY0+gSNNi0YCw==", "requires": { "@babel/core": "^7.28.0", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.27", + "@rolldown/pluginutils": "1.0.0-beta.30", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" } diff --git a/static/code/stackblitz/v8/react/package.json b/static/code/stackblitz/v8/react/package.json index 4efa40fdc37..8e0e0d3ddf4 100644 --- a/static/code/stackblitz/v8/react/package.json +++ b/static/code/stackblitz/v8/react/package.json @@ -10,7 +10,7 @@ "@types/react-dom": "^19.0.0", "@types/react-router": "^5.1.11", "@types/react-router-dom": "^5.1.7", - "@vitejs/plugin-react": "^4.1.1", + "@vitejs/plugin-react": "^5.0.0", "clsx": "^2.0.0", "react": "^19.0.0", "react-dom": "^19.0.0", From 51ac3c3996a14ecf869dfe7d3ead04ea9607dc2f Mon Sep 17 00:00:00 2001 From: Brandy Smith Date: Mon, 11 Aug 2025 11:15:11 -0400 Subject: [PATCH 066/129] docs(radio): point to correct v7 usage for comparewith (#4241) Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com> --- .../v7/radio/using-comparewith/angular/example_component_ts.md | 3 ++- versioned_docs/version-v7/api/radio.md | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/static/usage/v7/radio/using-comparewith/angular/example_component_ts.md b/static/usage/v7/radio/using-comparewith/angular/example_component_ts.md index 4e969a433bb..5b9eb15b1ac 100644 --- a/static/usage/v7/radio/using-comparewith/angular/example_component_ts.md +++ b/static/usage/v7/radio/using-comparewith/angular/example_component_ts.md @@ -1,5 +1,5 @@ ```ts -import { Component } from '@angular/core'; +import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { IonItem, IonList, IonRadio, IonRadioGroup } from '@ionic/angular/standalone'; interface Food { @@ -13,6 +13,7 @@ interface Food { templateUrl: 'example.component.html', styleUrls: ['example.component.css'], imports: [IonItem, IonList, IonRadio, IonRadioGroup], + schemas: [CUSTOM_ELEMENTS_SCHEMA], }) export class ExampleComponent { foods: Food[] = [ diff --git a/versioned_docs/version-v7/api/radio.md b/versioned_docs/version-v7/api/radio.md index 8cec4707042..75dfcd8dc32 100644 --- a/versioned_docs/version-v7/api/radio.md +++ b/versioned_docs/version-v7/api/radio.md @@ -51,7 +51,7 @@ import LabelWrap from '@site/static/usage/v7/radio/label-wrap/index.md'; By default, the radio group uses strict equality (`===`) to determine if an option is selected. This can be overridden by providing a property name or a function to the `compareWith` property. -import UsingComparewith from '@site/static/usage/v8/radio/using-comparewith/index.md'; +import UsingComparewith from '@site/static/usage/v7/radio/using-comparewith/index.md'; From c343066980b03529d5970ff7bc16aa756c756f83 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 12 Aug 2025 09:43:04 -0400 Subject: [PATCH 067/129] chore(deps): update dependency @types/node to v22.17.1 (#4248) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/react/package-lock.json | 12 ++++++------ static/code/stackblitz/v8/react/package-lock.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json index 0cfe6780f92..d305165b800 100644 --- a/static/code/stackblitz/v7/react/package-lock.json +++ b/static/code/stackblitz/v7/react/package-lock.json @@ -1043,9 +1043,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "node_modules/@types/node": { - "version": "22.17.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.0.tgz", - "integrity": "sha512-bbAKTCqX5aNVryi7qXVMi+OkB3w/OyblodicMbvE38blyAz7GxXf6XYhklokijuPwwVg9sDLKRxt0ZHXQwZVfQ==", + "version": "22.17.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.1.tgz", + "integrity": "sha512-y3tBaz+rjspDTylNjAX37jEC3TETEFGNJL6uQDxwF9/8GLLIjW1rvVHlynyuUKMnMr1Roq8jOv3vkopBjC4/VA==", "dependencies": { "undici-types": "~6.21.0" } @@ -2336,9 +2336,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "@types/node": { - "version": "22.17.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.0.tgz", - "integrity": "sha512-bbAKTCqX5aNVryi7qXVMi+OkB3w/OyblodicMbvE38blyAz7GxXf6XYhklokijuPwwVg9sDLKRxt0ZHXQwZVfQ==", + "version": "22.17.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.1.tgz", + "integrity": "sha512-y3tBaz+rjspDTylNjAX37jEC3TETEFGNJL6uQDxwF9/8GLLIjW1rvVHlynyuUKMnMr1Roq8jOv3vkopBjC4/VA==", "requires": { "undici-types": "~6.21.0" } diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index d7beaf4615d..75138ea8195 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -1149,9 +1149,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "node_modules/@types/node": { - "version": "22.17.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.0.tgz", - "integrity": "sha512-bbAKTCqX5aNVryi7qXVMi+OkB3w/OyblodicMbvE38blyAz7GxXf6XYhklokijuPwwVg9sDLKRxt0ZHXQwZVfQ==", + "version": "22.17.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.1.tgz", + "integrity": "sha512-y3tBaz+rjspDTylNjAX37jEC3TETEFGNJL6uQDxwF9/8GLLIjW1rvVHlynyuUKMnMr1Roq8jOv3vkopBjC4/VA==", "dependencies": { "undici-types": "~6.21.0" } @@ -2502,9 +2502,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "@types/node": { - "version": "22.17.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.0.tgz", - "integrity": "sha512-bbAKTCqX5aNVryi7qXVMi+OkB3w/OyblodicMbvE38blyAz7GxXf6XYhklokijuPwwVg9sDLKRxt0ZHXQwZVfQ==", + "version": "22.17.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.1.tgz", + "integrity": "sha512-y3tBaz+rjspDTylNjAX37jEC3TETEFGNJL6uQDxwF9/8GLLIjW1rvVHlynyuUKMnMr1Roq8jOv3vkopBjC4/VA==", "requires": { "undici-types": "~6.21.0" } From a671955e6d999cadee6c55ff5c5983afa2577385 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 15 Aug 2025 09:50:30 -0400 Subject: [PATCH 068/129] chore(deps): update dependency vite to v7.1.2 (#4251) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/vue/package-lock.json | 12 ++++++------ static/code/stackblitz/v8/vue/package-lock.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/static/code/stackblitz/v7/vue/package-lock.json b/static/code/stackblitz/v7/vue/package-lock.json index 35ac8991228..340338cef55 100644 --- a/static/code/stackblitz/v7/vue/package-lock.json +++ b/static/code/stackblitz/v7/vue/package-lock.json @@ -1231,9 +1231,9 @@ } }, "node_modules/vite": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.1.tgz", - "integrity": "sha512-yJ+Mp7OyV+4S+afWo+QyoL9jFWD11QFH0i5i7JypnfTcA1rmgxCbiA8WwAICDEtZ1Z1hzrVhN8R8rGTqkTY8ZQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", + "integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==", "dev": true, "dependencies": { "esbuild": "^0.25.0", @@ -2098,9 +2098,9 @@ "devOptional": true }, "vite": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.1.tgz", - "integrity": "sha512-yJ+Mp7OyV+4S+afWo+QyoL9jFWD11QFH0i5i7JypnfTcA1rmgxCbiA8WwAICDEtZ1Z1hzrVhN8R8rGTqkTY8ZQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", + "integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==", "dev": true, "requires": { "esbuild": "^0.25.0", diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index 178759496a3..a2b60f15ec0 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -1359,9 +1359,9 @@ } }, "node_modules/vite": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.1.tgz", - "integrity": "sha512-yJ+Mp7OyV+4S+afWo+QyoL9jFWD11QFH0i5i7JypnfTcA1rmgxCbiA8WwAICDEtZ1Z1hzrVhN8R8rGTqkTY8ZQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", + "integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==", "dev": true, "dependencies": { "esbuild": "^0.25.0", @@ -2293,9 +2293,9 @@ "devOptional": true }, "vite": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.1.tgz", - "integrity": "sha512-yJ+Mp7OyV+4S+afWo+QyoL9jFWD11QFH0i5i7JypnfTcA1rmgxCbiA8WwAICDEtZ1Z1hzrVhN8R8rGTqkTY8ZQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", + "integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==", "dev": true, "requires": { "esbuild": "^0.25.0", From b185708894c36c0f69fd98e3214b4eac62cdfe1b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 15 Aug 2025 09:51:14 -0400 Subject: [PATCH 069/129] chore(deps): update dependency vite to v7.1.2 (#4250) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/react/package-lock.json | 12 ++++++------ static/code/stackblitz/v8/react/package-lock.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json index d305165b800..5373df0678d 100644 --- a/static/code/stackblitz/v7/react/package-lock.json +++ b/static/code/stackblitz/v7/react/package-lock.json @@ -1679,9 +1679,9 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "node_modules/vite": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.1.tgz", - "integrity": "sha512-yJ+Mp7OyV+4S+afWo+QyoL9jFWD11QFH0i5i7JypnfTcA1rmgxCbiA8WwAICDEtZ1Z1hzrVhN8R8rGTqkTY8ZQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", + "integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==", "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.6", @@ -2782,9 +2782,9 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "vite": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.1.tgz", - "integrity": "sha512-yJ+Mp7OyV+4S+afWo+QyoL9jFWD11QFH0i5i7JypnfTcA1rmgxCbiA8WwAICDEtZ1Z1hzrVhN8R8rGTqkTY8ZQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", + "integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==", "requires": { "esbuild": "^0.25.0", "fdir": "^6.4.6", diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index 75138ea8195..7886c86e87b 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -1785,9 +1785,9 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "node_modules/vite": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.1.tgz", - "integrity": "sha512-yJ+Mp7OyV+4S+afWo+QyoL9jFWD11QFH0i5i7JypnfTcA1rmgxCbiA8WwAICDEtZ1Z1hzrVhN8R8rGTqkTY8ZQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", + "integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==", "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.6", @@ -2948,9 +2948,9 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "vite": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.1.tgz", - "integrity": "sha512-yJ+Mp7OyV+4S+afWo+QyoL9jFWD11QFH0i5i7JypnfTcA1rmgxCbiA8WwAICDEtZ1Z1hzrVhN8R8rGTqkTY8ZQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", + "integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==", "requires": { "esbuild": "^0.25.0", "fdir": "^6.4.6", From 53eac8207960b393628a02b075bd4ede4a413ea6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 15 Aug 2025 09:51:55 -0400 Subject: [PATCH 070/129] chore(deps): update dependency @types/react to v19.1.10 (#4249) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/react/package-lock.json | 12 ++++++------ static/code/stackblitz/v8/react/package-lock.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json index 5373df0678d..296a4359a8e 100644 --- a/static/code/stackblitz/v7/react/package-lock.json +++ b/static/code/stackblitz/v7/react/package-lock.json @@ -1051,9 +1051,9 @@ } }, "node_modules/@types/react": { - "version": "19.1.9", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.9.tgz", - "integrity": "sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA==", + "version": "19.1.10", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.10.tgz", + "integrity": "sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==", "dependencies": { "csstype": "^3.0.2" } @@ -2344,9 +2344,9 @@ } }, "@types/react": { - "version": "19.1.9", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.9.tgz", - "integrity": "sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA==", + "version": "19.1.10", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.10.tgz", + "integrity": "sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==", "requires": { "csstype": "^3.0.2" } diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index 7886c86e87b..489ba35799f 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -1157,9 +1157,9 @@ } }, "node_modules/@types/react": { - "version": "19.1.9", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.9.tgz", - "integrity": "sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA==", + "version": "19.1.10", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.10.tgz", + "integrity": "sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==", "dependencies": { "csstype": "^3.0.2" } @@ -2510,9 +2510,9 @@ } }, "@types/react": { - "version": "19.1.9", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.9.tgz", - "integrity": "sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA==", + "version": "19.1.10", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.10.tgz", + "integrity": "sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==", "requires": { "csstype": "^3.0.2" } From 47e2f8dc1957e1d3781d3988bf0ca0e642735962 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 Aug 2025 09:57:09 -0400 Subject: [PATCH 071/129] chore(deps): update dependency @types/node to v22.17.2 (#4253) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/react/package-lock.json | 12 ++++++------ static/code/stackblitz/v8/react/package-lock.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json index 296a4359a8e..a0f1fabffa2 100644 --- a/static/code/stackblitz/v7/react/package-lock.json +++ b/static/code/stackblitz/v7/react/package-lock.json @@ -1043,9 +1043,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "node_modules/@types/node": { - "version": "22.17.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.1.tgz", - "integrity": "sha512-y3tBaz+rjspDTylNjAX37jEC3TETEFGNJL6uQDxwF9/8GLLIjW1rvVHlynyuUKMnMr1Roq8jOv3vkopBjC4/VA==", + "version": "22.17.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.2.tgz", + "integrity": "sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w==", "dependencies": { "undici-types": "~6.21.0" } @@ -2336,9 +2336,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "@types/node": { - "version": "22.17.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.1.tgz", - "integrity": "sha512-y3tBaz+rjspDTylNjAX37jEC3TETEFGNJL6uQDxwF9/8GLLIjW1rvVHlynyuUKMnMr1Roq8jOv3vkopBjC4/VA==", + "version": "22.17.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.2.tgz", + "integrity": "sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w==", "requires": { "undici-types": "~6.21.0" } diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index 489ba35799f..02692ce2d7c 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -1149,9 +1149,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "node_modules/@types/node": { - "version": "22.17.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.1.tgz", - "integrity": "sha512-y3tBaz+rjspDTylNjAX37jEC3TETEFGNJL6uQDxwF9/8GLLIjW1rvVHlynyuUKMnMr1Roq8jOv3vkopBjC4/VA==", + "version": "22.17.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.2.tgz", + "integrity": "sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w==", "dependencies": { "undici-types": "~6.21.0" } @@ -2502,9 +2502,9 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" }, "@types/node": { - "version": "22.17.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.1.tgz", - "integrity": "sha512-y3tBaz+rjspDTylNjAX37jEC3TETEFGNJL6uQDxwF9/8GLLIjW1rvVHlynyuUKMnMr1Roq8jOv3vkopBjC4/VA==", + "version": "22.17.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.2.tgz", + "integrity": "sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w==", "requires": { "undici-types": "~6.21.0" } From 10ac3954b12ff8e776a0ff72aa2e8017fb546865 Mon Sep 17 00:00:00 2001 From: Shane Date: Mon, 18 Aug 2025 06:58:55 -0700 Subject: [PATCH 072/129] docs(first-app): fixing PuTTY links (#4254) --- docs/developer-resources/guides/first-app-v4/intro.md | 2 +- .../version-v5/developer-resources/guides/first-app-v4/intro.md | 2 +- .../version-v6/developer-resources/guides/first-app-v4/intro.md | 2 +- .../version-v7/developer-resources/guides/first-app-v4/intro.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/developer-resources/guides/first-app-v4/intro.md b/docs/developer-resources/guides/first-app-v4/intro.md index 153afc5646f..88b596a707c 100644 --- a/docs/developer-resources/guides/first-app-v4/intro.md +++ b/docs/developer-resources/guides/first-app-v4/intro.md @@ -11,7 +11,7 @@ It’s easy to get started. Note that all code referenced in this guide can be [ Download/install these right away to ensure an optimal Ionic development experience: - [Git](https://git-scm.com/downloads) for version control. -- SSH client, such as [PuTTy](https://www.putty.org/), for secure login to Appflow. +- SSH client, such as [PuTTy](https://putty.software/), for secure login to Appflow. - Node.js for interacting with the Ionic ecosystem. [Download the LTS version here](https://nodejs.org/en/). - A code editor for... writing code! We are fans of [Visual Studio Code](https://code.visualstudio.com/). - Command-line terminal (CLI): FYI Windows users, for the best Ionic experience, we diff --git a/versioned_docs/version-v5/developer-resources/guides/first-app-v4/intro.md b/versioned_docs/version-v5/developer-resources/guides/first-app-v4/intro.md index 153afc5646f..88b596a707c 100644 --- a/versioned_docs/version-v5/developer-resources/guides/first-app-v4/intro.md +++ b/versioned_docs/version-v5/developer-resources/guides/first-app-v4/intro.md @@ -11,7 +11,7 @@ It’s easy to get started. Note that all code referenced in this guide can be [ Download/install these right away to ensure an optimal Ionic development experience: - [Git](https://git-scm.com/downloads) for version control. -- SSH client, such as [PuTTy](https://www.putty.org/), for secure login to Appflow. +- SSH client, such as [PuTTy](https://putty.software/), for secure login to Appflow. - Node.js for interacting with the Ionic ecosystem. [Download the LTS version here](https://nodejs.org/en/). - A code editor for... writing code! We are fans of [Visual Studio Code](https://code.visualstudio.com/). - Command-line terminal (CLI): FYI Windows users, for the best Ionic experience, we diff --git a/versioned_docs/version-v6/developer-resources/guides/first-app-v4/intro.md b/versioned_docs/version-v6/developer-resources/guides/first-app-v4/intro.md index 153afc5646f..88b596a707c 100644 --- a/versioned_docs/version-v6/developer-resources/guides/first-app-v4/intro.md +++ b/versioned_docs/version-v6/developer-resources/guides/first-app-v4/intro.md @@ -11,7 +11,7 @@ It’s easy to get started. Note that all code referenced in this guide can be [ Download/install these right away to ensure an optimal Ionic development experience: - [Git](https://git-scm.com/downloads) for version control. -- SSH client, such as [PuTTy](https://www.putty.org/), for secure login to Appflow. +- SSH client, such as [PuTTy](https://putty.software/), for secure login to Appflow. - Node.js for interacting with the Ionic ecosystem. [Download the LTS version here](https://nodejs.org/en/). - A code editor for... writing code! We are fans of [Visual Studio Code](https://code.visualstudio.com/). - Command-line terminal (CLI): FYI Windows users, for the best Ionic experience, we diff --git a/versioned_docs/version-v7/developer-resources/guides/first-app-v4/intro.md b/versioned_docs/version-v7/developer-resources/guides/first-app-v4/intro.md index f66e6d09464..29508dc3359 100644 --- a/versioned_docs/version-v7/developer-resources/guides/first-app-v4/intro.md +++ b/versioned_docs/version-v7/developer-resources/guides/first-app-v4/intro.md @@ -11,7 +11,7 @@ It’s easy to get started. Note that all code referenced in this guide can be [ Download/install these right away to ensure an optimal Ionic development experience: - [Git](https://git-scm.com/downloads) for version control. -- SSH client, such as [PuTTy](https://www.putty.org/), for secure login to Appflow. +- SSH client, such as [PuTTy](https://putty.software/), for secure login to Appflow. - Node.js for interacting with the Ionic ecosystem. [Download the LTS version here](https://nodejs.org/en/). - A code editor for... writing code! We are fans of [Visual Studio Code](https://code.visualstudio.com/). - Command-line terminal (CLI): FYI Windows users, for the best Ionic experience, we From 337021d7d74807cd787f9ce8209f3f490fa4c5ca Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 21 Aug 2025 10:07:22 -0400 Subject: [PATCH 073/129] chore(deps): update ionic to v8.7.3 (#4255) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../code/stackblitz/v8/angular/package.json | 4 +- static/code/stackblitz/v8/html/package.json | 2 +- .../stackblitz/v8/react/package-lock.json | 48 +++++++++---------- static/code/stackblitz/v8/react/package.json | 4 +- .../code/stackblitz/v8/vue/package-lock.json | 48 +++++++++---------- static/code/stackblitz/v8/vue/package.json | 4 +- 6 files changed, 55 insertions(+), 55 deletions(-) diff --git a/static/code/stackblitz/v8/angular/package.json b/static/code/stackblitz/v8/angular/package.json index e695dfe99a2..b37a941fdd7 100644 --- a/static/code/stackblitz/v8/angular/package.json +++ b/static/code/stackblitz/v8/angular/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@ionic/angular": "8.7.2", - "@ionic/core": "8.7.2", + "@ionic/angular": "8.7.3", + "@ionic/core": "8.7.3", "ionicons": "8.0.13", "rxjs": "^7.8.1", "tslib": "^2.5.0", diff --git a/static/code/stackblitz/v8/html/package.json b/static/code/stackblitz/v8/html/package.json index 31fa964edbf..f852c07492c 100644 --- a/static/code/stackblitz/v8/html/package.json +++ b/static/code/stackblitz/v8/html/package.json @@ -9,7 +9,7 @@ "start": "vite preview" }, "dependencies": { - "@ionic/core": "8.7.2", + "@ionic/core": "8.7.3", "ionicons": "8.0.13" }, "devDependencies": { diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index 02692ce2d7c..807b3ea991c 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -8,8 +8,8 @@ "name": "vite-react-typescript", "version": "0.1.0", "dependencies": { - "@ionic/react": "8.7.2", - "@ionic/react-router": "8.7.2", + "@ionic/react": "8.7.3", + "@ionic/react-router": "8.7.3", "@types/node": "^22.0.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", @@ -669,9 +669,9 @@ } }, "node_modules/@ionic/core": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.7.2.tgz", - "integrity": "sha512-u1xTJHltvcwiHkwGowQ/uywiUmvszNeR4mXT5JSp1RH6npe8e9doIY9KSzKRrzpWu1T+H0bUwGbhaYg/I/poRA==", + "version": "8.7.3", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.7.3.tgz", + "integrity": "sha512-KdyMxpMDQj+uqpztpK6yvN/T96hqcDiGXQ4T+aAZ+LW3wV3+0it6/rbh9C1B/wCl4Isnm4IRltPabgEfNJ50nw==", "dependencies": { "@stencil/core": "4.36.2", "ionicons": "^8.0.13", @@ -679,11 +679,11 @@ } }, "node_modules/@ionic/react": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.7.2.tgz", - "integrity": "sha512-HEKZvbrM7O9pjPtrWH48uarm+O84pVbjfc8aSU/PTG4cE+TbYhSW9xMqIAUEpIUxb56bB1B189uDfPI5zBc7Bg==", + "version": "8.7.3", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.7.3.tgz", + "integrity": "sha512-ArByomMeBNI1HpvfYc6E5E76wO2agg87LxLaNI13PYTb1UpFTw6vf7P+lU+cQc9roaC48KQwV0Ndyd3XmkkyfA==", "dependencies": { - "@ionic/core": "8.7.2", + "@ionic/core": "8.7.3", "ionicons": "^8.0.13", "tslib": "*" }, @@ -693,11 +693,11 @@ } }, "node_modules/@ionic/react-router": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.7.2.tgz", - "integrity": "sha512-URQBIYPWyB1t8s1xQjZn19NCOVFgmFAVwSlAZmemiTDzvU7JGa+rqtjufhUrq7DYbJV7SlgE+YbYwdC34NFJEg==", + "version": "8.7.3", + "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.7.3.tgz", + "integrity": "sha512-NApR9HXQyMhF/OpY2NKlOyBzyG7dke9vREzx10M9KJfK+a3vCaeh82GciVFOJr+Jo7VDMUfjXpTifPHRjbdWoA==", "dependencies": { - "@ionic/react": "8.7.2", + "@ionic/react": "8.7.3", "tslib": "*" }, "peerDependencies": { @@ -2208,9 +2208,9 @@ "optional": true }, "@ionic/core": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.7.2.tgz", - "integrity": "sha512-u1xTJHltvcwiHkwGowQ/uywiUmvszNeR4mXT5JSp1RH6npe8e9doIY9KSzKRrzpWu1T+H0bUwGbhaYg/I/poRA==", + "version": "8.7.3", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.7.3.tgz", + "integrity": "sha512-KdyMxpMDQj+uqpztpK6yvN/T96hqcDiGXQ4T+aAZ+LW3wV3+0it6/rbh9C1B/wCl4Isnm4IRltPabgEfNJ50nw==", "requires": { "@stencil/core": "4.36.2", "ionicons": "^8.0.13", @@ -2218,21 +2218,21 @@ } }, "@ionic/react": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.7.2.tgz", - "integrity": "sha512-HEKZvbrM7O9pjPtrWH48uarm+O84pVbjfc8aSU/PTG4cE+TbYhSW9xMqIAUEpIUxb56bB1B189uDfPI5zBc7Bg==", + "version": "8.7.3", + "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.7.3.tgz", + "integrity": "sha512-ArByomMeBNI1HpvfYc6E5E76wO2agg87LxLaNI13PYTb1UpFTw6vf7P+lU+cQc9roaC48KQwV0Ndyd3XmkkyfA==", "requires": { - "@ionic/core": "8.7.2", + "@ionic/core": "8.7.3", "ionicons": "^8.0.13", "tslib": "*" } }, "@ionic/react-router": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.7.2.tgz", - "integrity": "sha512-URQBIYPWyB1t8s1xQjZn19NCOVFgmFAVwSlAZmemiTDzvU7JGa+rqtjufhUrq7DYbJV7SlgE+YbYwdC34NFJEg==", + "version": "8.7.3", + "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.7.3.tgz", + "integrity": "sha512-NApR9HXQyMhF/OpY2NKlOyBzyG7dke9vREzx10M9KJfK+a3vCaeh82GciVFOJr+Jo7VDMUfjXpTifPHRjbdWoA==", "requires": { - "@ionic/react": "8.7.2", + "@ionic/react": "8.7.3", "tslib": "*" } }, diff --git a/static/code/stackblitz/v8/react/package.json b/static/code/stackblitz/v8/react/package.json index 8e0e0d3ddf4..2e2d68b5cd3 100644 --- a/static/code/stackblitz/v8/react/package.json +++ b/static/code/stackblitz/v8/react/package.json @@ -3,8 +3,8 @@ "version": "0.1.0", "private": true, "dependencies": { - "@ionic/react": "8.7.2", - "@ionic/react-router": "8.7.2", + "@ionic/react": "8.7.3", + "@ionic/react-router": "8.7.3", "@types/node": "^22.0.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index a2b60f15ec0..c0cdca47393 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -8,8 +8,8 @@ "name": "vite-vue-starter", "version": "0.0.0", "dependencies": { - "@ionic/vue": "8.7.2", - "@ionic/vue-router": "8.7.2", + "@ionic/vue": "8.7.3", + "@ionic/vue-router": "8.7.3", "vue": "^3.2.25", "vue-router": "4.5.1" }, @@ -463,9 +463,9 @@ } }, "node_modules/@ionic/core": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.7.2.tgz", - "integrity": "sha512-u1xTJHltvcwiHkwGowQ/uywiUmvszNeR4mXT5JSp1RH6npe8e9doIY9KSzKRrzpWu1T+H0bUwGbhaYg/I/poRA==", + "version": "8.7.3", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.7.3.tgz", + "integrity": "sha512-KdyMxpMDQj+uqpztpK6yvN/T96hqcDiGXQ4T+aAZ+LW3wV3+0it6/rbh9C1B/wCl4Isnm4IRltPabgEfNJ50nw==", "dependencies": { "@stencil/core": "4.36.2", "ionicons": "^8.0.13", @@ -473,21 +473,21 @@ } }, "node_modules/@ionic/vue": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.7.2.tgz", - "integrity": "sha512-5sOMt15X4DRHbIyrotv8FyUK8805V7ePJ36Hx0IS8Grv5PXySg+G0cN/bYHR+eg3Oc525ldkBlaM/cYwu1GOzQ==", + "version": "8.7.3", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.7.3.tgz", + "integrity": "sha512-QMtlV+hIz8icO7eYwQrK4mN0CqySXKllot6BeJXPBFVaK9la0TY6tUaxtSxpz22wYj4jVVF7MRn6HZ0RCfUJJQ==", "dependencies": { - "@ionic/core": "8.7.2", + "@ionic/core": "8.7.3", "@stencil/vue-output-target": "0.10.7", "ionicons": "^8.0.13" } }, "node_modules/@ionic/vue-router": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.7.2.tgz", - "integrity": "sha512-KfT3RmunE8N/xYgEOcBwgI62x7pPxu8eoaWdpy2XkHX5oDgMcZgFuD8+ffoOIMtAOL5GCNxD+5cSGNcdLmj7cQ==", + "version": "8.7.3", + "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.7.3.tgz", + "integrity": "sha512-01gOFO1caU6Rx1jvdpfiwtdXqvxGBxhzfCyV6LMGBvGiKN7g00qDkah1iPZz89wKCjWgW3Hg2Czt0bGfPnUREg==", "dependencies": { - "@ionic/vue": "8.7.2" + "@ionic/vue": "8.7.3" } }, "node_modules/@jridgewell/sourcemap-codec": { @@ -1693,9 +1693,9 @@ "optional": true }, "@ionic/core": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.7.2.tgz", - "integrity": "sha512-u1xTJHltvcwiHkwGowQ/uywiUmvszNeR4mXT5JSp1RH6npe8e9doIY9KSzKRrzpWu1T+H0bUwGbhaYg/I/poRA==", + "version": "8.7.3", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.7.3.tgz", + "integrity": "sha512-KdyMxpMDQj+uqpztpK6yvN/T96hqcDiGXQ4T+aAZ+LW3wV3+0it6/rbh9C1B/wCl4Isnm4IRltPabgEfNJ50nw==", "requires": { "@stencil/core": "4.36.2", "ionicons": "^8.0.13", @@ -1703,21 +1703,21 @@ } }, "@ionic/vue": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.7.2.tgz", - "integrity": "sha512-5sOMt15X4DRHbIyrotv8FyUK8805V7ePJ36Hx0IS8Grv5PXySg+G0cN/bYHR+eg3Oc525ldkBlaM/cYwu1GOzQ==", + "version": "8.7.3", + "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.7.3.tgz", + "integrity": "sha512-QMtlV+hIz8icO7eYwQrK4mN0CqySXKllot6BeJXPBFVaK9la0TY6tUaxtSxpz22wYj4jVVF7MRn6HZ0RCfUJJQ==", "requires": { - "@ionic/core": "8.7.2", + "@ionic/core": "8.7.3", "@stencil/vue-output-target": "0.10.7", "ionicons": "^8.0.13" } }, "@ionic/vue-router": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.7.2.tgz", - "integrity": "sha512-KfT3RmunE8N/xYgEOcBwgI62x7pPxu8eoaWdpy2XkHX5oDgMcZgFuD8+ffoOIMtAOL5GCNxD+5cSGNcdLmj7cQ==", + "version": "8.7.3", + "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.7.3.tgz", + "integrity": "sha512-01gOFO1caU6Rx1jvdpfiwtdXqvxGBxhzfCyV6LMGBvGiKN7g00qDkah1iPZz89wKCjWgW3Hg2Czt0bGfPnUREg==", "requires": { - "@ionic/vue": "8.7.2" + "@ionic/vue": "8.7.3" } }, "@jridgewell/sourcemap-codec": { diff --git a/static/code/stackblitz/v8/vue/package.json b/static/code/stackblitz/v8/vue/package.json index f33a2959f90..11679ec6599 100644 --- a/static/code/stackblitz/v8/vue/package.json +++ b/static/code/stackblitz/v8/vue/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@ionic/vue": "8.7.2", - "@ionic/vue-router": "8.7.2", + "@ionic/vue": "8.7.3", + "@ionic/vue-router": "8.7.3", "vue": "^3.2.25", "vue-router": "4.5.1" }, From 977b662a91cd6cb074585f18b1469ae1bf11ba28 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 22 Aug 2025 10:01:56 -0400 Subject: [PATCH 074/129] chore(deps): update dependency @vitejs/plugin-react to v5.0.1 (#4256) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../stackblitz/v7/react/package-lock.json | 172 +++++++++--------- .../stackblitz/v8/react/package-lock.json | 172 +++++++++--------- 2 files changed, 172 insertions(+), 172 deletions(-) diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json index a0f1fabffa2..afdf8855bd9 100644 --- a/static/code/stackblitz/v7/react/package-lock.json +++ b/static/code/stackblitz/v7/react/package-lock.json @@ -60,20 +60,20 @@ } }, "node_modules/@babel/core": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", - "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", + "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.0", + "@babel/generator": "^7.28.3", "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.27.3", - "@babel/helpers": "^7.27.6", - "@babel/parser": "^7.28.0", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.3", + "@babel/parser": "^7.28.3", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.0", - "@babel/types": "^7.28.0", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -89,12 +89,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", - "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", "dependencies": { - "@babel/parser": "^7.28.0", - "@babel/types": "^7.28.0", + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -139,13 +139,13 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", - "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.3" + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -187,23 +187,23 @@ } }, "node_modules/@babel/helpers": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", - "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", + "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", "dependencies": { "@babel/template": "^7.27.2", - "@babel/types": "^7.27.6" + "@babel/types": "^7.28.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", - "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", + "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", "dependencies": { - "@babel/types": "^7.28.0" + "@babel/types": "^7.28.2" }, "bin": { "parser": "bin/babel-parser.js" @@ -265,16 +265,16 @@ } }, "node_modules/@babel/traverse": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", - "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", + "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.0", + "@babel/generator": "^7.28.3", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.0", + "@babel/parser": "^7.28.3", "@babel/template": "^7.27.2", - "@babel/types": "^7.28.0", + "@babel/types": "^7.28.2", "debug": "^4.3.1" }, "engines": { @@ -282,9 +282,9 @@ } }, "node_modules/@babel/types": { - "version": "7.28.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz", - "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" @@ -739,9 +739,9 @@ } }, "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.30", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.30.tgz", - "integrity": "sha512-whXaSoNUFiyDAjkUF8OBpOm77Szdbk5lGNqFe6CbVbJFrhCCPinCbRA3NjawwlNHla1No7xvXXh+CpSxnPfUEw==" + "version": "1.0.0-beta.32", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.32.tgz", + "integrity": "sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==" }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.46.2", @@ -1086,14 +1086,14 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.0.tgz", - "integrity": "sha512-Jx9JfsTa05bYkS9xo0hkofp2dCmp1blrKjw9JONs5BTHOvJCgLbaPSuZLGSVJW6u2qe0tc4eevY0+gSNNi0YCw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.1.tgz", + "integrity": "sha512-DE4UNaBXwtVoDJ0ccBdLVjFTWL70NRuWNCxEieTI3lrq9ORB9aOCQEKstwDXBl87NvFdbqh/p7eINGyj0BthJA==", "dependencies": { - "@babel/core": "^7.28.0", + "@babel/core": "^7.28.3", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.30", + "@rolldown/pluginutils": "1.0.0-beta.32", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, @@ -1788,20 +1788,20 @@ "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==" }, "@babel/core": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", - "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", + "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", "requires": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.0", + "@babel/generator": "^7.28.3", "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.27.3", - "@babel/helpers": "^7.27.6", - "@babel/parser": "^7.28.0", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.3", + "@babel/parser": "^7.28.3", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.0", - "@babel/types": "^7.28.0", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -1810,12 +1810,12 @@ } }, "@babel/generator": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", - "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", "requires": { - "@babel/parser": "^7.28.0", - "@babel/types": "^7.28.0", + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -1848,13 +1848,13 @@ } }, "@babel/helper-module-transforms": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", - "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "requires": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.3" + "@babel/traverse": "^7.28.3" } }, "@babel/helper-plugin-utils": { @@ -1878,20 +1878,20 @@ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==" }, "@babel/helpers": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", - "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", + "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", "requires": { "@babel/template": "^7.27.2", - "@babel/types": "^7.27.6" + "@babel/types": "^7.28.2" } }, "@babel/parser": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", - "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", + "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", "requires": { - "@babel/types": "^7.28.0" + "@babel/types": "^7.28.2" } }, "@babel/plugin-transform-react-jsx-self": { @@ -1929,23 +1929,23 @@ } }, "@babel/traverse": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", - "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", + "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", "requires": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.0", + "@babel/generator": "^7.28.3", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.0", + "@babel/parser": "^7.28.3", "@babel/template": "^7.27.2", - "@babel/types": "^7.28.0", + "@babel/types": "^7.28.2", "debug": "^4.3.1" } }, "@babel/types": { - "version": "7.28.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz", - "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", "requires": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" @@ -2159,9 +2159,9 @@ } }, "@rolldown/pluginutils": { - "version": "1.0.0-beta.30", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.30.tgz", - "integrity": "sha512-whXaSoNUFiyDAjkUF8OBpOm77Szdbk5lGNqFe6CbVbJFrhCCPinCbRA3NjawwlNHla1No7xvXXh+CpSxnPfUEw==" + "version": "1.0.0-beta.32", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.32.tgz", + "integrity": "sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==" }, "@rollup/rollup-android-arm-eabi": { "version": "4.46.2", @@ -2377,14 +2377,14 @@ } }, "@vitejs/plugin-react": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.0.tgz", - "integrity": "sha512-Jx9JfsTa05bYkS9xo0hkofp2dCmp1blrKjw9JONs5BTHOvJCgLbaPSuZLGSVJW6u2qe0tc4eevY0+gSNNi0YCw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.1.tgz", + "integrity": "sha512-DE4UNaBXwtVoDJ0ccBdLVjFTWL70NRuWNCxEieTI3lrq9ORB9aOCQEKstwDXBl87NvFdbqh/p7eINGyj0BthJA==", "requires": { - "@babel/core": "^7.28.0", + "@babel/core": "^7.28.3", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.30", + "@rolldown/pluginutils": "1.0.0-beta.32", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" } diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index 807b3ea991c..d2e13dd742a 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -60,20 +60,20 @@ } }, "node_modules/@babel/core": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", - "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", + "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.0", + "@babel/generator": "^7.28.3", "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.27.3", - "@babel/helpers": "^7.27.6", - "@babel/parser": "^7.28.0", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.3", + "@babel/parser": "^7.28.3", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.0", - "@babel/types": "^7.28.0", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -89,12 +89,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", - "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", "dependencies": { - "@babel/parser": "^7.28.0", - "@babel/types": "^7.28.0", + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -139,13 +139,13 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", - "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.3" + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -187,23 +187,23 @@ } }, "node_modules/@babel/helpers": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", - "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", + "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", "dependencies": { "@babel/template": "^7.27.2", - "@babel/types": "^7.27.6" + "@babel/types": "^7.28.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", - "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", + "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", "dependencies": { - "@babel/types": "^7.28.0" + "@babel/types": "^7.28.2" }, "bin": { "parser": "bin/babel-parser.js" @@ -265,16 +265,16 @@ } }, "node_modules/@babel/traverse": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", - "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", + "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.0", + "@babel/generator": "^7.28.3", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.0", + "@babel/parser": "^7.28.3", "@babel/template": "^7.27.2", - "@babel/types": "^7.28.0", + "@babel/types": "^7.28.2", "debug": "^4.3.1" }, "engines": { @@ -282,9 +282,9 @@ } }, "node_modules/@babel/types": { - "version": "7.28.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz", - "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" @@ -739,9 +739,9 @@ } }, "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.30", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.30.tgz", - "integrity": "sha512-whXaSoNUFiyDAjkUF8OBpOm77Szdbk5lGNqFe6CbVbJFrhCCPinCbRA3NjawwlNHla1No7xvXXh+CpSxnPfUEw==" + "version": "1.0.0-beta.32", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.32.tgz", + "integrity": "sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==" }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.46.2", @@ -1192,14 +1192,14 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.0.tgz", - "integrity": "sha512-Jx9JfsTa05bYkS9xo0hkofp2dCmp1blrKjw9JONs5BTHOvJCgLbaPSuZLGSVJW6u2qe0tc4eevY0+gSNNi0YCw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.1.tgz", + "integrity": "sha512-DE4UNaBXwtVoDJ0ccBdLVjFTWL70NRuWNCxEieTI3lrq9ORB9aOCQEKstwDXBl87NvFdbqh/p7eINGyj0BthJA==", "dependencies": { - "@babel/core": "^7.28.0", + "@babel/core": "^7.28.3", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.30", + "@rolldown/pluginutils": "1.0.0-beta.32", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, @@ -1894,20 +1894,20 @@ "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==" }, "@babel/core": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.0.tgz", - "integrity": "sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", + "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", "requires": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.0", + "@babel/generator": "^7.28.3", "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.27.3", - "@babel/helpers": "^7.27.6", - "@babel/parser": "^7.28.0", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.3", + "@babel/parser": "^7.28.3", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.0", - "@babel/types": "^7.28.0", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -1916,12 +1916,12 @@ } }, "@babel/generator": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.0.tgz", - "integrity": "sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", "requires": { - "@babel/parser": "^7.28.0", - "@babel/types": "^7.28.0", + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -1954,13 +1954,13 @@ } }, "@babel/helper-module-transforms": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", - "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "requires": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.3" + "@babel/traverse": "^7.28.3" } }, "@babel/helper-plugin-utils": { @@ -1984,20 +1984,20 @@ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==" }, "@babel/helpers": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.6.tgz", - "integrity": "sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", + "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", "requires": { "@babel/template": "^7.27.2", - "@babel/types": "^7.27.6" + "@babel/types": "^7.28.2" } }, "@babel/parser": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", - "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", + "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", "requires": { - "@babel/types": "^7.28.0" + "@babel/types": "^7.28.2" } }, "@babel/plugin-transform-react-jsx-self": { @@ -2035,23 +2035,23 @@ } }, "@babel/traverse": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.0.tgz", - "integrity": "sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", + "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", "requires": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.0", + "@babel/generator": "^7.28.3", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.0", + "@babel/parser": "^7.28.3", "@babel/template": "^7.27.2", - "@babel/types": "^7.28.0", + "@babel/types": "^7.28.2", "debug": "^4.3.1" } }, "@babel/types": { - "version": "7.28.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.1.tgz", - "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==", + "version": "7.28.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", + "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", "requires": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" @@ -2265,9 +2265,9 @@ } }, "@rolldown/pluginutils": { - "version": "1.0.0-beta.30", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.30.tgz", - "integrity": "sha512-whXaSoNUFiyDAjkUF8OBpOm77Szdbk5lGNqFe6CbVbJFrhCCPinCbRA3NjawwlNHla1No7xvXXh+CpSxnPfUEw==" + "version": "1.0.0-beta.32", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.32.tgz", + "integrity": "sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==" }, "@rollup/rollup-android-arm-eabi": { "version": "4.46.2", @@ -2543,14 +2543,14 @@ } }, "@vitejs/plugin-react": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.0.tgz", - "integrity": "sha512-Jx9JfsTa05bYkS9xo0hkofp2dCmp1blrKjw9JONs5BTHOvJCgLbaPSuZLGSVJW6u2qe0tc4eevY0+gSNNi0YCw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.1.tgz", + "integrity": "sha512-DE4UNaBXwtVoDJ0ccBdLVjFTWL70NRuWNCxEieTI3lrq9ORB9aOCQEKstwDXBl87NvFdbqh/p7eINGyj0BthJA==", "requires": { - "@babel/core": "^7.28.0", + "@babel/core": "^7.28.3", "@babel/plugin-transform-react-jsx-self": "^7.27.1", "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.30", + "@rolldown/pluginutils": "1.0.0-beta.32", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" } From 1bdf425a74694a4d4d0d4a70608a6c7b5c2bea8f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 25 Aug 2025 09:50:16 -0400 Subject: [PATCH 075/129] chore(deps): update dependency vue to v3.5.19 (#4259) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../code/stackblitz/v7/vue/package-lock.json | 234 +++++++++--------- .../code/stackblitz/v8/vue/package-lock.json | 234 +++++++++--------- 2 files changed, 234 insertions(+), 234 deletions(-) diff --git a/static/code/stackblitz/v7/vue/package-lock.json b/static/code/stackblitz/v7/vue/package-lock.json index 340338cef55..9ba1bb84993 100644 --- a/static/code/stackblitz/v7/vue/package-lock.json +++ b/static/code/stackblitz/v7/vue/package-lock.json @@ -37,11 +37,11 @@ } }, "node_modules/@babel/parser": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", - "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", + "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", "dependencies": { - "@babel/types": "^7.28.0" + "@babel/types": "^7.28.2" }, "bin": { "parser": "bin/babel-parser.js" @@ -821,36 +821,36 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.18.tgz", - "integrity": "sha512-3slwjQrrV1TO8MoXgy3aynDQ7lslj5UqDxuHnrzHtpON5CBinhWjJETciPngpin/T3OuW3tXUf86tEurusnztw==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.19.tgz", + "integrity": "sha512-/afpyvlkrSNYbPo94Qu8GtIOWS+g5TRdOvs6XZNw6pWQQmj5pBgSZvEPOIZlqWq0YvoUhDDQaQ2TnzuJdOV4hA==", "dependencies": { - "@babel/parser": "^7.28.0", - "@vue/shared": "3.5.18", + "@babel/parser": "^7.28.3", + "@vue/shared": "3.5.19", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" } }, "node_modules/@vue/compiler-dom": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.18.tgz", - "integrity": "sha512-RMbU6NTU70++B1JyVJbNbeFkK+A+Q7y9XKE2EM4NLGm2WFR8x9MbAtWxPPLdm0wUkuZv9trpwfSlL6tjdIa1+A==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.19.tgz", + "integrity": "sha512-Drs6rPHQZx/pN9S6ml3Z3K/TWCIRPvzG2B/o5kFK9X0MNHt8/E+38tiRfojufrYBfA6FQUFB2qBBRXlcSXWtOA==", "dependencies": { - "@vue/compiler-core": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/compiler-core": "3.5.19", + "@vue/shared": "3.5.19" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.18.tgz", - "integrity": "sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.19.tgz", + "integrity": "sha512-YWCm1CYaJ+2RvNmhCwI7t3I3nU+hOrWGWMsn+Z/kmm1jy5iinnVtlmkiZwbLlbV1SRizX7vHsc0/bG5dj0zRTg==", "dependencies": { - "@babel/parser": "^7.28.0", - "@vue/compiler-core": "3.5.18", - "@vue/compiler-dom": "3.5.18", - "@vue/compiler-ssr": "3.5.18", - "@vue/shared": "3.5.18", + "@babel/parser": "^7.28.3", + "@vue/compiler-core": "3.5.19", + "@vue/compiler-dom": "3.5.19", + "@vue/compiler-ssr": "3.5.19", + "@vue/shared": "3.5.19", "estree-walker": "^2.0.2", "magic-string": "^0.30.17", "postcss": "^8.5.6", @@ -858,12 +858,12 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.18.tgz", - "integrity": "sha512-xM16Ak7rSWHkM3m22NlmcdIM+K4BMyFARAfV9hYFl+SFuRzrZ3uGMNW05kA5pmeMa0X9X963Kgou7ufdbpOP9g==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.19.tgz", + "integrity": "sha512-/wx0VZtkWOPdiQLWPeQeqpHWR/LuNC7bHfSX7OayBTtUy8wur6vT6EQIX6Et86aED6J+y8tTw43qo2uoqGg5sw==", "dependencies": { - "@vue/compiler-dom": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/compiler-dom": "3.5.19", + "@vue/shared": "3.5.19" } }, "node_modules/@vue/compiler-vue2": { @@ -906,49 +906,49 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.18.tgz", - "integrity": "sha512-x0vPO5Imw+3sChLM5Y+B6G1zPjwdOri9e8V21NnTnlEvkxatHEH5B5KEAJcjuzQ7BsjGrKtfzuQ5eQwXh8HXBg==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.19.tgz", + "integrity": "sha512-4bueZg2qs5MSsK2dQk3sssV0cfvxb/QZntTC8v7J448GLgmfPkQ+27aDjlt40+XFqOwUq5yRxK5uQh14Fc9eVA==", "dependencies": { - "@vue/shared": "3.5.18" + "@vue/shared": "3.5.19" } }, "node_modules/@vue/runtime-core": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.18.tgz", - "integrity": "sha512-DUpHa1HpeOQEt6+3nheUfqVXRog2kivkXHUhoqJiKR33SO4x+a5uNOMkV487WPerQkL0vUuRvq/7JhRgLW3S+w==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.19.tgz", + "integrity": "sha512-TaooCr8Hge1sWjLSyhdubnuofs3shhzZGfyD11gFolZrny76drPwBVQj28/z/4+msSFb18tOIg6VVVgf9/IbIA==", "dependencies": { - "@vue/reactivity": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/reactivity": "3.5.19", + "@vue/shared": "3.5.19" } }, "node_modules/@vue/runtime-dom": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.18.tgz", - "integrity": "sha512-YwDj71iV05j4RnzZnZtGaXwPoUWeRsqinblgVJwR8XTXYZ9D5PbahHQgsbmzUvCWNF6x7siQ89HgnX5eWkr3mw==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.19.tgz", + "integrity": "sha512-qmahqeok6ztuUTmV8lqd7N9ymbBzctNF885n8gL3xdCC1u2RnM/coX16Via0AiONQXUoYpxPojL3U1IsDgSWUQ==", "dependencies": { - "@vue/reactivity": "3.5.18", - "@vue/runtime-core": "3.5.18", - "@vue/shared": "3.5.18", + "@vue/reactivity": "3.5.19", + "@vue/runtime-core": "3.5.19", + "@vue/shared": "3.5.19", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.18.tgz", - "integrity": "sha512-PvIHLUoWgSbDG7zLHqSqaCoZvHi6NNmfVFOqO+OnwvqMz/tqQr3FuGWS8ufluNddk7ZLBJYMrjcw1c6XzR12mA==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.19.tgz", + "integrity": "sha512-ZJ/zV9SQuaIO+BEEVq/2a6fipyrSYfjKMU3267bPUk+oTx/hZq3RzV7VCh0Unlppt39Bvh6+NzxeopIFv4HJNg==", "dependencies": { - "@vue/compiler-ssr": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/compiler-ssr": "3.5.19", + "@vue/shared": "3.5.19" }, "peerDependencies": { - "vue": "3.5.18" + "vue": "3.5.19" } }, "node_modules/@vue/shared": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.18.tgz", - "integrity": "sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==" + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.19.tgz", + "integrity": "sha512-IhXCOn08wgKrLQxRFKKlSacWg4Goi1BolrdEeLYn6tgHjJNXVrWJ5nzoxZqNwl5p88aLlQ8LOaoMa3AYvaKJ/Q==" }, "node_modules/alien-signals": { "version": "2.0.5", @@ -1311,15 +1311,15 @@ "dev": true }, "node_modules/vue": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.18.tgz", - "integrity": "sha512-7W4Y4ZbMiQ3SEo+m9lnoNpV9xG7QVMLa+/0RFwwiAVkeYoyGXqWE85jabU4pllJNUzqfLShJ5YLptewhCWUgNA==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.19.tgz", + "integrity": "sha512-ZRh0HTmw6KChRYWgN8Ox/wi7VhpuGlvMPrHjIsdRbzKNgECFLzy+dKL5z9yGaBSjCpmcfJCbh3I1tNSRmBz2tg==", "dependencies": { - "@vue/compiler-dom": "3.5.18", - "@vue/compiler-sfc": "3.5.18", - "@vue/runtime-dom": "3.5.18", - "@vue/server-renderer": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/compiler-dom": "3.5.19", + "@vue/compiler-sfc": "3.5.19", + "@vue/runtime-dom": "3.5.19", + "@vue/server-renderer": "3.5.19", + "@vue/shared": "3.5.19" }, "peerDependencies": { "typescript": "*" @@ -1373,11 +1373,11 @@ "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==" }, "@babel/parser": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", - "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", + "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", "requires": { - "@babel/types": "^7.28.0" + "@babel/types": "^7.28.2" } }, "@babel/types": { @@ -1789,36 +1789,36 @@ } }, "@vue/compiler-core": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.18.tgz", - "integrity": "sha512-3slwjQrrV1TO8MoXgy3aynDQ7lslj5UqDxuHnrzHtpON5CBinhWjJETciPngpin/T3OuW3tXUf86tEurusnztw==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.19.tgz", + "integrity": "sha512-/afpyvlkrSNYbPo94Qu8GtIOWS+g5TRdOvs6XZNw6pWQQmj5pBgSZvEPOIZlqWq0YvoUhDDQaQ2TnzuJdOV4hA==", "requires": { - "@babel/parser": "^7.28.0", - "@vue/shared": "3.5.18", + "@babel/parser": "^7.28.3", + "@vue/shared": "3.5.19", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" } }, "@vue/compiler-dom": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.18.tgz", - "integrity": "sha512-RMbU6NTU70++B1JyVJbNbeFkK+A+Q7y9XKE2EM4NLGm2WFR8x9MbAtWxPPLdm0wUkuZv9trpwfSlL6tjdIa1+A==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.19.tgz", + "integrity": "sha512-Drs6rPHQZx/pN9S6ml3Z3K/TWCIRPvzG2B/o5kFK9X0MNHt8/E+38tiRfojufrYBfA6FQUFB2qBBRXlcSXWtOA==", "requires": { - "@vue/compiler-core": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/compiler-core": "3.5.19", + "@vue/shared": "3.5.19" } }, "@vue/compiler-sfc": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.18.tgz", - "integrity": "sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.19.tgz", + "integrity": "sha512-YWCm1CYaJ+2RvNmhCwI7t3I3nU+hOrWGWMsn+Z/kmm1jy5iinnVtlmkiZwbLlbV1SRizX7vHsc0/bG5dj0zRTg==", "requires": { - "@babel/parser": "^7.28.0", - "@vue/compiler-core": "3.5.18", - "@vue/compiler-dom": "3.5.18", - "@vue/compiler-ssr": "3.5.18", - "@vue/shared": "3.5.18", + "@babel/parser": "^7.28.3", + "@vue/compiler-core": "3.5.19", + "@vue/compiler-dom": "3.5.19", + "@vue/compiler-ssr": "3.5.19", + "@vue/shared": "3.5.19", "estree-walker": "^2.0.2", "magic-string": "^0.30.17", "postcss": "^8.5.6", @@ -1826,12 +1826,12 @@ } }, "@vue/compiler-ssr": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.18.tgz", - "integrity": "sha512-xM16Ak7rSWHkM3m22NlmcdIM+K4BMyFARAfV9hYFl+SFuRzrZ3uGMNW05kA5pmeMa0X9X963Kgou7ufdbpOP9g==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.19.tgz", + "integrity": "sha512-/wx0VZtkWOPdiQLWPeQeqpHWR/LuNC7bHfSX7OayBTtUy8wur6vT6EQIX6Et86aED6J+y8tTw43qo2uoqGg5sw==", "requires": { - "@vue/compiler-dom": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/compiler-dom": "3.5.19", + "@vue/shared": "3.5.19" } }, "@vue/compiler-vue2": { @@ -1866,46 +1866,46 @@ } }, "@vue/reactivity": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.18.tgz", - "integrity": "sha512-x0vPO5Imw+3sChLM5Y+B6G1zPjwdOri9e8V21NnTnlEvkxatHEH5B5KEAJcjuzQ7BsjGrKtfzuQ5eQwXh8HXBg==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.19.tgz", + "integrity": "sha512-4bueZg2qs5MSsK2dQk3sssV0cfvxb/QZntTC8v7J448GLgmfPkQ+27aDjlt40+XFqOwUq5yRxK5uQh14Fc9eVA==", "requires": { - "@vue/shared": "3.5.18" + "@vue/shared": "3.5.19" } }, "@vue/runtime-core": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.18.tgz", - "integrity": "sha512-DUpHa1HpeOQEt6+3nheUfqVXRog2kivkXHUhoqJiKR33SO4x+a5uNOMkV487WPerQkL0vUuRvq/7JhRgLW3S+w==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.19.tgz", + "integrity": "sha512-TaooCr8Hge1sWjLSyhdubnuofs3shhzZGfyD11gFolZrny76drPwBVQj28/z/4+msSFb18tOIg6VVVgf9/IbIA==", "requires": { - "@vue/reactivity": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/reactivity": "3.5.19", + "@vue/shared": "3.5.19" } }, "@vue/runtime-dom": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.18.tgz", - "integrity": "sha512-YwDj71iV05j4RnzZnZtGaXwPoUWeRsqinblgVJwR8XTXYZ9D5PbahHQgsbmzUvCWNF6x7siQ89HgnX5eWkr3mw==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.19.tgz", + "integrity": "sha512-qmahqeok6ztuUTmV8lqd7N9ymbBzctNF885n8gL3xdCC1u2RnM/coX16Via0AiONQXUoYpxPojL3U1IsDgSWUQ==", "requires": { - "@vue/reactivity": "3.5.18", - "@vue/runtime-core": "3.5.18", - "@vue/shared": "3.5.18", + "@vue/reactivity": "3.5.19", + "@vue/runtime-core": "3.5.19", + "@vue/shared": "3.5.19", "csstype": "^3.1.3" } }, "@vue/server-renderer": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.18.tgz", - "integrity": "sha512-PvIHLUoWgSbDG7zLHqSqaCoZvHi6NNmfVFOqO+OnwvqMz/tqQr3FuGWS8ufluNddk7ZLBJYMrjcw1c6XzR12mA==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.19.tgz", + "integrity": "sha512-ZJ/zV9SQuaIO+BEEVq/2a6fipyrSYfjKMU3267bPUk+oTx/hZq3RzV7VCh0Unlppt39Bvh6+NzxeopIFv4HJNg==", "requires": { - "@vue/compiler-ssr": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/compiler-ssr": "3.5.19", + "@vue/shared": "3.5.19" } }, "@vue/shared": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.18.tgz", - "integrity": "sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==" + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.19.tgz", + "integrity": "sha512-IhXCOn08wgKrLQxRFKKlSacWg4Goi1BolrdEeLYn6tgHjJNXVrWJ5nzoxZqNwl5p88aLlQ8LOaoMa3AYvaKJ/Q==" }, "alien-signals": { "version": "2.0.5", @@ -2119,15 +2119,15 @@ "dev": true }, "vue": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.18.tgz", - "integrity": "sha512-7W4Y4ZbMiQ3SEo+m9lnoNpV9xG7QVMLa+/0RFwwiAVkeYoyGXqWE85jabU4pllJNUzqfLShJ5YLptewhCWUgNA==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.19.tgz", + "integrity": "sha512-ZRh0HTmw6KChRYWgN8Ox/wi7VhpuGlvMPrHjIsdRbzKNgECFLzy+dKL5z9yGaBSjCpmcfJCbh3I1tNSRmBz2tg==", "requires": { - "@vue/compiler-dom": "3.5.18", - "@vue/compiler-sfc": "3.5.18", - "@vue/runtime-dom": "3.5.18", - "@vue/server-renderer": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/compiler-dom": "3.5.19", + "@vue/compiler-sfc": "3.5.19", + "@vue/runtime-dom": "3.5.19", + "@vue/server-renderer": "3.5.19", + "@vue/shared": "3.5.19" } }, "vue-router": { diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index c0cdca47393..156b4edce9d 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -37,11 +37,11 @@ } }, "node_modules/@babel/parser": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", - "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", + "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", "dependencies": { - "@babel/types": "^7.28.0" + "@babel/types": "^7.28.2" }, "bin": { "parser": "bin/babel-parser.js" @@ -949,36 +949,36 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.18.tgz", - "integrity": "sha512-3slwjQrrV1TO8MoXgy3aynDQ7lslj5UqDxuHnrzHtpON5CBinhWjJETciPngpin/T3OuW3tXUf86tEurusnztw==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.19.tgz", + "integrity": "sha512-/afpyvlkrSNYbPo94Qu8GtIOWS+g5TRdOvs6XZNw6pWQQmj5pBgSZvEPOIZlqWq0YvoUhDDQaQ2TnzuJdOV4hA==", "dependencies": { - "@babel/parser": "^7.28.0", - "@vue/shared": "3.5.18", + "@babel/parser": "^7.28.3", + "@vue/shared": "3.5.19", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" } }, "node_modules/@vue/compiler-dom": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.18.tgz", - "integrity": "sha512-RMbU6NTU70++B1JyVJbNbeFkK+A+Q7y9XKE2EM4NLGm2WFR8x9MbAtWxPPLdm0wUkuZv9trpwfSlL6tjdIa1+A==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.19.tgz", + "integrity": "sha512-Drs6rPHQZx/pN9S6ml3Z3K/TWCIRPvzG2B/o5kFK9X0MNHt8/E+38tiRfojufrYBfA6FQUFB2qBBRXlcSXWtOA==", "dependencies": { - "@vue/compiler-core": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/compiler-core": "3.5.19", + "@vue/shared": "3.5.19" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.18.tgz", - "integrity": "sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.19.tgz", + "integrity": "sha512-YWCm1CYaJ+2RvNmhCwI7t3I3nU+hOrWGWMsn+Z/kmm1jy5iinnVtlmkiZwbLlbV1SRizX7vHsc0/bG5dj0zRTg==", "dependencies": { - "@babel/parser": "^7.28.0", - "@vue/compiler-core": "3.5.18", - "@vue/compiler-dom": "3.5.18", - "@vue/compiler-ssr": "3.5.18", - "@vue/shared": "3.5.18", + "@babel/parser": "^7.28.3", + "@vue/compiler-core": "3.5.19", + "@vue/compiler-dom": "3.5.19", + "@vue/compiler-ssr": "3.5.19", + "@vue/shared": "3.5.19", "estree-walker": "^2.0.2", "magic-string": "^0.30.17", "postcss": "^8.5.6", @@ -986,12 +986,12 @@ } }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.18.tgz", - "integrity": "sha512-xM16Ak7rSWHkM3m22NlmcdIM+K4BMyFARAfV9hYFl+SFuRzrZ3uGMNW05kA5pmeMa0X9X963Kgou7ufdbpOP9g==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.19.tgz", + "integrity": "sha512-/wx0VZtkWOPdiQLWPeQeqpHWR/LuNC7bHfSX7OayBTtUy8wur6vT6EQIX6Et86aED6J+y8tTw43qo2uoqGg5sw==", "dependencies": { - "@vue/compiler-dom": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/compiler-dom": "3.5.19", + "@vue/shared": "3.5.19" } }, "node_modules/@vue/compiler-vue2": { @@ -1034,49 +1034,49 @@ } }, "node_modules/@vue/reactivity": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.18.tgz", - "integrity": "sha512-x0vPO5Imw+3sChLM5Y+B6G1zPjwdOri9e8V21NnTnlEvkxatHEH5B5KEAJcjuzQ7BsjGrKtfzuQ5eQwXh8HXBg==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.19.tgz", + "integrity": "sha512-4bueZg2qs5MSsK2dQk3sssV0cfvxb/QZntTC8v7J448GLgmfPkQ+27aDjlt40+XFqOwUq5yRxK5uQh14Fc9eVA==", "dependencies": { - "@vue/shared": "3.5.18" + "@vue/shared": "3.5.19" } }, "node_modules/@vue/runtime-core": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.18.tgz", - "integrity": "sha512-DUpHa1HpeOQEt6+3nheUfqVXRog2kivkXHUhoqJiKR33SO4x+a5uNOMkV487WPerQkL0vUuRvq/7JhRgLW3S+w==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.19.tgz", + "integrity": "sha512-TaooCr8Hge1sWjLSyhdubnuofs3shhzZGfyD11gFolZrny76drPwBVQj28/z/4+msSFb18tOIg6VVVgf9/IbIA==", "dependencies": { - "@vue/reactivity": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/reactivity": "3.5.19", + "@vue/shared": "3.5.19" } }, "node_modules/@vue/runtime-dom": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.18.tgz", - "integrity": "sha512-YwDj71iV05j4RnzZnZtGaXwPoUWeRsqinblgVJwR8XTXYZ9D5PbahHQgsbmzUvCWNF6x7siQ89HgnX5eWkr3mw==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.19.tgz", + "integrity": "sha512-qmahqeok6ztuUTmV8lqd7N9ymbBzctNF885n8gL3xdCC1u2RnM/coX16Via0AiONQXUoYpxPojL3U1IsDgSWUQ==", "dependencies": { - "@vue/reactivity": "3.5.18", - "@vue/runtime-core": "3.5.18", - "@vue/shared": "3.5.18", + "@vue/reactivity": "3.5.19", + "@vue/runtime-core": "3.5.19", + "@vue/shared": "3.5.19", "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.18.tgz", - "integrity": "sha512-PvIHLUoWgSbDG7zLHqSqaCoZvHi6NNmfVFOqO+OnwvqMz/tqQr3FuGWS8ufluNddk7ZLBJYMrjcw1c6XzR12mA==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.19.tgz", + "integrity": "sha512-ZJ/zV9SQuaIO+BEEVq/2a6fipyrSYfjKMU3267bPUk+oTx/hZq3RzV7VCh0Unlppt39Bvh6+NzxeopIFv4HJNg==", "dependencies": { - "@vue/compiler-ssr": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/compiler-ssr": "3.5.19", + "@vue/shared": "3.5.19" }, "peerDependencies": { - "vue": "3.5.18" + "vue": "3.5.19" } }, "node_modules/@vue/shared": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.18.tgz", - "integrity": "sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==" + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.19.tgz", + "integrity": "sha512-IhXCOn08wgKrLQxRFKKlSacWg4Goi1BolrdEeLYn6tgHjJNXVrWJ5nzoxZqNwl5p88aLlQ8LOaoMa3AYvaKJ/Q==" }, "node_modules/alien-signals": { "version": "2.0.5", @@ -1439,15 +1439,15 @@ "dev": true }, "node_modules/vue": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.18.tgz", - "integrity": "sha512-7W4Y4ZbMiQ3SEo+m9lnoNpV9xG7QVMLa+/0RFwwiAVkeYoyGXqWE85jabU4pllJNUzqfLShJ5YLptewhCWUgNA==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.19.tgz", + "integrity": "sha512-ZRh0HTmw6KChRYWgN8Ox/wi7VhpuGlvMPrHjIsdRbzKNgECFLzy+dKL5z9yGaBSjCpmcfJCbh3I1tNSRmBz2tg==", "dependencies": { - "@vue/compiler-dom": "3.5.18", - "@vue/compiler-sfc": "3.5.18", - "@vue/runtime-dom": "3.5.18", - "@vue/server-renderer": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/compiler-dom": "3.5.19", + "@vue/compiler-sfc": "3.5.19", + "@vue/runtime-dom": "3.5.19", + "@vue/server-renderer": "3.5.19", + "@vue/shared": "3.5.19" }, "peerDependencies": { "typescript": "*" @@ -1501,11 +1501,11 @@ "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==" }, "@babel/parser": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.0.tgz", - "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", + "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", "requires": { - "@babel/types": "^7.28.0" + "@babel/types": "^7.28.2" } }, "@babel/types": { @@ -1984,36 +1984,36 @@ } }, "@vue/compiler-core": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.18.tgz", - "integrity": "sha512-3slwjQrrV1TO8MoXgy3aynDQ7lslj5UqDxuHnrzHtpON5CBinhWjJETciPngpin/T3OuW3tXUf86tEurusnztw==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.19.tgz", + "integrity": "sha512-/afpyvlkrSNYbPo94Qu8GtIOWS+g5TRdOvs6XZNw6pWQQmj5pBgSZvEPOIZlqWq0YvoUhDDQaQ2TnzuJdOV4hA==", "requires": { - "@babel/parser": "^7.28.0", - "@vue/shared": "3.5.18", + "@babel/parser": "^7.28.3", + "@vue/shared": "3.5.19", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" } }, "@vue/compiler-dom": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.18.tgz", - "integrity": "sha512-RMbU6NTU70++B1JyVJbNbeFkK+A+Q7y9XKE2EM4NLGm2WFR8x9MbAtWxPPLdm0wUkuZv9trpwfSlL6tjdIa1+A==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.19.tgz", + "integrity": "sha512-Drs6rPHQZx/pN9S6ml3Z3K/TWCIRPvzG2B/o5kFK9X0MNHt8/E+38tiRfojufrYBfA6FQUFB2qBBRXlcSXWtOA==", "requires": { - "@vue/compiler-core": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/compiler-core": "3.5.19", + "@vue/shared": "3.5.19" } }, "@vue/compiler-sfc": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.18.tgz", - "integrity": "sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.19.tgz", + "integrity": "sha512-YWCm1CYaJ+2RvNmhCwI7t3I3nU+hOrWGWMsn+Z/kmm1jy5iinnVtlmkiZwbLlbV1SRizX7vHsc0/bG5dj0zRTg==", "requires": { - "@babel/parser": "^7.28.0", - "@vue/compiler-core": "3.5.18", - "@vue/compiler-dom": "3.5.18", - "@vue/compiler-ssr": "3.5.18", - "@vue/shared": "3.5.18", + "@babel/parser": "^7.28.3", + "@vue/compiler-core": "3.5.19", + "@vue/compiler-dom": "3.5.19", + "@vue/compiler-ssr": "3.5.19", + "@vue/shared": "3.5.19", "estree-walker": "^2.0.2", "magic-string": "^0.30.17", "postcss": "^8.5.6", @@ -2021,12 +2021,12 @@ } }, "@vue/compiler-ssr": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.18.tgz", - "integrity": "sha512-xM16Ak7rSWHkM3m22NlmcdIM+K4BMyFARAfV9hYFl+SFuRzrZ3uGMNW05kA5pmeMa0X9X963Kgou7ufdbpOP9g==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.19.tgz", + "integrity": "sha512-/wx0VZtkWOPdiQLWPeQeqpHWR/LuNC7bHfSX7OayBTtUy8wur6vT6EQIX6Et86aED6J+y8tTw43qo2uoqGg5sw==", "requires": { - "@vue/compiler-dom": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/compiler-dom": "3.5.19", + "@vue/shared": "3.5.19" } }, "@vue/compiler-vue2": { @@ -2061,46 +2061,46 @@ } }, "@vue/reactivity": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.18.tgz", - "integrity": "sha512-x0vPO5Imw+3sChLM5Y+B6G1zPjwdOri9e8V21NnTnlEvkxatHEH5B5KEAJcjuzQ7BsjGrKtfzuQ5eQwXh8HXBg==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.19.tgz", + "integrity": "sha512-4bueZg2qs5MSsK2dQk3sssV0cfvxb/QZntTC8v7J448GLgmfPkQ+27aDjlt40+XFqOwUq5yRxK5uQh14Fc9eVA==", "requires": { - "@vue/shared": "3.5.18" + "@vue/shared": "3.5.19" } }, "@vue/runtime-core": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.18.tgz", - "integrity": "sha512-DUpHa1HpeOQEt6+3nheUfqVXRog2kivkXHUhoqJiKR33SO4x+a5uNOMkV487WPerQkL0vUuRvq/7JhRgLW3S+w==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.19.tgz", + "integrity": "sha512-TaooCr8Hge1sWjLSyhdubnuofs3shhzZGfyD11gFolZrny76drPwBVQj28/z/4+msSFb18tOIg6VVVgf9/IbIA==", "requires": { - "@vue/reactivity": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/reactivity": "3.5.19", + "@vue/shared": "3.5.19" } }, "@vue/runtime-dom": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.18.tgz", - "integrity": "sha512-YwDj71iV05j4RnzZnZtGaXwPoUWeRsqinblgVJwR8XTXYZ9D5PbahHQgsbmzUvCWNF6x7siQ89HgnX5eWkr3mw==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.19.tgz", + "integrity": "sha512-qmahqeok6ztuUTmV8lqd7N9ymbBzctNF885n8gL3xdCC1u2RnM/coX16Via0AiONQXUoYpxPojL3U1IsDgSWUQ==", "requires": { - "@vue/reactivity": "3.5.18", - "@vue/runtime-core": "3.5.18", - "@vue/shared": "3.5.18", + "@vue/reactivity": "3.5.19", + "@vue/runtime-core": "3.5.19", + "@vue/shared": "3.5.19", "csstype": "^3.1.3" } }, "@vue/server-renderer": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.18.tgz", - "integrity": "sha512-PvIHLUoWgSbDG7zLHqSqaCoZvHi6NNmfVFOqO+OnwvqMz/tqQr3FuGWS8ufluNddk7ZLBJYMrjcw1c6XzR12mA==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.19.tgz", + "integrity": "sha512-ZJ/zV9SQuaIO+BEEVq/2a6fipyrSYfjKMU3267bPUk+oTx/hZq3RzV7VCh0Unlppt39Bvh6+NzxeopIFv4HJNg==", "requires": { - "@vue/compiler-ssr": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/compiler-ssr": "3.5.19", + "@vue/shared": "3.5.19" } }, "@vue/shared": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.18.tgz", - "integrity": "sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==" + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.19.tgz", + "integrity": "sha512-IhXCOn08wgKrLQxRFKKlSacWg4Goi1BolrdEeLYn6tgHjJNXVrWJ5nzoxZqNwl5p88aLlQ8LOaoMa3AYvaKJ/Q==" }, "alien-signals": { "version": "2.0.5", @@ -2314,15 +2314,15 @@ "dev": true }, "vue": { - "version": "3.5.18", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.18.tgz", - "integrity": "sha512-7W4Y4ZbMiQ3SEo+m9lnoNpV9xG7QVMLa+/0RFwwiAVkeYoyGXqWE85jabU4pllJNUzqfLShJ5YLptewhCWUgNA==", + "version": "3.5.19", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.19.tgz", + "integrity": "sha512-ZRh0HTmw6KChRYWgN8Ox/wi7VhpuGlvMPrHjIsdRbzKNgECFLzy+dKL5z9yGaBSjCpmcfJCbh3I1tNSRmBz2tg==", "requires": { - "@vue/compiler-dom": "3.5.18", - "@vue/compiler-sfc": "3.5.18", - "@vue/runtime-dom": "3.5.18", - "@vue/server-renderer": "3.5.18", - "@vue/shared": "3.5.18" + "@vue/compiler-dom": "3.5.19", + "@vue/compiler-sfc": "3.5.19", + "@vue/runtime-dom": "3.5.19", + "@vue/server-renderer": "3.5.19", + "@vue/shared": "3.5.19" } }, "vue-router": { From 1f2c43ab3861e5f169c87bbfb559c4696ff2a6bc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 25 Aug 2025 09:56:38 -0400 Subject: [PATCH 076/129] chore(deps): update dependency vue-tsc to v3.0.6 (#4260) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../code/stackblitz/v7/vue/package-lock.json | 80 +++++++++---------- .../code/stackblitz/v8/vue/package-lock.json | 80 +++++++++---------- 2 files changed, 80 insertions(+), 80 deletions(-) diff --git a/static/code/stackblitz/v7/vue/package-lock.json b/static/code/stackblitz/v7/vue/package-lock.json index 9ba1bb84993..1da23a0183a 100644 --- a/static/code/stackblitz/v7/vue/package-lock.json +++ b/static/code/stackblitz/v7/vue/package-lock.json @@ -795,27 +795,27 @@ } }, "node_modules/@volar/language-core": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.22.tgz", - "integrity": "sha512-gp4M7Di5KgNyIyO903wTClYBavRt6UyFNpc5LWfyZr1lBsTUY+QrVZfmbNF2aCyfklBOVk9YC4p+zkwoyT7ECg==", + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.23.tgz", + "integrity": "sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==", "dev": true, "dependencies": { - "@volar/source-map": "2.4.22" + "@volar/source-map": "2.4.23" } }, "node_modules/@volar/source-map": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.22.tgz", - "integrity": "sha512-L2nVr/1vei0xKRgO2tYVXtJYd09HTRjaZi418e85Q+QdbbqA8h7bBjfNyPPSsjnrOO4l4kaAo78c8SQUAdHvgA==", + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.23.tgz", + "integrity": "sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==", "dev": true }, "node_modules/@volar/typescript": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.22.tgz", - "integrity": "sha512-6ZczlJW1/GWTrNnkmZxJp4qyBt/SGVlcTuCWpI5zLrdPdCZsj66Aff9ZsfFaT3TyjG8zVYgBMYPuCm/eRkpcpQ==", + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.23.tgz", + "integrity": "sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==", "dev": true, "dependencies": { - "@volar/language-core": "2.4.22", + "@volar/language-core": "2.4.23", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -882,12 +882,12 @@ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "node_modules/@vue/language-core": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.5.tgz", - "integrity": "sha512-gCEjn9Ik7I/seHVNIEipOm8W+f3/kg60e8s1IgIkMYma2wu9ZGUTMv3mSL2bX+Md2L8fslceJ4SU8j1fgSRoiw==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.6.tgz", + "integrity": "sha512-e2RRzYWm+qGm8apUHW1wA5RQxzNhkqbbKdbKhiDUcmMrNAZGyM8aTiL3UrTqkaFI5s7wJRGGrp4u3jgusuBp2A==", "dev": true, "dependencies": { - "@volar/language-core": "2.4.22", + "@volar/language-core": "2.4.23", "@vue/compiler-dom": "^3.5.0", "@vue/compiler-vue2": "^2.7.16", "@vue/shared": "^3.5.0", @@ -1345,13 +1345,13 @@ } }, "node_modules/vue-tsc": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.5.tgz", - "integrity": "sha512-PsTFN9lo1HJCrZw9NoqjYcAbYDXY0cOKyuW2E7naX5jcaVyWpqEsZOHN9Dws5890E8e5SDAD4L4Zam3dxG3/Cw==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.6.tgz", + "integrity": "sha512-Tbs8Whd43R2e2nxez4WXPvvdjGbW24rOSgRhLOHXzWiT4pcP4G7KeWh0YCn18rF4bVwv7tggLLZ6MJnO6jXPBg==", "dev": true, "dependencies": { - "@volar/typescript": "2.4.22", - "@vue/language-core": "3.0.5" + "@volar/typescript": "2.4.23", + "@vue/language-core": "3.0.6" }, "bin": { "vue-tsc": "bin/vue-tsc.js" @@ -1763,27 +1763,27 @@ } }, "@volar/language-core": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.22.tgz", - "integrity": "sha512-gp4M7Di5KgNyIyO903wTClYBavRt6UyFNpc5LWfyZr1lBsTUY+QrVZfmbNF2aCyfklBOVk9YC4p+zkwoyT7ECg==", + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.23.tgz", + "integrity": "sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==", "dev": true, "requires": { - "@volar/source-map": "2.4.22" + "@volar/source-map": "2.4.23" } }, "@volar/source-map": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.22.tgz", - "integrity": "sha512-L2nVr/1vei0xKRgO2tYVXtJYd09HTRjaZi418e85Q+QdbbqA8h7bBjfNyPPSsjnrOO4l4kaAo78c8SQUAdHvgA==", + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.23.tgz", + "integrity": "sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==", "dev": true }, "@volar/typescript": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.22.tgz", - "integrity": "sha512-6ZczlJW1/GWTrNnkmZxJp4qyBt/SGVlcTuCWpI5zLrdPdCZsj66Aff9ZsfFaT3TyjG8zVYgBMYPuCm/eRkpcpQ==", + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.23.tgz", + "integrity": "sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==", "dev": true, "requires": { - "@volar/language-core": "2.4.22", + "@volar/language-core": "2.4.23", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -1850,12 +1850,12 @@ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "@vue/language-core": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.5.tgz", - "integrity": "sha512-gCEjn9Ik7I/seHVNIEipOm8W+f3/kg60e8s1IgIkMYma2wu9ZGUTMv3mSL2bX+Md2L8fslceJ4SU8j1fgSRoiw==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.6.tgz", + "integrity": "sha512-e2RRzYWm+qGm8apUHW1wA5RQxzNhkqbbKdbKhiDUcmMrNAZGyM8aTiL3UrTqkaFI5s7wJRGGrp4u3jgusuBp2A==", "dev": true, "requires": { - "@volar/language-core": "2.4.22", + "@volar/language-core": "2.4.23", "@vue/compiler-dom": "^3.5.0", "@vue/compiler-vue2": "^2.7.16", "@vue/shared": "^3.5.0", @@ -2139,13 +2139,13 @@ } }, "vue-tsc": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.5.tgz", - "integrity": "sha512-PsTFN9lo1HJCrZw9NoqjYcAbYDXY0cOKyuW2E7naX5jcaVyWpqEsZOHN9Dws5890E8e5SDAD4L4Zam3dxG3/Cw==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.6.tgz", + "integrity": "sha512-Tbs8Whd43R2e2nxez4WXPvvdjGbW24rOSgRhLOHXzWiT4pcP4G7KeWh0YCn18rF4bVwv7tggLLZ6MJnO6jXPBg==", "dev": true, "requires": { - "@volar/typescript": "2.4.22", - "@vue/language-core": "3.0.5" + "@volar/typescript": "2.4.23", + "@vue/language-core": "3.0.6" } } } diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index 156b4edce9d..85c24115907 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -923,27 +923,27 @@ } }, "node_modules/@volar/language-core": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.22.tgz", - "integrity": "sha512-gp4M7Di5KgNyIyO903wTClYBavRt6UyFNpc5LWfyZr1lBsTUY+QrVZfmbNF2aCyfklBOVk9YC4p+zkwoyT7ECg==", + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.23.tgz", + "integrity": "sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==", "dev": true, "dependencies": { - "@volar/source-map": "2.4.22" + "@volar/source-map": "2.4.23" } }, "node_modules/@volar/source-map": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.22.tgz", - "integrity": "sha512-L2nVr/1vei0xKRgO2tYVXtJYd09HTRjaZi418e85Q+QdbbqA8h7bBjfNyPPSsjnrOO4l4kaAo78c8SQUAdHvgA==", + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.23.tgz", + "integrity": "sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==", "dev": true }, "node_modules/@volar/typescript": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.22.tgz", - "integrity": "sha512-6ZczlJW1/GWTrNnkmZxJp4qyBt/SGVlcTuCWpI5zLrdPdCZsj66Aff9ZsfFaT3TyjG8zVYgBMYPuCm/eRkpcpQ==", + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.23.tgz", + "integrity": "sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==", "dev": true, "dependencies": { - "@volar/language-core": "2.4.22", + "@volar/language-core": "2.4.23", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -1010,12 +1010,12 @@ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "node_modules/@vue/language-core": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.5.tgz", - "integrity": "sha512-gCEjn9Ik7I/seHVNIEipOm8W+f3/kg60e8s1IgIkMYma2wu9ZGUTMv3mSL2bX+Md2L8fslceJ4SU8j1fgSRoiw==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.6.tgz", + "integrity": "sha512-e2RRzYWm+qGm8apUHW1wA5RQxzNhkqbbKdbKhiDUcmMrNAZGyM8aTiL3UrTqkaFI5s7wJRGGrp4u3jgusuBp2A==", "dev": true, "dependencies": { - "@volar/language-core": "2.4.22", + "@volar/language-core": "2.4.23", "@vue/compiler-dom": "^3.5.0", "@vue/compiler-vue2": "^2.7.16", "@vue/shared": "^3.5.0", @@ -1473,13 +1473,13 @@ } }, "node_modules/vue-tsc": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.5.tgz", - "integrity": "sha512-PsTFN9lo1HJCrZw9NoqjYcAbYDXY0cOKyuW2E7naX5jcaVyWpqEsZOHN9Dws5890E8e5SDAD4L4Zam3dxG3/Cw==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.6.tgz", + "integrity": "sha512-Tbs8Whd43R2e2nxez4WXPvvdjGbW24rOSgRhLOHXzWiT4pcP4G7KeWh0YCn18rF4bVwv7tggLLZ6MJnO6jXPBg==", "dev": true, "dependencies": { - "@volar/typescript": "2.4.22", - "@vue/language-core": "3.0.5" + "@volar/typescript": "2.4.23", + "@vue/language-core": "3.0.6" }, "bin": { "vue-tsc": "bin/vue-tsc.js" @@ -1958,27 +1958,27 @@ } }, "@volar/language-core": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.22.tgz", - "integrity": "sha512-gp4M7Di5KgNyIyO903wTClYBavRt6UyFNpc5LWfyZr1lBsTUY+QrVZfmbNF2aCyfklBOVk9YC4p+zkwoyT7ECg==", + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.23.tgz", + "integrity": "sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==", "dev": true, "requires": { - "@volar/source-map": "2.4.22" + "@volar/source-map": "2.4.23" } }, "@volar/source-map": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.22.tgz", - "integrity": "sha512-L2nVr/1vei0xKRgO2tYVXtJYd09HTRjaZi418e85Q+QdbbqA8h7bBjfNyPPSsjnrOO4l4kaAo78c8SQUAdHvgA==", + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.23.tgz", + "integrity": "sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==", "dev": true }, "@volar/typescript": { - "version": "2.4.22", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.22.tgz", - "integrity": "sha512-6ZczlJW1/GWTrNnkmZxJp4qyBt/SGVlcTuCWpI5zLrdPdCZsj66Aff9ZsfFaT3TyjG8zVYgBMYPuCm/eRkpcpQ==", + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.23.tgz", + "integrity": "sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==", "dev": true, "requires": { - "@volar/language-core": "2.4.22", + "@volar/language-core": "2.4.23", "path-browserify": "^1.0.1", "vscode-uri": "^3.0.8" } @@ -2045,12 +2045,12 @@ "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" }, "@vue/language-core": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.5.tgz", - "integrity": "sha512-gCEjn9Ik7I/seHVNIEipOm8W+f3/kg60e8s1IgIkMYma2wu9ZGUTMv3mSL2bX+Md2L8fslceJ4SU8j1fgSRoiw==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.6.tgz", + "integrity": "sha512-e2RRzYWm+qGm8apUHW1wA5RQxzNhkqbbKdbKhiDUcmMrNAZGyM8aTiL3UrTqkaFI5s7wJRGGrp4u3jgusuBp2A==", "dev": true, "requires": { - "@volar/language-core": "2.4.22", + "@volar/language-core": "2.4.23", "@vue/compiler-dom": "^3.5.0", "@vue/compiler-vue2": "^2.7.16", "@vue/shared": "^3.5.0", @@ -2334,13 +2334,13 @@ } }, "vue-tsc": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.5.tgz", - "integrity": "sha512-PsTFN9lo1HJCrZw9NoqjYcAbYDXY0cOKyuW2E7naX5jcaVyWpqEsZOHN9Dws5890E8e5SDAD4L4Zam3dxG3/Cw==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.6.tgz", + "integrity": "sha512-Tbs8Whd43R2e2nxez4WXPvvdjGbW24rOSgRhLOHXzWiT4pcP4G7KeWh0YCn18rF4bVwv7tggLLZ6MJnO6jXPBg==", "dev": true, "requires": { - "@volar/typescript": "2.4.22", - "@vue/language-core": "3.0.5" + "@volar/typescript": "2.4.23", + "@vue/language-core": "3.0.6" } } } From 70a9b32795fd68c9faf1a5883614c3e567771cc4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 25 Aug 2025 09:58:07 -0400 Subject: [PATCH 077/129] chore(deps): update dependency vite to v7.1.3 (#4257) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../stackblitz/v7/react/package-lock.json | 31 ++++++++++--------- .../stackblitz/v8/react/package-lock.json | 31 ++++++++++--------- 2 files changed, 34 insertions(+), 28 deletions(-) diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json index afdf8855bd9..4c1bf81ec7e 100644 --- a/static/code/stackblitz/v7/react/package-lock.json +++ b/static/code/stackblitz/v7/react/package-lock.json @@ -1241,9 +1241,12 @@ } }, "node_modules/fdir": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "engines": { + "node": ">=12.0.0" + }, "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -1679,12 +1682,12 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "node_modules/vite": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", - "integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", + "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==", "dependencies": { "esbuild": "^0.25.0", - "fdir": "^6.4.6", + "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", @@ -2471,9 +2474,9 @@ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==" }, "fdir": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "requires": {} }, "fsevents": { @@ -2782,12 +2785,12 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "vite": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", - "integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", + "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==", "requires": { "esbuild": "^0.25.0", - "fdir": "^6.4.6", + "fdir": "^6.5.0", "fsevents": "~2.3.3", "picomatch": "^4.0.3", "postcss": "^8.5.6", diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index d2e13dd742a..3f9a4ced656 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -1347,9 +1347,12 @@ } }, "node_modules/fdir": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "engines": { + "node": ">=12.0.0" + }, "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -1785,12 +1788,12 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "node_modules/vite": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", - "integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", + "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==", "dependencies": { "esbuild": "^0.25.0", - "fdir": "^6.4.6", + "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", @@ -2637,9 +2640,9 @@ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==" }, "fdir": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "requires": {} }, "fsevents": { @@ -2948,12 +2951,12 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "vite": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", - "integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", + "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==", "requires": { "esbuild": "^0.25.0", - "fdir": "^6.4.6", + "fdir": "^6.5.0", "fsevents": "~2.3.3", "picomatch": "^4.0.3", "postcss": "^8.5.6", From aeab6d608273ff7775bf64e36863576bcdacaf57 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 25 Aug 2025 09:59:17 -0400 Subject: [PATCH 078/129] chore(deps): update dependency vite to v7.1.3 (#4258) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../code/stackblitz/v7/vue/package-lock.json | 31 ++++++++++--------- .../code/stackblitz/v8/vue/package-lock.json | 31 ++++++++++--------- 2 files changed, 34 insertions(+), 28 deletions(-) diff --git a/static/code/stackblitz/v7/vue/package-lock.json b/static/code/stackblitz/v7/vue/package-lock.json index 1da23a0183a..189e358d4b8 100644 --- a/static/code/stackblitz/v7/vue/package-lock.json +++ b/static/code/stackblitz/v7/vue/package-lock.json @@ -1024,10 +1024,13 @@ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" }, "node_modules/fdir": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, + "engines": { + "node": ">=12.0.0" + }, "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -1231,13 +1234,13 @@ } }, "node_modules/vite": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", - "integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", + "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==", "dev": true, "dependencies": { "esbuild": "^0.25.0", - "fdir": "^6.4.6", + "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", @@ -1968,9 +1971,9 @@ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" }, "fdir": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "requires": {} }, @@ -2098,13 +2101,13 @@ "devOptional": true }, "vite": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", - "integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", + "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==", "dev": true, "requires": { "esbuild": "^0.25.0", - "fdir": "^6.4.6", + "fdir": "^6.5.0", "fsevents": "~2.3.3", "picomatch": "^4.0.3", "postcss": "^8.5.6", diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json index 85c24115907..a060083341b 100644 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ b/static/code/stackblitz/v8/vue/package-lock.json @@ -1152,10 +1152,13 @@ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" }, "node_modules/fdir": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, + "engines": { + "node": ">=12.0.0" + }, "peerDependencies": { "picomatch": "^3 || ^4" }, @@ -1359,13 +1362,13 @@ } }, "node_modules/vite": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", - "integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", + "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==", "dev": true, "dependencies": { "esbuild": "^0.25.0", - "fdir": "^6.4.6", + "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", @@ -2163,9 +2166,9 @@ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" }, "fdir": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "requires": {} }, @@ -2293,13 +2296,13 @@ "devOptional": true }, "vite": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", - "integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", + "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==", "dev": true, "requires": { "esbuild": "^0.25.0", - "fdir": "^6.4.6", + "fdir": "^6.5.0", "fsevents": "~2.3.3", "picomatch": "^4.0.3", "postcss": "^8.5.6", From 8a736938631dfd8de96301b0a48c2fd6ca7ad294 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 26 Aug 2025 09:40:50 -0400 Subject: [PATCH 079/129] chore(deps): update dependency @types/react to v19.1.11 (#4262) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v7/react/package-lock.json | 12 ++++++------ static/code/stackblitz/v8/react/package-lock.json | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json index 4c1bf81ec7e..fef5360c8d2 100644 --- a/static/code/stackblitz/v7/react/package-lock.json +++ b/static/code/stackblitz/v7/react/package-lock.json @@ -1051,9 +1051,9 @@ } }, "node_modules/@types/react": { - "version": "19.1.10", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.10.tgz", - "integrity": "sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==", + "version": "19.1.11", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.11.tgz", + "integrity": "sha512-lr3jdBw/BGj49Eps7EvqlUaoeA0xpj3pc0RoJkHpYaCHkVK7i28dKyImLQb3JVlqs3aYSXf7qYuWOW/fgZnTXQ==", "dependencies": { "csstype": "^3.0.2" } @@ -2347,9 +2347,9 @@ } }, "@types/react": { - "version": "19.1.10", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.10.tgz", - "integrity": "sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==", + "version": "19.1.11", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.11.tgz", + "integrity": "sha512-lr3jdBw/BGj49Eps7EvqlUaoeA0xpj3pc0RoJkHpYaCHkVK7i28dKyImLQb3JVlqs3aYSXf7qYuWOW/fgZnTXQ==", "requires": { "csstype": "^3.0.2" } diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json index 3f9a4ced656..5bf234cec2a 100644 --- a/static/code/stackblitz/v8/react/package-lock.json +++ b/static/code/stackblitz/v8/react/package-lock.json @@ -1157,9 +1157,9 @@ } }, "node_modules/@types/react": { - "version": "19.1.10", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.10.tgz", - "integrity": "sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==", + "version": "19.1.11", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.11.tgz", + "integrity": "sha512-lr3jdBw/BGj49Eps7EvqlUaoeA0xpj3pc0RoJkHpYaCHkVK7i28dKyImLQb3JVlqs3aYSXf7qYuWOW/fgZnTXQ==", "dependencies": { "csstype": "^3.0.2" } @@ -2513,9 +2513,9 @@ } }, "@types/react": { - "version": "19.1.10", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.10.tgz", - "integrity": "sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==", + "version": "19.1.11", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.11.tgz", + "integrity": "sha512-lr3jdBw/BGj49Eps7EvqlUaoeA0xpj3pc0RoJkHpYaCHkVK7i28dKyImLQb3JVlqs3aYSXf7qYuWOW/fgZnTXQ==", "requires": { "csstype": "^3.0.2" } From 29132d141dd1fe5dee5993534aefa8aa47a50d8f Mon Sep 17 00:00:00 2001 From: Brandy Smith Date: Fri, 5 Sep 2025 12:46:10 -0400 Subject: [PATCH 080/129] docs(playgrounds): upgrade to typescript 5.9.0 (#4263) Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com> --- .../global/Playground/stackblitz.utils.ts | 28 +- .../code/stackblitz/v6/angular/tsconfig.json | 1 + .../stackblitz/v6/react/package-lock.json | 3028 ----------------- .../code/stackblitz/v6/vue/package-lock.json | 1892 ---------- .../code/stackblitz/v7/angular/package.json | 2 +- .../code/stackblitz/v7/angular/tsconfig.json | 1 + static/code/stackblitz/v7/html/package.json | 2 +- .../stackblitz/v7/react/package-lock.json | 2812 --------------- static/code/stackblitz/v7/react/package.json | 2 +- .../code/stackblitz/v7/vue/package-lock.json | 2155 ------------ static/code/stackblitz/v7/vue/package.json | 2 +- .../code/stackblitz/v8/angular/package.json | 2 +- .../code/stackblitz/v8/angular/tsconfig.json | 1 + static/code/stackblitz/v8/html/package.json | 2 +- .../stackblitz/v8/react/package-lock.json | 2978 ---------------- static/code/stackblitz/v8/react/package.json | 2 +- .../code/stackblitz/v8/vue/package-lock.json | 2350 ------------- static/code/stackblitz/v8/vue/package.json | 2 +- 18 files changed, 23 insertions(+), 15239 deletions(-) delete mode 100644 static/code/stackblitz/v6/react/package-lock.json delete mode 100644 static/code/stackblitz/v6/vue/package-lock.json delete mode 100644 static/code/stackblitz/v7/react/package-lock.json delete mode 100644 static/code/stackblitz/v7/vue/package-lock.json delete mode 100644 static/code/stackblitz/v8/react/package-lock.json delete mode 100644 static/code/stackblitz/v8/vue/package-lock.json diff --git a/src/components/global/Playground/stackblitz.utils.ts b/src/components/global/Playground/stackblitz.utils.ts index 2adb362df0d..bab0dbba60b 100644 --- a/src/components/global/Playground/stackblitz.utils.ts +++ b/src/components/global/Playground/stackblitz.utils.ts @@ -173,7 +173,6 @@ const openReactEditor = async (code: string, options?: EditorOptions) => { 'react/variables.css', 'react/tsconfig.json', 'react/package.json', - 'react/package-lock.json', 'react/index.html', 'react/vite.config.js', 'react/browserslistrc', @@ -193,17 +192,16 @@ const openReactEditor = async (code: string, options?: EditorOptions) => { const appTsx = 'src/App.tsx'; const files = { - '.eslintrc.js': defaultFiles[9], - '.browserslistrc': defaultFiles[8], - 'vite.config.js': defaultFiles[7], - 'index.html': defaultFiles[6], + '.eslintrc.js': defaultFiles[8], + '.browserslistrc': defaultFiles[7], + 'vite.config.js': defaultFiles[6], + 'index.html': defaultFiles[5], 'src/index.tsx': defaultFiles[0], [appTsx]: defaultFiles[1], 'src/main.tsx': code, 'src/theme/variables.css': defaultFiles[2], 'tsconfig.json': defaultFiles[3], 'package.json': JSON.stringify(package_json, null, 2), - 'package-lock.json': defaultFiles[5], ...options?.files, '.stackblitzrc': `{ "startCommand": "yarn run start" @@ -224,7 +222,6 @@ const openVueEditor = async (code: string, options?: EditorOptions) => { const defaultFiles = await loadSourceFiles( [ 'vue/package.json', - 'vue/package-lock.json', 'vue/index.html', 'vue/variables.css', 'vue/vite.config.ts', @@ -248,17 +245,16 @@ const openVueEditor = async (code: string, options?: EditorOptions) => { const mainTs = 'src/main.ts'; const files = { - 'src/App.vue': defaultFiles[6], + 'src/App.vue': defaultFiles[5], 'src/components/Example.vue': code, - [mainTs]: defaultFiles[5], - 'src/env.d.ts': defaultFiles[9], - 'src/theme/variables.css': defaultFiles[3], - 'index.html': defaultFiles[2], - 'vite.config.ts': defaultFiles[4], + [mainTs]: defaultFiles[4], + 'src/env.d.ts': defaultFiles[8], + 'src/theme/variables.css': defaultFiles[2], + 'index.html': defaultFiles[1], + 'vite.config.ts': defaultFiles[3], 'package.json': JSON.stringify(package_json, null, 2), - 'package-lock.json': defaultFiles[1], - 'tsconfig.json': defaultFiles[7], - 'tsconfig.node.json': defaultFiles[8], + 'tsconfig.json': defaultFiles[6], + 'tsconfig.node.json': defaultFiles[7], ...options?.files, '.stackblitzrc': `{ "startCommand": "yarn run dev" diff --git a/static/code/stackblitz/v6/angular/tsconfig.json b/static/code/stackblitz/v6/angular/tsconfig.json index 129cb6a3887..d997342c6bd 100644 --- a/static/code/stackblitz/v6/angular/tsconfig.json +++ b/static/code/stackblitz/v6/angular/tsconfig.json @@ -9,6 +9,7 @@ "experimentalDecorators": true, "module": "esnext", "moduleResolution": "node", + "skipLibCheck": true, "importHelpers": true, "target": "es2015", "typeRoots": ["node_modules/@types"], diff --git a/static/code/stackblitz/v6/react/package-lock.json b/static/code/stackblitz/v6/react/package-lock.json deleted file mode 100644 index 5c60d5493a2..00000000000 --- a/static/code/stackblitz/v6/react/package-lock.json +++ /dev/null @@ -1,3028 +0,0 @@ -{ - "name": "vite-react-typescript", - "version": "0.1.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "vite-react-typescript", - "version": "0.1.0", - "dependencies": { - "@ionic/react": "^6.0.0", - "@ionic/react-router": "^6.0.0", - "@types/node": "^20.0.0", - "@types/react": "^18.0.9", - "@types/react-dom": "^18.0.4", - "@types/react-router": "^5.1.11", - "@types/react-router-dom": "^5.1.7", - "@vitejs/plugin-react": "^4.1.1", - "react": "^18.1.0", - "react-dom": "^18.1.0", - "react-router": "^5.2.0", - "react-router-dom": "^5.2.0", - "typescript": "^5.2.2", - "vite": "^5.0.0", - "web-vitals": "^3.0.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", - "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.5.tgz", - "integrity": "sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.5", - "@babel/parser": "^7.23.5", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.5", - "@babel/types": "^7.23.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" - }, - "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/generator": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz", - "integrity": "sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==", - "dependencies": { - "@babel/types": "^7.23.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/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/@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-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.5.tgz", - "integrity": "sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.5", - "@babel/types": "^7.23.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", - "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz", - "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz", - "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.0.tgz", - "integrity": "sha512-NDYdls71fTXoU8TZHfbBWg7DiZfNzClcKui/+kyi6ppD2L1qnWW3VV6CjtaBXSUGGhiTWJ6ereOIkUvenif66Q==", - "dependencies": { - "regenerator-runtime": "^0.13.10" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz", - "integrity": "sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==", - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.5", - "@babel/types": "^7.23.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz", - "integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==", - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", - "cpu": [ - "loong64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", - "cpu": [ - "mips64el" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@ionic/core": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.7.5.tgz", - "integrity": "sha512-zRkRn+h/Vs3xt/EVgBdShMKDyeGOM4RU31NPF2icfu3CUTH+VrMV569MUnNjYvd1Lu2xK90pYy4TaicSWmC1Pw==", - "dependencies": { - "@stencil/core": "^2.18.0", - "ionicons": "^6.1.3", - "tslib": "^2.1.0" - } - }, - "node_modules/@ionic/react": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.7.5.tgz", - "integrity": "sha512-BRJbG2IfwNepAlJWKxZzNnfMVH3f9zK+yTQ9OO+yTpV8XY/CyYtHUDwUVJoBNPc25rAEn5txzZlHh/jDGpl8LA==", - "dependencies": { - "@ionic/core": "6.7.5", - "ionicons": "^6.1.3", - "tslib": "*" - }, - "peerDependencies": { - "react": ">=16.8.6", - "react-dom": ">=16.8.6" - } - }, - "node_modules/@ionic/react-router": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-6.7.5.tgz", - "integrity": "sha512-zh3i+d8cPnqcadqythTQwyhTL+V+hrEjWNNvtEnA1xAVx8Ol7dDu6V0aDlF6C2+e1q0Vf1fDSMNI4O0JcDutpA==", - "dependencies": { - "@ionic/react": "6.7.5", - "tslib": "*" - }, - "peerDependencies": { - "react": ">=16.8.6", - "react-dom": ">=16.8.6", - "react-router": "^5.0.1", - "react-router-dom": "^5.0.1" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@stencil/core": { - "version": "2.22.3", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.22.3.tgz", - "integrity": "sha512-kmVA0M/HojwsfkeHsifvHVIYe4l5tin7J5+DLgtl8h6WWfiMClND5K3ifCXXI2ETDNKiEk21p6jql3Fx9o2rng==", - "bin": { - "stencil": "bin/stencil" - }, - "engines": { - "node": ">=12.10.0", - "npm": ">=6.0.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.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz", - "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==", - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" - }, - "node_modules/@types/history": { - "version": "4.7.11", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" - }, - "node_modules/@types/node": { - "version": "20.12.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", - "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" - }, - "node_modules/@types/react": { - "version": "18.2.70", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.70.tgz", - "integrity": "sha512-hjlM2hho2vqklPhopNkXkdkeq6Lv8WSZTpr7956zY+3WS5cfYUewtCzsJLsbW5dEv3lfSeQ4W14ZFeKC437JRQ==", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "18.2.22", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.22.tgz", - "integrity": "sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react-router": { - "version": "5.1.20", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", - "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*" - } - }, - "node_modules/@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" - }, - "node_modules/@vitejs/plugin-react": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz", - "integrity": "sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==", - "dependencies": { - "@babel/core": "^7.23.5", - "@babel/plugin-transform-react-jsx-self": "^7.23.3", - "@babel/plugin-transform-react-jsx-source": "^7.23.3", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.0" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" - } - }, - "node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "optional": true, - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "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/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "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.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "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==", - "optional": true, - "peer": true - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001561", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz", - "integrity": "sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "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/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/csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.581", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.581.tgz", - "integrity": "sha512-6uhqWBIapTJUxgPTCHH9sqdbxIMPt7oXl0VcAL1kOtlU6aECdcMncCrX5Z7sHQ/invtrC9jUQUef7+HhO8vVFw==" - }, - "node_modules/esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "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/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/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/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/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/history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "dependencies": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - } - }, - "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/ionicons": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-6.1.3.tgz", - "integrity": "sha512-ptzz38dd/Yq+PgjhXegh7yhb/SLIk1bvL9vQDtLv1aoSc7alO6mX2DIMgcKYzt9vrNWkRu1f9Jr78zIFFyOXqw==", - "dependencies": { - "@stencil/core": "^2.18.0" - } - }, - "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/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "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/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/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "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/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" - }, - "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/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "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/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - }, - "peerDependencies": { - "react": "^18.2.0" - } - }, - "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/react-refresh": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", - "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-router": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", - "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/react-router-dom": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", - "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.3.4", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/react-router/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/react-router/node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/react-router/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/regenerator-runtime": { - "version": "0.13.10", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", - "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" - }, - "node_modules/resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" - }, - "node_modules/rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", - "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", - "fsevents": "~2.3.2" - } - }, - "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "optional": true, - "peer": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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/terser": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", - "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "optional": true, - "peer": true - }, - "node_modules/tiny-invariant": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", - "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" - }, - "node_modules/tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "engines": { - "node": ">=4" - } - }, - "node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" - }, - "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" - }, - "node_modules/vite": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.10.tgz", - "integrity": "sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==", - "dependencies": { - "esbuild": "^0.20.1", - "postcss": "^8.4.38", - "rollup": "^4.13.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/web-vitals": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-3.5.2.tgz", - "integrity": "sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==" - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "requires": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - } - }, - "@babel/compat-data": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", - "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==" - }, - "@babel/core": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.5.tgz", - "integrity": "sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==", - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.5", - "@babel/parser": "^7.23.5", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.5", - "@babel/types": "^7.23.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "dependencies": { - "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==" - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - } - } - }, - "@babel/generator": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz", - "integrity": "sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==", - "requires": { - "@babel/types": "^7.23.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", - "requires": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "dependencies": { - "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==", - "requires": { - "yallist": "^3.0.2" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==" - }, - "@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "requires": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "requires": { - "@babel/types": "^7.22.15" - } - }, - "@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==" - }, - "@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==" - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==" - }, - "@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==" - }, - "@babel/helpers": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.5.tgz", - "integrity": "sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg==", - "requires": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.5", - "@babel/types": "^7.23.5" - } - }, - "@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", - "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==" - }, - "@babel/plugin-transform-react-jsx-self": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz", - "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz", - "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==", - "requires": { - "@babel/helper-plugin-utils": "^7.22.5" - } - }, - "@babel/runtime": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.0.tgz", - "integrity": "sha512-NDYdls71fTXoU8TZHfbBWg7DiZfNzClcKui/+kyi6ppD2L1qnWW3VV6CjtaBXSUGGhiTWJ6ereOIkUvenif66Q==", - "requires": { - "regenerator-runtime": "^0.13.10" - } - }, - "@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - } - }, - "@babel/traverse": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz", - "integrity": "sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==", - "requires": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.5", - "@babel/types": "^7.23.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz", - "integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==", - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - }, - "@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", - "optional": true - }, - "@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", - "optional": true - }, - "@ionic/core": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.7.5.tgz", - "integrity": "sha512-zRkRn+h/Vs3xt/EVgBdShMKDyeGOM4RU31NPF2icfu3CUTH+VrMV569MUnNjYvd1Lu2xK90pYy4TaicSWmC1Pw==", - "requires": { - "@stencil/core": "^2.18.0", - "ionicons": "^6.1.3", - "tslib": "^2.1.0" - } - }, - "@ionic/react": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-6.7.5.tgz", - "integrity": "sha512-BRJbG2IfwNepAlJWKxZzNnfMVH3f9zK+yTQ9OO+yTpV8XY/CyYtHUDwUVJoBNPc25rAEn5txzZlHh/jDGpl8LA==", - "requires": { - "@ionic/core": "6.7.5", - "ionicons": "^6.1.3", - "tslib": "*" - } - }, - "@ionic/react-router": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-6.7.5.tgz", - "integrity": "sha512-zh3i+d8cPnqcadqythTQwyhTL+V+hrEjWNNvtEnA1xAVx8Ol7dDu6V0aDlF6C2+e1q0Vf1fDSMNI4O0JcDutpA==", - "requires": { - "@ionic/react": "6.7.5", - "tslib": "*" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" - }, - "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "optional": true, - "peer": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "optional": true, - "peer": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", - "optional": true - }, - "@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", - "optional": true - }, - "@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", - "optional": true - }, - "@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", - "optional": true - }, - "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", - "optional": true - }, - "@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", - "optional": true - }, - "@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", - "optional": true - }, - "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", - "optional": true - }, - "@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", - "optional": true - }, - "@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", - "optional": true - }, - "@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", - "optional": true - }, - "@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", - "optional": true - }, - "@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", - "optional": true - }, - "@stencil/core": { - "version": "2.22.3", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.22.3.tgz", - "integrity": "sha512-kmVA0M/HojwsfkeHsifvHVIYe4l5tin7J5+DLgtl8h6WWfiMClND5K3ifCXXI2ETDNKiEk21p6jql3Fx9o2rng==" - }, - "@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==", - "requires": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz", - "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==", - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" - }, - "@types/history": { - "version": "4.7.11", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" - }, - "@types/node": { - "version": "20.12.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", - "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", - "requires": { - "undici-types": "~5.26.4" - } - }, - "@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" - }, - "@types/react": { - "version": "18.2.70", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.70.tgz", - "integrity": "sha512-hjlM2hho2vqklPhopNkXkdkeq6Lv8WSZTpr7956zY+3WS5cfYUewtCzsJLsbW5dEv3lfSeQ4W14ZFeKC437JRQ==", - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "@types/react-dom": { - "version": "18.2.22", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.22.tgz", - "integrity": "sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==", - "requires": { - "@types/react": "*" - } - }, - "@types/react-router": { - "version": "5.1.20", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", - "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", - "requires": { - "@types/history": "^4.7.11", - "@types/react": "*" - } - }, - "@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", - "requires": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, - "@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" - }, - "@vitejs/plugin-react": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz", - "integrity": "sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==", - "requires": { - "@babel/core": "^7.23.5", - "@babel/plugin-transform-react-jsx-self": "^7.23.3", - "@babel/plugin-transform-react-jsx-source": "^7.23.3", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.0" - } - }, - "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "optional": true, - "peer": true - }, - "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==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "requires": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - } - }, - "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==", - "optional": true, - "peer": true - }, - "caniuse-lite": { - "version": "1.0.30001561", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz", - "integrity": "sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "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==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "electron-to-chromium": { - "version": "1.4.581", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.581.tgz", - "integrity": "sha512-6uhqWBIapTJUxgPTCHH9sqdbxIMPt7oXl0VcAL1kOtlU6aECdcMncCrX5Z7sHQ/invtrC9jUQUef7+HhO8vVFw==" - }, - "esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", - "requires": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "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==" - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "optional": true - }, - "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==" - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "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==" - }, - "history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "requires": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - } - }, - "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==", - "requires": { - "react-is": "^16.7.0" - }, - "dependencies": { - "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==" - } - } - }, - "ionicons": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-6.1.3.tgz", - "integrity": "sha512-ptzz38dd/Yq+PgjhXegh7yhb/SLIk1bvL9vQDtLv1aoSc7alO6mX2DIMgcKYzt9vrNWkRu1f9Jr78zIFFyOXqw==", - "requires": { - "@stencil/core": "^2.18.0" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" - }, - "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==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" - }, - "node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" - }, - "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==" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", - "requires": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" - } - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "requires": { - "loose-envify": "^1.1.0" - } - }, - "react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "requires": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - } - }, - "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==" - }, - "react-refresh": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", - "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==" - }, - "react-router": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", - "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", - "requires": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "requires": { - "isarray": "0.0.1" - } - }, - "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==" - } - } - }, - "react-router-dom": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", - "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", - "requires": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.3.4", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - } - }, - "regenerator-runtime": { - "version": "0.13.10", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", - "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" - }, - "resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" - }, - "rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", - "requires": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", - "@types/estree": "1.0.5", - "fsevents": "~2.3.2" - } - }, - "scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "requires": { - "loose-envify": "^1.1.0" - } - }, - "source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==" - }, - "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==", - "optional": true, - "peer": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "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, - "peer": true - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "terser": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", - "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", - "optional": true, - "peer": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "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==", - "optional": true, - "peer": true - } - } - }, - "tiny-invariant": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", - "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" - }, - "tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" - }, - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" - }, - "typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==" - }, - "undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, - "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" - }, - "vite": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.10.tgz", - "integrity": "sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==", - "requires": { - "esbuild": "^0.20.1", - "fsevents": "~2.3.3", - "postcss": "^8.4.38", - "rollup": "^4.13.0" - } - }, - "web-vitals": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-3.5.2.tgz", - "integrity": "sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==" - } - } -} diff --git a/static/code/stackblitz/v6/vue/package-lock.json b/static/code/stackblitz/v6/vue/package-lock.json deleted file mode 100644 index ab2f271bfa9..00000000000 --- a/static/code/stackblitz/v6/vue/package-lock.json +++ /dev/null @@ -1,1892 +0,0 @@ -{ - "name": "vite-vue-starter", - "version": "0.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "vite-vue-starter", - "version": "0.0.0", - "dependencies": { - "@ionic/vue": "^6.0.0", - "@ionic/vue-router": "^6.0.0", - "vue": "^3.2.25", - "vue-router": "4.3.2" - }, - "devDependencies": { - "@vitejs/plugin-vue": "^5.0.0", - "typescript": "^4.5.4", - "vite": "^5.0.0", - "vue-tsc": "^2.0.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", - "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@ionic/core": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.7.5.tgz", - "integrity": "sha512-zRkRn+h/Vs3xt/EVgBdShMKDyeGOM4RU31NPF2icfu3CUTH+VrMV569MUnNjYvd1Lu2xK90pYy4TaicSWmC1Pw==", - "dependencies": { - "@stencil/core": "^2.18.0", - "ionicons": "^6.1.3", - "tslib": "^2.1.0" - } - }, - "node_modules/@ionic/vue": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-6.7.5.tgz", - "integrity": "sha512-6JBEaHCT2vVUzYqyfBiEUN8Wo7FezxY5Y3n+HGqI61J4qVay+8IxZRTYeX+O72QglbYOkzvfjE6SgS25oS+S9A==", - "dependencies": { - "@ionic/core": "6.7.5", - "ionicons": "^6.1.3" - } - }, - "node_modules/@ionic/vue-router": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-6.7.5.tgz", - "integrity": "sha512-nupLaWFARdy5vOCNg2xw6YpecaR/hPEew+tWjUJE1INlwvB88o7Uct/R480vqFj3fB436W4O4ViJd4/g0ZBZ8A==", - "dependencies": { - "@ionic/vue": "6.7.5" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@stencil/core": { - "version": "2.22.3", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.22.3.tgz", - "integrity": "sha512-kmVA0M/HojwsfkeHsifvHVIYe4l5tin7J5+DLgtl8h6WWfiMClND5K3ifCXXI2ETDNKiEk21p6jql3Fx9o2rng==", - "bin": { - "stencil": "bin/stencil" - }, - "engines": { - "node": ">=12.10.0", - "npm": ">=6.0.0" - } - }, - "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true - }, - "node_modules/@vitejs/plugin-vue": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz", - "integrity": "sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==", - "dev": true, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "vite": "^5.0.0", - "vue": "^3.2.25" - } - }, - "node_modules/@volar/language-core": { - "version": "2.2.0-alpha.8", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.2.0-alpha.8.tgz", - "integrity": "sha512-Ew1Iw7/RIRNuDLn60fWJdOLApAlfTVPxbPiSLzc434PReC9kleYtaa//Wo2WlN1oiRqneW0pWQQV0CwYqaimLQ==", - "dev": true, - "dependencies": { - "@volar/source-map": "2.2.0-alpha.8" - } - }, - "node_modules/@volar/source-map": { - "version": "2.2.0-alpha.8", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.2.0-alpha.8.tgz", - "integrity": "sha512-E1ZVmXFJ5DU4fWDcWHzi8OLqqReqIDwhXvIMhVdk6+VipfMVv4SkryXu7/rs4GA/GsebcRyJdaSkKBB3OAkIcA==", - "dev": true, - "dependencies": { - "muggle-string": "^0.4.0" - } - }, - "node_modules/@volar/typescript": { - "version": "2.2.0-alpha.8", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.2.0-alpha.8.tgz", - "integrity": "sha512-RLbRDI+17CiayHZs9HhSzlH0FhLl/+XK6o2qoiw2o2GGKcyD1aDoY6AcMd44acYncTOrqoTNoY6LuCiRyiJiGg==", - "dev": true, - "dependencies": { - "@volar/language-core": "2.2.0-alpha.8", - "path-browserify": "^1.0.1" - } - }, - "node_modules/@vue/compiler-core": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.23.tgz", - "integrity": "sha512-HAFmuVEwNqNdmk+w4VCQ2pkLk1Vw4XYiiyxEp3z/xvl14aLTUBw2OfVH3vBcx+FtGsynQLkkhK410Nah1N2yyQ==", - "dependencies": { - "@babel/parser": "^7.24.1", - "@vue/shared": "3.4.23", - "entities": "^4.5.0", - "estree-walker": "^2.0.2", - "source-map-js": "^1.2.0" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.23.tgz", - "integrity": "sha512-t0b9WSTnCRrzsBGrDd1LNR5HGzYTr7LX3z6nNBG+KGvZLqrT0mY6NsMzOqlVMBKKXKVuusbbB5aOOFgTY+senw==", - "dependencies": { - "@vue/compiler-core": "3.4.23", - "@vue/shared": "3.4.23" - } - }, - "node_modules/@vue/compiler-sfc": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.23.tgz", - "integrity": "sha512-fSDTKTfzaRX1kNAUiaj8JB4AokikzStWgHooMhaxyjZerw624L+IAP/fvI4ZwMpwIh8f08PVzEnu4rg8/Npssw==", - "dependencies": { - "@babel/parser": "^7.24.1", - "@vue/compiler-core": "3.4.23", - "@vue/compiler-dom": "3.4.23", - "@vue/compiler-ssr": "3.4.23", - "@vue/shared": "3.4.23", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.8", - "postcss": "^8.4.38", - "source-map-js": "^1.2.0" - } - }, - "node_modules/@vue/compiler-ssr": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.23.tgz", - "integrity": "sha512-hb6Uj2cYs+tfqz71Wj6h3E5t6OKvb4MVcM2Nl5i/z1nv1gjEhw+zYaNOV+Xwn+SSN/VZM0DgANw5TuJfxfezPg==", - "dependencies": { - "@vue/compiler-dom": "3.4.23", - "@vue/shared": "3.4.23" - } - }, - "node_modules/@vue/devtools-api": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.1.tgz", - "integrity": "sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==" - }, - "node_modules/@vue/language-core": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.13.tgz", - "integrity": "sha512-oQgM+BM66SU5GKtUMLQSQN0bxHFkFpLSSAiY87wVziPaiNQZuKVDt/3yA7GB9PiQw0y/bTNL0bOc0jM/siYjKg==", - "dev": true, - "dependencies": { - "@volar/language-core": "2.2.0-alpha.8", - "@vue/compiler-dom": "^3.4.0", - "@vue/shared": "^3.4.0", - "computeds": "^0.0.1", - "minimatch": "^9.0.3", - "path-browserify": "^1.0.1", - "vue-template-compiler": "^2.7.14" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@vue/reactivity": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.23.tgz", - "integrity": "sha512-GlXR9PL+23fQ3IqnbSQ8OQKLodjqCyoCrmdLKZk3BP7jN6prWheAfU7a3mrltewTkoBm+N7qMEb372VHIkQRMQ==", - "dependencies": { - "@vue/shared": "3.4.23" - } - }, - "node_modules/@vue/runtime-core": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.23.tgz", - "integrity": "sha512-FeQ9MZEXoFzFkFiw9MQQ/FWs3srvrP+SjDKSeRIiQHIhtkzoj0X4rWQlRNHbGuSwLra6pMyjAttwixNMjc/xLw==", - "dependencies": { - "@vue/reactivity": "3.4.23", - "@vue/shared": "3.4.23" - } - }, - "node_modules/@vue/runtime-dom": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.23.tgz", - "integrity": "sha512-RXJFwwykZWBkMiTPSLEWU3kgVLNAfActBfWFlZd0y79FTUxexogd0PLG4HH2LfOktjRxV47Nulygh0JFXe5f9A==", - "dependencies": { - "@vue/runtime-core": "3.4.23", - "@vue/shared": "3.4.23", - "csstype": "^3.1.3" - } - }, - "node_modules/@vue/server-renderer": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.23.tgz", - "integrity": "sha512-LDwGHtnIzvKFNS8dPJ1SSU5Gvm36p2ck8wCZc52fc3k/IfjKcwCyrWEf0Yag/2wTFUBXrqizfhK9c/mC367dXQ==", - "dependencies": { - "@vue/compiler-ssr": "3.4.23", - "@vue/shared": "3.4.23" - }, - "peerDependencies": { - "vue": "3.4.23" - } - }, - "node_modules/@vue/shared": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.23.tgz", - "integrity": "sha512-wBQ0gvf+SMwsCQOyusNw/GoXPV47WGd1xB5A1Pgzy0sQ3Bi5r5xm3n+92y3gCnB3MWqnRDdvfkRGxhKtbBRNgg==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/computeds": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", - "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", - "dev": true - }, - "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/de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", - "dev": true - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/ionicons": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-6.1.3.tgz", - "integrity": "sha512-ptzz38dd/Yq+PgjhXegh7yhb/SLIk1bvL9vQDtLv1aoSc7alO6mX2DIMgcKYzt9vrNWkRu1f9Jr78zIFFyOXqw==", - "dependencies": { - "@stencil/core": "^2.18.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/magic-string": { - "version": "0.30.10", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", - "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - } - }, - "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/muggle-string": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", - "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "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/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", - "dev": true, - "dependencies": { - "@types/estree": "1.0.5" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", - "fsevents": "~2.3.2" - } - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "devOptional": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/vite": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.10.tgz", - "integrity": "sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==", - "dev": true, - "dependencies": { - "esbuild": "^0.20.1", - "postcss": "^8.4.38", - "rollup": "^4.13.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vue": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.23.tgz", - "integrity": "sha512-X1y6yyGJ28LMUBJ0k/qIeKHstGd+BlWQEOT40x3auJFTmpIhpbKLgN7EFsqalnJXq1Km5ybDEsp6BhuWKciUDg==", - "dependencies": { - "@vue/compiler-dom": "3.4.23", - "@vue/compiler-sfc": "3.4.23", - "@vue/runtime-dom": "3.4.23", - "@vue/server-renderer": "3.4.23", - "@vue/shared": "3.4.23" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/vue-router": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.3.2.tgz", - "integrity": "sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q==", - "dependencies": { - "@vue/devtools-api": "^6.5.1" - }, - "funding": { - "url": "https://github.com/sponsors/posva" - }, - "peerDependencies": { - "vue": "^3.2.0" - } - }, - "node_modules/vue-template-compiler": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", - "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", - "dev": true, - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, - "node_modules/vue-tsc": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.0.13.tgz", - "integrity": "sha512-a3nL3FvguCWVJUQW/jFrUxdeUtiEkbZoQjidqvMeBK//tuE2w6NWQAbdrEpY2+6nSa4kZoKZp8TZUMtHpjt4mQ==", - "dev": true, - "dependencies": { - "@volar/typescript": "2.2.0-alpha.8", - "@vue/language-core": "2.0.13", - "semver": "^7.5.4" - }, - "bin": { - "vue-tsc": "bin/vue-tsc.js" - }, - "peerDependencies": { - "typescript": "*" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - }, - "dependencies": { - "@babel/parser": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.4.tgz", - "integrity": "sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==" - }, - "@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", - "dev": true, - "optional": true - }, - "@ionic/core": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.7.5.tgz", - "integrity": "sha512-zRkRn+h/Vs3xt/EVgBdShMKDyeGOM4RU31NPF2icfu3CUTH+VrMV569MUnNjYvd1Lu2xK90pYy4TaicSWmC1Pw==", - "requires": { - "@stencil/core": "^2.18.0", - "ionicons": "^6.1.3", - "tslib": "^2.1.0" - } - }, - "@ionic/vue": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-6.7.5.tgz", - "integrity": "sha512-6JBEaHCT2vVUzYqyfBiEUN8Wo7FezxY5Y3n+HGqI61J4qVay+8IxZRTYeX+O72QglbYOkzvfjE6SgS25oS+S9A==", - "requires": { - "@ionic/core": "6.7.5", - "ionicons": "^6.1.3" - } - }, - "@ionic/vue-router": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-6.7.5.tgz", - "integrity": "sha512-nupLaWFARdy5vOCNg2xw6YpecaR/hPEew+tWjUJE1INlwvB88o7Uct/R480vqFj3fB436W4O4ViJd4/g0ZBZ8A==", - "requires": { - "@ionic/vue": "6.7.5" - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "@rollup/rollup-android-arm-eabi": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", - "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", - "dev": true, - "optional": true - }, - "@rollup/rollup-android-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", - "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", - "dev": true, - "optional": true - }, - "@rollup/rollup-darwin-arm64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", - "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", - "dev": true, - "optional": true - }, - "@rollup/rollup-darwin-x64": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", - "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", - "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", - "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", - "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", - "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-x64-gnu": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", - "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-x64-musl": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", - "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-arm64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", - "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-ia32-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", - "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-x64-msvc": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", - "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", - "dev": true, - "optional": true - }, - "@stencil/core": { - "version": "2.22.3", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.22.3.tgz", - "integrity": "sha512-kmVA0M/HojwsfkeHsifvHVIYe4l5tin7J5+DLgtl8h6WWfiMClND5K3ifCXXI2ETDNKiEk21p6jql3Fx9o2rng==" - }, - "@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true - }, - "@vitejs/plugin-vue": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz", - "integrity": "sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ==", - "dev": true, - "requires": {} - }, - "@volar/language-core": { - "version": "2.2.0-alpha.8", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.2.0-alpha.8.tgz", - "integrity": "sha512-Ew1Iw7/RIRNuDLn60fWJdOLApAlfTVPxbPiSLzc434PReC9kleYtaa//Wo2WlN1oiRqneW0pWQQV0CwYqaimLQ==", - "dev": true, - "requires": { - "@volar/source-map": "2.2.0-alpha.8" - } - }, - "@volar/source-map": { - "version": "2.2.0-alpha.8", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.2.0-alpha.8.tgz", - "integrity": "sha512-E1ZVmXFJ5DU4fWDcWHzi8OLqqReqIDwhXvIMhVdk6+VipfMVv4SkryXu7/rs4GA/GsebcRyJdaSkKBB3OAkIcA==", - "dev": true, - "requires": { - "muggle-string": "^0.4.0" - } - }, - "@volar/typescript": { - "version": "2.2.0-alpha.8", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.2.0-alpha.8.tgz", - "integrity": "sha512-RLbRDI+17CiayHZs9HhSzlH0FhLl/+XK6o2qoiw2o2GGKcyD1aDoY6AcMd44acYncTOrqoTNoY6LuCiRyiJiGg==", - "dev": true, - "requires": { - "@volar/language-core": "2.2.0-alpha.8", - "path-browserify": "^1.0.1" - } - }, - "@vue/compiler-core": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.23.tgz", - "integrity": "sha512-HAFmuVEwNqNdmk+w4VCQ2pkLk1Vw4XYiiyxEp3z/xvl14aLTUBw2OfVH3vBcx+FtGsynQLkkhK410Nah1N2yyQ==", - "requires": { - "@babel/parser": "^7.24.1", - "@vue/shared": "3.4.23", - "entities": "^4.5.0", - "estree-walker": "^2.0.2", - "source-map-js": "^1.2.0" - } - }, - "@vue/compiler-dom": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.23.tgz", - "integrity": "sha512-t0b9WSTnCRrzsBGrDd1LNR5HGzYTr7LX3z6nNBG+KGvZLqrT0mY6NsMzOqlVMBKKXKVuusbbB5aOOFgTY+senw==", - "requires": { - "@vue/compiler-core": "3.4.23", - "@vue/shared": "3.4.23" - } - }, - "@vue/compiler-sfc": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.23.tgz", - "integrity": "sha512-fSDTKTfzaRX1kNAUiaj8JB4AokikzStWgHooMhaxyjZerw624L+IAP/fvI4ZwMpwIh8f08PVzEnu4rg8/Npssw==", - "requires": { - "@babel/parser": "^7.24.1", - "@vue/compiler-core": "3.4.23", - "@vue/compiler-dom": "3.4.23", - "@vue/compiler-ssr": "3.4.23", - "@vue/shared": "3.4.23", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.8", - "postcss": "^8.4.38", - "source-map-js": "^1.2.0" - } - }, - "@vue/compiler-ssr": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.23.tgz", - "integrity": "sha512-hb6Uj2cYs+tfqz71Wj6h3E5t6OKvb4MVcM2Nl5i/z1nv1gjEhw+zYaNOV+Xwn+SSN/VZM0DgANw5TuJfxfezPg==", - "requires": { - "@vue/compiler-dom": "3.4.23", - "@vue/shared": "3.4.23" - } - }, - "@vue/devtools-api": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.1.tgz", - "integrity": "sha512-LgPscpE3Vs0x96PzSSB4IGVSZXZBZHpfxs+ZA1d+VEPwHdOXowy/Y2CsvCAIFrf+ssVU1pD1jidj505EpUnfbA==" - }, - "@vue/language-core": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.13.tgz", - "integrity": "sha512-oQgM+BM66SU5GKtUMLQSQN0bxHFkFpLSSAiY87wVziPaiNQZuKVDt/3yA7GB9PiQw0y/bTNL0bOc0jM/siYjKg==", - "dev": true, - "requires": { - "@volar/language-core": "2.2.0-alpha.8", - "@vue/compiler-dom": "^3.4.0", - "@vue/shared": "^3.4.0", - "computeds": "^0.0.1", - "minimatch": "^9.0.3", - "path-browserify": "^1.0.1", - "vue-template-compiler": "^2.7.14" - } - }, - "@vue/reactivity": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.23.tgz", - "integrity": "sha512-GlXR9PL+23fQ3IqnbSQ8OQKLodjqCyoCrmdLKZk3BP7jN6prWheAfU7a3mrltewTkoBm+N7qMEb372VHIkQRMQ==", - "requires": { - "@vue/shared": "3.4.23" - } - }, - "@vue/runtime-core": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.23.tgz", - "integrity": "sha512-FeQ9MZEXoFzFkFiw9MQQ/FWs3srvrP+SjDKSeRIiQHIhtkzoj0X4rWQlRNHbGuSwLra6pMyjAttwixNMjc/xLw==", - "requires": { - "@vue/reactivity": "3.4.23", - "@vue/shared": "3.4.23" - } - }, - "@vue/runtime-dom": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.23.tgz", - "integrity": "sha512-RXJFwwykZWBkMiTPSLEWU3kgVLNAfActBfWFlZd0y79FTUxexogd0PLG4HH2LfOktjRxV47Nulygh0JFXe5f9A==", - "requires": { - "@vue/runtime-core": "3.4.23", - "@vue/shared": "3.4.23", - "csstype": "^3.1.3" - } - }, - "@vue/server-renderer": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.23.tgz", - "integrity": "sha512-LDwGHtnIzvKFNS8dPJ1SSU5Gvm36p2ck8wCZc52fc3k/IfjKcwCyrWEf0Yag/2wTFUBXrqizfhK9c/mC367dXQ==", - "requires": { - "@vue/compiler-ssr": "3.4.23", - "@vue/shared": "3.4.23" - } - }, - "@vue/shared": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.23.tgz", - "integrity": "sha512-wBQ0gvf+SMwsCQOyusNw/GoXPV47WGd1xB5A1Pgzy0sQ3Bi5r5xm3n+92y3gCnB3MWqnRDdvfkRGxhKtbBRNgg==" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "computeds": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", - "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", - "dev": true - }, - "csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - }, - "de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", - "dev": true - }, - "entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" - }, - "esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", - "dev": true, - "requires": { - "@esbuild/aix-ppc64": "0.20.2", - "@esbuild/android-arm": "0.20.2", - "@esbuild/android-arm64": "0.20.2", - "@esbuild/android-x64": "0.20.2", - "@esbuild/darwin-arm64": "0.20.2", - "@esbuild/darwin-x64": "0.20.2", - "@esbuild/freebsd-arm64": "0.20.2", - "@esbuild/freebsd-x64": "0.20.2", - "@esbuild/linux-arm": "0.20.2", - "@esbuild/linux-arm64": "0.20.2", - "@esbuild/linux-ia32": "0.20.2", - "@esbuild/linux-loong64": "0.20.2", - "@esbuild/linux-mips64el": "0.20.2", - "@esbuild/linux-ppc64": "0.20.2", - "@esbuild/linux-riscv64": "0.20.2", - "@esbuild/linux-s390x": "0.20.2", - "@esbuild/linux-x64": "0.20.2", - "@esbuild/netbsd-x64": "0.20.2", - "@esbuild/openbsd-x64": "0.20.2", - "@esbuild/sunos-x64": "0.20.2", - "@esbuild/win32-arm64": "0.20.2", - "@esbuild/win32-ia32": "0.20.2", - "@esbuild/win32-x64": "0.20.2" - } - }, - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "optional": true - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "ionicons": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-6.1.3.tgz", - "integrity": "sha512-ptzz38dd/Yq+PgjhXegh7yhb/SLIk1bvL9vQDtLv1aoSc7alO6mX2DIMgcKYzt9vrNWkRu1f9Jr78zIFFyOXqw==", - "requires": { - "@stencil/core": "^2.18.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "magic-string": { - "version": "0.30.10", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", - "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", - "requires": { - "@jridgewell/sourcemap-codec": "^1.4.15" - } - }, - "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "muggle-string": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", - "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", - "dev": true - }, - "nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" - }, - "path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", - "requires": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" - } - }, - "rollup": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", - "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", - "dev": true, - "requires": { - "@rollup/rollup-android-arm-eabi": "4.13.0", - "@rollup/rollup-android-arm64": "4.13.0", - "@rollup/rollup-darwin-arm64": "4.13.0", - "@rollup/rollup-darwin-x64": "4.13.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", - "@rollup/rollup-linux-arm64-gnu": "4.13.0", - "@rollup/rollup-linux-arm64-musl": "4.13.0", - "@rollup/rollup-linux-riscv64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-gnu": "4.13.0", - "@rollup/rollup-linux-x64-musl": "4.13.0", - "@rollup/rollup-win32-arm64-msvc": "4.13.0", - "@rollup/rollup-win32-ia32-msvc": "4.13.0", - "@rollup/rollup-win32-x64-msvc": "4.13.0", - "@types/estree": "1.0.5", - "fsevents": "~2.3.2" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==" - }, - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "devOptional": true - }, - "vite": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.10.tgz", - "integrity": "sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==", - "dev": true, - "requires": { - "esbuild": "^0.20.1", - "fsevents": "~2.3.3", - "postcss": "^8.4.38", - "rollup": "^4.13.0" - } - }, - "vue": { - "version": "3.4.23", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.23.tgz", - "integrity": "sha512-X1y6yyGJ28LMUBJ0k/qIeKHstGd+BlWQEOT40x3auJFTmpIhpbKLgN7EFsqalnJXq1Km5ybDEsp6BhuWKciUDg==", - "requires": { - "@vue/compiler-dom": "3.4.23", - "@vue/compiler-sfc": "3.4.23", - "@vue/runtime-dom": "3.4.23", - "@vue/server-renderer": "3.4.23", - "@vue/shared": "3.4.23" - } - }, - "vue-router": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.3.2.tgz", - "integrity": "sha512-hKQJ1vDAZ5LVkKEnHhmm1f9pMiWIBNGF5AwU67PdH7TyXCj/a4hTccuUuYCAMgJK6rO/NVYtQIEN3yL8CECa7Q==", - "requires": { - "@vue/devtools-api": "^6.5.1" - } - }, - "vue-template-compiler": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", - "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", - "dev": true, - "requires": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, - "vue-tsc": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.0.13.tgz", - "integrity": "sha512-a3nL3FvguCWVJUQW/jFrUxdeUtiEkbZoQjidqvMeBK//tuE2w6NWQAbdrEpY2+6nSa4kZoKZp8TZUMtHpjt4mQ==", - "dev": true, - "requires": { - "@volar/typescript": "2.2.0-alpha.8", - "@vue/language-core": "2.0.13", - "semver": "^7.5.4" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } -} diff --git a/static/code/stackblitz/v7/angular/package.json b/static/code/stackblitz/v7/angular/package.json index 18cdecc15dd..4928aafecca 100644 --- a/static/code/stackblitz/v7/angular/package.json +++ b/static/code/stackblitz/v7/angular/package.json @@ -27,6 +27,6 @@ "@angular/build": "^20.0.0", "@angular/cli": "^20.0.0", "@angular/compiler-cli": "^20.0.0", - "typescript": "^5.8.0" + "typescript": "~5.9.0" } } diff --git a/static/code/stackblitz/v7/angular/tsconfig.json b/static/code/stackblitz/v7/angular/tsconfig.json index f46b98bad6e..c19ed85f790 100644 --- a/static/code/stackblitz/v7/angular/tsconfig.json +++ b/static/code/stackblitz/v7/angular/tsconfig.json @@ -14,6 +14,7 @@ "declaration": false, "experimentalDecorators": true, "moduleResolution": "node", + "skipLibCheck": true, "importHelpers": true, "target": "es2022", "module": "es2020", diff --git a/static/code/stackblitz/v7/html/package.json b/static/code/stackblitz/v7/html/package.json index 5f2b336cbc1..8e811d749e2 100644 --- a/static/code/stackblitz/v7/html/package.json +++ b/static/code/stackblitz/v7/html/package.json @@ -13,7 +13,7 @@ "ionicons": "8.0.13" }, "devDependencies": { - "typescript": "^5.0.0", + "typescript": "~5.9.0", "vite": "^7.0.0", "vite-plugin-static-copy": "^3.1.0" } diff --git a/static/code/stackblitz/v7/react/package-lock.json b/static/code/stackblitz/v7/react/package-lock.json deleted file mode 100644 index fef5360c8d2..00000000000 --- a/static/code/stackblitz/v7/react/package-lock.json +++ /dev/null @@ -1,2812 +0,0 @@ -{ - "name": "vite-react-typescript", - "version": "0.1.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "vite-react-typescript", - "version": "0.1.0", - "dependencies": { - "@ionic/react": "^7.4.0", - "@ionic/react-router": "^7.4.0", - "@types/node": "^22.0.0", - "@types/react": "^19.0.0", - "@types/react-dom": "^19.0.0", - "@types/react-router": "^5.1.11", - "@types/react-router-dom": "^5.1.7", - "@vitejs/plugin-react": "^5.0.0", - "clsx": "^2.0.0", - "react": "^19.0.0", - "react-dom": "^19.0.0", - "react-router": "^5.2.0", - "react-router-dom": "^5.2.0", - "typescript": "^5.2.2", - "vite": "^7.0.0", - "web-vitals": "^5.0.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", - "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", - "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.3", - "@babel/parser": "^7.28.3", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.3", - "@babel/types": "^7.28.2", - "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/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", - "dependencies": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", - "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", - "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", - "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", - "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.28.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", - "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", - "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", - "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", - "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", - "dependencies": { - "@babel/types": "^7.28.2" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", - "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", - "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", - "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", - "dependencies": { - "regenerator-runtime": "^0.13.11" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", - "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.3", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", - "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", - "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz", - "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", - "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz", - "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", - "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", - "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", - "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", - "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", - "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", - "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", - "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", - "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", - "cpu": [ - "loong64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", - "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", - "cpu": [ - "mips64el" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", - "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", - "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", - "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", - "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", - "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", - "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", - "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", - "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", - "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", - "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", - "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", - "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@ionic/core": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.8.6.tgz", - "integrity": "sha512-HAYZdEmeJgOdo2kDlZkcCGHb+zs/vjU6iv4skbVBL7y+OnSv/oC2u83Yee8S3/aY0YAxkyBgu7hLTYH13Zc2Aw==", - "dependencies": { - "@stencil/core": "^4.12.2", - "ionicons": "^7.2.2", - "tslib": "^2.1.0" - } - }, - "node_modules/@ionic/react": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-7.8.6.tgz", - "integrity": "sha512-IIlcdOW2OmcrjC3nqGqQCcJdHDnEbGIfyzpKR0FDaRQ6M/a7Mz6IlIG/cgdGP0RBBadECykBFDfa6XgRAGwWoA==", - "dependencies": { - "@ionic/core": "7.8.6", - "ionicons": "^7.0.0", - "tslib": "*" - }, - "peerDependencies": { - "react": ">=16.8.6", - "react-dom": ">=16.8.6" - } - }, - "node_modules/@ionic/react-router": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-7.8.6.tgz", - "integrity": "sha512-iCF66ULg37snl+LDB7HAk6HL+RZ419DBbobVUj6bLZ8R6yf7lG+Vf9e/fvu3GZEqyaGHfD7MxYyOSZbH1+qN5Q==", - "dependencies": { - "@ionic/react": "7.8.6", - "tslib": "*" - }, - "peerDependencies": { - "react": ">=16.8.6", - "react-dom": ">=16.8.6", - "react-router": "^5.0.1", - "react-router-dom": "^5.0.1" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", - "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", - "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.29", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", - "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.32", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.32.tgz", - "integrity": "sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==" - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", - "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", - "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", - "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", - "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", - "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", - "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", - "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", - "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", - "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", - "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", - "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", - "cpu": [ - "loong64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", - "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", - "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", - "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", - "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", - "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", - "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", - "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", - "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", - "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@stencil/core": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.12.2.tgz", - "integrity": "sha512-WEMpoqwMV4hY/ab2z9NxRhSeZwuKEugjyn6Vd+qA9xqZh6VNUL27QbP8vCa7IeqD4Zql4JBtKu3lVuBHutWE6w==", - "bin": { - "stencil": "bin/stencil" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.10.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.7", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", - "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", - "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.4", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", - "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==" - }, - "node_modules/@types/history": { - "version": "4.7.11", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" - }, - "node_modules/@types/node": { - "version": "22.17.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.2.tgz", - "integrity": "sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w==", - "dependencies": { - "undici-types": "~6.21.0" - } - }, - "node_modules/@types/react": { - "version": "19.1.11", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.11.tgz", - "integrity": "sha512-lr3jdBw/BGj49Eps7EvqlUaoeA0xpj3pc0RoJkHpYaCHkVK7i28dKyImLQb3JVlqs3aYSXf7qYuWOW/fgZnTXQ==", - "dependencies": { - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "19.1.7", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.7.tgz", - "integrity": "sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==", - "peerDependencies": { - "@types/react": "^19.0.0" - } - }, - "node_modules/@types/react-router": { - "version": "5.1.20", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", - "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*" - } - }, - "node_modules/@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, - "node_modules/@vitejs/plugin-react": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.1.tgz", - "integrity": "sha512-DE4UNaBXwtVoDJ0ccBdLVjFTWL70NRuWNCxEieTI3lrq9ORB9aOCQEKstwDXBl87NvFdbqh/p7eINGyj0BthJA==", - "dependencies": { - "@babel/core": "^7.28.3", - "@babel/plugin-transform-react-jsx-self": "^7.27.1", - "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.32", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.17.0" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" - } - }, - "node_modules/browserslist": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", - "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", - "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.30001718", - "electron-to-chromium": "^1.5.160", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.3" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001722", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001722.tgz", - "integrity": "sha512-DCQHBBZtiK6JVkAGw7drvAMK0Q0POD/xZvEmDp6baiMMP6QXXk9HpD6mNYBZWhOPG6LvIDb82ITqtWjhDckHCA==", - "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/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "engines": { - "node": ">=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/csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" - }, - "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/electron-to-chromium": { - "version": "1.5.167", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.167.tgz", - "integrity": "sha512-LxcRvnYO5ez2bMOFpbuuVuAI5QNeY1ncVytE/KXaL6ZNfzX1yPlAO0nSOyIHx2fVAuUprMqPs/TdVhUFZy7SIQ==" - }, - "node_modules/esbuild": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", - "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.0", - "@esbuild/android-arm": "0.25.0", - "@esbuild/android-arm64": "0.25.0", - "@esbuild/android-x64": "0.25.0", - "@esbuild/darwin-arm64": "0.25.0", - "@esbuild/darwin-x64": "0.25.0", - "@esbuild/freebsd-arm64": "0.25.0", - "@esbuild/freebsd-x64": "0.25.0", - "@esbuild/linux-arm": "0.25.0", - "@esbuild/linux-arm64": "0.25.0", - "@esbuild/linux-ia32": "0.25.0", - "@esbuild/linux-loong64": "0.25.0", - "@esbuild/linux-mips64el": "0.25.0", - "@esbuild/linux-ppc64": "0.25.0", - "@esbuild/linux-riscv64": "0.25.0", - "@esbuild/linux-s390x": "0.25.0", - "@esbuild/linux-x64": "0.25.0", - "@esbuild/netbsd-arm64": "0.25.0", - "@esbuild/netbsd-x64": "0.25.0", - "@esbuild/openbsd-arm64": "0.25.0", - "@esbuild/openbsd-x64": "0.25.0", - "@esbuild/sunos-x64": "0.25.0", - "@esbuild/win32-arm64": "0.25.0", - "@esbuild/win32-ia32": "0.25.0", - "@esbuild/win32-x64": "0.25.0" - } - }, - "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/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "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/history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "dependencies": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - } - }, - "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/ionicons": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-7.2.2.tgz", - "integrity": "sha512-I3iYIfc9Q9FRifWyFSwTAvbEABWlWY32i0sAVDDPGYnaIZVugkLCZFbEcrphW6ixVPg8tt1oLwalo/JJwbEqnA==", - "dependencies": { - "@stencil/core": "^4.0.3" - } - }, - "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/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/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/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/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/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/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "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/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/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/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": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "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.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "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/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/react": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", - "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", - "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", - "dependencies": { - "scheduler": "^0.26.0" - }, - "peerDependencies": { - "react": "^19.1.1" - } - }, - "node_modules/react-refresh": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", - "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-router": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", - "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/react-router-dom": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", - "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.3.4", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/react-router/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/react-router/node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/react-router/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/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/resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" - }, - "node_modules/rollup": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", - "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", - "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.46.2", - "@rollup/rollup-android-arm64": "4.46.2", - "@rollup/rollup-darwin-arm64": "4.46.2", - "@rollup/rollup-darwin-x64": "4.46.2", - "@rollup/rollup-freebsd-arm64": "4.46.2", - "@rollup/rollup-freebsd-x64": "4.46.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", - "@rollup/rollup-linux-arm-musleabihf": "4.46.2", - "@rollup/rollup-linux-arm64-gnu": "4.46.2", - "@rollup/rollup-linux-arm64-musl": "4.46.2", - "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", - "@rollup/rollup-linux-ppc64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-musl": "4.46.2", - "@rollup/rollup-linux-s390x-gnu": "4.46.2", - "@rollup/rollup-linux-x64-gnu": "4.46.2", - "@rollup/rollup-linux-x64-musl": "4.46.2", - "@rollup/rollup-win32-arm64-msvc": "4.46.2", - "@rollup/rollup-win32-ia32-msvc": "4.46.2", - "@rollup/rollup-win32-x64-msvc": "4.46.2", - "fsevents": "~2.3.2" - } - }, - "node_modules/scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==" - }, - "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/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/tiny-invariant": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", - "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" - }, - "node_modules/tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, - "node_modules/tinyglobby": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", - "dependencies": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "node_modules/typescript": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==" - }, - "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", - "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/value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" - }, - "node_modules/vite": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", - "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==", - "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.5.0", - "picomatch": "^4.0.3", - "postcss": "^8.5.6", - "rollup": "^4.43.0", - "tinyglobby": "^0.2.14" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^20.19.0 || >=22.12.0", - "jiti": ">=1.21.0", - "less": "^4.0.0", - "lightningcss": "^1.21.0", - "sass": "^1.70.0", - "sass-embedded": "^1.70.0", - "stylus": ">=0.54.8", - "sugarss": "^5.0.0", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/web-vitals": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-5.1.0.tgz", - "integrity": "sha512-ArI3kx5jI0atlTtmV0fWU3fjpLmq/nD3Zr1iFFlJLaqa5wLBkUSzINwBPySCX/8jRyjlmy1Volw1kz1g9XE4Jg==" - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", - "requires": { - "@babel/helper-validator-identifier": "^7.27.1", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - } - }, - "@babel/compat-data": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", - "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==" - }, - "@babel/core": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", - "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.3", - "@babel/parser": "^7.28.3", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.3", - "@babel/types": "^7.28.2", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - } - }, - "@babel/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", - "requires": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", - "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", - "requires": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - } - }, - "@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==" - }, - "@babel/helper-module-imports": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", - "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", - "requires": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - } - }, - "@babel/helper-module-transforms": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", - "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", - "requires": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.28.3" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", - "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==" - }, - "@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==" - }, - "@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==" - }, - "@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==" - }, - "@babel/helpers": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", - "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", - "requires": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2" - } - }, - "@babel/parser": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", - "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", - "requires": { - "@babel/types": "^7.28.2" - } - }, - "@babel/plugin-transform-react-jsx-self": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", - "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", - "requires": { - "@babel/helper-plugin-utils": "^7.27.1" - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", - "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", - "requires": { - "@babel/helper-plugin-utils": "^7.27.1" - } - }, - "@babel/runtime": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", - "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", - "requires": { - "regenerator-runtime": "^0.13.11" - } - }, - "@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", - "requires": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" - } - }, - "@babel/traverse": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", - "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", - "requires": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.3", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2", - "debug": "^4.3.1" - } - }, - "@babel/types": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", - "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", - "requires": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" - } - }, - "@esbuild/aix-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", - "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", - "optional": true - }, - "@esbuild/android-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz", - "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", - "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz", - "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", - "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", - "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", - "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", - "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", - "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", - "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", - "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", - "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", - "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", - "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", - "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", - "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", - "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", - "optional": true - }, - "@esbuild/netbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", - "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", - "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", - "optional": true - }, - "@esbuild/openbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", - "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", - "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", - "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", - "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", - "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", - "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", - "optional": true - }, - "@ionic/core": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.8.6.tgz", - "integrity": "sha512-HAYZdEmeJgOdo2kDlZkcCGHb+zs/vjU6iv4skbVBL7y+OnSv/oC2u83Yee8S3/aY0YAxkyBgu7hLTYH13Zc2Aw==", - "requires": { - "@stencil/core": "^4.12.2", - "ionicons": "^7.2.2", - "tslib": "^2.1.0" - } - }, - "@ionic/react": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-7.8.6.tgz", - "integrity": "sha512-IIlcdOW2OmcrjC3nqGqQCcJdHDnEbGIfyzpKR0FDaRQ6M/a7Mz6IlIG/cgdGP0RBBadECykBFDfa6XgRAGwWoA==", - "requires": { - "@ionic/core": "7.8.6", - "ionicons": "^7.0.0", - "tslib": "*" - } - }, - "@ionic/react-router": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-7.8.6.tgz", - "integrity": "sha512-iCF66ULg37snl+LDB7HAk6HL+RZ419DBbobVUj6bLZ8R6yf7lG+Vf9e/fvu3GZEqyaGHfD7MxYyOSZbH1+qN5Q==", - "requires": { - "@ionic/react": "7.8.6", - "tslib": "*" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", - "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", - "requires": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" - }, - "@jridgewell/sourcemap-codec": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", - "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.29", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", - "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "@rolldown/pluginutils": { - "version": "1.0.0-beta.32", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.32.tgz", - "integrity": "sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==" - }, - "@rollup/rollup-android-arm-eabi": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", - "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", - "optional": true - }, - "@rollup/rollup-android-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", - "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", - "optional": true - }, - "@rollup/rollup-darwin-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", - "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", - "optional": true - }, - "@rollup/rollup-darwin-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", - "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", - "optional": true - }, - "@rollup/rollup-freebsd-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", - "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", - "optional": true - }, - "@rollup/rollup-freebsd-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", - "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", - "optional": true - }, - "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", - "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", - "optional": true - }, - "@rollup/rollup-linux-arm-musleabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", - "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", - "optional": true - }, - "@rollup/rollup-linux-arm64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", - "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", - "optional": true - }, - "@rollup/rollup-linux-arm64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", - "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", - "optional": true - }, - "@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", - "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", - "optional": true - }, - "@rollup/rollup-linux-ppc64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", - "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", - "optional": true - }, - "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", - "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", - "optional": true - }, - "@rollup/rollup-linux-riscv64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", - "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", - "optional": true - }, - "@rollup/rollup-linux-s390x-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", - "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", - "optional": true - }, - "@rollup/rollup-linux-x64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", - "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", - "optional": true - }, - "@rollup/rollup-linux-x64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", - "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", - "optional": true - }, - "@rollup/rollup-win32-arm64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", - "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", - "optional": true - }, - "@rollup/rollup-win32-ia32-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", - "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", - "optional": true - }, - "@rollup/rollup-win32-x64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", - "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", - "optional": true - }, - "@stencil/core": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.12.2.tgz", - "integrity": "sha512-WEMpoqwMV4hY/ab2z9NxRhSeZwuKEugjyn6Vd+qA9xqZh6VNUL27QbP8vCa7IeqD4Zql4JBtKu3lVuBHutWE6w==" - }, - "@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==", - "requires": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", - "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@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==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.20.4", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", - "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", - "requires": { - "@babel/types": "^7.20.7" - } - }, - "@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==" - }, - "@types/history": { - "version": "4.7.11", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" - }, - "@types/node": { - "version": "22.17.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.2.tgz", - "integrity": "sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w==", - "requires": { - "undici-types": "~6.21.0" - } - }, - "@types/react": { - "version": "19.1.11", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.11.tgz", - "integrity": "sha512-lr3jdBw/BGj49Eps7EvqlUaoeA0xpj3pc0RoJkHpYaCHkVK7i28dKyImLQb3JVlqs3aYSXf7qYuWOW/fgZnTXQ==", - "requires": { - "csstype": "^3.0.2" - } - }, - "@types/react-dom": { - "version": "19.1.7", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.7.tgz", - "integrity": "sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==", - "requires": {} - }, - "@types/react-router": { - "version": "5.1.20", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", - "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", - "requires": { - "@types/history": "^4.7.11", - "@types/react": "*" - } - }, - "@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", - "requires": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, - "@vitejs/plugin-react": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.1.tgz", - "integrity": "sha512-DE4UNaBXwtVoDJ0ccBdLVjFTWL70NRuWNCxEieTI3lrq9ORB9aOCQEKstwDXBl87NvFdbqh/p7eINGyj0BthJA==", - "requires": { - "@babel/core": "^7.28.3", - "@babel/plugin-transform-react-jsx-self": "^7.27.1", - "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.32", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.17.0" - } - }, - "browserslist": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", - "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", - "requires": { - "caniuse-lite": "^1.0.30001718", - "electron-to-chromium": "^1.5.160", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.3" - } - }, - "caniuse-lite": { - "version": "1.0.30001722", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001722.tgz", - "integrity": "sha512-DCQHBBZtiK6JVkAGw7drvAMK0Q0POD/xZvEmDp6baiMMP6QXXk9HpD6mNYBZWhOPG6LvIDb82ITqtWjhDckHCA==" - }, - "clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==" - }, - "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==" - }, - "csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" - }, - "debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", - "requires": { - "ms": "^2.1.3" - } - }, - "electron-to-chromium": { - "version": "1.5.167", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.167.tgz", - "integrity": "sha512-LxcRvnYO5ez2bMOFpbuuVuAI5QNeY1ncVytE/KXaL6ZNfzX1yPlAO0nSOyIHx2fVAuUprMqPs/TdVhUFZy7SIQ==" - }, - "esbuild": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", - "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", - "requires": { - "@esbuild/aix-ppc64": "0.25.0", - "@esbuild/android-arm": "0.25.0", - "@esbuild/android-arm64": "0.25.0", - "@esbuild/android-x64": "0.25.0", - "@esbuild/darwin-arm64": "0.25.0", - "@esbuild/darwin-x64": "0.25.0", - "@esbuild/freebsd-arm64": "0.25.0", - "@esbuild/freebsd-x64": "0.25.0", - "@esbuild/linux-arm": "0.25.0", - "@esbuild/linux-arm64": "0.25.0", - "@esbuild/linux-ia32": "0.25.0", - "@esbuild/linux-loong64": "0.25.0", - "@esbuild/linux-mips64el": "0.25.0", - "@esbuild/linux-ppc64": "0.25.0", - "@esbuild/linux-riscv64": "0.25.0", - "@esbuild/linux-s390x": "0.25.0", - "@esbuild/linux-x64": "0.25.0", - "@esbuild/netbsd-arm64": "0.25.0", - "@esbuild/netbsd-x64": "0.25.0", - "@esbuild/openbsd-arm64": "0.25.0", - "@esbuild/openbsd-x64": "0.25.0", - "@esbuild/sunos-x64": "0.25.0", - "@esbuild/win32-arm64": "0.25.0", - "@esbuild/win32-ia32": "0.25.0", - "@esbuild/win32-x64": "0.25.0" - } - }, - "escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==" - }, - "fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "requires": {} - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "optional": true - }, - "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==" - }, - "history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "requires": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - } - }, - "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==", - "requires": { - "react-is": "^16.7.0" - }, - "dependencies": { - "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==" - } - } - }, - "ionicons": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-7.2.2.tgz", - "integrity": "sha512-I3iYIfc9Q9FRifWyFSwTAvbEABWlWY32i0sAVDDPGYnaIZVugkLCZFbEcrphW6ixVPg8tt1oLwalo/JJwbEqnA==", - "requires": { - "@stencil/core": "^4.0.3" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==" - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" - }, - "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==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "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==", - "requires": { - "yallist": "^3.0.2" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==" - }, - "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==" - }, - "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==" - }, - "picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" - }, - "picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==" - }, - "postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "requires": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - } - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - }, - "dependencies": { - "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==" - } - } - }, - "react": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", - "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==" - }, - "react-dom": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", - "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", - "requires": { - "scheduler": "^0.26.0" - } - }, - "react-refresh": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", - "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==" - }, - "react-router": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", - "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", - "requires": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "requires": { - "isarray": "0.0.1" - } - }, - "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==" - } - } - }, - "react-router-dom": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", - "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", - "requires": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.3.4", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - } - }, - "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==" - }, - "resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" - }, - "rollup": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", - "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", - "requires": { - "@rollup/rollup-android-arm-eabi": "4.46.2", - "@rollup/rollup-android-arm64": "4.46.2", - "@rollup/rollup-darwin-arm64": "4.46.2", - "@rollup/rollup-darwin-x64": "4.46.2", - "@rollup/rollup-freebsd-arm64": "4.46.2", - "@rollup/rollup-freebsd-x64": "4.46.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", - "@rollup/rollup-linux-arm-musleabihf": "4.46.2", - "@rollup/rollup-linux-arm64-gnu": "4.46.2", - "@rollup/rollup-linux-arm64-musl": "4.46.2", - "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", - "@rollup/rollup-linux-ppc64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-musl": "4.46.2", - "@rollup/rollup-linux-s390x-gnu": "4.46.2", - "@rollup/rollup-linux-x64-gnu": "4.46.2", - "@rollup/rollup-linux-x64-musl": "4.46.2", - "@rollup/rollup-win32-arm64-msvc": "4.46.2", - "@rollup/rollup-win32-ia32-msvc": "4.46.2", - "@rollup/rollup-win32-x64-msvc": "4.46.2", - "@types/estree": "1.0.8", - "fsevents": "~2.3.2" - } - }, - "scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==" - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - }, - "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==" - }, - "tiny-invariant": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", - "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" - }, - "tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, - "tinyglobby": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", - "requires": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" - } - }, - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "typescript": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==" - }, - "undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==" - }, - "update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", - "requires": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - } - }, - "value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" - }, - "vite": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", - "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==", - "requires": { - "esbuild": "^0.25.0", - "fdir": "^6.5.0", - "fsevents": "~2.3.3", - "picomatch": "^4.0.3", - "postcss": "^8.5.6", - "rollup": "^4.43.0", - "tinyglobby": "^0.2.14" - } - }, - "web-vitals": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-5.1.0.tgz", - "integrity": "sha512-ArI3kx5jI0atlTtmV0fWU3fjpLmq/nD3Zr1iFFlJLaqa5wLBkUSzINwBPySCX/8jRyjlmy1Volw1kz1g9XE4Jg==" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - } -} diff --git a/static/code/stackblitz/v7/react/package.json b/static/code/stackblitz/v7/react/package.json index 4e584d87c4f..c71c9d35894 100644 --- a/static/code/stackblitz/v7/react/package.json +++ b/static/code/stackblitz/v7/react/package.json @@ -16,7 +16,7 @@ "react-dom": "^19.0.0", "react-router": "^5.2.0", "react-router-dom": "^5.2.0", - "typescript": "^5.2.2", + "typescript": "~5.9.0", "vite": "^7.0.0", "web-vitals": "^5.0.0" }, diff --git a/static/code/stackblitz/v7/vue/package-lock.json b/static/code/stackblitz/v7/vue/package-lock.json deleted file mode 100644 index 189e358d4b8..00000000000 --- a/static/code/stackblitz/v7/vue/package-lock.json +++ /dev/null @@ -1,2155 +0,0 @@ -{ - "name": "vite-vue-starter", - "version": "0.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "vite-vue-starter", - "version": "0.0.0", - "dependencies": { - "@ionic/vue": "^7.4.0", - "@ionic/vue-router": "^7.4.0", - "vue": "^3.2.25", - "vue-router": "4.5.1" - }, - "devDependencies": { - "@vitejs/plugin-vue": "^6.0.0", - "typescript": "^5.0.0", - "vite": "^7.0.0", - "vue-tsc": "^3.0.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", - "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", - "dependencies": { - "@babel/types": "^7.28.2" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/types": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", - "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", - "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz", - "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", - "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz", - "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", - "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", - "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", - "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", - "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", - "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", - "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", - "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", - "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", - "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", - "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", - "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", - "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", - "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", - "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", - "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", - "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", - "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", - "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", - "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", - "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", - "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@ionic/core": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.8.6.tgz", - "integrity": "sha512-HAYZdEmeJgOdo2kDlZkcCGHb+zs/vjU6iv4skbVBL7y+OnSv/oC2u83Yee8S3/aY0YAxkyBgu7hLTYH13Zc2Aw==", - "dependencies": { - "@stencil/core": "^4.12.2", - "ionicons": "^7.2.2", - "tslib": "^2.1.0" - } - }, - "node_modules/@ionic/vue": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-7.8.6.tgz", - "integrity": "sha512-WVngbTA08SlVbyj4rS9krVJ2Z9Uv/MG1xItDS7WqMPeVwRNGaOiw6MkxjXRcpIz6qE0b+6EjIcte5h4nGRiDCw==", - "dependencies": { - "@ionic/core": "7.8.6", - "ionicons": "^7.0.0" - } - }, - "node_modules/@ionic/vue-router": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-7.8.6.tgz", - "integrity": "sha512-YVGqO6yyNBrwxYJfulPCLy6XBBJ0eDiy97XxLbHlaGx9WZJpf+NE+NA7N4Zj+IMTopCAX+YU/PS70OoTM7hITQ==", - "dependencies": { - "@ionic/vue": "7.8.6" - } - }, - "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/@rolldown/pluginutils": { - "version": "1.0.0-beta.29", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.29.tgz", - "integrity": "sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==", - "dev": true - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", - "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", - "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", - "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", - "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", - "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", - "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", - "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", - "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", - "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", - "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", - "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", - "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", - "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", - "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", - "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", - "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", - "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", - "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", - "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", - "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@stencil/core": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.12.2.tgz", - "integrity": "sha512-WEMpoqwMV4hY/ab2z9NxRhSeZwuKEugjyn6Vd+qA9xqZh6VNUL27QbP8vCa7IeqD4Zql4JBtKu3lVuBHutWE6w==", - "bin": { - "stencil": "bin/stencil" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.10.0" - } - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true - }, - "node_modules/@vitejs/plugin-vue": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.1.tgz", - "integrity": "sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw==", - "dev": true, - "dependencies": { - "@rolldown/pluginutils": "1.0.0-beta.29" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "peerDependencies": { - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0", - "vue": "^3.2.25" - } - }, - "node_modules/@volar/language-core": { - "version": "2.4.23", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.23.tgz", - "integrity": "sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==", - "dev": true, - "dependencies": { - "@volar/source-map": "2.4.23" - } - }, - "node_modules/@volar/source-map": { - "version": "2.4.23", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.23.tgz", - "integrity": "sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==", - "dev": true - }, - "node_modules/@volar/typescript": { - "version": "2.4.23", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.23.tgz", - "integrity": "sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==", - "dev": true, - "dependencies": { - "@volar/language-core": "2.4.23", - "path-browserify": "^1.0.1", - "vscode-uri": "^3.0.8" - } - }, - "node_modules/@vue/compiler-core": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.19.tgz", - "integrity": "sha512-/afpyvlkrSNYbPo94Qu8GtIOWS+g5TRdOvs6XZNw6pWQQmj5pBgSZvEPOIZlqWq0YvoUhDDQaQ2TnzuJdOV4hA==", - "dependencies": { - "@babel/parser": "^7.28.3", - "@vue/shared": "3.5.19", - "entities": "^4.5.0", - "estree-walker": "^2.0.2", - "source-map-js": "^1.2.1" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.19.tgz", - "integrity": "sha512-Drs6rPHQZx/pN9S6ml3Z3K/TWCIRPvzG2B/o5kFK9X0MNHt8/E+38tiRfojufrYBfA6FQUFB2qBBRXlcSXWtOA==", - "dependencies": { - "@vue/compiler-core": "3.5.19", - "@vue/shared": "3.5.19" - } - }, - "node_modules/@vue/compiler-sfc": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.19.tgz", - "integrity": "sha512-YWCm1CYaJ+2RvNmhCwI7t3I3nU+hOrWGWMsn+Z/kmm1jy5iinnVtlmkiZwbLlbV1SRizX7vHsc0/bG5dj0zRTg==", - "dependencies": { - "@babel/parser": "^7.28.3", - "@vue/compiler-core": "3.5.19", - "@vue/compiler-dom": "3.5.19", - "@vue/compiler-ssr": "3.5.19", - "@vue/shared": "3.5.19", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.17", - "postcss": "^8.5.6", - "source-map-js": "^1.2.1" - } - }, - "node_modules/@vue/compiler-ssr": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.19.tgz", - "integrity": "sha512-/wx0VZtkWOPdiQLWPeQeqpHWR/LuNC7bHfSX7OayBTtUy8wur6vT6EQIX6Et86aED6J+y8tTw43qo2uoqGg5sw==", - "dependencies": { - "@vue/compiler-dom": "3.5.19", - "@vue/shared": "3.5.19" - } - }, - "node_modules/@vue/compiler-vue2": { - "version": "2.7.16", - "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", - "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", - "dev": true, - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, - "node_modules/@vue/devtools-api": { - "version": "6.6.4", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", - "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" - }, - "node_modules/@vue/language-core": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.6.tgz", - "integrity": "sha512-e2RRzYWm+qGm8apUHW1wA5RQxzNhkqbbKdbKhiDUcmMrNAZGyM8aTiL3UrTqkaFI5s7wJRGGrp4u3jgusuBp2A==", - "dev": true, - "dependencies": { - "@volar/language-core": "2.4.23", - "@vue/compiler-dom": "^3.5.0", - "@vue/compiler-vue2": "^2.7.16", - "@vue/shared": "^3.5.0", - "alien-signals": "^2.0.5", - "muggle-string": "^0.4.1", - "path-browserify": "^1.0.1", - "picomatch": "^4.0.2" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@vue/reactivity": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.19.tgz", - "integrity": "sha512-4bueZg2qs5MSsK2dQk3sssV0cfvxb/QZntTC8v7J448GLgmfPkQ+27aDjlt40+XFqOwUq5yRxK5uQh14Fc9eVA==", - "dependencies": { - "@vue/shared": "3.5.19" - } - }, - "node_modules/@vue/runtime-core": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.19.tgz", - "integrity": "sha512-TaooCr8Hge1sWjLSyhdubnuofs3shhzZGfyD11gFolZrny76drPwBVQj28/z/4+msSFb18tOIg6VVVgf9/IbIA==", - "dependencies": { - "@vue/reactivity": "3.5.19", - "@vue/shared": "3.5.19" - } - }, - "node_modules/@vue/runtime-dom": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.19.tgz", - "integrity": "sha512-qmahqeok6ztuUTmV8lqd7N9ymbBzctNF885n8gL3xdCC1u2RnM/coX16Via0AiONQXUoYpxPojL3U1IsDgSWUQ==", - "dependencies": { - "@vue/reactivity": "3.5.19", - "@vue/runtime-core": "3.5.19", - "@vue/shared": "3.5.19", - "csstype": "^3.1.3" - } - }, - "node_modules/@vue/server-renderer": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.19.tgz", - "integrity": "sha512-ZJ/zV9SQuaIO+BEEVq/2a6fipyrSYfjKMU3267bPUk+oTx/hZq3RzV7VCh0Unlppt39Bvh6+NzxeopIFv4HJNg==", - "dependencies": { - "@vue/compiler-ssr": "3.5.19", - "@vue/shared": "3.5.19" - }, - "peerDependencies": { - "vue": "3.5.19" - } - }, - "node_modules/@vue/shared": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.19.tgz", - "integrity": "sha512-IhXCOn08wgKrLQxRFKKlSacWg4Goi1BolrdEeLYn6tgHjJNXVrWJ5nzoxZqNwl5p88aLlQ8LOaoMa3AYvaKJ/Q==" - }, - "node_modules/alien-signals": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-2.0.5.tgz", - "integrity": "sha512-PdJB6+06nUNAClInE3Dweq7/2xVAYM64vvvS1IHVHSJmgeOtEdrAGyp7Z2oJtYm0B342/Exd2NT0uMJaThcjLQ==", - "dev": true - }, - "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/de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", - "dev": true - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/esbuild": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", - "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.0", - "@esbuild/android-arm": "0.25.0", - "@esbuild/android-arm64": "0.25.0", - "@esbuild/android-x64": "0.25.0", - "@esbuild/darwin-arm64": "0.25.0", - "@esbuild/darwin-x64": "0.25.0", - "@esbuild/freebsd-arm64": "0.25.0", - "@esbuild/freebsd-x64": "0.25.0", - "@esbuild/linux-arm": "0.25.0", - "@esbuild/linux-arm64": "0.25.0", - "@esbuild/linux-ia32": "0.25.0", - "@esbuild/linux-loong64": "0.25.0", - "@esbuild/linux-mips64el": "0.25.0", - "@esbuild/linux-ppc64": "0.25.0", - "@esbuild/linux-riscv64": "0.25.0", - "@esbuild/linux-s390x": "0.25.0", - "@esbuild/linux-x64": "0.25.0", - "@esbuild/netbsd-arm64": "0.25.0", - "@esbuild/netbsd-x64": "0.25.0", - "@esbuild/openbsd-arm64": "0.25.0", - "@esbuild/openbsd-x64": "0.25.0", - "@esbuild/sunos-x64": "0.25.0", - "@esbuild/win32-arm64": "0.25.0", - "@esbuild/win32-ia32": "0.25.0", - "@esbuild/win32-x64": "0.25.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, - "node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/ionicons": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-7.2.2.tgz", - "integrity": "sha512-I3iYIfc9Q9FRifWyFSwTAvbEABWlWY32i0sAVDDPGYnaIZVugkLCZFbEcrphW6ixVPg8tt1oLwalo/JJwbEqnA==", - "dependencies": { - "@stencil/core": "^4.0.3" - } - }, - "node_modules/magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, - "node_modules/muggle-string": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", - "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "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/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "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": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "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.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/rollup": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", - "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", - "dev": true, - "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.46.2", - "@rollup/rollup-android-arm64": "4.46.2", - "@rollup/rollup-darwin-arm64": "4.46.2", - "@rollup/rollup-darwin-x64": "4.46.2", - "@rollup/rollup-freebsd-arm64": "4.46.2", - "@rollup/rollup-freebsd-x64": "4.46.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", - "@rollup/rollup-linux-arm-musleabihf": "4.46.2", - "@rollup/rollup-linux-arm64-gnu": "4.46.2", - "@rollup/rollup-linux-arm64-musl": "4.46.2", - "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", - "@rollup/rollup-linux-ppc64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-musl": "4.46.2", - "@rollup/rollup-linux-s390x-gnu": "4.46.2", - "@rollup/rollup-linux-x64-gnu": "4.46.2", - "@rollup/rollup-linux-x64-musl": "4.46.2", - "@rollup/rollup-win32-arm64-msvc": "4.46.2", - "@rollup/rollup-win32-ia32-msvc": "4.46.2", - "@rollup/rollup-win32-x64-msvc": "4.46.2", - "fsevents": "~2.3.2" - } - }, - "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/tinyglobby": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", - "dev": true, - "dependencies": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/typescript": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", - "devOptional": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/vite": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", - "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==", - "dev": true, - "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.5.0", - "picomatch": "^4.0.3", - "postcss": "^8.5.6", - "rollup": "^4.43.0", - "tinyglobby": "^0.2.14" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^20.19.0 || >=22.12.0", - "jiti": ">=1.21.0", - "less": "^4.0.0", - "lightningcss": "^1.21.0", - "sass": "^1.70.0", - "sass-embedded": "^1.70.0", - "stylus": ">=0.54.8", - "sugarss": "^5.0.0", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vscode-uri": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", - "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", - "dev": true - }, - "node_modules/vue": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.19.tgz", - "integrity": "sha512-ZRh0HTmw6KChRYWgN8Ox/wi7VhpuGlvMPrHjIsdRbzKNgECFLzy+dKL5z9yGaBSjCpmcfJCbh3I1tNSRmBz2tg==", - "dependencies": { - "@vue/compiler-dom": "3.5.19", - "@vue/compiler-sfc": "3.5.19", - "@vue/runtime-dom": "3.5.19", - "@vue/server-renderer": "3.5.19", - "@vue/shared": "3.5.19" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/vue-router": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.1.tgz", - "integrity": "sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==", - "dependencies": { - "@vue/devtools-api": "^6.6.4" - }, - "funding": { - "url": "https://github.com/sponsors/posva" - }, - "peerDependencies": { - "vue": "^3.2.0" - } - }, - "node_modules/vue-tsc": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.6.tgz", - "integrity": "sha512-Tbs8Whd43R2e2nxez4WXPvvdjGbW24rOSgRhLOHXzWiT4pcP4G7KeWh0YCn18rF4bVwv7tggLLZ6MJnO6jXPBg==", - "dev": true, - "dependencies": { - "@volar/typescript": "2.4.23", - "@vue/language-core": "3.0.6" - }, - "bin": { - "vue-tsc": "bin/vue-tsc.js" - }, - "peerDependencies": { - "typescript": ">=5.0.0" - } - } - }, - "dependencies": { - "@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==" - }, - "@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==" - }, - "@babel/parser": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", - "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", - "requires": { - "@babel/types": "^7.28.2" - } - }, - "@babel/types": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", - "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", - "requires": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" - } - }, - "@esbuild/aix-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", - "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz", - "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", - "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz", - "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", - "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", - "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", - "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", - "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", - "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", - "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", - "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", - "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", - "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", - "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", - "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", - "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", - "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", - "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", - "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", - "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", - "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", - "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", - "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", - "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", - "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", - "dev": true, - "optional": true - }, - "@ionic/core": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-7.8.6.tgz", - "integrity": "sha512-HAYZdEmeJgOdo2kDlZkcCGHb+zs/vjU6iv4skbVBL7y+OnSv/oC2u83Yee8S3/aY0YAxkyBgu7hLTYH13Zc2Aw==", - "requires": { - "@stencil/core": "^4.12.2", - "ionicons": "^7.2.2", - "tslib": "^2.1.0" - } - }, - "@ionic/vue": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-7.8.6.tgz", - "integrity": "sha512-WVngbTA08SlVbyj4rS9krVJ2Z9Uv/MG1xItDS7WqMPeVwRNGaOiw6MkxjXRcpIz6qE0b+6EjIcte5h4nGRiDCw==", - "requires": { - "@ionic/core": "7.8.6", - "ionicons": "^7.0.0" - } - }, - "@ionic/vue-router": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-7.8.6.tgz", - "integrity": "sha512-YVGqO6yyNBrwxYJfulPCLy6XBBJ0eDiy97XxLbHlaGx9WZJpf+NE+NA7N4Zj+IMTopCAX+YU/PS70OoTM7hITQ==", - "requires": { - "@ionic/vue": "7.8.6" - } - }, - "@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==" - }, - "@rolldown/pluginutils": { - "version": "1.0.0-beta.29", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.29.tgz", - "integrity": "sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==", - "dev": true - }, - "@rollup/rollup-android-arm-eabi": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", - "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-android-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", - "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-darwin-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", - "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-darwin-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", - "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-freebsd-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", - "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", - "dev": true, - "optional": true - }, - "@rollup/rollup-freebsd-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", - "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", - "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm-musleabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", - "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", - "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", - "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", - "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-ppc64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", - "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", - "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-riscv64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", - "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-s390x-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", - "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-x64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", - "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-x64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", - "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-arm64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", - "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-ia32-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", - "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-x64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", - "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", - "dev": true, - "optional": true - }, - "@stencil/core": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.12.2.tgz", - "integrity": "sha512-WEMpoqwMV4hY/ab2z9NxRhSeZwuKEugjyn6Vd+qA9xqZh6VNUL27QbP8vCa7IeqD4Zql4JBtKu3lVuBHutWE6w==" - }, - "@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true - }, - "@vitejs/plugin-vue": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.1.tgz", - "integrity": "sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw==", - "dev": true, - "requires": { - "@rolldown/pluginutils": "1.0.0-beta.29" - } - }, - "@volar/language-core": { - "version": "2.4.23", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.23.tgz", - "integrity": "sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==", - "dev": true, - "requires": { - "@volar/source-map": "2.4.23" - } - }, - "@volar/source-map": { - "version": "2.4.23", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.23.tgz", - "integrity": "sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==", - "dev": true - }, - "@volar/typescript": { - "version": "2.4.23", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.23.tgz", - "integrity": "sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==", - "dev": true, - "requires": { - "@volar/language-core": "2.4.23", - "path-browserify": "^1.0.1", - "vscode-uri": "^3.0.8" - } - }, - "@vue/compiler-core": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.19.tgz", - "integrity": "sha512-/afpyvlkrSNYbPo94Qu8GtIOWS+g5TRdOvs6XZNw6pWQQmj5pBgSZvEPOIZlqWq0YvoUhDDQaQ2TnzuJdOV4hA==", - "requires": { - "@babel/parser": "^7.28.3", - "@vue/shared": "3.5.19", - "entities": "^4.5.0", - "estree-walker": "^2.0.2", - "source-map-js": "^1.2.1" - } - }, - "@vue/compiler-dom": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.19.tgz", - "integrity": "sha512-Drs6rPHQZx/pN9S6ml3Z3K/TWCIRPvzG2B/o5kFK9X0MNHt8/E+38tiRfojufrYBfA6FQUFB2qBBRXlcSXWtOA==", - "requires": { - "@vue/compiler-core": "3.5.19", - "@vue/shared": "3.5.19" - } - }, - "@vue/compiler-sfc": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.19.tgz", - "integrity": "sha512-YWCm1CYaJ+2RvNmhCwI7t3I3nU+hOrWGWMsn+Z/kmm1jy5iinnVtlmkiZwbLlbV1SRizX7vHsc0/bG5dj0zRTg==", - "requires": { - "@babel/parser": "^7.28.3", - "@vue/compiler-core": "3.5.19", - "@vue/compiler-dom": "3.5.19", - "@vue/compiler-ssr": "3.5.19", - "@vue/shared": "3.5.19", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.17", - "postcss": "^8.5.6", - "source-map-js": "^1.2.1" - } - }, - "@vue/compiler-ssr": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.19.tgz", - "integrity": "sha512-/wx0VZtkWOPdiQLWPeQeqpHWR/LuNC7bHfSX7OayBTtUy8wur6vT6EQIX6Et86aED6J+y8tTw43qo2uoqGg5sw==", - "requires": { - "@vue/compiler-dom": "3.5.19", - "@vue/shared": "3.5.19" - } - }, - "@vue/compiler-vue2": { - "version": "2.7.16", - "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", - "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", - "dev": true, - "requires": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, - "@vue/devtools-api": { - "version": "6.6.4", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", - "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" - }, - "@vue/language-core": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.6.tgz", - "integrity": "sha512-e2RRzYWm+qGm8apUHW1wA5RQxzNhkqbbKdbKhiDUcmMrNAZGyM8aTiL3UrTqkaFI5s7wJRGGrp4u3jgusuBp2A==", - "dev": true, - "requires": { - "@volar/language-core": "2.4.23", - "@vue/compiler-dom": "^3.5.0", - "@vue/compiler-vue2": "^2.7.16", - "@vue/shared": "^3.5.0", - "alien-signals": "^2.0.5", - "muggle-string": "^0.4.1", - "path-browserify": "^1.0.1", - "picomatch": "^4.0.2" - } - }, - "@vue/reactivity": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.19.tgz", - "integrity": "sha512-4bueZg2qs5MSsK2dQk3sssV0cfvxb/QZntTC8v7J448GLgmfPkQ+27aDjlt40+XFqOwUq5yRxK5uQh14Fc9eVA==", - "requires": { - "@vue/shared": "3.5.19" - } - }, - "@vue/runtime-core": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.19.tgz", - "integrity": "sha512-TaooCr8Hge1sWjLSyhdubnuofs3shhzZGfyD11gFolZrny76drPwBVQj28/z/4+msSFb18tOIg6VVVgf9/IbIA==", - "requires": { - "@vue/reactivity": "3.5.19", - "@vue/shared": "3.5.19" - } - }, - "@vue/runtime-dom": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.19.tgz", - "integrity": "sha512-qmahqeok6ztuUTmV8lqd7N9ymbBzctNF885n8gL3xdCC1u2RnM/coX16Via0AiONQXUoYpxPojL3U1IsDgSWUQ==", - "requires": { - "@vue/reactivity": "3.5.19", - "@vue/runtime-core": "3.5.19", - "@vue/shared": "3.5.19", - "csstype": "^3.1.3" - } - }, - "@vue/server-renderer": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.19.tgz", - "integrity": "sha512-ZJ/zV9SQuaIO+BEEVq/2a6fipyrSYfjKMU3267bPUk+oTx/hZq3RzV7VCh0Unlppt39Bvh6+NzxeopIFv4HJNg==", - "requires": { - "@vue/compiler-ssr": "3.5.19", - "@vue/shared": "3.5.19" - } - }, - "@vue/shared": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.19.tgz", - "integrity": "sha512-IhXCOn08wgKrLQxRFKKlSacWg4Goi1BolrdEeLYn6tgHjJNXVrWJ5nzoxZqNwl5p88aLlQ8LOaoMa3AYvaKJ/Q==" - }, - "alien-signals": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-2.0.5.tgz", - "integrity": "sha512-PdJB6+06nUNAClInE3Dweq7/2xVAYM64vvvS1IHVHSJmgeOtEdrAGyp7Z2oJtYm0B342/Exd2NT0uMJaThcjLQ==", - "dev": true - }, - "csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - }, - "de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", - "dev": true - }, - "entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" - }, - "esbuild": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", - "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", - "dev": true, - "requires": { - "@esbuild/aix-ppc64": "0.25.0", - "@esbuild/android-arm": "0.25.0", - "@esbuild/android-arm64": "0.25.0", - "@esbuild/android-x64": "0.25.0", - "@esbuild/darwin-arm64": "0.25.0", - "@esbuild/darwin-x64": "0.25.0", - "@esbuild/freebsd-arm64": "0.25.0", - "@esbuild/freebsd-x64": "0.25.0", - "@esbuild/linux-arm": "0.25.0", - "@esbuild/linux-arm64": "0.25.0", - "@esbuild/linux-ia32": "0.25.0", - "@esbuild/linux-loong64": "0.25.0", - "@esbuild/linux-mips64el": "0.25.0", - "@esbuild/linux-ppc64": "0.25.0", - "@esbuild/linux-riscv64": "0.25.0", - "@esbuild/linux-s390x": "0.25.0", - "@esbuild/linux-x64": "0.25.0", - "@esbuild/netbsd-arm64": "0.25.0", - "@esbuild/netbsd-x64": "0.25.0", - "@esbuild/openbsd-arm64": "0.25.0", - "@esbuild/openbsd-x64": "0.25.0", - "@esbuild/sunos-x64": "0.25.0", - "@esbuild/win32-arm64": "0.25.0", - "@esbuild/win32-ia32": "0.25.0", - "@esbuild/win32-x64": "0.25.0" - } - }, - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, - "fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "requires": {} - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "optional": true - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "ionicons": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-7.2.2.tgz", - "integrity": "sha512-I3iYIfc9Q9FRifWyFSwTAvbEABWlWY32i0sAVDDPGYnaIZVugkLCZFbEcrphW6ixVPg8tt1oLwalo/JJwbEqnA==", - "requires": { - "@stencil/core": "^4.0.3" - } - }, - "magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", - "requires": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, - "muggle-string": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", - "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", - "dev": true - }, - "nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==" - }, - "path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" - }, - "picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true - }, - "postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "requires": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - } - }, - "rollup": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", - "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", - "dev": true, - "requires": { - "@rollup/rollup-android-arm-eabi": "4.46.2", - "@rollup/rollup-android-arm64": "4.46.2", - "@rollup/rollup-darwin-arm64": "4.46.2", - "@rollup/rollup-darwin-x64": "4.46.2", - "@rollup/rollup-freebsd-arm64": "4.46.2", - "@rollup/rollup-freebsd-x64": "4.46.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", - "@rollup/rollup-linux-arm-musleabihf": "4.46.2", - "@rollup/rollup-linux-arm64-gnu": "4.46.2", - "@rollup/rollup-linux-arm64-musl": "4.46.2", - "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", - "@rollup/rollup-linux-ppc64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-musl": "4.46.2", - "@rollup/rollup-linux-s390x-gnu": "4.46.2", - "@rollup/rollup-linux-x64-gnu": "4.46.2", - "@rollup/rollup-linux-x64-musl": "4.46.2", - "@rollup/rollup-win32-arm64-msvc": "4.46.2", - "@rollup/rollup-win32-ia32-msvc": "4.46.2", - "@rollup/rollup-win32-x64-msvc": "4.46.2", - "@types/estree": "1.0.8", - "fsevents": "~2.3.2" - } - }, - "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==" - }, - "tinyglobby": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", - "dev": true, - "requires": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" - } - }, - "tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "typescript": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", - "devOptional": true - }, - "vite": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", - "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==", - "dev": true, - "requires": { - "esbuild": "^0.25.0", - "fdir": "^6.5.0", - "fsevents": "~2.3.3", - "picomatch": "^4.0.3", - "postcss": "^8.5.6", - "rollup": "^4.43.0", - "tinyglobby": "^0.2.14" - } - }, - "vscode-uri": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", - "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", - "dev": true - }, - "vue": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.19.tgz", - "integrity": "sha512-ZRh0HTmw6KChRYWgN8Ox/wi7VhpuGlvMPrHjIsdRbzKNgECFLzy+dKL5z9yGaBSjCpmcfJCbh3I1tNSRmBz2tg==", - "requires": { - "@vue/compiler-dom": "3.5.19", - "@vue/compiler-sfc": "3.5.19", - "@vue/runtime-dom": "3.5.19", - "@vue/server-renderer": "3.5.19", - "@vue/shared": "3.5.19" - } - }, - "vue-router": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.1.tgz", - "integrity": "sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==", - "requires": { - "@vue/devtools-api": "^6.6.4" - } - }, - "vue-tsc": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.6.tgz", - "integrity": "sha512-Tbs8Whd43R2e2nxez4WXPvvdjGbW24rOSgRhLOHXzWiT4pcP4G7KeWh0YCn18rF4bVwv7tggLLZ6MJnO6jXPBg==", - "dev": true, - "requires": { - "@volar/typescript": "2.4.23", - "@vue/language-core": "3.0.6" - } - } - } -} diff --git a/static/code/stackblitz/v7/vue/package.json b/static/code/stackblitz/v7/vue/package.json index 3cdc1a52022..4dd34af1be2 100644 --- a/static/code/stackblitz/v7/vue/package.json +++ b/static/code/stackblitz/v7/vue/package.json @@ -15,7 +15,7 @@ }, "devDependencies": { "@vitejs/plugin-vue": "^6.0.0", - "typescript": "^5.0.0", + "typescript": "~5.9.0", "vite": "^7.0.0", "vue-tsc": "^3.0.0" } diff --git a/static/code/stackblitz/v8/angular/package.json b/static/code/stackblitz/v8/angular/package.json index b37a941fdd7..1495ebfb5f1 100644 --- a/static/code/stackblitz/v8/angular/package.json +++ b/static/code/stackblitz/v8/angular/package.json @@ -27,6 +27,6 @@ "@angular/build": "^20.0.0", "@angular/cli": "^20.0.0", "@angular/compiler-cli": "^20.0.0", - "typescript": "^5.8.0" + "typescript": "~5.9.0" } } diff --git a/static/code/stackblitz/v8/angular/tsconfig.json b/static/code/stackblitz/v8/angular/tsconfig.json index f46b98bad6e..c19ed85f790 100644 --- a/static/code/stackblitz/v8/angular/tsconfig.json +++ b/static/code/stackblitz/v8/angular/tsconfig.json @@ -14,6 +14,7 @@ "declaration": false, "experimentalDecorators": true, "moduleResolution": "node", + "skipLibCheck": true, "importHelpers": true, "target": "es2022", "module": "es2020", diff --git a/static/code/stackblitz/v8/html/package.json b/static/code/stackblitz/v8/html/package.json index f852c07492c..f8ee2f25047 100644 --- a/static/code/stackblitz/v8/html/package.json +++ b/static/code/stackblitz/v8/html/package.json @@ -13,7 +13,7 @@ "ionicons": "8.0.13" }, "devDependencies": { - "typescript": "^5.0.0", + "typescript": "~5.9.0", "vite": "^7.0.0", "vite-plugin-static-copy": "^3.1.0" } diff --git a/static/code/stackblitz/v8/react/package-lock.json b/static/code/stackblitz/v8/react/package-lock.json deleted file mode 100644 index 5bf234cec2a..00000000000 --- a/static/code/stackblitz/v8/react/package-lock.json +++ /dev/null @@ -1,2978 +0,0 @@ -{ - "name": "vite-react-typescript", - "version": "0.1.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "vite-react-typescript", - "version": "0.1.0", - "dependencies": { - "@ionic/react": "8.7.3", - "@ionic/react-router": "8.7.3", - "@types/node": "^22.0.0", - "@types/react": "^19.0.0", - "@types/react-dom": "^19.0.0", - "@types/react-router": "^5.1.11", - "@types/react-router-dom": "^5.1.7", - "@vitejs/plugin-react": "^5.0.0", - "clsx": "^2.0.0", - "react": "^19.0.0", - "react-dom": "^19.0.0", - "react-router": "^5.2.0", - "react-router-dom": "^5.2.0", - "typescript": "^5.2.2", - "vite": "^7.0.0", - "web-vitals": "^5.0.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", - "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", - "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.3", - "@babel/parser": "^7.28.3", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.3", - "@babel/types": "^7.28.2", - "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/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", - "dependencies": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", - "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", - "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", - "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", - "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", - "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", - "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.28.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", - "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", - "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", - "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", - "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", - "dependencies": { - "@babel/types": "^7.28.2" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", - "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", - "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", - "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", - "dependencies": { - "regenerator-runtime": "^0.13.11" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", - "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", - "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.3", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", - "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", - "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz", - "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", - "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz", - "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", - "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", - "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", - "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", - "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", - "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", - "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", - "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", - "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", - "cpu": [ - "loong64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", - "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", - "cpu": [ - "mips64el" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", - "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", - "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", - "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", - "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", - "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", - "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", - "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", - "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", - "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", - "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", - "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", - "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@ionic/core": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.7.3.tgz", - "integrity": "sha512-KdyMxpMDQj+uqpztpK6yvN/T96hqcDiGXQ4T+aAZ+LW3wV3+0it6/rbh9C1B/wCl4Isnm4IRltPabgEfNJ50nw==", - "dependencies": { - "@stencil/core": "4.36.2", - "ionicons": "^8.0.13", - "tslib": "^2.1.0" - } - }, - "node_modules/@ionic/react": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.7.3.tgz", - "integrity": "sha512-ArByomMeBNI1HpvfYc6E5E76wO2agg87LxLaNI13PYTb1UpFTw6vf7P+lU+cQc9roaC48KQwV0Ndyd3XmkkyfA==", - "dependencies": { - "@ionic/core": "8.7.3", - "ionicons": "^8.0.13", - "tslib": "*" - }, - "peerDependencies": { - "react": ">=16.8.6", - "react-dom": ">=16.8.6" - } - }, - "node_modules/@ionic/react-router": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.7.3.tgz", - "integrity": "sha512-NApR9HXQyMhF/OpY2NKlOyBzyG7dke9vREzx10M9KJfK+a3vCaeh82GciVFOJr+Jo7VDMUfjXpTifPHRjbdWoA==", - "dependencies": { - "@ionic/react": "8.7.3", - "tslib": "*" - }, - "peerDependencies": { - "react": ">=16.8.6", - "react-dom": ">=16.8.6", - "react-router": "^5.0.1", - "react-router-dom": "^5.0.1" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", - "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", - "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.29", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", - "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.32", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.32.tgz", - "integrity": "sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==" - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", - "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", - "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", - "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", - "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", - "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", - "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", - "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", - "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", - "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", - "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", - "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", - "cpu": [ - "loong64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", - "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", - "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", - "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", - "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", - "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", - "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", - "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", - "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", - "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@stencil/core": { - "version": "4.36.2", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.36.2.tgz", - "integrity": "sha512-PRFSpxNzX9Oi0Wfh02asztN9Sgev/MacfZwmd+VVyE6ZxW+a/kEpAYZhzGAmE+/aKVOGYuug7R9SulanYGxiDQ==", - "bin": { - "stencil": "bin/stencil" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.10.0" - }, - "optionalDependencies": { - "@rollup/rollup-darwin-arm64": "4.34.9", - "@rollup/rollup-darwin-x64": "4.34.9", - "@rollup/rollup-linux-arm64-gnu": "4.34.9", - "@rollup/rollup-linux-arm64-musl": "4.34.9", - "@rollup/rollup-linux-x64-gnu": "4.34.9", - "@rollup/rollup-linux-x64-musl": "4.34.9", - "@rollup/rollup-win32-arm64-msvc": "4.34.9", - "@rollup/rollup-win32-x64-msvc": "4.34.9" - } - }, - "node_modules/@stencil/core/node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.9.tgz", - "integrity": "sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@stencil/core/node_modules/@rollup/rollup-darwin-x64": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.9.tgz", - "integrity": "sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@stencil/core/node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.9.tgz", - "integrity": "sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@stencil/core/node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.9.tgz", - "integrity": "sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@stencil/core/node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.9.tgz", - "integrity": "sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@stencil/core/node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.9.tgz", - "integrity": "sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@stencil/core/node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.9.tgz", - "integrity": "sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@stencil/core/node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.9.tgz", - "integrity": "sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "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.7", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", - "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", - "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.4", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", - "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==" - }, - "node_modules/@types/history": { - "version": "4.7.11", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" - }, - "node_modules/@types/node": { - "version": "22.17.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.2.tgz", - "integrity": "sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w==", - "dependencies": { - "undici-types": "~6.21.0" - } - }, - "node_modules/@types/react": { - "version": "19.1.11", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.11.tgz", - "integrity": "sha512-lr3jdBw/BGj49Eps7EvqlUaoeA0xpj3pc0RoJkHpYaCHkVK7i28dKyImLQb3JVlqs3aYSXf7qYuWOW/fgZnTXQ==", - "dependencies": { - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "19.1.7", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.7.tgz", - "integrity": "sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==", - "peerDependencies": { - "@types/react": "^19.0.0" - } - }, - "node_modules/@types/react-router": { - "version": "5.1.20", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", - "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*" - } - }, - "node_modules/@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", - "dependencies": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, - "node_modules/@vitejs/plugin-react": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.1.tgz", - "integrity": "sha512-DE4UNaBXwtVoDJ0ccBdLVjFTWL70NRuWNCxEieTI3lrq9ORB9aOCQEKstwDXBl87NvFdbqh/p7eINGyj0BthJA==", - "dependencies": { - "@babel/core": "^7.28.3", - "@babel/plugin-transform-react-jsx-self": "^7.27.1", - "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.32", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.17.0" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" - } - }, - "node_modules/browserslist": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", - "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", - "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.30001718", - "electron-to-chromium": "^1.5.160", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.3" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001722", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001722.tgz", - "integrity": "sha512-DCQHBBZtiK6JVkAGw7drvAMK0Q0POD/xZvEmDp6baiMMP6QXXk9HpD6mNYBZWhOPG6LvIDb82ITqtWjhDckHCA==", - "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/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "engines": { - "node": ">=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/csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" - }, - "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/electron-to-chromium": { - "version": "1.5.167", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.167.tgz", - "integrity": "sha512-LxcRvnYO5ez2bMOFpbuuVuAI5QNeY1ncVytE/KXaL6ZNfzX1yPlAO0nSOyIHx2fVAuUprMqPs/TdVhUFZy7SIQ==" - }, - "node_modules/esbuild": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", - "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.0", - "@esbuild/android-arm": "0.25.0", - "@esbuild/android-arm64": "0.25.0", - "@esbuild/android-x64": "0.25.0", - "@esbuild/darwin-arm64": "0.25.0", - "@esbuild/darwin-x64": "0.25.0", - "@esbuild/freebsd-arm64": "0.25.0", - "@esbuild/freebsd-x64": "0.25.0", - "@esbuild/linux-arm": "0.25.0", - "@esbuild/linux-arm64": "0.25.0", - "@esbuild/linux-ia32": "0.25.0", - "@esbuild/linux-loong64": "0.25.0", - "@esbuild/linux-mips64el": "0.25.0", - "@esbuild/linux-ppc64": "0.25.0", - "@esbuild/linux-riscv64": "0.25.0", - "@esbuild/linux-s390x": "0.25.0", - "@esbuild/linux-x64": "0.25.0", - "@esbuild/netbsd-arm64": "0.25.0", - "@esbuild/netbsd-x64": "0.25.0", - "@esbuild/openbsd-arm64": "0.25.0", - "@esbuild/openbsd-x64": "0.25.0", - "@esbuild/sunos-x64": "0.25.0", - "@esbuild/win32-arm64": "0.25.0", - "@esbuild/win32-ia32": "0.25.0", - "@esbuild/win32-x64": "0.25.0" - } - }, - "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/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "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/history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "dependencies": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - } - }, - "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/ionicons": { - "version": "8.0.13", - "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-8.0.13.tgz", - "integrity": "sha512-2QQVyG2P4wszne79jemMjWYLp0DBbDhr4/yFroPCxvPP1wtMxgdIV3l5n+XZ5E9mgoXU79w7yTWpm2XzJsISxQ==", - "dependencies": { - "@stencil/core": "^4.35.3" - } - }, - "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/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/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/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/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/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/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "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/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/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/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": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "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.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "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/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/react": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", - "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", - "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", - "dependencies": { - "scheduler": "^0.26.0" - }, - "peerDependencies": { - "react": "^19.1.1" - } - }, - "node_modules/react-refresh": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", - "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-router": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", - "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/react-router-dom": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", - "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", - "dependencies": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.3.4", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "peerDependencies": { - "react": ">=15" - } - }, - "node_modules/react-router/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/react-router/node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/react-router/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/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/resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" - }, - "node_modules/rollup": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", - "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", - "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.46.2", - "@rollup/rollup-android-arm64": "4.46.2", - "@rollup/rollup-darwin-arm64": "4.46.2", - "@rollup/rollup-darwin-x64": "4.46.2", - "@rollup/rollup-freebsd-arm64": "4.46.2", - "@rollup/rollup-freebsd-x64": "4.46.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", - "@rollup/rollup-linux-arm-musleabihf": "4.46.2", - "@rollup/rollup-linux-arm64-gnu": "4.46.2", - "@rollup/rollup-linux-arm64-musl": "4.46.2", - "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", - "@rollup/rollup-linux-ppc64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-musl": "4.46.2", - "@rollup/rollup-linux-s390x-gnu": "4.46.2", - "@rollup/rollup-linux-x64-gnu": "4.46.2", - "@rollup/rollup-linux-x64-musl": "4.46.2", - "@rollup/rollup-win32-arm64-msvc": "4.46.2", - "@rollup/rollup-win32-ia32-msvc": "4.46.2", - "@rollup/rollup-win32-x64-msvc": "4.46.2", - "fsevents": "~2.3.2" - } - }, - "node_modules/scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==" - }, - "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/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/tiny-invariant": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", - "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" - }, - "node_modules/tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, - "node_modules/tinyglobby": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", - "dependencies": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "node_modules/typescript": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==" - }, - "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", - "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/value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" - }, - "node_modules/vite": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", - "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==", - "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.5.0", - "picomatch": "^4.0.3", - "postcss": "^8.5.6", - "rollup": "^4.43.0", - "tinyglobby": "^0.2.14" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^20.19.0 || >=22.12.0", - "jiti": ">=1.21.0", - "less": "^4.0.0", - "lightningcss": "^1.21.0", - "sass": "^1.70.0", - "sass-embedded": "^1.70.0", - "stylus": ">=0.54.8", - "sugarss": "^5.0.0", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/web-vitals": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-5.1.0.tgz", - "integrity": "sha512-ArI3kx5jI0atlTtmV0fWU3fjpLmq/nD3Zr1iFFlJLaqa5wLBkUSzINwBPySCX/8jRyjlmy1Volw1kz1g9XE4Jg==" - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", - "requires": { - "@babel/helper-validator-identifier": "^7.27.1", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - } - }, - "@babel/compat-data": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", - "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==" - }, - "@babel/core": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", - "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.3", - "@babel/parser": "^7.28.3", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.3", - "@babel/types": "^7.28.2", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - } - }, - "@babel/generator": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", - "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", - "requires": { - "@babel/parser": "^7.28.3", - "@babel/types": "^7.28.2", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", - "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", - "requires": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - } - }, - "@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==" - }, - "@babel/helper-module-imports": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", - "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", - "requires": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" - } - }, - "@babel/helper-module-transforms": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", - "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", - "requires": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.28.3" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", - "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==" - }, - "@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==" - }, - "@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==" - }, - "@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==" - }, - "@babel/helpers": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", - "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", - "requires": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2" - } - }, - "@babel/parser": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", - "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", - "requires": { - "@babel/types": "^7.28.2" - } - }, - "@babel/plugin-transform-react-jsx-self": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", - "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", - "requires": { - "@babel/helper-plugin-utils": "^7.27.1" - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", - "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", - "requires": { - "@babel/helper-plugin-utils": "^7.27.1" - } - }, - "@babel/runtime": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", - "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", - "requires": { - "regenerator-runtime": "^0.13.11" - } - }, - "@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", - "requires": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" - } - }, - "@babel/traverse": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", - "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", - "requires": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.3", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.3", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2", - "debug": "^4.3.1" - } - }, - "@babel/types": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", - "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", - "requires": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" - } - }, - "@esbuild/aix-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", - "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", - "optional": true - }, - "@esbuild/android-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz", - "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", - "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz", - "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", - "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", - "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", - "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", - "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", - "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", - "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", - "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", - "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", - "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", - "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", - "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", - "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", - "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", - "optional": true - }, - "@esbuild/netbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", - "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", - "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", - "optional": true - }, - "@esbuild/openbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", - "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", - "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", - "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", - "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", - "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", - "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", - "optional": true - }, - "@ionic/core": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.7.3.tgz", - "integrity": "sha512-KdyMxpMDQj+uqpztpK6yvN/T96hqcDiGXQ4T+aAZ+LW3wV3+0it6/rbh9C1B/wCl4Isnm4IRltPabgEfNJ50nw==", - "requires": { - "@stencil/core": "4.36.2", - "ionicons": "^8.0.13", - "tslib": "^2.1.0" - } - }, - "@ionic/react": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@ionic/react/-/react-8.7.3.tgz", - "integrity": "sha512-ArByomMeBNI1HpvfYc6E5E76wO2agg87LxLaNI13PYTb1UpFTw6vf7P+lU+cQc9roaC48KQwV0Ndyd3XmkkyfA==", - "requires": { - "@ionic/core": "8.7.3", - "ionicons": "^8.0.13", - "tslib": "*" - } - }, - "@ionic/react-router": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@ionic/react-router/-/react-router-8.7.3.tgz", - "integrity": "sha512-NApR9HXQyMhF/OpY2NKlOyBzyG7dke9vREzx10M9KJfK+a3vCaeh82GciVFOJr+Jo7VDMUfjXpTifPHRjbdWoA==", - "requires": { - "@ionic/react": "8.7.3", - "tslib": "*" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.12", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.12.tgz", - "integrity": "sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==", - "requires": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" - }, - "@jridgewell/sourcemap-codec": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", - "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.29", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.29.tgz", - "integrity": "sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==", - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "@rolldown/pluginutils": { - "version": "1.0.0-beta.32", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.32.tgz", - "integrity": "sha512-QReCdvxiUZAPkvp1xpAg62IeNzykOFA6syH2CnClif4YmALN1XKpB39XneL80008UbtMShthSVDKmrx05N1q/g==" - }, - "@rollup/rollup-android-arm-eabi": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", - "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", - "optional": true - }, - "@rollup/rollup-android-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", - "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", - "optional": true - }, - "@rollup/rollup-darwin-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", - "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", - "optional": true - }, - "@rollup/rollup-darwin-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", - "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", - "optional": true - }, - "@rollup/rollup-freebsd-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", - "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", - "optional": true - }, - "@rollup/rollup-freebsd-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", - "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", - "optional": true - }, - "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", - "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", - "optional": true - }, - "@rollup/rollup-linux-arm-musleabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", - "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", - "optional": true - }, - "@rollup/rollup-linux-arm64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", - "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", - "optional": true - }, - "@rollup/rollup-linux-arm64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", - "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", - "optional": true - }, - "@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", - "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", - "optional": true - }, - "@rollup/rollup-linux-ppc64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", - "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", - "optional": true - }, - "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", - "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", - "optional": true - }, - "@rollup/rollup-linux-riscv64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", - "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", - "optional": true - }, - "@rollup/rollup-linux-s390x-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", - "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", - "optional": true - }, - "@rollup/rollup-linux-x64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", - "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", - "optional": true - }, - "@rollup/rollup-linux-x64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", - "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", - "optional": true - }, - "@rollup/rollup-win32-arm64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", - "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", - "optional": true - }, - "@rollup/rollup-win32-ia32-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", - "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", - "optional": true - }, - "@rollup/rollup-win32-x64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", - "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", - "optional": true - }, - "@stencil/core": { - "version": "4.36.2", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.36.2.tgz", - "integrity": "sha512-PRFSpxNzX9Oi0Wfh02asztN9Sgev/MacfZwmd+VVyE6ZxW+a/kEpAYZhzGAmE+/aKVOGYuug7R9SulanYGxiDQ==", - "requires": { - "@rollup/rollup-darwin-arm64": "4.34.9", - "@rollup/rollup-darwin-x64": "4.34.9", - "@rollup/rollup-linux-arm64-gnu": "4.34.9", - "@rollup/rollup-linux-arm64-musl": "4.34.9", - "@rollup/rollup-linux-x64-gnu": "4.34.9", - "@rollup/rollup-linux-x64-musl": "4.34.9", - "@rollup/rollup-win32-arm64-msvc": "4.34.9", - "@rollup/rollup-win32-x64-msvc": "4.34.9" - }, - "dependencies": { - "@rollup/rollup-darwin-arm64": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.9.tgz", - "integrity": "sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==", - "optional": true - }, - "@rollup/rollup-darwin-x64": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.9.tgz", - "integrity": "sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==", - "optional": true - }, - "@rollup/rollup-linux-arm64-gnu": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.9.tgz", - "integrity": "sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==", - "optional": true - }, - "@rollup/rollup-linux-arm64-musl": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.9.tgz", - "integrity": "sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==", - "optional": true - }, - "@rollup/rollup-linux-x64-gnu": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.9.tgz", - "integrity": "sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==", - "optional": true - }, - "@rollup/rollup-linux-x64-musl": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.9.tgz", - "integrity": "sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==", - "optional": true - }, - "@rollup/rollup-win32-arm64-msvc": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.9.tgz", - "integrity": "sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==", - "optional": true - }, - "@rollup/rollup-win32-x64-msvc": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.9.tgz", - "integrity": "sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==", - "optional": true - } - } - }, - "@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==", - "requires": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", - "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@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==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.20.4", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", - "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", - "requires": { - "@babel/types": "^7.20.7" - } - }, - "@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==" - }, - "@types/history": { - "version": "4.7.11", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" - }, - "@types/node": { - "version": "22.17.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.17.2.tgz", - "integrity": "sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w==", - "requires": { - "undici-types": "~6.21.0" - } - }, - "@types/react": { - "version": "19.1.11", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.11.tgz", - "integrity": "sha512-lr3jdBw/BGj49Eps7EvqlUaoeA0xpj3pc0RoJkHpYaCHkVK7i28dKyImLQb3JVlqs3aYSXf7qYuWOW/fgZnTXQ==", - "requires": { - "csstype": "^3.0.2" - } - }, - "@types/react-dom": { - "version": "19.1.7", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.7.tgz", - "integrity": "sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==", - "requires": {} - }, - "@types/react-router": { - "version": "5.1.20", - "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", - "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", - "requires": { - "@types/history": "^4.7.11", - "@types/react": "*" - } - }, - "@types/react-router-dom": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", - "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", - "requires": { - "@types/history": "^4.7.11", - "@types/react": "*", - "@types/react-router": "*" - } - }, - "@vitejs/plugin-react": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-5.0.1.tgz", - "integrity": "sha512-DE4UNaBXwtVoDJ0ccBdLVjFTWL70NRuWNCxEieTI3lrq9ORB9aOCQEKstwDXBl87NvFdbqh/p7eINGyj0BthJA==", - "requires": { - "@babel/core": "^7.28.3", - "@babel/plugin-transform-react-jsx-self": "^7.27.1", - "@babel/plugin-transform-react-jsx-source": "^7.27.1", - "@rolldown/pluginutils": "1.0.0-beta.32", - "@types/babel__core": "^7.20.5", - "react-refresh": "^0.17.0" - } - }, - "browserslist": { - "version": "4.25.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", - "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", - "requires": { - "caniuse-lite": "^1.0.30001718", - "electron-to-chromium": "^1.5.160", - "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.3" - } - }, - "caniuse-lite": { - "version": "1.0.30001722", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001722.tgz", - "integrity": "sha512-DCQHBBZtiK6JVkAGw7drvAMK0Q0POD/xZvEmDp6baiMMP6QXXk9HpD6mNYBZWhOPG6LvIDb82ITqtWjhDckHCA==" - }, - "clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==" - }, - "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==" - }, - "csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" - }, - "debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", - "requires": { - "ms": "^2.1.3" - } - }, - "electron-to-chromium": { - "version": "1.5.167", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.167.tgz", - "integrity": "sha512-LxcRvnYO5ez2bMOFpbuuVuAI5QNeY1ncVytE/KXaL6ZNfzX1yPlAO0nSOyIHx2fVAuUprMqPs/TdVhUFZy7SIQ==" - }, - "esbuild": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", - "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", - "requires": { - "@esbuild/aix-ppc64": "0.25.0", - "@esbuild/android-arm": "0.25.0", - "@esbuild/android-arm64": "0.25.0", - "@esbuild/android-x64": "0.25.0", - "@esbuild/darwin-arm64": "0.25.0", - "@esbuild/darwin-x64": "0.25.0", - "@esbuild/freebsd-arm64": "0.25.0", - "@esbuild/freebsd-x64": "0.25.0", - "@esbuild/linux-arm": "0.25.0", - "@esbuild/linux-arm64": "0.25.0", - "@esbuild/linux-ia32": "0.25.0", - "@esbuild/linux-loong64": "0.25.0", - "@esbuild/linux-mips64el": "0.25.0", - "@esbuild/linux-ppc64": "0.25.0", - "@esbuild/linux-riscv64": "0.25.0", - "@esbuild/linux-s390x": "0.25.0", - "@esbuild/linux-x64": "0.25.0", - "@esbuild/netbsd-arm64": "0.25.0", - "@esbuild/netbsd-x64": "0.25.0", - "@esbuild/openbsd-arm64": "0.25.0", - "@esbuild/openbsd-x64": "0.25.0", - "@esbuild/sunos-x64": "0.25.0", - "@esbuild/win32-arm64": "0.25.0", - "@esbuild/win32-ia32": "0.25.0", - "@esbuild/win32-x64": "0.25.0" - } - }, - "escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==" - }, - "fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "requires": {} - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "optional": true - }, - "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==" - }, - "history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "requires": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - } - }, - "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==", - "requires": { - "react-is": "^16.7.0" - }, - "dependencies": { - "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==" - } - } - }, - "ionicons": { - "version": "8.0.13", - "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-8.0.13.tgz", - "integrity": "sha512-2QQVyG2P4wszne79jemMjWYLp0DBbDhr4/yFroPCxvPP1wtMxgdIV3l5n+XZ5E9mgoXU79w7yTWpm2XzJsISxQ==", - "requires": { - "@stencil/core": "^4.35.3" - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==" - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==" - }, - "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==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "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==", - "requires": { - "yallist": "^3.0.2" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==" - }, - "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==" - }, - "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==" - }, - "picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" - }, - "picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==" - }, - "postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "requires": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - } - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - }, - "dependencies": { - "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==" - } - } - }, - "react": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", - "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==" - }, - "react-dom": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", - "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", - "requires": { - "scheduler": "^0.26.0" - } - }, - "react-refresh": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", - "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==" - }, - "react-router": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", - "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", - "requires": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "requires": { - "isarray": "0.0.1" - } - }, - "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==" - } - } - }, - "react-router-dom": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", - "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", - "requires": { - "@babel/runtime": "^7.12.13", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.3.4", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - } - }, - "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==" - }, - "resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" - }, - "rollup": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", - "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", - "requires": { - "@rollup/rollup-android-arm-eabi": "4.46.2", - "@rollup/rollup-android-arm64": "4.46.2", - "@rollup/rollup-darwin-arm64": "4.46.2", - "@rollup/rollup-darwin-x64": "4.46.2", - "@rollup/rollup-freebsd-arm64": "4.46.2", - "@rollup/rollup-freebsd-x64": "4.46.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", - "@rollup/rollup-linux-arm-musleabihf": "4.46.2", - "@rollup/rollup-linux-arm64-gnu": "4.46.2", - "@rollup/rollup-linux-arm64-musl": "4.46.2", - "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", - "@rollup/rollup-linux-ppc64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-musl": "4.46.2", - "@rollup/rollup-linux-s390x-gnu": "4.46.2", - "@rollup/rollup-linux-x64-gnu": "4.46.2", - "@rollup/rollup-linux-x64-musl": "4.46.2", - "@rollup/rollup-win32-arm64-msvc": "4.46.2", - "@rollup/rollup-win32-ia32-msvc": "4.46.2", - "@rollup/rollup-win32-x64-msvc": "4.46.2", - "@types/estree": "1.0.8", - "fsevents": "~2.3.2" - } - }, - "scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==" - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - }, - "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==" - }, - "tiny-invariant": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", - "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" - }, - "tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, - "tinyglobby": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", - "requires": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" - } - }, - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "typescript": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==" - }, - "undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==" - }, - "update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", - "requires": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - } - }, - "value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" - }, - "vite": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", - "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==", - "requires": { - "esbuild": "^0.25.0", - "fdir": "^6.5.0", - "fsevents": "~2.3.3", - "picomatch": "^4.0.3", - "postcss": "^8.5.6", - "rollup": "^4.43.0", - "tinyglobby": "^0.2.14" - } - }, - "web-vitals": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-5.1.0.tgz", - "integrity": "sha512-ArI3kx5jI0atlTtmV0fWU3fjpLmq/nD3Zr1iFFlJLaqa5wLBkUSzINwBPySCX/8jRyjlmy1Volw1kz1g9XE4Jg==" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - } -} diff --git a/static/code/stackblitz/v8/react/package.json b/static/code/stackblitz/v8/react/package.json index 2e2d68b5cd3..20a47edd90a 100644 --- a/static/code/stackblitz/v8/react/package.json +++ b/static/code/stackblitz/v8/react/package.json @@ -16,7 +16,7 @@ "react-dom": "^19.0.0", "react-router": "^5.2.0", "react-router-dom": "^5.2.0", - "typescript": "^5.2.2", + "typescript": "~5.9.0", "vite": "^7.0.0", "web-vitals": "^5.0.0" }, diff --git a/static/code/stackblitz/v8/vue/package-lock.json b/static/code/stackblitz/v8/vue/package-lock.json deleted file mode 100644 index a060083341b..00000000000 --- a/static/code/stackblitz/v8/vue/package-lock.json +++ /dev/null @@ -1,2350 +0,0 @@ -{ - "name": "vite-vue-starter", - "version": "0.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "vite-vue-starter", - "version": "0.0.0", - "dependencies": { - "@ionic/vue": "8.7.3", - "@ionic/vue-router": "8.7.3", - "vue": "^3.2.25", - "vue-router": "4.5.1" - }, - "devDependencies": { - "@vitejs/plugin-vue": "^6.0.0", - "typescript": "^5.0.0", - "vite": "^7.0.0", - "vue-tsc": "^3.0.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", - "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", - "dependencies": { - "@babel/types": "^7.28.2" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/types": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", - "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", - "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz", - "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", - "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz", - "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", - "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", - "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", - "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", - "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", - "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", - "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", - "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", - "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", - "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", - "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", - "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", - "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", - "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", - "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", - "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", - "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", - "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", - "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", - "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", - "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", - "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@ionic/core": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.7.3.tgz", - "integrity": "sha512-KdyMxpMDQj+uqpztpK6yvN/T96hqcDiGXQ4T+aAZ+LW3wV3+0it6/rbh9C1B/wCl4Isnm4IRltPabgEfNJ50nw==", - "dependencies": { - "@stencil/core": "4.36.2", - "ionicons": "^8.0.13", - "tslib": "^2.1.0" - } - }, - "node_modules/@ionic/vue": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.7.3.tgz", - "integrity": "sha512-QMtlV+hIz8icO7eYwQrK4mN0CqySXKllot6BeJXPBFVaK9la0TY6tUaxtSxpz22wYj4jVVF7MRn6HZ0RCfUJJQ==", - "dependencies": { - "@ionic/core": "8.7.3", - "@stencil/vue-output-target": "0.10.7", - "ionicons": "^8.0.13" - } - }, - "node_modules/@ionic/vue-router": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.7.3.tgz", - "integrity": "sha512-01gOFO1caU6Rx1jvdpfiwtdXqvxGBxhzfCyV6LMGBvGiKN7g00qDkah1iPZz89wKCjWgW3Hg2Czt0bGfPnUREg==", - "dependencies": { - "@ionic/vue": "8.7.3" - } - }, - "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/@rolldown/pluginutils": { - "version": "1.0.0-beta.29", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.29.tgz", - "integrity": "sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==", - "dev": true - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", - "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", - "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", - "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", - "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", - "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", - "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", - "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", - "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", - "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", - "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", - "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", - "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", - "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", - "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", - "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", - "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", - "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", - "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", - "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", - "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@stencil/core": { - "version": "4.36.2", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.36.2.tgz", - "integrity": "sha512-PRFSpxNzX9Oi0Wfh02asztN9Sgev/MacfZwmd+VVyE6ZxW+a/kEpAYZhzGAmE+/aKVOGYuug7R9SulanYGxiDQ==", - "bin": { - "stencil": "bin/stencil" - }, - "engines": { - "node": ">=16.0.0", - "npm": ">=7.10.0" - }, - "optionalDependencies": { - "@rollup/rollup-darwin-arm64": "4.34.9", - "@rollup/rollup-darwin-x64": "4.34.9", - "@rollup/rollup-linux-arm64-gnu": "4.34.9", - "@rollup/rollup-linux-arm64-musl": "4.34.9", - "@rollup/rollup-linux-x64-gnu": "4.34.9", - "@rollup/rollup-linux-x64-musl": "4.34.9", - "@rollup/rollup-win32-arm64-msvc": "4.34.9", - "@rollup/rollup-win32-x64-msvc": "4.34.9" - } - }, - "node_modules/@stencil/core/node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.9.tgz", - "integrity": "sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@stencil/core/node_modules/@rollup/rollup-darwin-x64": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.9.tgz", - "integrity": "sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@stencil/core/node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.9.tgz", - "integrity": "sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@stencil/core/node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.9.tgz", - "integrity": "sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@stencil/core/node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.9.tgz", - "integrity": "sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@stencil/core/node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.9.tgz", - "integrity": "sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@stencil/core/node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.9.tgz", - "integrity": "sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@stencil/core/node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.9.tgz", - "integrity": "sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@stencil/vue-output-target": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/@stencil/vue-output-target/-/vue-output-target-0.10.7.tgz", - "integrity": "sha512-IYxDe+SLCkwhwsWRdynE31rTK1zN3hVwwojQ/V9lrN8Gnx4PTvrUQHiRno9jFo1dk+EaBZWX9gZSmXta0ZaZew==", - "peerDependencies": { - "@stencil/core": ">=2.0.0 || >=3 || >= 4.0.0-beta.0 || >= 4.0.0", - "vue": "^3.4.38", - "vue-router": "^4.5.0" - }, - "peerDependenciesMeta": { - "@stencil/core": { - "optional": true - }, - "vue": { - "optional": false - }, - "vue-router": { - "optional": true - } - } - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true - }, - "node_modules/@vitejs/plugin-vue": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.1.tgz", - "integrity": "sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw==", - "dev": true, - "dependencies": { - "@rolldown/pluginutils": "1.0.0-beta.29" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "peerDependencies": { - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0", - "vue": "^3.2.25" - } - }, - "node_modules/@volar/language-core": { - "version": "2.4.23", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.23.tgz", - "integrity": "sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==", - "dev": true, - "dependencies": { - "@volar/source-map": "2.4.23" - } - }, - "node_modules/@volar/source-map": { - "version": "2.4.23", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.23.tgz", - "integrity": "sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==", - "dev": true - }, - "node_modules/@volar/typescript": { - "version": "2.4.23", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.23.tgz", - "integrity": "sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==", - "dev": true, - "dependencies": { - "@volar/language-core": "2.4.23", - "path-browserify": "^1.0.1", - "vscode-uri": "^3.0.8" - } - }, - "node_modules/@vue/compiler-core": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.19.tgz", - "integrity": "sha512-/afpyvlkrSNYbPo94Qu8GtIOWS+g5TRdOvs6XZNw6pWQQmj5pBgSZvEPOIZlqWq0YvoUhDDQaQ2TnzuJdOV4hA==", - "dependencies": { - "@babel/parser": "^7.28.3", - "@vue/shared": "3.5.19", - "entities": "^4.5.0", - "estree-walker": "^2.0.2", - "source-map-js": "^1.2.1" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.19.tgz", - "integrity": "sha512-Drs6rPHQZx/pN9S6ml3Z3K/TWCIRPvzG2B/o5kFK9X0MNHt8/E+38tiRfojufrYBfA6FQUFB2qBBRXlcSXWtOA==", - "dependencies": { - "@vue/compiler-core": "3.5.19", - "@vue/shared": "3.5.19" - } - }, - "node_modules/@vue/compiler-sfc": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.19.tgz", - "integrity": "sha512-YWCm1CYaJ+2RvNmhCwI7t3I3nU+hOrWGWMsn+Z/kmm1jy5iinnVtlmkiZwbLlbV1SRizX7vHsc0/bG5dj0zRTg==", - "dependencies": { - "@babel/parser": "^7.28.3", - "@vue/compiler-core": "3.5.19", - "@vue/compiler-dom": "3.5.19", - "@vue/compiler-ssr": "3.5.19", - "@vue/shared": "3.5.19", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.17", - "postcss": "^8.5.6", - "source-map-js": "^1.2.1" - } - }, - "node_modules/@vue/compiler-ssr": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.19.tgz", - "integrity": "sha512-/wx0VZtkWOPdiQLWPeQeqpHWR/LuNC7bHfSX7OayBTtUy8wur6vT6EQIX6Et86aED6J+y8tTw43qo2uoqGg5sw==", - "dependencies": { - "@vue/compiler-dom": "3.5.19", - "@vue/shared": "3.5.19" - } - }, - "node_modules/@vue/compiler-vue2": { - "version": "2.7.16", - "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", - "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", - "dev": true, - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, - "node_modules/@vue/devtools-api": { - "version": "6.6.4", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", - "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" - }, - "node_modules/@vue/language-core": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.6.tgz", - "integrity": "sha512-e2RRzYWm+qGm8apUHW1wA5RQxzNhkqbbKdbKhiDUcmMrNAZGyM8aTiL3UrTqkaFI5s7wJRGGrp4u3jgusuBp2A==", - "dev": true, - "dependencies": { - "@volar/language-core": "2.4.23", - "@vue/compiler-dom": "^3.5.0", - "@vue/compiler-vue2": "^2.7.16", - "@vue/shared": "^3.5.0", - "alien-signals": "^2.0.5", - "muggle-string": "^0.4.1", - "path-browserify": "^1.0.1", - "picomatch": "^4.0.2" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@vue/reactivity": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.19.tgz", - "integrity": "sha512-4bueZg2qs5MSsK2dQk3sssV0cfvxb/QZntTC8v7J448GLgmfPkQ+27aDjlt40+XFqOwUq5yRxK5uQh14Fc9eVA==", - "dependencies": { - "@vue/shared": "3.5.19" - } - }, - "node_modules/@vue/runtime-core": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.19.tgz", - "integrity": "sha512-TaooCr8Hge1sWjLSyhdubnuofs3shhzZGfyD11gFolZrny76drPwBVQj28/z/4+msSFb18tOIg6VVVgf9/IbIA==", - "dependencies": { - "@vue/reactivity": "3.5.19", - "@vue/shared": "3.5.19" - } - }, - "node_modules/@vue/runtime-dom": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.19.tgz", - "integrity": "sha512-qmahqeok6ztuUTmV8lqd7N9ymbBzctNF885n8gL3xdCC1u2RnM/coX16Via0AiONQXUoYpxPojL3U1IsDgSWUQ==", - "dependencies": { - "@vue/reactivity": "3.5.19", - "@vue/runtime-core": "3.5.19", - "@vue/shared": "3.5.19", - "csstype": "^3.1.3" - } - }, - "node_modules/@vue/server-renderer": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.19.tgz", - "integrity": "sha512-ZJ/zV9SQuaIO+BEEVq/2a6fipyrSYfjKMU3267bPUk+oTx/hZq3RzV7VCh0Unlppt39Bvh6+NzxeopIFv4HJNg==", - "dependencies": { - "@vue/compiler-ssr": "3.5.19", - "@vue/shared": "3.5.19" - }, - "peerDependencies": { - "vue": "3.5.19" - } - }, - "node_modules/@vue/shared": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.19.tgz", - "integrity": "sha512-IhXCOn08wgKrLQxRFKKlSacWg4Goi1BolrdEeLYn6tgHjJNXVrWJ5nzoxZqNwl5p88aLlQ8LOaoMa3AYvaKJ/Q==" - }, - "node_modules/alien-signals": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-2.0.5.tgz", - "integrity": "sha512-PdJB6+06nUNAClInE3Dweq7/2xVAYM64vvvS1IHVHSJmgeOtEdrAGyp7Z2oJtYm0B342/Exd2NT0uMJaThcjLQ==", - "dev": true - }, - "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/de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", - "dev": true - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/esbuild": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", - "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.0", - "@esbuild/android-arm": "0.25.0", - "@esbuild/android-arm64": "0.25.0", - "@esbuild/android-x64": "0.25.0", - "@esbuild/darwin-arm64": "0.25.0", - "@esbuild/darwin-x64": "0.25.0", - "@esbuild/freebsd-arm64": "0.25.0", - "@esbuild/freebsd-x64": "0.25.0", - "@esbuild/linux-arm": "0.25.0", - "@esbuild/linux-arm64": "0.25.0", - "@esbuild/linux-ia32": "0.25.0", - "@esbuild/linux-loong64": "0.25.0", - "@esbuild/linux-mips64el": "0.25.0", - "@esbuild/linux-ppc64": "0.25.0", - "@esbuild/linux-riscv64": "0.25.0", - "@esbuild/linux-s390x": "0.25.0", - "@esbuild/linux-x64": "0.25.0", - "@esbuild/netbsd-arm64": "0.25.0", - "@esbuild/netbsd-x64": "0.25.0", - "@esbuild/openbsd-arm64": "0.25.0", - "@esbuild/openbsd-x64": "0.25.0", - "@esbuild/sunos-x64": "0.25.0", - "@esbuild/win32-arm64": "0.25.0", - "@esbuild/win32-ia32": "0.25.0", - "@esbuild/win32-x64": "0.25.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, - "node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/ionicons": { - "version": "8.0.13", - "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-8.0.13.tgz", - "integrity": "sha512-2QQVyG2P4wszne79jemMjWYLp0DBbDhr4/yFroPCxvPP1wtMxgdIV3l5n+XZ5E9mgoXU79w7yTWpm2XzJsISxQ==", - "dependencies": { - "@stencil/core": "^4.35.3" - } - }, - "node_modules/magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, - "node_modules/muggle-string": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", - "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "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/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "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": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "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.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/rollup": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", - "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", - "dev": true, - "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.46.2", - "@rollup/rollup-android-arm64": "4.46.2", - "@rollup/rollup-darwin-arm64": "4.46.2", - "@rollup/rollup-darwin-x64": "4.46.2", - "@rollup/rollup-freebsd-arm64": "4.46.2", - "@rollup/rollup-freebsd-x64": "4.46.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", - "@rollup/rollup-linux-arm-musleabihf": "4.46.2", - "@rollup/rollup-linux-arm64-gnu": "4.46.2", - "@rollup/rollup-linux-arm64-musl": "4.46.2", - "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", - "@rollup/rollup-linux-ppc64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-musl": "4.46.2", - "@rollup/rollup-linux-s390x-gnu": "4.46.2", - "@rollup/rollup-linux-x64-gnu": "4.46.2", - "@rollup/rollup-linux-x64-musl": "4.46.2", - "@rollup/rollup-win32-arm64-msvc": "4.46.2", - "@rollup/rollup-win32-ia32-msvc": "4.46.2", - "@rollup/rollup-win32-x64-msvc": "4.46.2", - "fsevents": "~2.3.2" - } - }, - "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/tinyglobby": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", - "dev": true, - "dependencies": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/typescript": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", - "devOptional": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/vite": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", - "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==", - "dev": true, - "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.5.0", - "picomatch": "^4.0.3", - "postcss": "^8.5.6", - "rollup": "^4.43.0", - "tinyglobby": "^0.2.14" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^20.19.0 || >=22.12.0", - "jiti": ">=1.21.0", - "less": "^4.0.0", - "lightningcss": "^1.21.0", - "sass": "^1.70.0", - "sass-embedded": "^1.70.0", - "stylus": ">=0.54.8", - "sugarss": "^5.0.0", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vscode-uri": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", - "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", - "dev": true - }, - "node_modules/vue": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.19.tgz", - "integrity": "sha512-ZRh0HTmw6KChRYWgN8Ox/wi7VhpuGlvMPrHjIsdRbzKNgECFLzy+dKL5z9yGaBSjCpmcfJCbh3I1tNSRmBz2tg==", - "dependencies": { - "@vue/compiler-dom": "3.5.19", - "@vue/compiler-sfc": "3.5.19", - "@vue/runtime-dom": "3.5.19", - "@vue/server-renderer": "3.5.19", - "@vue/shared": "3.5.19" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/vue-router": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.1.tgz", - "integrity": "sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==", - "dependencies": { - "@vue/devtools-api": "^6.6.4" - }, - "funding": { - "url": "https://github.com/sponsors/posva" - }, - "peerDependencies": { - "vue": "^3.2.0" - } - }, - "node_modules/vue-tsc": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.6.tgz", - "integrity": "sha512-Tbs8Whd43R2e2nxez4WXPvvdjGbW24rOSgRhLOHXzWiT4pcP4G7KeWh0YCn18rF4bVwv7tggLLZ6MJnO6jXPBg==", - "dev": true, - "dependencies": { - "@volar/typescript": "2.4.23", - "@vue/language-core": "3.0.6" - }, - "bin": { - "vue-tsc": "bin/vue-tsc.js" - }, - "peerDependencies": { - "typescript": ">=5.0.0" - } - } - }, - "dependencies": { - "@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==" - }, - "@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==" - }, - "@babel/parser": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", - "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", - "requires": { - "@babel/types": "^7.28.2" - } - }, - "@babel/types": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", - "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", - "requires": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" - } - }, - "@esbuild/aix-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", - "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz", - "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", - "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz", - "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", - "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", - "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", - "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", - "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", - "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", - "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", - "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", - "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", - "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", - "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", - "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", - "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", - "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", - "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", - "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", - "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", - "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", - "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", - "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", - "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", - "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", - "dev": true, - "optional": true - }, - "@ionic/core": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-8.7.3.tgz", - "integrity": "sha512-KdyMxpMDQj+uqpztpK6yvN/T96hqcDiGXQ4T+aAZ+LW3wV3+0it6/rbh9C1B/wCl4Isnm4IRltPabgEfNJ50nw==", - "requires": { - "@stencil/core": "4.36.2", - "ionicons": "^8.0.13", - "tslib": "^2.1.0" - } - }, - "@ionic/vue": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@ionic/vue/-/vue-8.7.3.tgz", - "integrity": "sha512-QMtlV+hIz8icO7eYwQrK4mN0CqySXKllot6BeJXPBFVaK9la0TY6tUaxtSxpz22wYj4jVVF7MRn6HZ0RCfUJJQ==", - "requires": { - "@ionic/core": "8.7.3", - "@stencil/vue-output-target": "0.10.7", - "ionicons": "^8.0.13" - } - }, - "@ionic/vue-router": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@ionic/vue-router/-/vue-router-8.7.3.tgz", - "integrity": "sha512-01gOFO1caU6Rx1jvdpfiwtdXqvxGBxhzfCyV6LMGBvGiKN7g00qDkah1iPZz89wKCjWgW3Hg2Czt0bGfPnUREg==", - "requires": { - "@ionic/vue": "8.7.3" - } - }, - "@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==" - }, - "@rolldown/pluginutils": { - "version": "1.0.0-beta.29", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.29.tgz", - "integrity": "sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==", - "dev": true - }, - "@rollup/rollup-android-arm-eabi": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", - "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-android-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", - "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-darwin-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", - "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-darwin-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", - "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-freebsd-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", - "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", - "dev": true, - "optional": true - }, - "@rollup/rollup-freebsd-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", - "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", - "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm-musleabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", - "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", - "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-arm64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", - "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", - "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-ppc64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", - "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", - "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-riscv64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", - "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-s390x-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", - "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-x64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", - "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-linux-x64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", - "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-arm64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", - "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-ia32-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", - "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", - "dev": true, - "optional": true - }, - "@rollup/rollup-win32-x64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", - "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", - "dev": true, - "optional": true - }, - "@stencil/core": { - "version": "4.36.2", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.36.2.tgz", - "integrity": "sha512-PRFSpxNzX9Oi0Wfh02asztN9Sgev/MacfZwmd+VVyE6ZxW+a/kEpAYZhzGAmE+/aKVOGYuug7R9SulanYGxiDQ==", - "requires": { - "@rollup/rollup-darwin-arm64": "4.34.9", - "@rollup/rollup-darwin-x64": "4.34.9", - "@rollup/rollup-linux-arm64-gnu": "4.34.9", - "@rollup/rollup-linux-arm64-musl": "4.34.9", - "@rollup/rollup-linux-x64-gnu": "4.34.9", - "@rollup/rollup-linux-x64-musl": "4.34.9", - "@rollup/rollup-win32-arm64-msvc": "4.34.9", - "@rollup/rollup-win32-x64-msvc": "4.34.9" - }, - "dependencies": { - "@rollup/rollup-darwin-arm64": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.34.9.tgz", - "integrity": "sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==", - "optional": true - }, - "@rollup/rollup-darwin-x64": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.34.9.tgz", - "integrity": "sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==", - "optional": true - }, - "@rollup/rollup-linux-arm64-gnu": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.34.9.tgz", - "integrity": "sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==", - "optional": true - }, - "@rollup/rollup-linux-arm64-musl": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.34.9.tgz", - "integrity": "sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==", - "optional": true - }, - "@rollup/rollup-linux-x64-gnu": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.34.9.tgz", - "integrity": "sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==", - "optional": true - }, - "@rollup/rollup-linux-x64-musl": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.34.9.tgz", - "integrity": "sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==", - "optional": true - }, - "@rollup/rollup-win32-arm64-msvc": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.34.9.tgz", - "integrity": "sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==", - "optional": true - }, - "@rollup/rollup-win32-x64-msvc": { - "version": "4.34.9", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.34.9.tgz", - "integrity": "sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==", - "optional": true - } - } - }, - "@stencil/vue-output-target": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/@stencil/vue-output-target/-/vue-output-target-0.10.7.tgz", - "integrity": "sha512-IYxDe+SLCkwhwsWRdynE31rTK1zN3hVwwojQ/V9lrN8Gnx4PTvrUQHiRno9jFo1dk+EaBZWX9gZSmXta0ZaZew==", - "requires": {} - }, - "@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true - }, - "@vitejs/plugin-vue": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.1.tgz", - "integrity": "sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw==", - "dev": true, - "requires": { - "@rolldown/pluginutils": "1.0.0-beta.29" - } - }, - "@volar/language-core": { - "version": "2.4.23", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.23.tgz", - "integrity": "sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==", - "dev": true, - "requires": { - "@volar/source-map": "2.4.23" - } - }, - "@volar/source-map": { - "version": "2.4.23", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.23.tgz", - "integrity": "sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==", - "dev": true - }, - "@volar/typescript": { - "version": "2.4.23", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.23.tgz", - "integrity": "sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==", - "dev": true, - "requires": { - "@volar/language-core": "2.4.23", - "path-browserify": "^1.0.1", - "vscode-uri": "^3.0.8" - } - }, - "@vue/compiler-core": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.19.tgz", - "integrity": "sha512-/afpyvlkrSNYbPo94Qu8GtIOWS+g5TRdOvs6XZNw6pWQQmj5pBgSZvEPOIZlqWq0YvoUhDDQaQ2TnzuJdOV4hA==", - "requires": { - "@babel/parser": "^7.28.3", - "@vue/shared": "3.5.19", - "entities": "^4.5.0", - "estree-walker": "^2.0.2", - "source-map-js": "^1.2.1" - } - }, - "@vue/compiler-dom": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.19.tgz", - "integrity": "sha512-Drs6rPHQZx/pN9S6ml3Z3K/TWCIRPvzG2B/o5kFK9X0MNHt8/E+38tiRfojufrYBfA6FQUFB2qBBRXlcSXWtOA==", - "requires": { - "@vue/compiler-core": "3.5.19", - "@vue/shared": "3.5.19" - } - }, - "@vue/compiler-sfc": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.19.tgz", - "integrity": "sha512-YWCm1CYaJ+2RvNmhCwI7t3I3nU+hOrWGWMsn+Z/kmm1jy5iinnVtlmkiZwbLlbV1SRizX7vHsc0/bG5dj0zRTg==", - "requires": { - "@babel/parser": "^7.28.3", - "@vue/compiler-core": "3.5.19", - "@vue/compiler-dom": "3.5.19", - "@vue/compiler-ssr": "3.5.19", - "@vue/shared": "3.5.19", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.17", - "postcss": "^8.5.6", - "source-map-js": "^1.2.1" - } - }, - "@vue/compiler-ssr": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.19.tgz", - "integrity": "sha512-/wx0VZtkWOPdiQLWPeQeqpHWR/LuNC7bHfSX7OayBTtUy8wur6vT6EQIX6Et86aED6J+y8tTw43qo2uoqGg5sw==", - "requires": { - "@vue/compiler-dom": "3.5.19", - "@vue/shared": "3.5.19" - } - }, - "@vue/compiler-vue2": { - "version": "2.7.16", - "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", - "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", - "dev": true, - "requires": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, - "@vue/devtools-api": { - "version": "6.6.4", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", - "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==" - }, - "@vue/language-core": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.0.6.tgz", - "integrity": "sha512-e2RRzYWm+qGm8apUHW1wA5RQxzNhkqbbKdbKhiDUcmMrNAZGyM8aTiL3UrTqkaFI5s7wJRGGrp4u3jgusuBp2A==", - "dev": true, - "requires": { - "@volar/language-core": "2.4.23", - "@vue/compiler-dom": "^3.5.0", - "@vue/compiler-vue2": "^2.7.16", - "@vue/shared": "^3.5.0", - "alien-signals": "^2.0.5", - "muggle-string": "^0.4.1", - "path-browserify": "^1.0.1", - "picomatch": "^4.0.2" - } - }, - "@vue/reactivity": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.19.tgz", - "integrity": "sha512-4bueZg2qs5MSsK2dQk3sssV0cfvxb/QZntTC8v7J448GLgmfPkQ+27aDjlt40+XFqOwUq5yRxK5uQh14Fc9eVA==", - "requires": { - "@vue/shared": "3.5.19" - } - }, - "@vue/runtime-core": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.19.tgz", - "integrity": "sha512-TaooCr8Hge1sWjLSyhdubnuofs3shhzZGfyD11gFolZrny76drPwBVQj28/z/4+msSFb18tOIg6VVVgf9/IbIA==", - "requires": { - "@vue/reactivity": "3.5.19", - "@vue/shared": "3.5.19" - } - }, - "@vue/runtime-dom": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.19.tgz", - "integrity": "sha512-qmahqeok6ztuUTmV8lqd7N9ymbBzctNF885n8gL3xdCC1u2RnM/coX16Via0AiONQXUoYpxPojL3U1IsDgSWUQ==", - "requires": { - "@vue/reactivity": "3.5.19", - "@vue/runtime-core": "3.5.19", - "@vue/shared": "3.5.19", - "csstype": "^3.1.3" - } - }, - "@vue/server-renderer": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.19.tgz", - "integrity": "sha512-ZJ/zV9SQuaIO+BEEVq/2a6fipyrSYfjKMU3267bPUk+oTx/hZq3RzV7VCh0Unlppt39Bvh6+NzxeopIFv4HJNg==", - "requires": { - "@vue/compiler-ssr": "3.5.19", - "@vue/shared": "3.5.19" - } - }, - "@vue/shared": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.19.tgz", - "integrity": "sha512-IhXCOn08wgKrLQxRFKKlSacWg4Goi1BolrdEeLYn6tgHjJNXVrWJ5nzoxZqNwl5p88aLlQ8LOaoMa3AYvaKJ/Q==" - }, - "alien-signals": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-2.0.5.tgz", - "integrity": "sha512-PdJB6+06nUNAClInE3Dweq7/2xVAYM64vvvS1IHVHSJmgeOtEdrAGyp7Z2oJtYm0B342/Exd2NT0uMJaThcjLQ==", - "dev": true - }, - "csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - }, - "de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", - "dev": true - }, - "entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" - }, - "esbuild": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", - "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", - "dev": true, - "requires": { - "@esbuild/aix-ppc64": "0.25.0", - "@esbuild/android-arm": "0.25.0", - "@esbuild/android-arm64": "0.25.0", - "@esbuild/android-x64": "0.25.0", - "@esbuild/darwin-arm64": "0.25.0", - "@esbuild/darwin-x64": "0.25.0", - "@esbuild/freebsd-arm64": "0.25.0", - "@esbuild/freebsd-x64": "0.25.0", - "@esbuild/linux-arm": "0.25.0", - "@esbuild/linux-arm64": "0.25.0", - "@esbuild/linux-ia32": "0.25.0", - "@esbuild/linux-loong64": "0.25.0", - "@esbuild/linux-mips64el": "0.25.0", - "@esbuild/linux-ppc64": "0.25.0", - "@esbuild/linux-riscv64": "0.25.0", - "@esbuild/linux-s390x": "0.25.0", - "@esbuild/linux-x64": "0.25.0", - "@esbuild/netbsd-arm64": "0.25.0", - "@esbuild/netbsd-x64": "0.25.0", - "@esbuild/openbsd-arm64": "0.25.0", - "@esbuild/openbsd-x64": "0.25.0", - "@esbuild/sunos-x64": "0.25.0", - "@esbuild/win32-arm64": "0.25.0", - "@esbuild/win32-ia32": "0.25.0", - "@esbuild/win32-x64": "0.25.0" - } - }, - "estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, - "fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "requires": {} - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "optional": true - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "ionicons": { - "version": "8.0.13", - "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-8.0.13.tgz", - "integrity": "sha512-2QQVyG2P4wszne79jemMjWYLp0DBbDhr4/yFroPCxvPP1wtMxgdIV3l5n+XZ5E9mgoXU79w7yTWpm2XzJsISxQ==", - "requires": { - "@stencil/core": "^4.35.3" - } - }, - "magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", - "requires": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, - "muggle-string": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", - "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", - "dev": true - }, - "nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==" - }, - "path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" - }, - "picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true - }, - "postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "requires": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - } - }, - "rollup": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", - "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", - "dev": true, - "requires": { - "@rollup/rollup-android-arm-eabi": "4.46.2", - "@rollup/rollup-android-arm64": "4.46.2", - "@rollup/rollup-darwin-arm64": "4.46.2", - "@rollup/rollup-darwin-x64": "4.46.2", - "@rollup/rollup-freebsd-arm64": "4.46.2", - "@rollup/rollup-freebsd-x64": "4.46.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", - "@rollup/rollup-linux-arm-musleabihf": "4.46.2", - "@rollup/rollup-linux-arm64-gnu": "4.46.2", - "@rollup/rollup-linux-arm64-musl": "4.46.2", - "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", - "@rollup/rollup-linux-ppc64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-musl": "4.46.2", - "@rollup/rollup-linux-s390x-gnu": "4.46.2", - "@rollup/rollup-linux-x64-gnu": "4.46.2", - "@rollup/rollup-linux-x64-musl": "4.46.2", - "@rollup/rollup-win32-arm64-msvc": "4.46.2", - "@rollup/rollup-win32-ia32-msvc": "4.46.2", - "@rollup/rollup-win32-x64-msvc": "4.46.2", - "@types/estree": "1.0.8", - "fsevents": "~2.3.2" - } - }, - "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==" - }, - "tinyglobby": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", - "dev": true, - "requires": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" - } - }, - "tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "typescript": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", - "devOptional": true - }, - "vite": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.3.tgz", - "integrity": "sha512-OOUi5zjkDxYrKhTV3V7iKsoS37VUM7v40+HuwEmcrsf11Cdx9y3DIr2Px6liIcZFwt3XSRpQvFpL3WVy7ApkGw==", - "dev": true, - "requires": { - "esbuild": "^0.25.0", - "fdir": "^6.5.0", - "fsevents": "~2.3.3", - "picomatch": "^4.0.3", - "postcss": "^8.5.6", - "rollup": "^4.43.0", - "tinyglobby": "^0.2.14" - } - }, - "vscode-uri": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", - "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", - "dev": true - }, - "vue": { - "version": "3.5.19", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.19.tgz", - "integrity": "sha512-ZRh0HTmw6KChRYWgN8Ox/wi7VhpuGlvMPrHjIsdRbzKNgECFLzy+dKL5z9yGaBSjCpmcfJCbh3I1tNSRmBz2tg==", - "requires": { - "@vue/compiler-dom": "3.5.19", - "@vue/compiler-sfc": "3.5.19", - "@vue/runtime-dom": "3.5.19", - "@vue/server-renderer": "3.5.19", - "@vue/shared": "3.5.19" - } - }, - "vue-router": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.5.1.tgz", - "integrity": "sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==", - "requires": { - "@vue/devtools-api": "^6.6.4" - } - }, - "vue-tsc": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.0.6.tgz", - "integrity": "sha512-Tbs8Whd43R2e2nxez4WXPvvdjGbW24rOSgRhLOHXzWiT4pcP4G7KeWh0YCn18rF4bVwv7tggLLZ6MJnO6jXPBg==", - "dev": true, - "requires": { - "@volar/typescript": "2.4.23", - "@vue/language-core": "3.0.6" - } - } - } -} diff --git a/static/code/stackblitz/v8/vue/package.json b/static/code/stackblitz/v8/vue/package.json index 11679ec6599..5f1674b7889 100644 --- a/static/code/stackblitz/v8/vue/package.json +++ b/static/code/stackblitz/v8/vue/package.json @@ -15,7 +15,7 @@ }, "devDependencies": { "@vitejs/plugin-vue": "^6.0.0", - "typescript": "^5.0.0", + "typescript": "~5.9.0", "vite": "^7.0.0", "vue-tsc": "^3.0.0" } From c7eb60662e2bfacb7cf2c83afc010fc53878e81c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 18 Sep 2025 06:46:09 -0700 Subject: [PATCH 081/129] chore(deps): update ionic to v8.7.4 (#4273) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- static/code/stackblitz/v8/angular/package.json | 4 ++-- static/code/stackblitz/v8/html/package.json | 2 +- static/code/stackblitz/v8/react/package.json | 4 ++-- static/code/stackblitz/v8/vue/package.json | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/static/code/stackblitz/v8/angular/package.json b/static/code/stackblitz/v8/angular/package.json index 1495ebfb5f1..8beccf09d70 100644 --- a/static/code/stackblitz/v8/angular/package.json +++ b/static/code/stackblitz/v8/angular/package.json @@ -15,8 +15,8 @@ "@angular/platform-browser": "^20.0.0", "@angular/platform-browser-dynamic": "^20.0.0", "@angular/router": "^20.0.0", - "@ionic/angular": "8.7.3", - "@ionic/core": "8.7.3", + "@ionic/angular": "8.7.4", + "@ionic/core": "8.7.4", "ionicons": "8.0.13", "rxjs": "^7.8.1", "tslib": "^2.5.0", diff --git a/static/code/stackblitz/v8/html/package.json b/static/code/stackblitz/v8/html/package.json index f8ee2f25047..e37c218632a 100644 --- a/static/code/stackblitz/v8/html/package.json +++ b/static/code/stackblitz/v8/html/package.json @@ -9,7 +9,7 @@ "start": "vite preview" }, "dependencies": { - "@ionic/core": "8.7.3", + "@ionic/core": "8.7.4", "ionicons": "8.0.13" }, "devDependencies": { diff --git a/static/code/stackblitz/v8/react/package.json b/static/code/stackblitz/v8/react/package.json index 20a47edd90a..c3a811331c9 100644 --- a/static/code/stackblitz/v8/react/package.json +++ b/static/code/stackblitz/v8/react/package.json @@ -3,8 +3,8 @@ "version": "0.1.0", "private": true, "dependencies": { - "@ionic/react": "8.7.3", - "@ionic/react-router": "8.7.3", + "@ionic/react": "8.7.4", + "@ionic/react-router": "8.7.4", "@types/node": "^22.0.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", diff --git a/static/code/stackblitz/v8/vue/package.json b/static/code/stackblitz/v8/vue/package.json index 5f1674b7889..793bf6b4707 100644 --- a/static/code/stackblitz/v8/vue/package.json +++ b/static/code/stackblitz/v8/vue/package.json @@ -8,8 +8,8 @@ "preview": "vite preview" }, "dependencies": { - "@ionic/vue": "8.7.3", - "@ionic/vue-router": "8.7.3", + "@ionic/vue": "8.7.4", + "@ionic/vue-router": "8.7.4", "vue": "^3.2.25", "vue-router": "4.5.1" }, From ed26fea3d28ea1b365528e37e318e52dfe4466f5 Mon Sep 17 00:00:00 2001 From: Brandy Smith Date: Wed, 24 Sep 2025 11:47:49 -0400 Subject: [PATCH 082/129] docs(vue): update all script syntax to use setup (#4242) - Updates all v8 playgrounds to use script setup syntax - Updates all v7 playgrounds to use script setup syntax - Updates all references to Vue code in the guide & API docs to use script setup syntax --------- Co-authored-by: Roger! Co-authored-by: Shawn Taylor Co-authored-by: Treigh Mawaka <92684310+treighmawaka@users.noreply.github.com> Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com> --- _templates/playground/new/vue.md.ejs.t | 9 +- docs/api/tab-bar.md | 12 +- docs/api/tab-button.md | 30 +--- docs/developing/hardware-back-button.md | 42 ++--- docs/updating/6-0.md | 14 +- docs/vue/lifecycle.md | 79 +++++----- docs/vue/navigation.md | 93 ++--------- docs/vue/performance.md | 28 +--- docs/vue/slides.md | 108 +++---------- docs/vue/troubleshooting.md | 20 +-- docs/vue/utility-functions.md | 72 ++++----- docs/vue/virtual-scroll.md | 19 +-- .../global/Playground/stackblitz.utils.ts | 2 - static/code/stackblitz/v7/vue/App.vue | 14 +- .../stackblitz/v7/vue/App.withContent.vue | 14 +- static/code/stackblitz/v7/vue/env.d.ts | 8 - static/code/stackblitz/v8/vue/App.vue | 14 +- .../stackblitz/v8/vue/App.withContent.vue | 14 +- static/code/stackblitz/v8/vue/env.d.ts | 8 - .../accordion/accessibility/animations/vue.md | 13 +- static/usage/v7/accordion/basic/vue.md | 12 +- .../advanced-expansion-styles/vue.md | 12 +- .../customization/expansion-styles/vue.md | 12 +- .../v7/accordion/customization/icons/vue.md | 15 +- .../v7/accordion/customization/theming/vue.md | 15 +- .../usage/v7/accordion/disable/group/vue.md | 13 +- .../v7/accordion/disable/individual/vue.md | 13 +- .../usage/v7/accordion/listen-changes/vue.md | 33 ++-- static/usage/v7/accordion/multiple/vue.md | 12 +- .../usage/v7/accordion/readonly/group/vue.md | 12 +- .../v7/accordion/readonly/individual/vue.md | 12 +- static/usage/v7/accordion/toggle/vue.md | 40 ++--- .../usage/v7/action-sheet/controller/vue.md | 63 ++++---- .../v7/action-sheet/inline/isOpen/vue.md | 63 ++++---- .../v7/action-sheet/inline/trigger/vue.md | 51 +++---- .../action-sheet/role-info-on-dismiss/vue.md | 60 +++----- .../theming/css-properties/vue.md | 51 +++---- .../v7/action-sheet/theming/styling/vue.md | 51 +++---- static/usage/v7/alert/buttons/vue.md | 2 +- static/usage/v7/alert/customization/vue.md | 2 +- static/usage/v7/alert/inputs/radios/vue.md | 2 +- .../usage/v7/alert/inputs/text-inputs/vue.md | 2 +- .../v7/alert/presenting/controller/vue.md | 2 +- .../usage/v7/alert/presenting/isOpen/vue.md | 2 +- .../usage/v7/alert/presenting/trigger/vue.md | 2 +- static/usage/v7/animations/basic/vue.md | 47 ++---- .../animations/before-and-after-hooks/vue.md | 85 +++++------ static/usage/v7/animations/chain/vue.md | 123 +++++++-------- static/usage/v7/animations/gesture/vue.md | 118 +++++++------- static/usage/v7/animations/group/vue.md | 87 +++++------ static/usage/v7/animations/keyframes/vue.md | 59 +++---- .../usage/v7/animations/modal-override/vue.md | 74 ++++----- .../v7/animations/preference-based/vue.md | 47 ++---- static/usage/v7/avatar/basic/vue.md | 7 +- static/usage/v7/avatar/chip/vue.md | 7 +- static/usage/v7/avatar/item/vue.md | 7 +- .../v7/avatar/theming/css-properties/vue.md | 7 +- .../v7/back-button/basic/vue/example_vue.md | 11 +- .../v7/back-button/basic/vue/page_one_vue.md | 11 +- .../v7/back-button/basic/vue/page_two_vue.md | 6 +- .../v7/back-button/custom/vue/example_vue.md | 11 +- .../v7/back-button/custom/vue/page_one_vue.md | 11 +- .../v7/back-button/custom/vue/page_two_vue.md | 9 +- static/usage/v7/backdrop/basic/vue.md | 7 +- static/usage/v7/backdrop/styling/vue.md | 7 +- static/usage/v7/badge/basic/vue.md | 7 +- static/usage/v7/badge/theming/colors/vue.md | 7 +- .../v7/badge/theming/css-properties/vue.md | 7 +- static/usage/v7/breadcrumbs/basic/vue.md | 7 +- .../collapsing-items/expand-on-click/vue.md | 22 +-- .../items-before-after/vue.md | 7 +- .../collapsing-items/max-items/vue.md | 7 +- .../collapsing-items/popover-on-click/vue.md | 27 ++-- .../icons/custom-separators/vue.md | 10 +- .../breadcrumbs/icons/icons-on-items/vue.md | 10 +- .../v7/breadcrumbs/theming/colors/vue.md | 7 +- .../breadcrumbs/theming/css-properties/vue.md | 7 +- static/usage/v7/button/basic/vue.md | 7 +- static/usage/v7/button/expand/vue.md | 7 +- static/usage/v7/button/fill/vue.md | 7 +- static/usage/v7/button/icons/vue.md | 10 +- static/usage/v7/button/shape/vue.md | 7 +- static/usage/v7/button/size/vue.md | 7 +- static/usage/v7/button/text-wrapping/vue.md | 7 +- static/usage/v7/button/theming/colors/vue.md | 7 +- .../v7/button/theming/css-properties/vue.md | 7 +- static/usage/v7/buttons/basic/vue.md | 7 +- static/usage/v7/buttons/placement/vue.md | 7 +- static/usage/v7/buttons/types/vue.md | 10 +- static/usage/v7/card/basic/vue.md | 7 +- static/usage/v7/card/buttons/vue.md | 7 +- static/usage/v7/card/list/vue.md | 7 +- static/usage/v7/card/media/vue.md | 7 +- static/usage/v7/card/theming/colors/vue.md | 7 +- .../v7/card/theming/css-properties/vue.md | 7 +- static/usage/v7/checkbox/alignment/vue.md | 9 +- static/usage/v7/checkbox/basic/vue.md | 7 +- static/usage/v7/checkbox/indeterminate/vue.md | 7 +- static/usage/v7/checkbox/justify/vue.md | 7 +- static/usage/v7/checkbox/label-link/vue.md | 7 +- .../usage/v7/checkbox/label-placement/vue.md | 7 +- .../v7/checkbox/theming/css-properties/vue.md | 7 +- static/usage/v7/chip/basic/vue.md | 7 +- static/usage/v7/chip/slots/vue.md | 14 +- static/usage/v7/chip/theming/colors/vue.md | 7 +- .../v7/chip/theming/css-properties/vue.md | 7 +- static/usage/v7/content/basic/vue.md | 7 +- static/usage/v7/content/fixed/vue.md | 7 +- static/usage/v7/content/fullscreen/vue.md | 7 +- static/usage/v7/content/header-footer/vue.md | 7 +- static/usage/v7/content/scroll-events/vue.md | 28 ++-- static/usage/v7/content/scroll-methods/vue.md | 32 ++-- static/usage/v7/content/theming/colors/vue.md | 7 +- .../v7/content/theming/css-properties/vue.md | 7 +- .../content/theming/css-shadow-parts/vue.md | 7 +- .../usage/v7/content/theming/safe-area/vue.md | 9 +- static/usage/v7/datetime-button/basic/vue.md | 7 +- .../v7/datetime-button/format-options/vue.md | 3 +- static/usage/v7/datetime/basic/vue.md | 7 +- .../buttons/customizing-button-texts/vue.md | 7 +- .../buttons/customizing-buttons/vue.md | 18 +-- .../showing-confirmation-buttons/vue.md | 7 +- .../datetime/date-constraints/advanced/vue.md | 28 ++-- .../datetime/date-constraints/max-min/vue.md | 7 +- .../datetime/date-constraints/values/vue.md | 7 +- .../usage/v7/datetime/format-options/vue.md | 3 +- .../v7/datetime/highlightedDates/array/vue.md | 56 ++++--- .../datetime/highlightedDates/callback/vue.md | 44 +++--- .../localization/custom-locale/vue.md | 7 +- .../localization/first-day-of-week/vue.md | 7 +- .../datetime/localization/hour-cycle/vue.md | 7 +- .../localization/locale-extension-tags/vue.md | 7 +- .../datetime/localization/time-label/vue.md | 7 +- static/usage/v7/datetime/multiple/vue.md | 7 +- .../v7/datetime/presentation/date/vue.md | 7 +- .../presentation/month-and-year/vue.md | 7 +- .../v7/datetime/presentation/time/vue.md | 7 +- .../v7/datetime/presentation/wheel/vue.md | 7 +- .../v7/datetime/styling/calendar-days/vue.md | 45 +++--- .../v7/datetime/styling/global-theming/vue.md | 7 +- .../v7/datetime/styling/wheel-styling/vue.md | 7 +- static/usage/v7/datetime/theming/vue.md | 7 +- .../datetime/title/customizing-title/vue.md | 7 +- .../title/showing-default-title/vue.md | 7 +- static/usage/v7/fab/basic/vue.md | 10 +- static/usage/v7/fab/button-sizing/vue.md | 10 +- static/usage/v7/fab/list-side/vue.md | 10 +- static/usage/v7/fab/positioning/vue.md | 10 +- static/usage/v7/fab/safe-area/vue.md | 14 +- static/usage/v7/fab/theming/colors/vue.md | 10 +- .../fab/theming/css-custom-properties/vue.md | 10 +- .../v7/fab/theming/css-shadow-parts/vue.md | 10 +- static/usage/v7/footer/basic/vue.md | 7 +- .../v7/footer/custom-scroll-target/vue.md | 7 +- static/usage/v7/footer/fade/vue.md | 7 +- static/usage/v7/footer/no-border/vue.md | 7 +- static/usage/v7/footer/translucent/vue.md | 7 +- static/usage/v7/gestures/basic/vue.md | 75 ++++----- static/usage/v7/gestures/double-click/vue.md | 82 +++++----- static/usage/v7/grid/basic/vue.md | 7 +- .../v7/grid/customizing/column-number/vue.md | 7 +- .../usage/v7/grid/customizing/padding/vue.md | 7 +- static/usage/v7/grid/customizing/width/vue.md | 7 +- static/usage/v7/grid/fixed/vue.md | 7 +- .../usage/v7/grid/horizontal-alignment/vue.md | 7 +- static/usage/v7/grid/offset-responsive/vue.md | 7 +- static/usage/v7/grid/offset/vue.md | 7 +- .../usage/v7/grid/push-pull-responsive/vue.md | 7 +- static/usage/v7/grid/push-pull/vue.md | 7 +- static/usage/v7/grid/size-auto/vue.md | 7 +- static/usage/v7/grid/size-responsive/vue.md | 7 +- static/usage/v7/grid/size/vue.md | 7 +- .../usage/v7/grid/vertical-alignment/vue.md | 7 +- static/usage/v7/header/basic/vue.md | 7 +- static/usage/v7/header/condense/vue.md | 7 +- .../v7/header/custom-scroll-target/vue.md | 7 +- static/usage/v7/header/fade/vue.md | 7 +- static/usage/v7/header/no-border/vue.md | 7 +- static/usage/v7/header/translucent/vue.md | 7 +- static/usage/v7/icon/basic/vue.md | 10 +- static/usage/v7/img/basic/vue.md | 7 +- static/usage/v7/infinite-scroll/basic/vue.md | 43 ++---- .../custom-infinite-scroll-content/vue.md | 38 +---- .../infinite-scroll-content/vue.md | 28 +--- static/usage/v7/input/basic/vue.md | 7 +- static/usage/v7/input/clear/vue.md | 7 +- .../usage/v7/input/counter-alignment/vue.md | 2 +- static/usage/v7/input/counter/vue.md | 2 +- static/usage/v7/input/fill/vue.md | 7 +- static/usage/v7/input/filtering/vue.md | 43 +++--- static/usage/v7/input/helper-error/vue.md | 55 +++---- static/usage/v7/input/label-placement/vue.md | 7 +- static/usage/v7/input/label-slot/vue.md | 7 +- static/usage/v7/input/no-visible-label/vue.md | 7 +- static/usage/v7/input/start-end-slots/vue.md | 16 +- static/usage/v7/input/theming/colors/vue.md | 7 +- .../v7/input/theming/css-properties/vue.md | 7 +- static/usage/v7/input/types/vue.md | 7 +- static/usage/v7/item-divider/basic/vue.md | 7 +- .../v7/item-divider/theming/colors/vue.md | 7 +- .../theming/css-properties/vue.md | 7 +- static/usage/v7/item-group/basic/vue.md | 7 +- .../usage/v7/item-group/sliding-items/vue.md | 7 +- static/usage/v7/item-sliding/basic/vue.md | 7 +- .../usage/v7/item-sliding/expandable/vue.md | 7 +- static/usage/v7/item-sliding/icons/vue.md | 10 +- static/usage/v7/item/basic/vue.md | 7 +- static/usage/v7/item/buttons/vue.md | 10 +- static/usage/v7/item/clickable/vue.md | 7 +- .../v7/item/content-types/actions/vue.md | 23 +-- .../v7/item/content-types/controls/vue.md | 16 +- .../v7/item/content-types/metadata/vue.md | 21 +-- .../content-types/supporting-visuals/vue.md | 16 +- .../usage/v7/item/content-types/text/vue.md | 19 +-- static/usage/v7/item/detail-arrows/vue.md | 12 +- static/usage/v7/item/inputs/vue.md | 7 +- static/usage/v7/item/lines/vue.md | 10 +- static/usage/v7/item/media/vue.md | 7 +- static/usage/v7/item/theming/colors/vue.md | 7 +- .../v7/item/theming/css-properties/vue.md | 7 +- .../v7/item/theming/css-shadow-parts/vue.md | 7 +- .../v7/item/theming/input-highlight/vue.md | 6 +- static/usage/v7/keyboard/enterkeyhint/vue.md | 11 +- static/usage/v7/keyboard/inputmode/vue.md | 11 +- static/usage/v7/label/basic/vue.md | 7 +- static/usage/v7/label/input/vue.md | 6 +- static/usage/v7/label/item/vue.md | 7 +- static/usage/v7/label/theming/colors/vue.md | 7 +- .../v7/layout/dynamic-font-scaling/vue.md | 32 +--- static/usage/v7/list-header/basic/vue.md | 7 +- static/usage/v7/list-header/buttons/vue.md | 7 +- static/usage/v7/list-header/lines/vue.md | 7 +- .../v7/list-header/theming/colors/vue.md | 7 +- .../list-header/theming/css-properties/vue.md | 7 +- static/usage/v7/list/basic/vue.md | 7 +- static/usage/v7/list/inset/vue.md | 7 +- static/usage/v7/list/lines/vue.md | 7 +- static/usage/v7/loading/controller/vue.md | 24 +-- static/usage/v7/loading/inline/vue.md | 6 +- static/usage/v7/loading/spinners/vue.md | 7 +- static/usage/v7/loading/theming/vue.md | 7 +- static/usage/v7/menu/basic/vue.md | 16 +- static/usage/v7/menu/multiple/vue.md | 58 +++---- static/usage/v7/menu/sides/vue.md | 16 +- static/usage/v7/menu/theming/vue.md | 16 +- static/usage/v7/menu/toggle/vue.md | 16 +- static/usage/v7/menu/type/vue.md | 25 +-- .../usage/v7/modal/can-dismiss/boolean/vue.md | 49 +++--- .../v7/modal/can-dismiss/function/vue.md | 66 ++++---- static/usage/v7/modal/card/basic/vue.md | 43 ++---- .../v7/modal/controller/vue/example_vue.md | 2 +- .../v7/modal/controller/vue/modal_vue.md | 5 +- static/usage/v7/modal/custom-dialogs/vue.md | 2 +- static/usage/v7/modal/inline/basic/vue.md | 2 +- static/usage/v7/modal/inline/is-open/vue.md | 2 +- .../usage/v7/modal/performance/mount/vue.md | 4 +- .../usage/v7/modal/sheet/auto-height/vue.md | 2 +- .../v7/modal/sheet/background-content/vue.md | 2 +- static/usage/v7/modal/sheet/basic/vue.md | 2 +- .../v7/modal/sheet/handle-behavior/vue.md | 2 +- .../usage/v7/modal/styling/animations/vue.md | 2 +- static/usage/v7/modal/styling/theming/vue.md | 2 +- .../nav/modal-navigation/vue/example_vue.md | 31 ++-- .../nav/modal-navigation/vue/page_one_vue.md | 20 +-- .../modal-navigation/vue/page_three_vue.md | 29 ++-- .../nav/modal-navigation/vue/page_two_vue.md | 20 +-- .../usage/v7/nav/nav-link/vue/example_vue.md | 11 +- .../usage/v7/nav/nav-link/vue/page_one_vue.md | 11 +- .../v7/nav/nav-link/vue/page_three_vue.md | 6 +- .../usage/v7/nav/nav-link/vue/page_two_vue.md | 20 +-- static/usage/v7/note/basic/vue.md | 7 +- static/usage/v7/note/item/vue.md | 7 +- static/usage/v7/note/theming/colors/vue.md | 7 +- .../v7/note/theming/css-properties/vue.md | 7 +- static/usage/v7/picker/controller/vue.md | 82 +++++----- static/usage/v7/picker/inline/isOpen/vue.md | 77 +++++----- static/usage/v7/picker/inline/trigger/vue.md | 66 ++++---- static/usage/v7/picker/multiple-column/vue.md | 118 +++++++------- .../popover/customization/positioning/vue.md | 7 +- .../v7/popover/customization/sizing/vue.md | 7 +- .../v7/popover/customization/styling/vue.md | 7 +- static/usage/v7/popover/nested/vue.md | 7 +- .../usage/v7/popover/performance/mount/vue.md | 7 +- .../presenting/controller/vue/example_vue.md | 23 ++- .../presenting/controller/vue/popover_vue.md | 8 +- .../popover/presenting/inline-isopen/vue.md | 26 ++-- .../popover/presenting/inline-trigger/vue.md | 7 +- static/usage/v7/progress-bar/buffer/vue.md | 43 +++--- .../usage/v7/progress-bar/determinate/vue.md | 36 ++--- .../v7/progress-bar/indeterminate/vue.md | 7 +- .../v7/progress-bar/theming/colors/vue.md | 7 +- .../theming/css-properties/vue.md | 7 +- .../theming/css-shadow-parts/vue.md | 7 +- static/usage/v7/radio/alignment/vue.md | 7 +- static/usage/v7/radio/basic/vue.md | 7 +- static/usage/v7/radio/empty-selection/vue.md | 7 +- static/usage/v7/radio/justify/vue.md | 7 +- static/usage/v7/radio/label-placement/vue.md | 7 +- static/usage/v7/radio/label-wrap/vue.md | 7 +- static/usage/v7/radio/theming/colors/vue.md | 7 +- .../v7/radio/theming/css-properties/vue.md | 7 +- .../v7/radio/theming/css-shadow-parts/vue.md | 7 +- .../usage/v7/radio/using-comparewith/vue.md | 59 +++---- static/usage/v7/range/basic/vue.md | 7 +- static/usage/v7/range/dual-knobs/vue.md | 7 +- static/usage/v7/range/ion-change-event/vue.md | 14 +- .../usage/v7/range/ion-knob-move-event/vue.md | 21 +-- static/usage/v7/range/label-slot/vue.md | 7 +- static/usage/v7/range/labels/vue.md | 7 +- static/usage/v7/range/no-visible-label/vue.md | 7 +- static/usage/v7/range/pins/vue.md | 12 +- static/usage/v7/range/slots/vue.md | 13 +- static/usage/v7/range/snapping-ticks/vue.md | 7 +- .../v7/range/theming/css-properties/vue.md | 7 +- .../v7/range/theming/css-shadow-parts/vue.md | 7 +- static/usage/v7/refresher/advanced/vue.md | 86 +++++------ static/usage/v7/refresher/basic/vue.md | 22 +-- .../usage/v7/refresher/custom-content/vue.md | 40 ++--- .../v7/refresher/custom-scroll-target/vue.md | 22 +-- .../usage/v7/refresher/pull-properties/vue.md | 22 +-- static/usage/v7/reorder/basic/vue.md | 34 ++--- static/usage/v7/reorder/custom-icon/vue.md | 29 ++-- .../v7/reorder/custom-scroll-target/vue.md | 38 ++--- .../usage/v7/reorder/toggling-disabled/vue.md | 47 +++--- static/usage/v7/reorder/updating-data/vue.md | 36 ++--- static/usage/v7/reorder/wrapper/vue.md | 34 ++--- static/usage/v7/ripple-effect/basic/vue.md | 7 +- .../usage/v7/ripple-effect/customizing/vue.md | 7 +- static/usage/v7/ripple-effect/type/vue.md | 7 +- static/usage/v7/searchbar/basic/vue.md | 2 +- .../usage/v7/searchbar/cancel-button/vue.md | 2 +- static/usage/v7/searchbar/clear-button/vue.md | 10 +- static/usage/v7/searchbar/debounce/vue.md | 46 +++--- static/usage/v7/searchbar/search-icon/vue.md | 10 +- .../usage/v7/searchbar/theming/colors/vue.md | 7 +- .../searchbar/theming/css-properties/vue.md | 7 +- static/usage/v7/segment-button/basic/vue.md | 7 +- static/usage/v7/segment-button/layout/vue.md | 10 +- .../theming/css-properties/vue.md | 7 +- .../theming/css-shadow-parts/vue.md | 7 +- static/usage/v7/segment/basic/vue.md | 7 +- static/usage/v7/segment/scrollable/vue.md | 21 +-- static/usage/v7/segment/theming/colors/vue.md | 7 +- .../v7/segment/theming/css-properties/vue.md | 7 +- .../v7/select/basic/multiple-selection/vue.md | 7 +- .../basic/responding-to-interaction/vue.md | 28 ++-- .../v7/select/basic/single-selection/vue.md | 7 +- .../select/customization/button-text/vue.md | 7 +- .../customization/custom-toggle-icons/vue.md | 10 +- .../customization/icon-flip-behavior/vue.md | 10 +- .../customization/interface-options/vue.md | 44 ++---- .../customization/styling-select/vue.md | 7 +- static/usage/v7/select/fill/vue.md | 7 +- .../v7/select/interfaces/action-sheet/vue.md | 7 +- .../usage/v7/select/interfaces/popover/vue.md | 7 +- static/usage/v7/select/justify/vue.md | 7 +- static/usage/v7/select/label-placement/vue.md | 7 +- static/usage/v7/select/label-slot/vue.md | 7 +- .../usage/v7/select/no-visible-label/vue.md | 7 +- .../multiple-selection/vue.md | 70 ++++----- .../using-comparewith/vue.md | 56 +++---- static/usage/v7/select/start-end-slots/vue.md | 17 +-- .../v7/select/typeahead/vue/example_vue.md | 95 ++++++------ .../typeahead/vue/typeahead_component_vue.md | 144 ++++++++---------- static/usage/v7/skeleton-text/basic/vue.md | 27 +--- .../theming/css-properties/vue.md | 14 +- static/usage/v7/spinner/basic/vue.md | 7 +- static/usage/v7/spinner/theming/colors/vue.md | 7 +- .../v7/spinner/theming/css-properties/vue.md | 7 +- .../usage/v7/spinner/theming/resizing/vue.md | 7 +- static/usage/v7/split-pane/basic/vue.md | 7 +- .../split-pane/theming/css-properties/vue.md | 7 +- static/usage/v7/tabs/router/vue.md | 7 +- static/usage/v7/tabs/router/vue/app_vue.md | 10 +- .../usage/v7/tabs/router/vue/example_vue.md | 15 +- .../usage/v7/tabs/router/vue/home_page_vue.md | 6 +- .../v7/tabs/router/vue/library_page_vue.md | 6 +- .../v7/tabs/router/vue/radio_page_vue.md | 6 +- .../v7/tabs/router/vue/search_page_vue.md | 6 +- static/usage/v7/text/basic/vue.md | 12 +- static/usage/v7/textarea/autogrow/vue.md | 7 +- static/usage/v7/textarea/basic/vue.md | 7 +- static/usage/v7/textarea/clear-on-edit/vue.md | 7 +- static/usage/v7/textarea/counter/vue.md | 14 +- static/usage/v7/textarea/fill/vue.md | 7 +- static/usage/v7/textarea/helper-error/vue.md | 55 +++---- .../usage/v7/textarea/label-placement/vue.md | 7 +- static/usage/v7/textarea/label-slot/vue.md | 7 +- .../usage/v7/textarea/no-visible-label/vue.md | 7 +- .../usage/v7/textarea/start-end-slots/vue.md | 16 +- static/usage/v7/textarea/theming/vue.md | 7 +- .../v7/theming/automatic-dark-mode/vue.md | 43 ++---- .../usage/v7/theming/manual-dark-mode/vue.md | 91 ++++------- static/usage/v7/thumbnail/basic/vue.md | 7 +- static/usage/v7/thumbnail/item/vue.md | 7 +- .../thumbnail/theming/css-properties/vue.md | 7 +- static/usage/v7/title/basic/vue.md | 7 +- .../collapsible-large-title/basic/vue.md | 7 +- .../collapsible-large-title/buttons/vue.md | 7 +- .../v7/title/theming/css-properties/vue.md | 7 +- static/usage/v7/toast/buttons/vue.md | 54 +++---- static/usage/v7/toast/icon/vue.md | 11 +- static/usage/v7/toast/inline/basic/vue.md | 14 +- static/usage/v7/toast/inline/is-open/vue.md | 19 +-- static/usage/v7/toast/layout/vue.md | 20 +-- static/usage/v7/toast/position-anchor/vue.md | 15 +- .../v7/toast/presenting/controller/vue.md | 21 +-- static/usage/v7/toast/theming/vue.md | 19 +-- static/usage/v7/toggle/alignment/vue.md | 9 +- static/usage/v7/toggle/basic/vue.md | 7 +- static/usage/v7/toggle/justify/vue.md | 7 +- static/usage/v7/toggle/label-placement/vue.md | 7 +- static/usage/v7/toggle/list/vue.md | 7 +- static/usage/v7/toggle/on-off/vue.md | 7 +- static/usage/v7/toggle/theming/colors/vue.md | 7 +- .../v7/toggle/theming/css-properties/vue.md | 7 +- .../v7/toggle/theming/css-shadow-parts/vue.md | 7 +- static/usage/v7/toolbar/basic/vue.md | 7 +- static/usage/v7/toolbar/buttons/vue.md | 10 +- static/usage/v7/toolbar/progress-bars/vue.md | 7 +- static/usage/v7/toolbar/searchbars/vue.md | 7 +- static/usage/v7/toolbar/segments/vue.md | 7 +- static/usage/v7/toolbar/theming/colors/vue.md | 7 +- .../v7/toolbar/theming/css-properties/vue.md | 7 +- .../accordion/accessibility/animations/vue.md | 13 +- static/usage/v8/accordion/basic/vue.md | 12 +- .../advanced-expansion-styles/vue.md | 12 +- .../customization/expansion-styles/vue.md | 12 +- .../v8/accordion/customization/icons/vue.md | 15 +- .../v8/accordion/customization/theming/vue.md | 15 +- .../usage/v8/accordion/disable/group/vue.md | 13 +- .../v8/accordion/disable/individual/vue.md | 13 +- .../usage/v8/accordion/listen-changes/vue.md | 33 ++-- static/usage/v8/accordion/multiple/vue.md | 12 +- .../usage/v8/accordion/readonly/group/vue.md | 12 +- .../v8/accordion/readonly/individual/vue.md | 12 +- static/usage/v8/accordion/toggle/vue.md | 40 ++--- .../usage/v8/action-sheet/controller/vue.md | 63 ++++---- .../v8/action-sheet/inline/isOpen/vue.md | 63 ++++---- .../v8/action-sheet/inline/trigger/vue.md | 51 +++---- .../action-sheet/role-info-on-dismiss/vue.md | 60 +++----- .../theming/css-properties/vue.md | 51 +++---- .../v8/action-sheet/theming/styling/vue.md | 51 +++---- static/usage/v8/alert/buttons/vue.md | 2 +- static/usage/v8/alert/customization/vue.md | 2 +- static/usage/v8/alert/inputs/radios/vue.md | 2 +- .../usage/v8/alert/inputs/text-inputs/vue.md | 2 +- .../v8/alert/presenting/controller/vue.md | 2 +- .../usage/v8/alert/presenting/isOpen/vue.md | 2 +- .../usage/v8/alert/presenting/trigger/vue.md | 2 +- static/usage/v8/animations/basic/vue.md | 47 ++---- .../animations/before-and-after-hooks/vue.md | 85 +++++------ static/usage/v8/animations/chain/vue.md | 123 +++++++-------- static/usage/v8/animations/gesture/vue.md | 118 +++++++------- static/usage/v8/animations/group/vue.md | 87 +++++------ static/usage/v8/animations/keyframes/vue.md | 59 +++---- .../usage/v8/animations/modal-override/vue.md | 74 ++++----- .../v8/animations/preference-based/vue.md | 47 ++---- static/usage/v8/app/set-focus/vue.md | 22 +-- static/usage/v8/avatar/basic/vue.md | 7 +- static/usage/v8/avatar/chip/vue.md | 7 +- static/usage/v8/avatar/item/vue.md | 7 +- .../v8/avatar/theming/css-properties/vue.md | 7 +- .../v8/back-button/basic/vue/example_vue.md | 11 +- .../v8/back-button/basic/vue/page_one_vue.md | 11 +- .../v8/back-button/basic/vue/page_two_vue.md | 6 +- .../v8/back-button/custom/vue/example_vue.md | 11 +- .../v8/back-button/custom/vue/page_one_vue.md | 11 +- .../v8/back-button/custom/vue/page_two_vue.md | 9 +- static/usage/v8/backdrop/basic/vue.md | 7 +- static/usage/v8/backdrop/styling/vue.md | 7 +- static/usage/v8/badge/basic/vue.md | 7 +- static/usage/v8/badge/inside-tab-bar/vue.md | 16 +- static/usage/v8/badge/theming/colors/vue.md | 7 +- .../v8/badge/theming/css-properties/vue.md | 7 +- static/usage/v8/breadcrumbs/basic/vue.md | 7 +- .../collapsing-items/expand-on-click/vue.md | 22 +-- .../items-before-after/vue.md | 7 +- .../collapsing-items/max-items/vue.md | 7 +- .../collapsing-items/popover-on-click/vue.md | 27 ++-- .../icons/custom-separators/vue.md | 10 +- .../breadcrumbs/icons/icons-on-items/vue.md | 10 +- .../v8/breadcrumbs/theming/colors/vue.md | 7 +- .../breadcrumbs/theming/css-properties/vue.md | 7 +- static/usage/v8/button/basic/vue.md | 7 +- static/usage/v8/button/expand/vue.md | 7 +- static/usage/v8/button/fill/vue.md | 7 +- static/usage/v8/button/icons/vue.md | 10 +- static/usage/v8/button/shape/vue.md | 10 +- static/usage/v8/button/size/vue.md | 7 +- static/usage/v8/button/text-wrapping/vue.md | 7 +- static/usage/v8/button/theming/colors/vue.md | 7 +- .../v8/button/theming/css-properties/vue.md | 7 +- static/usage/v8/buttons/basic/vue.md | 7 +- static/usage/v8/buttons/placement/vue.md | 7 +- static/usage/v8/buttons/types/vue.md | 10 +- static/usage/v8/card/basic/vue.md | 7 +- static/usage/v8/card/buttons/vue.md | 7 +- static/usage/v8/card/list/vue.md | 7 +- static/usage/v8/card/media/vue.md | 7 +- static/usage/v8/card/theming/colors/vue.md | 7 +- .../v8/card/theming/css-properties/vue.md | 7 +- static/usage/v8/checkbox/alignment/vue.md | 9 +- static/usage/v8/checkbox/basic/vue.md | 7 +- static/usage/v8/checkbox/helper-error/vue.md | 40 ++--- static/usage/v8/checkbox/indeterminate/vue.md | 7 +- static/usage/v8/checkbox/justify/vue.md | 7 +- static/usage/v8/checkbox/label-link/vue.md | 7 +- .../usage/v8/checkbox/label-placement/vue.md | 7 +- .../v8/checkbox/theming/css-properties/vue.md | 7 +- static/usage/v8/chip/basic/vue.md | 7 +- static/usage/v8/chip/slots/vue.md | 14 +- static/usage/v8/chip/theming/colors/vue.md | 7 +- .../v8/chip/theming/css-properties/vue.md | 7 +- static/usage/v8/content/basic/vue.md | 7 +- static/usage/v8/content/fixed/vue.md | 7 +- static/usage/v8/content/fullscreen/vue.md | 7 +- static/usage/v8/content/header-footer/vue.md | 7 +- static/usage/v8/content/scroll-events/vue.md | 28 ++-- static/usage/v8/content/scroll-methods/vue.md | 32 ++-- static/usage/v8/content/theming/colors/vue.md | 7 +- .../v8/content/theming/css-properties/vue.md | 7 +- .../content/theming/css-shadow-parts/vue.md | 7 +- .../usage/v8/content/theming/safe-area/vue.md | 9 +- static/usage/v8/datetime-button/basic/vue.md | 7 +- .../v8/datetime-button/format-options/vue.md | 3 +- static/usage/v8/datetime/basic/vue.md | 7 +- .../buttons/customizing-button-texts/vue.md | 7 +- .../buttons/customizing-buttons/vue.md | 18 +-- .../showing-confirmation-buttons/vue.md | 7 +- .../datetime/date-constraints/advanced/vue.md | 28 ++-- .../datetime/date-constraints/max-min/vue.md | 7 +- .../datetime/date-constraints/values/vue.md | 7 +- .../usage/v8/datetime/format-options/vue.md | 3 +- .../v8/datetime/highlightedDates/array/vue.md | 60 ++++---- .../datetime/highlightedDates/callback/vue.md | 46 +++--- .../localization/custom-locale/vue.md | 7 +- .../localization/first-day-of-week/vue.md | 7 +- .../datetime/localization/hour-cycle/vue.md | 7 +- .../localization/locale-extension-tags/vue.md | 7 +- .../datetime/localization/time-label/vue.md | 7 +- static/usage/v8/datetime/multiple/vue.md | 7 +- .../v8/datetime/presentation/date/vue.md | 7 +- .../presentation/month-and-year/vue.md | 7 +- .../v8/datetime/presentation/time/vue.md | 7 +- .../v8/datetime/presentation/wheel/vue.md | 7 +- .../v8/datetime/show-adjacent-days/vue.md | 7 +- .../v8/datetime/styling/calendar-days/vue.md | 45 +++--- .../styling/global-theming/vue/example_vue.md | 7 +- .../v8/datetime/styling/wheel-styling/vue.md | 7 +- .../datetime/title/customizing-title/vue.md | 7 +- .../title/showing-default-title/vue.md | 7 +- static/usage/v8/fab/basic/vue.md | 10 +- static/usage/v8/fab/before-content/vue.md | 51 ++----- static/usage/v8/fab/button-sizing/vue.md | 10 +- static/usage/v8/fab/list-side/vue.md | 10 +- static/usage/v8/fab/positioning/vue.md | 10 +- static/usage/v8/fab/safe-area/vue.md | 14 +- static/usage/v8/fab/theming/colors/vue.md | 10 +- .../fab/theming/css-custom-properties/vue.md | 10 +- .../v8/fab/theming/css-shadow-parts/vue.md | 10 +- static/usage/v8/footer/basic/vue.md | 7 +- .../v8/footer/custom-scroll-target/vue.md | 7 +- static/usage/v8/footer/fade/vue.md | 7 +- static/usage/v8/footer/no-border/vue.md | 7 +- static/usage/v8/footer/translucent/vue.md | 7 +- static/usage/v8/gestures/basic/vue.md | 75 ++++----- static/usage/v8/gestures/double-click/vue.md | 82 +++++----- static/usage/v8/grid/basic/vue.md | 7 +- .../v8/grid/customizing/column-number/vue.md | 7 +- .../usage/v8/grid/customizing/padding/vue.md | 7 +- static/usage/v8/grid/customizing/width/vue.md | 7 +- static/usage/v8/grid/fixed/vue.md | 7 +- .../usage/v8/grid/horizontal-alignment/vue.md | 7 +- static/usage/v8/grid/offset-responsive/vue.md | 7 +- static/usage/v8/grid/offset/vue.md | 7 +- .../usage/v8/grid/push-pull-responsive/vue.md | 7 +- static/usage/v8/grid/push-pull/vue.md | 7 +- static/usage/v8/grid/size-auto/vue.md | 7 +- static/usage/v8/grid/size-responsive/vue.md | 7 +- static/usage/v8/grid/size/vue.md | 7 +- .../usage/v8/grid/vertical-alignment/vue.md | 7 +- static/usage/v8/header/basic/vue.md | 7 +- static/usage/v8/header/condense/vue.md | 7 +- .../v8/header/custom-scroll-target/vue.md | 7 +- static/usage/v8/header/fade/vue.md | 7 +- static/usage/v8/header/no-border/vue.md | 7 +- static/usage/v8/header/translucent/vue.md | 7 +- static/usage/v8/icon/basic/vue.md | 10 +- static/usage/v8/img/basic/vue.md | 7 +- static/usage/v8/infinite-scroll/basic/vue.md | 43 ++---- .../custom-infinite-scroll-content/vue.md | 38 +---- .../infinite-scroll-content/vue.md | 28 +--- .../usage/v8/input-otp/theming/colors/vue.md | 1 - .../input-otp/theming/css-properties/vue.md | 1 - static/usage/v8/input/basic/vue.md | 7 +- static/usage/v8/input/clear/vue.md | 7 +- .../usage/v8/input/counter-alignment/vue.md | 2 +- static/usage/v8/input/counter/vue.md | 2 +- static/usage/v8/input/fill/vue.md | 7 +- static/usage/v8/input/filtering/vue.md | 43 +++--- static/usage/v8/input/helper-error/vue.md | 55 +++---- static/usage/v8/input/label-placement/vue.md | 7 +- static/usage/v8/input/label-slot/vue.md | 7 +- static/usage/v8/input/no-visible-label/vue.md | 7 +- static/usage/v8/input/start-end-slots/vue.md | 16 +- static/usage/v8/input/theming/colors/vue.md | 7 +- .../v8/input/theming/css-properties/vue.md | 7 +- static/usage/v8/input/types/vue.md | 7 +- static/usage/v8/item-divider/basic/vue.md | 7 +- .../v8/item-divider/theming/colors/vue.md | 7 +- .../theming/css-properties/vue.md | 7 +- static/usage/v8/item-group/basic/vue.md | 7 +- .../usage/v8/item-group/sliding-items/vue.md | 7 +- static/usage/v8/item-sliding/basic/vue.md | 7 +- .../usage/v8/item-sliding/expandable/vue.md | 7 +- static/usage/v8/item-sliding/icons/vue.md | 10 +- static/usage/v8/item/basic/vue.md | 7 +- static/usage/v8/item/buttons/vue.md | 10 +- static/usage/v8/item/clickable/vue.md | 7 +- .../v8/item/content-types/actions/vue.md | 23 +-- .../v8/item/content-types/controls/vue.md | 16 +- .../v8/item/content-types/metadata/vue.md | 21 +-- .../content-types/supporting-visuals/vue.md | 16 +- .../usage/v8/item/content-types/text/vue.md | 19 +-- static/usage/v8/item/detail-arrows/vue.md | 12 +- static/usage/v8/item/inputs/vue.md | 7 +- static/usage/v8/item/lines/vue.md | 10 +- static/usage/v8/item/media/vue.md | 7 +- static/usage/v8/item/theming/colors/vue.md | 7 +- .../v8/item/theming/css-properties/vue.md | 7 +- .../v8/item/theming/css-shadow-parts/vue.md | 7 +- .../v8/item/theming/input-highlight/vue.md | 6 +- static/usage/v8/keyboard/enterkeyhint/vue.md | 11 +- static/usage/v8/keyboard/inputmode/vue.md | 11 +- static/usage/v8/label/basic/vue.md | 7 +- static/usage/v8/label/input/vue.md | 6 +- static/usage/v8/label/item/vue.md | 7 +- static/usage/v8/label/theming/colors/vue.md | 7 +- .../v8/layout/dynamic-font-scaling/vue.md | 26 +--- static/usage/v8/list-header/basic/vue.md | 7 +- static/usage/v8/list-header/buttons/vue.md | 7 +- static/usage/v8/list-header/lines/vue.md | 7 +- .../v8/list-header/theming/colors/vue.md | 7 +- .../list-header/theming/css-properties/vue.md | 7 +- static/usage/v8/list/basic/vue.md | 7 +- static/usage/v8/list/inset/vue.md | 7 +- static/usage/v8/list/lines/vue.md | 7 +- static/usage/v8/loading/controller/vue.md | 24 +-- static/usage/v8/loading/inline/vue.md | 6 +- static/usage/v8/loading/spinners/vue.md | 7 +- static/usage/v8/loading/theming/vue.md | 7 +- static/usage/v8/menu/basic/vue.md | 16 +- static/usage/v8/menu/multiple/vue.md | 58 +++---- static/usage/v8/menu/sides/vue.md | 16 +- static/usage/v8/menu/theming/vue.md | 16 +- static/usage/v8/menu/toggle/vue.md | 16 +- static/usage/v8/menu/type/vue.md | 25 +-- .../usage/v8/modal/can-dismiss/boolean/vue.md | 49 +++--- .../v8/modal/can-dismiss/function/vue.md | 66 ++++---- static/usage/v8/modal/card/basic/vue.md | 43 ++---- .../v8/modal/controller/vue/example_vue.md | 2 +- .../v8/modal/controller/vue/modal_vue.md | 5 +- static/usage/v8/modal/custom-dialogs/vue.md | 2 +- static/usage/v8/modal/inline/basic/vue.md | 2 +- static/usage/v8/modal/inline/is-open/vue.md | 2 +- .../usage/v8/modal/performance/mount/vue.md | 4 +- .../usage/v8/modal/sheet/auto-height/vue.md | 2 +- .../v8/modal/sheet/background-content/vue.md | 2 +- static/usage/v8/modal/sheet/basic/vue.md | 2 +- .../v8/modal/sheet/expand-to-scroll/vue.md | 2 +- .../v8/modal/sheet/handle-behavior/vue.md | 2 +- .../usage/v8/modal/styling/animations/vue.md | 2 +- static/usage/v8/modal/styling/theming/vue.md | 2 +- .../nav/modal-navigation/vue/example_vue.md | 31 ++-- .../nav/modal-navigation/vue/page_one_vue.md | 20 +-- .../modal-navigation/vue/page_three_vue.md | 29 ++-- .../nav/modal-navigation/vue/page_two_vue.md | 20 +-- .../usage/v8/nav/nav-link/vue/example_vue.md | 11 +- .../usage/v8/nav/nav-link/vue/page_one_vue.md | 11 +- .../v8/nav/nav-link/vue/page_three_vue.md | 6 +- .../usage/v8/nav/nav-link/vue/page_two_vue.md | 20 +-- static/usage/v8/note/basic/vue.md | 7 +- static/usage/v8/note/item/vue.md | 7 +- static/usage/v8/note/theming/colors/vue.md | 7 +- .../v8/note/theming/css-properties/vue.md | 7 +- .../usage/v8/picker-legacy/controller/vue.md | 82 +++++----- .../v8/picker-legacy/inline/isOpen/vue.md | 77 +++++----- .../v8/picker-legacy/inline/trigger/vue.md | 66 ++++---- .../v8/picker-legacy/multiple-column/vue.md | 118 +++++++------- .../popover/customization/positioning/vue.md | 7 +- .../v8/popover/customization/sizing/vue.md | 7 +- .../v8/popover/customization/styling/vue.md | 7 +- static/usage/v8/popover/nested/vue.md | 7 +- .../usage/v8/popover/performance/mount/vue.md | 7 +- .../presenting/controller/vue/example_vue.md | 23 ++- .../presenting/controller/vue/popover_vue.md | 8 +- .../popover/presenting/inline-isopen/vue.md | 26 ++-- .../popover/presenting/inline-trigger/vue.md | 7 +- static/usage/v8/progress-bar/buffer/vue.md | 43 +++--- .../usage/v8/progress-bar/determinate/vue.md | 36 ++--- .../v8/progress-bar/indeterminate/vue.md | 7 +- .../v8/progress-bar/theming/colors/vue.md | 7 +- .../theming/css-properties/vue.md | 7 +- .../theming/css-shadow-parts/vue.md | 7 +- static/usage/v8/radio/alignment/vue.md | 7 +- static/usage/v8/radio/basic/vue.md | 7 +- static/usage/v8/radio/empty-selection/vue.md | 7 +- static/usage/v8/radio/helper-error/vue.md | 41 ++--- static/usage/v8/radio/justify/vue.md | 7 +- static/usage/v8/radio/label-placement/vue.md | 7 +- static/usage/v8/radio/label-wrap/vue.md | 7 +- static/usage/v8/radio/theming/colors/vue.md | 7 +- .../v8/radio/theming/css-properties/vue.md | 7 +- .../v8/radio/theming/css-shadow-parts/vue.md | 7 +- .../usage/v8/radio/using-comparewith/vue.md | 59 +++---- static/usage/v8/range/basic/vue.md | 7 +- static/usage/v8/range/dual-knobs/vue.md | 7 +- static/usage/v8/range/ion-change-event/vue.md | 14 +- .../usage/v8/range/ion-knob-move-event/vue.md | 21 +-- static/usage/v8/range/label-slot/vue.md | 7 +- static/usage/v8/range/labels/vue.md | 7 +- static/usage/v8/range/no-visible-label/vue.md | 7 +- static/usage/v8/range/pins/vue.md | 12 +- static/usage/v8/range/slots/vue.md | 13 +- static/usage/v8/range/snapping-ticks/vue.md | 7 +- .../v8/range/theming/css-properties/vue.md | 7 +- .../v8/range/theming/css-shadow-parts/vue.md | 7 +- static/usage/v8/refresher/advanced/vue.md | 86 +++++------ static/usage/v8/refresher/basic/vue.md | 22 +-- .../usage/v8/refresher/custom-content/vue.md | 40 ++--- .../v8/refresher/custom-scroll-target/vue.md | 22 +-- .../usage/v8/refresher/pull-properties/vue.md | 22 +-- static/usage/v8/reorder/basic/vue.md | 28 ++-- static/usage/v8/reorder/custom-icon/vue.md | 27 ++-- .../v8/reorder/custom-scroll-target/vue.md | 28 ++-- .../usage/v8/reorder/toggling-disabled/vue.md | 37 ++--- static/usage/v8/reorder/updating-data/vue.md | 34 ++--- static/usage/v8/reorder/wrapper/vue.md | 28 ++-- static/usage/v8/ripple-effect/basic/vue.md | 7 +- .../usage/v8/ripple-effect/customizing/vue.md | 7 +- static/usage/v8/ripple-effect/type/vue.md | 7 +- static/usage/v8/searchbar/basic/vue.md | 7 +- .../usage/v8/searchbar/cancel-button/vue.md | 10 +- static/usage/v8/searchbar/clear-button/vue.md | 10 +- static/usage/v8/searchbar/debounce/vue.md | 46 +++--- static/usage/v8/searchbar/search-icon/vue.md | 10 +- .../usage/v8/searchbar/theming/colors/vue.md | 7 +- .../searchbar/theming/css-properties/vue.md | 7 +- static/usage/v8/segment-button/basic/vue.md | 7 +- static/usage/v8/segment-button/layout/vue.md | 10 +- .../theming/css-properties/vue.md | 7 +- .../theming/css-shadow-parts/vue.md | 7 +- static/usage/v8/segment/basic/vue.md | 7 +- static/usage/v8/segment/scrollable/vue.md | 21 +-- static/usage/v8/segment/swipeable/vue.md | 7 +- static/usage/v8/segment/theming/colors/vue.md | 7 +- .../v8/segment/theming/css-properties/vue.md | 7 +- .../v8/select/basic/multiple-selection/vue.md | 7 +- .../basic/responding-to-interaction/vue.md | 28 ++-- .../v8/select/basic/single-selection/vue.md | 7 +- .../select/customization/button-text/vue.md | 7 +- .../customization/custom-toggle-icons/vue.md | 10 +- .../customization/icon-flip-behavior/vue.md | 10 +- .../customization/interface-options/vue.md | 55 +++---- .../customization/styling-select/vue.md | 7 +- static/usage/v8/select/fill/vue.md | 7 +- static/usage/v8/select/helper-error/vue.md | 55 +++---- .../v8/select/interfaces/action-sheet/vue.md | 7 +- .../usage/v8/select/interfaces/modal/vue.md | 7 +- .../usage/v8/select/interfaces/popover/vue.md | 7 +- static/usage/v8/select/justify/vue.md | 7 +- static/usage/v8/select/label-placement/vue.md | 7 +- static/usage/v8/select/label-slot/vue.md | 7 +- .../usage/v8/select/no-visible-label/vue.md | 7 +- .../multiple-selection/vue.md | 70 ++++----- .../using-comparewith/vue.md | 56 +++---- static/usage/v8/select/start-end-slots/vue.md | 17 +-- .../v8/select/typeahead/vue/example_vue.md | 95 ++++++------ .../typeahead/vue/typeahead_component_vue.md | 144 ++++++++---------- static/usage/v8/skeleton-text/basic/vue.md | 27 +--- .../theming/css-properties/vue.md | 14 +- static/usage/v8/spinner/basic/vue.md | 7 +- static/usage/v8/spinner/theming/colors/vue.md | 7 +- .../v8/spinner/theming/css-properties/vue.md | 7 +- .../usage/v8/spinner/theming/resizing/vue.md | 7 +- static/usage/v8/split-pane/basic/vue.md | 7 +- .../split-pane/theming/css-properties/vue.md | 7 +- static/usage/v8/tabs/basic/vue.md | 15 +- static/usage/v8/tabs/router/vue/app_vue.md | 10 +- .../usage/v8/tabs/router/vue/example_vue.md | 15 +- .../usage/v8/tabs/router/vue/home_page_vue.md | 6 +- .../v8/tabs/router/vue/library_page_vue.md | 6 +- .../v8/tabs/router/vue/radio_page_vue.md | 6 +- .../v8/tabs/router/vue/search_page_vue.md | 6 +- static/usage/v8/text/basic/vue.md | 12 +- static/usage/v8/textarea/autogrow/vue.md | 7 +- static/usage/v8/textarea/basic/vue.md | 7 +- static/usage/v8/textarea/clear-on-edit/vue.md | 7 +- static/usage/v8/textarea/counter/vue.md | 14 +- static/usage/v8/textarea/fill/vue.md | 7 +- static/usage/v8/textarea/helper-error/vue.md | 55 +++---- .../usage/v8/textarea/label-placement/vue.md | 7 +- static/usage/v8/textarea/label-slot/vue.md | 7 +- .../usage/v8/textarea/no-visible-label/vue.md | 7 +- .../usage/v8/textarea/start-end-slots/vue.md | 16 +- static/usage/v8/textarea/theming/vue.md | 7 +- .../always-dark-mode/vue/example_vue.md | 25 +-- .../vue/example_vue.md | 25 +-- .../class-dark-mode/vue/example_vue.md | 77 +++------- .../vue/example_vue.md | 127 ++++++--------- .../system-dark-mode/vue/example_vue.md | 25 +-- .../vue/example_vue.md | 25 +-- static/usage/v8/thumbnail/basic/vue.md | 7 +- static/usage/v8/thumbnail/item/vue.md | 7 +- .../thumbnail/theming/css-properties/vue.md | 7 +- static/usage/v8/title/basic/vue.md | 7 +- .../collapsible-large-title/basic/vue.md | 7 +- .../collapsible-large-title/buttons/vue.md | 7 +- .../v8/title/theming/css-properties/vue.md | 7 +- static/usage/v8/toast/buttons/vue.md | 54 +++---- static/usage/v8/toast/icon/vue.md | 11 +- static/usage/v8/toast/inline/basic/vue.md | 14 +- static/usage/v8/toast/inline/is-open/vue.md | 19 +-- static/usage/v8/toast/layout/vue.md | 20 +-- static/usage/v8/toast/position-anchor/vue.md | 15 +- .../v8/toast/presenting/controller/vue.md | 21 +-- static/usage/v8/toast/theming/vue.md | 19 +-- static/usage/v8/toggle/alignment/vue.md | 9 +- static/usage/v8/toggle/basic/vue.md | 7 +- static/usage/v8/toggle/helper-error/vue.md | 33 ++-- static/usage/v8/toggle/justify/vue.md | 7 +- static/usage/v8/toggle/label-placement/vue.md | 7 +- static/usage/v8/toggle/list/vue.md | 7 +- static/usage/v8/toggle/on-off/vue.md | 7 +- static/usage/v8/toggle/theming/colors/vue.md | 7 +- .../v8/toggle/theming/css-properties/vue.md | 7 +- .../v8/toggle/theming/css-shadow-parts/vue.md | 7 +- static/usage/v8/toolbar/basic/vue.md | 7 +- static/usage/v8/toolbar/buttons/vue.md | 10 +- static/usage/v8/toolbar/progress-bars/vue.md | 7 +- static/usage/v8/toolbar/searchbars/vue.md | 7 +- static/usage/v8/toolbar/segments/vue.md | 7 +- static/usage/v8/toolbar/theming/colors/vue.md | 7 +- .../v8/toolbar/theming/css-properties/vue.md | 7 +- versioned_docs/version-v7/api/tab-bar.md | 10 +- versioned_docs/version-v7/api/tab-button.md | 16 +- .../developing/hardware-back-button.md | 42 ++--- versioned_docs/version-v7/updating/6-0.md | 14 +- versioned_docs/version-v7/vue/lifecycle.md | 79 +++++----- versioned_docs/version-v7/vue/navigation.md | 93 ++--------- versioned_docs/version-v7/vue/performance.md | 28 +--- versioned_docs/version-v7/vue/slides.md | 106 ++----------- .../version-v7/vue/troubleshooting.md | 20 +-- .../version-v7/vue/utility-functions.md | 72 ++++----- .../version-v7/vue/virtual-scroll.md | 19 +-- 856 files changed, 4145 insertions(+), 10317 deletions(-) delete mode 100644 static/code/stackblitz/v7/vue/env.d.ts delete mode 100644 static/code/stackblitz/v8/vue/env.d.ts diff --git a/_templates/playground/new/vue.md.ejs.t b/_templates/playground/new/vue.md.ejs.t index a22edd2b2b4..1a13f8b8dcc 100644 --- a/_templates/playground/new/vue.md.ejs.t +++ b/_templates/playground/new/vue.md.ejs.t @@ -7,15 +7,8 @@ to: "<%= `static/usage/v${version}/${name}/${path}/vue.md` %>" <<%= component %>>> - <% if (css){ -%> diff --git a/docs/api/tab-bar.md b/docs/api/tab-bar.md index f3f18c8cd39..4d5372db084 100644 --- a/docs/api/tab-bar.md +++ b/docs/api/tab-bar.md @@ -130,17 +130,9 @@ export const TabBarExample: React.FC = () => (
- ``` @@ -176,4 +168,4 @@ import InsideTabBar from '@site/static/usage/v8/badge/inside-tab-bar/index.md'; ## Slots - \ No newline at end of file + diff --git a/docs/api/tab-button.md b/docs/api/tab-button.md index 937735ba53b..d8b151d777c 100644 --- a/docs/api/tab-button.md +++ b/docs/api/tab-button.md @@ -12,7 +12,7 @@ import CustomProps from '@ionic-internal/component-api/v8/tab-button/custom-prop import Slots from '@ionic-internal/component-api/v8/tab-button/slots.md'; - + import EncapsulationPill from '@components/page/api/EncapsulationPill'; @@ -166,7 +166,7 @@ export const TabButtonExample: React.FC = () => (
- + Speakers @@ -183,29 +183,15 @@ export const TabButtonExample: React.FC = () => (
- ``` diff --git a/docs/developing/hardware-back-button.md b/docs/developing/hardware-back-button.md index 1841b6e52a2..b8698ef3377 100644 --- a/docs/developing/hardware-back-button.md +++ b/docs/developing/hardware-back-button.md @@ -122,13 +122,9 @@ import { useBackButton } from '@ionic/vue'; ... -export default { - setup() { - useBackButton(10, () => { - console.log('Handler was called!'); - }); - } -} +useBackButton(10, () => { + console.log('Handler was called!'); +}); ``` @@ -236,19 +232,15 @@ import { useBackButton } from '@ionic/vue'; ... -export default { - setup() { - useBackButton(5, () => { - console.log('Another handler was called!'); - }); +useBackButton(5, () => { + console.log('Another handler was called!'); +}); - useBackButton(10, (processNextHandler) => { - console.log('Handler was called!'); +useBackButton(10, (processNextHandler) => { + console.log('Handler was called!'); - processNextHandler(); - }); - } -} + processNextHandler(); +}); ``` @@ -385,16 +377,12 @@ import { App } from '@capacitor/app'; ... -export default { - setup() { - const ionRouter = useIonRouter(); - useBackButton(-1, () => { - if (!ionRouter.canGoBack()) { - App.exitApp(); - } - }); +const ionRouter = useIonRouter(); +useBackButton(-1, () => { + if (!ionRouter.canGoBack()) { + App.exitApp(); } -} +}); ``` diff --git a/docs/updating/6-0.md b/docs/updating/6-0.md index d9f7ef2cec6..d44cae1ba23 100644 --- a/docs/updating/6-0.md +++ b/docs/updating/6-0.md @@ -196,13 +196,8 @@ This applies to `ion-action-sheet`, `ion-alert`, `ion-loading`, `ion-modal`, `io ... - ``` @@ -214,13 +209,8 @@ This applies to `ion-action-sheet`, `ion-alert`, `ion-loading`, `ion-modal`, `io ... - ``` diff --git a/docs/vue/lifecycle.md b/docs/vue/lifecycle.md index fe0e8ad01aa..f6c5fa54232 100644 --- a/docs/vue/lifecycle.md +++ b/docs/vue/lifecycle.md @@ -22,27 +22,25 @@ These lifecycles are only called on components directly mapped by a router. This The lifecycles are defined the same way Vue lifecycle methods are - as functions at the root of your Vue component: ```tsx + ``` ### Composition API Hooks @@ -50,32 +48,25 @@ export default defineComponent({ These lifecycles can also be expressed using Vue 3's Composition API: ```tsx + ``` :::note diff --git a/docs/vue/navigation.md b/docs/vue/navigation.md index 1012bce6bb8..24d9ea2d8d7 100644 --- a/docs/vue/navigation.md +++ b/docs/vue/navigation.md @@ -112,23 +112,11 @@ We can also programmatically navigate in our app by using the router API: - ``` @@ -155,35 +143,21 @@ The `useIonRouter` utility is a function that provides methods for programmatic This first example lets us push a new page onto the stack with a custom page transition: ```js -import { defineComponent } from 'vue'; import { useIonRouter } from '@ionic/vue'; import { customAnimation } from '@/animations/customAnimation'; -export default defineComponent({ - ..., - setup() { - const ionRouter = useIonRouter(); - - ionRouter.push('/page2', customAnimation); - } -}); +const ionRouter = useIonRouter(); +ionRouter.push('/page2', customAnimation); ``` `useIonRouter` provides convenience `push`, `replace`, `back`, and `forward` methods to make it easy to use common navigation actions. It also provides a `navigate` method which can be used in more complex navigation scenarios: ```js -import { defineComponent } from 'vue'; import { useIonRouter } from '@ionic/vue'; import { customAnimation } from '@/animations/customAnimation'; -export default defineComponent({ - ..., - setup() { - const ionRouter = useIonRouter(); - - ionRouter.navigate('/page2', 'forward', 'replace', customAnimation); - } -}); +const ionRouter = useIonRouter(); +ionRouter.navigate('/page2', 'forward', 'replace', customAnimation); ``` The example above has the app navigate to `/page2` with a custom animation that uses the forward direction. In addition, the `replace` value ensures that the app replaces the current history entry when navigating. @@ -415,29 +389,9 @@ Let's start by taking a look at our `Tabs` component: - ``` @@ -552,19 +506,8 @@ The `IonPage` component wraps each view in an Ionic Vue app and allows page tran - ``` @@ -620,26 +563,12 @@ Let's look at how to use it in our component: - ``` diff --git a/docs/vue/performance.md b/docs/vue/performance.md index 6bdfd52346f..967ba356112 100644 --- a/docs/vue/performance.md +++ b/docs/vue/performance.md @@ -21,27 +21,15 @@ By using `key` you can provide a stable identity for each loop element so Vue ca - ``` diff --git a/docs/vue/slides.md b/docs/vue/slides.md index fab18e0cb1a..0a9d531d4e9 100644 --- a/docs/vue/slides.md +++ b/docs/vue/slides.md @@ -49,15 +49,9 @@ Next, we need to import the base Swiper styles. We are also going to import the We recommend importing the styles in the component in which Swiper is being used. This ensures that the styles are only loaded when needed: ```html - ``` @@ -111,22 +105,12 @@ These components are imported from `swiper/vue` and provided to your Vue compone - ``` @@ -150,8 +134,7 @@ To begin, we need to import the modules and their corresponding CSS files from t - ``` @@ -185,7 +164,6 @@ From here, we need to provide these modules to Swiper by using the `modules` pro ``` @@ -224,7 +195,6 @@ Finally, we can turn these features on by using the appropriate properties: ``` @@ -272,8 +235,7 @@ We can install the `IonicSlides` module by importing it from `@ionic/vue` and pa - ``` @@ -406,18 +361,13 @@ Accessing these properties can be tricky as you want to access the properties on ... - ``` @@ -456,7 +406,6 @@ If you are using effects such as Cube or Fade, you can install them just like we ``` @@ -490,7 +432,6 @@ Next, we need to import the stylesheet associated with the effect: ``` @@ -525,7 +459,6 @@ After that, we can activate it by setting the `effect` property on `swiper` to ` ``` diff --git a/docs/vue/troubleshooting.md b/docs/vue/troubleshooting.md index 1483bb9037b..8ce3b22d68e 100644 --- a/docs/vue/troubleshooting.md +++ b/docs/vue/troubleshooting.md @@ -31,13 +31,8 @@ To resolve this issue, you need to import the component from `@ionic/vue` and pr Hello World - ``` @@ -97,19 +92,8 @@ In order for page transitions to work correctly, each page must have an `ion-pag - ``` diff --git a/docs/vue/utility-functions.md b/docs/vue/utility-functions.md index 519b9265b12..f84ec85165c 100644 --- a/docs/vue/utility-functions.md +++ b/docs/vue/utility-functions.md @@ -16,23 +16,15 @@ Returns the Ionic router instance, containing API methods for navigating, custom ```js import { IonPage, useIonRouter } from '@ionic/vue'; -import { defineComponent } from 'vue'; import { customAnimation } from '@/animations/customAnimation'; -export default defineComponent({ - components: { IonPage }, - setup() { - const router = useIonRouter(); - const push = () => { - router.push('/page2', customAnimation); - }; - const back = () => { - router.back(customAnimation); - }; - - return { push, back }; - }, -}); +const router = useIonRouter(); +const push = () => { + router.push('/page2', customAnimation); +}; +const back = () => { + router.back(customAnimation); +}; ``` **Hardware back button on Android** @@ -42,15 +34,9 @@ You may want to know if you are at the root page of the application when a user ```tsx import { useIonRouter } from '@ionic/vue'; -... - -export default { - setup() { - const ionRouter = useIonRouter(); - if (ionRouter.canGoBack()) { - // Perform some action here - } - } +const ionRouter = useIonRouter(); +if (ionRouter.canGoBack()) { + // Perform some action here } ``` @@ -152,29 +138,25 @@ See the [Keyboard Documentation](../developing/keyboard) for more information an Ionic Vue provides several lifecycle hooks for the `setup()` function to tap into the Ionic Framework page lifecycle. ```js + ``` :::note diff --git a/docs/vue/virtual-scroll.md b/docs/vue/virtual-scroll.md index 7ba68ce8a59..84ffece148d 100644 --- a/docs/vue/virtual-scroll.md +++ b/docs/vue/virtual-scroll.md @@ -89,24 +89,11 @@ The `RecycleScroller` component should be added inside of your `ion-content` com - ``` diff --git a/src/components/global/Playground/stackblitz.utils.ts b/src/components/global/Playground/stackblitz.utils.ts index bab0dbba60b..cdbbc6d4a26 100644 --- a/src/components/global/Playground/stackblitz.utils.ts +++ b/src/components/global/Playground/stackblitz.utils.ts @@ -229,7 +229,6 @@ const openVueEditor = async (code: string, options?: EditorOptions) => { options?.includeIonContent ? 'vue/App.withContent.vue' : 'vue/App.vue', 'vue/tsconfig.json', 'vue/tsconfig.node.json', - 'vue/env.d.ts', ], options.version ); @@ -248,7 +247,6 @@ const openVueEditor = async (code: string, options?: EditorOptions) => { 'src/App.vue': defaultFiles[5], 'src/components/Example.vue': code, [mainTs]: defaultFiles[4], - 'src/env.d.ts': defaultFiles[8], 'src/theme/variables.css': defaultFiles[2], 'index.html': defaultFiles[1], 'vite.config.ts': defaultFiles[3], diff --git a/static/code/stackblitz/v7/vue/App.vue b/static/code/stackblitz/v7/vue/App.vue index a66de3b24d8..3fbb68855b2 100644 --- a/static/code/stackblitz/v7/vue/App.vue +++ b/static/code/stackblitz/v7/vue/App.vue @@ -4,15 +4,7 @@ - diff --git a/static/code/stackblitz/v7/vue/App.withContent.vue b/static/code/stackblitz/v7/vue/App.withContent.vue index aa113caf3e4..9324b79998f 100644 --- a/static/code/stackblitz/v7/vue/App.withContent.vue +++ b/static/code/stackblitz/v7/vue/App.withContent.vue @@ -6,15 +6,7 @@ - diff --git a/static/code/stackblitz/v7/vue/env.d.ts b/static/code/stackblitz/v7/vue/env.d.ts deleted file mode 100644 index aafef9509dd..00000000000 --- a/static/code/stackblitz/v7/vue/env.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -/// - -declare module '*.vue' { - import type { DefineComponent } from 'vue' - // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types - const component: DefineComponent<{}, {}, any> - export default component -} diff --git a/static/code/stackblitz/v8/vue/App.vue b/static/code/stackblitz/v8/vue/App.vue index a66de3b24d8..3fbb68855b2 100644 --- a/static/code/stackblitz/v8/vue/App.vue +++ b/static/code/stackblitz/v8/vue/App.vue @@ -4,15 +4,7 @@ - diff --git a/static/code/stackblitz/v8/vue/App.withContent.vue b/static/code/stackblitz/v8/vue/App.withContent.vue index aa113caf3e4..9324b79998f 100644 --- a/static/code/stackblitz/v8/vue/App.withContent.vue +++ b/static/code/stackblitz/v8/vue/App.withContent.vue @@ -6,15 +6,7 @@ - diff --git a/static/code/stackblitz/v8/vue/env.d.ts b/static/code/stackblitz/v8/vue/env.d.ts deleted file mode 100644 index aafef9509dd..00000000000 --- a/static/code/stackblitz/v8/vue/env.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -/// - -declare module '*.vue' { - import type { DefineComponent } from 'vue' - // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types - const component: DefineComponent<{}, {}, any> - export default component -} diff --git a/static/usage/v7/accordion/accessibility/animations/vue.md b/static/usage/v7/accordion/accessibility/animations/vue.md index 05847edab7b..21f76f629fb 100644 --- a/static/usage/v7/accordion/accessibility/animations/vue.md +++ b/static/usage/v7/accordion/accessibility/animations/vue.md @@ -22,16 +22,7 @@ - ``` diff --git a/static/usage/v7/accordion/basic/vue.md b/static/usage/v7/accordion/basic/vue.md index 8ac8c6bbeec..1cca6c2afef 100644 --- a/static/usage/v7/accordion/basic/vue.md +++ b/static/usage/v7/accordion/basic/vue.md @@ -22,17 +22,7 @@ - ``` diff --git a/static/usage/v7/accordion/customization/advanced-expansion-styles/vue.md b/static/usage/v7/accordion/customization/advanced-expansion-styles/vue.md index 5e8e8da6925..6f01efaec15 100644 --- a/static/usage/v7/accordion/customization/advanced-expansion-styles/vue.md +++ b/static/usage/v7/accordion/customization/advanced-expansion-styles/vue.md @@ -22,18 +22,8 @@ - ``` diff --git a/static/usage/v7/list-header/basic/vue.md b/static/usage/v7/list-header/basic/vue.md index b7d6980e400..d891af18198 100644 --- a/static/usage/v7/list-header/basic/vue.md +++ b/static/usage/v7/list-header/basic/vue.md @@ -22,12 +22,7 @@ - ``` diff --git a/static/usage/v7/list-header/buttons/vue.md b/static/usage/v7/list-header/buttons/vue.md index 704e94f057a..94ca0cda062 100644 --- a/static/usage/v7/list-header/buttons/vue.md +++ b/static/usage/v7/list-header/buttons/vue.md @@ -23,12 +23,7 @@ - ``` diff --git a/static/usage/v7/list-header/lines/vue.md b/static/usage/v7/list-header/lines/vue.md index 6ec522dd8a4..06f43b5cbf1 100644 --- a/static/usage/v7/list-header/lines/vue.md +++ b/static/usage/v7/list-header/lines/vue.md @@ -37,12 +37,7 @@ - ``` diff --git a/static/usage/v7/list-header/theming/colors/vue.md b/static/usage/v7/list-header/theming/colors/vue.md index b20672dd78f..ddf26984441 100644 --- a/static/usage/v7/list-header/theming/colors/vue.md +++ b/static/usage/v7/list-header/theming/colors/vue.md @@ -32,12 +32,7 @@ - ``` diff --git a/static/usage/v7/list-header/theming/css-properties/vue.md b/static/usage/v7/list-header/theming/css-properties/vue.md index c56d482c2a2..572b4155e28 100644 --- a/static/usage/v7/list-header/theming/css-properties/vue.md +++ b/static/usage/v7/list-header/theming/css-properties/vue.md @@ -5,13 +5,8 @@ - - ``` diff --git a/static/usage/v8/segment/theming/colors/vue.md b/static/usage/v8/segment/theming/colors/vue.md index fcce8cce913..9c4822fdb2c 100644 --- a/static/usage/v8/segment/theming/colors/vue.md +++ b/static/usage/v8/segment/theming/colors/vue.md @@ -82,12 +82,7 @@ - ``` diff --git a/static/usage/v8/segment/theming/css-properties/vue.md b/static/usage/v8/segment/theming/css-properties/vue.md index 00bf2e42c8f..161a8b89420 100644 --- a/static/usage/v8/segment/theming/css-properties/vue.md +++ b/static/usage/v8/segment/theming/css-properties/vue.md @@ -10,13 +10,8 @@ - + ``` -Much like the `App` component we started with, we have some imports for specific Ionic Framework components, an import from Vue, the Vue component, and styles to go along with our component. +This creates a page with a header and scrollable content area. The second header shows a [collapsible large title](/docs/api/title#collapsible-large-titles) that displays when at the top of the content, then condenses to show the smaller title in the first header when scrolling down. -For our styles, notice that we have specified our styles to be `scoped`. This means that the styles we write here will only apply to this component. This is useful for preventing styles from leaking out of a component and affecting other parts of your application. We strongly recommend using `scoped` styles for Ionic Vue applications. - -`IonPage` is the base component for all pages (a component with a route/URL), and includes some common building blocks of a full-screen component, like header, title, and content components. - -:::note -When creating your own pages, do not forget to have `IonPage` be the root component for them. Having `IonPage` be the root component is important because it helps ensure transitions work properly as well as provides the base CSS the Ionic Framework components rely on. +:::tip Learn More +For detailed information about Ionic layout components, see the [Header](/docs/api/header), [Toolbar](/docs/api/toolbar), [Title](/docs/api/title), and [Content](/docs/api/content) documentation. ::: -`IonHeader` is a component meant to exist at the top of the page. It does not do much by itself, aside from handling some flexbox-based layout. It is meant to hold components, like `IonToolbar` or `IonSearchbar`. - -`IonContent` is, as its name suggests, the main content area for our page. It is responsible for providing a scrollable content that users will interact with, plus any scroll events that could be used in an app. +## Add an Ionic Component -Our current content is relatively simple, but does not contain anything that could be used in a real app, so let's change that. - -:::note -For brevity, we are excluding repeating parts of our component, like the function declaration or import statements from other components. -::: +You can enhance your Home page with more Ionic UI components. For example, add a [Button](/docs/api/button) at the end of the `ion-content`: ```html - + + - + Navigate + ``` -Here in our `IonContent`, we are adding an `IonList` and a much more involved `IonItem` component. Let's look at `IonItem` as it is the centerpiece here. +Then, import the `IonButton` component in the ` ``` -Looking at our code, we have a special attribute called `slot`. This is key for letting the `IonItem` know where to place the `IonBadge` when it renders. This is not a Vue API, but a web standards API, and it is used across many Ionic Framework components. Additionally, this is different from the slots API you may recall from Vue 2. (For more information on slots, [see the MDN docs here](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/slot).) +## Add a New Page -Let's look at another component from Ionic Framework, FAB. Floating Action Buttons are a nice way to provide a main action that is elevated from the rest of an app. For this FAB, we will need three components: a FAB, a FAB Button, and an Icon. +Create a new page at `views/NewPage.vue`: ```html - ``` -On our main `IonFab`, we are setting its positioning with the vertical and horizontal attributes. We are also setting the render location to "fixed" with the slot attribute. This will tell `IonFab` to render outside of the scrollable content in `IonContent`. +This creates a page with a [Back Button](/docs/api/back-button) in the [Toolbar](/docs/api/toolbar). The back button will automatically handle navigation back to the previous page, or to `/` if there is no history. -Now let's wire up a click handler to this. When clicking the FAB button, we want to navigate to a new page (which we will create in a moment). To do this, we will need to get access to Vue Router's navigation API. This can be done by importing `useRouter` from the `vue-router` package. +:::warning Important +When creating your own pages, always use `ion-page` as the root component. This is essential for proper transitions between pages, base CSS styling that Ionic components depend on, and consistent layout behavior across your app. +::: -```html - +## Navigate to the New Page - -``` +To navigate to the new page, create a route for it by first importing it at the top of `router/index.ts` after the `HomePage` import: -In our component file, we are importing the `useRouter` function. When called, this function injects the router dependency into the component. It gives us access to the history API from Vue Router, allowing us to push a new route onto the navigation stack. On our `IonFabButton`, we can add a click handler, and just call `router.push` and pass in the new route. In this case, we will navigate to `new`. +To navigate to a new page, add the route to `router/index.ts` -```html - ... +```tsx +import NewPage from '../views/NewPage.vue'; ``` -## Creating a new Route - -Now that we have the pieces in place to navigate in our app, we need to create a new component and add the new route to our router declaration. Let's open our `router/index.ts` file and add the new route. +Then, add its route in the `routes` array: ```tsx -import { createRouter, createWebHistory } from '@ionic/vue-router'; -import { RouteRecordRaw } from 'vue-router'; -import HomePage from '@/views/HomePage.vue'; -import NewItem from '@/views/NewItem.vue'; - const routes: Array = [ { path: '/', @@ -414,322 +247,174 @@ const routes: Array = [ }, { path: '/new', - name: 'NewItem', - component: NewItem, + name: 'New', + component: NewPage, }, ]; - -const router = createRouter({ - history: createWebHistory(process.env.BASE_URL), - routes, -}); - -export default router; ``` -With our router now having an entry for the route `/new`, we will create the component needed, `NewItem`. This will exist in `views/NewItem.vue`. - -Let's fill the `NewItem.vue` file with some placeholder content for the moment. +Once that is done, update the button in `views/HomePage.vue`: -```html - - - +```tsx +Navigate ``` -:::note -Each view must contain an `IonPage` component. Page transitions will not work correctly without it. See the [IonPage Documentation](navigation.md#ionpage) for more information. +:::info +Navigating can also be performed programmatically using Vue Router, and routes can be lazy loaded for better performance. See the [Vue Navigation documentation](/docs/vue/navigation) for more information. ::: -The content here should look similar to the `Home` component. What is different here is the `IonBackButton` component. This is used to navigate back to the previous route. Seems easy enough, right? Ok, but what if we reload the page? +## Add Icons to the New Page -In this case, the in-memory history is lost, so the back button disappears. To address this, we can set the `default-href` attribute value to the URL we want to navigate to if there is no history. +Ionic Vue comes with [Ionicons](https://ionic.io/ionicons/) pre-installed. You can use any icon by setting the `icon` property of the `ion-icon` component. -```html - -``` - -Now, If there is no app history present, we will be able to navigate back to our home route. - -## Calling Methods on Components - -In order to call a method on any of the Ionic Vue components, you will first need to get a reference to the component instance. Next, you will need to access the underlying Web Component using `$el` and call the method. - -In other framework integrations such as Ionic React, this is not needed as any `ref` you provide is automatically forwarded to the underlying Web Component instance. We are unable to do the same thing here due to limitations in how Vue manages refs. +Update the imports in `views/NewPage.vue` to import `IonIcon` and the `heart` and `logoIonic` icons: ```html - - ``` -## Adding Icons - -Ionic Vue comes with [Ionicons](https://ionic.io/ionicons/) pre-installed. There are a couple options developers have for using them in their application. - -### Per-Component Imports - -Per-Component Imports is the recommended approach to using Ionicons. This involves importing the icon of your choice from the `ionicons` package and passing it to your template: +Then, include them inside of the `ion-content`: -```html - - - -``` - -Let's break down what we are doing here. First, we are importing the `heart` icon from `ionicons/icons`. This will load the appropriate SVG data for our icon. - -Then we pass the icon data into the `ion-icon` component via the `icon` property. - -Developers also have the option of setting different icons based upon the mode: - -```html - - - +```tsx + + ``` -Note that any icon names that are hyphenated should be written in camel case when importing. - -### Global Imports +Note that we are passing the imported SVG reference, **not** the icon name as a string. -The other option is to import specific icons globally. This is not typically recommended as it will force icons to be loaded every time your application starts and can increase your application's initial chunk size. +For more information, see the [Icon documentation](/docs/api/icon) and the [Ionicons documentation](https://ionic.io/ionicons/). -That being said, there may be use cases when it makes sense to load specific icons globally: +## Call Component Methods -**main.ts** - -```tsx -import { addIcons } from 'ionicons'; -import { heart } from 'ionicons/icons'; - -addIcons({ - heart: heart, -}); -``` +Let's add a button that can scroll the content area to the bottom. -**HomePage.vue** +Update `views/NewPage.vue` to include a ref on `ion-content` and a button and some items after the existing icons: ```html - - - + + Scroll to Bottom + + + + Item {{ i }} + + ``` -In `main.ts`, the `addIcons` function lets us register icons globally and give it a string as a key. We then reference the icon by that key in our `Home` component. - -## Optimizing Your Build - -Vue gives you several tools to fine tune your application. This section will cover the options that are most relevant to Ionic Framework. - -### Local Component Registration (Recommended) - -By default, Ionic Framework components are registered locally. With local registration, these components are imported and provided to each Vue component you want to use them in. This is the recommended approach as it allows lazy loading and treeshaking to work properly with Ionic Framework components. - -The one downside to this approach is that it may be tedious to re-import your Ionic Framework components multiple times. However, we feel that the performance benefits you receive in exchange are worth it. - -Also note that locally registered components are not available in subcomponents. You will need to re-import the Ionic Framework components you would like to use in your subcomponent. - -Let's take a look at how local component registration works: +In the script section, add the new component imports and define the `scrollToBottom` function: ```html - - -``` - -In the example above, we are using the `IonPage` and `IonContent` components. To use them, we import them from `@ionic/vue`. From there, we can use the components in our template. - -Note that since we are registering these components locally, neither `IonPage` nor `IonContent` will be available in `SubComponent` unless we register them there as well. + import { + IonBackButton, + IonButtons, + IonButton, + IonContent, + IonHeader, + IonIcon, + IonItem, + IonLabel, + IonPage, + IonTitle, + IonToolbar, + } from '@ionic/vue'; + import { heart, logoIonic } from 'ionicons/icons'; + import { ref } from 'vue'; -For more information, see the Local Registration Vue Documentation. + const content = ref(); -### Global Component Registration + const scrollToBottom = () => { + content.value.$el.scrollToBottom(300); + }; + +``` -The other option for registering components is to use global registration. Global registration involves importing the components you want to use in `main.ts` and calling the `component` method on your Vue app instance. +To call methods on Ionic components: -While this makes it easier to add Ionic Framework components to your Vue app, global registration often is not ideal. To quote the Vue documentation: "If you're using a build system like Webpack, globally registering all components means that even if you stop using a component, it could still be included in your final build. This unnecessarily increases the amount of JavaScript your users have to download". +1. Create a `ref` for the component +2. Access the underlying Web Component via `$el` +3. Call the method on the Web Component -Let's take a look at how global component registration works: +This pattern is necessary because Ionic components are built as Web Components. The `$el` property gives you access to the actual Web Component instance where the methods are defined. -**main.ts** +You can find available methods for each component in the [Methods](/docs/api/content#methods) section of their API documentation. -```tsx -import { IonContent, IonicVue, IonPage } from '@ionic/vue'; +## Run on a Device -const app = createApp(App).use(IonicVue).use(router); +Ionic's components work everywhere: on iOS, Android, and PWAs. To deploy to mobile, use [Capacitor](https://capacitorjs.com): -app.component('ion-content', IonContent); -app.component('ion-page', IonPage); +```shell +ionic build +ionic cap add ios +ionic cap add android ``` -**MyComponent.vue** +Open the native projects in their IDEs: -```html - - - +```shell +ionic cap open ios +ionic cap open android ``` -In the example above, we are using the `IonPage` and `IonContent` components. To use them, we first import them from `@ionic/vue` in `main.ts`. From there, we call the `component` method on our app instance and pass it the tag name as well as the component definition. After we do that, we can use the components in the rest of our application without having to import them into each Vue component. - -For more information, see the Global Registration Vue Documentation. +See [Capacitor's Getting Started guide](https://capacitorjs.com/docs/getting-started/with-ionic) for more. -### Prefetching Application JavaScript +## Build with TypeScript or JavaScript -By default, the Vue CLI will automatically generate prefetch hints for the JavaScript in your application. Prefetching utilizes the browser idle time to download documents that the user might visit in the near future. When the user visits a page that requires the prefetched document, it can be served quickly from the browser's cache. +Ionic Vue projects are created with TypeScript by default, but you can easily convert to JavaScript if you prefer. After generating a blank Ionic Vue app, follow these steps: -Prefetching consumes bandwidth, so if you have a large app, you may want to disable it. You can do this by modifying or creating your `vue.config.js` file: +1. Remove the TypeScript dependencies: -**vue.config.js** - -```js -module.exports = { - chainWebpack: (config) => { - config.plugins.delete('prefetch'); - }, -}; +```shell +npm uninstall --save typescript @types/jest @typescript-eslint/eslint-plugin @typescript-eslint/parser @vue/cli-plugin-typescript @vue/eslint-config-typescript vue-tsc ``` -The configuration above will prevent all files from being prefetched and, instead, will be loaded when they are needed. You can also select certain chunks to prefetch. Check out the Vue CLI Docs on Prefetching for more examples. +2. Change the extension of all `.ts` files to `.js`. In a blank Ionic Vue app, this will be the `router/index.ts`, `main.ts`, and files in the `tests` directory. -## Build a Native App +3. In `index.html`, change the imported ` -``` + +

Discover how to handle routing and navigation in Ionic Vue apps using the Vue Router.

+
-## Where to go from here + +

Explore Ionic's rich library of UI components for building beautiful apps.

+
-This guide covered the basics of creating an Ionic Vue app, adding some basic navigation, and introducing Capacitor as a way of building native apps. To dive deeper into building complete Ionic Framework apps with Vue and Capacitor, follow our [First App guide](your-first-app.md). + +

Learn how to customize the look and feel of your app with Ionic's powerful theming system.

+
-For a more detailed look at Ionic Frameworks’s components, check out the [component API pages](https://ionicframework.com/docs/components). For more details on Vue, review the [Vue Docs](https://v3.vuejs.org/). To keep building native features, see the [Capacitor docs](https://capacitorjs.com/docs/). + +

Explore how to access native device features and deploy your app to iOS, Android, and the web with Capacitor.

+
-Happy app building! 🎉 + diff --git a/sidebars.js b/sidebars.js index c2d050fae06..d55c2876853 100644 --- a/sidebars.js +++ b/sidebars.js @@ -68,7 +68,7 @@ module.exports = { collapsed: false, items: [ 'angular/overview', - 'angular/build-options', + 'angular/quickstart', { type: 'category', label: 'Build Your First App', @@ -83,6 +83,7 @@ module.exports = { 'angular/your-first-app/distribute', ], }, + 'angular/build-options', 'angular/lifecycle', 'angular/navigation', 'angular/injection-tokens', @@ -100,7 +101,7 @@ module.exports = { label: 'React', collapsed: false, items: [ - 'react', + 'react/overview', 'react/quickstart', { type: 'category', @@ -166,6 +167,7 @@ module.exports = { 'vue/your-first-app/distribute', ], }, + 'vue/build-options', 'vue/lifecycle', 'vue/navigation', 'vue/virtual-scroll', diff --git a/static/icons/guide-capacitor-icon.png b/static/icons/guide-capacitor-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..58fd35aea7602a8b980dd5b572733a8ef1210c6e GIT binary patch literal 3938 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 literal 0 HcmV?d00001 diff --git a/static/icons/guide-components-icon.png b/static/icons/guide-components-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3d7e0cb8883333eadf0024b0494c62aebf8892bc GIT binary patch literal 6768 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

e!gP{Oq;;a7pB8`VG0KedJ_y6;`OUy|N1Z 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 t&8@dJm9lQdmic=2-gCg=GU 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 z¥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

    1)fWclY40?SF^O$%p%#f=c;}WRRhSUkFDF8{ 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⋙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

    j zkg-`>|1F;gdHd+nv#KHet_MqQNAFMk`1)-A7RNJzQcZpz=#yJf?1jnYGi-4bTV69p zujN$zwoEydtzs*miuXuw2GVLuL&Zg9e?09H2rBtePZkvLvHv)aK%N9Y>~JXOxXs`k z>zk>3B$wK->FyD|(o0Qxoz?#JxZ&PquHpW3-CXG^agj3@ouV$|`a|JcE$i)?7R*b$ z_78N_ujA~cEu6mqH`utm^YFIz+$fA|aron+7eT^>DdiMQeScqjLU{u#_QS6*V#4g z`rq(APxtJS!XAH%p$)wFs98W6K%?k)Mo>+YcYO5uq+Vy)8-cB?wYtpq^>vobtpUyU znv~LCsFk}<6Q^5(t;HPNj30pqpkVp2`#29kyv+%0}n~}Q#0C_bt z;lC_|B@{8uEGMyWu7;MWj0m`pSylTI3m<;=qDNfbARNRL^QnJ`i#dUea46gzwTx_o zzKRXBb%5Wr=}kA(_@LJ61OQ1nj4dp5KFwQjcr!S*LQ*8~y0MI7b0B%p3=7)qbY;ot zIib2YZUMGp)e}#<^f1F$QDH(260|HtAnVdrMRdM;@;xLya;UH0`W?TV;mL@h?6Qp5 zvQazgWPo3qOFsQ(-o)#c?&o4ZCA)9m(wZ=aqwadGH6HmAT`cLib6(3k0c?{1x%KoB z_nR19P3d#eM<`#s?fDL=iN3mwp``__C#E3Q^lnRu{axAsc_lCH#WvaY5ZsxE>*AG2 zQ~5EE zIt@k9!J1c?`9s}?bmY!iM3!5&>q~P3{Z^0{*ctI2A;whA!@3p3p=P4dzeY@Ovc5$r zuc&hL+I6NGJ=5UV8!ug*7qA>}wNvx0Q<~G)Gy(NiAyYwWPnS?*%1}0crd90e#1b?g zW5L5qM`NUmitj${<_wPnbEvHyUNU&l_p7r8bvCpd6h4LO zEJ0}=^!=W5Kb}t&OXS*g_l3kI8+`Ppy3wHf_o-Oee~Daq-0V=!XPW_`DbVkyd`0Jw zt-{)gdp&j%u>sp%I=i3{|3W20Fjghed6PHOK7*rY_BLE+$!btL?v2`v@ZOt#B`lq) z)fktARm2nUjmeol0K5)oi!ykzlvf$br)FLm()IH z#Y}pyT>zp+DD!M(*0tJ+X!@s!(;K^7X}QFwCVk19)n{44*)#X6j5KycRbT z14!WlKQpx@Is@MAgc)rodrA`e2(fmb2q9m>X#*qLvsT>N>ddo=&m{5&?q;cwJ{yFZ z_iOku!D222r~od$v=c0bW|sZYuY&mV~NL+TP_$L0YVmy7Or+y!-u3)1U=Ddt~7?)rRPR#km>OiRB zqGtVX6j~@AaDjz$Nn?Z0w{P`wY}df53-3z2D%&V1ETI6v%*g|^V_H(5PcpU8lW#qP z-CN$iE?oMh#yu_IxAF5ex#yTqjeo}+y&%8Af3jgp^;FaDRUf~3DUPWF+beTT*SaEO z!1&bszO1DUtIim9t|_lYXoyFv6nldkip>{?S<;yXbi51<>!N*AF$MXN0N9U5hh(~6{4 zr6u1^Ld59gk}G0#l+pskhZx$d4{pE;W%K=64S>szF0+)>*7GDWak~!}(2rf8v&0`gZoE!k_9OFoV5>FfHZlY6gLjbyw)-kMn|ERAsUj;nq@_<)YT0jJxwA5VdN z{jj57;1d6y+lS(~kz7|M$!9hb?r+~$7Y2%sNbgR#2B*4@sQ`~L-JWLY&9BiR(85Fm zTzFqyzwRzqzzp*5A6dd}1(JTYYi&kT2U()&B~0674{LoJ=3ScJ1guptPTA!5EX!JC z9^E+oM}iUG%ur2e%L?TkYVFLr&1R)uS1@q5>rvEB^c&T2H4#Cd8!FSPx57(37A3ai zV-z1|;}-7*!JR^T#Kw%t9e{(g+?{06Zi&pQcWO_9+1$^z+#@LkQCnu&09{p~?-SL7!!R$)J&0-^8&>+?TFlyV%L9XZqHB3N5#K(qK1F zvBXkd=KC4IDW%TYCw>Qn8^*aP$^CcjygnpcOuIU57&Wv(Aku+GuR({Aw`*RsNFsNrcEhnsaAX7D z?;5SV2KbnBLJc^J>h~;byffu>+p`sAZS*Fs>kfVeLnk)pGdIBcNV@q;zv!zqs}lc~ zaeYDl)sVDEHjn7WrBpE9d*=>9>4O-2d+hL`wfPiFOC5(Nko+Jz?<=-Hkj} z%G)irL3iNop~u{zB%i$=fAwQ&z_n!VgFS&MGLcKN2;6#t0-Yqh_5&#HFAV~ho6J`K)%uNLN zZjRYxIwYJEtl_8w%(T%hlzEtn(U_*&P}W(RtJDFTZ47YMPcE{alc7a%yOFEHR`Cy> zs&J?4vGMkNA+n|lVYWW?8&!1;TdbZ>9s{^#=!Rd+wKfTl8_yA`&;8*^&n13U_P3mpNK+w&=nUmk`Oe1nYnUpUT1L+#@3d)JRSg8omwV|RY>l-w*`94@_jWL|zlD@8 zyh2>W>c7g$qn1ETTqW8>p$J?ScQbpM&k3$3z7SYOTSN`1J`wli>2KU3Z54IbbO%&hg|dzS&YqOJ#DAZNjLkP@J6w{Rez=bdOg{hU8aZNU89t#r#IRjdCiW}Vz?4ZU zj#kum(D;XJxA%~qL3qpiw=Ddf;UN1_kfXeo@@tB(6b}CY&o~j){VvV6xI{=sDeXCV zG4)*$c*Qo~Zp|0F?d#WpfbjczZpzbp63ayu8E0cwxvh#0+(E_OdU;&)DV*A~{B%KD zEx<97h*f*|Iq;o$Y+();MoLky^7!VAe#y+#{QkIHuw=<|9LTYBR+;B^=dOE$60f8C zp`1VoTsph)%Vv&)Jv#~9Hci!Wl7C1wmBHlQSF5M7cWw$fTfFZT2}E+rhO}uV**zT| z-TJ(qOR4*iInu?plpA))6zP#vqpX)B15w4=s$vErH_g1iZ6PEy$AtHypQdHmA`k^3 zJ-8GGAIDYlvSN4!`wuwT^4KG}HN8Ox9gvCvwfek+UuQt1-gjT?AqM+5P zg1cG)9LU%S4}DN+fAyGcp8`kdl*vBZvtGHqoTL~U5=u778`6ON#pZF%ycEsgn@lcY zp1Iok!a+2Y^GpF3z9mcsyas=un;+g8 ze1&wBi6wVmQ7iY@zH`lg3hr;jWeI%^6VTBd-@EeG@-(0RWWfg;r0Xn#rl;)v*cldw zH;zAYH}%N?D2 zhVt3zz=Oe%sS6c7FmHXq`23;6aS*awWOgTLQT{jRU71GQL7V5UOIG!+y3bN#>Ckre z{Fj~R05Ylwy|43Zj^4&$*5;rn3+uVD#;hK+^@>=3y$g5U@p0U_>G7!{z3*I!eB3+KOBcl~%=YfRs zBkq$-mgO%QbCzci_j5|suk#j$qST3-f{}L8h19DTb<(UuP1d_bU{yLZrbToYFFH7xh3ZCws7Y} zbLUI(;{-IO=o3@V2^;Z^fy7>r;Kg(&+`=UstmpGhA2m;%17#?^YdR8}3dvMoMSw}H zVWSFI3==9~tq|E06;b$9lF~CZY=$N*flrhh!!N!XgXPpSf?k5V+=!U@scGsHn_DDl z(I5GKW*`ze7e9>YlBnF2i4-?+{j-fBDkLLR&CS-C^d`pcVtRNT_bKi(>LOWcT9qzZ z=y-Wcol-(UW(vCJ!$7c$m`lD)>UlAGjF}`^r=<0eu96fe*m5!Lulgb3g@zk{T)McK zZ0uqSXC`D7;)^p+5H`Ov>N%e}G&@MDmflTjs6ZLT`m!D*)}rpdq~|zLzj7lPp_fU_ ztUj$)kC%9w<2sKMUF`0?Slhf9QQks5h2J|9sdy5zkNDUXIi`%A`vhA>ws1P0a%5$6 ztIQYLj)88g>}y8~DI!ApuIZKrz*>8jMf0wlSxq=lUQ}hlTr|Pv=W5I=CRQJ8YnMVh z_~{$A4A{#1%Lj7^$S8DV0A90&*2eQP3qi!kKPhIbS@h(>3(D=YX$hn^w0nc4qbV9h z)cH0HAbSO}!0{z^2BWKvK$L;#l2&sB`uKyfO~9V{l7c1a9$0&Nf5h+`3Pm@>*J4TKZKeSj#h9QGQBg<3re*Ukn4EbqUgM2N(QY+rGExsDN@pidQ>1!EIh`mvK6e&xf?HkBkng{QRu0m9kYgtIC2M5bfjK*z93$XlJ(i0W-Y#*Xx#3{o&7-OJL|L{3N84FORat@cM5bvjF8 zpZmxlor{J^Dg7Nm?r5`&cMm`O7f!nP29&R#wZkHb^4^ouwQan3&#v#%pyE9?MfOZKzt}m|`Y{^! z>1cFreI{-Rm8O(reZDR7^F6=Lw)kp)LchRI)wIp@w9SD8+a&b;wEOeHrAVk)#Mm4^ zBsW~Oskt0o|G}{Y3HH3QVY1s3&gPA9-G=$>iB13P%E}}dJ0c|$@x0lln76s6hjW=Y zwVI+cuVjPOu-Gec+$A>}mIfos2PEe%p+r3QqWEB*Xl)b%k?LnXBbxIK+y@vby|K-^ zb>NhKSuH`Blj9LH4B^2j?qKNiQfw~|)c*ulVYAx@N((rRz7ct(mO#e91D$aqd3gL&>;yFC!*>EH(?iS-l9bI=GVtXb} zhyilwkG?(v$1+I`L9WGtKdj+e!;(sNkeNfE6>ffCSCh?AWT;OwZbvtD08K1^Fq7lr z2I#PFt=Z(t(f-_u>X)+?A1N8pzCk1|2*)NW3m@E|#4PtRs(B=3*$f1BNZ`z}LQ6#& z23@G-v6tfSyNE?tMC&NY9>j=KBI(B+_39t2$4LpJY~@+!#amFg>H z9o)&Jl*z~7F~C1fezA3OZ|x|waE*{pc=wiY`{POcfB_~t7d57mEw6QbsbAhw`KZaT z(jZh5f*8CBL3!EI_u~rqLnGk?e6}0)O&tq!q+FuCzKkatuvAJ|JqXKT?mP0z&a*6d z5wK`xtAEpCo`)o=k4rAGLyk6(`&6f$Wro?sR?t)BTT1ZA)AU(rxyyT0nFcK?E(xpOj`3zxv`PP*jXvY8|PPptJeufv6a$_XRR3CF2 z-#oc81aHzu+5!q_Fn8nOQ~OL}ZrA?(C}{cT)p!YH-SuyxDmEesl5Td-w52l2o>`b( zAJdUz$`I~+-Jr~*>9YKYWGgeTZym=G^cX#kzuM<{$|uaDx5=vd;IrEh z<7>({Z(n|Y|443fSen?>OY>$6GOXLW2s}%56`Qj48t&(4ToyVQ2$6$TM(1AequgLc z@{}h~4@Agb7RC2#Fqs>Rwla|A9_J$c^*e2(y|f@fiXEOF3j^tKi*@0~quJ~WoI;1e zW2xdWK+-TDvA6RNh6(vI#Lhz1&u6KfEl}+m%ny$dN0RfTmWjRVRb+Qz%)xEsYGA8^ zte7Ja#^}bI?ehnYf4#|ZeuyPkZhCYmhZ2_zvD;!WZsHj-d6w1qW%<_n2QjKYxFS>0 z#LJ@=FMH2vuz9wc%-UY*`JC1CPJClAP)$~y^=GC~;j4~*@fkiC2^3Lohgn8=xguO# z?2eU+{`Cp95>MbyByN)x7Y4W)_?;ZF+k!0IaQG&luD3cMJu>mkAk5!V%pebh`H%7VtyyJ6m|Y;cY(H zHt5}(C7RJr*sB{a60J-V?>7r-akReefLmo3Sl_v~St&}t&C0mSs&+rgS&Ua(Gc6(M z3$vJS;I!;IW4ie(7a`iky+CDYgNKf^hO}stZ z^GIEWj4(J*LLMxg<36Vcif~NZe&n%&^}nJXk$q-YhJ(Pjy2bE93FRLrpVE;@^-hh# z>3I%s&Vf!R1^CMy;By9%zY_Pf- zG%tt%`S`Dxt7eCv<3Yr$&RqHCA}>z^!rZ$j*4Vanoh#@&O@U3SBm(s-e7UQy>+cJ> zFsu&RUhgC>T*vgk8SKa#k(1`t$=6ME;SwIWm7iLz7%C)qEGpx#<6XeRvFg7?`mga3 z-shY{e(BS<3*|l)d!9vPdkR*0md1nxFi2f`p|X&zqF_~>lBKcqa9fT8P0Cr$aO3Lb zOhMW5FA&*q1wXau^M~Lrh2wCd?4C;t!P!_a+i*aKl5EROgALjuGjKT9m@rKleLA>X zD-UHbIwX|{)BkSf@;|?je)(iWl_j1a3y^H<`-YKB$KKt&Q7ybY%STeY*~av~Y>xOM z`3-&iLkQewIX7}fls*TB)T4tmg14q`8*vj6JnU@CEu9gK>sA7_5MvD1`~iBf_F|-n z??-yXkj6u=!^-c>$+wq9w8MQ;)qUL5=veE1)~zJjyvXQy!GLn-Rz~!9+>JiNi#D_y z8LfdRJ|WmI)fSbg00m*9%A_SA+#b^5t@Gff~Qgy3y$9W27?P#dJU>i z9O;N1!_L$qXSUZ>k1o1EnZD#<+N__xc^V_)i6j)XlO==Px6&fP3V6UVu|8o9Si}8d zocUI4hJgzR1YMW*OaH+!Ot?)0hA5T_8~^Y=wOkO(T75&fB97D4{iCLSA}aJL&@kWZ zyc`3Wn;OOJ)$>>M>bcMDz187?<2z9j33#2zQhg?SG;W=Uq>g|5pQ*iYTCq6?S`bA0 zL!~H!JabgUT8s>{|BE2YaAyXonltqaY9&c#DxTkCX98?z^a?^=iXZR}@QA68zHT*C zNA3*rKv3nE;$wWnS!J!}>i)r-C*1ZVSs*Kt#cgacEWW%wxAxYAIf(eaPkE$jC`paI zYOgY8UjH07rc1-%xdd%BUD8aY%h^)8{;Dqx-^+cHnPAt|-d=jG;jRtx$2i9I!g0uv zzd(q81UX>(O%4?bj+DPY<^__hzQ4dnxL)z~ZTQgmOgrr^AznC4<&theh~AP;XOf2=&pW1Qg)z-L zCHcC!k3TP7figD44B$fJBjl}%1@(D-`R=!r-fZhRam(_bWcXfA;t|Ykygd@NBwqQ3 z`r~;MS7JCM|9$f^KP7q17fU{V1x7{omSB;5QZrjwgiSlw&wdHDNs(~QlT6W?k`Z{V zsXVOM_t22z3}5``OV|L}2&BOsq7P>NlYmd@r(be$@cUU$^xF_qQKgizvrIlm*yI1b zp38BR4}V>m+ukJo65M@4wMF_2Z1Ehilfy@QAgyGG0;u^m*;G6>S_4*TuN4_p4U6Q3C{eB8&BP z1s9)uQ5zTMP(HplV!ALS`Qx)Y@6=@RZ+>BPgY`m%XiS`t5TS0r|Ah5pBmhaSKc{4D zZuUNVlQE!N#m+X#Ds_X7h=G^f>ETGzr>!Qe7p+x@4yl)gxKC3iZe-zspg z3Jv^&{P$7eHvXgzxFVU2y@DY3rv$CrOs7E^*P4 zM4$Beas}UP@Jh&S0|*iRP376o^m#0yB1>J@!m(}L|LkyjlGuKP{!P<(!t)Qrl>gh;2M{_f|^BKz{x9rsVZ_v+kVokgnY^BHa zavEn;wQ_wIZ!JGaP5LWb9ODN%+TPvg#sf}-m~2&!xli>CBg^B`Q%m`}EWB=vo=Eot zy*Qz5JL`9>h<;q}&Han-(SsfeB4p&S0M}J2Q&zmLkS*t_2!V{FRxh;kdYM4$_A(p57=5s5Zj;+fas>LP=-Z#moO_`^%d z`B#;s!Q-a_&o^+8BTnDgZrsOSw{T`R0kI*a`` zaibclLZ_Hk%mWQqNrR2eycNlTZv4sJ2pFt1{#7I%=ZDy{=~v%Wf5r#=UKGk2SKekQ zyJR_*{ez=zFt=aksR@P%CR~17ednK^i<3|llI*rkQ+X-UKA5kIF|<>ni_)Nkk0YtZO}7x`Al1R_PCpSo)N)H? zXOc1fPKxG>+GV)(Ui$A_nW{{UpI!=?jdmCHwOG$vr}eZRhB~z!v=RT`J+k~@@(eh) zdfAg_&dfl6d%f*^`6@{@v~~^R>^neX#}>>$@siuny4}|IUgOUxzEqO>C@*(6SM|<- z!m0Ep^*x~%#rzv>lgC>?64fi1=%l^sB(gmsj-f2YY=8o7IFO5dQp@~8?EjCCk+(vJ zUq1cC2pFQz^+Z`6F){6@jPRrr?dei5Y;Idm9Mx9(>f*zRYScClTW z71K!Q(d8B!mJ(aD#CD|F0zv=WstA|?-?CCOL&Bny@Y641!Ds%6E%3Jc2sD!#Y^$v| zuZ2Oa?})#2AX%3&o%JP?n50O%hSBFMF>t3x%;GU95r^NFin8CLtlSF1M}b|Sp54-2 za#LY}TSqwj*R3lQvi6f&_DEUV{{6dOasKaHUD13t8&3n>EiS3IJXMrnLjZBr}ht= zt73lar8VB&-_!tC?7j+_bU9>0zQb=r#%mmmf2>=F5_ar0mD#nP6{CF$hP#s)Ffe(^ z|7tbR{T)9N!wVE9fb$`53v8c!QD@6Q95Abk6%Pjci&ia=sM;nN8P6m>I;%Fn-vasP z)wTK;(wV|UKHCT1!Vo$V9^reIjwt_k((pI`3D!Jx9gC$%U_6$PbJuu|#)PbKo^e?b zx%Gkx^0dRmTS1iEn>r*~OVG9haz8BQmGdEf8#k*LC36q<>!qn1P+M4%mvmq5c0gxGPV|SZ_SxcxN5Y2SqVfU6iiR<+1Als)v+k?x$XMbQu2; zp`QAa|L%$rDTNlD5l8$`KudSf)m`YCvE;W|Uz?d`h}a;M1%qUi?Xzjo1#^v9wLV~g zIRuZVd|T_#YcRnwxr_d_ELR=3h)t2RIUcc+~_#Qt21zYWYp|$)!%XIqVfDXJ9>_+Xh55! za>l&~`AJj3KC84xA0=#NYXl3Y&6_UC1PO;IZT&=i_`)(BgYg=Gvo*Z#Tai#w-F*IJ zQ}6DU(5Ft%Z0$gVRpI&4M5}HsyY+JOgV0||0Rtitnv*J$b#xld88{-l+OOr%o>xCF z>HBbHMIhd1a{c&Q&GjrD^j0L)rm1(mz&ie8vBuuHljsp3Qu50wRIqP1h1NLf8XQpw z&N=$2*E&$8$(wO3E$%61Vd^Wn&hGD0?&;?{zU+`dM)dk3XZFwpfqPT(|L5K`-?46V zQz8*(BBATQ^>keMRFESa4`p|X6#rq~>`aV>PewbD|PLu^d!m`#Z%O zVsdrGYSu_7y;F=>lk|4o=|2y}o}B;A2!X=UQf}8ctADofUi>Z_tMW6Z@QFyCu-+L% z?#k(0?PqeQZ0^X|beq@#=fWYO8w<_qhocQkLj00(S^8pIlkg0j!9=`?&dOcbtYTAc zp=qQ+zUH{Hg9t^B6nMU4NbWJ?Xl0ExoB4|s3G({2WP;qxC$D_y0p$+$A8<3*B&$^@;?PCjcKX0=(5nJXi zMFMOuSn|>$#=LQ&_6Z6&h>Ve{CSZp7r#98WMsiJ-*ZjP4d%NG{0E~GeGy;<*Y3=77 zAiUYUra=ETV_R1jRDVWqottEu1sCqa8mU{l@9$Q&f-#USrW4j_lDMRt6jsnBQ|B?= z?Bk&-iD@#eT1mAnxp(!nj==6|O5=o0G)qiKsgjJgVd=BC1JX^bzQFtZe(KvM?%U2E zBTtVhb~fn1Z}G&B92gts%Zbo%Sh_2EJoKTUTTOA8rl*x=CtDD#pQ)`O7^g9ntN?_D zd3go_%`&;WM|h&?&;9d$%7YVCy|+Cv7GF--!gvuh8i+tn^}bl=4s`_&!D}o6h(PR; zrq?zg7KpHIbIUOv$m8JH{*X`kh%aX*VVNf%Sql#axPSVwSAZDiKL-dQZfj$rK0pcQ z!x~N*1me%)M{FgtB6>Ll68bR7s%n^)Ph;C8$hVtahm(sLbnuN1leE2M^F(JNT6r9c z@Jo~j7S(0&T5<}+Z2<4u&qR6mB**uqrjq(@#GeWSAcZq5Yqo^k7QFTWwho*I&?Z6= z!{BMH2V$`Fu#esAMw_m2qAF*GfJCVu%WWEf1jicppa(Xn)|a_iXkLJ)n7Fxa{(Y79 zN$d{NjK-(6P3$=iMr@qmdEE*_XwVMQc3uN*=@(-Pp26BwVomeWmWauAhQwDrMp@{e z_+Gy&E8cY-un(mmrB%G{ts@%G`eHo$#H#BMoLmqPb3?rJ?Ey5>t?des*!^(y*GirH zk~ZtCa^VBC)?F(;{FK03$Fg@Bm*NGF@S~y=Qkgd%{+T2SN0$7$9^?olATjS=M8Bbl z#?=lyzq0-Qjb;lH8EO zJwCUA6#LTW+5CcW8L9JMXyZ|`nUc@SZgR+ZPwiS{tLaQH&o@TU9&fZ?gET3!`4}Lw zk`2wppuWV&D$=jF;g=udG^EP9zn9vVrs>oHrayNMSx171*ZuEzK63Pa|O>6R0HGUJ@{Tg|DXKAtbJgKd;eQR4inVCv31|bZU5zj4y=GL z9j9+w+<%F-#oIalGGbA|%hV&ghqSXPW%U9V_8W_`OzRsjUA}bA=ev(`gj7q#Qick#Y{yZL)TK*+Krv-3s4EU!HbJ><&wlEvDoB~9f z{ajh4?*n^>YveL^xdS5(TlDdV@V1gmE%cc%W$3Dy+Zz?7I0Zo*7Rt_MXkV$oD`T(Q zB?q<;vzpXaAU_sDtwh-O;1>x;H@%Y}0bvjjm2d_DuFd*{ zHb0Neq){AZJdclj$+|bDgdi=k3(|xKsuYw`hKHz)+byxA^I?@5qSW_k3(bBj{-r4g z748_E`H-rgoPI9&qa@nE{6jJ>9_o$!`QW|%+1Mw?Zb(CrDw10Q*W%+DccAewMPZYb zl_p__*{(d#_XK>2V-mxS2$h2?0{VB-RH>l-Bcr-uc7d8 z{XUuJ<@*nE5TXpFn-4P2qL>^GSNc5_)onC$f`iZ08{YHa1IXLpy`o}Fz+x8mnz-e0WK*vGP2*Os}>>^`lLjp(h3BkDRL0(9wo@1|;7JaNDMp zIN64s9OS9!STQS_uaJfDJ;#62uy+x0`F$~He4jnyR49P5*4|~U`S*GD>Dz9`3=)%w zwc0xA^dw>fC!{*IVV|uYv_l%nbmD@4JExO5sC9C9ydS-#EnbapT}ij7y|hNBXJe8; zo9|Fe>Bat+*$!ul-u85C4234no!Qb3om@$%dDgQt*ECQRv(R3?z*MPbowK*sy; z(WD(HPKq(nAw?tEH0hj;eVONRp#%YP#kYWq^a#B3KhI8 z9Y68@s`11hrmUF`27A+U`0p#hzcn}*Iq;ITO|6HlO$AcPiWJco6+}GMWFwQhgEd%o z*=8*l!-(%F-X;{kQKTE+*fwwMrT>}mVl|#c#|g zXCFI*yQ8B^%RO>P@d3@#@o-jV*(piDtxAY1;f|pt1KDz(36dbE(j+Yz1mbMIl}|U> zh7fWIh7}oCQv8A;(%z>Vv+L4Y$fKQOZ4@GmG}Ad8L>=DserJ`^M2L1l$oKa@S%6rk zW=siDe*EWW>mF-Y0hxATi-%VJlL?0WC#91yfC=UKRaF@CsGi%Fjr1vJBq9TkU2(;$ zz8NS!aDl5HnkgqT9w}GVcWmF;d%0wThaFmagO6^U3xCeF($t{`&8Yd!`A$Ig_opjE zfG8*0Wb}OQpyV$>t0(Q>ozJn$Nsw+Mo0d0n9Tlm);$E$Xs$*KCG7r{BeXvb4%*^|X z>~iL|GZv^K5U(7<5~2@6Kj3cKKi4$Pj!B4f2hP9K_V=4qb#h$;BOe_?B#1X^S5_@H zUOI={cSpOW@Oiwb_hE-mv$r#CeKTL2yLHXK>RIh_j&XY*u3(*e)4dIrXc4G%g*8d) z1Qw|aCK?S(&%|;czAqKvT<7NWfO+w|P%ce zhs(F;L^(`-&v#J5)vQ)Ijd@US@mMyL+#D~Z9N4<)6zj3#XE(H_f39j{Ur@c&@qrEe z+z*GGi0v8%Wtr50E%6Xl(Q&P-y1Jx3De-4(LgR|C*@FT5+gRQ=>w~Wtxm$B9`*TY* z(;RM1-4DBd*{m=+QFKWKyR&th347XyQh~lNpq5AP*e9hVE4-@J)_kWh-1I@~jaInu z5~Sc(v$IOIQ>}Rpu!=aIdVc9#TTk0iJO~`CXBAp&4#%um{76qF+3}Y`&(e8c3vAiv z6OOorLIrn}BPEHwJ z-AE}|$2r}t2eiA!;hqt}0vFeqEPSjajL>uxIs-%f;(q z_w>2MyA)*{>v!@WiJMiC`I+=a6RGgux`k7z_R)M8dqv~hc4GSTAlr(%hQ0mB5{tR{&oVwFSZUANOep*O+cVCK2H>W z@?@$@@8&JU;r6)-TV#|nUPl{wReX~v`1$7wf+p2`;jDE0^YfDQKg zLyh5%>zN5_BSF;_&n%9Yy$)&z<-t$x22y`IL2b>S@OYj8f2@&d|0KVa^Hv ztUu}A?_b1dtW4Z=jC&fsz*D*wqVv!=@>K>n{!`8ydOJn_yjg!{x4r8o^`S8N#Y(I= zC`~+s2X9sL0XkOM!tXmfHlRG|Rqux z>*4x~>owXm^|+3!$+{WVT*mm-zMdaf^E$lA%I$0Twxw~qd@x5jVnT1w@^P!RXo+%S z@d2E(WuDY-BuI1+-GGc1|Dt%6<9gMf`0vr(U+f#vF9FH2KsTY>K(+sb0_1)nhc`%Q z?TY~qhLZL@F;)1zQPo#D0P{I`x}3MH(AX;tSK!@@O<~(qKPx$!;Obb6IptG;HL7Ro zoR{5vpkavuN+-9gzK!rc{{yVq{0&D554!P>!yWbO=Z;~(BN1u$_3v3SZz*6TvMG9b zat7M5Cs-3r9m=XcbX_-hqv|e|?i0QP$nb_h5i9Y&-a_8^1+IiIf6R^P?mV$!caopGzd7R?YObnl2~?neM%n0f4qOFmw=QCZT|{pSuO27gBDk*!PB zi2W7WyzJf`oFW!4n*(N3Xn)ENj-+-R_Fmbux!ah#;DOg0pLGlLSpWMT zX2$XFQ~{^`f9b7t{!5W%LQ@U-Aq)c=B-%|cD|d>u9Q3n(yet$}FaM(H#7I5dZKmMMpI@<=Rb+P1X!$WdO~kmn{5BJ1ClkiWB`^ra zv)}~=65-{dI+3--#?i2wKcBtL&Lm#sZ%B;k`}yj)vf`mhc01;XSXuo&l|;skC&mU? zb9yZ(%=h0;Fm``+#6opdF|#{tH4$~AvfcTarmQcZBxdQObCFPv^n{3>Cl31LG6 zQUc*RExSRzhF%AFm7bF=>}stRpHkt2Fh!vykV`3+z$()R&)Lh}&CFUfbwHQr)2-$R z^n0^fKJ$Hr{{0V=+Eyo(TmxgyAGzQ=60k~d!TbDu5B06f?zLeZgKWN+#ZO-)kkg{p z_D%2X;)4XuNykClIs|@0(3MU4GjWV8>D$pafgwj%x8wMSEt-7jSS|qQop)=`TjPXS z!8H#ooXPdKid*A5GjS=iR2>?WcE@H`IPOhd)ztC7R9;@zkD_0Mg(%73b_YAHzRkQ5 z9HMzD4uH}&o!(zSCd3{`BSk`dqRSW`CVu1oe4v~WvRU{Lokc+)V{*TovlfNGa7kD~ z8ZF-exhfi^omgcOS;CDGj($gp4LSDW~NahVcOF$*>Vo(C4~5xB)+y*6l_p7JXqL>^9D;$yso?@-bgj$7KVlFp*=<7XW$ zE0@;RQ|g^h?(E07X9(i-T@QUoK#kP%l)S0Jot03FJL8sSK9IR8=F-YvC8l|ITCF<3 z7;|i+7L;7ZYa{&jONpEUM34SEk)IODDA0C(fdWGZfXCgFr`J?t*OnPz-{xzk0XBp- zMUPyX8IZ^wd)phZq4qnZdtMz4|bc{yUjBnPgMPE4tgL?1_q8w?Otx70Q3-`B&%~%|$Dd zv%_{T=jMO<5t?7rno3>s0ksoc_oI7@rx%Ko-)5~)7U+R&04v#QAfYob6>Gv(a0|Az z_GrKuF~~x; z`HwEEf|ik@)jze;5Em7+dI|M%-chSpT+Zv1g=upg?S^5go{Vf%hUq}_>Q;yQ%ea^f z$xM_}fS*tO+VZSL>s)rxW4+#>mR+6oSwwi;pcP^8#!4R>U$K3N;K56gtXFKbjniJe zu5H7OV`FYVGbG1v{6#l1T?L(lIF$0NY69DZXf)JGt@R+)nSoFwQQ)N;51WEOOKbB< z03ox{MB|GiSr!2BbH+uddIqU^vtWzY{K2a$nxgr3fh@HsfyFasuYT6NM%Pq1mp~UV ztm03i*(`}yj6aks1u+|5+O^u>^fvLn2<6!6JUX!iacJOV`V$tr=?1@bR1E5lmKY6ugLolu}l%q>f>9UiZ$V(=1JNB_A>sn{H0rEh!riun6j;eL+=v>S_YM zw^~}M)yaBA{&p~?#HbHE1zGCjpz9TVI#Ra}T0QhwB*(crLw~D7uA?kC|7R_z{Pmx4 zH2Pfad83;6TKHYerD6pXlSZ4L%169PsAjFip&OYyImHj&k-WmPv6mo&&USUv-BHO8 z;>{UJivo79ACGg6)cl3Lif-6kWA|jzK@7k12d7Wtp=+U_2XpE}L0eP!US{WAVq^W5 z#h&64?A?sMxuORNW&B(9dj@aiEL@?RNLS;!1e0gfJ#IO-DHD_eE zVjms+#cNdw*Ph0EGbesHja5bDhQ;Y}2MZA8w|mKB-@@UZ|iw# zB*l);1!zd0wdwJesVfe<=e^btSJ!y&TX7Ow_j(SKn(e>n=93+e=l@I5K=Y5vi`x+x zq!Z%(=<)PZf~TUNbiC;R(QQ2RAw54v>1zJ3dnnpl%pO70ql2pRDGr(3cXQqt=6t*)^YF?UGi&u6zWIQW zKS}VDj?KL$cdzaMeP^#LCZPs1`y8)qRbDYSO!I5s08$CTnu}!66 zev9X^f!+bMPbc2a{xq#D_$lmC3^kTWGc|AHQ8d1`fppru-hYfz&AjyFyLQnyl;Gst zQnmEhB}rEc6(H>2jGpl9&XC*Q#gSW@U36MxJ3-9?@gai@mHS))a=%Q6?P~me;YmQMJIL+F~k28iK2sH4Ho`Fq1L8(o8HN)`E$l$jJWQ6WEl*RW0b-_MCx~{Uy~8y@w;UnuD?3U zYhy6fm3?I2Lq>bVISA%U?6_WIkJto0%B3F0a6|(+T9}XxQqf}OAsZX^93SZl9QCo? zY!rn0%!l|$%QDR>pUzoD*C4hk%iiq)yK-rY0yGsn^F<<10N51g3re#4lv!w2BrG07W$luHTw0Lhh|*s;vag9~0uHQsEp_9vC_ zx*OgPG8dgo{dy*Def7i4*vNJTGfU`4|EgZan%q`v=;X~oJv&#ZKQTT5FS6xY(B~5K z(1OuU_3ef8z`iY0mMJX*EG*nn&+S(jBh=sG+*`wWV@3^7+9u?qjvNZPF?#x4^4@zX z3)F+RZmQ?hTt+FIH>;K=L~ASp+J3D3qw6N{xnB-usDvwkes5EYE+BH37wwIz%HtPnwDTgE4d@j=U>B$w07}bOrSgVZo-;tg6EYhB zpjzIYGfA^lKqUO*3>aK>E3J&lX0_4OMW~D4{&{Yes>g|u16x4lYa+q(w=(*F( z>1(h^t3&tLgBSYwo}jdMJICp4m==xzML`+W9A(bEcc-;Zw2{k`Vq_~hGtoloK5CgaKlTWPg47z`oaY>&(+m+AD^*o+S zuZ_e?^g^UFoay=}8U*dHxoY2~-HggSVTmSIEKgIKn)B31ykph9m8@I*yj7Itlm=J1 zfVfBO;HUu+i4VxF_&MaSw!GP)w2!RND)o>mt)>`|3?Ca9u6RI9J z;x%bJKSU-4I4hY`-z+-Phqf+zqM4?z_Cxlsn9n%mcUJwr$P>mE(riqmKmfv`Rqu4p zPLL0eeF92I{QJ-(W*nxdYT%~4@`Gk=wz7jiQw+Nay1v)^fV>BxMY;2(`7T_yMf1YQ zUErjG9IoVrx(PJX`OS)^RB=5X2kCn9H77Q|y+4bn8vqUUactT>6XF{INYm~^!(ilw z#b>)opanX70Ce~xbMGw8A;b)}0(b5lWFvPES_p~|v#SE+ol7PuCIzHd?rt)^HqKr)_ZfD_cXa-^d{i;H(egt@ z?lYxX+Q%Z#)8+ei=QY~?F|u!c^4bu#$bsmL;D_LhY}TDBXl;zO^(7MQFR_vCxYVL7 zq=+ILl8qF!a4mfV0+q%y#w8c7mx2&-*AlJ?#(p$_xc124uX08k;1>(@&A#%&0^~G@Y)sJhCMiyr>oyxK z=QAM(R8OVuL!Uhj-zG@Ed}u-?yZQx)dIwFtX;dqn|!a zc;z>>YB8q>U=J9HIKW}NHLR6kELPIFOX$hRZe>G-Cu#Y67-66214RX~87wlfL7@5; zPaIZ3rCB9!8num+u^;Z;C$t6137_d9E1Aq-!8P6Zp+E7c{36)KnfOQ?)TWT z#k5cfbbBH&RMOLF9t*$onB}(00ap2g{w7A~y0NnWN&@|hJcirMY3e5QaU7BAugn%` zi^W!)u$FI<+1ekrRW(MMl<2rM3pns}YG7-Jvvr8n$8bV1vC?c5RCQ!>MW#)*i^D~+Mg zUHb`d1h8!QC2jK*c1?RWfy`JdlzL(f*u5O%E~~9+Top74go={!>=_3g&me8(pv{e# z-0wZ9t|4t6vV&&Fk2=h?vl|sFHGfFic^}o#Bb5Ox=XI^uFj&&x=|;crHs`($V?!w< zvw*Pyr{84P5wmOnSp;6V<%Fr4uBo~^auYv!2vM20b{uwj*LRW_`t-NnGx=G?0R`M! zt7nS1&J*?59&@+yN9j5tn-9mbp)Bcf#AIQ_{YVH;HVn*4v02B%dvDleKvDU*9)`%` z6y4}xKW>C&;Ty$FYHOp%Ou#B7`87^xM&+`*PTA#tFm5!=)Sr9!^>XU7R~P z2am=Ay_I|QdIN-|;1=tzs|1GhOa>>^)3}C>E`1E;iu9!Q#lAd-eJvuJCsk;7Qc<6H zPc+`G+tke!jLX>vhiyG!zO<=$CKA-Q7%$LyaB$Ks-awU`o$D6r0)bDNyrZpFKn0H=5MN&r{tH%i75QdsxTI&y>@G{Sllhh(XfzZRj7sMXAD zvut2!>JOo>!`m!0CFT|QcO`9m@yEuRENtN+ad5@!W$33^fjXUeprLD_?d;EHcz@*}!qzhhC*nZ?`?T?d?b4Y*~-h*zTsK+`PIO zw>?SmvDwZhlD7VoSPvf|J>5XFU~mjR70Q|?FR|9GpSD${&71ksjJ0^SSv0KJW|+sf z)FlIy@yf26PlSVaf`;d;t3$oH=Ecv1o?(~dm#jC+l5~pbo-7NW$IqHVS4Y-z)Z~ny zKn~;^4v5xRY*A$lnGgWyirRL!`({4~EkUgpBt2bn0Ta%)acS1b z1@UX1KPFQ(V2DGjo~1Q2%)LJsCz!&nmCNzZO8lB+69>ut6a!20zU^WzYi5tfR!{5> ze#jcJ9*c$3-@yB~e)DbpUM(_4M)kg{S7%Gtd`XNV5~Je22x+z{Vm!2fW?V9O8hKar z-KoV_7{>{cx)>>TqYcbrY~fsQT_2&=`KB!19*qizv;M%X8LM*k5UMAHT9Je!qE~rc zmi+Kqi5~O-^9W7>5^I4}2L{@0R!s(=8I;@DYek!(a9ZfeX`EWka%W&&i9{0LEIm=8 z&S3twV>Ak~VGF53DhreNeOf~u^zVnEk5I@<=@A~pvD|5{=L%%j+$Yiy=>u^d7Kdp= zQWy>aNU`lx?n>m4>efYB-EI2UZMv-Wr@*EVj0=-08T!+nPK7Wd=gHvez9g1WFYF4K zgQXT!NjCM9$A$eXnZi|^K}uZV+NY0v=HBAUKr{b}=)P+LJs9PH1J zl3`Zdb~lgDb|-r4*)Sf}xLzG$Mg7chx;aJnunwZZTv(mxb>{Fk!vp+UD|{U0M@}%o zcYT|k$gFN{nDc+L+L2VZCbOi6HFHI`ikwCi9kW~uw&pstA{V(yqT%PJ(st0Nq@U>^ zL%K^>KeObBbeqkAUR~`;mBUJ!ChiC~L@bp48ruJDQqIGl*7DbWweGweH4ikGKkPa|{H(^=&nw#PVXZ&E_aM z&mY}Zk2YEMh{WVE$Dyq8{wK?{|NAm{%ly%uG&N+zdZx`8#@w?VsD;T`rSBoTCM)n73-2c36(q zsOkAe>FBLD%_R2TBxxj0{O)B{DZ{ozqBL22Q6=p)8osCvezH&PrJ!#@Q{Ut&mMU>($r8>|vp2A#br`ydHkWhfP^OAj}`D@vqraWqm?(GjEKg zF#9oE{j2eDwUWBpQ=}%VL^Le|ZORHd7+to!6n#{P^Z{2*WlqPjJ{nx3G7CjWTn+G| zL-t4YH}sdbr$?)Yz7zFWtfg(%DzC@xsmvMp({YLrdPS&34R_G=Xyf;o7*hg>dhp+i`Lse)?t$l z-bD0f-S8q*GMWmNWUdaO*C4vIUlRq;*T}1gm4$~(^g;B9q9Ckm5&##XrRWi$U=gK8nT}v@GjS@Z&teETxwI_E> zqb(GNsi-CDVjV>b>y?tyyF@$!36P1K0~Zhn8c(4VkBmvsO9ZmBUGo&fu4me8Ht z-G{Fq4gObOa=DpI;x=o+KVuV~c?=<(G za%yD_-QZ0<#g3K2bhrJW;=e*uPcpn zAAK*B#(qO6$m7>ahduLh)pPJ&cgY%oxOapa*Q`v<$cauOJtIWdtCcS5fR2;s{8sY9 z3!ej}l)u%YZh~}m7zE;rS){Ux+TXlP`lJnOaySW1PlEb3t6dCwyDdIg?tfx;25mXz z;>Q>?559SARIHP>7t=f;FlsSP6Z{C-EQMIqaWAeAMqIg1EPvj^C3HypR4ao$ayl-M z!S|6)lbHk)HDPAfM@WS03eAz}2F3r%4%~OlNkKX)5t$b}Xnr;VM>SR@T>VIu=K^oXg&d&*NcwnuA z9agL$b4{j{jM5#;S9585eQih6RT-^e&jK3moYl1Uc-*t+mEt$TH;NzcIwjeM?C@j4 zA}^WPJGI^lhfO^mOQl$ly<3&%w0%$njVeeWnVjrd8$O|dE!j?KB_>-yVJk;qr3aUf zm@q$di?$G1^Tfrv%^$=dL-v4CdDv!U`ux@ysgsX2$|qmROq;MU3UVfQc9C{y@Aws)m|S zOZ+V?6f^<;r~JhyCWG#g&c5o%3a>L}vj+2(X-O&F{Nr$g#M-EawpFjk6Yx{{y8m(& z{PnrWjFRUUozgIqcZp;wb7^F=W=|b>YiraJvgqt*9D<>w>RnNzNPah01XG34cj2{t zzEPADOT4#r(<5}kdVi+#nX33c5+<`WD;KMDBAki-@huR@2 z50qeJP4XjsiHD13!b6sprcW&WOs7rH)#BY0ZES=7=_>k3Pi|G1<@8 zu*dd>2ejLUGU{;HhTd#Kke7h%4K86emsq0qQcTe6CcYHu%aDdHgIDJ{;x0Vh#tVpr zVXm_VO11_jX~%WPkNXsUwSY1UCxlRALh}1P{97!1033j{^4nzqyb7~SBLW{on^8r@T|-}TitB36aE5c*P^wwWPbn_iav;pbsSHNoV0 zu@SYe7tVSFh1V1!JkWx?vGk)oPx8IjCi=WU0H-n4XF2CmilKa>J>u;(*Up7bEEhe< z@ycjmt$7msU5C>n5K~#|Rpe;$6thBc8yEpsmIr@LF~zl{gZe*juy@_0r~57l5UTIc z1anFB3{wBrFllRe5gaK?NrR~V7VD}__78?5P}32`iNTn3<|_#O)g;Sr1Vholly9!V zx7UU_gMM?$!D7N+z#M+TL)Zhu2ZOq<1$8;==-&32cR)=!Bzn|oQ7NvFk0sdNg!3G^ zdsyHXpHNdU^pvl0tm(LsZxa$rel(H@Ce>>V+i~>F4KF>F` zgd}T0M%J&P{#;vR4^J-9JcnyzE%R+JuR`Qu%e!EoHV3g=gTo%IDG&L=0c3U0JS*F<3_bI&pdVU1HyIO+IFwLdT|X zzkdCFIu;oqA4 zS>Zq$6)!G0Fa!T;#!Zmv>95{m>|x+a*I^S8JkLCyY-~n_d7w7V3ZIqaC+KAIyl|VB zh^ssMcAnd*=ILXCD%s(z(9r?QgZ*0A-u5`V<>-KYK^i$AXY$?Yi<*^)a8aM~RuH5% zWoj0$uiwU(_R_zIbOvTn?vk0&zZ8S|N7jpd7wTpU>LM4@WIT`)V!j@J4Pt^3Cbi=N zT6Mv$dQvi(n_%N8kt3bn$fVXfc#ewo>Vi|jlj?-oaQX^oe1H$MV#D0efjz=+hyyt& zePIO4Y{3p4vShJ?kl_MgV!&@HEw&-iEHb)oA~%pd`4kFU_@!oB$ByY#>oh1=z;XGl zCdu0I-`?qf-LyjR`z*3Ad#z)U6T+Au6g@ax4J}sXjQ2%3ZGkC<{tbEF^8&a8Lm;F?IoupHuy=)>0ftzdG03{ zm9W*{dCO*#xU#WXdeEO2Z#m&&ixSkDm06U)%uN%SUU03TeoOrzxy719|LFQ#SI`#QZ(QtjZFG;8%^^ zmOG}7k?khx$B&&y$C5R?<;~}vvOaxRAk4!y50$-F$8P0$vFJrM)>`;1Xj9du`gXU( zn%ciVMgGT|y2bqxs!*cf#WBf8AVU>WQR$nN$&t04bb zQcP(g9Z^!5;f2d2clCo*#2t+iI!1PA_uN0LJ!P&6dZVu7bcIwhA;=k3T=R=b&>@qk z8fvhG*v|UMt0(`H`$FNMP|(UdkSqdu1IcpNI_^17rlVAsH2gUtdsAV{0fQRSgQG;_ zfkjm8iawcKDV~Z^bQl>kWj*U16^@>8v4eXOSKe(>%?HR^fw!~}>acb2j`)uZeJ}TE zPvzO|fh6>c%|Cl~G_i@5`L#N8kCS94!L+N~(9r?$%JYY};rmR))DtO-IVR6l^uJ3y z{>SHd`1voV|{BQc{v$ z+AkCQy7`gM(JdEmY2o)a*ShObJVr5Q)ye<-0sYI<@cVI|U zwSGQsRn$=1zJP63-Muf?Z9)S!DfYegVTe^aWh$3e87f{beAiOkRNIlP8EbZao@i&F zBes>7JG>_X5xF2~f!&}dr7gk#-InxEe^ffZLg4*6kiaiYLZ3=wE+k%Zi2W7uh#Rm|JPSyj9q5<)KMvtB-h)x=P{Ax1)XelH{?pF#`kPs2xXkLU)w!v~4MDOFU{$MqbGh?Ti{o#;~ICir$vjQYc=FpVz!lv+0EvKYunQY}IDEhG2+LUOwQ(l@E3~ zy)i~XN4iaMi@TtT;Wn^2vM4xDBYPEk-qB}#9Z?L)RMO@H%VI56Sg$4wK@Ui8Q6-P2 z>qfUE*BMVuq@zZ7g4}Z5M__IV-aM9QgRU=2UY)-9i$8E;>1tnjcu&jktzB_)2>w8{ z)VDm>cUQQ@2cHvzXtumA+{;?Cb-iS?=8a+$`lA*rU;iI>_g{aTyQdj4WW{=BxmP15 zWm|!2Th~z43D4`P1WU`JC0^ST5?XmS{Ilu)vt27V2Tui!W(_=ladoEdo0gWANl~0F zV*h6Q;>8B_O-h<`HYCi&U`>-~PR4$jVEx+|^M96Xze@$La{8uWzo)zICGf9`+H19< z&+=~dhyJxQ+mFoeEw#TNeO^e+`|Lh(vHb{-Z&6`E{dXN~iYsB1+qH=S42B%SA{~Oc z`JXK+p;2X@vOQoIQAJ1Jzm%yL&bO#l2P+bIUHf$}S&H9&*u_P=c>Rc-zC^jva` z4kD4sl4t(2Q^%UUc}zj=S%`tv6ZWhSRDv5f*f4)mRFC2ozHqfF^zQd)k5H{QcNH&h zdn&xnVxHKN3C9lI#e4H#LP&buN?VVZqWV6`*d8ArA2X%8u_nW)(*McXvYW6kS?duI z+~>?7mK|){_Iz|9?j5tKpYvWsH~Ut%Woe_1*S7Q8mwvo6^z~D!{NzwruV#q-SwV_s zh$Yy%`J~CB4foe3k%T3rm$>}KVAHKOScvo5S2zW>d-mV0&3~?55%#@-eg4YaQxlsq zxEvMw^WnX!leZta?jokW6iC}CA1jmjRazLQ7^a(EuC_z9B#Uo>f0t!!!?>I0{#_5w z>UxQnyh9aHzV`h;)V*m~lh@Wht|&MJl&U8I0YTd;Dx=6e#NnuI9l%l*WC#!;Vwhse zObCNuE0e7QD1nGn(SigBqYPmXf{5E=ey*+(<-sb$j{l9q0 zl@HIb_p{c$?)zSAU-|9-pacF8Gtxo6(8q^J#gGG9W>rnj(~tz!n>zRd6-B2(0PW8m ziA)b%(@> zg+*;1?~U7WSzUTnO{PNuW>pyZ-nX0v$TscTDaYw#64BBkILvZrF1b=80eJ(mD%zsi zHTl(gbm>=FHuKy2_s)fmJPtC_Ct!7$C2S(m=G9ZNTInDaWKX_g8H@ljSV)x^Ql@pu zruSA?mTLxibHS#PJBSVyB)?-P5NxY zC%_`zAH^Xo5s1$XX(W{N53Bs2--4CVp_P0+$TMyaxH&(c2vD|f^gd7E+ej)zF z1xqV-@7l%zm-VWNnp_`8sp{>sCmu2}Rv?u`Xl&#Rq$wwv@^*1T>$bN&-W)A4DP~5| z`nl|OI625nkQJ5LpnQU;@-nHh-1=ac?XG%J3j(7-JO&Xlp*{d~l zz0C`rxN|8z-dHow+B5!{~2e}X+FseSPJx&`%;Bc9~zPIcqR z1`rAX>9uqSh%+o%lB=3flWSfCU%ob83XL!P;`PPJ$5N|(joAa1R^CRIM$=i!@yGOAWIO6{F>}12(pwL7SQvhIS&`Lgc<>>+tEc;L3QuHP=RRwUhrKm&wb* z!g+I9z@gRvZTnuEB|sBJ{C|vTQG28T#H*;fr@V*UY=S*xV~P^hVEx@1tB_N+S|j?B zT6G%Vsxm^2*KG!eXi!B+2IG7&F7~v7aSaoHZ%@euaUy?}wgYt*24;HTOvoVtR;d=2 zYy7Xz>Uy$b2bGx1-}K;!*%aHMxoc#1)m0-|Hm?TACe@l_2fja!fNpQ`Be0mql5Jp` zK%=@Zto5StvluhIBwx959{f))?XUj~`L;18!8&<%9rLj9@R?C#ldiO-Jel&mhI4zY z)efGBS6!wCK6b4Ldcy~`Xz}ClopFs`n$&Xg8zRkS!C+eqUn8mX1OLeBoWmu3*U_ps ztSJI_vPfJ*RS>^GL0DVb9~Ax*r7^QPcjhJ538eR@V~pJ^CBZvWL{d`(S$Mpvy0=VS zo%^s_J>(R=f583V`dg8P(Kqr;(#0RXzJa{jX)b^9C2t$Gm&h*Zzt2@1t?gZ1w$@MU zm9E`IdGkP9C&H`HRN!aX>s-g}Hv2WuUP+nSBQ(eu+7KMn;@a@$gI$K}7gng+x;po^ zvK*&gcMXk{N=^OGx3yX48H-YR=5zA|B()+3u&#i8eKF2O1U*r79pb#4#fhw!ppb{l z9_s1F?JT>uJX{TeO#+e?*>ln>#j<{<;m`zO>+q~wgIxjrCTxkVUGbXMw@|^uzBLh zrT;?>`a{~WGW3djDr=fIem-~*KLT6qtZS{2wZ`Tq%74%Feyewuv?`5g5p2>o1lKf% zbhbTg^wXlwdFO}ZK-Te6JF1dhe`hpQUOuUPDQn1;+EI)ITmKzF{o$g2_+hv_u5WGB z9eA}otmFg@F&uSEw$3^YRHemT4y+m;ZE&x*Vd4dB{67+Gpc*ju47Gb0dMUG?ZjEGM z$0w)}?p1IK9{%t|G62i8!FH(^+bJ)=Rx@*K?J%z;a>yj=O-(XFb1BzK(Jfgil*sC)C&l=0*6mxt9!y0u&F2;I7jFI zqBAC!Z2k*2Bk$_}kJyY0?6@#DG2|32?B;0Jy-jo){x#`i&|(1wPpo1R+?SMu9g=OM z+`Wl}B5$OuNm(awr%43Pu9zn zr{9~kUmfc-6|2+xI3B-~a6<#zT3m&9{gIzNprzTQd#I|$(Qd*7$;}!Wt%+gdf)n;Q z?dul&Ub76Xz#w!s-o|j1g4fOmupqZqmeiM?zqug!9H@cZ-g4|>%<7(QKz`=6YuFc* zV6{AQPD$o`a_!{;dZ`tD_T`>TQt~hKBlTLsdtW`GW7|x`sxY!1i&q3E+rH z%`WDv7(y2#I*%mirb!E)0k)e@`tjldE=V%zqTd^l2;;naJ;(-5KhYsI@X3t^x+Bq?!Kgp~*OBN?b>MJ0z@W7qh?^aH1*Sq>u0v;d zZhwEKiLFROXJr|bIF$jBP^7OQ|%Z+O4Q zWepTQ*7@07e#o;QJ$bHt*@f@{wqg~)7of@y62h`>(Hid^@oWjWF3xzA2hUaqAT*xZ znLVi2qni5Jm`{HCv3O*n_r$aC(h}q7@rjNK5o*T`=C_Urif=%QkmIZv-W4jvw4JG3 zDLJ^t?XlXg@L8W(FaI)Ls4M=>LzQ%4SKEm`yKySkTb z_;DuCryNXg6Pi^D%XrVt8SrN|Xa4j;|N2jk())D)0)&fG#7T#!#BUAJDtG5`TfWPG?4s zSEu`2?nKi4$-uxTPcIfC+}-W8`3*Em-L(9VRMda`UK(9jW7kdAfcH#htl$mRAAWjk zb(>-(jTmOqbzofT4AZ^iQd?2!9P@5cXe`W4VZ^A+N?cQ*Al`-nynW|wbqZjSHeV2=%y(rVT(E2MN)7p)}U!@ zMZ&s@RWO77Uf6~uo>~`ub-NiKBO2-UJ_q3T`FX3&?9||^&29n7WYzG`UL1Je3b5Wx zmObti;kTgdJd*^ER9c&z73Z1JSiRS|ps~V}w?JN0ODpS6vR;IPBb1y;K3O{)a zf8H2yX!9A1<0?F@>{VG>ka%yC7WWB%V*G*eujXtv@jxoseAJszTl&C+>wc*&{X$Fc zoVTNH+x$h6D@&#&M)d?LLJd!UrNmv=n+dPZmL*ZPP!pT`2G+Z((f9wWq8Bi&Bq}IO zXkuIxe&f%|@vU)atKDyOAMK(A#QHiS=-bGlYdwF`RlHsc5-f$@z8q%qlP|z>_}3glZId$OqsqR%=N?* zbgZog(%sY3h*|T%WE1CGt}L~+>W+PvSd-X{ejY3|Hm*~!#5w=3z>allM`Y=m5{`QS z9YmRGFdj2LRDhM#qWTmHBneYQGT{oWEl+d84?U*lohB(J$y6Cb83 zQuz^R0#RD1Se%LcM97;IdONh#CC~GSPWC;!Lhh`+*fIFM?g{0HTT+!houh5aJIHz= zr=~lQ3*EI&A!<0Qg^Qw8N4?Z27;N1B@gS0fjTMz+o(UN?k|_qm{Vr0-V7^8FkqE>~NNH(*f8zKns4ZeGCtK z7^y>rl12zoT-0h#Z|sD)?^OkZ^tEDf&C19`xK^|eAEFc2!gG-~Ba-ts`$5yyuD{{> z=?Q=+fo751h9!uXK>ZPhQ?qkJ?xw8P({?^_FB+<1xyB=zKGtyr*_(=$K5uv8?P|$= z2fSdgqDUQ~^$ux8Cq-{gF_!+!#wufQu+tS z?Cca3?*k-XN7HR>rf~bOF+FBq9r}G1z^U|_He&UA!aEJAQ0u%~*MEWBzC3idG2o~; z@k9qAi5cpBKqi<|SXn|H8mNq#&)0DNm03cL!xKwW4 zmH%P9*osq@WY-bf z-mfwFr-e`#ti^2q5?YY!eQI0)h5(p9UUn>^&HbHLg0lM$REbNjo;I`VaH@iwg0xYf}g}Rkh2ntZF zfQM*w6ON-b{qSeN+OLU*uH|#BLn})Q(wY;@U;(gg{Z_lRk7Ht`zzih6HcH6gM4nle z+QCT_MT+p_cd9Oe~Sde1ua-rz1d3vJa5}yT{%ndLo9n2midR zS8%p3y)m>OWxG&UWBX;1@AMU;k|R!3B~Ajrbf+2JT6B?Rjhcu&le46e!58tucV3N! z>QEohk;T3oLVar(eM5fatGI@>B_Z@|;ydP+tDQclFc`0y2RVEzztyGi z6!ZCjxq{puHzLi=e3N+v(Tbg?tD4kkcr+QiJw-8ggRa7<<0?tvjhVsAw z-}kd`Z+5#r2}e3?ecByKw^HehIbGRR`B)t4uNX44gaKztt`{Hhuhsa|ksHAxCnpxE z2mt$77h+rWe9+c+WH`-!jh9Nj`*(J{J$s&-)$`5QzHre~jn4D`A@%uEQmcFpYfxNJ z-5#>^RP2w8m6+|Ic4KsW>5LlAZw&EM;MAx|wxL=9o}n+D=4e0qTGnF<7nWGlubx%V zEA-1MVuiCz2DED*YXB0;)M6bd2kjP*YSpYQ&g;F-Sl(NCZ%;^(xW)muR73;-sZ`&y z#pOD;fDP!B=*zKFw=gx6y)t*cEOnHRF=7!Cu@Vy_q~zkg46G#5c&;MndE|2WxgNui zCG)fV2F7W&4n$ciIAmzT=-`8Djp??69Oa)Ku%?(dUXI=dES+qN^u5@f-tN+_>!oVv z-Y~@<$Xsy^Q^7i9h4&8^L#}GRKjrV9#5BM|Hr!b zk3U>r3w$DhawTk;rj>I$I!j=(TzYU0wRHuMPG?1uwO-thH&yZo=mulR158ru=Z&Bu zU&kC=O^>|u=*-3O5B#dsKum0mqSl2tM(<1LM_Em|FXO0qv)L{l@jLq-J@B|{jx(M1 zi^l=>kN0I{58C7Ojp`;n^e^YbdG2N@5R09r4d95>KEUC$g?WnHtGMEVbJV|T9^7Xv}`W7+AO3kUgN%W@TC8D^_;=g_EFlP5D>jAC8LT*sD*i4| zT$$A!)9nZ1IHuELjZe2!cx$deLw?m!hj~^tEwa-(ut)bkoBbwKo|2Ms9XVJf&V&sq z=w;gPHQ8tn%Df2CN4&Axv}`-D+oN=ybk48f4fBlI#kA?;mRYS2zrjp3UwM8T3-jcw z-Y<3O(U*{omE4uH>FgynyTI` zUF-z?C6WsIlux0;=-cZqh?{~HnZ9#C#j(kF{eeSavX|Xu79fD4qaUuDM5&Zrwy^%@ z!H+cMOeAd0xS#EOKE~a14y=7jP|Kgz19pS*&0N`@P5wy7|G&@eI<>p6)=f`5(jK z%;_@`DYTHgBSr}>$#uY%Yp{b{kny8)f1ug6<0UDjeO8Zi(y$_sE-DXFauuu~t5>b$ z>u@4Pk9;^RF~K?sOIbt#4Rw4)yOV#07#xm4Ze4{%?le*L%Sy2qm^mHS`O%X)A_F!k zZ~auPC3IUGAtjYLb44TDVd6tewI|;k2oj$!cRr^nvg3Dr-6&fn1$S_ZGJWA)gp*aa z*3QDF$lt5`rR^u!!v@7c>P}ORhs*RzG(yy<*BZvqdB&ll0^_9#{`_2i+SMzuupLyP zWJ!z@EMQ^&sD7=;9<#;PY(i_RrEQ>5 zU5NU|{G4|W8?Bp+`0GPy!Qe2{71y5)Y+IYR`zw$!7c0wFq%`M<)Bl}0>{DQm+_X^) z5q_TB^`tOhrNBC#YrfO4*{x2j76xjZI_1O>qwx>C-Jf|IZe*(OB2$1?n@>0WFqLpb zw_p2~{Zjp1j81Tx5Q|q(HZ}f4&ik2nqOzDJa@p2jsTbE4|9l8tlRe3KvMTs0d-z(- zKy@P$x;A}7Y~)046l`O0-e#U>NAApqYiFn49jT|5M^A*(8Mzk4p>o#~%fKDgaWz0L zzF3Dx>#UJRZn))T<| znDdS~ffG;jLr&%8$a7hlQ7rL8ZAqutA8tuuGMJ_rnl0kYmpf$E7L-1fVqO-1tizO) z80ASs(w7KbNKu1>nB}!5UlMsMaI3#nR%R>azFU0$Uq<1DuF)Deb)#m z!fW|sQ%4SxIKA)83C;|eftNNb!yfKdBNCe{2o0&qez}dFV27;MuI4@DYJh;A>sp?+TP4`D8@bR{B-bRo9T?`dCKuu-}7@*P1xj%c|L!AOuWv z-2GCoGXYJXN-!rO9jHjkT`}yMf{gvwtA!i58o+VCu0GE8&cC&hjYJSwM9wGw_OP|| zvE{^Q_E6F)r9@xtF8Xo21%H6-H2n;@t?e-hVjil}(E&KnZ&INeTLq8uJeo4vnrg_|B)}$f2y1cSjmcm;ABVH+rYI z6%%`to2|G7d-kTkG-WPs%_KN$Bk{2EW<#H>ng2S!xRCkH#v)i~Y| zcmT^I$k;P+9l_#Rg3VFSIU*zxcbS(3NG42YTSRi}7mst~*E*~3f=c>vpm(f}f}zfP z^(@dYa)Gybq7`skk(;h=ho;k#LjvS2A`u@36swg!%e>&2HJ;yHJ%#c1VkCGC0;7n9 zsQj!;2sc5Ha72rGtwkSB}+mK zn+c)3S(r3(ljQeIe_#1pBNTEiIAq*vcipH`i>X$MQg)zr*Y&jKP$O-EnGt)t-@U-j zj?jq>KWKiDKe<~djhYn7o|ilRwJ`UmYan)y} z0lZwx@PcaQnTWDPP*b3e#ZfoZ;t5P2ObhIl3-P0~p}+PB(MuTQek z{=|i;ngzbBd*yAO3IVw37}`j^ZpIoFTmspc-~yFKPYy*ve~CP03mmq`^K#OXUMVw= z{TP*guPZ6wnb256LGeXv!$%n;X|oR(-i`qZ0072o822sBn~Ihip}{fZYIsaQ90W?r zp6>>b*eGx}LWhYyJ$%3jVlB|t(iZ{?DJ357H|V1X2bE#qbvG`4rB`T8e;_cJnX?Yx zMf%xT{qLp|7?d64fI5)(#N@J^6sw5gcj4*u#9I2sjP#h zpl=&6!uBQzkS9g6u*O>qy^cIH>ieTssEqJW=w!Mm66>srqPaazI~HeQIc^nZYO>1W zsAsv>Mx-5dbN|yS-T66;c7G9)VHZ?h^DI#Qp?sBsY;-!XYe#@Oz|S__fw2AjN)2=_ zLpV*Fe!M&NSlo|snVy8aWlNxuA z^fIi!=b*x7Chm$eWov*vK16GQwAaxaEON-rw-4$8YXuA9ov(^6Fwm|mMXl<5kePCW zCwu=z=;QGE z#d7kY-%v)ojkZthP4%rscD0%M8hw$9#!E~p^Y%$>;J6+;_=18hhAX`Pq!IqGQ6izO z6Q2dn6Y^$#DEN+l5eVAPM!(Lj-rRfj}nj@nQo4{uSQ2luc~oM zOp})`hv#_{mc*wke#>aC*d3LFdL~2+V(^L(hF=ZeT=9v}5MF02)}S^w8t&oEj6TPI4Wvg znAWuITPZoRDSA?j{<8P+_p)2RQn#->?#SNUnsw|kgJPqSiAZv7!RFQ^W<5kXaE?bn z`(c`Pf6-R;;~Q|C1cT8_@5tr%*e#cj{~z7+e@Fr8kej-n+PJtdB^~@X6-CFu^Ign+ ze^09SU^JW6sKHaI3?S|_N`G3QE}D%RKb3XW-rIDefV??S<@H!FOTMyuC_4|fHB1Sy zoBs=t4a9o0Wz)dOEr1!Me6lILkJM7%R(ntjUCnUHUw>!euq+{@UcJ3x3wT9 zpK@$&la z4c41rQh`qamw4D*GFTwiRSNwRS@a+NME%}SMePh+Ja**$fqkr%rh|Ci>Gm76RWRx{ z#^6>}PSz1!&>XocoB8H?*p1ajRPUKetK`)OphW9*rW2({>=B?i;_lo6^3xKK>C^79 zhW9QiA698khu^!{vl|4^K*zbprOrc8+U^q@4wlvoU!CwdG#F5jn^yV+^;zELXntLC ztafcd4iZ95r{y*XFG?bVY?&q2Ox%6^P_2rB1@#9d?%G~qWHcazX^1g@xeq&A_4O$x(3b)> zUMDZh9na?SauwwZ0p31$o&$u$_YR%@H(A3P!Ik$|R?D}?F>FxP4=(J9Xkjw6vMp=1 zf}@VQsWzFmD#zJtjTjvDy;kA!#i^VqHNiH?^AKlC*fx4iI=Xj?;ixm(ElchNW9l6@VF2s3B1Lnim~UzW zlbhFvnObN8qd0~RjD3T5xlFQxRU=GqC0|bpVV5l0gPcqXLMCC$Ktpw{2OQd4_`5YX#q~<)sxTP@T~|dHYn93%w$_aa~Afe85>VEFlEyor@=(m`vnSv z--9mM|2SXm4|~7y^9@>1irGbh560;iCc9OxtuMP>9uyFadbi|j=p z&$!zXe|Yz`2^B5GqBAg+I!1rah*F_M+#**m`W4WUV4IG3mpi*}v)a?^tCLqO7I>v% zR$PC)gl4PMllMTzWS~Z1DsdDq zraYQHPY-@T=X24bib}Y^?O# zU|YoPqeN@CfX7{sh;6v0NUP-oeTi@?*OJvZuZ`8gS#v|37<_DJ4G|mFImA4HfFNzs z1)>T^>HNmIG$bEa=~!bn)QvqWJWbD4P6D<{=-Li zDpFd?L+xiePJN>r6CBm-YNQhP`^X;E?=@}mjUj2?W^@66*U_95)#w{on%JX+8`{Z>m|z}QPI#># zOTX94p-CHf6Zj8cAqBIrtPgE+CwW3t>fTFm?TmlT#91NCQS7oK1WpiJ&np$(W zC!w~Nsgyb5Ryv+(DYfbF+#Exset=s`fdw%5I z6I0hLt40jiW8dde4Ym--E0q|s?~Hzck!tEOmg?=#HgX8BVbN`1LRl2Ol+#bYgq82f zjqnK-8e1yd`F*Ga^j!$v8;gXxv1e~?ZdC8<#D}+ zLNr>%0^k~#ZoP|j08=)Wri8LOxk82e24Ib71RA>pHVDQtO+#Y*hTge@)?UWp<=-qm^!)k2!yg_3ih14#Uc_P&r4^=yNCo9|8l6W9290t>0-G^5DvlmZ;o z@K4H}TTGllLvZk++GnzVP0%>Cj>myi;no0xhcm*+QvZ^MUo2`RmZy-*#o2Hny zw#I{&k77=i@(Z~^Pd8|ui|Y3Xv3lG)Svrp<;%meTvybF;TnNaMo^qv#StAz^>rjnUR2u!-Q^JmVr&8Y?ww)K{=Q^Yx%?_Qo zM@_S+s-VGhpm7Rb`z(0R3=es80QJpv=ayer>W^{Ejt0%4?rWv%O+K4G07|eyVc(hF zj;I!oa%Y|k0WN-jtK-7aZ&7(eY2s7Ae9N=uXqX7i`_8cLa}_l(4Y&h0N@T(_-sT{V z+gFo7#I(mx}B70DN>EooV$8sOr zf)Y=;Ehf(4961a0@6f#$x{VQK1`E z*4e_f>Nut#qjpOvrsvFza2e>;qXP{7ON&LZ?6>LR&4KT?R44oBIxH9T0vVx{3np*R zlVgi9v270{)R3TID;7{FQ+eWg$F|YuNFnyw%3M8aO#pTi9jI`rAJD!I^bfrH*UYeS z?o!uz*Q&;O=0BfF9V~I-2HOJanm~R1I_{lMqZTm?`jw=!^~JG7`=ru<@PK}+$DK*n zFaqFGw)pNCa7Z!k^LU>B1=l|a>~g+0yMTI+)#cg-*e>0^;_VF{@Zz%MDR76+qIf4 z3~S}IzE!?!9~`zYmsdUgJUs6~njD##51$YZ9b+X zv-Z%)NO8#3VpG-Q2s%$jx1^5vP&_8OWoA!~Q@}ilqYpMICSer)tD%aYRij4v>Ie7Z zzHT2KKXn^iOErhzWxcD3PVm-t9&53VUgIUSk-R=*+Bj-uFa)KV9BO-KMxEI{&a|PV zJX08P$GNUp=~kq9(B@*NOwns!)i<-pxubt2fC_%xQBBlrf7th4KYq6b%pEidKFJnz zlTD%X2D|3GgL9a#Gms1A*npAV(!Q>6&y#RQAaA<`@42Ip5zTy{SV3*)(MVVo?GS8? z52+PH>}iOJXsqY&O^WR9-N)6UF?@qE0{IQ2p}f>(+WgwY-Y+8i>T-X1no`c}%fw3i z{kCM;L)2TvPgnXRZE*gv%qTch~L^z z)`F#%%GU-jN+OYHB@e4nJ2KvS+gbtdKI96`W>#<>a2)=Z3= zbP3!F80?_V!V&N_H40`h*MAkZwTB-k+Josp^H$Q3@&7Rywpm(_7+SQrCfBa_(VX=G zSTCY8*J1Y=|059{j@9v~=9kUlqhJD9+wIZK6j+p;g=Tq|E6 zJj1o@1vSnzR5iKwNdYnYpVun%-H-mzDNpXKPPd`{LV;|=UB;dg%`IGP3#~J!GnW2~ zp)r7v&w6V@^!99#2pym7Kz~;KjncExpywI+N_8)BiCei>IZ7F>>Q=iKM@yr}J@l)S z9SG5eKwMWpUY`P)-_bQ$%Cv?@_gD9bQ94TtJd{yKshEeJk>k?RU&hi~`6e<8#1tVT zj8QWrR_l%&jG;C3DBAPi$YA^D5XIOaqj-BFOBz{EqzPT^SFG>p&8A6VlIS4Bcpxw3 z>X;d?U}-?+2}e-v{8V{}-OZQda!xy1b+oQhPk)-N z#ASQN>{!k;*Mcyrl|vV19ZSGgf=bNSfVClsmK0xlIXnKq5pTj)i4P;f^C*I09p=uu z7eHTrvDL9CNIsgZ@H(uw0J|XvOpcJZ7;l_it+6XxycxXxm1f=?RQ=jY;QRaS9gS|i z+K4jRfgM+ke1kVq73Jk1!9=t+Q!S1r^j21wWa|OW#eVBOS(QoRPzBwO*OlA105IcPXi40gZk6A?vgd78}p#bR+zE zCaC(SnV?TOS<`nRs?-33jRBRIQ@R!#nKdCH^y(ONmT#r0F|%}!p5M*X=b*QPU&9dc z6&w|I29kC9!OA$B;C0d6GUZ~+m-w4qPrzgV8v!{ddT1bLOV5D_bC}D{C&+kA(|qqu zO`dl2GXcR&1RN@{snk%ZuvXm~o|2Aq;+ZnbF!UiGTi&%dcHxuGLM-hxH+<51xq(q5 z_75jO&ma6Z5oLOr9Dbq}!}$Sv3{kwijAt!{pe}^iXgl_uainUvTwHtU>o1Poy}PTS z`*6~#)kTAbq0(sr4Edn~#mu#F8{uB{Xa<>3v|LD}2=3!kZP zt!p9=Jq$HcuV2imLX_;kk>IkQPZ0_(uoJ%D!5ngVTXpVAFgmY4q4wBQNqROG(sz!B z_gXyqZ}<1V?|AKc+0SvZCME#VdUV+d>rJB$N(o5Ih@SdxW%7_pWzL(Gm{9Z*%5^hoF_e-(STgahTgf?kJa^w$=1 zpf~4(ON$$x$=@;?lnXeo`orrag^cCuNc{g=ivM-(&7kgbX*eVwUKlk_FeaY8iv*J* zHh-wY4ZXsxT}us`E{d+%4?*Qrxx1wt3S|Atk4R}!@LM{m21{Tr5smBbeLjMm&gZn{4| z>Bo(^2s!{Z-`!IkEgudaSUwfK5hc%8J>iNHBH-z^$ze&NVG(zY4AC?K_ z9WTf44h@UD2;6wsKvwl1pmt$`{NdAysm^}diE_W8yg#E2yqBR zr8k=a-!7josJyzt!`YSCuuLinj7&%ijU^%2I40XXn^L;3_Hk)04M73dT3;$i5mFPlRs`6-evm2P>S)=Mxsn zg7Y@`rW`ho6&T)}w}#y^+%DLkRv}9BaHHPA?(`p+CpjXGzdOgKA&C1K?D~Cw|1?yk z*>#9aihkzVGaS&YxlkHI?RSX%<|1hqSn)f1#7($uJr`YnC~Wn5^xRVhz5eA1+o|f` z<_k%Vqx19gnA4nc^ES!bhNQ=sAv)zd^wK_$+J8=QYsO{p$zH@?M4NxVqv3li-!a$t zfN}Ou*hh73WjY;ryX~@?q`2W;wH;VvX@U#NtLV@Lw@|~4I>s73vGZ;QJyp0+KC6Py zw!7ouhQlrFM}`yNx_=$p{&=-T_XktG9nf~&m_Yf%2`X7eJ+O-i-)mp22c9&kVDY8> z#Iaz^pc1Pg6DO5?S2-O-NqSf*2_G^?^(AE1cHsH7}46@WLF<_cO5` z6ZvAsgNsWIT{8S?>py;oe;rO7{&5q&_*{0ZCf%&6RCmk1%)Eh<;Ek&=YHyxnDY@%h z2y4JKm89>V|4_H2<7m^I^6BjuX=+S3Pc5Q zgayA)!(r;$(n&{f9unR-%vf6KDM_l_{t#rwI8k5{8M<$O(c4|6-5-jd)_==39C(`p z`G)7gG#9Yx2#?WxG0aDrE`$fsb^kt!IIk8bl4ywAgZf=>8VGIo<`?Hi#zOY4ZYn)# zPv=>ZGwY_$vzlEY;s1DXvAytEUZ5{kz$d@(7ogqri@Yu%t3utQ-FO0qxUd#<{gm(d zcYyTgj~e8vA(%b_toyt;<$#v2<-U6tY}lKZ?e@uP>OkNc)t$-EvO`QLd9g08hpM<` z72*V_2Sv}f)N2(8L5n%%h<8pf`mlc|_NTs3-2Jvt9N`y??}7-cFesd16=)d?tE+;#yBE{U%CEQHeR_e;kD0e za~+uE*QsxCg>K7|o?u)!Zs|&4%)w=7Zdw(eO{XyAIy_>I{oh?zZ@S^oy;b5wUDveH zJ+a|(A4vz|_J+N+Z+bS%^%p*yE)Sk9Vhmp}j!fzB6!lk5x1H5561{>Z(IH{aik+BZ zzE|3eL?WpUf_%d{7&JnEvL~s0WAOZ}aqruclRXyJ3+fc{+;QniY&s*FenCpFjTIU@Rq^SJI>wd14+wU!-i4`( zT(&s8!TpG|p^CjQFAZv#8ZUHnlaBAxxp0NFOlMX}Di)4f&s+0IOJs5QlGvKgY3r3` zyp+%L>cyFXW0LgR;s%`s>tCmYft^@9y@n%_#>{*8cczg=^B%fV{>H`DQoaKVUrY8J z$DU=K9BNR0bS#epy>hyqX`e)W5(!?}?Ku7FP+8 z3G+Y07d7KLc=ceHqpBsBDu0`4_O1wY(-XMLk<5OC+c1yvGn&m4OciG~g!DiY57`tK zU!8Q*s5E?C@!A#Vb{T5HkHJ;7e^+(vG0qp8BMfe`A)y=6nDTu>xVmiT-+tx}+gu#H ztyRQ{#KWXvhgXP87F8m~EbJ}HeXq21#s;yRekb~4q_v)Ugy=;ZFF_O5Lk;-g`6X4) zf~3$Jv7tr3_0A6-@fb|-LJ^ByodSfUdUUY^e&NaA?=)So(_}KlK*KKlPr;9HoJ`&m zf;i(u61+-XUAwjwDgR7`?>lu2(dWZD;*?cbmh^xlVO9pF9QQ8sU^SFExloswx9+6% zVVDz?>WR8CQ-IJ)`tNX;F;w~ARXwYfbT{1o(xvjSe3%HnEtZuK)<>@v`C9g02&0`~ ze8mb~$!|gfcKt2S$t1GqAyaG@^wU_K0DwZ%o_P*CBl(&*dpQJQ1P5-h;ZteJvm6 zEsu!`K{Ib0<6hMwz)}{Bv-sc3T|+(P%8PoUgbPf}$TLF|ovI4`@@LODlJaxUgCHk( zX)IFmGeRJZ6)J%IVEEPfK~g7$AAisD| zRKu`mPo9CG4I@I0N)n$GEBiqv(_shrbsUdc5nW3P-oes#5+Cfgq|3spv4GU^uz`v| zKmfQ#^OD|#HPpcGQ_!)#avF}l+`}V_(QGSd&%tefm*%Hy8pTV?2Ug*hhZaP*oO^0W&x>feW)vl zz6K6zfr3WEr|`U5P$<=3)m?4cq-Do9yvS2}lfsUaD%U>L|DmExZp)6HH~fl+5u}~N zxjhn9LVq=^cDw!SRJC>0O^;Cdx?}~4MdJ-1TY#DQn*kiZ&2gIi9Ml?#sKJvSCj3CJ zLKsDoM6vOV+ke+1yywCK$c>lXWLE@!l_}8g!1&qNAmsV6uk6A1IypmF7QhVF8xYk zv^@VeS_j&fB=ON*5JqO#yWeoUojO^g0(EV?N(G6dITgZy!7Of2bbL^ z{=TY1z+6OLkqNcD&9T%aMtMO97yc^b_S+{OH5rY|gS_)o(FKOu^}VQ70f$M3`)sEu zgrcAigC5R@ij;l4Ne5xO3MU24W%7BJiwB}_SJ%8Q4dDjZh#8Q-`1^RWoZtaTpnTi{ zKkwl@*cM@dUt$eqQzWm*;tNa}t*a8V1146W8q3vWR(KN!B`0lt;OGW2$SpKLzb0*@ooDAIs|;^<&`@t`cN zfJ$%#fn+uxV`~TQ`_qe3*{{O#R?htM3+6uSKSvy)Ds8yQUwAxx*ZJiYr zk;-l`X9TQxGf5)r+^Cfoi4&OF%m0o@FN7HQZi=(r@_w8A}sk%6?A#PIi8Qle9dd!Zq#zKFr z$ZFk?fW!I9=dZ#fR^jxRtl%CIgR}~U1X33|-WszKsBpc<1n29rNd zt@r?CtzBGso{kya{pXI5`TW|x^TpRrGn~{x09&tI1Ua#nK_f)g#Gns`9))ceCBn#Z6Fy&pC&8AbfVa8QE@j2l% zM@746a$F*9#KM2Z&CU_@tl-y7QU0*d=xbU(0_Jnn5cyJ7LP)WTs+RPT;80}d>|D;=(;cc6FbjPc$ z0`QHe-D^U`vIEb_(vvhwuSvRwb##dmH7+v&O;`9MwiC*bhT?+Sak2T*Pzm$2^Nf*L zTmF?B+qv*u9jInRk+ij+sV@^AOff&T1o5o^+HyAjQ?NX5Tm9gYqij#r;gacrSFUqB zx$3~DW#xJqcR{o%@O4v)h=*M-D&(>R>f*wXOq;br-bvKp4Tm}Hrt*PE1LbKq>M7d9 zfOoD44a$DkaB6c!8?MPT^r&NfzQUBCed|Lnv$hknC7j4mSvxy7UzJYgu=d|3C{1sD z%KgZ|GwE|Fa?YFEZO9|711u(0hfyjmrNqQc2e^fmv(BBj3hYi>7Jy=U?NDN9!47X9 zO>gEva0G3|u3R#x<_yjWwEM=9&0xl=JC57Rm>I@Q9luo-y%2x2t~oC7rIqDFhZX*& z-ezoX=8z+EbA0<@|q`RF37})*<4bevrNPbZ;xD^ zGxk$P*)t3ta~xgdSHCv1^84)LM#nvAWi!1E@oXX1`8TNHyzxTNI8Jrm#!WSOjS4yS z>DDv;SNZ8-uF0SOluio=xxZzR*CDL@WXhoRELi=A6xa;5g*Ys|Oc<+)*h71>#=aO_ zBVqxrKkX~slK!Tik75gc8Bg7gH6%|T*~@K6%RgdupuY`#Ht=a|NBU8gm3f`ZGqH${ zPO@Ci;%0k$8%3bp zTWxz=YMn$iea~$eOkxob#OZm>+gPbeG%tx z1LY+3xb#8q04;aB8wV(>!5CH;Oj}z~xz4%S@?BoXnf0U9-w(;yj~Mr&QP5tj-~obo zp=LYUWKsqnYmO^s&ia7kL>wYvN#6BN%o^=_WlJg!!YUiQ4PP6{w25O?fHUqjJ{qSV zki|qKW*5k4&c8os`1)MYn^&TSS}0BaS5^wWn&!wkL0##HrD9J}W)sDP@#CF{C^sm~ z1-Kbi*1#Z{p~389;I*rS9I)>vV;w4qD&F7FPNN>^g(B1~sWgd96Z24SZ_?zl4NbZb z$b-ZmvR}4Uxv>aj?4dvjI!ifC)ArU`LynDt6B!0aBPZLSes^XTOg?OCG zR4Zcc#!crB)jPQ1y5kXEY{6|kW=-6bu(TyHpaQ~2iueC^lvm% z`kX_%?jn*2bD#ZDt(~nA=511XU=igqZr*2`>cQwW{}U2sivk@i4~39bM&5ujOV4^2 zdg{CzL(lj3^uK%{5j^FuKA1REXO1`~j_zT;#@+RtugqDRe;( z=DwC_MF=&!u=Nm>wc%j~0<5K&MFYN@Y7)!|4~hdhffMo?XJeiXW6}sp&ekb!E7^K~ zL>{S!_FioFK_7CvGrvvZ@2%F`5e#gK)0aGm8v8l_ZgK41ByVs+8SC8KSTK+Fo&Fm< zF0+!7B+q^D%~`CgqeNizh_@B9%F*0!(GF?eCdxKL0~isJdOEWZ`2`JTE9jmTpm{x*`GrN} z#?XI}m)~mFDN8@9H6eGu$WOX=t=)0x4By1b(l zM6*_6)OLcMWCcRfxRJQzbhWy9Q*pb1ly^z zC`|+?-Y-5Z%gzV&6VW)`gnr!OdaT>X@Z5~bBKdgrDLgvTG5JfCiZJGC%yAuO`_8@w z$F{E4?#?ExT)4Yy?-rS()oxp)%62xoaq8lW2q<0SdI3c*m;r06(YeA|S@!u3-#zpc zx~<2kA39spxfiYR2>((Ww~=#WC~Iat_<7lQLsP93dC^Ye9M`}hihtX|!66DbMDg1(D;%PL zLlkg`;t%&(I79)5DButU9HRJN3sL;Rv=>x&Nfa=N;!h$`{K3)=hbZ6>1x%lS z=@T%00;W&E^a+?g0n;abn`h63=@T%00;W&=!L2wrL;=$$VEP11pMdETFnt21Pr&pE zm_7m1C;nfgPwat`4GEd*4_^xWdKJ?N(N->K5Ogf;-%47sgA}{<%lPqY-c+CeDCqFq zOZ(>kd*TcAV{o#gGkWDr211DGUjTyB`C0(%OwjI)B|e1_Jd~mAvilzKwW&R^xLyE} zuOwWOW66mn=k&b5+iY^v;_jB-6sNa+UPk^Oo*ey#OmG9RMOI$P18ft!hr$4ezr57t zv4!(Gu3Cm&e7czc4p#)oAfj;`OkeZ0Y!odia%ER~etJ^=`}xcD1-b^$Ee=c-12A?> zY~uO54RvN8mQxFGGJS60WPttx1&BTrOa6_v)tZ#G8xUN@+&rpumFy*(_=9qM73MI4r&$oT(hmi z5QaFYpI0s5__s%TxxprryW}PnH-;?xRO!$>{VV`Ces_A(f^7gHbB{LCD6{pYAeN)d zua3i9!RNP1Y^Zk_m|f(=iC?l82MiVuEZrg#U}HK(R6d~3W428D#rDBZ5X%;f+CG>V zQ9B^-vV?PG`f1Vu7EPIBMB}o9A?;yNwj#4!Ji`r)*NdK3rl8IM;Sv&F)7XT<)SrZO z+I+iiHKG5dX}{V&usVB!NN8h<=9Y@^QNbthz>q@)f71Z)+H@>8-O#S;YFDw%*}-x} z@N$jmE)SbQXIsKps-fdTJZq>4QtZbg?Dj*az>z|=fth!#+N-IAg80-AGild-JaJEz zwDDl-)vdU@ad;IQuWQ&5^d^?<&~>oA&YUp}u%yKrLxMZt9v3MePzT%mPNoA*mMun@ zNbrq(s~Y_`zzk~r!G0rRBECA{XW8bObyyTN|EKRO%gOO6cCBuGHibg@=581Po9Ni4 zTG~PSMfXvFJw`UhlicJseF9!&0Bk>0(tfdVT|#1aVSnUn&pUgTx)8BNjU|*NRrBUV zA7NDUka>k(lkg&IAX29k@=Sz5Ysl)PLu)lyWKR zKZ&CGPl3VkwNfn3ah6nzqxBnI{OPPWKq@7?DH7c~fgpmK~}$xiiI{m0-H zvd$WD@dPg!6Bbt~dtcxFd86cBG-VrbEp(VT^3iJ&|MKqM^ zbVTw>q5l4U7M{Yj`1C^luI@o&%p( z|5ZdIecrcG#_uaV4=Xq~GMg?O;nfSQ9A*?H|09Zmm6oWL-#3E|>Dql}uTZGzvg&j7 z1%HL@qX3n{TeeHx$u*j=%J0wVF}r7%ig+#~2;jsDvGwIil=sN z`z}ViGjSX1IvGJGY4%>rR!{ruA(|vT2Qct-O^#3+Kx@+~+@KcPJX~mNVFZAuRt|pn zmT`r~c9RY`{3R~Xn*9xD`aVrQc3dh3alUyYB7@CxOxhoXK1P<`wYy#@0GU(9t>Fzc zUQCUrpTNscQYgHkmbA;V0nw$%dEAfxU_|&tcFg(Rx#6eu{VxjNrqx1kF`p?m?sy|< zLD(bE+7HPBdU_9{?-nm`uXY5tgfrvpEAvmNm*Py=(?pUEr?OTXTK)miGzI^q5X}Xy z3xsOUk)7pCOsK{X=ZNc8m5X%$%J%UGYx;kYu}Jx3W}OLlu_|4rKWtL%T}M}BwgbaQ z7n85UraOmLyZMkS>=){$wIv6zYOPZGx38i9_VBw2yw=`^BC_YMOCx)|1{9sUpD=vP zHQmikRFWMYn`FfF(^N6rkfjc$*%Z_G7AemvDi<|I_mx8S06s)%!PYxM(e%WdT%)nV zC=(i6h)z#!@Sg|KR7<7luaOIW1JP_D_cT~Ddo-tnQZBy2mLc)ssx%D43V9EyQz+CW z(y-%23p0C@ZA5bCN=neSoJ&gXk+Xg~d-m4s2ztRs-WR>_j1%*vB;ALV`iVvsLPNxe zb#fuZ8P*!5KaZ_?%fj8b{Bl(ZU`UROk1+J3%#lCI-l;Dx^m>6oPAG@w6& zRxl}au85ytZH~oE^0?c;Yi%TM>f$VxFHJTPj>dLX8BM*fukS@3G8ea#BqC4Uba^g6 z!N#}@Ep~$*54iP~zxTfa%KfJWdu@KS@49;wk!`pQ^z`F{Vy4_;C0C6a{+^a*qa4i% zId{2}Kd9Ll3n;uY5rL%Su6e*nEN1=#qM34e@8(jPzM#=+@2zxW?{+cGjkI(dSWbn- zW~^w@^8U*-mqy6tKMQ=#STrXFm4mXjB9+L!&GE&76MW<%4goWN;tzyWTkFzIJ|no* z(V6Xq-u2L}I%6yIex@@|1{n55;pUPj){s9)>P&w4(UE}jb-p9V821+*o~7UiSUpPOj+}D#nVQMnhoCz#qc$T-h3SnNAo2M& z8kM8*Y%u%d!dYoESynpYC+qdTbb^VfYpB)*1_a+y=)g-~3oawf(Z67no_FIB3|dnG zc5@M^h6NA(T%g{vmKEZ*&v!Q2#R@$O1zJ5vvc2Ia!9zq=R5#ei-nSwDE-Tl_s;eo4 zVq{sy`M$mDFyg$QW|z_&45i(M3XodDBBVN~Tw^f$kJV}JJ}34-%mG?SyKgUb0j<{e zUZ@cXTq}J8p<32sX@cjE=b{lmC*0G91vRlfPpCP_JPttU(>W{DE{G<{CaWo~ug>=V z%OILvY;qra6r!nH@DGS4b8T;-_wOK@-bQ~TaVW#dji9&VY|Q@(qG?#+W3bsNAtK}O zgyI5VB2~-#vb#U0&Ocd;S2>$nT$>5#v+xz!UyKZUQ9j33>IUbrS*fb~^)^+PLTXc4 zhR8;=>)ZU~-qX@u`JIi6AKW7MQO`5|CT^~-f+SoV1#vAqK1Y5=SiLR>gODM60$0e$ zJ!P1S%rNMwpWLW|OD2q#2DQ(CeyTMc7*fD%bH0A)c+f#paE&Y<=V-?Hpw3NgYbiI$ z060EEaUi#s6q5N|4^z1`AxDhZPv|Kh5S<5=z(-?N0zk?#0sE2jh8T6k!L%6L7Fq9l0@uSh4?Gn9?e&l{;KpClT z2O-ddO<*tqLLRZZd?ribHBq-K@HIACM3u>t<$r<-l#ANvGpf$ql|M#v zjm-Mp-4PuMJpYGIl1=naTwtv861dRiB{co3#=f>(fTgIVt@s9spWfhvNJcyUqjm#Ff9-T{z+; zG9xcq%knQF3(Un#wi(Ok6#8qHUL(mx5!jrgXRK*XYkanID9VjT3<;VGm%8zr9n+GX ziJ-v+!J0&T`zJl?Yr#mZ_51p7aY*XIMr8gNCQW$3_i+1cHz2k^vMY zTZ)oCh@h?86~6=wLME=h|3gk!J}BuuITV!5Y&xBKvzLlkMlczg=02$+WeT#DA%BvJ zw1AcNTt|x+l5w4CK1~>Z*2>cBU1At$=~k?bFIBzgH}(#v0diSU2o0=^tCST#AA(NN zcc8#;S-QyJ`7^IK&?EVvZW2*;lG7YV@Zpw^uhovIR(Fc(?#azygjaW^t1z5JFi8hg zP$l0225?SZC%F{5f8L$tYHG~TM%&Xspf+O3=UR$9e{S8js128E-MzEn8&F&&z1D9F zxt1^77@fZ@$rf0(vLsWOMO;iki2Z#G3cW6;uv#UN z_Z|Ez3?C1_KY{r%B#jb|Q?Ub|>k)dMsiDXV6Xq2Z?shae$gezvIrpzOk;>Ct@<54_ZbSn=xh7?7-D4AKjmr-XPDhf0 zThlhY%i1aQb!Gz&e>Qm0+9GfHhGYr5JkN31lLIDk=Adl~>Ec+@Tf4~R64wg_?0mv% z&*S)t{L3w-6kaApAwQ{08*GUuI7`8CN$FUx_zmCZ0wS*@fT8ZNmkoDo*P2jN$hzpt zjK>;I+pA*1jXK4S({3VHDK@Xx-#nx!9(^RdprsY01kz$GJztTjCRl7`u zz(gv)%PY=sGG(k{N3VtdCmTLmro4`U@-9z9_cCLlKtI!If*cq=3iLdF-&Bpk>E=TY zRJQ?)+T51mX$;8z+}-r4dwf4W!sscmWucFhQz()e9%%^0>BEWk0o;)^^`B-R z4RPA1YtrSvv5#)e6&EmwVoIUbmdhV#jMVg`+bBXSb7wm?S+C3Vc^a_$~$49j~!tY9#6HTpe4~YJYKpTSrd^R>u?q z184FT|AwMruS4zCj(Ynt)2rxK>fo+&7EL^A^-H@~HgXL$$S$EGmP|k#aH)(P%4jYH zu}l;eeOK`h`)EsmAIAcgbOzYF-4w$|LS9_3oZiNys7!4c8-S?`sDnnGXSe1;&+aqT zjT~d8))Hp=U5@HrdL`X~S8|qB&gpL9umYxZrbDJJN%Fylxi(Z#IBRekQG<)ouP{Ol ziL|i|dqopkUkXry@d(gLv=PcI`KihAwmNUUzqj$~yla_0U~$teY9kwdEXlc9CAdS1 zD8jrMM$7?cRPlIyUb7_cDE>G0QMvM<%RY)F>p#tuKw@87e411Iyju>vH8nuOIda>j zGdI7#BxfAryK+lW;UmGeCN|Oo10+5vraE%MZoFuiZPX%%&p?fHs#fcLUe9>-nG1$lEoFy)a>CH~)RVd`qDd$7I1_S-TpkQHDokcFW@A_y ze(hEaMr=x9%y-#Gv0U8qm{8?mZu(zkA1%P-Gj`kAhOqz2KFYj)Uno_Pjp3-(Yr4DoUks+|%Yiw0dB!xpSue%g!Da&Nqx^wG zoXzI4*AUM49@{_>w>Rbuo-szwalt}8V*r_8^@z!csN7>hbZ6>#o|Y~ z=Q0(9dg{uEfkIS`81Qh2;>lQr6An>S-dqO;h$Xwqq{I^?ygAY1PyDm(0}fHZAqx9S zb|>o^9HRI&O1Wpmv-L#~DliOtXN?eF9RpbvsVxQVDme|F3H(bEAi@zv%Pvt z+hAR>i3Nu!;1C5IqQGJMD=l7|ZH3?-q{NL#<$Bj8wRYV8UcZj3!m^e_riTx1-q}72 zocXPMPofE_FKN0Ltpry}$WwogyU18}l#nFW>*{|_(c>|GRU6T8h{EZkp_jk+FS^EG z@5$X0EY(Rvw7pMdET643^{V>V2m_|5u}g*##gGzKV$mhPN!#kTt6 zwkQ|tV))I-#v+fnoJOx#bh&$~+4PyrLI!J!84gas^a+?gVTXegzr{BHQ#S|GCyXF{ zJ-Z)uz&Cbbb=c#JEqP}r5>3OXE^sydUi2gcISMBtyfM2f3Z_q(L2{YGz~w~lUr*0) zDk4j1Fn!`*OyXer1WccR=@aJFMz2Qa3TI{6=R17&&{OEP9;1HfY)$80w8kU+OKsdn z&W)k0ne~$JKA1l7yS@4bOrL=16EJ-Orcc21iGQlG&cXBv7wJ{EFvHt6^XQIOTLq&e zlO{wgJMf$=JxQbVnxt!3N0%s3<1%6T1WccRgA-CXIPq&bWHe3uBmiU-u>#X4VEP11 zpMdETFnwa*DW>OVh@nEScXdr_m_G6Qt>gay`ow)`u(vI(=c8lGu3nNs5b^ZWT=KM& z(~lomHxz_;{yYD1UvF9T%B5xV-p>AZD0h^dKN+wr#TiZ|YPbFXw`ONw8?IaWQfANQ z`0iU*fMG)&mNq^XLh7_iEsmncY!72rQN#?9)m~IOGB&U=Yj(}x`C(50#Y55lmTUQ@ zZhFR0L+(c!y)k;|4Ul@+m)zTija{f~>Q}@~*rtre0!kZlT=@G5Y}AxaQ{19$EUM!S zOUhiY)G9)x90dnUaCY1sf8)h}YJPr=tUvmvdq*Fg4A-WLzj$%^Psc$k5M)}Y5*aavjE0N zdSPtB?nBZZAT)WWA;)=x+yi}*GZE-pCM}OGPyl?6T}4SV3CW7)tNE0t&mkWuj@22R zZI`qM`g#v~Yz~}^$T{9PIhI89I$&a{n6ihh$U`lWr6LZ{c*u1Pyp|}5C0s?)aV^}! zmBPm?06^iDg`D7F)dGu7Wxi^cq5Dc{q;}OJ0$-Bo4vTpG9w6fwv_T~$C1Q(^g;LfS zG``P6*7caizqf4YJZXUZ@tBH@@-UH{Wf1C!mj?`S#RYfc4DC442(W$R7!48pGW!&PHla|W>mcz5BJf61f~a>TMV`=`4Y6mr08;bT%7s#l3X52VL1m$A$ir(m zuRORV@AHVIXUy$Bc2#(d-6_P&JJb8)KjIBp@O+Il@YhEc8N%$pJIaM~_e(MYF42woZF zG-bMmUF{TDMxZ-sPVkV6n5NzVTJCl?Xk@EB4}^CK#{*nAWt7xCzP4@}0Jld_7Kg=u z2=2hVTQscpzPk)Jhp~)Z=RkHIUm31y=JPz;;{qh|BtYhA>2GdjJdEn)(suBGtMRl$ez`=KsnZK~X zccDx#RU&doy1=?}u8c^*<7@9EKdVHq80HXiKkf*;=FJtBvkZy@6Vg;38@lZ>*ME}} zPBZEc7eHx7@@jW5wP4dIs%k;sMzvA`POeR>R5vNXSFc(9agiZt#zJ#1{RWEaOc+cs z695K{K>DiCA2UwDohpetRaFz6|MR+&-s^LY3o#9haIgImZ}~wpQNv;mr#kbxgle#5 z8pqx;9~&T&LRxp8MV(Cl?7axe!m#)i;E7vTWOS5vuT02d5N=lG@h5H$ye&I+g;S?C zn__RBHM0Y!MAtCzTo({eqnBD3{0_VE?AVr<2&5klELI4!3`C_Nf4LE zm5ThNYiH4F?H8Lhn`0UnRx81K?WXD#i4(u8hL(O- zz(|ul{3X1+`@MVhvv#$uu_~aa1)OkJ2pysbMg)=E)Z>~it@9b))b;=;U zy`4RL)vihIb{OUj9o9=5tra{5Ra%Um8pHKNvV(>2L`$?UNo$3CyF5d*tIWg!dW zm)e9})riTKCNyXn7>rFj+Xuak1xe&wD|_VqP*bRe<*2tjNz|;gln~q|YSQ@i3EGUc z%9VXW&*RIEs*!&$&PcxlkhINfO{%3k3w2pZiD4|E1#>PeL1cDti_vu2+in}0P@11*;GqQP zG3z(}Ns*ZXiCmO8O3@F=lH}a=GAmY!@@DMyYzt!ws+|OeQkZuP=fl{kx27FsrY)(d zU!91YqO{|Qmt`8mYi_vL8o_ERg)Zp*hrKM(3bJE(dhtBy{;7K!B)E;u&AJ@fyiqVH zxZ{sW#XLJPBZ@P5XFR0f5U%=t!l~8!Bl1W+wD)4W7lfx>cILN9{P`_Pi&r$@*+&j_ z;l^547T-9uICgK6H(*M}IyW~K%%gp${|1lCtfV9*R{U!Fu;2T$Z6E9R?EMsMXYbJN z2Sc^K6BSRzd^vcTwzFz1 zI!#EVce>t$+S1vj2uB^v{KBHyIQH@eILZI8ePkVQEitPSkE@g34@+<+>dkVO$;mm7 z+H*6(?%8x^u%RyRC(#_7L=Xvk?lx3|tBnL7`N`^Q4T00k z$v_j5+MkN=1D2KT@$dTlQA~HBTDJf{_8k;pD!XmG))yP4YWowoml_O0vDrK}^+a9ERKx zzJ=lPV!fTUFIlim7e8ay{cxgaBYKKwZFDD1qhtv^?=E5r@KLJh(}L=}ZHOV{acy{- zBybDpY4+T7qm5qa+M(#8u6>~P?q9gy1{$f}8?htnye{wZ?$TahQE##ey>5J+q?TB< zt{#f8QaHr(=1)kI6J~-^(6cpoXq8cQgMJ9}=06qpkNc)yS{n$|pL>Jeq}@|{U7@0# zuXiMcx9%uAR46HNar9pVw_$S@X+#c>uC#2#N{zr?>UO&umWd?8$@MQX?J@IX3gmIsI5UCMtm1FlDR1svg+dsSgGHo z*y}BLywge+6f*GfpcFDtwyGd<0jz1DLlW zUnc2oO{QM#_MxupChD5^g2TT`gl4}sJ4{#d-8pGojROY(lyF=-T@d1;iX z*KTSYw)Zl|CJZlfsRVy-`>@YS5qu5G?5K*{0H{#KuA7X`Kfi(`co_J?%EHXP^yBv# ztkwN4a{CG0SyF+C0Su|~>~LsZwTUr5^Q*r044H-2Q!9G%*y^8(?8Up!G|8}g!WF2Q+hP@MCZ*glGW3#y>l|4UE>(V2IJXC~7{IcwaR!GHpf z=)85AR>pbnt9dRbQ39xJLbCf1Uy}Hk36eSTSNqPaCgiadVQJw{ZI&5C^eS4?O_m8 z=Et9sT%%5-U!?H6ga@AWaU1-V#7$VL(_2IW1rB4x+xu^T1o+{c*UO z)a10vlQq82#_b+dzf;-24SeP3oMVO_>8lsdWM8`K@hJhbJ-l!8n%?dN3I>R-mi-u^ zM|0F?$&=5=;`El%xf{p+i#l>y8%bdr0#5<<-2Zu@c`pbk|=l%x|hroBBay;j} zr7>I>N>X*M6kUlfxzkYRd4z%iqk`6nc=ksDB;H&$TFcMl^D>s)ZAvdlfij)i+0p^r zm-=uC)DY^%HaYs62h-MOR(`VF2Bbxu>W(iee=}Sc+|J`Fkdn9t#*EIT34s#{{^4mj z`dh2;IOWn!o_t;=2ABj%eaj$M*`w9&H14F3KPqAutq`M%cd#_#H;l|L$AFV*)+7Y=z6(|eIi zOg7dG%;dO9(>l_RvaHPOT%L(Vbaax{Iy9!g+m6Y~6co_Hp$HqfjF#y}`6~8E@&Jp= zmIVjs4|^^7cTu#pZ~r*>Atv%+WzX_+9l}fX5&Lk0+krtj-FRiQ_wu7P3V+O$FjNk?IRVq3{ef>v!B#OOMnGS6m6zUR3?AQ2}3ZX-e-IN5B7*Br?I)S!SVv8*`R9! zN`j(*vgq>1Gnu7vdE8wVuR+kcWch!d$3MeTasD>7^UVAcle?{;l5Wsuwp&5_u$sXC z%w{E~%6m=Bg|v~A?mgsS*Vr6e&_C~hJjS6}{ZSF)S^GyG*#5L0@fRL~+d1bE83g>f zLd@i_poeU=o}pTL^`Ld9uvX8f?y1po8#aj4pz=#E6;TMl@|BErs3fX*f8TZ*^*}Ea zp=NeF%NWwydrC{T)Ur*Ltqy@aNZw@X043Uu$C0v!0ww4yS#h z=-?AZZK=q!N^QccXqar1C3*AMondak_JQX*R|3t(xF9-kE!gNcwLf&P5F@^jaR__P zj{HR`QgAky+q`2EXc6}%oPVzkwdUB#^Dxq#-2_9gc zeLbe8O058UCWoiT_*rGOE96WAQmaKy2)E7uY)Ngq$lMZ7aSp8=+r3udT21Y^9^vb> z?}*2NDMq?B)aY9@@zH5bzS#c8q|Ua!d|}-MPTr9@=p@7vv55s{HwDdGz!H4HY@;hV~7o7n#Ckh;+E)>xg+go@|(zZJs)rW4@5JfK`?^y-#0n3F;j z=-`3wUu_>R{@J#VMN|E{K);nU>_s&C+KwK1Z+G5BiG8_vbXOZPR{8F!2II%GySl?s z=h!%lBAbNBmO=5abe=R9;u$oIn1Cg2s{NZh!8MSq78v)YkPp&caASD`g6V(QKEP05 zczXZ*=&*#~AJzSlooO_ROLh{e7W)icz@1~Xf*JcO3hs=mp+&4Tf*#K}d!r0tM($UH z1x=6cw(D@c11j34Y>E7Sb^>HrM5E)}`SkH&P#HHx(b<_!QOqt-Hebz_>(M_&OE?3Bc$>#&#P?An{zii_ zS7Xt*@d7ULiU~fN03Ljr&mesOwZliHhX<;-u z=&_jD13nS0xCgIh7BK6j*M)Tyv7r}g>7@2S60)dNvC&p6FgMK8Uj7kRnBc4lV7{?MrJQ^7?grXQq@EA zq36LV#j>%+iT7Of=bfeCH=~Z%llxKcVmXxo;zM`uz#)qND?=1;aN>zt>>M1NnCe1D z+?x{F_=Vt3AQQ7u2}VFTdMmO|&s}pp8j^Tt90=^n``NmnRw0cbY7B}}E=A2;1f}#J ze6ntS;){LsPjGMo4o<+q2{Mi2@E$Jn_WAAqp`Z zqJZfWFnt21Pr&qvu`*#WeFCOWaA5kxYp(l}FnuCHV{BM<%*b(F+G2Mm_zlLt!iy$= zxY(K)O`cFe78IN|038HL-nT_#r`hj|`v+(}?(yAV`UFg$0GD~;5XHZXoq^pNrcc21 ziQnD=g6R`5eL@*B)M})|A&TEMGcbJurcc21379?s(^(^I~yRSUIGJki#S3h37w(jSWuu~gERGB(18h!`3KBInEs~5-DBYh^ zBB8Ah<#a{sTRT7f2ShWt(;}c!MzAz_so2q0W`0(cH0K*d>LQDKr z@X=7vC{^T^%ZVfFRBSZ4k49)^ds3aBTxT1Mon-matDT6xHeue|`vadAJY;hhcWUB4 z;cPw2n%}7i`GujGE*C`<2-ZYVLTD7`BHGBAfA<(ZN?Z8?YEv%Oc`W|J(1LkTZI5`^ z2XA}$D?{^{k+m`Sq?t_QzGCgJ`VAku_cQ^AL$gdSzRkpk=36VLomilRx zxn8QYc;^^72A;o^78m;Vm{_VlFTcn~FOtM}!Y*i5O5-nV(sxGIF2| zpJnN$;^qXtkoVRnd|^$@adZ7@0^*2_MgY14RlUV)DSprpK^r;phac^ULF_2iu+M(s z5VVkx^AhmoP#oU2|mTh9rYl@;P0Kt&dllk<|XH>MvSg5rbr$oz1#d$56 zJ=p{XEf{k8_O?R+`6rM0&ls9~pa7sraZT;CfEm%z>ewf)f~Z9Qf}z=zwuA{DDAC)7 z!+GbmN=qm-5H7xZ%fahfZlo_^TPY_kkjIWOzwc*98G9s4{tlnyw8Y3aHw3-kSOR|E z=PSrF863}sFy>&cZSN)@w6-JL=6Oz{dnEWM=(r`Qn~R)*zaJ{@ULeDfoPnHqwPO=3 z`@CWfxO6HSRBLKkV?jkTb;j25btCj|4lterG)4Va5smbD-$og~uk<{u;M~Y;x^RS7 zFR*f29y2uYTKRo5o7{BmehXk|8WmQ3t{&ULX%u$YH3I25Hv~zm_w-Ltj8ORY^S~f< zIRo&(`+lJ*p0Dp)DfszLb3*T~{8SCWgi$Ht0<5n#n~T41BJhPj-bLQU{tLke;WG12 z5_~N9KwKO+POqGp9Jm1}W|nO}-GTj$;DgV^D@5fYUh8rr>Swc$hSpQ|A4nhgYfn^C zz&fV8fA^=WH`jra(2`wcQsQT*?3>k`yn5u&>@V5hqVtz3TML!)-0Z!f^zok!tXe0_U-$6m$PyM$Ejxc!<_`$aL-EjQ021cDDfhob(C z;DeuL~5K#W|`AAL3avdo-tnQtn)-BUDqUG#F*%<8wnK3OSiF$nwA8 zC1%=EA-!bRY3VWoD%*zKkIVzu&}hkpqW~f~ak&ie{j;%RfBt_1(QHEf2BJCgPY}&y zOA!`N15|Nn1(QPOiueiE=2*-mkGl=L)<)u{F3w{4(qt3iXlz%N(bW6;`d;KAb8$OK zBJ$KVF)hIfHpXRW@jW+eL2EWz{@(wJOEeOq7!m zBobn8IfeHKqRDKu+IuVAc+vvElV+r)+rG9h6Be5ba21t11|naZ>g-txbVbM_%ko#M zN(5e%q9Uc6c7+VkBsx!8>WQ9Y`+t7#I z)2-#cx#qye?x!vLL?xn_H1%cNmTdx7t-hL7BlKQMg6;89aDgC-S3DPQ&T zpVFCqlw~g9;#NZcu&Et@-hZ}u; z9zlYo_0$QRU3a~%X_E|1GD)T&&vaYkM<-x-e_D=^D1jBpF#W62Oq>^@rlbnrw&2Xs1x! zz`Vz79RIduA04VxvIbD*ry`R3Zq?f_C>Jev0N>%LCxW|sO4qhMU5Es%IFHLYx3i}c z_^LRCx{m0(JYe_;NfS-u?BFaQ%Kr<)huEX-?dyPI3oh+BdhN@YqVFNUlSg}&-$+(y zB1Urg;el1`8?wf8FC60`4+b`bCtR#D0x_8)oHz)+0~5Z9nG+5nkF~3g)z1Zn4>^a_ zM@`a~dwr<13^=zsnU-Qp$Ve!Jp-Tr?6m?8Y$CyO;a~coL2-G(2fg?wy9C6qb-lx?R zIsgQd6Dp3>;Y%XBOn}mv`hMi$4mMupoUR77!~KeO)j?qR5V#Bus%OpGZE0 z#n`f;aFrv?sRiHWm(TUxh$UVP^ZGKu4*d09Q$BcXvdG0uS^@8E%yNRP4s?ef`f3RYX4Y8HwzuXg&n_{j@f^ zG7|tWfhN$XtTTWQ$05n*wKY+<&jUlU*E!pw6-H^*1 zT?}RiW(U;P)~3!?$x8@bBgUf7X^zv?@k`~u+D8-1RXRCYWg@o^5UX05DOJfvxdHr5 zN-z+7r1OUa7JjBNegoikz9PoLP9|; zl}$XFQud2{R33DdpUn(|io(q$znjYa^X8EC_M@urKbDVX>a8KGljPAjm7}%GMplbtl|h=i>4Mcb)Bi095djfy9WUlw#l&;ZaSTZ+FnS4WQWB4z zs&+haK!yUIapKseG-c25Q=>1^E&GxqBlPbN{33Ow z?(p?IYu{$s4o42Jo<7?B%`R8682>S_RI$d284N%z0i>s`T zksnN~06UvP!lGlhri#nu94nZhL05b2E>~i~e<&YC0DIX8*ir3bkIhL7DxQ>&I{uY> zRENC1i$ZbWhncajR0+%JMxrpIEU1r_Pni$Bx`Cl0ABIpfo_V4q|D#F8xluVG=$Yg| z25NqPY5%+XbHLiwdn4PcZX0GdL)|LjqF(7tKORxe#f=+m`bF@uFtE?xJ8^s+lAck9 zUGIp}s5Xbc>{hdu1d!lVn)BG@mP5)rvj(5pi=2@IUE11s7)(TD6?cBHg+3L#02LZ{ zIg-}ZS%E*fz+ZBQI@Xvk%rQHkxp=Z$J3R9GHEUbTx9x>e~$fevpEwZw+*upf0Ma429eG7J6k>2 zK%pF1SWO`y@}>@M8{_~#fv(9BN+XdE(<@n|Zy8r;Y&Yr4^CC-J zhC2Hj&h&kneC)VX4B~wAMnndi<(RZT3Vn>M{;lAnAUo(?J`j9#nNo1{mR>gBZNUd^ z<$oyn;GIw}#hI|Di6k9PWvw22g*b$kgYpABFKQ&`za-#CfiTEhqFMBJx&N zgFLBOHB?n%jlXXGo=aSkvi44c=cfMn=`Q=`_6-j1!NQN2)*q7Meg{ z5JC?MBuIb&fk4{c{~M>AnKN_F;Ir2Atp8fSykq4BduQh^-|ux_`}**H7orKu=zph= z-bcEM*^4;#yy2et0A2;-v36?l8}<0utgKX?!Y!Q4bM z2Rh$AzlD+PIaEw)M`A#on?)(K;-@ZLOZ7t(G_h?X+ zW&1u}B5ut>^n&z#9GGB%U~cKR@DG;g<>I?z*!LV+ZT}*C`27XpBf6Nq--Z6N^-S@D z(8B#L4-~mqsQwjCh{jC+q1>v577ns76!*3nDcktRpWs!B-O*pO0RC{q^2?+Qm6KSZ z-+K!UhBVN3LN>fi4)hgQ5b_pE9N zoGf*E*$-*%)c?@Kz|?1BK_lzjqedfyFGcT5Hvyn}1VBgwr>)^fCKiS<_hJ)Pe)Q+W z758E=prYcE7rY_^rxmAuEF5Z7xW(37o@Gp41pfAH*W61FtCDzJ5-SsVN+03cmU8AX zXVO?cL1`4km`tVH{ynKIPC~)?2lN65{X%dBK8GIkrfHhK1!|4=JIt@l2${p7ISSua z4R-iA_+w=(>u`Wwg=LhP;_l@x(msaRSuQ)=>{-5!pHKS;+L`aZe-Q-?8+B2eF~i&) zoVaW20b(Wi34YR>Tw2lo@~n*01DSF4AF-j`VHHCWO-4+AN^TXa))YJgQZ3^}Da&(X z4`0(r1<*eHZ~*RY+c^;6QuM%cG7j)TF-ed&fkm3*xWhdLu@QS#{;hNqq;)kIA<3Fi zN%K{BDk-n(w$Z>mhvyMYACcZ(;mZkkB(YoG>d$5vI##eJ$ht5%M+6O544{1syalum z{X;|Jdc}F})amCuYH=}Pp2X^B((;_Z(@Y#(nKq}8;~hHshFK{HbF`L!ebx?n;7Q^t z{F7D221iLbCj;$eIu!aezwYqsOSP{D4UX8WB}nNB;-AWd0x3|4H+pG&;$+u6pM0#9 zIH#ZA5rq-F#HeXk|Kn}0F(WGwG*m^JoEKhx6Kl(2diOg8*2&zR0L(Ec9J=Un`|p}5 zJ}&fv^!mf_V4ZflAeVpe$y?vMBYXAK9%wHz{ubX^oA+-)*fP!)BbqxO%+J`epWjp~ zRkAJFTjc+4z(=h#BpZtInZwQH5!sr1)oeS7Lme1AsKAzj-O|V(uUTZCk+h*TL7eD9 zRj_>o9i~sPP6N>EUf*!H{ep@~9hq7a%WgeHprL?RWMD1;^op@~9h zqJT40BY$PcI*o8X$f$iQ-vmq|FUKRRvu4uL};QAnka-O3ZaRD6rmm_@pjQf0^_oJi4l)5 zYFR=P#ZpZaLgU2mo@@Dg##PPA;DqTD+EBzxBWh>ZPr~#GVfutH zed4z$0Ac#XVlyU8pIE+n;e;@KLYO|WxG)IQC;t3W{O>;zrcVgdCw||FO$pN{gy|E) z^oifgb-%tTY9(>sxQi%EpAe=`;DX@0vkQ~pjYq0L8va0MzL~s0?L10qJuOV1n6cH! zX5ln7gy|E)^ojqUrB7h9biepD3qY7eu?$2X2$LxO?~*9~?a=&_Y9&mc5T;N3;$ak; zD1;`8-<0g%{`lWVcnl)l6$$-ix4(*dbf*)5NS;ZS`mN7Y%}M#e!BJuT7q-jf8~k;C zh`MMwqkim9OV|`+F+bGm>O4pUEJKpm@-2J|<=DdY#USQ)fr9s#Bl`8cY>UE6Rx8Z* zJSt?tZyUz$5A-LBp3__{6Zp7%wVjWr;{CZiYHr6uqe4>cFM*o56fd8cPl1|@PEQsH zx5@If^r@(Q&S6m51N;u#v}V!^nrB*xBVD(C2^lE|LW$VCaUPP8kWj}V=4tolGwG<6 z2yA0tezW#pftnN}5+#pGWOz2wm}l?Bd^`&xZUMG|!E=ZE-6*)eK$d|o%P$9?)?8fD z+!la;;X&zh!x38;rGd|wJz2&~lKx1KC>q)_2J)jA71)QD7!n}rasRqTg>WZ+kG(p> zTWgE`?jGA0ojo9N*C;nt<_N_R;a;DJ_;IX)!|)#ARM`G)O3mtpGmEM9Gm0a-8ZUzk z#u3x|%rm`pR!118K!Q{5%w}|1+{?2&WW0)%vcI83Q9tAlU!tqot|xK1-zWpzqp_4&G<=;?3HZ8L z5YmrM8$sV+!{HzK=p_LX`gfSTv6^(zz7fSx=werm_fj$oBm8)p^2Hq_R_z~Y9~EpG zj#~D4v=7o-Oe%W$ENt`BwSR!CWtlWsO=g62I!#K{8eyEV6K>yT4UO%HsM24geW+m0 zWS``9XO>8`j*);he=&zu=AqBT{{iiztZ~1q@nmI52O30G$4%0pfB+8T?B~%wR6yh& zm99NNLo2M_ku|*&n*J#E)B9bE=!Jm0OzL56ZkV0skM|}@^R*m%I0^$DnwL7ydBxht zGXM!7uR-Ox&KbNhnobR(`>e0TDDp1BdQVT2n7a{-*{a`bi+}0X54Dm22}W9wb?#6T zZang4;{}cRwTokkrFFieWSMQsmA1Yy67^?;S{Uw@ zbG8qls0qs@#97Wu-2V~`U;zjgRB`jj$o!dED%hGaas_-}+rURwlXThh9hJkELZ6gq zmZ^E_KAm*WBj#XFQNK7zU}yCva(ycC6KZ+aE3u_{Ov933V@#lHk3I$DhgQxjFCm~D z!8jX+vhh?cXeyAU$Z~)`P1e<}%_7k8MXa zlUDcor6OM5OW-dNRsdoV4t_L#C@Gdbvb!a_E>q4T@?Rm)Rl^abJqj&n%d*rv_d9{q zu^q-97{Zswv6$ZdE)o?leC_LsOMM35R1!$9LR&2y6g3lAH)%Sc>f!_>tw|?wFF`DGLxwmWjXPhL3DA zZfEN02cO;qPBCHZKO0ecgQGY;_88;8<5on)k9pLRHUH@RarZBQnq_0Y%|8cfR$Sz9 zJ>4n&bGdt=`OM$SqyPBFB0vcYuyb}XBYO8KX9RSs!*N;5`G-XvM?CuKDnzS>18Zcw zaoB2rzA(~SC>~lWvy|Bk1>f&SOowv2;nXa0!Bj6NfXul<4Hz;&M155Jf@%2EOBjyj z)kG+7j^9FJjjZjNuM!aRsD3QGEvCPx$JX{^*~vhGACcIRSA}YPMmB^d2+gGFMc7A0 zEe*0{GttaulKX)nV-E+s@uc@RRC@28-@!hxlSWt!b*_Mv8-h`-n0zjXGiE$CRV=O= zp0Gc0R^G_N{EVSuBuJ#)p?V6@{EA){Ypegi1N(?6CY4l^p)V;!axc|U8~;9AQ!@0r zgX2hFsgApSI`-jnZb|D-_f8JimIbf5I#^RRFsQhg60?2!BESnwR?- zun+wb{Dp`4vAn#kJ1Q>L#dJen-2oRU|1;PJbpPLAABk~kw@Vm{$>Vf8V&K-QJ{h-( zgL$lgzAxGWdKnDH(Al41AC6fidM8c;$#y?xqGF)-ogZC|`2y=%=nbRcg`sOKw8zpa z?66}Xn{O*Lt&bF-R`iIS`F6Ysx}M!<0b(po$=o$vV2U5kN~mIqI`Ho0J+Li}w-t~h zT<}+zWhLBFpT5pH1qBtai8<}_on1Y~+KIlA9J=%0Gn`BmHLMnk7mzRS6m*xQLAE~b z`grKV0V5~ab%IS<3`>Ufg8SY(@g*vM94{-3c!-yIIo85j%&jf?TBfDk+0*=4&d^Jj zd(9-c0|yHf@6&_S2=qCmg*DIl$A9lg!QwOM8Y+>v7-AXcK}sfd$t|P?M3H9{Jz1)A zfOq(FE}`g2=PZeH+WtOjiUU2O?OyhPT?LANEBnV@_Ir((Abqo|vAeS}28%IsH!mCu zz5wIXm?ntB5?1#(iTlT%Ch%*>7%5&RC&~f(60tshpggXcTtvoCa(w;Hp25~+d55Zf z<)f)%f7P!t-i{7}z#~7PRqW z{s8-+6y!g7_#YSCUk}O15-m(5L1dISPb_8f=8OFv$IjznVhS}NAgr-g3(BAV7533p z>^J{qjr%+J6LQAcE=+4PG&Q8y8f*)H(SE_W@mgw9Y)b<2lyFTB zv>JgXbYwvyzkf#IeoG){2hZ+htbOzjd)2chS3Di+G}Rf@bB=g>K~^4K=6Kz`Vy6F` zEdlXjEurc{t=Jiu9|S^YnQt-T7}JcMb*aW$sGkCOmA{f{=C9c*v>17omnekxl$@eW zD})2SUcBvuOoUIBLR?Q4hBU@_&iEgaNI^@rvv+#(Rom5V;AmAqiMZHkF5zIXJJZX z-yBw;fIC?M*Sf>Gr@9k!=iC>u4J0DKfZ=`nYpVc;)BvLN(7PS5y{Zo=nGD}%d?$@j z8C;RT&8>RDg0VKano}&dM~mPsVuix@B~DXLY|Y&d-E~LbwuUG#`h8b-3#6_V7#fA(45#31ufNQLUT*TKpEtulPwr4 zJ(KOp8|y4BU{Fo&#pDo)yn6-4ErhrwP`eM`jSx7+)dQukZi3yeLR{z&`4dJeE-K9lxQ!GFUEH)Eo|)U;g# zuGV;mKWw_<(!_|9b2dw&q%-&yU}O?cc43DWX&=)OZ?+c`@K@}Y<-piL<3)fiY4usk z{{ihICTr*JlA#u?z2G@#9vSt3fdEI!{Y=^iU=<>G_yZ1h6)7lO4>nhVsk)lh;@+BM z!GU9DA899cJUZJQEW`Ne@dMBIj{RX5H5KS(66Ii_Mv^OaWx_j3S>AB7pHpTH&!-@c zh7P|n$2-nKB!>SaXZ~sNUiju0t<9*VuQvGbQ-@pEv_Fj{=Kj+-nX5hy-5j>WE2G?Z znJl(U$b+GuNu-XMZvrn+&V*#Yp;xxlegk!IO1oNK|2+rPALDE%3b@IOO)8*^+*rX2 zO_!)2fOehD-2%RE@mB6|aEsaL=A*F+m#*}N^@8Pjtc5++`{MMR<`;99NiSlaVd{D* z1JhsERrvC_X|9Y?R2$O9&-LB<`=fM4g`i#hd}83)s;EH~exxRdJH! z8`^VgGh_mN7@CC-N;^F9SZu+l+wxx9uV+edK}Xs(e^U7mB+`lGnExdbsn2(@JM5SB zl>VdT?9=T0(^0QaW~%&-M5;nbWCQkY?o1nBrT|~ZK^f4OPz^j=Bo@)M8$IrRyo5PE z)N~_=d-eLi=-J&zo&2+KKn6YM8$7R>ftRopix&lze-@My@i6I4n63oBHAfVH2 zDl4J#%?0g1oW1{$hWzQk3sL*&5*4RypECG9`MJ|vE?22k;xXfTKiH5dW0XdClJ7|R z$&Ks5LYtN?fkO6)<^ym|Wb18E0l)s`<&JHiBGen6YyI<-e^vrilk3EdC_Q(kEQ`y< zsaU(@eC_%(i8Ln5gYpZB6kC#q)cW>2GQVf}K}!TEfdO{E#50FeC3YTqeR6@9ZHGhc$vh*p)ic`0FkRH9|K6FD!oL;??|L7rJP<$XIC@S*#QWw z&BZeVe7ak=fT=f`JV7q!s>+Za5av_!*bfYXS=uK`z36TOZpD8;9MfdRdGlwmi=n3#t;l0o8A=BPR#%b1!yBF$JPC>;*l%hpF6D76tC+t9*ieVBO)m^9alu;J?-1 zO&qH2C>=7jn8Onte+T<`LCby4o^wR;7%LXu6fjJCk+SDbW8T)iM+b-!kHLw7!p(c$ zUZViz`_g)jy8n7C!~cTo{|@Zq3=b>A=i6SJ;8hCx=YCRb={dLha9zi#7QD=>5{VZI zMp>RR%`Y!L$YUxbjg{0F<+hUVeOfm zA}04UU>~l%whAj4Wyp=fLac9JqChd>0npq3XRr^qe}jF*a7L9cSHyzF%_nW7!tbZI zRaZNmW{n7Snrk1FRuPG&xxc_Zimw=pT>$U8Y0q{L88}P4-@tTk1$&Dz9T|#4YZ)Lz zx0Y04YjlBrD{!$bNAVt}?+b~j2gj6kpCtE5RyHa$2Tbvz8{Nj*)x{W2Pk@h1KnLQW z)S1bS#b!Z(Vdm)RQm}^NgzUc__ zob>-WG=lE*fbgJ>V4#QU)F$6xsi*f)H|2=>j<0(I;C&0Hze?YT)0g zsV-4+R-GMYOYwT2qp71-y2!4|8R8b5T3;HG!OHE;yOooQYwj&$OT1RtoHc1nqtZDo zEb^PbU)>kZICtN?0mv#~p@x!4^>el}sFB@ZVdq=&`sit%ewh))3YA8RUFP3VM4wCe z)yX9J3{2Moz(+1V&9*eyG0zL^CHspw_Sb!5#(ev_0Ngt-yNdPlk}@c zlIO^3GOkP@jp~iBcXT5>!(ZUV68e$a&fo#0#gCLix&fZ%xiIiF?TcC@9x0MQDd>C9 zdNuX}&~OD~_VF!4Jr$?taQAw8&ps^~^sxSsI7I8)@7uvaDJ`LCCvE<@G}!m89%3B} z#2qkgR;KxA`_yEYf|1J~Q-sI-MRL#RPiE&$f*z`^WSEg#QE+t7w_jnV$Ji;|eQ0tw zvJy@zKlpcY))df_z8u{Tl+<963BM8TU5+I{BS`u<8pMg?Zku0hZ0fw>ILxwMO;4AP z;E@y(z8o)mQ&#xq;hPM0txun5A*|WiQQAS`_LL4@cd+Bd+Cp=n>S8XT>UvmRDD_qm zoK+C{2d75#8m~2#56x_RP)fG{?JN6Tc%RL>kHxNeinI3tCv#_(jmrjf5Ko+;V5gr} zap$s#rWOBF5-Dh@3e}jVsw)!~4y^APVq4STavu0RrUJIH1(kTm5mc<_P z&1nH3QgWTufzzcY1tm25FN$A0@OvQ9#7^pT>b*xJL@lAv78)mn#tETuLTH>28YhIt z388V~KOQR~LgNHz9E8S+U*E?Y6dEUl#tETuLTH>28YhIt388U9Xq*rlCxpfc*S`}s z%?9zIGh#rC7aAvo#tETu0)%M(KX05!CcXafYZid^Z-JUZ6NS)3Av96^YF7pT9k(>+ zD&TLI9GnTzh6)hnT+^hS>y=l};CdAf2i`}zgeHna=w{80?!Y$NlCF}~^0Xh_H;$IU z#kk%_)`{*y6NS)3Av944O%y^Ch0sJHOrH>@Pi*@Py9y`>HqU4 z3ZZdAm_8v)pZN9Nlz+tu35^qj&f47;XzwBzA^JbgUw;l^OTmJO?)X4X}Z_62bCpWeG zo-#bAwr!@8J(TLR$@g`0*KrGV(KX+iiGQ&=bop1m{h1=}PdPpHz_z}7eGLxa}b8(uK z3~l(oYAUDffvYl>UJjoox0 z;Kq%f>-n!jSB@kav^u-Zd7j>JP5yfGXb0I^fbs1k|KU2nJ-EO4l)d~eG^&zjGjyMO|4b6%U2W~lg;q$bAGsUk89(jER$f3 zv0bs*(1r16_`S{2zqP5zK*1gR6L3vJGf92kRU3JwdYec1X03(#i4R?COy3v>PVL`X zw%++!c~{Quhf4lAE9ILuTA?1;$#!l2ZkqBsk+3TZa%Uv0uiC^TWMBEqA@UdB^oy$x zmT|;JQ2eVLMV6eXBXT#{a7F0ay4aZ`1Km>6XPx@CM7J5ZyyYalKA7UQqQPlQ@8Yd( z+|5ze;DSv_A-5{Mv!G!%Kjr4FiM)Pv;M0E%$iKSU??&uZf*D7OV1S$hQST)|YxNMZ z^2YMTU-$=duefdrc6DNdgI<7)GVO5ZhxBIMb+47?NrbP`&dnt3aUHd`T>tzS!LV+g z&qGGX5CLx<<&MX}r4jR+{$gtU^_^6RHyP(2ddLqirDL)=s4d^#&MHWNyynHe9@G*4 zTGhD8A^^Y1VRXyIHQ#LOlsx_X=tmWQHNCcIXWco=;Ttz@a0gY@?$pFTMhh68J?7mc zE#J3@=3jg|xmE)id^>`Pr|7cu`3Lq7U-+iwVEXHVbwLB0?Yt7J z52l=>CcoC{kv~6bld?>IF5V^WoM?jY@&N^0qS>LTB;R)~{HO5Bl3mYYmpsLcM7*UN z(F=Tz;;?&DF+bO!#BF)vBl&N9XD>;3B@MG{JCLJADYd!;PZ?cP0cjq94j-l6gl>gJNXHl(CHc;Q&6Bmooju)_|y2!#nR(9Dcp4Au7GvrQldhv~p&XvD-CGlm__2?K z0zFQGo6o;(4*&UqP^9BAi>nTqr0y2pw{k_(wpqa|bgvnDl@+-3E9iB?$`+XvaUD6) z&<5u%-qw2Pb&X1!GHi`!sU!&5xGkC}B_ffcSO2u`N`8#&o?Tt1Y#(HB&<&S6^*8-) zw*R+3313z7MaICQZwW^rM^#bssm&@IZNq~{OctkMgWCkbYgTk?*^Q78FJ#AIQPG-Z zYCW6r8?om1bw_R=JZ?94+coyuTT-Y+;8-5)$fJy6d^`TUKmLbD;IP%~IC%644l7w( zP5t1AS+M+Wz1g>N6+CDKZh%{4HDgD9t*vz}EK1SXThi%jynL<6n{+e6YpuG&W66-3 ztcsPDRZ5zOgmKqnOQh>V-o2_$G<#e2M=Xn^S&3Tmjr4u_%i>Q6-w#J{Hf_n&J#8ol zmg3_xc6a`Ha7ICq^qr%_>=w_^nqjTl+pN`V8qUgJKm3Kwz-GN!rS>f|lJe&h+qdkQ z89QeiXfaEMw=ezDTYtW^j_oVHENhP{36cKNOI|d=GCgDb3Ett$>VuOK$9E-2ttgRR zUUYN&C!i6s;F?Osr!&J8nsVy_Hst#PF!crUPe1DJJYK7 zU9Oy+jDGP@Wntqts01^}YrKpw;pba>a9?<`qTwEqh;*}*5a*d7~X zG{;)qR1tBVoB->kyh>#0 zY{Y3J2l~fc*ZCVBjjbZLGh?IDhIfXGm|fC4l(Z+b=G9HDJ1y~FwkEnC!q|n&x=Jcv z`JVU$66<{Tiokvv_W=rTja%}A^jNEdt}(eaBj>cXYMI{-MD*gdjDfc#XVqHyYv>{i zOhC^)?@t8|;kjZ}gOk&&r0D9zGlxrkgzbK-Z-Hj--V-pn#h zj4bBK8+I&xq-_Bs?Je?w4Hn$NqYrCMIjVP)kb;%7L-LDr{Y_oa5y_!*^!=qu?$Y9$ zy{%=%i*CEMyh=CUmGt7B{GFGVSQx95MMqTBkf@_vd0aMp?6mO@$lF++@{)HQP0``C ziM`-9GDk3prMjTV+u=%U?oWU6)SIDqWpeN0eYCg*_-u9P+u|1RaFa=|xHMOFagJ-! zkE}=u6|rw>zPam%m!o%P560~Ci7&RYuV@)^=OXN0PdPf&djkF24)=$x<}W@iI}-Bx z$&8$-75pX{d5>B#Bc}76I}K{hO^r1B&Xvx|F1@L#b>mJ^S=Yxq)gu^AAvy7gQ$4vl zU6xgpbRaEUUy5z1uuhj%f9L!yE!ON2OXG0J@S7!nguEKi7EuFU`gCo%Oz}?78^q?L~b8-aKW2*JPl>*|c z*On|_?KBwOwk6>0vI8mM>DBL5ap(7Hj4JOPbxk0xznJ8`a4;@eTz6fAQs8S6gOkjE z8=8!_{fkHbr?%$UP?uLXM%Zjf(cvXBc>QIKKR}-;#h^C`+JZ0uILQ~==&Y=3} zB?S*q-pH`mH@}vC4)4UD>~V>bA$W<2hX@9!#BbOwo7mL^hLbonzR?za-_OywdSm6P#YRZA(b4tYZsAWi`L9rM}IDVYTTON z9Md(#dUUJTr%JgNt(4pn(yacf@`y{S*rT||Jj~1@M9;i2svl0> zdb!C#)$<+ch|*AU(9U?pv4Yjw3c3jnH;a~6JtrYq(M`L zY;7CUh$O^(Rb;tZ9JK#P@Pv4<082GvkgP(gYa-C=sxR5dZf746b!{4V^f|nGlUd?; zMDCIE(K(?91BQztOeO4AaKSW-goX<&QgmnExi#&%Owsk3vqCwJ%z_>!La-@sRpF-v zJ$h*LT6&$5gkfF0Ed}qsU+~wf!(V(lxJ6{3)W&}+6IJw(%=25pWaH6R$6R8)eB59$ z*6>ct!1^7GK>Pp#NLdf|AzeSAugMF@e6jOQdWrC5^atwP7kP5-g$CafQ`@Bk!ARf26V` zDdSjDsCY%=rf^&kkXbn2AlV-yXCW-o`;xn6$@}3kQS>c-c-1@-?G>Lg^_YcX^PyO< z8SHXEqrw6ob(#idfdvDUNnjW>oZWIIrzT=TuQtN-s#&L5bS_s?nhPJ)ye_@-U86NN zioLV`BiW04arBB9vXH@4!jFHDL*%d9BGH>7kI^ockD$~j6_coa^JsydZ!>zR%S+&` zR=ng|Y9VnMlO8}meoPk$DRC|N$ZHwUy(Te0f=Dr}P(soWI!pasNE!3Gj45NeeV&S2BCjLrY6X}c~gKTcT0l#8~o#YpkGG6z7 z@zJkB)?mUSL_$L@>uTs6TAl8h|4-k(^lB4V$rTscPHjNT`zTvb&0dv_?ED{#JUVXS zsj*3jOKiQsYWsJa7AM+r!iNX@5=ReS-BW$iyTE?a0o|#yDjJCg(oBt>E9FaXhM^jp zi*s=}!O0B2^T?f36H6}ra@VOt>A_(;`M+iX@WWAB$T`?Nok2LMXR#4zOxC6i#yoZN zw^6+}b-7#I4bgYXF6kZL*nJdV+oW@la9(!>%jTBhy4H9<&}sLjL3dj71;so!xutIf zpPFqJ4b#MrYq)O(bRTtFL&Z-GPC$x!t?x=vy(H`w&yBBC8_ud08D0!i8iMEV)Z19X zg%@S_eSZY}-g@+fG-!M%vijyuM5=&`=|P*$#WAhsKC{ts9thpDqOvqI(ao868W!P> z;#=mCdH(ZUpMGj4QpK0KwsUV2q+>4I4gO}IFqB%n$tgqchbl_TkIQ4lc9_?MTwdlK zonB|2pLk=-HLyA1)4z>1Uu(y0C&5qD?g|*^+Uf4Dcg&3Dh+7cUvW~x4LjGER9MlT6 zYDTN0Lsi9QRyG|;7vO<5m&niKDC#6~6yc2$`y( z60~Ai|AeJ_uaRJ{#HUB0OTM|Y1iNdUw2SH%&o+G}9euhoy;@;Ne9if%YBo}aJ)KSM zC9R$MdkSq74S6jYuO8;*H6VQzvP*B977{}OMBi02Q zx7uT*Yq51;(|Im_4qXo88ysefq$TBh%DI>c(1hT_n>5t@-Mj^7nZj0aT zZ!i3yXde3NT*`W7z2ixKE&tS6Tan*v4!Sz-JFq;u&1jRC-iw2Egp|$?*Cs&bEt2Ib z@`*O1yhx}dG*~rl@zTh*+A67v`qIuD#6|DaSkfL{4Bm2A_t2p{-%%hI!3Rz%;pIeE z=)1*R$8|WXC|^0BpOtHb{wLHqrGVt(J&~=3%{>>FShNh@S)PbC+eam_j;GD^@Wp)U z#ah{RGpH`66C4g?B=>k-&#w+e+x}YD*;I1?U21>OyWGqv4qXiE6`<2exfD_${N5V=Z9{~dv6@nr3icUPQfC6+V? zKR{m_3Jl&kQH4<7qSZaC`H>bZxieB101$06;!Gw5o~z26W;#9FMtFr>9OXzc;-%S! zmaR5VxLu(9>FUM$txXKAi|UI?Gpx1rPj0Z1ln9dujd__ET2BmBQYpIqQ2*PX^rv+7 z!{dM+KT$T2nVEUa3Ta{xbURDA7L;Q5mt=JOd$SEH?P%P*l}i6d3^a+syYOp!LYWtoQ^^_7U*A?i#xW8HhiR6sZc?nXA2fv_(PYW zDShGtU39BPlT5#}q-58g<2eZ=(9uL!v{&0&3l+^jdGHMyQ51K1wU*j_H{8f?*WG zAcTGu>oqq=KC24FKt87t?n4^cZVci+jL~*)@~YJsCm7O|+qH1lM?b6YW_IVaB{RqI z+E%6_LkhJG=&L~;25vQef+iM>QW>>YvLPo=cOXS?Oe8q=a5Gem=GK$8Am)V8ZeL_r zQzv!;%X3pz_Br$1b<{5Y*(c>>D<^xUs@}3Sva*LH*IW^kHQI7e_er)$JF%wO?7IOI zvnEv$vichn-@{!mR|RXl>v_&JO0tPF6ib|G+IApi7j}4-+^30n@9XO7B?Uj5!{&Gj z+VlP_O#TOX;c7|+S*v5^BN%kgYdHx=fsJ0QTBliCLcr=+&pU#>yF(M+y*=Q` z>PulgqQ7(!3q3Epc2;_os&hl1zm&ab+A zNvcn&g-G+&&(Wp^H91mSOr8Z!2+%AGGE@d2Q6>?|{8imaV>kdm9dAt3sjcNMoWs)Zf`y8uW@wd?u*VX5fAGi!Qr+oxa)^E18wHW**I<;oG?Sa z!JI(WAobt;hllv*^MbNtAtvJ9G6Ts_dJM`24lS2@mmPPbnH17g#h0Q1EW3`UD-Bb9 z+O(;iT}?77+EKR^jPPmnkeo=J%z&o%d;8^UB}HN0;qO`E50sTIu6~Y--}qGb5Jqjh ziz3B-khxC)@g_=T@rlrDw0T=Px15jZC7H{kRqH1>^OFC3fV26G4SKr>QY}+18dr(X zAMh8|k6wttk;-o1N0LWSDR~W~Gc2^_H|t<0SgdIWeX;%yFlA`gd>1vaSyRiGE3R-S zbzJYz;0Lo{Ny!U|8O^FQpd`+B%U}CR?R)IV6{j&@p-oNSps`P!511CA`bnxwFRr?_ zR#$LJK~*zhGb7gu%?c2?2gucCbikU@8SO4qz$%5sV=#`~A63A0CVMqHB_*%i$+$!| zooTTKeZ!!$TcefX4|N(`+caGPZ>xMJ>9U+%V-e3#@cfWix+z$TE(*>f32L)?OB88V zhuQ2&9w;gqyJ;{zQ;jbB zRqm_wR|{hV-SG-3+7Zci+9vq+!zQ0{h1zN6hS7H4{&uvtJpJ+=+00!1xmPCKu4{48 zrdm7z z-qR}bhi?{Ycv5@3!W!K5;xubl8Z~)46G9HuWWFex4iHBqf2tCAs(gk*CAa1bORnB< z?@?GJq*DNW$Cp7b_ue~tr_TE4L$WD5Z|ghninh3Wz1KT_^HW58jks(qICER~l?IR?H*3>YHrB5;Npy2Cti9c~%3GdtV4^0q zjy@B|+=s+6>>3N)*ST^=rTDb*(h;?+q4K>eyJGch9_8D#p zFHzctM5}xnDv@$^2U3kpwgpL1=X)u2o0v!@G~4V~Hi9_8HQ>H^n($m*rn*dRSNNaR zO|zPVEfUOwi!!1Nm57|$BvPZ^penM~FkJ0Li(ZMO!pNL?jHyK6=tIVl>)af{Q z4>CGRVE4%wfwRyd!rWDz7Wg(jUS(*(;+F2JIpqWQ!&0#)({w*u+${EyygXqM@y1fzs z^y#>0{U;`cJ;@x!Xq!auxLHu-Pq-$)vvJw1F0(^O)2Y~FgCpdx)B*{a18Si+UoAVA zF7|y*NK{&Y=w=ZY$#vn9dnD{zuqlQ;ca;z4XPNBks*N;1gw&gSfO^^u=CJ%tyt9b- zH?ta(fL~_t<}-{IcdD@iNFGN@Ph_l(FEu0L#DWPXQk?*aUT^M?gT+=4`~cfQ-KH34;0KX))t()0SqtXKRolydEDmkFRlpxV*F%g4LE@>Q77ace^xbv+tH_1-Oy z{75i7KUKi>)9$iHalT$+`>QTWk#-0~VkNy5dQ`D6I0B*uv6>_2;mT6Fn(3SQc^XRR zA}oSy1S4dZn^q{!Tk_o-G)F2I+YFgukgj*6;GEkoKr9t_M)5n0ZYOb8j*d~i1Q~V7 z8lxMJnh(I>RC=`Tp>(B#b>sl8+@S7_hndcDvzsz$ubkf`*8I@p6&_It zo%J=z!@In9PeLb;sD>^I(x2o~|A#5n=hKUAG}5 zlPx`!mNt*5R%XsuRWKLmN=*7k<3kg?V0us_32Xszd{qNPgvt$khpqtso9nZ$U5@h) z3g0y{z#Wtfq5=Fnh?y7CE@^tNf=1;uA6_)wkoNj6#4Qw>i>=rv8i5zPBT$xK`PJy^ z6U(>URo>jX)%oP2@lJVJ0i$mW+`5Wtft&i1Dy~KB%vmJY5gNs?5Lm#&IWE`OzLjzi!UhTI~IwRNQV#Y4!$k9$EYKN?3t=Z5F zC32+l=9oQ9j_s=0JDP%zR0rAG9rQ)VB52^{YT_r>iY{#ELvM=kI45r&aSrFaQA3Aj-g>pk%wXN)i|U}3;F_&b8=f+FS1;|rqcya_?*+~ja<<*fl@hnzB^*v9R#Qf$|=aLiPA8EeXv8qr3r&KL_xM_zK&iN;H!c-jjBa|EJ zHUDa1AEILo55Tu`mfYx0DT%P8Cr40w^C~$~m1NN0&{j0@rFt6Gt&jm8bWM6g19V2v zZsEy|d_8N09OV$eae=D5K+j4y)SdB*<)fy~L~L#ENZ3}TfYrlFh9D<<~FyLmQxJ~*sBNAu8MYw3UbbilHD zeimrTq(Ane;3g z9Jbp`CPTBuoTt#li(oAKm>1GmAo;crJ#?NuFcTNei@aUf{-h*p$p>I%$EzL02g-pa zG|#=%TB46E<7_jac8~#fJ_!opgDN8k$%AH=6_wMGHh%a=h=xh@OpoiXqh@m52tB(q zMKIYaye6+vg3syLMS~yM(0W%@b(IfRjjlYqy!DCFvZsd2?@OY>mlv~JUDCqFWq0YN ztA}q0ekyIWc$g+&cykTDo6v-({eWuet2TQ?!CMooXelqxZX1303Vyb9FOUi7M&@X! zh2sN3VN8aA1mnT2bLVH|y0*=*792QodDCc$h{1Kcb)5C%amjEWV~B9_2MhJ94c84{ z9`AW|O4MmsQcvRJI`O?4Z0Y5aPV}d01lQ54@!uTO9nHaCkAJS7iJoZNS~ezSM}Mlk zHU5hsRU_3b^qtE1SCrW}HGxW#ayxSOaSoAjEoOGx=%U5IH2!g`o0H(P*2>M*fxZJA zmR6eIRM9g-CDsEXlm1{xZ6A|0vB|GIBrWp=lr5y9qb zcRyP2y!-20ZPS96?tS8k`=iOgB~WJr{5^p;Rxs!AadEOZs=&th$xi%=lK7Eo(><;| zr-GYRPS_e}K{KLCHYmeY?kN^#fpc+b@U!A@&DbR1VdNSphU(7chpO^^A_;I_WOU+z zfgs82MGUTElu<|BmJ`W?1!$^V#n6YX>Q|?20w3ymxTKytVSfMBx%{szjGL6ddIt=o z3)Y8_o`X(~=bu0q*!&FFpAt%*WkNlmkK0f;h6!A7fdXM=g83<@(WR?){?W_8#1-`ah$dCRn?< z$zjlhPAz{EoVoA%yT=o%B{+M%JQJfpu-&GHFM9nJQcKO82j4%+RN5&kDk*!r)xfYZ z{k3X?wYYTcPRW(n+BSnO9glR^)JM=RSAkx9{WCp5yRTp&a}cA_nMEv7t&_y@-ksmV zKm`D8K9)g^cB<{a<7}?$ki@hO!Htd#>O{XqDz!`&)JW*>|`7-y$yB=>< zCY*-nQN5;+tI_AMsq12_fNAuE&DrS?*>VoDMw|fUM>iZOf^sQ974b}=( zKNWeAJ%f6pHo&V`bsdbx+JP}tRUkZvgKN?tTz$-*HeX~?%09Y1Gd*)3x3N7J{7QD3 zTNhHnHYxwf7^|duNsk9AjT6G`Job;$Md-` zH9&K_1u9ULh`7ZPy}MqpVN_BQWJYxe*@K7}-?xWv2fRk>Yj7#Bz2NP#l%6NGa8XPu ztNwS}e|cGXm-H73TE1eTq2C3BFPjmUmb)PRbZk5J#A|)!^1I3>S~qr?en8nZY9c+p z{S?0Etu#m{52B23=py)@A@C|jFpgOE_&^`pcZ%nUusu90g?KvTdB|rimg^az-Vbj>VU}2BqY&N<#vE*sp0?xjED+|5Sf!~ zl_IwaMC$;^5S2=_43SY0NK}*{0s$EUVF(Z)%pqi+_WrKe=lt z_Ey!V29F3J6m>6Mw_~-A;D->AN*OLa?}d`hjf5v6nVNBXXy5-2l<@tMx=iqmScrxd zDdM$mjt7lxCSr@cCM_9K6+rgL7d1}EYdB12gWHX&wNis}ftX&M?dR3UReHtB7?I~K zG~YhoD;%_kK|`dSPX3egz&Q8RyvbTB~=XTX`57O*- z=J|%(Vd_qd{BCeKPiF-KX}=6eARQD9C+yk|Gc>#N9aKLglXpBsW?1mdAcrEaxOtoM zzbzPkSojv`{E$wpuG1YZ+7HLsON>FP&P`Y%A)|M!CK{6vYOzQOfNR=f3-PQU)a*|6 znDbgh9Sq7*8C41sD?@cZX>pK3i_5>`I8$WxUrqHFdoSDUvbbnM@s}F9_J6fBqmTCG zx0Z%07J|7f^Sw~ph*`k-C6!mC4H4 z#8`*$A;W5i)m;GeN=;O_57_u3BnBxZ0JoE0G3Cwkb*~`#FP0W7nup*Hy;6`S{{|Cw zb%~j#PAROma0%LR;kl<#fZFkxD>Yx@`0^l@cT8tP*Z?L_-FaTAL5gQ^SwrxxcOsKZ zl{ICZAa-KnX}g7J2ou9!h%7(t{YGOn#ue7f1j%dYq226LJB^jH_mk86jC&RJ{!_044~>9ZQ;H%nG8xwj`l z)6@Lj!Ml&V9sb=Hnr~oju;sIkIs!8asdML0cOd!u{FfiVI0Zax3J(w3L#mH)kSY^W zjTlybIrG0&?GBH91&`Xpql4gJvzQtk_?~mDXFr-iFUKZ|hXxh$IzD}YlCM}~vRQJN zuh8^NoSss#6w@4-_`w(RmR$UoOo?Vq)15NyUO@BX@uw$5W4jw_lBeft$%Ln<|R(_r4 z4pwz14$^U<`k(ITKgtK1k!=n#p{gpB&{j}8-OukF%pq<;?7uo)&fX3O zAo-}SYIM@9D9`=#U*#~+mc(^~NBD65{7^1I1#MV=2YpQ}QY*9%tLOR%kZ7PUhj>tz zK$-jh`gjnRB{Zsv;H=Xm3ERN?r#X@^PGhcDT=xqWz1Br|490)mbebBht%cFprx8i= zUcP&re8S2X%Eu=;Pk6j4V(QR?;F~QXzwFwWWFp|pM5^5p{S|C@sHVb2n5C9zdEiEM z1jyz@Q}eBE_Yt!tJNgLb2q#V_VQTU4IDSYs$A{-?LEOfY6>*Rvt{=r1u}>GXkHxdv zG;u@&rT^I+=ye_Kw#q2Y&JnwLNVGXD9laukM5mI&*DHFoM&$UT!IAlXO6{L;D7-Z6 zBDPY<8(_Ju*ztsFl?XEL%fHU#hqCAc&&*z!A%6s|%-#JOm{<@Mr9K0K^ zG5mePq&m%wK|W7f-{7&-LP&=~tU7xNrCNZJ&k>T#g*1m7)sq^2$TS}vbkkXG<+;}_ zVgq~k;S9GGx*!1^tDBOCIza*#3gM$aEQDa;9D{n>^%^GDuCn7vK0Ja&+;OKTc-{9N zg=Ot*>0kpK`Y3-Xi#!+skgPs+?Qn5(z#Vgloj21Ztni%D)gid2lF>`8#|Fn8D9A6qgzZ$y9 zYFyrSeIA=BbSIoq@ToLxa3>ImpoTo_=;mHeb#225R}XSfXh?s#RNEm*jY=jy7E<%E z6X*gVBcDaOKRonC)h-F;@EgAtS?gexT7=XDCc^U?FFs2R%bdu_XzfT?KJwD&IZLK6 zO)C-OYE-&AWhxy(t-uH*Mh^FqqsBlB^*rtPUC(Pk*QB$dFQ1EwBm^QqCXH}0#HRDf zQKD3ROJpJkshLqwM2aEZm@T$%sG#VkeRF;(f%i5w>C{2Xw8OXPpcOkwDP(w$s8R{@ z_kh5F@_Zj8!*WwI0Hy7~Ewmo9D}rKVoOOlJrQC*%k~QRD1M7*qQ3uH}l@TnxL~l-I z!1CY99uhu_6YlZ$zU;95&`ERKP3Av-{d3y0u;D}OPQ!%cA0uSXon+Qr7G**7s$IO{ z5Ty3PYbJwI9mZt1oU1F;O&1SU((~cl-Pj$yujlXj@!ev~LtBDwcrU{gV&wj;9i{g$ zi=ZPvF5Xjyn@c=bz=kb4H%5d9b9H}5^4IqBh^eBQFk1;c$$ZEwkG!_~^nv@o1 z9H8k9@=pk_S!c09WX| z8l^h)#7E>l5&4T>XsE)a!guu=kWWPzPC~@tldq6iWDf4vag&N2-n#bdUIG`Zg zc*i!Wwp(xA%*;Rhjgwf=EU+tQVCY!-Q}}NrI4IX4nbY8=XfmgneG`U-4i;1+#7 zz*t_b=80gL#T!>6!fI)m7a!>}Mn{yw9f$L)%O{CXy;`k|!eUy}1VlBRYC>GoIDjQA z?#7)=v!P>%l_g^DN7M)f!-Lq=ORwIZ;lT{|4ZHb(FkNfJ{d+50#;}%6;jG#BxIQws zf5gYxH~WW2mg2k}f?V6oBUTtJeRJb4>m`P z-14R{j@y{Ds;6ac4%7qAiCt-7gwk{eb&E*MHr-Qm&J#(ialvA_SLUTu`xV^6fUzq2 z)=PFxn_YAb-++?^i05&+R-ieIWPTsea~Dx21xB^S!ZEtnay<}am2tYc_! z3VuFzT@pN_n)&6jD-T$XHsqHC&#G!gC^9msH{MIL1&=-jdchovh7Bp!4vpG5d|2}t~$0{8B=7YkB_SDQg+c6^eCrr+3fK>x#k%$@!eJ117MfVOLGD>QSUeIhAmxiTVB@(x)L)*~&MQp@+ zMm{`z7v(*t5y04(hK=m;CYOs{{k1E9ouxh=VBJ zuMjUsP@I|&v3B5AcC_K9^C8bdgP!1`Onqt25}sEEro1;Of0T00k&2xFQ_tD9Wj8F7 zlY#<~BC>|JNB98h5vWC~RAid3E59&NnTqAjH|Sn%fcP?sfpQt5o!phhC39d92yhyA4-+!W@cdcJw$J+X-V*Q zXdJu=wb&%hN!a(rL=5COPtH=-s$DwvBa(z6H<^s#eJ8gkp=ab#!12TKM^>j?c4PqyYHt2*DQ{BQJc|8)r2?!8pQ3nP9 zY0(=@n&+cm;lrPDtRi%uXz*aNbCxfjseF$WG(Ga9C4^K_iwQuTDn34J-{}^p$@&WB zqtKaz3nc;jUVjn%Mb_^B?0UWXP}ZA+*5U2W?VCIwJ~WT7^epjk{$_vk6o0)_%q^#d zvz^0F@?)Qgfk(gg!K&L?NrkZ&d@1l1tO3f|4>9bSqW$V{6CR{S&wg<7$tg{7SSFiB zp~p7$zG&rT=V<7R5|BBJq9<#d$vZAs9+$d;+(~Y$TCkYHtCq-+N!2bA{1D8 zl-^}X;(|jE2wos)DGThl8iIp0s0Vy9^j-r6u=#=kQPnfiM)buVD0fs($nAb zGleL^p8p!RTOuTI5H!Tn8V>^-F(J9GNJPUB)_Un}+0Vb3a6zgo5TW1;Wg@&i3!2kA za9yN2DPp>w&r)ayB`(6t!fzD4dgIG2KDtIrg^>ys@N;F|xT+HbztA;qNxEQP3);B} zjcrW3;6xq=E4^LSTex>fDXOcMCYMa1&^5~1Z@352w_NvI9X^cDnRZB>m*V<$n;E&{ zROZYnYpa$iTFnQDS2?E+`Iq7vdCX&ShMR2fQtGG%USAMn4?h%_0a_ZTjzc${A7q42msmouvdctJ&SB`35is26- z9Z%57cF`Gx%w5SQ0z+0emOSyCfR5NsWzG;Xs&^PVYNu#l+%O?Fc_U4S@9yzoO+Krb z$Ggor;4Blu&k?8384tQ;6cf4(NvFGly?aCRlOJ>XQggtl7+a?~UaH|1hJC_f#3I+~ zO}x;2H+4(L-au9cf%1;%amD$M01e=fd4rtvG4_m!a-}66yj=FeJHX8DfYq=6X4h;?AnF`gxZUvPIE%?vX zpGMoO;ckUJ=QlS$gGCWG5P$!w~0UcaJC+r(!}vuZdg}8QlYfY;eN3o z_drGmW>jKivThK|{a%50eVWWXNM^hWgoYS-na^JF9tbL{4tT#=At+5&{JnZSt6-Am zOl%s-X>hJm*CBb%GCF!pdSEW$wQHg}4oZt!|1q~ZfEqpND1t56&PxMK=fYN@PfvAL zug3+qL|wY)#jX}~&A?@kwoXssS-iLTlC;C-fQ zZt(l>Xlum!g;D3Hz4VQfhjJZvJ#tS@skZV>Wqx^XdIuu|HW_U>{Pi#JQhRQ2da1gp zqj5#mQb<~};SgTJun#AAx)p)1SP| zELQ`d-4La=YDw76ao|=1<-wJRx!`1Gig=2~414FC;=nyHH)KvvuX7oDHsdk#I32AR zUTdDpDzC^7duOQb#7cSz{s=GhAPwwS+V1rzUx*@GoJvl zRWEy}N@9gZXq%X&?ANhpt|S#jRcJ&9$}yxwI6eVR_0mUVxwanB zz0jxG1iT=_V83NFM3W!nDSZ&x(&- z7~17MGBiSdC$jFzc@4TI0*z7G4dF>q2va~tB9?DfGU^aZ~fOr)JvMogQ)CqFqk(<6>S>;NFMpMOhIbJbA+bJe&mfPF<35m}8*5LY@VFR*Pwj_?XIk)l$2zag+Kv zXJ;X#=KY#!aJ;cF zD8sOGXry>gQWq5{G=KyNAPQIphO7p#*3ARwZ#tYl##O5v=e-Tlyd9_7Je{R>yl7e{ z@(MXeh<>|*sOB1x=RWPd2A`;Wubsx9oE>)pQsWtXQg8Vf65R&UE@MWtNYA;x{M|Ca z9x)vlR`^rYP*S1dQ13;m?76&nvKz{@xT0Uc}2@y-9_jr-@kXKz?ynS$;{#|JMy3C7#Qmv{11FdDL z!Y3ps+VT|jZ6TJA{X4ak%ZfPPd=dlA7O+qFQ^Rt|v$fZzpmc0=i4Ya7d~>ZzQQJog z>tH!|cY|UQRddc*_pBh#&NFGQz$K=;pm3P4c-M)XH|B$LUNP(mH+>M~L*vh%Kx9sR z(4DtgEwjEe{Q6!ms13PyJ(C-qhC>Y9=1y52SE~Q>o z!Y6OKHMYkcgwjg(fVPVTm%7e~NL6~Z#V}$QKJqq|vgOhd^}RiNk>=oj%hiNpu2T^M z96Gj@pu#oP%DL;L&M~#vSxViiBX}ZRKzBipB$dE)W_juIpad{!EsG&^X>0pRaN)qB&NAh^EhS5 zNmv{lWnUULh!wP*TV>Js^tek1?=R|XuI~`fO{;-v)nID;5YaVt2=r#Uk$kOxQML5S zIs&f)OW^$l+E%X_Xxi7Aj#?`XdVE_=lbwIBl{7*kW|(;ptPD*rp}h->CE9FH9?<1< zY<#W?T`AkQt1APZs@-;eMKYaP78*tF9ewTMY)%8QACV^4h489dJtAUmKM~cDL3VXE z+M{WzFoG?AjiGy=9+ZR^a9qnvff;WzB~6nwF?XIHQ@dB{c0n9kKe-_l>Uo?u#pj^< zTWZhnru&Z?l6ljkAFmcKJ;~K>c8S)SitLb2%>t?LQNge3FG5ldxl8%jx+ncr# zFI2lDfu#s2O*w0Rhhz;e_rFkT1~qs+Hu5*qL*J0x&+ewueMYxjzS+vndOV9zkSLY) z5k7FSIT1?pxq5NG_g;8jt%D!&u@@QZ_g>ugxr+J4e^OzugWqeuVnJeyt7S=iRz2N6 z3EtjVtUzg9*{aYa4ogT6`zt?U!fuk6FKHGe$CQJ4b{E~9@W#5GrA7g=2*E11@ZXLG zG~UXqUU+{cV8t?Z^HgMa)Vc&+kyq;#qy~yOR**ViqhXsSmWHai`8(9V-%t2>HxC{( zh@R}E2Q~1KO^#U89Y%V9gi6}*;J zXTi8rA6@=BLr}SVZ?D7fc3g+;4tZ6<^2X(_r>FQ2qIhjZMM$esVybTTwlH`qX|f4@ zgAL;{$pH8GSdV9c)DI67?NDA!t9CA~+Uy>_0rahJb2mmzxD`UDJC3Y?e6L}EoZW76 zK^4Yb>jvOEuQ$X8=?yj+JZ?_JR)W8Ex82Oc6bw z*RbhiFtgeghog8>hlqOJyhpVNXFQUw6AP6O!wR00`{7^f-9Qy^9!#G|yyWmL|j$(`Pq!Q5#lGvi|na zdXe^hz4(?san*Lc>t5PuuAnPpLqqU(Pnz?U#)nS=LY~<*wLZ?J0FtX3^K7|)8Zkck z6QgQpsqt}xCvepq7>DOR+p@zK;;`ghhbcX!9CUeGSV(i5?xk&GuZz5-`*0wZs8bX3 zTAs13=BgUkEv{2{QIC(PnLX+M-31`+-gEyk>QZ5Zx@iVlMS&ec%nN`Ls}~ezwctwp zc-hF#N*N;B zENXK&*wO>XrMD_3O)V?!ntsbA=JFgSZc8Mg1J2-19RUJ6pjZKt!P?jL&uf(DR)v4P zqbF$l<^TM_BuuUhH(4{?L5mpMQrY41{2_IV6ZB{q(o?!G;JmaD;uaOpbYQFC?uHCO zOU)W>Tg)b}^wQL@T}M^N9Yy(Pak>(THaVeL%7O4xaG6&}W*A+R1rOdFm?Soxag=He zER_YZ0lmBKC#t$^Egfc)w?!;8%8xU(~7D zLqHaHGlD!#OO#PpL{}8UgRGg099jbwh{i$r68JUn+X3jh+k4ta$$qgS8Z`?O6DB5M z&7yYP(e!YaGwCdGu)Q#l1|`CisvULX6Wq@(DUGKuKYtGJRZIba|dXfQ7{6ly0LE5B)i>&Ml>O6Og z&3Q!$NI){*uvK|S__Fm4x#hi!$0CMJk5iBv%$cB)mc#8&f^a!4GkA)+YoikpX!U)P zrbRl~3||2jP0pTbkWJoX!t@Js1pV|`FHKbKZXbQ#p0wmk^3^Zd;hP=9Og0d9vmaYI zfAjAaZ;heXd7UdY9TXe#TY1syxctOsn*+bBmKU~K{8)8m%gm$o2XY>au9Y!zt0=dh zMBtIMFjS734)#W&x!y@K93E<#;wEyi1Rzx$?02Nxdz7zf$L=Wq4M1_`)9#9i!W3+{ zYoujTb#_Ccle+B#q^5g!Oh~Eg)bl8E1g>^++LP7eyTZa)Qqj)MjL-?VIw7*y=To|H z139ooZuKZXSI;%10i%vGgiERvx%L0#Q#9nCkF9^vraAwQd+M2^%MIook~ltgg8W!t zg)C<0xH=e<+wSGF@DzkCTXIKVq=3*1XhVgl9$M&2#P~&tX7$C2tEsDp7qeP~9}o;J zYF`8zbLE_uOMUJh*J$^Zc!!Bt)2=@0%W2(X99Otq!t28BSjQ_6fd-@coi6*dlkgml zR%w@ZQjp1?eU9Sfx}Nb zltQ`^C+FbwEfL%~i3=H6V@s-_VlK-`y=LspaSgFlF8*4IKeA5bSpUlA>QXbM$JfgY zze@gwP#Nklx$^SXv|!^t)sxE(nx;=6AKnOi(+EZ?E*>gG+^(UoZgvT8oFevmWnzf) z`z*jdT6Y(6urXe}+tjVGmqFG};_=hHFU}0qC){}`I?-J)k)_ScfyaLaz17%=9felT z3&J{bh-`Q3BPjf(kG2*sb)5v8Yf3Q;6*~jWZ_jS`$%d<@;JJd2u$`JtZe>*~v|*mv zT1bJcPd%r_Q|!K?e&*_NVs4U=V*P#vEmMd)ei1Jl;^`CuA&RrXLI#>JY!BO)8Hw<; z>Z2$r*VIZ6m4b68RRu!(wxzV19zIJM-T~q-9z!LT9&^QecI{#EjT<$`jpKxi2UAYVKk+d5Aa! z=X#|^ErYAv_{dsOyWlw^AZ%{2W!Fil^Z>S{byTU}R~^j#HNB(;e`)+tfUZBzI<2V4 zn$%G}c@vh3V4&em#QvI@JenKUUJCoU=X_#Nnm%x7!Htzqu;gAZA8gw*fig^s+cp`T zYykB#{wt_s5rZxN=-X*lYgV^=*N$dl#rmHC^vs&Hz_+U?S ztAlh?Z;zR*au4ll{-QJ>Io1L&N8D1uq#y-2DLVGY=>%22T0)XKxHN8*+4W|7_5t zjlwS-uD%kA*h7f!5Fe{dtGiHhUo{Y@(H7OkKGkWMbj`|RjCAo%n8fXF!b!ix|56&NUl zo=XxSVwsWUej#3n621=9${vh*WOI*j0U_w;T>c<8D>(wN3Jo>w5;iOe{fA&!9Lz{s z%E!H=#^W}`wrKV%`17n>n|I!v<(zv7`P;c5v*PuTdEb^vz%$_5k|~I4kPj*TCk$&+ zIn8>yNJyt36aI_tyaEp2gSH`QMoXaRV2-(wXg^8?vmGy|#I$K>YU(WBvUw5iW;Ksj zY~0b}Yb8;6@{1rjy){e(xg@jHkBZ?kz`iwHduvVv%)Zlbs&h41H)w!%D+mitBdFPH z_8_I_WTKrisHzLQ&q6+v0mct7I2DK~Ws=2^%eE68NGQq(28-c!Xu zA+hkhj>6+pV%|$5K4OhcM;Pb$WAQK18NS{;)R8|ueyo}G7+U? zPo(@FZ6=Pw!4iomsVpoViWsJjz8Xv=D7#GwrPOLIH->Q1y|T=~R2N1~EKRK@09I*= z7SoZ*a(*g~gw#Fxm;qM#bbTYMu4;FQHBW`i3pv82X8S=fe&oiI-Nb7jSH59AQ{1R{TCH(5S^ z{JBWzp(}9I)#76UOv$>3jG?=P@PHQtuC_qG=)B4k&nivUZNI>;+Foegc=wHIc~PBz zSAo1e!?}xHsy&BuJAJ%pPXLE?&cH(F82H~AVvaFwE^#F3k)_h)VAI2f-46d*kGr+L z>6X-!?{>O_zMYZ#<{P(5o77JxvaWkcWhKz~-S=>3XQvU;j6*s%O4Rgp>zmHmF57<) zyt?OSRNILa6xCH14?2eB13qL$D%v_BEm=niu$6V~X=FN8OF8CyXUx6?EX1~5^6TJ-}qHc+;a5slM|ox3TtHx~3x921DTvKKQnqyy;?yKGN?LImjRAEC88 zO5QS)BhLZ~e{Wv%_6b*K62BOw!)ZF#MT9)<=&X+JQD?)0n+dB=TX))4y^rY#&6Pb) zo>RdA0TUkP#DS`II(n`nc1X5;ZxR`1PT&*BVPMiR=Be<+IrnNOb<{Hb0JATtCG+(! zmmjW-H(6`=<<+#^=YI(Hx9;zn9Q@PE$RY-W)-=oKU%%8km7e3c?Ko-I@~i+#z8^ca z87sR-+**2|9`x?n;+tr&=&rAtcf<=R!U)m=B-9AUm*QvOMW()r zOW?dzkQe{MLWCr!RYG<6B)U(bUp4~+*1c8jUPnvYO5lC2e$DaU1*)?!)b`QZxtB6)+Gxjw_ja07VX&5>T&NMf5#=!Se)@P_EbJ&e{m61lMbbvxbL`;qh6r(O?5WoEMk@6 zISRG+8cafLv-TOAp3KQGH9yVEV|59h)!zCOqfuXRnHkyC5Ne4>Ya7kh^nKz!xT3pB zz|Ux4#o47-o<98T;dOlN7aMkcy z?xy1F3=Em0ekVNXzRZyvu@nB8_l^PC!m|f<%3Q3-o~jH~=HO(7}@8CbM`rr($XIl}Kfrh%{cKRvD zTZk>w=~d#+n{*%B2Rq|c@4QrN;^tU`1nnd3I5a9a*ZJW--)(4iq2cHm<75*i>ZIMb zZq3(x1b^pKr>L{<7*y2*_4c=sCg~1Zp0!Mm^xm7Tz0U(aj3k0%()?K8;fK=yNZ&5w7NuH7FRQ2Y9JUC^fZG23<4 zZ(?}Ew~a}g4u-@q-!?P9xQ?|Ow5VG)DJ^G2&W^ko$(3ImeNwdL<q>)#gDvE)3sVgpUU$rw;TDIAD=ipE%l#j^~sw3{pmYevL`W_4hUs9#Cs8{E7{ zvp^&@;y8h*k)O_z=MO@$NEzywk$gyRwW@W^-#a7m9>_V)zpz*$e8Hzr7zQrI&jbrZ z^VnMC!e=|-<;l@0tt@Bc=Z$wAPXO~_hLBcO!ko@eaaR?#%>{wO79)vpkG6BF_F!Bi ztH+~$+PCct1!4A&O{;Q2H4M!dl*Mhxs<-v?Qu&2;YWR%~;|t>8GY}JLn}5fSY<=6j zjun=H#Wt()__uy-H~CWsa=hiXnEunV!yK`#t#2gY8$-0b(tVf2(~cH76Cag#Ld}@5 zS?QtE`7se@gHNNnhZbjAU&9w?XUIZio!G?is?V2i3>}mIeCYc;*nhp<)Ap@R-@jIF z`l7s*wUbgO*6W!-y2FGp%GDVN1%K%Y1FQ&BWYo3!q;M`_02~wKAWF{ht?oWSY1lOLhltU3B*Fh>E_g7 zNYxrS+^?(TU3e)P!D^U#N!Cam7+=)^`4K2<;xHVD1v>P8mjvB;{#LF-SN)P^miPY$|>m*|G|fAJ2=7Rsa1f zrxAyc;FXkWtv87@r%>a!w`$eUn0wNrG%$v2PWX*wnIk8dzyK&kHY;n&o%u)W% zauhz=P@YP_FNU#9PdwkXWZ&+h;fDd2U+4TQ*{57uW&BI?Rf2Q8ZyO`X=;NNkEyr#P zHej0WRbg%HTEIVw!eZqybb4)vi4aA)1MBT1;qQr&=^)Oy6$PAwN@$cHgxs0*d zPXZ9Tah#BfaS`|m33RPsq*Xn~>&zlK+4s_h;{k68u z;>r&vY?b0RiBRu5y?(LCpoEpBk97Ds+xK5-jCfk21UK`r?v#XzMqaGDv3xx5-q=|Q zC&`DYQV1Z|@@;ahn1h8bMf$Y0e2r1 z=N0suZx0Ip97fwsBX@OP*wRVI9xO`uGK?cm zb<%vx8Njz<19r|K-GYkjnD}@Vx?fz;k&n^9I5cJ)HT5&2@qWNhklM$kW&h3qZR%m< zLziX4b(#lCl^0UYximUsljux|#;){K|Is@tB*?$V)r!MHiA5w$(|sCHhR5t2^HcHf zU2twzS*M)DpN~|@&J6EdOQ}y#{%N!3;8%uMUYjQUZEU`D`6}P_c0sHEdhoC6CH}u+ z--gov68;kJr(8O{(3gU{=0lph`a^#eXE^!bDq{}Ry>wZJa3x1hN49XIMq8ac-Z*g@Mg4#`3E+_=Va{2 z=EFN@r{jLg8@tq*oi!~>xv*23BMiSsYNY2tF{`W9VMrNna-IO<7%&GuAl|0JGzQ38L|Ho3pVH2 zW2PRCP4|r)q0ju%OlnVXhWlu<4So~07JQi(dT^{+y$Tbk92xh_u{zQQkJ5Ae-G|=M zFkP9<2@|adsc+|6sWVR8T4}ZHUuXVm{WakAdK}~7ceI0OH_N(hr0BmcB=5VH8GfoQ z(e<96GQL#X_8rzFe&Ji|yR0SK;CHydZ0{UL@{UZmUz?|S!Jp1)mEo3t5@ZeKnCgQO zGm%o1n!tO)9rzbTOVJhvBA?uKU7{BYs=w{0zg;&0194- zepbN!8qV5YfDJ&;RbN5H!`lAi)yLcv-rA>R8ErvZfrcckR^)_n38%Rx!v&7i@|7$x zK76HF@zUS@5Ak&(%Fzc=opryy@21Wo;krYAC*(``iuSlDC**^&<}Ho95A%^!F8mmH z#VilL)0qu@f0Lp)n04t4yt@sr94noDYwKs5qx8*et30q5g>f5lBqhoUR4&(MH4i zUa$Q6)v~?b2eiDg*;`*6MdOuA!rmOZ{wV}Ivy^f1t=|vYB~P8e|3=X(wRA=TmaMvhOt7?E53;9GbA!yy9xtM zy-&@)Kt87h<;Kh^5>ry-lh3(0S#L%Qj9qn8q)j!$P~M%X7DTG5&IBPv%?ueC*?wa8 z(_M#mt@Q6Q-doXjWw_&~_3F(>t{yIL*0%3a`ElZuj_YrGTgOfvu?;mqI9NpMLa9DI z!X{Yyz|ujbAk++#vpvTao~&7zz)$UOTxZz7AbzYErZ-%p_Lvi-cjklsvf2G9-XLl__QxSU}ta}b3u}= zlpUy1as)VjN&?{U>tvCbI2~Wmp!cBfL(jC(WdDGHgg%ndvM`h_zo^)dO)Qc%t&Q z@}vh=gjJl|0pAd~2<=g0O|DI6w6+J@QWJOjvUVmYH?AxP0f9DNWh=r+~ zQ01k?3Z*+z3(Min7s9m(>yY=&qZ5t%8QqJRN)2b8l>_+;p&Tdz?!%P-_eKW{RqCIX ze3|4~$${2EZokwGNVxf|cP;rvv9#4*|Az)5?RtMbdJYW@LS3gWJXjS{}GXPl6vTHwpDR2V+Iq7^2|m*idY`m&I)%3g@mJ0wb6{vZvxV zetzX%%{*HQJoQqUAx*b}Jy%heaM+7?Y1yX{Z*A=aVauflh*V~p z7eDqC<2)g4*q4vC1nZ#1GWU_OLFgSH)t} z0w5}jH#wB0(1Z>mNys2U+{j8t^kK|q#jO5z;qO5r@EED_83zFlWFPo}5T(ySYvMM$ zz!$WGdX!AV&P&)sCB2q%)r^jOM3g;2%AzT!|DDqoCZahbJkVk;TBO~FWEY10MWLGN zNjxUM1QJPWy?W2^U*6lMFdi(@rRJLcq~Qg}VN)E*2T3HkbglkB2(V(|KU3&qrYT1f z2oz10awKKnwZ)QkaJRD4)K)usfJ8au`T?iqEd-n$6^s+)4p#C_h*I^20(->8>+c*Dx?=I~4|7 z<=VX?KjU7#71EiTI=Yfmnx;LKuzSmOtOI9fjylJlQb7~Yl$Ux(#UJj^OTDi7v{*_k zv8Zr~Cq`^Z`wstM+sW9{RoL2vNe*)u0A^KbYbfQelJo~{3rRiUSo^%8*%^Lkn{*9_ z)n4kwG%%2nO;eB|1+xYcLR`KLTq~?a6tD(p-u|1&KUy~*D89bfte5};2OwbpT;+_c zH1*eeNew6rRd;$_&q)}qtmeEEX8-d`9r;RpP?ApN8d<_P z(p;l`Z-r-g)!}IQ!mEWDqvJ~DQwN_U(ww@H>HSRHsrs6U(FEtH0NIDPfbGEDS3mF| zMaxUa(gUvJEhx@(>a4i0Ra|kdPIV9zX%l$#!2a?g8Jjk<3|kDC4f1FXDxPJDYV1~; zeKyz-WC>C9II313y{M>XZQ65s^rg@9URIOZzqBn9?mU18^T3xF!W|mzxLP&S2x^{K zgzNzgffdC0AeU6>S%4gfEYp63)qZ2NivyAM5P38FiF_XsA7M>(w?TrAz1kK9OZOw{zZ&3TCEwf#HkjN1JV zEI&1#BFQIPhxN2pS&)3%YAQKgWr256@w$c1y%y+T0~XyO}iQIuwvSH^cYkal^Wd%`CBXjR9INc13@V!@HbI;>`~lA(U%o!Eh>3bO`0F)n^Ce zTI>|;CCD;|3Ta=uFrvbDsjEIXXwd?~R8XiVzf_Z9k&I$MgNSRcm5H^hQ<+!{tav8m zXmti^G(OM#x8861D^7Jm?8MB4_k~fb#CTnLBk$L%WKpxBijE9sO6XY}3zEO|Th0m^ zAyo{%w}urY<@Y3A(=`6^%k#-8ce&=HBahu=J2M_#CL!(FD>(AI7AwdMYN19_-kK{E z2~Y4~h`9~OI0+os7%9(D(|Pw?i#O{f1D=k$&B+wjcJ=MBW^Ul8F{V`2fY9B#>g2?u zdqJN-i$G|x-QRrkm+8zu_AlQ4V~OcZMASWF|CM%=qeI_#eoecXb%u7bCT%s%Pp+)0 zjQezHiBz_+c>Q&*zQPfG(l|ed+b;qAiabBEAu+9U*UAu7f0cKlMIw-Ftc3ZN~`+a4vgrsO!O(nPX9(FmNQg7~cg*P^bef%aPE_K>o*KqyH5h`s!QEtZB zYExM*yehV1FrFdFKOZ3OKH?}jVm=DE7EIyJIJV!%%MS z;G&mTdRDTLAX7hy-NRwsB%Fnfj`26Rp_-$)_{Z$dfz}fQazyYmTrfV&M{h6Tb@c(^E zC@=q$U_|P)v2)iQu7m`EruccmyO=h@si6yDI(kjx1`q18-2DG%+yUvbH65y-gHwCB zv&d?2*{f4!nPMKr2jwW>w@d8QcWvy&$EpR~J82$ce$&_e6dFgdEe#vFo38Iyl|3$( zrA%u~LyuB8)lKs^ik4b$$zuexnme~wFI97bVst-e=L}(66jqps6l6)V;P4keI>HWo z%N-vjxw=yErsaF)ef{;6?@zmL*jT#%l+%Pa&!+Fpf3WP^8D9nDvsodp#N@V_B~K^* zdX{#~4?45fsHEMH8``7IUeL7A-GXC|_*Kh)@hQ>I;T0x6KGB%| z){ddCBe`G#ZpJkHGy3pda#Y9D^`0UH9KvPES6%_B@l@*Wl|Ju7h z5|+Y2-W0E*Q2gyQ#Zh3{w!h;1wkd=M_dVD0d%2qU<<>#GMo;tjWu=4p4MN7QGOBD# zDfa%ksNUYFROMCzKFTjE{TG#}Rwcx?T9X?E<|MwI7kN65Y!_f>O$*&yjM-Jc8~xp$ z*6(+~uAqr;rKn0vKV_7(rJ?PLGc&(3eU!S*{nRA>dbcyCEJu^Hzl!J>y-#)b`PS z+G+;NI~0|D@DnqZOfUX3-`;QZisX)qs#(5RK0iX_5nJ-Wz2!yQgQg9mBgcW@Ny0wN ztKL_g2j&~DGG#ed&)2MORRkTlP%y6RAFQq9RDFGjI0r)o4y?+6spj*ohrLWqkMi^tPBNll>*_{USBZd)saBI&N6Y-ba7Z8 zBCyTrLZ3&A&(p}4Tl*4oRp|&ipX`BFLaXRTD>AIxMH>eNV(}nUL^NAk18n$6%!`4T zhKUvHWJYvN=`A9%8>%${*7iX%a7cd11uT4zIS?kq?^OhoDgpQh}|%2DoVh zx8G733p*F<62!4RN*U-DD`cS;NV|1T;``YB`0RQQT!uagK{dszC>?`>mU>G@QQbDI zX+AJJUdCK=iVGn{X>xc!(;W=o!*9832+?a?Mrl9&?Wv-#cCKugdH!hAlKZtcv%36$ z%RYJUg6S`Ezb%!tu%0G!{$&qi_0>n+Z>UH$h2dO{3ej7Q17W9c~cTJQwI!eVh~SJEuJWzE+>u4gUbh z4nTtfh9lEuXS;p7!%{5~eqH?hiu<5Co{1?h$;?~K^oOzPO_?Lhu#0!If|D9|Sr%_! zH8rH?`MK1vn#A|sD$%6^tRR1vyUK%sTJZS~Q_UAXyp!x9)?ct}d7sFcMypo;9`DKs za+W)?^vFk1W3|&<@1cLvfm`uWcTg}>awMMn+YO)3qXyJv6N&S*4HZpiM zV$zLMRYE6epzf~!`is+l^nbGQ>w=sBv!6rH{4p6Hy~Mk`tq8qK``&CLJFrlls4%7R zbvrA4(~|8_wlpnS{{zpl#&PSRwYnSy@`sf@zx{rmN_-9URZrtiDa(ph`H(#r&WwhD z1pz5#8#Uf;jJt`;))`l@E=6eCbrq4SGuo-J{*9%zhK@KXPf--*!YVM^U%(?JG@wZm z^}`J-emX1~Hq;Dv(q0lHwoZ6B+BnST10f4sV&(xi_XLPL z36=7*dml)QA!L~0x{*S#;H3TbsNzKo4w^8~CesZcX)2=^UAaG8 zaw`D}fAg=Tw@8h4xEzUT36|bU%nS0Cd08*|*WC#$GOYdm>KyEdfKn*8lY#dOFqGV+ zdt7U2@0n%MZ48OGM7?2?6NA^*{kufQ0WVCWvOP{jNVMMJ*j7b3-K9#Xbyp4~o;X6k zY1PJG+p;w<+H8C1Y|}kaCZca{bbBiQvV3KFRQG-P_EZ0oZSL|}sY$C#y?Q$)FDv|K zn;sp>+D0A_Zw>kV^{5p#D4hC2x4(7HS*|!Ax8SStH(1cv-pp!>`gl*gS9MD&OC1?! zo@m4QXPUE$O+l6NX8cKN*gcl9yQ4X>;hGMpU_zzHgHiZtIl7X97HdKo#>3co>2d~^ zTggYXh7cKU&;ZJUJV7{&m*S4Vb2O6i=peiUsJ`Mlh*b;5jCOROA0797{eiStr4#RK z+xWqrkQB$Y#SzfR76|b%ooqnJ>HQ%Vj2%=}w z#nJlh3aFVoMuKey3J}4h47L3Q?_M0>5mAiS1Et&(Jyb;|b+>GzO)jq%xlS5+(w#Y! zK$|lyMcAKoJ-MGN$?py6d5|UI*fAo)MjG0JEA2_>3uS63+DGGbxZm>`W3)~#%w30r z-Dtlx>$XSkGJk$~+a6Isard&JskK&ZqziQ-q(^hQCjYOm&YNzgd(HdF;;`8r6Wc=@ zeu@5ix!B=_d~zw{o+nFYE*dZF+UKONRvsI;b$^)cy{A zVBOiZmCX{D$!y`3f*c2>m7rTPqa?%a&iqJ)&BJlah9 z+sbD1tDxO_!f5=Ris-L1dUC3$MWY(fTn9(B-&eKz!#(O&q`Kqd!<6|$E1XpaUPS;k z1ZbMw^tYQjE1dqdWL@)X?l`GxJ4Y)!X>Q8^BC{;C$EonSQgqXfF^elvCyfrcAx^z% z=0&+Y7_Gon2JvU(Q9W+@a!Y-`xKl28DEB6D^L!ywig3G7aOZ%6?aJW~5-49R)}_|w z%eV&g00(+w1GI56+$J+Ops%fNyGi^-MGy%<9^u|is1zT&o`w?LO|dsT~RYVqm? zd5pXbGQdD_Y_2PSKu2M)-a@I8`!ZW#&ane>R82`9j3CT=Bm-S4bR;!Vv84H?c=>^N znO>R<1&3Dp_ptFw4~S2d(p^-#4HnQkVE9eO%d=b8s3F%Yoc4!HDvWHzH~6OSTdH86~k3&Fd|13~s7bBnVpr0AWF1hSkFZ2mc$ZhcU2< ztHzPep+9a;;yk%$nOW$Fh^5bTB;hsGr&E={7eS2wL!6Gx80VKsZ+3 z`us_*k}j_HW-JwO$O55a28($pZEi8+VQaRwN0u@)T8wBl^k6o-?`XY+s2*QX-Jyw0 z{u3zeQdk=w`*A5S{lb%Hv=Sxa=}bp#81oEVyc;O*I-21(Lt?=xf|C?D6BMldz*p7t zzZ?^Y3@^<-!Kp1dN(>q8zy<-GZK+H#c5dw7mz0Zp7ZCq2yWk0d!+K2?){9%>_iR{k z;YZK5+83+ULeI$lr?E5P8rmCBAVjz+d7tl;tW~9jSSh{5{DuBR4~0~ka;^!{RRUqU z>3ZR)_YNuj?YUq?H+2FheR%YgyS86D8I9*&@Fy)|6-l-(3umkaK8RnScs7*rB)@7S z3$C*AVovR1`_bgXY3~h>yR&Mmo@Kmta*fgLa2M4> zReO&uU?V9M$BrjEnBDg0{n~ALj=J*J`kAC@rONl!W@G&ab~>_FM|^sgSapv4mpR3n zl)T&(^MEAr84#KPb@c!7Cwu|uX*7w9J{F%Gy@o}e4M#M=h(x)n7ikYgbyFY`u(UkH zdEThOx#RPd#H!ff@5cf{u+l29LRAuJ&@j!3PL zfKO(+5F<92_&!r9v3(t5@uC%x_lfabaRQWtL0wLM-+61*cuUJ4(QSlSF$#UYu=Faf zY~oQxST?hgZ^yv$w{gVvG^%!+0dzWV&5IZNsMfl~MAalfy9|vZFrcXFP5U?-BS)SMv_{_;n!itpGcC7f6q_C}Etv8|1p!XUIAfikNhP zC=E6iBdKf?|IqDU?Xdi9qRnsav6FV7o?j(Lr~J1IfV1!2ZNTtKrq@tU1y17m4I;lu zQdF-)po2e|#r9JeXo8U5)-SQ+Dx2I?qLIXUtPk{*v7Rj5o9u`eVZe{=cVQJ(;xZ20 z6-E<;VCn<)?**A;-OI9gt4T~IGXSe@3h+U$iSa=}dXD~zHzJosvhc7Q4jK!RA`59E zbyUDVyU4U5;4NB1D9i`V?2z%fO6IGAD^osO>p(kS^F$|32J-@q4c8k_5FdVGN`1o@ zEF7pymt-NKkcjXF38@g^!9%+Ik`rP+%2#yp>x?JHhjOw`1X2KD&c&s4ywqmY2e?rX z^H<%&bY{iIme60+kW|7q&}_CDmBzylRrHOPm2yvZ?ho7GC^-d1oX#AW(0VOXBFkaD zt2iS<=%i5_v1Tefrag+Hv^tovP)tSqK<~Ol^`<|7`7O;Vd3Xl7qmS8>|Mn^e*s$Yb z)H-WgiO-X3um5R0_1iuCg%>G1FYk34S}3ne_iZ7dudIT<#wSEJ%y^9Y z4o?89&)|+)A99xk{OE1#7!=!)Z{)73H&Wa_)UYmAm`6wSlA3(P>J1)FsED$9qHjxn z=@dTmVw05KKXzsnYrqq`!gxuZ0Flu77)RnXiJ2j#Q=x2<21z}zSg4~^!hGmW?s4k9 z9Gi?hktGX^cJ;(b$#BRUQuwbw`I`w8?)vrJug+M`xOgS3aUta@*YBH5lB>6FfSMQ9 zzvcDueoDy`4|GuUfG&8>?@s0Gt9|&}H|%BV8#d`4@*{_RbKhi(MZu`@wwzL`$`NF{ zX!3JHL_nbYwQ`+tpQOp93XI;Fz}tA@E`P{D+5>$AA!KWORHTiI_dwe>kIu$WETqOB zEL&KL=4klij`=XYxi3--tXks>{J+62nQ>UEkfJ+04A*tzRO!CQ*`GbW@sEC(@8;Ek zO7*&Y_0iCu{abe5Zq3AlKATP2wC?BZ-dV(fGY!*Yg8HyW>kvKK9-Y%u`!N#9~O& zN;~x0!{$hn-B(h}C%S~PkU%6%-mP*_Rok-k`F@r&4a(V2G%vMD{4w7buOh)8Mhi4a zte9idODjEQvZUF9WW`z6*h9v*ncN4Vain{zi);Ksn7E{5GDo-$TY2SJ@iXg=07O(8 ziH?dBDXndp62Wi!5=7wz_XWuC<2c(qU~0iwYC|qK5{}ph^X!VGmw1F2R1_qD`E2f$ z-i0maiqOdg7ivJEAI5yW0VTx5f;`4U5QLK(gU#C%jD^Dop2~10wxjC_fi)7e53S9IvJ%eydm(^e?Hs$PGG;mDdbogIzw%P3Chpe?URXU?fl5Sp``HwPhsx~c(VWN0Ei zz1ljIzMH}F0dVr!IvN$xl_^kbmNdi_=)pFYv6hYZQpj$|fyN!&T5>UZZX*|5kn|(; zZXoL>`pV7+8XPB>%uDM3X6GsMkV&cSr~eAqn>euYX59budx6;rm06(9PN{y2l?y3) zlRttc0@XfB7*_r1Qt^8M)jut{9Tmn%s{+u#*>F)o^=%pm&>{!ckZSI;mgGRz5Ibyt zk$xC-8I`2D)>nqhli@f>hV*p2Jd+K7PwX8=BuMrc(Jm-`*tSygH@ZHgZ z)sGT||G>cCFu<|5SGOAgxZU!5z^^Yq!&^`vPO9Ta5|*uNr&^c^x6_F!-E-@DVkr0C z_k#P6LG~H?0gCOKc{4|`142@AUP`O0)vOoKDoBRx5_NARbc}ixwF8 zti{}6yzBYCUa?=r1@xa{*5EJF5OU*=-K~_++ev-Ng@4B*l8-s7SX<+^M{T z(Yw{nQ67va%^I6S;Yir+mdV!6JB*b=k`*=@xdzu=yCynE+KuhM_`3zvHRxWlJQ9dg zxRG!9@M&-TdWY@DmK>{F|I@p9htShMu)cOHjrzv^pn%)B>*NB#^Vf^bf>S>(#zoRY zg8IJI#+>|9oI2pTqA9{e@31%^h7Y`*1Nlfpa{X!dR?sYB$95S_Ik-}&8i+(z3Ld7D z<$x3h#wI(>4)qL{x>P-4_Ne1z&Z+`yT#g?_ohI9p80W+<^6_P;z5|ufNT1y$BSB#s zjG{eh<5Ptf9*^{$l@tcs;Dg^{xD1@>}&~p;mkhw6$DGYdjt4<9J9R zrjJCXe!u2wbTe%sWA&l2I;&{H{PAFnRX0lla%69#o_QbE-*EKPBwTRbOv`{}AwOQo zi;)Ty+m3@CEVGt~oK%-DGpw3m^2dg|`**%t^6tlvrhlJ)Kh^)EiTlFhj~6fJm_3mn zHM=9pID{zQ%SY~df7J)@K3xmz9MM#<;(^-t*oF+}uC#^%fgszFAZEM^LHj?=!82m< z4QWNHT9vwDvP)Qx6JGPllw(r_!b~5j2za@Bkt8kz-GPKz9h7@q|8l&z%vIsk{{*Wq&9Eb0Br9XXT{LG`7a+2K!QNb426Z^-u?T7X%K-9U zzg0b%=yxdt`-NhyRydN?wX5B>IaXnytc9-#>@@CppMe^r4Ws)HRbClt#zLT|A)_s+ z?o15Q-{KKEgLiov`5~zv_{anH*2Y_{aWwo>ik4ZcO39E4v-6xw7)uLe=5KPrSJA0Z z+wDY>sJUIUx~Y^jSR-;I@5J9%r$tQiVG|xxK)$--kjeL7FL4Hek<&kvo)#@rnXLZ$ z;k>)&p{MW7Vm^+RO@Y?2)>a?Q-;zvXmWS@DdcJBaBkzdiq|VV#H~oOUN`tN}-g=^F zv)`G7PnTa)J=~nz!}@9DM%yjqErnsqGOD{$_j^c>x1mF`<#mBKv3FpUsu!$ZQvyNW{Ib-~Gq!9gXQ<5)!)-+Rmf z7_hFEpsjzj?ucC4X?vJB36B!M_j%98$4@^evc}H=m;%!Vpesv@>y!TQd-sc@w>_A=#Gi(f6~ zn4}zzyh3Nw1sVBwoKzv3qzjnKirOt8*4iXO zr_o03YOLblMuf_N1v+6j-x1S4-iHn-U=RR%8}WI@z${mGnpM>AwclL}A|MO!m)qJ^ zPYq%>djf!`9hcTZi3>l&JK)wS1b};O%+rHc3D@aB(iOUmyp^vDBUm4hcqDP~qR0=V zFMqm^-9jF90fkhO-#*>k{KhX*%;6u?`4)7$J3H$?9oP2l|6>(Jew1RxTmSQ6oyB=|{9owLRoPi}U3Y!h=HX#I0ne9Qq%g<=U`X0l z$!M`XtyjU{`LS<=gjg=fke<9gPHVf{#)ZCZI zvn#3G12QX=8%SkTkDxoUC!ZVg@o-Pd{5{~|8kdoAA&}0$Frk(Ic+=4>g(}%oobfZ@ z)5q_kSdc1jLuHo$d+>#mO7$hWSWuF+{Mm}kYfs0Wii<9PPmaZ6aJ9Sk9l?t{B`BTZ zJ)fnJ2_rd73}{*9XT`^{XO(}`pcMF%r9mH&inm6_tlVF(r`{x(4o7IIn%Qc{)k+lqX2Id_-_}W0wJ# zC#=iXu&t0~EzQ!Q^b=Lze$FK?YWnv?%~ zC{`e#u;Ms_Yd{=BsC`z!M*I@-KknBG>v1)bKcLVNOuN>Q94mkPUreVM|7S+;65^Zf zh3&&S+dtb!0_U|tFpURcyLfxi`)=AaH=GP(ewoA__1pjymFFD1zVv=n6WZK`sNaAD zRxmmgT^d{Ewpx))0B}oK#F!#{8UMF+s4znl<^>hd8K4z_LU2`v#)b#{l#m_%Iq70p zb*M&XzCb7U&3$>SUS_V!51J}zqGYp{a3oFPmuR|c2s&>7`k>zsGR#MBee74YJp`p* z$RYg`&OZdVkJQnPJrtX`OUr$VszHEM2Ip4scaz>Iq<<>gSuDgT@Eb`{^u_U_(c z|IY)niv?!;*!arqhzwHK+yr_VD@WK_s(RdzvPc|(zYTVTLXL>F%?g^a1q!EZU z6i+@B(6c)lV7|bV9jR%FkEHewE$C;%7>M$?9my0%{)_NZc-bSoE=bQJyWnT4=>ZZq zF|2U)a$=+#%pr7>zUxI#oMQGg!QTtE)z|h@N=EGu$->eb4Q)?Od7S)bb?t za8Cvj2-0XdI(}KU7^OR?Y$>!i{xEPw%0pr#M_VCHAp3d3E>dv)m@mCMX&eMin)0`b zImv(j(mgYx0`Ht|_%m?gozWaSbyeZX_~g7Tj+&h8$*tTl6W@t;CFpzJk`l(p2`hlp zHT?bn6;@SG=S!ThCs%;$y1Zuchsw3RgYOdl|wGf0+&>WRe z2T1a|Ke23nCB;5k?N~*!??CHSRi3v4$!2_&IuY?kNeX_)#}dXMiqFDpw*^FX;i}X+ z_KDn=d$U1m>T^1`9(4~~Uva4uAC4awNlfA^-j0uYk$rRWSMZ2c1LNIOAf_^^ZJ$mD zg+)et*+;ZciJ+W-^!soi&=&b@n1!S8|1@8<0v`mA#8rK!{=1<|>gYq^da4TV`_$pi z%IxJFqjkWdI=9G{w*hoCfl4alZo7aS2?RMO%I@ppRwa%|li7-OElSlrI6N;DMYE1L zt!noE_>Y*euN0paIhNo}zLG@ZtLT&CJ&YOQdJ7ulaYH)qEk0_=%4@1BjGUC~-_6S2 z_vh8;KxbdSf4bkrle>;>`Q7X0U-#TAJzi}T{dni{rIhgI6|;b)&7tuQG)XtQ9gLjR ztQ4ihS&}njBG88G(jExv9~E%;)198cE44Onh{ldalAeW3jcd z|0iiv^NV~l?HoS2H_`irXR-%t|2yG|LFJoEV}tJMz0mOA+V2oksPqYI5@}NeTBoC- zhN+`&H)J}a0u?Koz$hMDYIyVTh{qLfCmxpH@p;=v6{hG~Zw+(RH-B<6?))A^NQSzzL&2F0s?hSAwz1I!sfC_!Sc1N!F-1))f9sf!4!QWl+ zT&zWpgszD5jxM?VFPqm=DaQD{Nwks(#t1j0LeEQOn}r>()GvokGziUs4tqg@Rel7 ztZkmoQTOLLol$I4j;xw6f1MXOzj?*Ahcd4z{G{VObWZZ=V?#CiuPiG;NrL!^+#W)d3x)FnFR{O2BQ@HzV0(wng%s-UVXSGeF}>U$*s``y-nX)=(1VIqPn6 zyuV8)n-EFTk+7~a6d7HqF?m`#8xr;Kjo{G$eb=Cn5;4%vRpd(vfnAA_?{ma9M>cun z(7>%cnfd=p$&wW>{8=|B9xGa-gh1Pda5+W`%wv0*%1W*(iO8)kTxDkP;~ zoq+TKT}PSqk*7FuXCTY% ziucH9GZ+TDz={>_Qt^#jsbc?|U+wA+_;-ibrE}Q)B8nMC=Vcp!d z|2wZgui{7)5k=&k+yc@XLulza%FG7N5aT^9PbqmwU1Y|w|1G{Y&K-iQga5TB36-!v z%6Qp!&K!`q#n`S&p}X`b+Rkud>HXw!fO2Pk$8lpPcdP5NSvUD+q~RXo<2JURKV5y<=Jbqeg5P}ko)wu@EE2MAu4ZMG9&@sqy=;xd(qZirxhO< zplNENnz(wfctW`mLI)SIW~J772a)SlQr)V3%pE`7T{WVbO2SJKjl>kt_Yc#N=asC% zsU@Mrat1~E{awYv^`{i+=BI+N&DZwb{M97q^xX*dAE*BIda}hy_slk%c5)k4NBBb6 z$c(8$JJ;t52d774T&4VH3a6`_!@y?a2{bQ`peiRs*StuUv#QZ7-tD|!O{Eo&k5()y zUil_pNL$V7H^(I@GI~1)(VPiFMyGGp3|jNYW?-OYAOn+-->MWK-Uzw^W7_yIaTi>S z=fnwp#zSTV@9#dR4Kes)Pl-=<_`B9xeu0;D4_&8lS5sJypd~GsM*Qj~70~KKcs?1W$ zj?rfP;O&NA<4?XeCRw7+;#%-YdsW_etk{~ocMLSGw<@`FdCt*HFhh-%a|$KT@r!X@ zQ*av4qUu@`xSdFu5D!3vV^E>(>yWJy>(D64`%EO88>E<80!TsHF5a4rc6jiliSvHm zK4rU!$01AJ&4tPtXrq8qNpU=V;*@!E=TwGC(P@7WK1zdvV!&%&H^um=@<9qxv7Ax( zk9Z}h!#1ils*batQjR!PGW=2?){U%6D7?C0x|^@7>cB6om{IQ}lKqDo3(hn~SR981 z;(KdUf<-PWQBM}StH)a+OJ-ca>B<9u=GnCZOBUnxxY6fm23n&Z&ze_q6u|9n{&KY# zsdFxdKBE%KUHqDpjyRl-*Cy<{t@f1hhb{BeXtUd)75M=^sYFKU@5wFO1MX_hf>8v- zGqF+#?)V(BVZ&G4gD_1L{#PJK%3|1-;hm4R-)>1NDlr|$(8HhTv@oUW$Nb5Kd#5+P9&B&E#S{Idsu&uneuwQ% zAWWdrO>@aS(bF++qU>1kB;sZf3Aj**q={=TI{aKxucCA+t2IGACEyWA`QhEY6UbIE z=ODxSWb+bzJ*!9N;Ii6TuD<1S-JX^7fc0elTZ&^61e0D1W#6G*kn;O|2-+$GIT*1< z`ww+Er4+=>BSG;0-B=gMe`|T!FOx5>8INDKl>PrB7Y2tj|3hVmAKm#dj^A95CMXfh z*fRxBgq*nwPRzacyuB-;M-m?x&?6jZubBb7Cqjijh`Kk}6{d)BJgfY;UeSriq;(cI z_k2UEm>3SWKHWLH(TQ1fcr0 zc>SAe>z4eH`SlW;h1a_sH38BokN!9*p#D^-lWfdzooj=%pMGXXk}n2vB3DNBWxW4~ zg*kp~jxzP*4rxfr{fy3XBD7p%0np1#SOb9NqFg&P%$k2Wc&PFiNUm3>2KH|;zA_iP zwoIeCSeJaXAdz^hKh&^azn#1ntT}5U8SPMpM@cAFU9Zv_`-{yQ0+y+i2Lfn7oORSh zf*~SG{S>Ta0`DC~;?=QFeP$6W&w|snj^+BJ57zzq zuiF+7cqf5p`{xrvbVS!4?JAwTS-t(;^ed)^Ls_Q#9RAp4+5M(KT|wdXs1q+Q5gp>x zp8I__+XDl*^%A~SlKC~s^XWfGOD98A{k5c+ArXEoZ%5gAd@7A3o7IQtuC3-hv!)`W zWv>%Q;w-UsxCLh!dlWfZ5(QLc+z*W4FsiDG6f^bcp);1`eL+9+R$-=Co#^dkz67#{ zi}aHm*cG@=!Cx1&qHd@jmts!#p++{>8~%))d)0m*!uuSMO~p%v>$Q#l9hU61-R+;( zE5*3N9RN4yj|0r(tlBLH5J(#TNum!}JS}a9_6IBz!hvcowivOA z)wUU0+j)E*-o>w1AXGkX$B0tA#M>G@d4(7fFg0u-|M*!BhtZ($4lE2sfws334lp)N zq1nWlZ#0&3v_dbWau?r&hO9v8QknR7u8Jxg>l!fF(n8VxZ~2$KsU>~-d!s`Oa7h3) z1k1)+A}5ho6XzwlwxyrtG=X*3>-!%*m|mzkouR+;P5T4;`xy~YD^6YNoO+RUiM@?X zL05LSa>77zme;t@Y(j3~<+*@T0+c?DJHu z^#wj^sMx^~1FNS&SP%O4c~wzJZS`mDKb&)FIEjeuJ(~%590DPq3vF*FmIOXJb##I)L$W6BN@&Pm&s%a^NJfAWXD&CsWXXRjQA&=|hF~O#Vl;);@r6n{^rq%JI+vL0mAU{3cYEP2{6kq0_gEa4L zUq=G*39T6y%1gLPnkui57BOiV>1*CA|DPrnoKE@6dd9QM0r`~Y&M#xwRdq;*dyy{7 zFq_BH&=-r2Hc=zJH73IFILJ^29NR_0Y`p_xwPRBBSe$VVKjt_4qsxSqoMiBAp!ZNY zAf6W87BwUyG3PjQQOtUK34a2vn2Yy_aqA04pl&FP zxDnG*%f&=@G$*5mzuvf0@)k`Y2h3kALK}umbRe zFwE$w@T!>~(6OaUjU6J`^20-@lZ@20<|pmhsMA<3$Rg|L%Hr&bUzz+EyuGdQZq{7? zXj+i5hFNQ%(;!maQdOR=(VmB3 zJ)<7RnvS@x+_%ML0^gbViqkS)+XvE4{&4;w`@-q{Abq!)USrl0R&64U%D3Sxd-=nq z0;~7_E>rxSZCNpafirbr8*Di}rK`NEDHCDbv_n_Ev1JV%vy-3ovLaiD#c|Dlh&tqZ z8|dUb!7Yalm7JdSn)Y1e^@||6yp;|7U-j0ni)6K+*%BTvSQ&)9lgVtjI;F zgv|r00!+ocr-_)fy;Gk+Sglb=DXd?r+in>Wi??H5hBXXl?qmMSrt8SDf`)Q>=nP!m zEUO7qd$L#fw3gd$)NPM%rS0+!?aAhBTj zZ$6>Xm4M}=b&%JD=M^I(w>q6)vrjOn0YQX89WZWC|2w5(>hW)O5tAFY;EAqEn!Nkj z^QBpxFiBVS(x?3URvp%yE?JXYC&@?72q^(iWetd^r`dz7lGmZxqH5hZN>u|lbMI4wi^-M?iOL7{5_{% zX9g7q`n$ju5IhR_C06)2fc%M?@yOVk`SsTiUx~JUyFJR}Vf#nqo12#(cSD+omdixl zchi`-?AV4KR&iRDs#y5K(V7VEnIeFqcZy z&P3;E#{9K9pN%xjJxcXLYyqMN0m(im+JVd7b=Kqz`W0{!6YDG1*!RnKo8wv1c(5YU z5QtWCxhc<}e<2y8g=P(31A98fe{UZK!VFMls(QdnpYwStZKjj=5WgawxEziwCv<{w zntNQnbgvf^UL%1)N6o9 z2)@P_)<8^%!Sut#XB13rfEXTOY(qyLCFaj4=#x~@Hb^9ucL0Bj4i;@zJQd!kwjY!&J^bfP(|y%ujqToHrvI26 zDfuSD`L7~9Oc3rJ3(?J&`p5fShn+C71eSsr@eo=5djlu zspHn6mEBqG@)mG@MmC!7M%w?7$D9*KsezI_w_{~Njx5awk@wshYz85U*6<6Qplg7j z6^32n?R*%Y?CwNMqIT?JXGZvL_Ms_t8=?|%qn;RtWL;0D?E_3U-hXl(k(Fv?9TXqt zAAuhPWe}e+w{35I!;K@}#K)YrmdLG%3E)Snmawk( z5zU3Wo#}%*DR!B+F2IMNQSG(WU$9iTMHetk>+j`P1ZxM;9hVE=Vrk30&vJ(!4sUI? z8d#u!bg>j{Mi(*qbM%iNB?Bj$Gf=3ar*JACd1rV?U(ANd-M7F_N1Rbyuanu4qi~xZ2bH#D zmm&RCNSf>vbdNMLD1Xv$FYDQn=InN`hhVrFkv1gHcKFbb&RfVvmr7c*+rwlCxaR}q z`y^7pZFn$#oJnpJMhTTF!C#T{BXke=h=d=BhI(xNsjW=%R+BGP7+SfNmuQE;2Ji|# zRNe_5QmY$SI7}?r(xO?hWvs@``{V~kb8wL;@VBEcTfvqZqV3SC-H#t4F6|*}q9l56 z9Z#bZ$6$Eb{JA&X;18Sx@giTwpl-l`m(`F@12aai(izfIh(8m-{c=?JS|i&q$YtQ) zaw9W({{rg=9~ehP1`5x6@tp7oNt)o2Y;wpjBzhLobT=g^VzfMGv|8Ttpp`cAvh_$j zC4SfejmF-H%Vl-|iOK@UMd5&+=vnZC7hE`HwG+ zyYK&gHgUDf~6s+F<$ zd9hFHjm(lze1X)#do4E!HwCZv)R|^Gcr(i=o4_*Au+;Vg6&%+HbZck*6kD=);QveW&!9gVM#H2tao(ID^`J zJD`4BcXDC#uJ4;>zVTnVrE21obAYLjs&RBAo8DFxfI#H-d)aeYhrYg^tWOOxE_&N? z?_vWju;f)sW1$N5+j_r^<$%&#p*&00z2vaxAFPn`R)DHzRxZm; zCi&mo@3ViIa>q_ZqX%{G`ei3Co1Ijd{Q3GR>G+H}+2rUL6M9VG_O?_LpF?Y#Xow%9 zB#r|22+{#zUlxKMu*=V2#*GII^q_~^RH{l*B`jj`mfB+5biKZMUzc$4Z1_a4yGn8s zP@_SZ^_Jc_`2TGNrL=N%D_GGJEA))O4SRqRJWdc28+pJFEnl^RW%4rMT7W1Zu}uV+ z;b1f|XAXd!7I{RFVDEp~%uJ}=rLQ=zOCedu&QP6Z2uZ-^75HFQI#{f7=fO~B%zyzB zj<(aW<6e90N!h^z=3-5tQC{VxvyWx&%0w!lD1{YlG=9>@8)lQO7*}%1+Rko{Aw0&9 zxR%|BIYpS+powIk`sVsy-8nyRZP}TzS}&h+;bTFniO6b>{KqF|d6GNapMBGWXy!E) zS1E`#gXRzmmo)SDUdy*v`A^{}l%nGP)@Hb+>c`8oa?0R>((+zl-(#ms9!!shO^! zOKk%#^jmZhBy4D;i!E~}b3Bg2{Z zdDI?erY|A?D<~+Zg^bu5{H6bDv1$9Da2X+@cfM2mvLiN1`mM=-sn2?P1qMOh` zxrwGSQ-15%JQo;juuP$9xD&)oRN^blbn}$7$`y|)%E2jhF$=g6+garm7dvcG7~E|D zwxReh2+0pnm!K!2uw>=<4Gaon=}KMI`olNp9nVAs{<})kh#?EjiFEk%r~({BGnO-* zI>5Hc!59wX8R(B?Vp&Z8v+pCP?~?#!VnV#|F&42({B>&w{kejsBW2#r#WCYVI{&># zO37cco+h5)<+WQp*>4&La5cceu%5H9P~q?j2#N(TP(Bz@zYcdUqgsKAo{<*$(4_bS z0uu((b;*xo618FKhn6D)CefvNneTwnsvk|)er0Y9>;B|_|MQdIPAu)x;>-oO|L~Z> z8XfgT1=*wIekLy`bqjnsAT97>Di6;LQUBC&%Huve{yp=>X!Rla@W~J6(TH!R2xPtv zKf;MBg_ia)AXK2M)j6qx=z&?Ty}CHvzg6cnt9WO7-TWs6C?fEmKCdiPJ@#qrQ-?}4 z29$qrGJq_;u+e^f>$oNy^(-hsVLTcz_L6}m#9~I&(`Gd1i6e`8inS|&Oqtc-i8TiDU+~+N|h&KTmG@S#nsQ>mc5XH zv-<+o#W=mEH=KDrD3EJgo>s))UUD%|Ato_rDy_mWnHtHO<5;}Tn4Rz3S__C)?f9*?};=`kUU zGQ_m)D97A9`XB8a86v2hM!XCH&hVsF(>(H1m z{0#ab(1wF%oq-gF;D@Q%0_IB_hdG8sL2r1)YK-rDm3xdA7fN>CB)TyGVvn zE+MHgyMCB;)1BWqPG3ep$4ZDT#LHIraZV?c@h_R5S{XCWn&C<4O*$wTGCSvlTNpO% zl&G9iSR*z|*qhM1)Q}G9FEFKiA5pxqVS5x(&y*ZdCevK|MN(WE4C?3ZBP%o%B;f&* z!djr{Qe~(VymIQJ+DS3XP01JQX~w|5VZj(|aYab(SXv7Xcn;E-psS|Gi;o|xggw>P z#d{_=%6<6aUnlrsM}5Gyf*SE5_3`Pp#q$#Jt*JDFP7KlPu-@P| zjujfN-o?F!z(T|_s_JSMWg<>FRov^Uz;zfnlw>(>HJ5gBqqk0w{8A`meA;{-bM#5{ zKroHUPELG^i%4%3*%{=|XJ=&LWc755P-XG!<;qPC#m%?(d@j=)j3M%~Kd8YTUI8QC}6GIoRxo0xog`}0T1-??@jV@~bV+TUJ@ z`x)_3!Tm=GEJ5M%CrrhGm_$$Fn=F%cB{4^)NIcS%ziNcpfsBeo8cQ@4_0>IruXZk)%vT3#!r99vXmTgDvF5@- zH4Y4EC9#Jz!IOtiI8As?_)mljb&JZ-5%u5T=DJADW&3dGo`+KhjFxfGidDDwB`*B9 zQ>fc!palL)kGHaEby}(VE0so+y-aRg3x_r|dpOF@u{0}HtWggo?%0yK`sMef>UJ%;_YTi`*`?e~zXiA^hgG=Y3Up&SQCMiPR zXujN29Ur5I-h`^)9uog6ern!4L2UOkJ0y`hXsqUC@y<$0=I|pHpt}T>Us9+Y&ioFN zuxBOyi%1p1HgajjHMwP;ePHDEut=_^H9UQzcX6}UEBLnT$jX#eGoADrFOlV@;3k4U zefvL}o{p9|{{B2sN*!2nmYpm%**4^2^EZ>~L8Mr*NY-l7nI*`6XLCvDpe#&-<$rIR& zzY|1Beh)+X1|Q)AYW=8bIn0sJ@$^<&t|SfuCtA8?rXn?(H~N#rc&HER#eo}4{naJ% zY~Za5iXb>lNwbp%QvbhG&}Z(#D(mX#}p*3 z#VupPJ7I$<%_2ovM*MZkSnJcGSj}(!wwLMuT)Q+UXyx9KYSz1lx{jV#;7UmNGt(^AD5Y-F1vH;>52!ReQgFg*4gL zZDi2l@O6qO`mgSeWNm_#U+sEjO4{y-o*;XLu|)8OD$Kwv5z+Wx5Eeu=hy~&z1@7y| z@-zOGdfqt&1Qj;GC!uHBZ8OLAOojI*c5o?bbFh%N4^*RUuwF-=c|m_IxCOD{_9f%- zJ+$ejJGvXJ;dJT)Fby6Hw}hK%%Eu8hSkf$B;#9N$;FcbINH@4(J!1RRY7OV&=nO?O zPnp+^CKeKdv-sAi1CDc3SS%*`ab>(#`Z0KfO!els5&Pb(t{wJea3r0A@+lMlz=ss& z7&O>M)4S-erR-_5oyB-_?ULgi!-{{NS1vlrVAH89T_}F%-7@wDW<>hAvuD(Y^}Epv z>^M7I%RCmwxDNRfJlKZ*tAf3V0qe_`jjsrn-fQx&%}@^Y?t{;^y1_Y+%^&=o6eaVc zTjx&YkW(<7CFu<0+F|1^uns)qL%f}-2|ycor09B+L@M{CJI}r*vX**;Vkq6%e;tyG zvr;;sPW>6tgnA*RkJ2hm2g5l4O~Mnpz|3QV)n{${mg=0}4$c^50?+5KUR82P?XG^X zrIC0S+X}mpmgK(-(uWF6Zo)U=&$=D6YddZZSw6NL^1KN|+df0^CRWsL)d|AbpJ4-w z(Yxg25vy~00bK>cQ4nyq2i6ulqFI)`ADnIe78H+C`jWN|5kn#syCJ_rjNZWlz8mw# zwXtS%|4Hja8)bdius2RB4&M4|Gfou*dQ9i|?m*_o>h8J^PL!T;pA~EnI)9_%q3oRG zWw`mdjvupZ5;hlKPk-@Z#gi*1=1bQr4-dTP-kvUL3dDsVDiN%W)V7ZZ@#o#0Y;87? zo-nCBZ>{Pm2uosnhq&sOJ!s`&1HFwu{IK!8^WNRR4!25;XJzJ}K2Qb@wT#fVlZtt!69AL~GD#cjzuc@_?FN}!aANkaqQZgPL7|Gdu?X8pXS5BSdITNac^|ewt&+O3` ztsiwmetxmyVBO0SzZ!%1`3X{jDMwTNz^=dhALjFfwQF_CtWt&&=$ve6c4x8R3G+hU z?$N+^sJpUi09*;E>W~`uW`jT?9i=vFbigi2P1gW~JA;C4DAR2c?TkNr@oCr5#D5xQ zo77DRR6Y3fODfcE0KlY9kDNrO4=9}1-pDyN##zztcBuLoViMcbShMI`Fvd;jA~PdE zeBN&TzI;?QO6$Yb54kI2!fEx#WJFPSPz0J7J+W70tj6!~uJD~fgye>*h+=|NP=P*D z*RK8QKG%$fxOX(EBy&%k-~MogCw~4vuJbN!tCy@bX?JrtXLS9Zh05Ixcf&fM%a&^) zHRVUq-}w-OoogQ?1S*Z1@(rc7xL|x}D)VE$@gCgJY9x_tCZ4pJ8?CtD3ct4D^9P-n zZ>l)f7j;c{X^+fFMU*+&^mywJt}k#>iTlEU)?^kc3(e8$xE91Qc8-S6I{F`I5_o`WVgiSfiQ z$=+4WZ%sZ2x%&K(U5dp>^)34Z%hM(iqStbvu!l*DM1O?79^Pmj+BZ6Dss`)^3hOu^ zDIP#9k^U{?M5(p5s5?$26G=R{557+Ju0{wt!zKHOF$VrU4C^EnBg-Q6(4zom(r#Qw zX%^2LZ7xjz5Hq*bawen^r+hkgM!Dw%?FV+MPVbZF^y_IhDTo>QVd!}Y6B%?ca;|t1 zJ#r>9@|@E^F8{6@()@sQc^@Qw;%09%qwh&-md1l;uT(VMAEcNC=eM{CD9YRYYN65; z4nxu<=9aDR_gNz&)-#GgSdgmAxSCTCw-fyzuot5VRirA?XlxI!N5sY1K!fTB;y8X5 z6b@po&V_5j1LYO32N0M4YiF&vwy)81n6(k~^4ndqA~7OP=r?d-7CnOp-HDL{rDh~D zIuvil4|{^J(6bWrBS_z{e?aZVa7N!Sh1>Ha*Fgw+Mz-}+p1(nlsdM<8y=aj18&zVG zq!H*fo=73@V#T&jSf37hmcvAnpIfpMAK)vOR2(1<7Y~XI8+ldCiiZMgBw;Q6qv&Fv zX@BIT&5Z5+iu{AZ8@{83>PxWSvbWkh;zT8}6fF?j}qTn*LuIXxi zhN!TeBI<`4#hZ}axX=s7#Tukp*&jxG23Oy^QTUTU=`rGOH1!*o0j;}YfgkYxF_w27 za3Iw==6rkPi6^7v$e@}AEDyJOrrRtZ1fP(>VFlOfhQ2F@pHgYub# z+6|ygSfS%J?5;hQ=*bA+#;eFm16xiL&I@oZ=EFp5AEf%eCPmW@^`O5a+_8c|nRwBX z0in=pf?Q5}ixxa(DhxXz-lU>PLqMlc<@+5LTUF@@4-JTRrzW8^v=a5fL6uNZdP^HP zie$R0qiSEe^D=1ZbPLg3R3q9K9+zK^E{8rd)^i3v$$zs8aBv0xdK^SJcl8Au%~!>s zI*5*bar^Wh{mgv3qLfsJ%3VV0Cl+afP=z@!WAy|wt9A3E&&R+}+}s7u0xzKMaI?c- zF}TILj@zGGap>&H1_O>CH2*o*zt#9kq$<_n-uZ>Ke;q&G-0tXlnCQpZM6=0iZKjzC zuYt?LLqn>qAK{AmgW=`5^Q-}SIFpT6Ii8Wj7q#}tm`m1cm@?SKP|W-&0?y%hZ;sR>-;R?i;yW7M zux>|>;yQvp@b0Ann$vX!?rnm{pl!wBs1f1oM21XJ1cFcj)G;!O<{NH6#kOcIh||3| z(Gm#bFu-{*tKcelaw~-#!Ap9!zFe@Q%Xibukr1zph(a4N{ z=tCJ!xd~N_*$;gh|}faYFmvFnh0^=Ucrcq zHXY8#yZy0be_t6ih{Q*ifN(Xkb3&i$xazF>T^Y2X-ePoNWZ%X+0t%W#DMw?{s3%LP z{K2xwVz^3k)2NtSwP;nIS#T=(ba=frG8L}rJ8}5O*!;`8pbJ1`IP7NUHh(kw$SiJ| zW4cY&$DjLl?XwMS+JEd$B_)UytQ;|XU4)bRR2P2QPW7#e;;e&)v;2fkq$M`%XE!@* zH6Nrp6MIK{tp@4}`8?zRt&uiAMfr&91<0KD#^(>mMKJnGsjuF!w)T7iJ;w?4hF^CK z91Y%@`r@$*Brm~txs1k736zUB9laFKOE~H-0ML0N!xw)NDmsC)iw>(UK0t73?gwOf zT!*<~Y9DaM+1(f=kr;IRIOPbu@ZaFj4NTOU5P^fp^lbouCVts3cZzt~<-B!Y%tZJ^ zk!sJ@s`5=h#A*#(3PARV`O9Uaw~7+re*9pkh&b*ni4`5>TGrJkt1?!c&Dv!@vd&%9 z-%%Ys!IWZrNw=vArC)Rw=Ty?QPyK&y=3= zFGbEd=qARxXxH3zQQm$+70Hw>E@d`b3J8)zJij$jG^+Hq<2b9LpgZC(QL^%O2?>@C zkyLJW?_q>5mRYHUl-r242(2{z&f!*95eqlB3r6u#u{yZk@;^}ydP^W!rwL{HVZy?H zl&u;afQWc<;gnwr7qtNbOuiV7(8ypE5y9bo@`IhvGS`o>tV7!trBGWZ3)Pv_atK_> zCZZ^X>Mt|a7e6@L$B0N8bg<{ek#oYk`#ciK)z0;Pu%_iBPfxybu6p9dJAUfq&Vf!d zhtI_9+*k(N=;F58l_9sRrDWE&)j-gO}2#+p)!ryt98|hn_Ej3X5Jvp+~0lyJ;VJhV3|RcU16et;mh6`%L9=f$vuy zt{}gcH%3%mGP&_Wb_cq-MJE=24U6c9ah|EmX51>7b8+>NLrx_(qEcc`sX`22_L@EI zT`l}#zhhIBo9jn|9DmXI$HMpTj)vvFNTRsHJBCCn#Ile1fzo@pru>3a$MY10Bk(@r z(R&}!y8yF{v{M9`xK0$)EJt~J)&M=pPqz;xanMOvL6ZHz^H7tGlvQx+mrYTZwN_(u z{0FH@Fikwah2;nMOSY+fjcIr~Tvuj9#`^xRV{J|oB0%f&d+_IGI5V?veO@it{W0zk z^&#p`2qx}9x2SMY&XIjew;?CKz1;k|Rvz`#z{>|bf(L<|TSSw+1Zw2wbzg-<{Lp6C zQfs2+%oU{h&(|L(Hok*O9O{wJd=`L1OQ1og zj1>Yav{~T*sLz-3VDuTki#&>xWgzDY7+o;~ga81H!J2_PuBmy-{Pi8K=Re5)P*D5 zV>YTrA_tTio9CHril1kVWDx^oc4$;a*ArY>S8C!=QQ}k%Gg7!GkjQr;^>^egRNet2 zY78!ESJg6oD8w~yEsH}RHf=iAdj4!zjS)F<&4RLLuD$u$4-zMA7L1#^VKkgSFGVae zHpr&>{nM$~6u+HP+S`cuDCu~y6-%(w4&YvrY6FNz_E2Vnp!1vkl+65jO8e*mG=c_( zstcBVneg(hA2b5~og5Sl%MG)SW_sc1- zgzA{YXF2IyOpL}P)yEa7PQKBvy_?(IyshIvlUs7U?_0JMxt@1@Pktel565m&8*M4w}PC0qY zhP%hfH_@YU?cjmO*_i8#E@=CiuBF^xYyU`K5iAULCXTI_idoJFhn-q|m@>&eTyIM; zKYw9I@);7l!;vdpuH=1TY5+E^fMV9ZLm)HIGVf1Kv?%LqV{-kGcp{I(?9sYI zfLddX(=W#7%S6{;<`*AWR$syEvI(BLMn1zD_3=%(VUu@EfEpJpoheulTW&SgP559! z(&b(P9gJMYT~+sZztGrRwufxlu6K7PV%bnlJ9s zbW)?L{o92Z{x!mCbN%nC1nAj2bCPv+FH8wBCh-EhJOrxS#yLVv~ zMZ@~~QY#=Q3@bcm4?_}V6FlW74}yK)F#^9kF|ZVZfQc+aqci2k0AFq#H`8p=ScL%* z=vyKIECPN1U^*IzZ~4MqvZU7g;aMJv!K&#*4WGj%b@+~1TNrYCh3n8S49R0zezgND zQiAKNpJ!j`Hw-;Q{fzRQkmls9RHdvuk)X0+TLFmuEFkT;&^y(p-iuXZ(|@$UVZwZUx16K~OP!twBPZGJf*a1X@VJ++@usm230X~1K)Wj`cOK2iY;_gY(4Nti(YE#N4aB>3wk zr~$y-9#TAuP3#r4RZfRyUQf`ucXm-<4*;(_Cb)m;gT~IezHeET;6E)2`haB}C$IL1 zdV)qB005TxC&Ck6Z9iF!ePTWjf6CI8wH0}&fvjLZjHossan3ShEru4hir3>p>bmsq z#sxPA(+aGQuzd%k>xW#tggdnk1nmB96f)$~`gP-py&yW-IKjfzh z@`=di6AMsM4M`Q$u5*5HT7eT26@oEcqdNDze&Pfzw0bf6d))ruZqzL6W(R- z4&h1V2QLB}KI5-uK<;ivMAzzv-bM)lwLJ_Al~HOqK--&SDO3p;|DZwP;Wqg!VKPVhghp5| zYJwLToNtFTUj#s1>@3%+GvD(*5YSwB6rh7huUX3#f>5hxLYK(}+tx*3S=jP>7p0(tY+ zJg;;o(SD}YkMv6q8CeyFw`SexyY6kmUfU6Ja*Cy^?_6xox^?zGvygnX#B_AQ$3Db831~ksMdaSv_$DD z;A+ylW&~~^Va%;Rc|!CFdaaESw|E%#SKE^-&Zrcn&Mz~Y2m^f+d#;sP7Ighk z2}sk-=>*r%XT`}9vT^C5fTiZ?0wmNRk9Spgt8XL2 zAdkzmf&RcHeb-LEiKt&PxVW!TN}|;g70$NWuTzpd`O|R1ho@vSKekugISy_qQp!rC zdc=`iL{?(c^fyjJPIqjw$Pshx%rRG!K}1>s`Dt<R`sCaU-?Z@2b%R&N<;ddyG%*7va@`NgpP1dx8ch2ESeuLLHo z)SsGV`h8xX&kp8-mEBo(2)NoqSh+~;-|@h&Vy%6a`56Eb2h}q)dxPB$jjQ`XF%Gt$1OaV?s);|LzW&;ztqeRpHI|T?_J3dh*$^%bp^KTMo{>`h%;k z_WNtbS+0kiemPOMFVjz%8uBqMKw$gOv`N$4FzXZ>T84aHcjgCOz6;krp!GS|>lHCH z7kcHOom{hUh1<(k{7uBPF8I+szj=*z*fT#OGq~1Yf&; ziip(05grW29bzz1&luF~I>kQCixog=C>T|~d%Se!+ViVH=uBwHCkY7xxK;1s?^@>x zR;%bci$kppaT_LMh@3{j3xrkh7yYDB%IO9|BG0Xg=0)1&Fwfn}z|M0w43IF^R1eehi8-@K|v6#57Y z-*`GPKo~=ZpW;m;K5Yu0EEjXQxNe=v5iSYSmJ7vv?4imsMAM-diDJUF&TUbD>&=Z- zEs~3w=^^M>$LqW1{&`8eq03G9bIl8BpLkbT>*lzyt(OD+)^vuk^%6b=-V4s9m<1Hr zBb~8dEB8eM+u(oCTT33ue??{yjK3E^^>?H?{mvS@AMgs3B*$+Q<0W{E9{sxo{|T@O zUNIvJs{_DV(@_e0QR|Rx!p_GmZxF7B7 zk(zHcGRiFv!8p!J+?#UjX^8+-C-gAKlL27WUjDu$cpX+f@3!8-hp4V&G{!8N*9vdnaV#aY|zcdT*15 z>Z|Ry#r1*RCGE7R>aT|WM%n={P2*m?7_10dV|^#GZi`;KWEmgaS|Bymy zm0+|x5&;V8EW1x{48&f_6Tr)3iKcOz0D5Q)dTrUY1e=A?1rb+E_jF?UmIq_lpU&e? zo4i~_`;++6dO-g8@Z76!JJ*54bVX_TKk8SJDVQbCoPpa-XD+;LXyQ`lx3`U%6*kkl zT8ZVRYnhWP;^(J~C3*-)-H83u@-^l!rjvs@mUo?3uO%gs4iK>PF{Zq>Ef~8JmJJdi zx}DpQ*{Zz|Hq-yJ&BNYf3f|*NaR2^?8{LhB)0PbrxV++%lMgW z@XVaM>*$83zd9eWo4*#^Fq^e^P5n;JdEE~iif}PQ42|4i=_~A_~$cTLv0#!nI zRrc`~*HaKUtmQ51k~2_>>j+=1eM#SPHOo$k&y9Mhql^v=d(^}eZ^CWbSaP?m4oo}N zf_i@h1%5y+j=pC<4WLJ7jcG+?e-k%A+&XqCppC^P5rhhzuuM5AQD|O@s^93w>Rp7i zG-~07GPvVsu;#q4T#BVxlS3Z$X*t^*{qw`Q?EI6?9GCM4neBY4HB5~;pyPZ^ax zCFjV5xM+6AykPv4gDF^s;&qMiKk8EEL35qh%tc8_28|Thglu(s*!krmIVcyY^|1-> z{{U_DOU~TXiL)Leky=yd#~WO{_HE2lk?wLyu4pX}&Hem4bPv4+RTotEF9r~g1*r9L z^#gbl&>PIK5>k^8%`+c%O~%)BED7{c;R4(oc=%&}w*nj~)HRDv4AWTgJZzw{F?EZ1 z&Ll7b(G^TbB{2Oq&x_5}+jjK&{M|`4PsK@#Vw*4U>gMXMk=>-K zS<;WXb~aFFxmk;XETmzdsttPxzJ?|CeokB?QcKl}&2}Xq9Dg;OtCkwpox8nOZ)TL1 zdci8)qYY#JCDw5VH~KWo7rXqiZ&m0g-mU`%!}kMP6{{v&Q=9a?ylcavmB8H=AE5$O>%aIe zCtz571iJq8zj}M%9`ND2wLIw#|Ha!sj~D|=TdwhM`|-c{T|iHM4V6h%O!1gRn=QbG+xMFmudC`F`1MS2ry zQey!^k4OnU^gu!jA*AQr@O;br-rrsK@4MDzt+O)c%Y62<*rf+RcBmO;E2*Kw!_Xmywa>4I`stmH{viFCTXSf$MR}se*Uj zwI9Y3*?)~LKNk2a+;{`F?aMQ{ONP3!CfBzMpM3W0qqFg0+eg-72Y!BgT6BC*sYznh zvCnsJopUA}JN^+Yx%czub@1eYV0tEfB8;A)L+$L&)C-yKG9UumE^WF9KVSU1T|nxo z&#lnMTFRO#SuY|)gar29c?>@9Qr>d;+TFWCmwY^UMUhL}{>&n<0qS@R06@*+ejlpX z_E=oZd^&bmN~lJDM#uhC$8Lct5Jmc2=V9}8_h-phuRjrjWX&dd$)(MHIejfV&*k{< zNHLoo0v0aiS56DO*>?b<9FzHUR-Sp>M`3bpmyiPHiC{W*`WQlds#Z!W?cKSnLkHs| zw_j>ixM{(%>Pf=PTD+a}EWhohA6a_(H+#M1SCGvL5Oxt5RsVZZBjSicbhE^+7ZyEj z+;NM}eJSO~ybKriQFW{+R$cFQUh6(@za#f_6L`bNrpo~_{?_AM<@qw5g+ zYS-6O8V=RA-`Zl-exK`IYI<9FDh-Ww?^q{Nj=Oqj$AB80U$l4~_*tO_R>xcyS1CfD z6~1Nx`R=PQ~u@cNTWu zA=f5w{Oi8ro#adMr*_-_47L>Be0ubekjyTup@#PUo@mp_qu+O}JTbnsXZMe@=eL8O z`U^dMBqsIwGU<(q+fKVn!D6!Ok2xR3PRYEC7XNhcy12iyT4mzpYg9(QwO#8_C)WU?0&S%VL#|e z`XqJjB17)nbLh|PQ;**o6@1>XOgW|7A$aKJOXHK-SMmq)kKfTLJZg=4coqJ6<>Qxp zd_L~MxeqUMKPmV6EnEsZ_#wXMa@jT5W!ul9pVI%xF6b?QH-uPvFJAZly6fzqcJt;r z#a$KqtYS}NWqw?6QE^$hzxzC>{BH4?!JXvS`XS;$6F&>o-ZAtPHb>o24hA#~>$> zZ}U3r+coBN*1czoX47Y3otRHzr>-5`?Jj&0b=zFWu=Yk+$tBD4Hfy(>PZ!(d-`39g zQ*^%Yx^<=XKI<;au`i)_DKDqrh?}?HZMTTazVq=;c93BK`sL@NmXY~Bq;OIc=_={5 zy3O#Fw1SL6hhoH?TGOyAS8uc!p1kK?Ym(d{b*SKs$-v#@f)Ay2S83lLqDZMaBY{T( zzXxje6rckmdftD?{g8Upw&Z$=;d0i9B>Y1iI{ZU;TzCabVt?g}+SbeQ?nfgos61>K zyfYZo=jMIbOAe37-{qa={oK3cPhoFe>BYj5Y}t>>{SyU|hU}_@!h}@wLi4m9yUhEJ zg{3hn(3+d{j1|)ld*TgE^Q`~qK2Qk17ycw%yfHG|F?@!l$hyU1vi7qq_QmcFigt@u zj}DGLVC49l`Qq$;@;=bf1FsjZ>1WGc%e>~=s@SU5D*ZY=KIUfs&G(97if~1gS$l3) zu3hdxZbP zt)i!)M2Pt0k*~);DvL=Rk+~~A)Y36@fh)=wV~|KFO#v89h08&^YWkH3^La^ zADN@`5GUu#OJ6_g9DJs3RP!7xtRdXFhwUpLe1GUy;d9krzQ1i>gj};!NVz7Hz&Nrf zTYGZ-R+3lJi9&-9;+bNO(gufTq^*uB#8)La9*R&lS4aTi#Zj+N2@o+zT^p=-^Xd-a z1mWkx2CvKxt3na(ajkDRPI{)?PWhISb-npS>j^n?PRAa1>xygd-ruNydu<53B)eoQ zqiQbY`JUXPJSU=9uav4Nn)5x+$5d)QY`r6_j0xtL@J9Q8^fwl`dVTT|>{I;f`d3P!A3x>wI=JV@aexIIywLH}w&^?lM@%Wy@vSLQlEz>DJ?pI_SQ{S6Jz1f%x zoxL-MxOcd5sX3r!?&%ypuscv|USyt0&1Ttte~J0M@upU1 zv!5THRBiJXEm0^nwGUAsC}J)Ezgh2TCA&s;dGBQ*g&3boEt@Rw4AuYi{XGHdg{&i& zMjl}NiLI+wGd>r!XtvC?K()%X9J%eAc`wn5no6*hk?BfzoXwKW&%rEl+*_lZmpNfM z+|hZM_nGYEL&=dtO+oDBfSC10y;!{ydS4F7A5zxaAL2L8ta@u3R@PBpct3TpG`_wy zI53znF;kTnRkk@X-3X1E2M|c;kEYy*Go)0gcEqKbOOz)t!Citm zF~3CN{kr%;xk25A9Ffv@{rf>Tv;)ZbtGy}Vovg_Hh5K8uKh)aGQ!$FXkwAS$C|j5n z$9i{7Ddgg9=~o{<=8okidN@^7o-EB_-}zIpX;U-UN+^!f3%$1*G$56%Vc#Q;JDicJ zof_g-X*RUULUb^Bn>ouUm1d{!qvc<-$u4Uxov9pE#|5{btoo%W=EfoX*}T%fWtz~y zy1}4vO8CrvtaQAixucm@Caiiapmt!ypp3obiyI}bGA3$+Qp4yYjl1Y|5ud|X=!zRA ztAQ(`2G@~moA-NuQ;fYqu5ywFw?c38?vTA`s~#Aw>zQ9XSqOG143CFi2+qN|L8jq+l+F|bC5jeyDIwE+hC7xEO(6))YVr39?8W?0vk+J4ygj>d(g zPZVJwjGt3R><2>&eJCjq7W)!hfYjYch`{MxftbKuprin{+xl7qcT*h@+G>IBqq+^OBjWK;l^eq1tUf zdQ7gg9%r6ztGRS!7o~pN(1epF&wbi0qJGiggvFH)`f2Y&VS5BhcRq%ll#rOYC?P?3 z_{Iga?N5qc$y{F0zR%$D-EY2@P^PY?R!zb*OQ=9lD+cHMZM)zaor!*kIx=D1a6XKW zb#2`5-taIp6F9?f3khtC@e6DxtoQwnzl@ zLv{I0U-zK<$3lI5`~r1D4UYdaLYLp(daQc<*gr#pybX@uHM2Zs1PgFKc2VVm%K78q zJ;#n6(+_a-(7k=-+P}&9cLv8F1O+|PRaFfM2~i2rP=N(_s;cSe=%}7oS5;S6=8sSg z4D$=RAFAvZsPL~z{xi=N_dwSGuSY>%Fu!A4^WJxX!GjErAKzm1-@kvor+cW^|8VjP z{P(i>3sl|eQB_kpulnD)`K0<=PjxN5Lfw7tUh(qfi-*qxtfqcZQ~w`=|3}yVu>2RP zb)b8I5zLoQ83g_x0sou$e|P?$g#Ylg`yZY<8fyQW<^SsWH>JMn*3$o%DE=kqf1dIM z4c?=#`rl0h?+G(-h6@N>61Z{2@J{HqrAFcRzIJwmMwsY6v%Z^uFJue7Jbp~*l+eqe z?c3tPyR+Ym8h$i-eF7|n5WgjHb2|Fy{%h~_&0|fHu3XPxh|l#MIe7BsnPV6JitkSQ zw7C1|(GQyt(ud?=tR0WKUYIrI^rm!(&1_ zpBxk0`SjBNzivc!J*g0F@y>Yq!_NM^W!6xk{jd5`*=beK#pR@SBhcm4Y?kE2=Lo;Z>-j7d*sO?>V=~t5Q|* z&_Ph?>*ZP9%Zn@*yE570tr29=2VEzeDu28*avDSzL+p^>)vMo;g>uNR+#7?xzO`_y zFNXY=gB|i4&y73PF=Sq0GULTK9cE>OvHsDlZdNxfwP629ZaFP zI;L=F$Jf2fj~`2pi=5F4J@C$L?AiH+Ix(i0>EiPnahcM!y2Jhc#}j;+-3{1J-O-|@Y0Lq*|0%DuQ3>E*&pcEeVRarawbI$e5b}2^0x=L9%*TjA-|s>%E#Q=j#>+nc1#6`Ex2v+!VJ>Jv6xxjPRW_ zO6gDBg?#f~*hd{u2fnLlzZaFM<;}x?Rh=N?8qCjY{rGY_Q+2InAK2}Ntlc1VYveax z5A|v7HaVHC-TG?&J;jaN&FYkK_H{PDQ%K&0Anrr7z196ThP>pW__dwunI+k^e{Hgj zOJvmp7Z`fHj2OzjYln5`g}zQ+%5V@-(ac}>I-C9MP5s^8R&%Lk6Qa+>{<83k32K&Q zh>?!UtEG_HI1ndOx+}&c4XJU|N%c@(cxG7qCr4&wvezpIWLqG2juq&49&~1omEOA+ zUZ6cd?(*KZ+>uvu(|(p^ltos>qXVOvmZ$NA*DvsUFuPzdj3oG9j@iQA+kDY#4%^^ow{-;^3bb(l=gP>Y5$+^Ea(OG zm;QQCqGyXc~Z`zyBYAdlCylUN~8z(BRVg0)0;EgpLrzp_XyKa`{eaVg6 z&LZE_nXvzE9ssm+wb-a-w%RJlL3$V&*Scx&!h6r(B}}!eg3B=A2_$lDH=(7;!^m27 zKMcVM%|^MS68!fIp!8~cr;is%?wOgUxkGQ!4&5;EDRlH!aq@f)g(n)a21N*i1Gah6 zl@Pw%(xe?cdk&b)#|L6{c0lb0e3#5gUa8EQX3K`=>sKH?&dgpm7evdV4>8QHX zIEM7R5?l|we8-UOT>q}Lpe=mU!9;6EhLDmj+|4{{WC0)Cc%(t-Tra+9aPHPq`5a1t zQA)PzX!G+^jZebBe|}~~>*`jOiiXBPTqQWE)GubQx*(Sx%vN0<_l^xOg;=(+-qEz^ zXg*uAfcNE15Vi3a`|2jNGeYTZs6{tVgT1Pc?80Bmf~<3ZC=cVnC_3=fj; zkY49St7%-r?v<-DbIiJHr+Eu|(>`)Q+;PMSIrLFf^mFBe6n0TmVn$nnZ$C4_U)^rD zX=m)~m$#_)4b8fOXveGiiUw6-cY`r5Mg=IFW!;gFDAn>ox!Nx!O_O*iwpS8?xUp8% zE2!@B;2q;%);AQ((l3R6z6UQq{g@b6s3avT1d@TP=a(T7V$nMc5^&W!E_>E67B02c>__Qh zkD%X^Ln5Y1{@-`&iIhz*_oDl@+S1&Hfo zY2(0jO_mkn&*1LbsC#h3g-_8L>Xc~YJOLp)%d(&Tlk%eF-dmby>q)X|g-h-jG63l2 z{VuvcVdMr>HF&xKIs}ar4YyMFfBEt`CiRp)vf?h)- zZ1SErr}TQBbF!~2sUc0YncpK3>cN( zj6@ivEO^hv(G9Jo>N;eid4JS)(+Y{TmNC`-%JIEdUQwh$asff7eWnkQn~5Z)N=iB24Tk(U|3 zE|Qx|R4@da$QJ$RReh541(PAREks?Y?j-n6UeN1)dB(zxi&?rU3->KX8Edl|I*EPP zV*Y+ldXoe8%2xVmtC^Aw!Q#FbC`Iwz)>fcYBCFC9C{ew4YXO1F3acfxfCt|(;Spw` zj-kG<=e}q0B@RKl{YTmwI6}GsG7w6cxJ`$yC&$nE(Lwn88(*uw_)WCjCR~iNA_uqW zulc*hUY$RccG2KW2eiky_FLF+SGZgbi*+aFFa9|BMRwM8?r|-!q{6etR~njC zs%>T1 z3X8~U|7Q`a4Sut{cWfBnb8zMVrPV!D<1EZNXR%@jZf~*hpZyeO1coX4^=>lKj>d^A z#X;N3qfcQOaPG2+efU5b++<0aV(hq%7;bVh)eS!w+p@p#*x$`BKg#xg3||mZ$(i|C z>X)Hk!1`KJ63j}*DIWZ*rBuc$QL;jlYz^G>`}-Lky#xz{E53;o6Uxe~gvCKr-ycHr zt&s??NF_t?Alse*F71h|Q)AN>4C?0c!&D&9%}r%ra|GF`1_IljThRf%WlSL8=yFY& z@0#Iv%J>HQ4QS)dIMYGJS}X4PMlLrqiKk{$Iw}kBO01$4%~+x;;VN|hIaTk^^R(_1j()7=w|9HO)+P&~VS%IR7WAq-C*k%eQW(zM8` ziyb01;;R@1+`2ppa*6)nb4W6q?jDCk7Q!+^21bYG( z+JFZ#n zubb^xyT07Bo%pK;*5?c`Hn2xpV?1TtEaR_6I3j%HmvkOTqcwSJbK3D{aSlzIafC}= z2RWWH?-eZP37a}oG&C8O1?rMW*aE1Hspmoe4$gDnv+Ob}I>veWLn7C6NA|5vw1&tq zvPatuXykrq<3%_bi_S2kFMgkgIH2d$6wdNWhu0eMR;ja}Y(-0b2P0c2;iZT?T3LbW zw6t_Yf;A4bk*>}18*sw!jw(?A&HUDznVsY>^RSqJz}3l}!8`3fz8A~7?%V6WukD!m z6)w~Uo0ruz=c>_~7mqaApv3V!t4SS+i>Zu$oNo*z`QqSZQ90KiAi-s`X|1XqC={+) zl<#P$RST>cnprz-%53pt8Q_52f@*xU%SxxEHaf3BsQ2EmR|{~Ur9O{pfVvHpx?TKq|(6;s<=ijqBKxS&ZrQR@%Y~ z-{trLf~$qYQ0ufOj2mN|K&czjT+Yad0FwgA~|WwDDu)BQSdWm%{S%B-cR?-RpJ@enASXy z7}r4(lsVoCgUaHyd2os>a#|4Rf|NE}{bvJu=u`YaIfk5vE6@pH?>=y``k=d7AD1w} z6G%@Wjc+4p>bQoB96ItBbQQ;&SUl6NX~%w^J=yz=}#S774aaCEgCtt z6UoUp<-UHiLtEiz_0v1&@AvLL_Mo`4=%muFk2_6~YdXUjH-&0>=MueMiG1m*+gvNK zx}4Ig)}+oHa3Z9%;!~>!a$U+*nq2ei@+2^<0$MXPD+DK{EeOofh%!B#(I(z`Xv2y! z-VvaED57lvWrvV+7614qzHp<*kb@ECB}Bfqpy;xlTcNm}OKkNArkp0>urOUbg!f*L z^>Cm?<1L(H4_bv(;#-JCEf0AyM`RYP#HHER6z{I_6=X+x(Ql>QLAlqR1%$U>AZ1-3 zb=<3x;7T}{w1I6M$qS)B`mX7*Ea3%#0i?LAl9#XL9tLgPg7Pf>6iT@Jbf|&LFH4QvNWjvvw z)tzfMfow>459+Vr8;E;mJ{!f?8C{Q?^CO57%QAZU7_xdMkqukH@Nrqmqxe}~I$M=~ zaDIEt6$3VE3DU|n?vB&8J=aUi4-^h-1oC$fo~2VQ(x{@Db%0vajf=Cbzigh`j`rJ@ zAm@>>pFoixQI2yFW_Pk!f=(ZNbRS{Q%BcSdR~NYQW9MzLUC(bD1QkTMRKkCggg+I> zfKSB}3L94#iH3~X#~b`mzjP3k7WFmxHLCI5HXZnk-r*qI7VKf3B1JaBYBht zBm`)D;0JCP-_Q-z`C%eTiH!;~@8?1{q5n;CyK!R0ZzeSCq~*~_DyP=qQ=n@E&qGdI z@Cdt(LIv$uf}|PuoD3?70CF~Xof>v%)cP%TN`~sOFOM>A` z$2MpLsTc}&KkGhYFmH#4^S+mcza-w+IG*@jtnuhcf##Zy-TFC-(#P%XLmN-bxai|S zGWFcYf?lp(``m}xvoELwjC8~n>?6Pf{%Fdv-uU`_RBI{^euV=0D3@nvF*HOb_sYpw zuA%+KP+b@)lml`UUr`L9hG)@2!cc+c-(TGRmN3h!Xg0hV0A#AQb3Yd$= zJdK%Y-gf?4ySE^E7+-6l`1mDc1%TsY8pvJIk4q3wnda&5U|@9BY!jk5C{rPHUh+HS zycUTX!!|c1_IwALE#iSRWyt1!z1h|nl!Zxb9i?{w0vDN0-Y7EAjky*>YM|W%l0;$y zcJ8V@R^GeK@;VsKU_Hid6FvnVmia++doBIEmGrDhZS2l{qnn6R-UC&XNv4z70PWuL8tWFbdrJoe(?Ja7AyAV?;?nfSp-Qg1^Z@$=mq z!&Y0^yxbpXw9K1&U%w+_nTjuV&|aJaMc)BTLD67j!1FLn6qK(M|eNFw0n`f~1Z=krL_7t>8wCDy+2Gb{)WLZ#ipztTs}F*}JWoil5k zmJdzsJjq5l84{7_&(CpYVBJ?Ic1g`fK4&_0> z=k`eb`>Y_Bf@}-Fn>Tj~Ip(+Gad!t96$6`?1*7^F<1B`3;Uwhu8)glBTmTz7KHNjA ziR6xd(0z5BjN5mWzmrk5EBwv0SiuY<&*AqxEY5V0d_zw!@8Z|jK=ZNmVX$2Xh*=BF z@_tu%tYE16YvL599vk(082JeKH25B}Ats)VWDZ3TqKP_zU_1>+GnXD+xYUDW4%o({ zGK}RjU&F!G7x zR^j1i9qGecV%ZFx(^5MM<2`YRC4xXj>kv5bNrimv_9%kAu~SCd6@^6Z=^=)+LI(slTg5U+7LJkk z9=aAN^ZKP`vQ0s>IF&n*+QMtbj*dYeM_M7zEN1k;jE?ewsMj#i>3BQxMLDpq75*P2 zf|)zsb#Z%G3T)F^{{6P8u>~l~HI` za~GQeOyC<{yj@Z8-VJ__bdfU6i;Vp0puatPU#LB>0*!9pOYk`d-xzQHm~Ei6vq_)P z>O0_zaA!1n>Gi;{-PJ+&dg1XFanNt&n+LL#@~!ox2;g5|O5+hO-h0ai6a9Z^foVqx zP2R@RM`y@_5wYTOG1Vn?`L;T=X0+O_SCg0wpbM=Fcp350u)b88!ieP@k(Evq`yP9> zB_@2U6kU9}>v=K84mpmT`&VYz$@bWUF7NI=wS~Wim0q*2^NH$-&tQ!m1)lth2v_O- zH&WW~X`-sCG;aJ& zHJFjYF_OJYYv((H&z`tpydA6mHcZ}R9pZCz_LH$wEJp(2qdnOd9IdAGEJdF=`{kIg zuN4V)`<(`SB{5{%CbAME|T+frNj={D4kU-L`p6C1gb zO$%35!{-&`D6yv3GyJWxFPz3-q$>Ttp3qE&8$U+uS3UdY@$AXG)W#)uT*NPlthJ?- zFYHHT8Cc%{N1S^R>*gn{bEW5c+DXK$%-Xs3vv$}X-5jRU`ptRtJ({yHQP40b<%uC9 zNFZs@ETdQMNw1CUTxIuDl4M#qBVb?Bns0Up70PLWB05?mp&SD=XI3d9pr_`*2Oot( zz`HTg&}szLtxI52szB+@(D)xwU&m10qy=`mX&mm`qw|%Zb9C2=(whIXzm`Xjo{RE% z3OwAoxz(^S#&HOuDeQ7#UeSS}t%jYf0Tl_kyMk3@lwEV)YIwjmx&W?oEhs%Z0pfZ* z+1#TAuUK|_gvk`ZA!^|ud`ter;J zyk_wFRs%HozVH0Zpfqh2eLYHcr_KY!u)m4k;t!c;JMuOz#qcb*%hkzLRvF{(CPgJ3 z0=wzdjD++=@`y;DEwxofX$b%1P;hh!s>UWPvc7Z>8wX)kl*F@=RdL`uVivuDs4x;17Nys9F%3{N zzQPmAVt!$*r@&2u+SJ;uK;Wh~w`?uItcA;K$2R2I&z76oMV3bmH7+dXit4_A>e)#6 zF0|!2(UR0GeclL*#Az>0%G+Y^u7AjX7l$210CXgvG5S1Y@2;v17uxh4MRagU-~90x z*P8U_9KFc6GmbRnB1e9eDQG~NS;YAfZL??t4&d7G?&g(DoIz)UHa=O`B|}E6x%aS& z6b*nh_DLn4n!jFx|66-;q}{k?(Cc68mR!#ORp$7M#B;j%sV1qRfSNOyrbUWJxXtK4 z6)gE%!s#s~;dM3R(6q81S<+u^)EPp!a;ANDCL+i?Gk6|4PbdtN$1x4`@5)b7s5)v|Jcf;`)w3Wno8yh+3=yG^;@J!d>u$NPwYGy9D#I zq%YM%@$aALq%@Q|{sc%bj1?W@AnP+_{mY}v+nSk0+Nmq#BES=W0hZPF)iXOc;&Ez9 za_uYe&b+pm&d)q?qIHwYCCEPcX zJ6}Q6RKMsN&z77WsJc=%SoO}+j<$6G_FnRKro#GQGU?uDTk;5>OZb-Bb?q(aIS@uR zfh+eG!Ix+4Y#R9*3YmX?hZx%cmU7^n+gKUd_$mmP?DxiIj`MBQyi(~XCYdSNNn ztNGoKCRD=e=lX@uuU1A`%!%N&&QgJ9!xii^8DCP{!_`qV!Hb}+(xx88U8Z2yg4cVThw<+9^RjK0eqvr z9>X4AjZ#M2zaTY}Uzb404AQZf_g{*xN6-q*t8SHb6qL;r+GGZ+ z7e>oDM@c1GWSr4FQ~}p6n;{!x22#IG@{ijfJ@0h2NEv)eGDnJ8O|y?YU9?HEwyV0q znL~c5foySRnnAX&1YFWaw4h+nJL=y4o>~d=l$(@ zS>!yS!D5$0fs3Mf$2mNuC?lMf^ZGWM&x_pf(TVt)>eg?EwZ(;5N1o2^cWOLSq)D<4 zs{;MsS&soE#G|a@bV+OT$Yf>2GR%jH+Bu%NiXaMJ5aQLzHXOV5^aTfn=^rUHFm{`W zMI4A}*Ckn2J;7dXGMP7hFkjaHGX_qzNMd}l=(q=mxqbGA*^E{#KK?NzZ>oDOQ@ek0 zBSSfzSyFpsXSlVoG{UIOY*Oa|$B=OaBzwKloBV~QTxaLb3>j~>b*(f4VVsVP*xT^@ z6M#hvWcYN&1md)-Y|M-x2z$;ZiQI}>8Vkf_`UO{{)81-c*(ZWI`)FPT7z};niw7%L z5gD8jQ}!;xqM}x9`{fH+#=GGA5^6VFLaot5306%x9C$FPj_8 z_UH7X5X(NOxd*8XtpqY5>??^=q4=o8GJ)zj&Iz1Y2OJ|Y$UH`Nx4AEO$P-=UEwj`ceFj}O ztLU7USFv-=Cu&YNn3|ryQd4JBCnT zAN*gI;S}y-Cp;WqKT%b-Kcdz{)~Mq@pTcO}**Vr(RW`iHcH9gQqq~}}wr7^p@+PR> zj*+L+^d1jyh7s+2J&C_8Y{I3>IbL7U0&jF_K*x)&$%cQ;bGFXr*6yS?P)i^CzAxP%!tz#{0u zn@w+NN-JkvI1N8T?z%c13RIeiO^gKL`i2IT5V4ee*8+3pkhh=m#%_<6J2LwvfEO{q ztvd4z*y-qhe{LjmkuT<2(Gv8+*D~_vt!zZU^r$sDd=skGz?CH4>0m;E#9=rUIFI%< zP)$!sFW%3Xj@QZhDLSJQ*4I?%i4Kd(>yiGYpr-oiw-b_)fv4ObF=E&xG`(F7 zbtSz{=Zwj$%zQ#VPS$BY<7g3(yG>VyWXV#)+bpY7Z?&Bu4Nc+Sw_15-i)VAi+BM&~ zjEtT((e)s{krtGL>zzg4j#$>FD$f5W-e4c^GE8|h;fyq`Qmb?>Edgi5kX?BcGhypGn%bvK!G=#FNxyk;m}IDBPxP4~-un0msJ(X=` z%G{)XoTj$QgS@NIRUkoYERgov3hUz7B_#nl5isOBaW;4ZyDFVe91nX8VF*U@XtwNh zhUW@PuY;ihLXE(06TL|P`I0R`eEW=3Lel^@k5-2+;^KH``Gst5N*78ODneqeo?3;F z;a|}dP``#J+ihaQ3PQ8$3qjIDEYR#)w7u$p0p3nJlsC&6pcZ6DlPY*3pMwmtaXqOT z2EdQP1L&j^N^VYVZqk>jh8>ggO2`wazx>>fuVLTvjgkzU&-PlSawOo_r8o2|@zrPj zSe_VRUC!wJ-NuHs%mU*15}y^z-_YsP6aSFn@<)Xhi|Khx)= zmmr;k`%5Kypr`(wV*W_GJju^MdpF)=^*!onC9p>CHh!MR6?#R<)I>%Tn%o}Re?E7hF@U%=wvwb3i3TrD%ejB++%K0gJYA1 zM6PXOqyExODgja%kCfz}U#8-FJz_4U?O|qhv*>Bf>2A%8H(x(W%)WdO_(pR2*YsM8 zGAZy+?U(qH&5{xBd*o+>ksn6p`qTXCWPi^7(`b8X-o^5&Ppr%F2?zfC?DhB)Z2q`E zJE=9{?~DFSdn%N>T>!i*UfWGYM@o^marSQG2@S{gxML_ytoE(%*LzrN$$fFQjV`*B z7kIP2QG#wdV!|MA(X=T@mpLbzSz5omtP86IjkfAi3g{L}DgclxVasU`nl3c;9NoLp z$I(aV`cJv$k^RDZT|SrAU8lJ+CoCeJ!`owkN8!W9P@P5!sZ*ETRKxhSSi~<_YJGxDJA7Zu+aFnUCBhL|G@%H0n(~~g>vUXEH=x8>j5WI{WNI}onnkK1)}lfBlv--v zC-@AZ2#2J?c-lq>FR^ltilLW1*B|7Y4WQd;3Uihc&8hb42J3 z_vZ`kHA$`K6t}*WG-t)5FQ4~Bk?nIORC(Qt!AR~P&-pMWIN=YIMdGsZ7OQNby4*2#6r4q^n7A-Lol^7OFND3fer*}w zPu3Q>8mUh1hI^dT0SkQ z!g58dE&9h+CEviqlwpCRqc>MWv3j|-jU?;7tsQ`k3R$D8oMwK~A5B>{X#@7U7fWf@ zGfFyi4G2}^6*TrLz1<>eeFF_pk%LP~l=V(6TxhGtyqZ?YRb>u)0ufg(kX%CRzn+0d{)l`_2~VBXoHqf z66Z4}4l~25f5;tu`l$Sxj5~*EQD=)`4fI9JZG0?8TsRWO|O#myQ_B=CIB42Ly_uzD8{FWdIu8immZhs_b#eRSGhKlsnnbmZ3v zE*T2pCx`TO-n1&uh4ogI`8G;*_(6mHeUUv#R~1e?FT|V3!Wcq<9#R$6Rg?()2JzN5 z)>APJtAWFWN1UG^jv;1u6EhuC3q_KrKbe9~kcN>}#@}E37EhLvE%n0LZld$Rz<|yy zOKYVDTODdMDm}{Cu|wp+6TxNKEC`uLJX98X6+?7HP+ANO>21c~0KP$iFZ@)xwOTtg zk1;+=Y2CCzFG)`O^K6Gx!c-5tJ}9|oe0LOFHVA!X-J{wZg%63uZ%Z)MG2I% ze`Tw@PkMYx6w@y$(cC`utiU(JH~TEO|6O1R??*%~Rkh)F&{Om!a1p#*wtq@qj|^~2 z7Mqi8H;#;Qs%|X0Eh8o}yxVK_&=JEyoqJV3^wfn>Lq0RT1>vD>f2Nf6d@{z8K5qw2 zck8?jgw-)ebM?k}B7IC^CL}X(IwQ(5CS7L;t|b3%JswGmPF6>=8oLq@arg z4miHnsp7C8ikRFH@;WA-y9nnUEG#b|e466sKv_8w>Dl;(`HS3o^2>1g)zPbF5ud71{2)XeEJT_C~G(^Y>2&KoX+hZeuY^l|vb zmDpW?lqeA&i#4Z~b!N2L=WM3bmp~Q_;~p2SxhfqRYmk}#91I*>mGq~C`%InI-#$m3Eo%s1O{{V!7FPi-24X<- zvPgGg{E}30_>0{_Ea_Q;3<5Kgpu?T4hZvG1EK$HIvcFRI!QTIF2HK3dBP|e65BElRUGUBHW)UCW^3?sWm>BB%4i-RY+rD@C{vNO5Brk2=G zw*i{a>vShz2_(1vCgvt#Z9l>C4>}jd%7uN9+x!|sBi_cf)P=4^bd~TnSeh{Ey+%A4 zB$2PtF7^dO;rsw#@Mg0 zt{+_;+v{gAz7k!ARskkWa~D+zYI?&gdnIr&u&RLUCuG$B-c^ER^eSC`qeE^EDjLK< zfc|uru`@b626pw^$MIH_OG`9^d(Do~!5n`0HZavO*v_JdqISpKwSdq8;(pc;r-bQE z@#q*}V+7w+t+d#RswY*9bX44_e#qJQ-IVWH>&IDu%$>GaeApjnvL` zR9J&Yp+yisYqaJM!{;AJeHm5)3gM8)bc(4Kugzv+>)kVp4uy~m4Dn55l6TX*w<7rO zr}&dV1n^X{!FgKY96!BpWJ@D(;e!>qWt@((48MrcQF90*8lp{s%=VX47{h4pFmK$h zZL1Psc7ootwiojiBTP3&ZWwcwKY;)W2<;cvX>Sf$SAhH_>_f8p&`q((#hg@g=*CrO z>^NGbzd}`=38{!c;DAH64r<&@7_hlfLSU6}&pKpa=#8t9N?^6i ze@nAG=cwdlsHQ&BChvPruVT&D ziuXs9`zHbVyBT}0cGZZXam_OcLY}sbBvlc7lSW(bja6w226AC7#Cew{uiaiff?<81 zPKdgd7OvYp`1;(_ufRGYU0iS3D}Cn|bMPMYY~jWezX2^p|9lv9=%}k!fOGxg={&38 zrwN8TlZ~ZiC4ANrH7s`v_VSO}%mamvTAq!n)ctG;+olF&F+A~lc8IcH-e4;8 z&de%j(a0=yXC}A8qB2Z2X&qG-ZVlY^UbRnOT9)`~`p|E5;R8-$Is0tQd)};TSyooS zR80^wcLu7P?!D=GS{3C<>SS;J+H(=cOajP?rNFJfa(f0``LIJ13%F)um9 z>me}p`XrGQ$q=}EgYs|ge1S#eLkk2&@hGsjTY8N1Rt@A?0PF3)3*t-)=6QmtX?<*d zJ*N~)FJDjD5BmW8QsrDm{!VE8%|A371L(5$6P7b(7bco!TnkbBk2xqDf!ZHT( z>v>J9>?R(Bz7-6#xx7^%$|9F?{zp2zxRZZcV^A-5()VouB8=;}8jfGoYnsu^MRLmk z+O+O;lbMY8BhJxLgB5>N)}I;IABa1&DC#dJ(e*i!5rZ6}F;KeVCtnAuRuaN0q4ni3Hmw3$-%LpO5#`^Uz{J`IATZxH zmI=J&2-Ys+K{3PtH`y0ahc65WTiE*OTaxg3%>TvLm&Zf> zcKw%RDG@4U8Ee`QvNMy&QkY7j$P|ULW#5J=6tYZ~tT9QFb&`gxqsS1(62`u-V;#$w zeSYJ<@9%Rzzvu3I|2MCf*Z9nJu5-?Hu5;e+_a~x~Q@eH!y<%-Sma#I3y*rYxSs*y5 za+H@t3hi&fl>OaZ;W%vhBWfRi=;|4*?y1*tc|dhGZg`DXm$&!%xRIYNhR>NTFYV1$i=riL>eDkTeV*>XB(O| zQ2EHIJGnnprVH~*ov=E1riTUp%OV*VLv(3RZ;e|3zmAv|{L&TbFB^!j{Y^7~T!s}8 zW-#galM&t}BNjBR!ZSvwV)`p<9ZP(yX%x2eM=y5j4c_y5-mbJD5R%kP++h5Y^OWHTO3>qsC^pz#shB;e` zt(R;mgH@?4jL|_PPUbs#YG7W1VXnXIH7ZnFPz}e5VwK6v$jBDUU!sI1pkRx}!2AbTd*Jj+inRHEYNtl6M zr&*+lfaZE?<~>{%A^;KJx(x8)rk90uq?-^GeU@f$sPku4^ z)~a}(yZuH&DrNaKc}k?sCoyn8^;XF_A6Jiw^l6>76#Yp}$&JdY`cnDyK+%=AKG-GG zQ{$&(zWWy2jupvom^2bj3AgD;{4#w-s1)Yhl@PG1^J^J-P}ix}n+KpTGW<25HFVo7V#R66*=^o+~N>LEYA{9qZl5>Afo_kmJHB!hXc8L^J&QMtvnTQYd&<1~4?S zNu?l}lyNLV^64Pg)6Nj_lGvZX2zHQXZJBhLDe~I#qLn=n;Pbv+@7Um_X@^?X5rmby z``GTCA{|P&5;C>f#yOd!$~J9D(ELS$(@_(+08=zx_qYMc7}a%Oofuyk>a2TRT*w`% z?2Zz-#*z_m-;SvDProM3ZzL|w`Ou+b^k|LmtGxO6R*mn!)BLRvok`k@*GPm5o-cSL z+@aSILSKfAT|JDbrrrF}`z?DP==2oDT1X-9=T?j!!B!4730)8UQ2^nIi%^%V*@!7r zqVC&w6nHjzQ%L@#oQ1YAJvve_w|zYfzElIZ*J5h2PiPqnRm!cMMAB;$l(LNi+5yR} zF_D0!Sp{^Uc2H++WtiA|FG9bY_6<+wyW~zl&1-rOBztyOYu*00PFWC)=@l(^+1BF1 z$KeE5U{GhI;s?<3S6n<=)NLawDxQ^M5G$S>-5~Y;5UG|*>*@Bwq1mk$b#B8N`Ax#0 z@*vmA3#M^+GLj%BBv*q?D>AsJxBN9gn~7gmA}l5YdkZ3Kj z5p+2IVP>#NY`M_Pu%jeZ8N?vH$E^k6EGS@&bgiBTSqtk z!h<#5DUEb6n@$l=QKcv@pfliIaui^4DjsHnuD!=J?}zen zA6Gv)n{8urek#j39NxeQ6_WBXUhK+h8i-dIyM2E1jvC(!!0^!;lFEsEc|JW2{eEZ1 zbu<5m&ZU<5>>pJ9pY&}(w%kF6SRJk5kOTojzxN*w48W8>ZbV0B6_-1>-H4p)^z)-8L zjO=QC|8*{Q6A!l2%RRh=)Tm^Xh{F1Z3b7G9034Z*IR!G?>pP8F?IwK?omoG2_>MVN zZ&9Cbxbpi@r+*aznY2E?W!7r_z!0K^=jeJ-lF&pha9del6xEvth3yz{qXl#mngh5; z$P{$$6lCEto|V$1E_uI#Tqtec%}LyrZZo`DSQaF^ZK6VFHN2mIM+tft7YPPDAyVVI zGm6Miw^B__O9nQD33xYUi*0CDk-GtRV}E9p#7UXbmvP!Eeo+Y zNpgxsdKZw?UcfiDD)HMHISot9I#;&?YS;eKzD@}etQjnQRlX50Vr-s<_%^YfQ9SH~ zlIyEEXVmz7y~W@q7F89p{T^)IYdS$;H6bLFLzhsyIY3r5wo(g$dXkNa&$_~TBFl)B z;<+M1dvWkGUUrEjy}XA#(KE$hYGpP;TdtzE4yqva*dld*HMA)iMZk2eR(jL5MgET{zix;i216GOrqAD;^#n z*0l=-Gt*D0%YF*?ecoxW$aFt(2RzUGFaCJbTGj5 zGrh%=X2j&@ewYRc3tEpdH40pghJOtg)l@mr0OtzFon#%+*p&(qD$} z&4wQEg$yP+aG@2rC())TB$N?If#>y*ELm>My z0?uw%0JEjPBvwka0%9NU%&x05&SFxxknXNYOesOOJDGxC%-0GVUULA%H^Bp_$0drY z1_ou^BAmc(Bw1J&Jyo6#v$D;?pR>m$z%c_0`O~#mw4H z%-tZLgjq3dq3jTao}A;B{a3$O*ceYT(ahR9)zM>8gtG+~05`ZBzFYe9x@#`vWF=J&KP1D&Nff>EH6E!HY@#=W1`wD57p zxa);q%VHndnwn110Mam8HVX!<)bvSe5}H4Yvt+h`$ntt3#2-QppV8tNxB!XcB)3+W z`5P7h4GIu<)kRxCxAH{f~4i!Y)_2M}( z?IC<1w`RWkcHV7r^v+8S1_>JLpQotni(M@6;O=gu9JflC+HsMIeq$BO36$9KHa`53R7U*2H~N=AppUc1$EUKo#^=`Mb8S zS~KsW+}YSPT@Lz}{94o$*KhgWIN7higwgMPdAg?w!0DG1M4EiqY5>opT;a%tEwn4v zt~`R0z2)Q&*WCs9S=a^r^u;0?g0-o==yWV)xhjCr)2tT$^qAvx$I?12V{eOIzT{MGS#b6)Y<_cT7fAWCGzWln zZhr(fES?HawkZHFP^Q+^)N$cUk54wAk%l=67 z&Qo52rzfLM2Uc7<@9$@SEZP#S^C4k~VvnIUfoM&FAjf*^X)6Z_sJa}(dSIPVjx2V2 zQ+lpAUVGz7=o_rXmgk!WMvM0wMO_xsZc`9O-+?F#V*KXLj=l1EW6g*Lc{1I+I};ea zyllot_BZ$>RQlRq($SapV=Y};bs?J2wQ9XX*C^%hP_Y8+WU*(mB;K&|(38x4wB^QFhlnCWo2 zz1qiJZCy8goPOjkjxT8kLO2fT*{#pGzrB$mBjG8aQpAH}gte0dN zJ;Sg$8e*I_vFwwBYqmsC`WS4#zR6#=Xsgd!f5hAyS^OIRv^MpJ82ytE z&4vD*#Rv&Kf$~g6brGvlX&5PLu@|-|0&#aiXHl_wHfhbCVX@2?l1l6sg1d06dvJRG zFrAGt$xJ6b=p{L%X`Kla!~ZBa(pHcF*s^H8U~RS2FSTnpCY&0NniM%OUS{~kRZ#jg zCzkt3c!^cWJqdT!518r}h$MN6UX+pF~F#%2QEgSHxBj%q(k4bzhI zQ_Wr$InrxVpHa8-06OMk@n3I1B;3{Eshely+^AW;LV8}>UKmdZ>2ev!_euS)Po7=p ztJYsV_QdEd`NI)8G_48fFH(0EdVrvSOjUC#b*vJa-XC7YE=ga12*;iZW(1FX472_z zi#;_1c~twVYAvni_EJKfc}q$BLIg38F{M>zK0k44Mk6QmYc}aSLaU|jsmBHR%lebw zq%Xa99<#GYl|Ovz){Pr-dlk|4*(%ITI6(#d`ecJ=W`Ce8jkf<)PbEIykGbXi<_IZH zI8k!TytW5t;hvOG?6C4s_18Bc@km6E=dk{LOLkIOD@J!-nJ((x6^cNc?p z#}6?(;l9TOmD?Esy9?l_#ajtla$&{zjk5z9DP(z$I8RGyZt$kNhV&8&z$A%x9n>XE zz`M-t*@xf|irmnG6%L?6FLtgCgF(b)OluO&hU2%uwI9J)j4r?FMf~{_J`T~$;sk-E>BBkyZPbfKUaP(1&` z>ZLc2O6X?8OKd#PtEo{+Bll8o8`0hK=b)`I(Bf<$MhfUDPPu*w!Iue@nKWxITuAdO zX<~k+ezE5H9xW1fl{o@+P4<~ud#TA39*rkcbc$vc-io1?A9_iB5MU2)%$07mz7xrk zmKqdgTbYBtv#Vk@JEqN%^CGh7kdc{+PBcFdrm~-RhPEEStTFvk3?2@pEp-Li`kzBG zPw6}fSsPxU>%xGmNd*dcl-W zj-bVBp$@)$-tz(@+GnN)4DFB_wSu(!26+<2KUWxcM{JDMfHBo$VK*E2RxUC&h5~^f zeNIhp`0r0&j|7?aH?6hXPvM2L{fO@;h9|lg5Hl+a%SM58@i_t_#&v+ey5{{8o$+*( z|Gv@!Y!t9VN830v`_&OcFm3S@b6#N#%~w=hjr#dZ9>67658%fVmYrjs;uXG-{0}f*86-43uhOd{of`s=g z1loQX!t}&<1q^PuKCQ!cO+W26oTs{b&R{gKItRSQD@lq{T}@|c0~})h77WrbwFmqFry!p8|G(JKVDr4cR)-KE32|M@72vv z48|XcdPdNqw$i*Tqs~hBG296^q)opYIEIeI&+?K1K87p~R^DNR?#=#;16bNAd`u*M5=!{5C)dhQIr5tbB3{q8UDU(8#$|G1cs zPt;fZm@Zyykj2Uy0B!`!5PBkB=NbpK6RQaY>0|Dz;%zY(&T8GL+*-Z4JUU=_(_TKK z&iq%N0OEt#gxVI1%uxVaIDDAB`CCi*4+zfl;hRA7G^M3kV*plbVI@aXbY=q`m(@MU zM>T4DUlr$rmDaCHhO~4DIc&w2L%WVRj(=6sA&(Wi=@|J;V9K#T&u?3v&F5zzIm>eD z*T$pyR?U%Z`RE;-*ADuL`!`@&^6+}!|6n)e*zxuW)OicY1uz;nR9|inC+DNQKG3)9~zzcI>h%>60@tRi$Ne*pwTPUX|IiL32yX-UI7a&uyIWf=ko1$>!mSy6mX8+UPJxv5K`}OOMM|aBVLSzhc`RbAB()NuLrO z=5|bjUGP$VsQ$yXTj;E91M!s>!ukn-?Yvx@ei&;~a3g5vQ5@Mj%eHv-jd5rd3194L z%KoT*FuT^JEXg{jVX;Y@)^CmbV*G>-dXuW_UTiV9bdCT9Fs*QIKeM$p*N?+O1Iy0O zt>>HVX&qIChR$XVKBjL`Hft(U&}k|-NEup`x`R<`lvgDkf4J+da}PE>=jYt!SKvlf z`$ngXD~@>NA)7&TdY8b$q|%AvdFMItd@{yI0)5sVp(W0lABrmZV!m8E#tb~+@4m6B zMNlb|Q`Q*r!8NR&fLSpNLT2v%!Z@u|sQ4O(%R?YKr63@+*fj=1?-SNVXs9qPulT-f zey%0!ZFH)A@|Ex)fXd_tj&> zzMcFs@h{0dar+CS#6)x-_L+VoWJ>yRi9C!^s9~IDR|%x#mMPZhRK;%OLvwTGYg5g` zenouHy(<4AIn-)s=b4f3{bN5kioA9Xpa&is^tTYtQeW8b300uOR^wnNaILq)zt|h^ z3>W$Lf5bN;S;>7*^}(Cof6e6v#7?G~abhiQjWKjR-;alQ|o=Y zsa5BJ10bM=c=JxzHBESMU!J0e<>c6^q*C*hpZeL&8Exu;1GcF4oDp zd6AqeZ8Ch8rLhA3r*4*~o#;TR)|>SjmDD@1dC`5}o~2!M-~lar4ovKkNinG0vWjJV z**V7ymIMwmAbS*M=+J=6@h+VupX)*dF&e(l0T@MciymQHS%6_iRux%-zGw_8DwSV< z%n49^ahk=Rn&CSSJT>-B0Tz6XcjAM%mi+Kw;Wb-vQlAv`o#%Vr2HmS$wkflDlF3j~ z4=*sxUsinOQ(vTix5axt_&(A*)nALUexbjOtlyU=#HbBlN7+7t+l9M$|QZ0SGs^2>6pGWYo4 zz@k09D3*|&&MFA`ZTb~M&#NQ3sTHbSVGPFieEX&}T%qRF*-4nsX?FD_1cs}N_yH4g7{0hR_xsg0B&QnvI z)pELA;vD-Qa6aY~mY{r{Nf}OTj)(*Egg)lv(;LPIh@W~XnpmU!IG7GoI8D7=VU?gE zDR_Fz!S`O(<1{%ZTfSJ{f{Gd?x40`Aq%9*8v*tk2$|Jz?%*3}NBfck7#YZM5q%yra zXg&?sRieD*tkvvz;+;024_6y&A5Mlh#0b z3kDva<`MHp)_8b?MBMr0&Cs(aVJRc(%t(lDCn!EF(=mE48}(x~xUdPgN*5S)-nHix?fh@fWOs2ZCSFtP zv2`_Vl^_7qk@$y_3c{815sNF1?uf9uwXXE5zN@>;n>>OW`KKxjcnws|{N~Tn<4C6R zZQVcKPmT3nSN&RS#~|*g?;=(M{~@GAsAF!(@P~1V0m&NC+z9&KZp7BypTmD#^MHYUgAYRP2)neIJO9lU?yV_J|-$?*bkg>go6Rnxg zbUoqOUS0k4$Dk1|E9%kQ4am)F3u^1Jq8*CdIx9wF&FcluBTnE^h3};UkGqbs^hYe} zKfV=5mEi7VUweaW@V-Vul}Rl7ZtyW?G8^6k+V5sN`zcyA4F6J?!qu>dl6&fQd-|3Y z&{)rEbq{2}Uu9YT8{~_Be9``&>2XhFXDpOXpOps7slRo~=t+>cG=I&s~zg>QF_| z1W~H_38%l{{r{=)J82_*eG4=jDtXn%q_0!qM(@B!s}L-U&90Q5Ven&MRwU?@4|tRI zp!XzL@9Or36w*qk&{K@;dhJ+%OtwJBft>98tvw(5>CsKCmfkd5-UR>Z zldFpCs-H!-hD>4VZWSw1E`=&sMX;#KJnt?0xNmU-e4p`dJ(1ij%8Q5U#DW3`MVi>N z#ca!W%uvfZ6%XR*lkMpj-pRwmL!WZVR&f*3FiQGfbN> z%dJ9gCJ4Yt{K7LbhYvpgJA;d$dd}Mz~YU>Mt5sSSqyYxkMmP>2)byv-?ZiIY-;VnpRt!>(n-HgWV z-G#Qr)zb6lcK%*ix{+Y`3~)fMfIU%&^<+j2Em2E;_Kk~-Z5m8P=mnhe*lY_-Dq`&c zL`}kPgcNZe!|3SUOlz#=$3Fd_8m>P~amo@`E`P~;|AF&+-YmSaC}|NdD()Twr@Jh~ zT)6Q`$x$tNY32Bx+oasTTRr>pnTTg(d2f^1XHOV0A2P}Evz%{WPs&cjT$;hr1if1W zxAn>C82qbc#^imCUga9upC;*Ejq>Tb!z=`bM@(HyZW$l_*2t+fV#=?bDc2XxKjAD% zA*DHKMqBdq^Q-^G=Y*v{pJf{Iash)RukxCP4$r4`$lbU+pI5}Hf=$lmIx4IBZ;Mv3ukd!L3uPBzqWNM`e zQdpsfpLULei+|AD84egO=q@|d$ri=#yOHvBHSW2{rMVjcjsAyh^>g1sRt4-@;B<<~}1TaG8Q<5=18}NWo)h*L(@Aot41oLdd2e_N0|39GmxOk1 zM7acH)#>91t%$$ddogGB4w*!%6v)t&5tDSFx>_bEzMnjs2%S32YTLU>4sZ69nreog zM5z01?@5xyE2vzJsbtJ$-+cdBRO@s_82<1}{l2{T4($7NQSZJbS?!d;3ochpL?517 z-;TB4$rEq*oE(P)lmCa|$o?Num>|zKAK4+;a|-ZKG3G|%1y!xvTj0fX%ny4}Zxd1v z$DK}4&pbxzbWi^F1?C6jDQ!7mm{#{t;?qjeo}MCO<4LW3Y|19Qfhil^d6B|zb%#k? zua%;Q9rM7x1Wpl1=*q!NQeQu-b^9XxKNJ4HrhZ5pC=o2pG~|A8E$2xGXo|JJHDU3?VVhtz<|AM`sdFc|=;boX zDdxca3lGntN}+)q#8R!29x1|Y_@P7ElnBVqYwklkCjl(^xAOm%)xhlj?aXu;X|&<^ zuTg=#{!|Jpo6pWxNGAK?mm}(q)%lT?9yWjc0A4H}DJpK0EY82C$Xl$KFxB6b@ZLGe zTvYqzTYc%@6N3*({%?f`g%8{-Y?0@PickwPmwu9_^7k?REOB%8sT zNT|KW#g}0xi3?7xzQy+e-ruLBT|r~R53=G_qpVfQ{{CDb&1kpo!AcjrY)Jz;rsZ+={I^? z__SLv9#tgsN4C)a`oNgRbR~yl^Es!bHZ7c0m|sny)IObWYj9JfpEsE|ML=}iAwuk{ zc(}7eDZWuv${Ca57@^l7Is4U|{g>*A20Wk9C-@OVX7?%sS!<#G{=Xa*%7*tln6IgK zW?@&y(rUVqTIXMyCAHcKdnYI}`)snojJDA?T4z|2r=IN~cf##CbR6#1!0%I6Ildk^ zel+lPL;=?Lw$!%lEYGX`CcKB3cxhuHhwH7n-31ADwli5Y*Y|G-Q&ImVM3mUnm5SeqzS<(?3ue6}FWgq z5fHx|6T7*(SGI4@YoMz`SiL!buH2m%)zZ$E5h4#Pt(=J?Ya*G{;8G_Qz4;gJ> zp8+v`Ev30dicJ2tWqqcGbd2T5;(c(NK6Io{if;L3I$Gp5oSy_cMHaU3*{8 z{JVQQ9oLnQnuHGf3RH(S+E4J>LCpIeQ3?r#GX^1U-FX+oiY3JAxAT><_vC9<7dKdy zK7D(aF+P!{*g%?oG46w)jxM2)p{v`G^18Y0C&CSi>Sn~(({otjK>q9KEgiJ#*!D*a zy$>c{qU?XO;M z{UGQjIHg6y!qNR&Z;!p{Da`FdRq2{lGkvSN&!x1#+dkdwxnUGFWhrnCDCbYQlF;#e zsNiI>wt7oJK;O*T97VDH@A>uwJ{``L$gM4Gm^eCqOqCt#FzNEQ>e$zXV1D z{{`kPpUc{+Q4d*%ScF|t&>7#tWCInz3#DzBtSXg&7m9u(%}ie%QuC?EQWfapVbFZ} z>lq9Kg@2+VQh8U~hufiGvQIrb@5s>OYuYcxwKrKhr0y{m+D8K^nA8Y$;0EW=M+;_u z!4azoXM}DLOSJMUw)X(zAN0;?$I>_UDEC0Fv&SdApS<}?ASYQidNkP`KU@sw+q@}D?9RJKuX5Ub zUaB(Js{Vd8BR}5k#8v;39DdQfI9_F8ZN3{CJsfcLnvK3ZP@fbFP0BcT^lKa+vPFYK zTb@r<%lMhq_UkC!hc&D2o;vq}=HC47w}#YTeIyF+x`}4pjn^@I!26}TEo>HxKpSGt z2O~8V_;jf$>zG^HdHvjesZsZ!hTQ21(tZcl-9YM4=aAVA3S*g@Xb8O=+B{Yls(}Pn_QKnVl*wW?Sg>&e9~l( zy7jG*LDD_Hz93Ov6?wI)R9NRV5kXT{0nh>pZiy-YQT7cP1t|37nw!Y;9u?&0pJvu9E`#9}xks84 zj8SJH+k&qv;ppUM7T+awVmEYRyG5gcaO`-POSs1N>D;QiIfdUWUJ9RiK+W&$;7z`v z0U?RC({YLp)HRuF@9+6yYe13NX^;VA;Jr8v><8ao@S z459LF3JyQdJe}vm-o%-G8FK*Wy<T!b%p-!EM*hOca^t}_RrgK6Lq?xJ;cneCBbKZcBN<@{!{aO%#K9Tt2mW>AS$E*4x< ztbUl)aOBiBoUsTe&WeE?^u5>00_uyW|A$%qe>07yHxy}-8P(fXCb5Clo#zvo716@B#n<(HH+NzU3DyturjPI~GdfnlI7;2`~ zW#rC^Cf_TBj7~>d54QWw2?_!Hz6rDI)k+V~BV(r$nOc@wDEf_#=J=0dX zCzAGiMq>Bd5&;gQ{on`0)29H8sijWOu&r?Cxjk6^b{As^vea7J#lXQ(OI)gY@cc&?>muM;*bNQk%KIgsCfPCC1?KWDj$opIfUMt{Ic_oW z7iJ%B7#lZk7dJpdhX<5A+sMSX4gIBr7@yPIALR8OkFXHeiB{u9AqzSaT6**)FrtB# z?|p2i-B+6T*5qEYhlZrr&e_wZg#v(W->kMjN9nnVQup%(HX4Sn&9FxG>J9M-QVb%U zvCCvk)SKSyfp?w-|0T2WA8$y?i*6i%8)$V%fmd93X{>B^6Qrj`?40O(ct;9*&P=cf^qo%`5*-Yx2HY{WKH@|L9b zEnTFD9c`S19}ppmg%yZ}OTyGsb= zx-9vw)8A3f;SA|WxFnaTR6Xj0InrEP>I%)0JL&A>JkiP*@h8G38m}JyZ4-I%ao?`_ zKn2FDl$xHiWxwk;w)?j0?)qCHG5I*P7EKJ@-Iv92<91t|7%6M`fX5ui+Qg=XNSFK%t zYVorCg)!N*PQ$K4k0;Bp@kd``mp=NO%TV%vKGtcl3EeX;<*Mhlgx%CMP?COGPwBqv z;YxI|a4}B*Ax02ZE5(SQE==F?F*;wN=0x)bEm`&5ERg2Nd$~I8LyJL>vHCWM*S$~>4acNFGSp{w+s0HFT7ByTX&~P(}}ulThc$?o zXw;p$T=Ea;3inWY7lN^b@F;_j-$2M46$k>1@$=IzfH?yjRZl}yG`y_~+cb6}wY&Ok_pKN6D6an{(+I1uh@I zy)@yt=un;!G2!Fbx)rN?P~F*Eq`4P2ih_O_LVPnG-%g=f3NcygY!PDu(Gh6+2%6r% z9;^BspfeYM*`wK^fg2&qv?f02Tni-NCu0`Om~BE+teN;G5XG3;`W10;>$o`V+w>le z6GSUuZXy8gL zNBCukM4Loj8T?%WnPfi<%cptAfyOs97%dZ|jlDXVy0Nzs#zp{hZDPzl&ZY%&i(U-d zL3&&sMboR8!~-)(I*Mg+1ib=QNoKP26Q-NcWDTZMRf{VxV{cah4B`Z1#1@Yxv6MUx zz_iq3|09rD>sn82go8XbyG6DOWa!IBOC1IubZZ*QMjQ$ksXm*yvg0FyEmi{=uP$8el?T7*dQ(TCGkU5emePM`SX0DPS5*E3k{m(%W1BFi3D_AT?=iZwU=_ zuCu%JJ=ga@x33{-Z_r<2{MX4x#uWZ1pZweBxu8mH%LT`n2rDYAWD4?l2U+$0Kp{9+ zsytu-o*LPRiGvH9AzWPxwfNzQO_wU(t1qbHg4^qNBwOre+9uQ@0uBs3|8Y`TT^7#q z*6Ykb4mo;mn8sX4D-MmBvdco1KVF@x{bLGqZZ4i2D zn$9+!3L2}ATZ#jwWMBhdg@QEVCqtYbC>h`AXt~t5q57@FC~lu--b9HbZnrc8^=BTC;9opn68-Uh6h!I>AjE0fMn~pD zC$J>O$7W*GZ~N9^1gbUf1duX~9%0(jkN5ST`=bN!2a2*ixxA?V#N>%lhi4H;ubcUL z_!ySR79{&p_@w|BYX&X? zeb@efj){M4YhxjIoh$uuqSf!4%*{NNcN6^+YaAug$3AeEH{SP0r;ccC(dGhY&7Ru7 zvTIgTY(EM5cz?k$U8L_T+CjWrX%&6*%l|%l{_QHs0@n?KyC}c=&@4Fj4)Wf1v^`w- z3jgToj*{!fjxYU=4bIyuo4-B>6&#$;FVxs==@lAT?h+|y_*ql8qGVdheL}vmm;ZP& zV9hU$ajkNOz7nBxgHFCybrxRW^_2&bq&X15$>l2r0RC=a*O3XE>7}l?4Djg1^+%(+ zA$Lbs+Poa~_j9DF=jf$9$`SGbm%#1Y3zTMU&aIvKbtlTshaD4#&>yAsCO~*yK#rr3 zT}bYoKc$-JMpN#0phD5rB@o_7m!Pm+u*?{J{=J^h{QK(Z=xJ46E|ReN<)e<1jxAs@ z)tBEs!u58Ti{@KVmrQ z5=@GJFz_kr2JgNCKNL&2r6u34&<>=j% zy8^B-e6r9<%t=S^dDUv34iWUu_Kc%T)wa@dVtcioQ<+}LmRrtyTt!5AuJ8--i%rf3 zH1!9iQ$Ag0N&qc7?OU;4Nrj!QxwmG;i6Ab||LVS%1aE5Gw4Ofm#HfUT&SyM?tu+pZ zXe;5|Wu|g&u4ca0fr5)vY7^1aj8OtJ{F z6{{Zh@VJb{jMxoxeqQwTLeKLH%?`S+R5=MHS{gXrpJ>0Y^cOZxT{eI7goRU2!OZG> z5WzuB4)s0_4`yi(EFoX+qrkYxvOVf?c1Bt+4AL7={9Hre8>qC5+ zspXhJS{$k%G}?gX=m{IJ#bV%=f_CHQ|Lmm~*%d+JL7$ia{Ogi zj%&4Nw9{@J=7!mGw>4JzP8QQm(skHI&N&S@91wmY(DfNu%|qPEVQt*J22P@aSiszb zFxsQgq{Em0CfQf;lion|?*{iK^uaa?_vZp0FPc#@dNME22Kx}2@&Wi8^XE?S=V_XV zg>cN5yqwEmDBa+r>AXO4{y@Cw9>s8nAFd!?ehWVO_HekW13?56%05Z<)>EYu3&#DJ z1vz`wYwD$49!S=oa>P>!HlgPUhl>y9$`$J6%H$q@KpHI86X}xZToQ7M8sqDxTw`H&lQpxTIa|M8_L%`~d=UC}u+bX)klEOd-%>^HW7wS&X7J-H8v@QPG z5oZO2A`%h!GT`HUmm-jgT)mAzH|vi<$nC6K0_+=2MIZY&CK2Q(k@&S-en)o0x+5-Z z%Mr5}J{fmrWTqC$#hJ6I)Cp52N+Lm zn?Ij|IJzGRg>=HXe2-=PtYbf-rWhLPg^ebBnSC&SBl-Jy$Whgh9$Wsdkd>W^&rHa zRH&!b2d6Hy?>rpeYV)eUE?i6O(!1i)+&FlyB@rGR!`)`%6dFF0D4gbJ&O^O}3#2ax z7SD~>K;;&2J_8{Gh%QNHFC=(2<7?}m>YYpM~^-V8q*N-_DN!|M&e@2 z=aYoJ?B41{s6Kc)Z_{3&3r&}FHeXh@j3qo}w!@~cw*C1xV2vg>503S{3JeeKsqID# zgqH0nt>usZ9LgO#Vl&iCx+41XG&W}_cVCsAZQawlI5L;(tAOUB^Eab_Z}}bRsL^J< zts(R$CW$9$^l$Pfl)XD*yp-{E?W6rq@t(@`o}U+dOASH{-{qbDIM|X2P{`*e^C;?% zx^+~i-EHrT-ZH+aRHh*GAfY{}D;@q>F$`cxGoVusm&M-tqeEfMCs~CL;yo<)f!_OC zcjh@byL8b5u1CC9`m{sNeU~pb*(}QsAm^Pxt|IOB`?1E?9f|U(ny$#X-bD=qF%EaSiik{hBJ+X}3!Kc35(b+*J^E5Cg~72IRy)rp*l{^`VfLC?8UB3J69@Ki@&(c z@JL)mp=x6BRMo(CRx#seMt!TAF@R7qCRpKmV&cd*v7;J}2laiJpPS-xwVZW@WyYZc zZ!6?qPURSX!F*bl`Q!*}NFzed{LPYvxa`70hyHbmV;%Q5j{X#}lrp@qg}L2n_0XpU z`C6U&*{S0iI1#IhFLn`VM^yZ54Smd1D2M%x2VI%OYm}oFb{|JIOZaXv=4UgCz!KkajP{``-5~eGY~5?XJTO&wKyz*J^4! z$1Q>zZ1nIUOW;0Z>P_a&UGGZtF8RrAGb;YR=4m6T*dCslbLt&RBX!Y`VXt|ir-%Hu zv-~=~gG*2`%4v+*t~yj`3G>abtM-5N9qFfvZ0mPmH`i}6FHdA@rv~E`3C8R-uKecT zu})l%NrS4E$tcx@3O?6qu>p+$alQT@&I+3=thYs;n-y_B;sXq0oQEIJ{+n7f@mc24 z%r0w6*JgboWBbxx^{hE^cy>zos?b%*qk$I@2a}Z2S)y$n&7^)&*Eqcv)^&+d;(Fe> zZw_;J6%29(j-r(oPoVx7SZ}i$YX=Y~?y4#5D1pvKQ0~!JJsQtm*3UfMqFf7UUwtdG z-&{HVEjRXBV(hn;M|Wm0$5x;`su7t)>k=7aKHd82-&o`(+Y=L(O)^>K1`fqQ#Y*%n z^XHuo7k!Z-a>(ssRRY_{=(&&F-Y-1aM(Qr^%#Ygy-w&Z{$q=K|K0Sbic}Z#^DB&JA z{+RO`tGPdk=F;DRmGeMT)_D%|JTs%uotilz&C@cxs;TsC8Mc#6W;yhDxg17EI=R{0 z(G$B3vK?8;*m`1c;GY*JRJHP2%pBW_GWxY+>9>N@&f*T8{9+ZTm$Pc zoK)G8BUmpg?3VGse6pjtLt)g=M4(Tc8jQ$H8bbfMdUKY2#)#WATe9BPz$KX~GFOu>V;D8`-r@WrQ zSO0-@K?145`Fq)d3; zN8k6G(fKv=W4_^!M-C6&$-ehp)_GlPtxdoUne@9?WrRs1!o=$NAJ&$$ zu{g;BuPP~IOk*3+9RY}cR*jm2td|u}PZO7UWQ-i(<2tO*_+oo%v zuKvS`5i2@yFM+!=Uz@jSL~pO?)ycOs-C=!keXsnVrZ9tuZn^41aOL9djLtTn zk!zLqr>`(cpM4M?!l>nK>t5JJy|eosC}$ohjqe<@t*YI2AD`V^T`A>8*PkYnMxDdb zwN-s+^*iXIGO}>NhrN{H%<$yb;n?>E-tXhQ$8WoDFtbK24G^>90H$A} zdKGl<7=<-U+*#skQ$(=CrrWQmfI2&5fjBoF7bt(?kTm)a-%xdYv=>Sxj9L@@>jew% z2&}t7z-K{{vvshqM88d8sn4R9YS_!tTD2k!I2QvM_qQ5arC`YNHVSfKz4 zlf8c{@-xR#+qui^u%=jhecoe|ogFRmSVT*HTZ&hEp!9epRUGmDlQ{CUF$b7>YSWB# zJ$-)^10?$4eGQd))kz!tUR*qX8K&v&@_9O6;}uA=ZbZQC@vXMU!a~zwGcWRSK>_O= zUcggFYx)6a?$rD!YWTylNu%kGkKY7%X9p2jQ@;15*1sdm?B!KVmCT#{;K~|O#dw@H z;!EAT(CMK@3loB|lR#Ck%LWfcq#&j9f#Od{wK>!Wx7$(Hl22OPnC}9J-?)VP!>ov= zd$S^1gZ_t`Xt4G=pr&#GPzHf@e#SucTQK1P@;n1eOGb!d-h+Vm6urKqlulX|CbDRl z1;Cz1eEA*S9Fg!q1!aMbaAKk&UJfbx+)DJ~J8NUM^ zUWEPlQkTrw5y^9`KV&`x!?e$wIQr+YoKc<` z%rS7Ua9MP6l2-woyFD;}o=QNwAcB#^AFj+10t3hoEd*hKGP}8i1SPiNS17ZF`l7iD zpk6Tx-FbveL2|r}*jlwv~2{RhfV@?^BVnP`}moc_-U4W3XLIm10bB`oJiAFyB z!-g#UIDV^cQ)CIEM*`i}!77#N(kMN3zw#HNN>^nAtH{OCb`yNeW@J?G(}hZp&T+3V zis1@`AyznO8nD>V^amo`C!pt1JB8|&SnDOTcE7lppa`aj!F)$myJ-%Uc#er!%aQs0pNud0&tUf7A#MWm{>8OO_NvFz7dkd` zxJW(7zM9IBe*wkXU)(U{K2h*Lo*ka93ZuGtOz6|AXwN(?uuZa}Ac_F0+5-Dfa7k(( zey?xSrNIsj_tf;m(PR6p@>DJ&6T~wtcqAP@tv?HEczZ)|{mfugYMi2dGF3Eww0pyK zd-gD$m&H9pH?^kfv|YYwz|sWOk$d~w!EtvzLX8PXr%5O2K}*(=n}Fk2HJX{eaeoZO zpXvM%?ht`M7aeMWY?mY=md{KE(TGM zpatN>ZHiJ@SCYejQ{(FO=>UgaVbp6Yc;e;MEOKmubkW`&iLaOUBF0mOlrft3= zb;2~(E?K?)|gHf#~!!&#!}P}#ep&w|4d2PpCX z14gfDiwDjEDn#IKYR0Dah^zPQ?EOC*lAf4)Eas z9}e*003QzU;lO=3a3B7gEAXHnB&AWWokTh7fREs z2tXc(h9#iadUg;(VktcFiJ14tRyqfot6|ykp4U?qa8uR%w$6O@rMS$8mT1XHgqqX> ztDr51{jv(C3Tc`QB?^2t%ewwQUHo6)lg|}`C@;B1$(5FBnAptW*d1!y%m6u*^S>yt zp}8s~s1PnU%_YDg#WZ_4QUcSiYmy!J$ji|_P1a<(=f_SWvE5BX9Vhd@{PO*ahsX-L zHy(cCTw1gx@?trcd^-K)%0(Sz497^p5AEWyb1g?{qWM~GHB2Ge_})*oSioQUL^-j0 znOs$tOMa2u7i(y5$s3|Sia%#i)!C&^)uir0_O;$;c`SSL zX^ zy#hltbDEmZjYECilU?U-Ps13S%#bxs3?5N1Mp-Ys5JWbzcBFFxy!gZ<<=<20*RN-J z)<|I1P##7Qj8^xxZFg&}b}@P%g>1kyazp~M-RM(&O0!*+@WA}+ zAv!N-xhyMa6!MWcZ4>qN8IUh!*M2)b_v?-?Gm;#En-VhlRur>q&@;L;GN&>{g+KCP zm^-7Wy`OqI{b>{k;Ckd!2@;*VA`OT@#7`#;_NSG;9uaE*L?3#7?th)~k7>{;8l`Vu z6M*T?)(gNOBZ?UvJk_C1G?YCxi|4Z_Rv<;&qHRS!7y+TDHkD0PL}y;JD@yQ>QoV~$@(=JRIy7>~}o3|SoPX5FFSkb(;gx zsBKGo;GWY9hWiUlZP<9TXu&EsL49wiAU?T#7LuN?uD$w{+6by2YtmCQ$6~GhCiQHO zz@RXPCa3LYZuE6!*$pu7F#eqo1WkR>$XVOyFV!>C&ti@2V<9#VI}X?QhU<1X{c#;< zl8tDGiwM0ZcG)hkhL;4yM_K;eRaSsKa?XqoD;Rs%%fSefVD45bMPQf3N}+c=Fm2o( z0r|4Ktx3t3=68-+8utF$mj82&1+otI5R5Y8-k%{|O8WMu{tnc9>DCpxYcHZa`WB77 zl5=!4Vvw3o;`cOJ{3{PhxdYS} zalGFus#;*KyC)SYP|2K}!V(fU6U`b@u&R6W1^^1JFjVILy2w@J*PZ-jvn7 zFFMY8S`yWEIM?edz6aiEt@Ycv^{g?4MPoJE^|Y#k870~k$-EOumPv=J-WuG|jF~L| z8a-JDU}Db}V%9hxYbYHLkd3HJlp-MYS`|JDuH@V6+f3`Ji0)$GvbYX{8pYuq^v3T` zIKji4fUrVsLKm6Z0C?8=Yc1ROoZ@z53oV~etkZS4g37%ULc_8AXze@LjmhSfiVu

    ceJ{mB$Z7L3@>o_Zx7rQ!ObbSCt6S z%yg|oG5)6ZV!z)5AvA#`k-y)~ai>&hIAAG(6$O*i0a!bsZx{E)iddmIvXOR+*3m6y za|zkjsoc>exj(dv^jR$<@6#CYbJ$-0>i?oUUMf*dw#xG>B(23VLD0j=A*z*gjwQy2 z&dt2TTJKLWf$-yVr^n7$v*^gWjZr-xp>Mp+X<&Fwr3J0_}$E%}itG z+wDbDzaD%1h1+L(hItUeqZX~J4`;`3V#`w+5<$OT?4TQbfrdqbD>5XfTn->0Ilj1*I znzgb3T)2h+zgNF|MCPL@Vc^E_$VCI@QO_veYkfsz9WGeD4gO2A?wuIA7XLRa>h

  1. 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 nlR5s6&u;$z{LKaVMiHYTFuB`kqh8kv@Z diff --git a/versioned_docs/version-v6/angular/overview.md b/versioned_docs/version-v6/angular/overview.md index b457d1c402b..dbf23bba513 100644 --- a/versioned_docs/version-v6/angular/overview.md +++ b/versioned_docs/version-v6/angular/overview.md @@ -14,29 +14,58 @@ sidebar_label: Overview import DocsCard from '@components/global/DocsCard'; import DocsCards from '@components/global/DocsCards'; -`@ionic/angular` combines the core Ionic experience with the tooling and APIs that are tailored to Angular Developers. +`@ionic/angular` brings the full power of the Ionic Framework to Angular developers. It offers seamless integration with the Angular ecosystem, so you can build high-quality cross-platform apps using familiar Angular tools, components, and best practices. You also get access to Ionic's extensive UI library and native capabilities. ## Angular Version Support -Ionic v6 supports Angular v12-v15. As part of their upgrade strategy, Angular has built-in tooling to help automate upgrades and provide feedback to developers whenever changes to an API occurred. This reduces update friction and keeps the ecosystem in a evergreen state. +Ionic Angular v6 supports Angular versions 12 through 15. For detailed information on supported versions and our support policy, see the [Ionic Angular Support Policy](/docs/reference/support#ionic-angular). ## Angular Tooling -With Ionic 4+, the official Angular stack for building an app and routing are used, so your app can fall in-line with the rest of the great Angular ecosystem. In cases where more opinionated features are needed, Ionic provides `@ionic/angular-toolkit`, which builds and integrates with the [official Angular CLI](https://angular.io/cli) and provides features that are specific to `@ionic/angular` apps. +Ionic uses the official Angular stack for building apps and routing, so your app can fall in line with the rest of the Angular ecosystem. In cases where more opinionated features are needed, Ionic provides `@ionic/angular-toolkit`, which builds and integrates with the [official Angular CLI](https://angular.io/cli) and provides features that are specific to `@ionic/angular` apps. + +## Native Tooling + +[Capacitor](https://capacitorjs.com) is the official cross-platform runtime for Ionic Angular, enabling your apps to run natively on iOS, Android, and the web with a single codebase. + +## Installation + +Before you begin, make sure you have [Node.js](https://nodejs.org/) (which includes npm) installed on your machine. + +```shell-session +$ npm install -g @ionic/cli +$ ionic start myApp tabs --type angular + +$ cd myApp +$ ionic serve â–ˆ +``` ## Resources - -

    Learn the fundamentals you need to know to start building amazing apps with Ionic Framework.

    -
    - -

    Learn the basics of navigation inside your app with Ionic and Angular Router

    + +

    Build a real Photo Gallery app with Ionic Angular and native device features.

    +
    + + +

    Learn more about Angular's core concepts, tools, and best practices from the official Angular documentation.

    +
    + + +

    Discover how to handle routing and navigation in Ionic Angular apps using the Angular Router.

    +
    + + +

    Explore Ionic's rich library of UI components for building beautiful apps.

    +
    + + +

    Learn how to customize the look and feel of your app with Ionic's powerful theming system.

    - -

    Learn about using Ionic lifecycle events in class components and with hooks

    + +

    Explore how to access native device features and deploy your app to iOS, Android, and the web with Capacitor.

    diff --git a/versioned_docs/version-v6/react.md b/versioned_docs/version-v6/react.md deleted file mode 100644 index 38f187d4545..00000000000 --- a/versioned_docs/version-v6/react.md +++ /dev/null @@ -1,147 +0,0 @@ ---- -title: Ionic React -sidebar_label: Overview -hide_title: true -hide_table_of_contents: true ---- - -import PageStyles from '@components/page/react/PageStyles'; - -import DocsCard from '@components/global/DocsCard'; -import DocsCards from '@components/global/DocsCards'; - - - Create an Ionic React App: Framework and Documentation - - - - - -
    -
    -

    One Codebase
    Any Platform
    Just React

    - -- ✓ 100+ mobile optimized React UI components -- ✓ Standard React tooling with react-dom -- ✓ iOS / Android / Electron / PWA - -[Get Started](#installation) - -
    - -
    - -
    -
    - -### Build awesome apps across mobile, desktop, and web, with the React you know and love. - -Ionic React is native React version of Ionic Framework, the free, open source SDK powering millions of mission-critical apps all over the world. - -It's everything you need to ship award-winning apps for any platform, with React. - -
    - -
    - -## Amazing Design - -Choose from over 100 beautiful, mobile-ready UI components, animations, and gestures, lightweight and customized to fit your brand. - -[Explore UI components](/docs/components) - -
    - -
    - -
    - -
    - -
    - -
    - -## Familiar tooling - -Ionic React projects are just like React projects, leveraging [react-dom](https://reactjs.org/docs/react-dom.html) and with setup normally found in a [Create React App (CRA)](https://github.com/facebook/create-react-app) app. For [routing and navigation](/docs/react/navigation), React Router is used under the hood. -Compatible with React version 16.8 and above. - -
    - -
    - -
    - -
    - -
    - -
    - -## More than mobile - -Deploy your Ionic React projects to native iOS, Android, Electron, and the web as a Progressive Web App, using [Capacitor](https://capacitorjs.com), a modern native runtime. All with one shared codebase. - -
    - -
    - -
    - -
    - -
    - -
    - -## Just React - -At the end of the day, it's just React. Ionic React uses open web standards and built-in browser capabilities, so it's compatible with any of the millions of web libraries out there. - -
    - -
    - -
    - -
    - -## Installation - -```shell-session -$ npm install -g @ionic/cli -$ ionic start myApp tabs --type react - -$ ionic serve â–ˆ -``` - -## Resources - - - -

    Learn the fundamentals you need to know to start building amazing apps with Ionic Framework.

    -
    - - -

    Use individual components or the complete app experience.

    -
    - - -

    Learn the basics of navigation inside your app with Ionic and React Router

    -
    - - -

    Learn about using Ionic lifecycle events in class components and with hooks

    -
    - -
    - -
    diff --git a/versioned_docs/version-v6/react/overview.md b/versioned_docs/version-v6/react/overview.md new file mode 100644 index 00000000000..2eabc376084 --- /dev/null +++ b/versioned_docs/version-v6/react/overview.md @@ -0,0 +1,69 @@ +--- +title: 'Ionic React Overview' +sidebar_label: Overview +--- + + + Ionic React Overview | React Version Support and Tooling + + + +import DocsCard from '@components/global/DocsCard'; +import DocsCards from '@components/global/DocsCards'; + +`@ionic/react` brings the full power of the Ionic Framework to React developers. It offers seamless integration with the React ecosystem, so you can build high-quality cross-platform apps using familiar React tools, components, and best practices. You also get access to Ionic's extensive UI library and native capabilities. + +## React Version Support + +Ionic React supports the latest versions of React. For detailed information on supported versions and our support policy, see the [Ionic React Support Policy](/docs/reference/support#ionic-react). + +## React Tooling + +Ionic React works seamlessly with the React CLI and popular React tooling. You can use your favorite libraries for state management, testing, and more. Ionic React is designed to fit naturally into the React ecosystem, so you can use tools like Create React App, Vite, or Next.js to scaffold and build your apps. + +## Native Tooling + +[Capacitor](https://capacitorjs.com) is the official cross-platform runtime for Ionic Angular, enabling your apps to run natively on iOS, Android, and the web with a single codebase. + +## Installation + +```shell-session +$ npm install -g @ionic/cli +$ ionic start myApp tabs --type react + +$ cd myApp +$ ionic serve â–ˆ +``` + +## Resources + + + + +

    Quickly set up your first Ionic React app and learn the basics of the framework and CLI.

    +
    + + +

    Learn more about React's core concepts, tools, and best practices from the official React documentation.

    +
    + + +

    Discover how to handle routing and navigation in Ionic React apps using the React Router.

    +
    + + +

    Explore Ionic's rich library of UI components for building beautiful apps.

    +
    + + +

    Learn how to customize the look and feel of your app with Ionic's powerful theming system.

    +
    + + +

    Explore how to access native device features and deploy your app to iOS, Android, and the web with Capacitor.

    +
    + +
    diff --git a/versioned_docs/version-v6/react/performance.md b/versioned_docs/version-v6/react/performance.md index ab4b90e2648..549aa82f7df 100644 --- a/versioned_docs/version-v6/react/performance.md +++ b/versioned_docs/version-v6/react/performance.md @@ -1,6 +1,6 @@ --- -sidebar_label: Performance title: React Performance +sidebar_label: Performance --- diff --git a/versioned_docs/version-v6/react/quickstart.md b/versioned_docs/version-v6/react/quickstart.md index f571f212374..d0242135d51 100644 --- a/versioned_docs/version-v6/react/quickstart.md +++ b/versioned_docs/version-v6/react/quickstart.md @@ -1,396 +1,344 @@ --- -title: Intro Ionic React Quickstart +title: Ionic React Quickstart sidebar_label: Quickstart --- - Intro to React Quickstart Using Ionic CLI: React Basics + Ionic React Quickstart Using Ionic CLI: React Basics -## What is Ionic Framework? +import DocsCard from '@components/global/DocsCard'; +import DocsCards from '@components/global/DocsCards'; -First off, if you're new here, welcome! Ionic is a free and open source component library for building apps that run on iOS, Android, Electron, and the Web. You write your app once using familiar technologies (HTML, CSS, JavaScript) and deploy to any platform. +Welcome! This guide will walk you through the basics of Ionic React development. You'll learn how to set up your development environment, generate a simple project, explore the project structure, and understand how Ionic components work. This is perfect for getting familiar with Ionic React before building your first real app. -Along with the UI components, Ionic also provides a command line tool for creating new apps, as well as deploying to the various platforms we support. +If you're looking for a high-level overview of what Ionic React is and how it fits into the React ecosystem, see the [Ionic React Overview](overview). -In this guide, we'll go over the basics of both React and Ionic, including any Ionic specific features. If you're familiar with React, enjoy the guide and learn something new about Ionic. If you're not familiar with either, no worries! This guide will cover the basics and provide enough information to get an app up and running. +## Prerequisites -## Creating a project with the Ionic CLI +Before you begin, make sure you have Node.js and npm installed on your machine. +You can check by running: -To begin, let's install the latest version of the Ionic CLI. +```shell +node -v +npm -v +``` + +If you don't have Node.js and npm, [download Node.js here](https://nodejs.org/en/download) (which includes npm). + +## Create a Project with the Ionic CLI + +First, install the latest [Ionic CLI](../cli): ```shell npm install -g @ionic/cli ``` -From here, the global command `ionic` will allow for the creation of a React project with Ionic and any other dependencies. To create a new project, run the following command: +Then, run the following commands to create and run a new project: ```shell -ionic start myApp blank --type=react +ionic start myApp blank --type react + cd myApp +ionic serve ``` -From here, we run `ionic serve` and have our project running in the browser. +After running `ionic serve`, your project will open in the browser. -## A look at a React Component +![Screenshot of the Ionic React Home page](/img/guides/quickstart/home-page.png 'Ionic React Home Component') -The base of our app will be in the `src` directory, and the main entry point will be our `index.tsx`. If we open our project in a code editor and open `src/index.tsx`, we should see the following: +## Explore the Project Structure -```tsx -import React from 'react'; -import ReactDOM from 'react-dom'; -import App from './App'; +Your new app's `src` directory will look like this: -ReactDOM.render(, document.getElementById('root')); +```shell +├── App.tsx +├── components +│   ├── ExploreContainer.css +│   └── ExploreContainer.tsx +├── main.tsx +└── pages +    ├── Home.css +    └── Home.tsx ``` -So what's going on here? Well, the first three lines are pulling in some dependencies. The first being React itself. This allows us to write components in an HTML-like syntax called JSX. We'll talk about JSX a bit later on. +:::info +All file paths in the examples below are relative to the `src/` directory. +::: -The second import is for ReactDOM. The `ReactDOM.render` method is the browser/DOM specific way of taking our components and rendering it to a specified DOM node. +Let's walk through these files to understand the app's structure. -The last import is the root component for our app, simply named `App`. This is our first React component and will be used in the bootstrapping process for our React app. +## View the App Component -If we open `App.tsx`, we should see the following. +The root of your app is defined in `App.tsx`: ```tsx -import React from 'react'; -import { Route } from 'react-router-dom'; -import { IonApp, IonRouterOutlet } from '@ionic/react'; +import { Redirect, Route } from 'react-router-dom'; +import { IonApp, IonRouterOutlet, setupIonicReact } from '@ionic/react'; import { IonReactRouter } from '@ionic/react-router'; import Home from './pages/Home'; -/* Core CSS required for Ionic components to work properly */ -import '@ionic/react/css/core.css'; +// ..CSS imports... + +setupIonicReact(); const App: React.FC = () => ( - - } /> + + + + + + ); -``` -At first glance, it may look like a lot is going on, so let's break it down, starting with the first group of imports. - -```tsx -import React from 'react'; -import { Route } from 'react-router-dom'; -import { IonApp, IonRouterOutlet } from '@ionic/react'; -import { IonReactRouter } from '@ionic/react-router'; -import Home from './pages/Home'; +export default App; ``` -Similar to `index.tsx`, we first must import React to use JSX. - -The next import is from `react-router-dom`. We're importing Route, which is how we’ll match the app’s URL with the components we want to render +This sets up the root of your application, using Ionic's `IonApp` and `IonReactRouter` components. The `IonRouterOutlet` is where your pages will be displayed. -Following ReactRouter, we next have our first imports for Ionic. To use a component in React, you must first import it. So for Ionic, this means anytime we want to use a Button or a Card, it must be added to our imports. In the case of our App component, we're only using `IonApp`, `IonRouterOutlet`, and `IonReactRouter`. +## View Routes -`IonReactRouter` is a component that wraps ReactRouter’s BrowserRouter component. It more or less behaves the same as BrowserRouter with a few differences. We have a deeper guide that goes over these differences in our [React Navigation Docs](navigation.md). - -The last important import is the `Home` component import. This is a component that we will be able to navigate to in our app. We'll look at the navigation part a bit later. - -The CSS import is pulling in the utility styles from Ionic for things like padding, typography, etc. - -After reviewing all of the imports, we now get to our first look at a React Component: +Routes are defined within the `IonRouterOutlet` in `App.tsx`: ```tsx -const App: React.FC = () => ( - - - - - } /> - - - -); + + + + + + + + ``` -This React component sets up the initial routing for our app, as well as include some core Ionic components for animations and layout (IonRouterOutlet and IonApp). One thing that stands out is that in React, to do data-binding, the value is passed in curly braces (`{}`). So in the `Route` component, we can set the value of `component` to the `Home` component from earlier. This is how React will know that that value is not a string, but a reference to a component. - -:::note -What's important to note here is that these are all standard React DOM libraries, meaning there's no custom integration layer or transpilation step. -::: - -## A component with style +When you visit the root URL (`/`), the `Home` component will be loaded. -Now the `App` does not really have a lot to modify here. It's a basic example of a container component. With the Router logic set, all it's responsible for is to render a component that matches the given URL route. Since we already have one component/router setup, let's go ahead and modify our `Home` component. +## View the Home Page -Currently, the `Home` component looks like so: - -![The Home component displayed in a web browser with the text 'The world is your oyster'.](/img/guides/react/first-app/home-route.png 'Ionic React Home Component') +The Home page component, defined in `pages/Home.tsx`, imports the Ionic components and defines the page template: ```tsx import { IonContent, IonHeader, IonPage, IonTitle, IonToolbar } from '@ionic/react'; -import React from 'react'; +import ExploreContainer from '../components/ExploreContainer'; +import './Home.css'; const Home: React.FC = () => { return ( - Ionic Blank + Blank - - The world is your oyster. -
    + + + + Blank + + + ); }; -``` -Much like the `App` component we started with, we have some imports for specific Ionic components, an import for React, and then our React component itself. - -`IonPage` is the base component for all pages (a component with a route/URL), and includes some common building blocks of a full-screen component, like header, title, and content components. - -:::note -When creating your own pages, don't forget to have `IonPage` be the root component for them. Having `IonPage` be the root component is important because it helps ensure transitions work properly as well as provides the base CSS the Ionic components rely on. -::: - -`IonHeader` is a bit self explanatory. It's a component that is meant to exist at the top of the page. `IonHeader` itself doesn't do much by itself, aside from handling some flexbox-based layout. It's meant to hold other components, like `IonToolbar` or `IonSearchbar`. - -`IonContent` is, as its name suggests, the main content area for our page. It's responsible for providing the scrollable content that users will interact with, plus any scroll events that could be used in an app. - -Our current content is relatively simple but does not contain anything that could be used in a real app, so let's change that. - -:::note -For brevity, we're excluding repeating part of our component, like the function declaration or import statements for other components. -::: - -```tsx - - ... - - - - - -

    Create Idea

    - Run Idea by Brandy -
    - - 5 Days - -
    -
    -
    -
    +export default Home; ``` -Here in our `IonContent`, we're adding an `IonList` and a much more involved `IonItem` component. Let's look at `IonItem`, as it's the centerpiece here. - -```tsx - - - -

    Create Idea

    - Run Idea by Brandy -
    - - 5 Days - -
    -``` +This creates a page with a header and scrollable content area. The `IonPage` component provides the basic page structure and must be used on every page. The second header shows a [collapsible large title](/docs/api/title#collapsible-large-titles) that displays when at the top of the content, then condenses to show the smaller title in the first header when scrolling down. -Item is important as it clearly shows the mix of React concepts and Web Component concepts. The first clear example of a React concept is self-closing tags for React Components in `IonCheckbox`. This is just a simpler way of writing components that do not contain any child content. +:::tip Learn More +For detailed information about Ionic layout components, see the [Header](/docs/api/header), [Toolbar](/docs/api/toolbar), [Title](/docs/api/title), and [Content](/docs/api/content) documentation. +::: -From the Web Components side, we have a special attribute called `slot`. This is key for letting the `IonItem` know where to place the `IonCheckbox` when it renders. This is not a React API, but a web standards API. +## Add an Ionic Component -Let's look at another component from Ionic, FAB. Floating Action Buttons are a nice way to provide a main action that is elevated from the rest of an app. For this FAB, we'll need three components: a FAB, a FAB Button, and an Icon. +You can enhance your Home page with more Ionic UI components. For example, import and add a [Button](/docs/api/button) at the end of the `IonContent` in `pages/Home.tsx`: ```tsx -import { add } from ‘ionicons/icons’; -… - - - - ... - - - - - - - +import { IonButton, IonContent, IonHeader, IonPage, IonTitle, IonToolbar } from '@ionic/react'; +// ...existing imports... - -``` - -On our main `IonFab`, we're setting its positioning with the vertical and horizontal attributes. We're also setting the render location to "fixed" with the slot attribute. This will tell `IonFab` to render outside of the scrollable content in `IonContent`. - -Now let's wire up a click handler to this. What we want to do is when we click the button, we'll navigate to a new page (which we'll create in a moment). To do this, we'll need to get access to React Router's navigation API. Thankfully since this is rendered in a Router/Route context, we have access to React Routers APIs via Props passed to our Home component. - -```tsx -import { add } from 'ionicons/icons'; -... -const Home: React.FC = (props) => { +const Home: React.FC = () => { return ( - ... - - ... - - props.history.push('/new')}> - - - + + + Blank + + + + {/* ...existing content... */} + + Navigate ); -} -export default Home; -``` - -In our component declaration, we're passing in `props` which is of type `RouteComponentProps` (imported from `react-router`). This `props` object gives us access to the history API from React Router, allowing us to push a new route onto the navigation stack. On our `IonFabButton`, we can add a click handler, and just call `props.history.push` and pass in the new route. In this case, we'll navigate to `new`. - -```tsx - props.history.push('/new')} > -``` - -## Creating a new Route - -Now that we have the pieces in place to navigate in our app, we need to create a new component and add the new route to our router declaration. Let's open our `App.tsx` file and add the new route. - -```tsx -... -import Home from './pages/Home'; +}; -import NewItem from './pages/NewItem'; -... -const App: React.FC = () => { - const isAuthed = true; - return ( - - - - - - - - - - ); -} -export default App; +export default Home; ``` -With our router now having an entry for the route `/new`, we'll create the component needed, `NewItem`. This will exist in `src/pages/NewItem.tsx` +## Add a New Page -Let's fill the `NewItem.tsx` with some placeholder content for the moment. +Create a new page at `pages/New.tsx`: ```tsx import { IonBackButton, IonButtons, IonContent, IonHeader, IonPage, IonTitle, IonToolbar } from '@ionic/react'; -import React from 'react'; -const NewItem: React.FC = () => { +const New: React.FC = () => { return ( - + - New Item + New - + + + + New + + + ); }; -export default NewItem; + +export default New; ``` -:::note -Each view must contain an `IonPage` component. Page transitions will not work correctly without it. See the [IonPage Documentation](navigation.md#ionpage) for more information. +This creates a page with a [Back Button](/docs/api/back-button) in the [Toolbar](/docs/api/toolbar). The back button will automatically handle navigation back to the previous page, or to `/` if there is no history. + +:::warning Important +When creating your own pages, always use `IonPage` as the root component. This is essential for proper transitions between pages, base CSS styling that Ionic components depend on, and consistent layout behavior across your app. ::: -The content here is pretty straight forward and should look similar to the `Home` component. What is new is the `IonBackButton` component. This is used to navigate back to the previous route. Pretty straight forward? Ok, but what if we reload the page? +## Navigate to the New Page -Well, in this case, the in-memory history is lost, so the back button disappears. To address this, we can set the `defaultHref` attribute value to the URL we want to navigate to if there is no history. +To navigate to the new page, create a route for it by first importing it at the top of `App.tsx` after the `Home` import: ```tsx -return ( - - - - - - - New Item - - - - -); +import New from './pages/New'; ``` -Here, when we reload, if there is no app history present, we'll be able to navigate back to our home route. +Then, add its route in `IonRouterOutlet`: -## Adding Icons +```tsx + + + + + + + + + + + +``` -Ionic React comes with (https://ionic.io/ionicons/) pre-installed. All you need to do is import the icon of your choice from the `ionicons` package, and pass it to an `IonIcon` component through the `icon` prop: +Once that is done, update the button in `pages/Home.tsx`: ```tsx -import React from 'react'; -import { IonButton, IonContent, IonIcon } from '@ionic/react'; -import { camera } from 'ionicons/icons'; - -export const IconExample: React.FC = () => { - - - - Take Picture - - ; -}; +Navigate ``` -Note that for React, we are passing the imported SVG reference, **not** the icon name as a string. +:::info +Navigating can also be performed programmatically using React Router's `history` prop. See the [React Navigation documentation](/docs/react/navigation#navigating-using-history) for more information. +::: + +## Add Icons to the New Page -Developers also have the option of setting different icons based upon the mode: +Ionic React comes with [Ionicons](https://ionic.io/ionicons/) pre-installed. You can use any icon by setting the `icon` property of the `IonIcon` component. + +Update the imports in `pages/New.tsx` to import `IonIcon` and the `heart` and `logoIonic` icons: ```tsx -import React from 'react'; -import { IonButton, IonContent, IonIcon } from '@ionic/react'; -import { logoAndroid, logoApple } from 'ionicons/icons'; - -export const IconExample: React.FC = () => { - - - - - ; -}; +import { IonBackButton, IonButtons, IonContent, IonHeader, IonIcon, IonPage, IonTitle, IonToolbar } from '@ionic/react'; +import { heart, logoIonic } from 'ionicons/icons'; +``` + +Then, include them inside of the `IonContent`: + +```tsx + + ``` -## Build a Native App +Note that we are passing the imported SVG reference, **not** the icon name as a string. -We now have the basics of an Ionic React app down, including some UI components and navigation. The great thing about Ionic’s components is that they work anywhere, including iOS, Android, and PWAs. To deploy to mobile, desktop, and beyond, we use Ionic’s cross-platform app runtime [Capacitor](https://capacitorjs.com). It provides a consistent, web-focused set of APIs that enable an app to stay as close to web-standards as possible while accessing rich native device features on platforms that support them. +For more information, see the [Icon documentation](/docs/api/icon) and the [Ionicons documentation](https://ionic.io/ionicons/). -Adding native functionality is easy. First, add Capacitor to your project: +## Call Component Methods -```shell -ionic integrations enable capacitor +Let's add a button that can scroll the content area to the bottom. + +Update `pages/New.tsx` to add a `ref` on `IonContent` and a button and some items after the existing icons: + +```tsx + + + + + Scroll to Bottom + + {/* Add lots of content to make scrolling possible */} + {Array.from({ length: 50 }, (_, i) => ( + + Item {i + 1} + + ))} + +``` + +Then, add the imports for the additional components and define the `scrollToBottom` function: + +```tsx +import { useRef } from 'react'; +import { IonButton, IonBackButton, IonButtons, IonContent, IonHeader, IonIcon, IonItem, IonLabel, IonPage, IonTitle, IonToolbar } from '@ionic/react'; +import { heart, logoIonic } from 'ionicons/icons'; + +const New: React.FC = () => { + const content = useRef(null); + + const scrollToBottom = () => { + content.current?.scrollToBottom(300); + }; + + return ( + // ...existing template... + ); +}; + +export default New; ``` -Next, build the project, then add your platform of choice: +To call methods on Ionic components: + +1. Create a `ref` for the component +2. Call the method directly on `ref.current` + +This pattern is necessary because React refs store the component instance in the `.current` property. + +You can find available methods for each component in the [Methods](/docs/api/content#methods) section of their API documentation. + +## Run on a Device + +Ionic's components work everywhere: on iOS, Android, and PWAs. To deploy to mobile, use [Capacitor](https://capacitorjs.com): ```shell ionic build @@ -398,55 +346,43 @@ ionic cap add ios ionic cap add android ``` -We use the standard native IDEs (Xcode and Android Studio) to open, build, and run the iOS and Android projects: +Open the native projects in their IDEs: ```shell ionic cap open ios ionic cap open android ``` -Additional details can be found [here](https://capacitorjs.com/docs/getting-started/with-ionic). +See [Capacitor's Getting Started guide](https://capacitorjs.com/docs/getting-started/with-ionic) for more. -Next, check out [all the APIs](https://capacitorjs.com/docs/apis) that are available. There’s some great stuff, including the [Camera API](https://capacitorjs.com/docs/apis/camera). We can implement photo capture functionality in just a few lines of code: +## Explore More -```tsx -import { IonContent, IonHeader, IonPage, IonTitle, IonToolbar, IonButton } from '@ionic/react'; -import React, { useState } from 'react'; -import { Plugins, CameraResultType } from '@capacitor/core'; +This guide covered the basics of creating an Ionic React app, adding navigation, and introducing Capacitor for native builds. To dive deeper, check out: -const Home: React.FC = () => { - const { Camera } = Plugins; - const [photo, setPhoto] = useState(); - const takePhoto = async () => { - const image = await Camera.getPhoto({ - quality: 90, - allowEditing: true, - resultType: CameraResultType.Uri, - }); - setPhoto(image.webPath); - }; - return ( - - - - Ionic Blank - - - - - Take Photo - - - ); -}; + -export default Home; -``` + +

    Build a real Photo Gallery app with Ionic React and native device features.

    +
    + + +

    Learn more about React's core concepts, tools, and best practices from the official React documentation.

    +
    + + +

    Discover how to handle routing and navigation in Ionic React apps using the React Router.

    +
    -## Where to go from here + +

    Explore Ionic's rich library of UI components for building beautiful apps.

    +
    -This guide covered the basics of creating an Ionic React app, adding some basic navigation, and introducing Capacitor as a way of building native apps. To dive deeper into building complete Ionic apps with React and Capacitor, follow our [First App guide](your-first-app.md). + +

    Learn how to customize the look and feel of your app with Ionic's powerful theming system.

    +
    -For a more detailed look at Ionic’s components, check out the [component API pages](https://ionicframework.com/docs/components). For more details on React, review the [React Docs](https://reactjs.org/). To keep building native features, see the [Capacitor docs](https://capacitorjs.com/docs/). + +

    Explore how to access native device features and deploy your app to iOS, Android, and the web with Capacitor.

    +
    -Happy app building! 🎉 +
    diff --git a/versioned_docs/version-v6/vue/build-options.md b/versioned_docs/version-v6/vue/build-options.md new file mode 100644 index 00000000000..5a43eaf6fb7 --- /dev/null +++ b/versioned_docs/version-v6/vue/build-options.md @@ -0,0 +1,109 @@ +--- +title: Vue Build Options +sidebar_label: Build Options +--- + + + Vue Build Options: Component Registration and Build Configuration + + + +import DocsCard from '@components/global/DocsCard'; +import DocsCards from '@components/global/DocsCards'; + +Vue gives you several tools to fine tune your application. This guide covers the build options that are most relevant to Ionic Framework. + +## Component Registration Strategies + +### Local Component Registration (Recommended) + +By default, Ionic Framework components are registered locally. With local registration, these components are imported and provided to each Vue component you want to use them in. This is the recommended approach as it allows lazy loading and treeshaking to work properly with Ionic Framework components. + +The one downside to this approach is that it may be tedious to re-import your Ionic Framework components multiple times. However, we feel that the performance benefits you receive in exchange are worth it. + +Also note that locally registered components are not available in subcomponents. You will need to re-import the Ionic Framework components you would like to use in your subcomponent. + +Let's take a look at how local component registration works: + +```html + + + +``` + +In the example above, we are using the `IonPage` and `IonContent` components. To use them, we import them from `@ionic/vue`. From there, we can use the components in our template. + +Note that since we are registering these components locally, neither `IonPage` nor `IonContent` will be available in `SubComponent` unless we register them there as well. + +For more information, see the [Local Registration Vue Documentation](https://v3.vuejs.org/guide/component-registration.html#local-registration). + +### Global Component Registration + +The other option for registering components is to use global registration. Global registration involves importing the components you want to use in `main.ts` and calling the `component` method on your Vue app instance. + +While this makes it easier to add Ionic Framework components to your Vue app, global registration often is not ideal. To quote the Vue documentation: "If you're using a build system like Webpack, globally registering all components means that even if you stop using a component, it could still be included in your final build. This unnecessarily increases the amount of JavaScript your users have to download". + +Let's take a look at how global component registration works: + +**main.ts** + +```ts +import { IonContent, IonicVue, IonPage } from '@ionic/vue'; + +const app = createApp(App).use(IonicVue).use(router); + +app.component('ion-content', IonContent); +app.component('ion-page', IonPage); +``` + +**MyComponent.vue** + +```html + + + +``` + +In the example above, we are using the `IonPage` and `IonContent` components. To use them, we first import them from `@ionic/vue` in `main.ts`. From there, we call the `component` method on our app instance and pass it the tag name as well as the component definition. After we do that, we can use the components in the rest of our application without having to import them into each Vue component. + +For more information, see the [Global Registration Vue Documentation](https://v3.vuejs.org/guide/component-registration.html#global-registration). + +## Build Optimization + +### Prefetching Application JavaScript + +By default, the Vue CLI will automatically generate prefetch hints for the JavaScript in your application. Prefetching utilizes the browser idle time to download documents that the user might visit in the near future. When the user visits a page that requires the prefetched document, it can be served quickly from the browser's cache. + +Prefetching consumes bandwidth, so if you have a large app, you may want to disable it. You can do this by modifying or creating your `vue.config.js` file: + +**vue.config.js** + +```js +module.exports = { + chainWebpack: (config) => { + config.plugins.delete('prefetch'); + }, +}; +``` + +The configuration above will prevent all files from being prefetched and, instead, will be loaded when they are needed. You can also select certain chunks to prefetch. Check out the [Vue CLI Docs on Prefetching](https://cli.vuejs.org/guide/html-and-static-assets.html#prefetch) for more examples. diff --git a/versioned_docs/version-v6/vue/overview.md b/versioned_docs/version-v6/vue/overview.md index 045cb75b123..8386d22d379 100644 --- a/versioned_docs/version-v6/vue/overview.md +++ b/versioned_docs/version-v6/vue/overview.md @@ -14,30 +14,21 @@ sidebar_label: Overview import DocsCard from '@components/global/DocsCard'; import DocsCards from '@components/global/DocsCards'; -`@ionic/vue` combines the core Ionic Framework experience with the tooling and APIs that are tailored to Vue Developers. +`@ionic/vue` brings the full power of the Ionic Framework to Vue developers. It offers seamless integration with the Vue ecosystem, so you can build high-quality cross-platform apps using familiar Vue tools, components, and best practices. You also get access to Ionic's extensive UI library and native capabilities. ## Vue Version Support -Ionic Vue is built on top of Vue 3.0.0. If you've built an app with early versions of Ionic Vue, you'll want to upgrade to the latest release and upgrade your Vue dependencies. +Ionic Vue v6 supports Vue 3.x. For detailed information on supported versions and our support policy, see the [Ionic Vue Support Policy](/docs/reference/support#ionic-vue). ## Vue Tooling -Ionic Vue projects ship with the same tooling as regular Vue CLI projects. Meaning you'll be building with the Vue CLI and all of it's features. In addition, starter projects also ship with few features enabled by default, like Routing and TypeScript support. +Ionic Vue projects use the same tooling as standard Vue CLI projects, so you can take advantage of the full Vue CLI feature set for building, testing, and deploying your apps. Starter projects come with useful features enabled by default, such as Vue Router for navigation and TypeScript support for type safety and improved developer experience. ## Native Tooling -[Capacitor](https://capacitorjs.com) is the official cross-platform app runtime used to make your `Ionic Vue` web app run natively on iOS, Android, and the web. +[Capacitor](https://capacitorjs.com) is the official cross-platform runtime for Ionic Vue, enabling your apps to run natively on iOS, Android, and the web with a single codebase. -While there are no known technical limitations to using `Ionic Vue` with [Cordova](https://cordova.apache.org/) plugins, Capacitor is officially recommended. There are no plans to support a Cordova integration for `Ionic Vue` in the [Ionic CLI tooling](../cli.md) at this time. For more details, please [see here](https://capacitorjs.com/docs/cordova). - -## From the Community - - - -- [Using Vue.js with Ionic & Capacitor](https://dev.to/aaronksaunders/using-vue-js-v3-beta-with-ionic-components-capacitor-plugins-2b6f) - Aaron Saunders -- [Building Mobile Apps With Vue3 and Ionic](https://soshace.com/building-mobile-apps-with-vue3-and-ionic/) - Oluwaseun Raphael Afolayan - - +While you can use many [Cordova](https://cordova.apache.org/) plugins with Ionic Vue, Capacitor is the recommended and fully supported solution. The [Ionic CLI](../cli.md) does not provide official Cordova integration for Ionic Vue projects. For more information on using Cordova plugins with Capacitor, see the [Capacitor documentation](https://capacitorjs.com/docs/cordova). ## Installation @@ -45,22 +36,36 @@ While there are no known technical limitations to using `Ionic Vue` with [Cordov $ npm install -g @ionic/cli $ ionic start myApp tabs --type vue +$ cd myApp $ ionic serve â–ˆ ``` ## Resources - -

    Learn the fundamentals you need to know to start building amazing apps with Ionic Framework.

    -
    - -

    Learn the basics of navigation inside your app with Ionic and Vue Router

    + +

    Quickly set up your first Ionic Vue app and learn the basics of the framework and CLI.

    +
    + + +

    Learn more about Vue's core concepts, tools, and best practices from the official Vue documentation.

    +
    + + +

    Discover how to handle routing and navigation in Ionic Vue apps using the Vue Router.

    +
    + + +

    Explore Ionic's rich library of UI components for building beautiful apps.

    +
    + + +

    Learn how to customize the look and feel of your app with Ionic's powerful theming system.

    - -

    Learn about using Ionic lifecycle events in class components and with hooks

    + +

    Explore how to access native device features and deploy your app to iOS, Android, and the web with Capacitor.

    diff --git a/versioned_docs/version-v6/vue/performance.md b/versioned_docs/version-v6/vue/performance.md index 6bdfd52346f..e5f7ebc3575 100644 --- a/versioned_docs/version-v6/vue/performance.md +++ b/versioned_docs/version-v6/vue/performance.md @@ -1,4 +1,5 @@ --- +title: Vue Performance sidebar_label: Performance --- diff --git a/versioned_docs/version-v6/vue/platform.md b/versioned_docs/version-v6/vue/platform.md index 74900001f5d..d1fc625812c 100644 --- a/versioned_docs/version-v6/vue/platform.md +++ b/versioned_docs/version-v6/vue/platform.md @@ -1,3 +1,8 @@ +--- +title: Vue Platform +sidebar_label: Platform +--- + # Platform ## isPlatform @@ -81,7 +86,3 @@ type PlatformConfig = { tablet?: ((win: Window) => boolean) | undefined; }; ``` - -``` - -``` diff --git a/versioned_docs/version-v6/vue/quickstart.md b/versioned_docs/version-v6/vue/quickstart.md index 3cfb7748106..8ff548436d1 100644 --- a/versioned_docs/version-v6/vue/quickstart.md +++ b/versioned_docs/version-v6/vue/quickstart.md @@ -4,91 +4,77 @@ sidebar_label: Quickstart --- - Vue QuickStart Global Component for Generating Ionic Vue Apps + Ionic Vue Quickstart Using Ionic CLI: Vue Basics -## What is Ionic Framework? +import DocsCard from '@components/global/DocsCard'; +import DocsCards from '@components/global/DocsCards'; -First off, if you're new here, welcome! Ionic Framework is a free and open source component library for building apps that run on iOS, Android, Electron, and the Web. Write your app once using familiar technologies (HTML, CSS, JavaScript) and deploy to any platform. +Welcome! This guide will walk you through the basics of Ionic Vue development. You'll learn how to set up your development environment, generate a simple project, explore the project structure, and understand how Ionic components work. This is perfect for getting familiar with Ionic Vue before building your first real app. -Along with the UI components, Ionic Framework also provides a command line tool for creating new apps, as well as deploying to the various platforms we support. +If you're looking for a high-level overview of what Ionic Vue is and how it fits into the Vue ecosystem, see the [Ionic Vue Overview](overview). -In this guide, we will go over the basics of both Vue and Ionic Framework, including any Ionic Framework specific features. If you are familiar with Vue, enjoy the guide and learn something new about Ionic Framework. If you are not familiar with either, no worries! This guide will cover the basics and provide enough information to get an app up and running. +## Prerequisites -## Creating a project with the Ionic CLI - -To begin, let's install the latest version of the Ionic CLI. - -```shell -npm install -g @ionic/cli@latest -``` - -From here, the global command `ionic` will allow for the creation of a Vue project with Ionic Framework and any other dependencies. To create a new project, run the following command: +Before you begin, make sure you have Node.js and npm installed on your machine. +You can check by running: ```shell -ionic start myApp blank --type vue -cd myApp +node -v +npm -v ``` -From here, we run `ionic serve` and have our project running in the browser. - -## Build your way with TypeScript or JavaScript +If you don't have Node.js and npm, [download Node.js here](https://nodejs.org/en/download) (which includes npm). -We love TypeScript at Ionic, and have believed for quite some time now that it’s a great tool for building scalable apps. That said, we know how much the Vue community values simplicity – in their tooling, languages, and more. In fact, it’s likely what drew you to Vue in the first place. Start simple – then scale up as needed. +## Create a Project with the Ionic CLI -So, if you’d prefer to use JavaScript instead of TypeScript, you can. After generating an Ionic Vue app, follow these steps: - -1. Remove TypeScript dependencies: +First, install the latest [Ionic CLI](../cli): ```shell -npm uninstall --save typescript @types/jest @typescript-eslint/eslint-plugin @typescript-eslint/parser @vue/cli-plugin-typescript @vue/eslint-config-typescript +npm install -g @ionic/cli ``` -2. Change all `.ts` files to `.js`. In a blank Ionic Vue app, this should only be `src/router/index.ts` and `src/main.ts`. If you're using tests, also change the extension of files in the `tests` directory. +Then, run the following commands to create and run a new project: -3. In `index.html`, change the imported ` -``` - -Let's break it down, starting with the imports. - -```tsx - ``` -To use a component in Vue, you must first import it. So for Ionic Framework, this means anytime we want to use a Button or a Card, it must be added to our imports. In the case of our `App` component, we are using `IonApp` and `IonRouterOutlet`. Vue's [`script setup` syntax](https://vuejs.org/api/sfc-script-setup.html) gives the template access to those components as `` and ``. +This sets up the root of your application, using Ionic's `ion-app` and `ion-router-outlet` components. The router outlet is where your pages will be displayed. -You can also register components globally if you find yourself importing the same components repeatedly. This comes with performance tradeoffs that we cover in [Optimizing Your Build](#optimizing-your-build). +## View Routes -From there, let's look at the template. +Routes are defined in `router/index.ts`: -```html - -``` - -All Vue components must have a `

    - If you get lost, the{' '} - - docs - {' '} - will be your guide. -

  2. BY-D-rHME zKT?g(?^S_(cyRN0{I!oXRtG-8P*=>qh0w1u^rjgI;@(>ot zl4kyOAL<3AI#o~yhGLRq^9_bP@~r*Q(I$rS(5a7@Rz7`L^1CW*_KC6lp)X`OzhDG1 z5rTOIoxGYID)&n5mDMv-Pz1Md9jIYoMdtP# zyTKl@iUYg-L*fT8TQKc!ACN6+8LSYQBHav6K8ndp?3@x0Th!!U?tdWu+GN+6u`gE6 zzGc_5M24!IeZ-+9Mx_FK=%vrpWWUKhO^1$(MEs75y7!5yn4QynFBkYv? z&HsW%&?qIoyXp5gV&d#(CH1b#kDIp#fHqEh62Ab50>#5?&fh2WZ%_BC+8U>r+jxhf zib^pw&K3BL__KlfitQqTi>R=PE4j-41lTt-mLq{}GiwH5E|R(R(fbJ2nC#G$|AugW zt%Yy@k=RGESCiw+N<39U2YLLK6@#ub&!q9&5s*WhjYE% zu5RwXFK)thB(m8)^?dP;Pgy2YJvZu0#=HiT#7zubE4ax1Q8DqMKUqxNIVm3AQDbda z37$_jUhk+Zn@-~EP_KXlzMlmSDIO2z%0+-2zc~TXU-T@a9BaTZgXNfiYGyqqhtgaqM ze$;b}z6?W9AH6>Uhv^>r0t(655F`XTR=`ddmkAyGnfLkq`j@FR`Iq8gy@qS|5tr*$ z)xJkxd`@(#%w8nYE*QSOwqGBDoxb80apO~BlTNQfopSdu@eSaeW4D3ou%lNUp*Axg zYyXElJ2#}eFzAKn%FnQ682?mE?E3d&Vn!I%AQ!gj(UB`!u^xB>_GyykccQ?j<8JMu zxn@orFlDto>sF}njHtT#(hXSKR@inea%JlqiTl0T7*Nh5^S&_)@r7@`b}3%m<#!9h;eQ7DcMbY<`B} z;U}z&nco9xB&n^^g1V6&P%-+ohxN6s;wxaNUIY6oz57y-8xL#W2x05E^>vIDq(j4a zAVlG3WijT3c#}xGt4BRmaEQy$y;Uah`7D@7c?3^0S7yLw##}`dvOhi&!nq9^|!kJEB1X+C&9PgPwoe{7LvVYsQ zx=PQ^%BIbWdKS#~UU*8gy_co%p6s4CcF9_-Y9}y%UX-=l?tC07;j7m;7dRc4z0YE{ z^`geUxsDW;mkags>%I{HI71O%a4lK;lEMGu0_!3o_eh$un{^vcmH^z&pSv$pU8(5M zI7@0_5SQV_X`I)XX)`zE$}W#9r3q*c~gPkua${x+n%3;2`aV-nX3>`b!fgIczzICQ%!+ zsicMGm^-4Y`KQpR55B^Z{ec*(d&3cW#T5?tW3F zT6jsTPfAH5QPyh9e(=02R9I8(ga>OI2gB|M>=up2%rpAA?E9E!Ff;w$9SwU5i_+%5ny3f0_)dFUf%?;>{9`We^A85+VgVov$JWIJE!2B)e;X5G8ZlYL+HxoL4y60 zds2hI-ZV%|nNTZb2s)84Fw5eTQ$$#CA}st?l%-#Gk9C}%uWSwWqn#*vs2uM~<^O<2 zH6xs8rlFqMlulLi!mi`|M%y|;(vTzjeYMy_X|QMS=J_(*HR_EW74GqndbC!k2Wih5 z9Bb+&kKg?n4;ypFKbSzj0oBJ2=n1+;tG?uChFbG?ESf#AJC0$^c4!t6RO8Z_F*Dl5 z(Gd$i#>(86VY^@Pq=fR6hLSC-HqV-mb(a1E^DzjT5i^|d=5q)ffb*qa&Bq<1;sic! zl8{whMkz^LmreQ7;ghm|8+HCw zT-t9VE*7&hL4)gJF4Osg>Fd2HAx~gMl6Ms16}vUWK5Q8Rz(oTn0B2kdCTX~zpdhN@ zoEpcDnlMm8bRBlaBO8j_4}6^&x{ZqMKNl5cm&PFob-+hlSWj7hi$L0>hpV?k91*e8|!2dA9gJZ#ksrsqb91r^P$jwcr<8TVv? z(xIm)LJ+RD zV^s2qfH7UBE?Z_;B_o{^DYl~)cHuK-dA27rhR8=61M2u=4C8JMBhBmBM`U5h8u{z? zzi}%+{cE=}F|(1{B6;%zR9J`X=I4zlH19~Z#ati@1P7WiY0yYLIc837Pk8Zc^GEw= z&k+#p_%qCw5ys1pQ5)1bg6*luIuhkdFy)x`;e5-{xcO@h`UV!q8|^% z5dm5L6Jev!W|s>g)0zbYKF*~XAK19B#yh8Yu$0)Lv&GEURZUfWzgC>(2C#`CRJDtU z9}<_S->UzGd`qcl<5!&^jau8ChxV3`U-N4N4SQ>H^~wCITYgk-oZpQ9P~OT?b~=vT z$(3(@1DivoPF~D(>*4~_!wZ}q2h|BeX|&uPtZigqmq-a~qXAO8iYCH<`T)^xt;cW5 z_+vJr`Cfe)x%vC+PNC`f6Q!}*l!2Mjr10d0N$l*NRc%3E^EK>pC^%vC+60$^(fui9 zBdnrCcB$*tjtYT(LV&9GU1c0_8Ll?~1ROqn^P!h-cL& zSCXQty(tevnABZm6%WqI6&k3#${&K`0%X18PEl=HXsEw{E&_-zYm!#`*t zk)sm7s+#ep+*am!c4=!i-R?4`7^q#^BW;h|aHpw;7NFXZ&DLd0XAON6NIERX9hs#Ca_`*#cs zgjV6t2t%NG(T5ITuhhmS;`E6R69)K`K|%uWYP7mf8=fP`@@%`Hi4Vc79wql@JkJ;U$m<(5xWPUXM}@Ggxw z>yGW{_or;hvEa+p8hP)tjL@(usa5oP`WMkNH^Xisx0wt52^r!OsunURYTY4mMK+5n zPq&FOV9Sik<%~cE%|*{Ky!+x^mK6g640T8VIO8+(Fxg_qX_+Q&7aNlf%-bH+tDfL< zf5^2RVX|D)=;DUGtcSPn7+|>`O@`!F%%WeqRkg?>9Q^BS6a+ontr80h5);f8B!I6p zu4_n>Z3dY!n;H;doM%U+mPo$K0L6rvd?`X=uOOT@p6P!ieV45bK5P^+@dMtxV-Kdh zGq)3Jj6Hj$D=9Y0V|sAPJ>sbc=T{37L$h>-N7klHfm?Obqs} zvA!7yx<2&t`K)Nj3e%UOf4 zTv(J#01)&+@=zw57$v?E<}oGiSmhwYGHz#aFI@S-VIc%^1En6H4~fC{2E&e!cGSNu zY5@Bh!`X&N#T#p`8;vp{1BnHVab7~O@yBxQ|KdVJinGL71s~21aVGFNfUxehY{cgZags!2HDTF#nxp zrwpKU5nuaq$Iq0~l9dLxJNurxpP{(tmD3`&)}ocNng`1&_jHutA{3pudPz_Uk|F+`BUo=T?_P#>G(_N0hTbuRo}* z)dLgzZn3JVw=q<^>ar(aT!|*zC`odc#Usy1y^I_E#!+SL|-{=#$d4;?6oB!8NyJ*hD@V(emJYj<;Wt5}Bh znV8YVQDtW4del6JPVS7;ZU3Qk#%D;-rYqKk(J0q2Ps2uOMRr%jchWDX)9IKe8wFM=3fN4*$6qI-B- z%EVe<6L;9bx95I3qa~M!S06aKe)6{L^AtM+_U1U|z_{MKlS>h9EY!^VY>V-p!2ARq zVXbK8q0k%k)*M{z#`S_x6H zEq0SdEcUu&LzAp&W?xo*9_AG)UQRg$m11gsJY8*>OYqRa4GqFF zMCh8NY)>BjGSgIgRS&>+V_i1tEt`ymFlsA^^C!r2T$l`)0n1Po`wEke*`~!Q68>xtr(*?0fs2V0BG;_v*ePptoaq@(qg?0q2m5?E4&$T5Gm{aerj9 zNhhPz_RCqmM_J2jikzNsr?!Z@FJW|LlWNt6`Q}2VTP56p@{VUM+*VWA!&N!arGfy| z8HQpdA`2x5qh*Gky8ky%%767)t4cxZ%2a@bKl+QRf`lCCX@NeFFMxEt0m=zirMnIZ zplwhVg#*4~G#83mCD3!Hw}L+$Zj&X7C+qrn{_;?P&Lqs(%~jXAvpQ}3NG|#Z{FjmO zQF~osyU452_H4+Mhi*#jB-7@@$LP~2pH$CbOe2rq*w$q%MxK2e;w40gd^cWnF`Mg! zkCK+c2_Uc9G2MMa!5F-o))fuCCxYMvdS5ap#SiROqrb>Dxyir5txUsj3Vb4` zF;v$7%p@aT__{LPe0*BIX!v%y_5B>x@X@n^xgZS!d=_WS?4F)LfLthp>hZqp?bq=;D^$KUcq?Q(p!&FJ*^C814pjk z3$ynNnWU0#Wqd~KyOa#2r;!T5UuFhsy&J_PH-Bs!aj<25xqZTwpx1L_-G|s^c-zAv zIio&g|Ma6g{R*EjC@P%AH4SIo1YXSjiDh@P%p{aH)849;V$A9k2LP3a1P~r!_IimV zGXSAL?5|hm$D3wE={fQy%Qp`VwP6CDhJ68;pLji$XATFv&?D)^)bF;QEG>lfrdQ#u zE)9H*erMbYWuFAZLZ04?sPqXtCroz}o$Di)2jwO)lW3xC8FQ_W444m>p%`H_!G}TuJKNti07fVT zdQQ-Q@)EiL7@2y*0LC#9x!V}U%<+vpb%9>@Rp6lj+7*+FSsNc`6TZj#RiAl#J<|aG z9p50ox+Y+v<6&!gRoc#F8FyYx$uU_~d7pc}*Brm>Qr{gtBan za5Mz(kFMjqVX1IC{llk{X#6j&-$DE5Uc;hQd83ZRQ4C@vH?6Iyk+7&|+~o*E0Q8Ba zXiPyoW&Qq<*}9es_=kH;UR_LQh)rPRRY{Thm>8HIHx#Hg787Yib{JQp#r zS?s{n8+L)il@T3+-oA((;??BVZLbienOx+YpJ}R#!r6`(c59C5YO4bR$WQ0u>~+V{ zM_?21)45gH33#`^-7bMl1@U|TP7Es+A;k9H5OnZ3Kh|7JuX_7wr1M zqSRuBXyopY7@I%YIk!EpiFCtElb2Hb(DW z=fN%aZW4I>r^||yQEnB)W;@mlVJSR0sHas%wSS$E-!QRghC`e&0S1RU*VLL?BG%!s03QL-?g zmC1f6CN70<8wgvBpSV+vI5y+@$SUwl_ls70sdS26=k3PAk;?bkIXL0Y9!K`Z2?NbV z58@vO zk-16F+$+TciwJG=nh+6Y#Lsvd0OiWP0wRDSAOg<-E}`j;ToGO`g|iAtMN|+wXl*9; znx;73mvMN+DPS+}yLW3lz6)iI7p3Le;(r47L9L#)whb1ey5Vmio9O*A3ro9Qts5pg zgxb=I=ekV~NsXo9V)=ttMy|YlVMiDnP;4sK&6;{rW7S~F^4M%AyhyyNN4~Fnc3sG7 zLdn3fio0}0eEikiZJ4$%G_f@>3>Ep^o%^L2uuND-5!Mll)|`vThnJgRu>RBIj=>$6 z?l2;Q`&~F1;EvOFUk?$ADGB{9nmdassKO+@qfgiC5N`bRN9S zOUEVJnqmSz=Z-d2r#DOl%OS*`h>CRcsm#hCuUp(|xXHU%?eBQHg_lUV!a*Fs!vRF1 zXxtw&RZQF3{|ENOLED+73^ZdiZKffJFvAsh(FBeO1q@DqhYmA`0l=v3y1SY+{M#{1 zaPP_4RdNonnxTjmU-G1>Ksjc{XgR?P*trZdbd|*f@$@oJw+dX;7|nJEZlIwl}e5K-|RhuEb3O6S&)7K2}*>lhnwVAUd@q7;c@ zeBV&J+;l93C?4@6ubLXi3ySc984QOa{tOp?X?>C+akcSl?Z~Jtb0qRxa)nJ8z8%0~ zBeX<8j&+!K^0dKrvQ~W&kjCKLWlV`^K^QT(r1lPQ$wpt=FNhz?8GG857jxiDbFPX7 zSdy$37jqCO+3=E8e%5`CZ~S}JF=0A!J$IzLhZOopw649~8QuzOe?2uMVC$)0w|0A? zKjLNf|FQPwVNKoJ`{?P{w$|f75nEKiv_+(fl2R39O1?c>Bch~=ik2Y?wP+b4vp|wv zD~gCf1u-g+R8b=!L_lW9u8aag1cWfh5JG?enFz^FcJ{uT_MG2y?{oh;_qqS%iDu%- z%3AAv-}SD~wr*{I68CVs#O^vZOr!c4>pJhz;0?@4tt0KUDv7VPf#LD%coT!CPWtoa z8r}AyxClVqOBWBPECJyEhl2XS8r|w|h)Oe}(%a`XDtFO43X%VrXD;D#g^PTn2@g$; z_+7As8#G*Epgznj#8h5NuW_5t_yK6shmR3(B^Hb1jwCUdLYT*(s zSJ%(ar4dhWMNjl>vbyV;e5Ze?(9R=o;Ah*sLoUg*;DFe9xT)p@RoA1wz2B-w;++{; zP@bhyu5x-Fd68{vZowTEOaQ02g?5X>E)v;3et%h<;WOl z(2hPg{Pzq!`-2<`V_v|RXEGK^z#^bo4JuZnvyn)J?8U`vFEd^t*P_^05+*WEy$t@7 z@ekfaznM_G%A(yqef~`wLtjDt0$#FISR;W)2Eiq5FHVu?+^o@@tW#V7`$qEUqksXAufrdDA z0Uhdc{;!pm@vdJ{WSWZ3gGOx$c>%l}kLqI<{e^8>-i+2L)avIB6R_rUf!`>J%py!N znPoIO8tiJEBYq(%^ZE0;*|rd!#<*bodA!w|r+vjt2CB2eZaOQwY4S#<)CQd(JPSRG z+pzeaw(fD(t0!GwMvR|Hxje6EI>lmqGjhb5 zT$3%?wT%`=qF2e^H)Fil_yd)4AVOr<6nvF)C-uci>1wWJ$6PjZR{VV?|4Wyr zrp;=Hq4FoY-@ZO|H$SVB41|;yF@0v<=evC$dVr-2p2NOzGS5E!#bCGPth^DAqa0tS zOC#U^Nw5(3StqCjv=%~LYaA*D;0#pM#+YkEm`r5&*(rU|-v9dd!P=<9Af=%Jgqf%c zU9tsKwkVsa^5Nzm-6?gV3ni=kljVzx!?TcpccO~^AuSa7dL`ZPnQqwpEp9<^1$}wZ zb=dV!wE0|ObKMCt;hRp#5sr%L@YG41qng%&go|0_#)rC=@!j-h{%ie>x13L%x2$X$ z{DYk10yGz}EnHOG`ZrFZ)Dxr?>644+?)aRI2u)Wt0?#Rhws{HAyH52(o&ARR*^u~Q zWpnI+CI!EWa>lO~erW;TlOu~{bP?}g*T++}p*kE&`QgZa%|e|v>BhA@DM--!0unBq zjV_hJZ8C+=>DQ1yuj@hM1eqCj{XS#0s@!XRWCM<3Q}C&nNj_x(zCurDSx5Xr#ceh`N=iq9Uk^{o6yhmU@GNT`O;&#Htttx zmu&@fLs`teoi<*nU2Of| zjsh=phWH_RHf7Xg9qp61Ddpa4pLJif__HQr|ILYasYF@e`q-a_KmBcSca{Erj(ocU zM<47fAhwpjqVAltMf&SKYMS2JU*8`F4IkN0ZuDU(XQR_UdBCpZ{;QMqK2_@CPYueF0k!8V56sgQybgEdpfz`{XYCI^l$Y zz@5u6o}}xy36YP4)BPhsf0Ev862#Fe;Z!L}S_fK6frdNs6pFuPyDe?rj7@gvKgZV1 ziP#3buJdGg7;iF6H>9RFbAhS@0+XeEZd&3`=(FP-;>pcAkHT8(_NQTIKh7eDUCp;+ zXW9!tDc~<|MZf9b9Q}n!Tt9R(Wt6Fq5TmZKk^M?pMlQ99OBPMzR}lleXy&b$Mk4@> zzJQvFbOCx2@)`$qqj08-@8qwI*k3If{BKJsaRVm2f*hKhYAgmdLU@R12u8_RWpYA5 z!JmM}WezuOfuUS4u9uK-wJkQsaj@l6oJ1Wguos>QnDt#C`6UR^PE!Un)MN*QRVtbu zg%H21jchlrC%88F+43B>e{3J$%nv{txp%w1toJ_{#&Q(B)3Y{UII_z{kbowE8=kJ z1>s*!+0a^<3NSt_0h$s*u7H$coZ};NsEmxX6Ct7@4^+n?uXpt^{@e5k>;6;I1=|@P z-ar*NqzN>70yB6F#>`TTMJUr#4!V~?*K{&Fx)9vXyHKP}1G_BgLNc2yoa4)l&})B& z5VksSk@y`zw*eB6q;69NVFo&7?u|BLvs3saz2m45S*ZzBo92|zD(s-CHjdF0N~RFA z*FBo#Qj_Gio>sa$2V&lQapRTar}H2G(S4U4yMhy^c(VUxnV%}#o6Ucf+Kv{E2YTh2 zQRX~#i?&!FRIHXYbIHukqm4eQAfTBGs`_!~gVs<+lQS-Q$P;Qi0o`)7SafBy$#rt!qott#Ql+8p{y3BtL7NYu7&ga^~+d^Fo;_6`nT=;dAch9>qg zNga!rZ8ocADrP*MBpBA;T+0qX^uD}BjDohey=Rw3URxoINGFEcSP1#sr2k8Byl8cE zx-I<|QuK=VBL~;HEU6S3CmdrW_XVrU%UEW#AuVx38v_Vb3(i%jyD1!D-;8Z|KhHHpg zDKd#O<^zjhZMcp*q8uox>XbT~UI3J~e~iB|2(E%A7 z&H_{!z=SPhf`bfG3?b+=26?2wf(osW>Bs_+iHB~$Yk2kh5tjz}LbFo>p<;ypw#pDn z&zFxhoOYS#jr65x=UGP^_Svigue=hG79UJDU*yaXID|W&A`<+G7<(W$Z*seEJO+q`dZ4+Y25`gqnks2R@=q|mzs0gT86 zX}oq%sIexhtU>jIFL+CJ_NLlp5v|g+^+4dn7hw8biX8R5v7niC?bKNxQQMiayr8a$6#o}7^0wx}&8Rw9G?AnZUh zVimIZ{0mL{PZ9nGt9THB=Z~7v%|LB1wyIkS;$k|2? zRTua!n`T(CIXa2!myT4EHY&((iXaOG^eIC_3MUzZtrhBrS2rO;Rf-YM-}w@x_4G6u z9!}GmQe4vm8qK-52s2(KFEdm-Ktgs7k**6HqxS^bS-gN2Vo>|NG0x8>(Qjx^J|#NM+hf*g#Isj7#8)!$^mtW!NpZ&TR#c(p zQlQUF*csK~tws7hER~X(Piy(w74^}qqFA<5eACU?Mt>b`^0Ea(`a9KVMR06IOR$S& zRT`*j{*=%iSb`gf=Hhd*48!JEYS9x7CFDji7(hY8jq%`hKRaK5C?t=$PTea8E0JM+ zh>Sa6mF)|-@tN2S>eZtW-T!XMz%|q>hvm2`>=~Wz|Eff2EV8mx2rOvXiRhp~FisSr z#&Ye;s$%f@$;5&BO5}HG1Tyd3uLt+0`9=PcH2_GS`SZ-cxEr*x_WW+IX4RLP6-IcXRk&b^I3N$BvW1^tuFOVG9A2z6KQTm@)s2MlJVJ{0?giUoI* zPq1n>uO^Zj1+TO_U4!!g2aU3DJPA#q1SA|6c7AmAj%OZs32OloOj^^aZclUo0!B0W zDvXhOQl7WtzM8e);KE|AChi<+zDruC*{$uT)!z5}bZca)H%oV}Ju5o0e0$2Esy+!= z+C*Rr6!^Ykd4`xnjqlxA;WlcTv_gav0^JSK&_1n@Pyb<|yMs zj-50GC}8hf<4UNI+#x>m1yG^!5fvsn&!_uXalP`Ok-fa8Pv zqlxv42JXVcj;W#lL>{mH?dsRdAuifG;K{!g>I;M!D>MR`46pT)m9okY_tLWia=z{Y zrLDKxHfnKs;@hZ7`DKNjd{_z*8r(kQQ7gy9i?l-;eeCQ_r+^q`n$j|7<9zfmY!!W2 zhjjdNJDCs-Z)PV1o%J^7W(+lNn>$yk-c?oUf_ONduL-{{BRS(VbZUt(51qIpDq_~r zGIT0tx%!KAN|3XLR)JHhw;v2Rj{X8BQE)9TI^J5ML9%oa1CutMR_Pn91h3kzu;*#F zFN{_{_xaCR0Ez?t_KwHLZ~PG?mj2Jpw?zp>oz~mnLlU3yz{dB!eop>IQ4Y$dit;59{A6nBUcaa=Iqtl}`XF!WK%<^-=3Hjz`me^mXx?!fi z=UN{HLofQZMf&KHcYMF@B3)K|{^tzAd2Ha= za$BW1#i2SBBEj(=_nj*Sz$Wn;STC9zJa8rIF= z1Z+trvl(jx!>R|VDH~&IC&=KXvb>s--*eukv~$$k@%~GyUiQ5T=yvPQjI|DnLnX7j z?vfi%-SRsSO7A@t+{adIj++0bqorgEuhIowoM{ZSUYwQcLW0G%lrY|baN)ZdnJ0ZU zZoHt+{-EU*ftH~e7Adb3%zpy|SL7OI;nI$~K^ zCyv^G!k9fU_FeP&L`#4%F*wVK6@!INboy#}Gf}OujfO6;BZj8?%U>lMZcv1SlWsw} zU(7Uf!@=%^rsLbv_R=DbenOirzZN&;tb_#X&{8lmI~mlAH&PmKR+F#77iHW9Pw;N7jg6@0&7 zcbL}Xt+JjSYT}=ArJ)VvQd&3op*IDu@djJ^Iw`^y*G!dC(p2S;t6LON`kf+wVLQt@ zQ@C4V?^Rf!DR|Dk#||5cGKTt_Ci%&43z%$s-=N2x_UziL!ux$`Kfwn=9cGijg!pW{ zh%%eAf%B!g(2O16O4Q};uQj7!F0(-KY~lFh`psMsF&)tHN7GQLEJ`3;0K14>{$DX2 zQfra9Iq3k-p%gpUgpKE-Rmix3tezZ4mykNGya5RMGxvp%IHxr+GA@C@kesq)U>cDY zw@ck0(SboZd&$5tBJCYBXGU$?8K^=f$0a;{KeKG{tQ*DM$w?23!=Eph@`e}FD0zqy7i<-|x4}q!+$(i0}U3VCd4v4=Cn09oZj09edw=hf`+u zDkG1ZdB8D`wul$0R}ElStMHZR+L6*6i|>filr!VDm$MxCpkehb}%zyc}-xHRj@x!3@pb^ z8sBUzg{1dQ)Uv!XcaGl2M6o)Rygq%&Q!HR2*Lv<>SdAMUlYFd;gh>v@8CLE<}oydpdp=iV;= zRZxmleS?e7&}AUZPV9r-n%ds@x1u=$;;GtL9G9ck{|7ax`R?k=U^VjrTE}rj7cdCK zbrstuA_O8e$9e}&n&l3#1wvmS)L5!%8^BF{pnmMEj^HgO4e3{}=JW3@bD2@Snn8}H zyc|#1iM?RCI?rms{~P5AHyVuz=!;l6l#lE~Uz}-*_Urc%0za;(oN{jay+od?dQ1O= zA>Y(7*?ifYkSI3A@f`Z<I1<0~MS$!EBV?1}cFRhN8c6LUj=axo7!15YEOBD47kQAjd-{`goD#TH)OZ=su@G?}O7D`b5`Xq8CH z4TV*C$~1HmtnSooQ?%GjKz3x>e4qT6@yDZ^MMa%aJDZ^}0U7O*NPZwUdbg$`&yxA4LMuHrTP5}gR@NF(i-Z-YY=>JeTBp91S@=dk*;lDXqFOEZ+1uQw zZgAokioKJFG@Z9+Jx_J#o0-DY#AZPWcP`xwjMxtKPvvh3Pf%_>qA_!#8GX##deUa!xTQ=a2p;+wh@AXh{f$V(1i88+?Hr+q!j227y#4 zq#EfIAGt9|j+;tejVy*%8J01BbsoV?(cT+g~aza+;~8=iL#5-AjSLBUFT<8 z3fa2F1AYmF$m_sKY9@E>X1s(`M8ywDsIcT0IFg0A+GpbS&W5%m-7ZnuS%5C>K08rG zzsLC;ua_A6v@_4SN{uh;6PQ%C0>gMsQG#)+>ITy@eS$mN)jGa$W;2eChy=KV*v5k| zhx(enl$`4<*@{(iL%8uzcFg38CdSpopUyw)tH_SoXgc?C(H4j3wcp~JSuW1a6*c0* zaaHBeR}_iI5sl(zQJ4L}oX13E+HE!_Ee!CEIGM839=Y7A{&tmI(}`Z+Z{X!_gnA_Ar=BQnztQCx2V&hY zv$ay4?_{sKmz*^MlvBrZn~-_(d^E*6TIXlu3ZWai&l2SeP6*mc zK&fn^9*slYDRv81QKrXSx}kq-3@pLgg^VcytBv^!pPjm5bn(s1gJZo^q~TEYhr~q0 zjbgVig8u1~AU-a1^gJH}t2v&D<8x3HxNV{-uQ%#vKHJsYf436D!*s%!It~M|SaO$j z?=i=8BsSJi6Xm!>v{q=sSTKgjDaB6`g>Pfu#pb>2Mi@Non(h{anfs^E+0{m|o?@tw z3L&E=OhAMuBQWcEXV31tUSnTgKf%Wo2~+V6YQ%7cjyZd`TqDw1AUVqnk(xuTH ztyIdeK})D}MSrI$VJrprGh-O9BnzM^*)#e{>O2XC-@8wQl$%97X1sEVffq+Er{>FO ze*HN&wsXpA??pNxsvFLw@1U(v-epOb^lGQNnSM!O{(;LWQp}+?$rIO=Pr6zBGx(`* ziMOx8`nIa94>I1~#=dbsTY{Bo7VmOp;B>D#aTO8mq^ZN6V~7_zbsbo`pB8No`g+R{d02%7bOMw;n}S;qjg8? zF-y90(`t5F`Ua-lKasyFqb1mG8;vouMcJ|eYp7w45t56v#b{Acsz>9F1yiuSnkK?7 z#z{E$hBhN(x~4|UbrJ$vBpxLH zNUj(kH)zK}Ez+QsPpv3#UcNi#@<@737AO}cqJKTuwaQ>@!m#am1bOAQe_RWR-46l@ z;TptlrO{Ik&=OIR&vOkwg@PMY7i=IkQmt%Q=?ZtH`XPX$Ip3((+njQZhm9-i6;Pfo zaC&l|Try1cMJ3+E$*(eWQe9K>XUynz^w6D{1c&ZE7%(4Lmhz=U5;uF()p->=?Lwz^ zJ;6PZPP0HHvFgO;M_f>owUGbh14i_3b}zp3>FEEWZ_|x*(*LkuKrgJ1`PJQjH`Dk1 zbxVk0Om*=+J%>>Xi*1Rz=*iJbkMI&&Gn3h%Q#Ji6OzYiO#x`Oy?=3f#os|NTWn_}+ zwT0x|BtUEFC3|-(#Mj8RMfwRHc_#rcid#3BlDjomVG&~dC&lebjGn~^Jr!RpEsb6;R}~_-GqP;DyIM89^l^O z`vO7dWb$IL3UMT|+OgBRud`_xT_Lbs4Ilp^TMg<=o%?->JFLz<0W1hY z5*&%ew2+m=CC@^+IvNEdbQChpv2j3G(JyOC;os%DrR{AX^llgbz@pLZT$D{agHPi{ zL>0v=;VY75jMp@orZ-DXbDNzkFwty>Te0JW{Dq)B(-)!PN(YDDpJeIgumm{ABsG*4 zc1FyWOnC=rBA)?w4h)h$0!%lQcD#Njc41F)(l%z=KkD6k;mK7ikLEu@%zd`#Zu>vK zr^?=M*g`_ej1+juR3hr(D&4e*HN?B>N+nlWbwqk{kcdtn~5f z9Mmvjo`@MamJn1-vl(9`LJ3)0r&GRuVPao4jwMH%EULr!Ov@H z9^zk&W7{(4V2O_^W~-SIn}M zMuIk@7~@}{-U1mNBQ?j9InM)x`2M5X8)Wk2p=QO^2(OQ$(`+#ooZ5eVlSw}g!gG6d ztAu8h5_p0wYzK5Lyz4?8s8moWA7f7HBAzrUs^a)ZHEusWh^PD}I!s<*f-89*aKmC2=h zmoS_w-1KI3H72~PD@vEKuJPx~Xe9YTISvE^3Ud}2f6xS4J`3$i44e+AMQs3~QhNk5 zA<{(2zQjgO+-s6KFE(T-lsW66Dq6#Vj(9~*o#5g^&#~#h_^GZ_!W|A+)>XG+qkQJf zDm$TKs8B$u-b#^pO2KMvf-CioYFeJz0nJ_PwGWiSYM= zhVE>g^KLuk7xd5*UvgQKu|9>!-1AA^ai>9-3tvbh_ELNQ5klJ5VENdxqVuX^7H;I) z3-05Es!3a5BkZB;2%UJ>88yXwM>fxO5h_BM#gban!^49Hjs*dzw6u2VH1BW4uEoAD;!M6~AV7GbOYA*-!^#@Hl| zJrLhid!lON`Pzx;cal>shc@CxQXgnN!T+?x`>B~PvA;=b_A@~rnNA$-5DA@|Rx-ra zCHVeCHo(Jj6Em$zYhwN$t}FFH)hvwM%981Cu-Is?*G4>Z==$$?RHd%lS~R+*}b`iCMt)0&{sPaBcL%SZqxweii#DqQK^y`;b;f zjhlzE<(p^86yKRv_cr#tzfONAm;QK44Lo%hjx|2HMk)?sba)np1|qHJ!;z`$Q0BzumHP0&lv!91$! zp%j!&-U4y~iF-_oTgjL%+m@|uK)S2VJiS!U?7;O0mHHE|BSXA5PC}~xlU!PN#IwHC zi%3Hu_^N83W8{QzZ(N?6h^-$7nqyux5v8?(WGgW64lOeZjt*_zPwrSr@zO7gVeZc( zd)O|>V^uRSN7iw;F5zNgPVQEOY)k>P39VdX&-r$u%PYGpAAbrR&Rp1e`?1N|`mE^8 zoT5Ae^m)EsRfyxOO+ zWdzCiU;39&--k%8+frVAOhH~u4iJ<>z2*J#=nj}WYqq69Y)U**IV*C)ph@T=v;iZt zG>0UdRlx~-+`Z7FZgUgrRg@BeLj9RxJrBlR74B$oJjmy-}>vo2*AtK^0v4eIy$%NLD3ZX=^bp(PdeL;oh3 z+U5b=--=GMbnCIorQ_R{V}0KEa(O~soL`0TD66Lq<>tyaC8E_t&m}}N6;t|efdFC+ z8l>Yypu7P{U}5JBCH5rOqkC8b|B%-HZ-DG+v_Cpv;xX8f1lG&T5yn~y5P$)gc9U%d zNHszAHJC0NC6n?cDCw zzVJibp7e>d@5ARYt{FdVHH__OM9)bkxa8qkiT9NC!kawen5}0LE%Fh5{hm+GADF$c zVlsB!(@K@)g`Z-+?B{>7!~W4r=#B+z@X!gDLj>)B(bnq7aiJuu>3Y`gIOSnyD62eU z(O&_bm-^ny%*z$yudid!`RLAarQL!ln>eR%>Wf3eiNyGZ{r$(8^rplckj zmsW7ucF8_IQ0Ym}QaPrpEqh`RbykMkR8Opeziq17hkxo!!0G4=9d-gPqX~Rny%kv~ zPRt31iBaXUzc7px0@QN#=v#Ow>O98tutGT=f60B{vbP`v(^A1iuQ}{Qfz}?idc2l@ z|KHK@UYfE3$XO#jFpHiFH9{MW=4A6&Dhe ze=_fAu}z$oZ122xr>K^P_4=pXXoZsU)K;ip(!rlu@Or;%tgd1i{!z}uTAkq*vu%*C zSkOe)wWOx-;-B+jouE%1(N$<=s~=NLyS*-$JRhyo*2JiN(m@!@#!_k z5yrNsftM@Igt|`3Xq`f=+OM!c6>XR`KpG$T_i$JnJi;QzeY^zIqm2E=o?2{nWQZx# z2n<}H3Zb!r{+a}9-!1Dga}cI}4^TD^F3aC)ExXIa7Z9>P!%~NzwH&cF0|QvL0f27A z*UKS;O0;|)zjEq_QveO=I7#3?_SPd%FWjW{mxB{OqOXfsUUeb&c~=Qn$X>AifC)uN zuFD;uq(Oy*p(c*CDtcNkF>9fq>0@@1T}w zenT!SnT6Fdm$TN;bv|dKM#tq3QGP@_1U1K{c3zuSX6S}Gff~$hwhf|f64qbtNL=^w zRqS_etgk0GhaOPawv^5|C7SpPxHins+EhDH{1Y6F(B7Q&`$EoUrA_mRH`H z3ehVremHV{%=)Kg31VO^2u}!uVUgO2v7TYG{AZfTZ4k&YJl6Tfw{Kec%x2(p@EJ=t zeJi(^MHQQ{ky1e98aFHI%(uUu`@{tsEn$3{!PvntKC?vr&x9Wap*TL<9T57Vp+;r> zQ+53w677wi8{;GSyIo-e`Q$ZsAJDCGL|PXKa!Ta3*01jF zLC1Zy81eB7bI8y&pzX)pg^JCdVb0ikCq?oMmz|+YLz}@yD%294WXrlBU`L@Ve031( zNo}s~ZqvPNg{<>rgR(i}>n1ayDQ}QA)LWF*kto}Z?)e?>y=K&O)!G*y1Q&IAaYEm> zJT9WwjM6$D9tdE}Mz?+qW_Ee>ox(fz;`_7ME+Rp@dsOghALJY8B$>N45)-;M9w&w{ zJ%=8m>y#p&si+BQXKcXx;m|Zn9pmS$DrHfY0!s4rAbG*Fp*nKojV#r9pWgE(*eNAP zB$!1@qt8adbUr$78r@ad@1Yw`HzTsEL^4-V(YS7Umg8cT)cDUA%KlcQ-S{T%zJH}mO~i6p(;}r>6ItuBK3TrE zaajfl^BR=nSb~+~I}FCU+Qjo9aG3%Ai4FOFy;k?K)sdMwHL(2bqL3gtg|C(ku=!EV z0~EfDyYN}m^au-t$Cu#t*lsX7!q}@3Xyt)8rDQ#6i&8!uT$ecZ3Up}T8v#8pNqG5v zKRLd|G*-14gX!?ZLgn9ie#Uh2 z4XeCl*Yer^mAHeY`p>x0vlUoMkk8=maPsEMQ@ZK*BV+x>&Tc+^6)2`J*|Be!%bw-s zrQb2wz$9F0dSF?n_c*OlEPmFtPUbcgx}3}XVz>H8rgg);r1U*o=KIJy+sT`du1m&e z_|S7@d8L7~D}9fTN8ZgxHtZ*JCS`}bXtjZuC6U(YZ)vbbf)M?E`9+^#BE7NtT@|7z zz(sGR#l(g=H&z!qd9aBT((wh87ITx-T%9Tx8tTkDO3Bp6=pSdXd9e=JP2g?^gv~`u zN=r;7@nJ0|mr9EJY{yE#WxDK$I^y;OpICsRf*(2eH%ttwLA%KS7XNN_M}CNG(W43r zDzPNBB)Q~%M;9?}TP^33WDxHAEE3PJu_;ka54+HN!;m3ZTsxgG{h(kJ#@;9KpFZhb zME@_bQMd2Jj*P!P4Kv~V|M523Af$(VY0<-q@d(4gmHO9QhfVvD#UxB{rdfH^SfHM| zmK|1G^Aemfhl~m3V*Y;JoGrsS+e3UTGZgBri2seeagnAfdd?l*3ajkOOFMmliXkso ze`n~XfSrVI$lN82Ok$HIk_0uEc=))V%~*(-59S`ejM4tl(5;l(blM<)P=CU!^c;5d z!u|O-$HE;msWrHfIIe+D^BM~-sM;hh-tOkRr1frR0hAki0l?#J|hdrPg;{ehh+!f~2#E;K zs3rRX_qJmrer!nWvTT~f_`?F_?GhWd3V8zHny@2v zsDt`^e5<}vSsqs(jZ&sKmK>b>ZC|h<>IG&am)SXzMlp?f+R0h%$f#|TgB(hwKmlQX z=J-`0;y=aVH3|5to3;}vn0_Mqi3&s8C6T#e3;^JcKmQia5v5kT2$@S1g{|#DsQjW2 zunN8VKFav^Hs13q5DvEZZg^|p+WJ?deGR!T-Pb~ieruo?ye3f1HOYWdi@C#(ksXqSZGl{Q zsH8|P@_XvLZYjEB(lX;Tl{ZH<65jq{x!XILiK$Ke^9eow~9@2>(mC00eY#N-&EKQ#(WH#G@$%J z)iwT-v$9jW5ABoH_1-oXj!)8CDRW|72zyD@M)cJk7FR`F52&ZMNNNhJY6l-9+tr?J zwxKZ*n4CnX5|uOU_k9@2gl#G_iSyGORVofj!gCTH`4e4HPI1IF{HeS<22+Zmhf~c| zP}_O8aJFaIuE15dm4)ld&4TxPXtEv$E*7|ba@_Xzljq%c^T-D}Bxl8j%?t$gf)@ij zDPHGwKAMX=gWVJ3`3^Eq{iT=Wo%&1ICeKRVD&O9&`*}x?+=CaN+?&gud(22VA9bgk z;a`~Z&WF%13!c}Re`-D}x=ZmG{{5>A%b}r;VlTeeI}0N2UmV5+Tch`3*f^_`DBaiu z&j&G6KM&@z*=E9h9Y7#UGuH%CY{kNp>i7~MzLwV=vhX|@o36|Fv>F57zuX{?as!lu zaAdc0u)ATo<}Fv)1t@6XFYBQ}{YTs&E2Cts%gTq^H8!)h)M$4KKX~B`KVbPY746-Q zuo9H<^IjPE^)Dc4>~@UTUD(IAI6VVJ5~8{jmRR^iWR&|PtIZvQrqjr!n9yZo;s8Y( zuZrRlf67)zb%A45ys=6zeJ-D9?DvU`j0nJm+D@I3L%!QdVnJ|xZ?^XtV<8XI^g0sL zg<5GjpM%@E9u4-pr}3=g-7H{HT%I^E)z1aQQi+)FWa*gf=)ndplgQAZWd-?-fCs9{ zH?P{@x7+&D|1bd)7>7$cx@!`29Cxr2-a1FQIsJxdVxX=hKz>NL+PNdIN>J#R06jY@UZ`#GE@ zZpH(~eTE&5i4eZun}|KYRJ0^<*9kYaV3-%+!G&x{e5J(AM>D`J?+Rb@*lku+)MO&< zVG=5KN z%ePp^)7FU$N(B77sx2)J8HCH_Z2_v2;yQd@IV5hkaPj{Z# z!dRqvoX+N?;~IKDuv>H9<$R>-JAtkVBQb1uq5doR857F5Dp$+_Rm2Dmb>Y(D z?4c`yUolt7_&>6T3R69%y~?b&=C-O1Jy=S?vmI~eSAUZloVZH3&BA%o&-pAugCv9l@7v0L_#B_?=b~3i~X!nX?Bf zBLRE(g^0HOQ6J^*f#2Y~tua?S?grGEncdFYSqa~C_vj|#;&0Xzk}rF0!7a7=8*FH` z3ha18tdF}X>&{MF!B(@OlW&f>V(Kovy^8153geXBj%-0II*9q>o|Q2MaF}@v5v8=Z zq7LYNZ(6L;T9PGR+$C^kAkZtR{0G~X3ruzcqHL#lbj00Vl73op%Wl=f_42e&WJ)c-1>-SL9@w{E3ad*cRs@XZ9REFzya2gz<$ zt9vYu8(`yUb^96B$bZnrg@t{cEN5)mPNY8AE&iF0yEO-i6Q;*gGKA0h6hSE6ILZg0 z*J9%b`1CSmVsqQ3c1lhLA-JxPI+-DDeQb3-^F@2q)Dun-WoSn29gO8&#!+iqo+VzS zHJ&+B0ynyM!gwu5*<=kj-cHR8`WlbEc-P5ik{J?APLHr_;&b58$M;m=PstwSNi**N z$C??-;m6;iBwE<azO~8RacxQ!<3tT4|77PM&q?nIIex_SlD8M#zAj#o( z(2b+=seKyBNtQ;DdNQ-s4&SpajmzjMXqv#tp>;6yuIYyk!GaUQng3-x(k>^ogYUG; zmgd~8>;t|g0PDN08OGPiLThA*%TJ?#*8w7F*?hDB8sHIl*}>veZI4aZYA%K4@&^Sh zQ1_L4@D?^Oqs9cszwie|Hh~S_0H~+F`Y-N)jpCM*xU*2nu)-2gCC4(9N3m`Q#?-EE z5*T;O{KuHKWnT;RZ+jqSS5m8J_H&q<1vPM@5P}*A@l-e0Aofegg#+t51~y6co|t)M zvO=@cqTbA#)|P@N>ERhmsm79lFrjvi!wvi?Y!dC$DChDOwxL`RlM;WkawBw;h%HWT zjD6$=g30{5=>4lmGoP}FVO-Dcj$I-dO+lr3Vom)G+`2?weXf zx$YmPAG7xSkU&~7z*Rr~Vq4@_YHV};*6RHFKxp99FIglwG_a9l(8qi|W0|3o)E%iJ zG*NR~qRp4VyV_XPWoSW0`j-G^(QjJ#aV%?362`IKxeIGgv z`vUO5X`otaHMued74}eC&B$AD;NpPe5WSu zIMTW(^Q7cYwCquW8t!zhUD>zpUFM=b$w~}# z@D|gaFhbZdgabg4a06SGoKCwRxvus7CsyBOif@1DcwBfh^&7{SB_?h1z-iluWo~#; zrw@fYyKCvmsN^*f=a9sTZk&9>44^qLc0SA_*Ludt$h=|yTeI*vr_Wv16MSp3A^Hx& znn##@`O&$w@8NnQ!Qw06C}xU<74IRbmtxpA*nPOjl%)spSB!1Zgo_~RSXQLbwfARL-W4HR21!0`?K@S**M~IV>$>U!!4A?nYMy7UjTe<#?aCyS* ztF!w%b+Yh@`s>(kIdJkyr*fk1khPqRY|^I1!>xCJKKHMdh{eSR$!kUmIDk5FKYt~w zJYUy!N^Kls?w7+8BHRdMt2S}&fZ_R1)%KQY1KrDFUovf^-OloO-$H}v$OztW^W zEwxYVy7z(+wXN1q%H!y6s(3K#R_ADIrtc`R8iuuMJ53J;d@5=vE_Ohd-M8mnUstLu z#+$|vrRbgn-*iABM;iUYKx%}TYwif52M^Eut(U$3JO5U;+x;%;leZGDN*Okbdc#q* zzmYs>Ia0}%*2oVaz^9zO28KiZ8PTw z@*edYskdjZZIfL%qPYLCA5<$n>gVQ?(k*4azz65|s2{iku|2;9KQ>=vh3VKI$>&$t zheszxZCv8|<7lZohdAeq0Mi2F@SJ_y?X~EvNZb8lzO4SQE=C>ykjrQJyq^>-n_8rpK9|0QnacEq$-uk3H<9cH~Q15vOVq+qSUicajDSfpM{`7}4!`Pkv6?Vszo6jgwXo z+hBxl!-pGCEhH14gf*45^mj!Dg^CDJ5s$6rrw<%khWmXdi)2Fj#c@&22bg3?e8RRc zo)n8FuN9dco91vS*Bk_VDW!n`Ymol!&;RCr=sbnhGXgN_elT2z6{(V=h+E;wK`OCe;%HuRL4w{gb}eel29ZZT<<{5c{yC3k*r>h+h&_K{}44hJ0(BkC-hR^>MG^vUTj( zO)vUgQ+641(7l%f{<0q&ueYh)&E!N#I*Q!x^eN$n(H`ySuUuPn?k%%^-OL+5JNJVb z++I)Eou}*KfMLeui!WBy(;SI6J&k==k{k4GMu@0(_B3c zPl5gnm~A!UZd9Y;Dl`VM83Q&4IpCBxCj1J}MZQ>lVoJj&k15C+V6_B_E^s{H3yp=+ z7&({@-x0Tn(Rou9>txpNF%w>Ynjn{?jzb+QYT-!$-qW_cZSgXLeqckv# zIPlN~Ani%q6FVl29_w5;`Zf%qcwjvPhx6MSeUgSZb;(lyMGWhv;wpr%ao>!BVePjs z_5Jan)lS|w@@?ZD6-ruClr%*tobY;tfAuMlZ76l`UMD-zaBFb4rIX}sy|%`9ckz6e z2m`Cl4zM$8>oIKJIqS_pbsJ*Tqc2Ob;qi-9Bb%Vjj}WLI=e4Mg+9+ZY(bfoS zpuX;Tx$2QJpB?xf=P$1m!q#L*4jn~q9? zljkyH=G8^WHC=C-C#@)8&R(snb0+C(6;yOZ&dfJml9tu}gu=PXLt%9z2CaeBAY_xm zUwYI7dk154B1C>QGEbNkK@|lh?9B1hk8gK;le$Y(f0t$b>&I8V+D-bd@=JMLb|~@m z+LD15AP{I(-vHWy(ZHJn4t994apgx)WL)GO(iv@tPUggk`CxL6Ecq|+b2WQqC;kKuVBMea@0+%`WJ5f;{t;Fo71AX)#X&N!`RVtAa zOLr!4yfaQe)hj&U+WXpu|M_RZL-tP(36t81_Y^?-L-!p!jHC|at6aV)_rWDwDW*(h z^a+-SyI@C|)K|y$$(-g=^=Hx2XN6&Un=KlU)3_Oe#yr}mqbX!lsQ-!mWfle2)`=(-=>cK>eMb32K^t*l8yTxki&E@M@ zD09k@kZc7RLiW=_Qy4E(r~cH}5-Jpz$77mm?x~pU8BZ;<_iFEI8y>D@H?3+aPpnLQ ztmEv>J|Xm>XR!4ti)2fANIl>90)hF+2PvvHJR90txQv>RpXH1JF)MvCNJz#Hzd4+u zTgP{FL3@ok+6r(SKW)nH0p@R0F;={`Tj|D# z9HpqBT|;A8(0#bPtd4Gd+MbW$?dcwwUf!R4 z8E^Q%SpXT9pRs-SxifFeZ+|)z6r-}To3oI+9y1H3lP|4s{TJgx57)QG5Pxk)D7Oy8` zzfXdj95TcXL^t;(qA4lKI7Wu0Y;BCl_d580`+|JtCM1o(iBzW01}(uSz`Ae~->j5c z;fn*0Wl$yaz-F<5*8)7zv;t*ITBi%@p_()n>s&~gMW@XY(mtSz;%f}G>iv0P(CHBd za1oOXrs)<3jiH|b_bb8-Ccz4zlmnrY0i1HIxg4ws@lsR*O^#Ba4YVENqb-Nu<}1i@ zr{Lgq5ow38yMzzjd(~A-alme8g!Yo_IX1*f0spdHLG-S>q4vkDL}af|7Vu3$ z`@G{jZ%0{oU#w}KRQ=f!a!cT?o-Y+_WVRt!P2;|d-^HiT4J2Mma=6(yQj@1hVzK7% zgL~9cdu!g7&mlX4wAPPT!ww|W4UKdJcbs!UjsEF&$F>AXR_v92%1+`4uCnfTh}=VS zlXpt;JHlvv6WMrT#jIL1FPxQM=O%r}Phe+Va>DcvqY48VRp^7orHb#O(UZztE$U-z zWz}c3BtiDYj#__vEzM&%{))=V-_-b?wD(jsXR?YRY)q(34Kj)N2%2W2+GQ3hoGGXU%0$bTGXI`Q}m4^PC|Aqa5w% z@iXP}x+H5=pYp|vi`jOfscnkcGI{KQQ2YDFsbMGst#e3TTr8Y=za6JGKDbD8tZu-t z?b@?dq(b7TEoATtd}P(%VXTe4CLXwhKLl^w-b_xo@{7xQYt25+IoT=Nwlm&shWc)- z%Ue~aH#r`Am@myhZP^#KxMMiwt+bDw3FRf>hp;cz=X3lw@R<9n<~x;RI}86C&rPgp z+!;;tplbzqzowYE zD-~sqdwRxv5ar9vV=q80*0{v*(t1Wm9a}N{QJ+ydS8IOgp-AM61^P$o=pDMEW1*Ay zG)$~(aclQ6-?GLrY*h0QTF(^lap;wGA;|hQA&80m3ZA$4f_xGkX?fi8qLfg^ns65K zZvv6!$t0OZhVSZGo;vmx-_6a=(ppTu_FXVkzGC2J_0?eBJsJO$R2e5*d|ZcaH8!MX zUKT5ZYky2UObAiO3zMRv-cBHrDn_@0> zbL_VF9J6Vsr%2m(E=D*jb@AKcqrF6(FUq3NS@U&0FdNQTO_d8Pg1DRQ7ah+EjmpP% zx!l*@6V58-593MY<-FOhWIw*NBYyl`@(u~*1#5{YAq+|2BVmN2_)4UZ-pP=p4Z;d3 zd%HEjjI_Z7VB?#)0bca*N8#p+a55r$B+dLJ2aHseV)$3bBAq7H^J{0_8I?l7ulEYB z`Q` zPS(cIg&Fg?k~l@*a?vD~rgi;WvSq}-{<<(cThkWre^Z~b*Uq_7YCma3=v0sHGgTX7 z^aTAHoI1IyF)0ofqzuLc9axY$G#=TK?1>}^ELZL7KAIBpyZGho+-JwFQ8cOi+8@jb z_!^f@7^Ne#9s%16V+3HtiP6X&44TpE37--l=4VfBr7esZS!1=9wlv&*e$;Y3#1;k_$d$h4;zdMB z1jjN-FAPWwLDWMI8E_Wz9EU?kt_dJ>>h|5>DC{#ITY7N$rgfx&56S#=Jp&$82&rfs z-1FtyX{*cay1v1k@i>%d0$lwVI|D`{b@sG0x8+Ngu1u1k)MxCYJ5gAe@ifY$gungY^wE1ZvR|LTm4Og$tSuvC>x=D~% z;a#b;EaIrbHtCmSJpWFuv0Q1L@o5snK33&`;TPSBpO++OT@g5+*b;-4B!32N099D# z%2{U%_kW$b*0{sbe>%qPN0Bev#*@f7vs2W1fW*Dy@4UGxqO8luUKf!X&Cs??4JcWK zE|`rQiY1&3yI7Byjc*&iB;x1Q92Y&YV^~3~n13IPAqBcU4eOnl+HMj4 zV>6BwqtP*Q*tVuoXFHx{s^IJ5-js;@vJchp$)Z{w085n= zsluRYs{jtJwyYKcT(}(gU5k!d-q#7ouxTV53Rn!4ViGCW$s(fwn4{ASK_4!MMw3_# zS7|&og)PDOYY=K2R9CcBTB+ftfTfvxSzQ-0P;_X)Gs@prFBO{|qTTxKxl61DT zaxl|O8SqyY(pcGFA>?09{%L+~vA~K{srgBmlgOIUY6%_QudE)g&aq|0m8m7~OdChe zAl_Sw)-~O}9Y;!L7l$hwIIYWM??QbVa;|c1*PR3l$n<{(O?I$Po`I`=Q|u5eesK_+ z)iAKU{V}uVX(1st2C4 z=Pw`&U%-S`etRoxVU^z7NZ6h&Eyb!_ElHMJ`9Cq*LewA+eKPcv1q^Bd_6Z#9{(gN1yfE*O6XbMqi^}c3 zRZXSTLBnj~Zq%<$FqdOt#jBEYt{l*6o9lybR<8nqXm?DB;D~Eb@nn6Gn=O}&VGq>B zU4t8Qta-dysaWaIuo}6}B^uTdD}Rn{A?4PP>h%P!((Gq%P?Zh2=5WqQq>OFD+- zIaK86b6;F;cHodO#NR+&7b7}&1bS)(ew$3JTwnW2Dy@AfWtu+cBV*`N+R+3QF{zsM zW-=VYOK!&3-)$+88DF^iiW}HYg)#?T>@rjxW*pSwRaU_@aUyN4H3n{h61XjUFfb`> zx!xBQ^!qC6TmB%8pk8clBNHvi6O6|2KacUHv`K%idc2Y>A_ zm1wRc?oeEv3z+9rLUWe#h^~cKqotbG6#_lC53T>xPaD4fP8Lf=Fj0>oX;p4dQNA?5 z*F;2Pdzx@|qKb7-1UZxMSZS8oajxpu;Ye{_606vT#|x=n#HLBtU2SKF_D0jL2xm){ z9MNi%T^jS9JtFCe$1n>aeiUj_LP$hUJlfi_PSg6Y>j9P*hEp?7f3e@gVSTdXc_#G` z7Im|u-&oZSof&_gQNo%C{I?7F%$zm!hN4yLg#WItVeWJp@H)C|HhLDb7L%yXC5HSp z{<;G?(4c0(U!+2+|o+y8_$e$J$5_DVyTgr2ZBPrVEb1n)mdbCl03UrOMxLM`= zgNFPhn}w~kSJf`s>K6tNg|<(=pSBz;!46touq3}`mT1$g;(8|0@KA-mase>o=6ac1 zGRr_rmyK0f4*>8Y)8?ySp?GqtEPKI70M8yA!yI_Vh4-HS|KLXYAp_>2NJQM|&9pgC z6T6_BSOW%NJ>-5c3x_|VDA*k5KQQKq=1DzmF4go71N;`MlObu%lhtQ}U+KO^n;(KP zRfC?rXI*FuXOW*a(Oml+>FQbe3g795z3XC4Q$Jm5zV@ro($0(2JhKY82AZGOTdqi{ zirW&=9=svi*sx7Ko=m;YYFt(w0xHzlNd3=fiVv7nWE*xj+Bg=Ti`Y$EGuo9-UK@3N zxoQhL^LyLg*4(hW`dbyxbF733dr9f5R_wC8Hht!?I3chWOWW7qeCVu0`txyITTB_N zFk0IOO5R=pt|E8y*$&sl&zAXPvNLg*+c>W@f2~$@9tpvb?Vn~P&Xy5CN?{W*Klkq> zW(XDwU$P|>7bER!o-W^^@ss;nxi@VKcb3D5Dp9W0ijEs6O=bXW8o>t+5s;bpg z?PFu(kT=WYbG|qdzgDKPsao&ZvvVEZYfE;F{C6mHa%Xd=pYa{j(`A)CI0;*SlFA`J zd-0j_lIZ6{4fh9WUmwA}zrE+;Fr{(%I);196tBiAAuFDRwd{YcycMPH)4dL^>Mus_3LR3Urqqv>(h><#`4DN8EV!1AtNv`y|PVzS1I z@(K#El9KwQ=m%47PpvK#$ib^_2^k`8BPg}A4W5;0OX9(U?`!$FQn{T$m*)!6M=7|| zXqQn`C1v(6@4dnMjRb#{70=}>nI!*e4Y(c0wx>^2 zqJ=M8vDtg-q0J@BOO!HqP9{XV8>YP|RWyhb`B60u;GHY z6r9bYyT2JEV7 zV8A*G1D1P_Y~;1T`u^X#X-d-2F02}n4H~*kTj_DaImJQ>W5I!FN3SD_E)_qX-h6j` z|A|WUR=T@N6BehAMy_>fMPUU&B@q46bMbf~6j>98JF5-2lM&u>wtSq)y*cmFUCEeB zM28>~P$2K8#pz4ZvaYHp^L8L{j~2cDSTfe@|8>0lQsf~w+eb6ax{yO4<|Hh?%bbeP zhZuI=&a`YD-W~L%Kkg|YK3n{>o;?{LB>+UX_LSJ81~jrV5_IhG0v*x047BW=hiBE- z!VpPg&PRA_`->jHfmlS7I ze5p_e+we73873|d#h!$}pR;;X4~bpK1%KZc&DG_VG`cWwYMB|d2L4l_~-+7C0<4}#EuK?6)^3TK0<{$v0jn%2B9Au$dA z(QPhv&_4l^Sn&X{b{wv(Yl&zG1_QRe@go9sDdQ!0^D>}*tN&p1D1^Wgc}t zjbJS8NwZm0PQuFX}$J@9I|IY2$p+2)Wj~j)neb%Wcay>=u^&76`M4 zhaIAyV^f}uY?l8C8j;Bao9kbd{na%Yyt*;aX1k~9Q*mt+y-ZX?O0)C_tqAFE79Lb( z2bNotJ+);H>R~*5#hcpId|US^8Rjvri9MPY5Y|LkZ5Zu)8&tzb)o2;0 z6sPruL1nZCXyN8q=9Gd%nmz{T+esbzw|+RhA@d*pYhV$m*{BZ`!Bqz{554f#<}xBj zJf2x`Rq8Iy3%&dzzza&0jo!UR7~DB>(VwdN>|Pbq#(UzX0HPw<3|*Jb0uLQ8KSL>V` zcJ+P#3rX7$kIkdJAcj7&a^4U%+y2giAN$?~&C!pQjM+G2`X)q+p;$VYsGU2hIwZV{ zd&*sC229|UHu6vVvwh!I)2|5OWQjI2-I!9lvn8lZ-r?(=9-|D#o>n;004iOR%c?0| zEcWHc#Q`{h%;#ZWv&(0+Q$LB;eH1=?p1N|aXvE2?`zmLD&rU{rX?mi*WdA3xTNmnB zWU{?2u2l5%OfJ!pF&8A$4vUrO0XPGWYR;MORA{3OYyo>(d<|yv7ygc5%_s(%N?f=> zKq+Rmn?~s(p3#@+qfC))*+Z_TcPmAIca{}fwXgkmEHKNL_r*pY!hQ|u%=~fDCl60g zX7f3o3&x7J<#y|{M{F*Cyp+`G0{Wln%=6VpZ5$bsz?N(NtefUKpaclQdjhC!`#ZP( z&(~)+*m(LV579xzkl9Q&{sumyxb`gVpVPj%7%_3O`3*zqvz5cp8$~7*1pUF+&md_Q zzh6E?9)c!Yce`?j;kj84$CK`M+my;uOb+6P3r*QyoQ-_>6IpsNEF?yh_lVi_ez4J+ z{l)z)pnsmalU1&u_k}p*>~lft++T^+!Ib1ePip&M)IxKRK}6#uihn_!(0{Fyjg)4( z+4d)-d#A%b^}F>!#lI?`XUQe%{goj{tK`W!lg&IHo)KkQy0l^*;QZMVfM}JhV8rOV zny<4oUyvc=)cV>_$s*(AUdHfbttY4m)Ezq#!-jh}{Qup`B&z!oxjHEc?9)U%RnOqQ zW^|rHCl1@7td#jCs7%3*rwE=xOv#ibYBrn=Tq9*MeLdFF_~=Nq>294_kU)xNXx?RPDD3i3tTcr!nYkuS$r=W&zNhOmB;q${)~OHO54(~ zi?iTErwB7=w32tR*M+-X1%Y#&GS}KhPZ7z6cX^i@{gffqr)#TWX;$FYp|L+Lsmj=4 z84mMEWCZ9>Sx4N3#Y!uG6V23VVNF;r;UqWavxA?zBajA2FktvWK_4|V{hWrh_EHvamitapbc z0r+j!F^bh)-q*8om3OM8#}k4ai0O_*Oo&)nn*2_jd53T`EIcSs&*#lzwx&;r{LXHz zT3>sYAzbCe!##9S%7w&Gp)H_zekS*Ng?_CFF^$2C7r1LIXDw_q?}eXrYrH02RM#`} z+RwB4)=CW1 z4f79gYq;Yr-CJ0^KRav~`&2QOq}b6izmhCXzo+}HZ7a<<E16!l4&=LcYf*vyM@I!fH zA}A9|i3N$~c($HjvT4Cs=7d9^FB_|P?U3cHdXui!Cpdd;oBrT>nXK*W{aa`=_50RM z;COVWvoSCK|HnWs<7F}i%$&jkvkUM!<{BjXayt(U3Yn|-aJhsh%hK_aY8x`>rRZ*^ zmoi098#z0J(Q%P3*zPi^hK|FgHe-n~Eacqqiy^iox~;~u{=^x+b4Nbel%r!p=+&hKXKM8yMe(WV+*Gg2@pt0mT*cJ3|9~qVoI7VdUPb?TuG^S{HuI*KC*!#Jy4>l$vCOg;%=95W_j1dq{G?Ik*~Qa=B@ z<7ocm)vK(O5J#C&p>5b>h26f4CiV3$X!t&MLW1qGkPvFESO*pY#?S`+7f{G(9VK{p zauJz~>mo~px@6r}?WJX?>HaXO6oE7t@*6dOlI2-g{mP*D1zZ1$+W;}l6r0S>w;&;r zkAYjyXh0&`>Bcqr6n+rWPqP5GaIZqw7-XX@4XgxZ0Jmqq0dY_>MJBa#n z6_~B)|7tx)CP)^W;;ysE{v2hpcE`MZv_cqN9*h%DBJu7iWVLP}GScc!y@p_bi> zPr-XK_na*up%k)PDANyCrEihA%!rsaJmsxWL^#`gmT6?Y7prYhnuW0ffN(%p=oNL= zSO%G~(P}pK^b-sEsIhWV0jy!H?f?6ST_eDT-eO(j3Tr&sd<>J>P$)pqD9QkpVryEq zxL13&L0~|@WI!`^t$fLtHceit{RhWZMHiY4?!iOOXYEGov{RZ!J!gp9!oR6Hh6HD- z*8@{&iBb59&F9+*ECjKqw()7(l+C*V2(mIE#=2;;lvFJ8_UymvFA*XW@{WAVtBZfP zAd3*_DJng_&`z>pZRGi0&tq@6@7|RW2(q?dKRGHTgk;b=Ft%tX;PscA$ot*6HXZhP z?XB1LGMZjSEa}&xY<>>724c#eH|B~g2h;Di9^~midJ8YC1yKh zsF_gf&Z*UD1?7yCfoLUZx|N&&$9)U89TWl`3wuD1p4ba$MjG=D07CUS>TP=ofM+|} zj5S`J>o8khPw!FI^*yItupyTo#|O=ro^g)dF>BO>E6+{8Dc=65VCa5cHMmsX=tyPX z>1ZU~kfgXX2tEJ;WEr;4W;#s(xAh*ZT6(-7t*<_9g>Tb7OHA=DL~2_2`tQXUdSX zID(JL;bpLB`;*h#D?$$26}%AVQ4q~OS(5ORgV(tsMD7B#;_K^MFr(O*ky%2Y?uAa8 zLxpHnZfMBky^0k?!j=(?td!*v8kDvXoOts7O~+Gx87;Zghx$^^MH77Nd@*b>oRay( zzw*`Qr!O2!Iak#WmiZ@~+H}WvxO4KF3#xnA1?q~>Q6rZfgkK^3OnjRAj9+mWzRvc@ zY#<>{+Gdw0)XK|)N~J^g<~O=Y)q5vh{ttI%UdLga-8#<-`AT(O$F<}{<5F*_75b&= zYxX`@NeOFq637y)3|o!z1q^?0=oNfI1td3yO`|Q;gdzGGKhFTi+D0y!utGaNl*A1i4n`lR ze1x>`SoMC@h{Tn3S&&w9-j3dp?y1VE!ksLh_j&Aoa@zk^ob$Id59eRvZK7}`a0DS& zd3I~ovekH>gUTD#(@ea5LlWo^cs;3wS|5WijdSBAUteFr<-o+FOA<$e(7Kka5S z?S|qRf#4Mq4~Sx~2^mq%k85!kGAHzNn~^#Sna$BrCQlJ&)shEO!}Q;|?9i_fk$cfR z81!zeZ5QXTPb?%&_@a{>)^}Zi9EIXsCegoZxey~k8YqjU2!KN&y;7za!%lyu`?`2t zpL3r&E&6b`OMeEOY4}6vfq`9+KI>`DLc6)kJ^B$9@t3tqk}SX|fciz2>(55C9RVMn z=J1{Tp)9R2fSAX8ue3Tj7eN5k zom-LRyD&+zLgN?paJGysk#5K8HQI2jHNKgd3 zF!~h&fM>IoyR!Y##HWj)L3dlSw=b^!V^D%UXrbHJ`6Q}cJqNw&L%LE~$wH8lyB zgfDN*mBlRb#*F@znYM~&F?vd$?M9++d|$ag6gQsxq6ty37JRAzBR6vDZCAE7WI$O~ zk_DzY=vR8GxaSIXY_Y6GMS)+iek#=(tXwy0)+L@UyvhRPF$Akb$5rsk{F z=B5+WX0n?9L*}q^zwy$XM*lGVySkiF^q*AHk>P3cB*gBI4z`tbx__t?kWCuaijKPN z!Qq7>$Qu3QF|(N|5O$;7nlPd@+4l8@Cqfk&TWv7P-}$uXB%d6;iHgox$fNI8^`VLO zvG!D98+#VBcZ-k#6Zd)KUS64I@%mim*y#`-t>AK!B8k0ED>@waWmd>OqgL+mI}0vN zWVVsLJ2u0*Qx`vKN?#TK%hwZb+gEt(+Rgs&-F;`Go_OO@X*-s!SM85$p75i{(!UtQ z6EULC*qIg()ocE9bc!$B{MvN7GvS7Lc_hyn=<3=Fw(9axB z5*^#Zhq_*vNu9Pk3&2mD0bfLp)p>;96!1xKgv~z%8o;x;Ly&%PM79&O7X3Q4<$NnS zdlZ#8^wW174*_wBMw0Ghg+6lDaSPD%35a|}z6&I%zsT*6xE((fb9D4)N^R?H`#S&NV9=zeFM%-w@T zu8m=3=EN=Ob9;X0BV{;lkvfl)lN9%v=uyw23rOk+hv6!E3zm=uIK|pOrI&9q`s?c` ziw-{}(Ie*oT2rD+)j4Dk&ZxlFF55v?(YI`L-lZ_4J1r@yYO1Tv-<~1;8LE_wSfA1A z*xu!-%?;G+RwSUPbKEyQA*wU@(87NcRXJfS`W@dKBO51exu|ga+#qOC{yBmyd@6X^ zDSGKFkd~=ffs1=FxhF!*&%bU@srkVVzaA6&Wrl<~CZsB-Y}D283C8a=q~NTcs{v2p$O-Rg*04~>pQqvswZn2y2Mg_ef#rDkl* zU5{M3568@=S&gy&eW{$2Ruka1m?c%`ctz4XM8156{pUG?|8eZV@RRCubglf`y$#xS zACBsCh%j2(1<&Ln^R-Z&SkiOEn>IbGBsfwh0*uFKQE%(~toX#yx}GQa(Kp!bxY1QG zU6)tB1^<2f`Ox4TkWk2|6Ro@?U?2H)n8$qQySlKXXrneLnFL|v-zHc&WPJ}5zOO{5 zbHDfXaPC1iK%~z`nX;&7HR1|NfyE&Y-!MgK+AIz^!4PSwW@vIMDcM|p zy|{Pmi?S`|Xq25vFY1pn*4ws}Z_P8Q;h!AhRZV6g{>WfO;ds*LP^iP zCYS8*pU|WS)kP zK}MLP!0;)95JArE3$GHKNiyIySiSKFPu{laRe~3|6~%h=3x>+srPYoR#hS<|>{Q54 z5|TM-t11Opw!f17#+I*>HIDrpcG^zh@8D{o2bJ@U z0{4n|vFllKl=_S&7ffQZbfQhisLd}pMJRqR{zT`pyrpvWrImAQ9{L~k*8KLRXe7ng zuQDy0ccq)UBlI`9^%b8*H7NhCek;wxbfXYQ+qOAh3jbGpuXjzq5rgqpKtIPOaoi4bKH?W?3TKy8F*bSD33Hq9@8RMdW@WN&C6*=WmyZj3;aNQZ69 zs;t|6+#%Raoo|SyOa%Bsl7(J>&~;P*TEq17S3}*SQK%Lkg>fD~?@1!yJaTpU$>)jkZno_e7;~Y>82ZV4 z;}2KtnA8JFquLm+VhwKSWcHhs;DDeUoBYAnEO*hQbFF0&vzj7(y_P*4RF==L>46*B zs-h;$-r|l;qFD->nV_#D`R9?EEnA}QjbWWd)C{6QD*|}TyuT!QYvX*)vrKI>vDN|0 zD`qAE8BaK94j|0biVnabp2nYEw7!H>t>r*-U3&Bv&>MP_OUY4amU8F74+||fofZx# zcfnLIddsLVs5IH!n{!psQegu&_(4pOQu9a7X<37~6?^*cEepuy!FR2Bb$F_QV6 zviPV;domb(YtA=O4HbT7p~5#Xd(V6WuPtvBRkdeK!Rpgup~(bY!Q zT`-r)=w2PCLQg1Flh^yl@RH#>p-`lqZGiiO{J|J5a)j{=Q~|KdVdwWsp?3^aJ?}5_Ky2 zhpi@NHP1E7r|84-5wf#v0=~PfZOeL4)^T z?oT{%oxdIn1o7z`Fo`>D0a2?afffyu?4DkMiYmnX_tNAnDe->Ta_vY>g_IBX8uC&Z%bkJAz1#r@)s;l}JK@63^+a51Da+W%bJqHJgQ!f-&L3&%)e!au%2P9lNkL;+XcGdzROHGcAIHpsn0IFGQ5k)&ilW7!q zA|05B;_l#|TD4!#=?vRMXh>}J2MvfR@UDdvSo*8JBZmhdSqM)dX6V2)P@-)J(j^qWwAlz6+?Al1@Z}B z_&WR?OUt;v@ny4Zm*>gmvr+42G9fxiJ90pJ(Ia)_7B1aSt1rnT0t7~{&u9d|5D5Vu zKYi+rDIifJF&^|Et$9`@#10L!5r6df;!0#{snE|%Jp=vHH{wuZ#lkyD5|fmIfnz1} zo|O4)hywxQs=J{oHCJuJW_7EVm%zz?^Y!?18wLogN6r&AP z@OubRDsDJDViBC9U}wPo)HCLIRo`Y#K;@PmxmOg}G=L&s)(?vr=sCt&DjC&J_&r<@ z025hAWZN&$#QYt46mk~*lG=0z?b5gI#>pkuFhg}cEcV6neod-?ePT=2(!}tVbsb0N zw!XW!&a<*lXP*nsa7kO{H$#DFBlDX1R2rE(l7i;vECPLi@2xSNWw zJ=Hh(qwkY;Tn?#A@3WJ(y(^(V#~vbw+PfJej&Bon$#zt`!jZVxkhiMF)pCitagC>X zN5rfw=c;!(ShYZE`weK7G%Ju35fKNXQYC&p!gUvJnz#qr1DXEBH{fXeag*F2mz#K^ zt<@`OV<1@LQats0deT?uQskZby7=gQa6Lr#RgL+BS_k6EEjJR!x{W26vse0rLr^uh z5GsE=%w`+~7p316-B1CvWFE_~E&!_{Q-g$T4Y9}@0QY7ZcxzOjRdzax6-4Vm1ypJ- zr?NHzq|xvijfNpQ2I+>ixmo;>Zsr`7e}TPgOC7AD!6jlvzP4#vx#Rz$ znRb@MgBPfQN`5&ZNj4M2Q2RA%5FZt38Oe4%fvhuSWC>^4_1Fs2i3Cs8Vu+ajDa$ry zD_S8AT$fv~PiEfo%xQ!8Y7c*`b$db5;#oJ{rk;MC;^H|Rz_1)x- ziDT9=UN&6o-Nw?jHT_AmC04|QxS&8Fnwm8wWwN3b0IS6C^c1aV4YT(T%@W3({2Xw- zWjml0XCi#-8U2tAI=h4M1}G+a+z-l1a?9=x=}{BX4}{Js-M)rUGjVAydcU^X6;D7l z#*M7;s^?(5lo>h^s*+ymH0IbfddT&>f-Pf=4*+S?5WnAgxDLq5q`P!Mn#2$F?t-C~ z0Xy2=_{v}cf~OSENdKc?Jf8%tzj_e8@sk+wG_2N*J0zqfxicz`7!@O8`97NdhUvyC z#Maz?(WjoI5j`bTD6mWT=R`|tKT+VqRY@Ast1;@fDwh3WQpLDLX(DC9u24)t3O{(F{$x~)Y=5w1@ zl*lJ{gX_g+<4pJOO~CIoCawp?n+8#qfC&L&c9suVnG7ZD5TArq8ZfPuAMf04YSMW+ zoE)Vkja|Jd7wHyZBat>;e#v$jH_1=zLpPWzE(4yzQGUz&%mAQJBv`?k4$nUTAh zP^-rSvz9Oa%KHd@l_y3!?;;47nyL&rX^#=wMRJ)XA)L%E= zoS(lv`IwTER-kawPCYrkhefQ}nRtGfvzK^Ms~ul~(Cq}jf=&?0v=YUOmn*c&|K4aw z&gM;RyL-urf0ZQjRARvH^JwEo!+EG2szsa70B`vB<7VRTn<(NO9QfIbD@v}Z5q2c2 zhlZ6a;L*y31jO8Y48nfx-F64dS)Kj(RI_;OsLeU4Le5<9Hhl7;8q5e5%MYuSY%)SjD51g)^dcBkX|Jr-gsHU>-TeNIS?9oC&q=`xi zTBrypNSBm_f@OykT7V!?5uyU3L>hr`v{X=OqSA>FBBG!IMhK0xQIQ~BB7#6d6KNxD z2qArP&fCHI{l@=(x#NAf<9&GJ))|Ei2RU-~*?aA^=9+WvAY~z9z$fY-bgeqCpm%qX zD%lhUCwsibLDqsrgGu}*Xz;|eN@11fMp9xzcNh`INvQ$T8yKClZ@5;o^-w8 zU|&}S(P#>ZIJM*W_(8a}JUgyEBH!-#>lp($*BCjY5hCebd+%D~7`D!cssEQReuS)n zu?lC7fTtSy9sQvx=gOm-U<(mAIcUG6u3Z!rk}QyG$cH`~M_Pl>%gSKAxU@Wed(`08 z)Xfp~l$Mae4|2!*ca<(%a)W|Q&@t(?kvGP?KAkc;HM7MAH{Skd^opc-cG%c)H%1;v#}M|>3Xga4_706`^nEl^!&r${ zxgW2D6_ohdh!2njq-;Qa1t*Z5H-Tj|;a6aNhQm$3es;xZRTcg;tPzu`>KKX?*PzUk zMjejh!!LktRdQNDG_LPfH4Pb^jP4fNzDDzq-+(71ipNZB!5js-Z?K91)C;WI-ykjZ; z;3rE|m8W@%Q`aMbCwbAZL%89yKqnm*{^lf+Xofr)UoT@~p6wg6FTbXSrqPo%OueFzw z2!Jgoo02q)*~{!&e&z)_A&W%Mm1W!h~ zbEs0(*+AZY<=Pr_`#MI4G?15z4(m6{o)IiRMQ zDH9TI1uEK*tLqc3$>*7B7#Ty+e;;Rjat=koTXy-K7jxDkDrsf4dB{m)RR%osK)^`E zju`_183;|~F{(}6TcGYd(=1F@l_{-CJZS!wy)hYKouMS*+RH$L7pyfe`3L<%ATC1- z@`1FEn5AkKR!hsafT}(UG!SnHf&{!aV4fu@7Zazp=7u_TL&H2G9kgsP1Zl{}6gA9W zP%<=D$;9X@JILV{wQZSVj2WuGHY-tYW*D64Qbh7Mec&H{?v-)d#swG;b_0V$)}clL zRsSIM=2THwf9qGQ2M3&2njV9miC4Zrzc6*GG0jo|S5gzwPD3Q{RA3M^z89_SIXHEj zspa5VnVP?k@B1gYz^m#nOq9^VE94=tV$jqj%}#IE3~IcPd!>FE#?~j~;SDk=TV~-U z92(sauqG;2&xtUQxI`-@Tr@zHvlI=ppY8iCFDZXUD_i0t;p5`_Ck)#Z;|7$3Pfq|V zC2|)e3eN%Jh{ZJ1+v;k&11nkv(a2qm(x4fwxds(mLsZ*?05X49y=5z%Y(8}fkR!p+ zn>+Z!SB7IdJ~mTT07=>IoteqVr;HDmyU8K?c{J!y}Ij5 ziV<38f+65)!y9MTEvwcqZI6FI0`Y5V)wO%%sHn<8OXdhv-xXGc5}F#{Lb z2i>i&mif@r+Zv$0V+Uxt(m_5ZBCPR3`nJEKpQC*Yqj<$va+nUc9CxI1t|2UvB&-d= zrv2;R5)lr-LUYW8LmrJ6gNu9QJek z^Jto9xZ3z$Hi(C*PL}W`MSyyMN>S#W=XUpAcHP&lZEWXkE&hML~7QgfemeD7k>DY?TL2KC?Vz;o&+RUuh~-a~+~yIgT=GJU}zT zeB*F2+#L1R^1;E43Re!c4O*;^^zd`1a5UtNDHqVJR-@y#C=L?FCPvhR{>ILeHh|8g zF71p}8vVr(7gas;dR+d|?^1(kAiQwsi_1X0%cfytd4tFKhTNNCq;1dnfjkc1;{~fJ zWkwsFZc!#3CF>~9qwlmJ@@zD}Fz1NSRT9clSeiB{XoIFA7SgI1waft#_sH4U4Dl)l zyrFA#jXzp|kyZi*YPp=eO}3n)7>yw_%oQU6JMQ$&ZR)BfIi5Z*;>;I1r_F@IpxHr3 zfm>h1*K_fzI>XXR+-b8q_Er zZEzd{3a_KUJ_ta0jJ7E2*&OH-lKleni_~#N`0~=!0UzqaB z^{V%eclK;nzvZOnCY^v=*|L=w4+@>De!>u)&hG!akI%2Y#c@j*TY%EHIatx(mIwSz zpcjJW>k5%kP1pmQXXF+gEgGT_e^@J^a{FmclVTB2zlESaRsGNch&lHd z$DaqTQSAuZqry+BI|})jq`-pj-2yQf@^BvGXkpgwZ(>&=gYEt*F&KUY&C2njBz(1A zODK@&j^qh*c?nJ;mbi21v`(Oe^`Za+C>U=rfZKjyHL)%7Xy#@_4eE|C>X6elp;jE>37T1LA%jf^lW2buUTZ53I*wlgs zZ;Dmn1La+2P7MoLO7_}^z6i$?(FeUE*ks9=3_U}GS8)p(MK4_#i4kpWzg_}_nm^lRvk(F>pb+&w1QTvx6ic;wyX;{Zoim^!DqXAx? z6tyWZso>2;>S|_KSEG7EyORZ{m+QoZ;n8cKi`Vkdh^wT92K)DNu{!#CYf_5fk)3?h z2c#X^mH=r8XOg^5nlN;~RyTY3n^D+TpPs7<3;7;?axp-b!tN-H73Y%TiGUcivO}k? z$%VSF?@f>2gcXLB2jiLJ29`ukv0RsYutrF-!;I$OrqM@R@XSo3^Uj^9MNK ze$$X!cjIZ$9s>?A3n@roumKoIR=p?J2vD!JU~sl?pN_b9E9A4a|A|;-ZlkN!4g0fX zs%C9JCn$b2I}8ej&qUI{5q^u$3+-H|-jR*%)_qt{9Oa}PE!pKq(&)P;Z||O@d)L-FtaI7X9lzb*?9ArGs4jNH;q73j!>A13THyshC>kl+R$v> zoCN!asMq|tAPW!hJv+z}g!Gp{!0QG|f#gHLyAzNGDasG_KRnVVm3SU!IJIN${HeLp zji;11zKkVCAZS7n2Q`Nvy`6IDHSNt4!7a;N_0s}HFrh#TmI6s{e4Bh+(dIyh$Hdrc z3&!;MEP2_EF8ixrnpP6jA9H!3(`~zn6H#@@>|>}aUc5F+PVRA}VRV+UK-HTnFgmp3 z;sih0S+ERKV^J=nW?_`F98ZCfR_o?NmlE<|==cRQMDrr`QCrWh7IlhNPE}J_R#>&l z+(0v$?zyMI*LCz-G-v*Ci$z5*EEJk#v!&!7JrobuPZgYs^p-D$lUxEBqx$)3BI36; zl4wTH3vk?r-a9mWM^-CFp3Ev3VvMpv@*nD7#+7f2>jDc2gGeS60SCf>;l5U5cRY-@h>7Suz38{hE7 z0jg6j8^KB9kBlC+6vi<_F<7xX@}OV-nc|S$l00{4ql)qf+*@F+h&t zf$E^YrnRX>zBj2v!p;s7OLh(#lGk8y%_O0$8w*4fz(PaPEdvHJAYm(6bUzsMlxx?f zBl?#faTigp)-;>rI>t?Ez>-(R7-z{>1Cat)DYht2ck7!e@xLWHLFG|aNBlO|sNv>`R zF^p0`kqy8LWNg3i%gJ}_?N3H@okq(w^dq*|j43+)dAQ-C>z6-McGQ@`&IE(1i5J=I zu`r7zjR~?0@5s%p%b$AqtW0JxNOpFAh!VckqRp&|&@r|`%D4Df16kl{3l8NQ^+r-; zToEN863F_F&f=zZLItlq6`kW`reOgBMJhpmOB^nL9i(E}xpH}QvNnOKbkQvgJQfgK z#fX&qWzrf-R4!#8-&2MTS54~3&ki#CZ|#-t8{J#CHn=JtV|%6dWqaizzSEVmUsP;8 zjNeC~rWji+4Nd~Gh5Q-5?8{@2(5t$a|Go%S*F{rp z=w~EH9;2%!l>155z5M#B#*rySWsKqgtORS$VQ1~vsAME{aBF&~4}pYmNKlk=F?o`% zeF-0pMU@A&N+ulmNtrhNg*S?7MYQOXp2*`RdK&zH!Y@>BGx@S?7e^DcoQ%4kexPJV zRr$O53kwU-0m!zCttc7sC3JFX zcM~BAPBlK6w4Tl}Pg%O25&F^S>;TC~)>-c1GVsk#yDEm1)Y#V?DU!?tJ2 zgwFvfi#60WM%ta=Dw#-B=ZyFmr8^4sYN9?~+S71UaT)jLj_&>o*=*pKM3VIXjb6UO zL&YUQ0DFW~QH36tw&PYG&TeG$1BG<-D3~PtxPN;PD zAYra<)4xdbha>0@2O8+)YUGYqK@1>nsq_X3?6Z#W*39OIJwM=G;67gHol@uKBRuOc zIS?CC0rU^%Q-@hUG;^L2xpwVQECmv`xh@e2R}|{c+}OPdE_FC*!=8Mp5cP5}iOdc= zU!2%o;e>nLKT$1HCa=7>@*w`x-;##iG*lfqq-ZxEWXaNNW7^&ddcA{nql_xP2;=+w ze@!ijT#ZhXwR3d`sH}*`l7@$E2*n^#S@tlsQ*mU z-Dh7GAZyX+%7AOlu!A&G;n&5|3)iTcfH zh?9bn0SQRdnDw2G0v^$MN`e|DvwV>}e!cGL`%K3Y9eD<#2Z{6y^(~V40_W#7IDrw7 z=S(?uN=kVK|1^NLD);_NtcBZHoYhjU70(;JEokyg!e42wyL!j&>Zh3J--`LZ%WG0rTaa%O8UFKn zSiTr&XIb``1yBM@(p=v)fcgrA{n4?X%Djr(Mv0ee%#f>}cEJBhs$93NbtTO^o9%Yj z0tnH+fwKx2CGQPL&m&;3@xgpjO`+F>o;oTSDFNJ$IbT$jzV=;GdJ0Z zNc0hIwnPIR=gPqV(*$A|#bwU7#E zWaH!XRbI{HneW-nphW zqRrJ3&@h_W(x>^x`e0w>avDEUjlAuwNe>-3!c08U@W7J@;Jne(g1?R`CW;c7ali*Y z=#6j~1lyN@+19CUc`-u+3x!096mt+KrB`eVtMDBvUu=tr6jC65{BJbW?@}OD-jhmh z1@7M-eLB=wt=gjGxG3O(F_)P-i>g(=$e>LrS2<&Ve3e`c-Fefo_Aw2Lwd`#pT@X-tU+k z*)jZkS0a{NI9A!+Uelc`plnW%m^hnsWq8Di_ut2y+$D2f=1{#qdAa_@_a*O69&VgC zO!EJ2^i6D%I5aUI9-<}(L{?b1&BX6cySnm$W!l6M#a2t7JRPhV3n(4>EmwvwHp!4> z_FEzsB06aQ1V*-?ES3V=Jbb`G2YH>{d*&Evasu@==BSLGGI`MKJl_PxO$X}wl#>`B zo9jBuEav(GrlYFC&h0yoU4xlp15-=Btlz7`}zZ{{h`Wt+tZGALK<^IsPn8XA~1r|6(JXfBzn*dc6Slv|&^@u@A4P;e& zUwPM8*R_+gE;p_abZ)JV8zwR~&iE!)6Z?>)0(foYBYe+QY(Ev3e}JX%bF#sbAjwW( z)oL6WPB(DyH6Sy}b$fX;#B)irUyi8JYPLqaL2PzmXCR*rflt}G-=t4|wjAdtolCZu z=ken9vrK=&_6c@?{-gpikXYF~ac{G|p4vxC| zH)B_QBT8>p>836t%IDNCq54AiDKSk6mx0M9=Y-ZER(QL!cmG=c@}u0HkE8z<{IN7V z;4QfhGCNPN_J=mZt?E3->9*U<4qZoyMs}gz)4(Fu+rhzlm!}7Xv+aoR`21-K`Fp@W zn#W`FQZZW9H4@EzvGXZEUptPnNIF0^lFoX(XzT1>wyEJ|_M1V=*D^(J`mE0alwqbL z>1Y^!LQNk3>8JuuJcjDewO@21S_~Sduyz#w!phn8Ts>5&+HQT})$v;SZ)nyiWU(G^ z@#!6CGeASgRcf7s01&Sgb==#D9e}^dHlN&R>1?5J?p&M4%H*_7ClJ1+>mZ+PYKFOoU4tnsIwA1bbWS#BzJYc_kl&?myg0#pcpzb@%yeYYjnaw&Vj7*7yGb@Hx**Wo61j^jyn7vk` z7*m$%pC%DIo@xHG--F|MU!ug3%)HO=$wjvhXnp-V@Jx{wHVv&EzSFSg`t|QX^=&ay zNxGV}MKQ$x=4ZLm+njb6`+Hb4bf+dB6S>)@aiXK1u1Bi@rfOmwpNg-y)O3P7iBkg0 z(7|81QUv8xIx|nt)=8Ee2AaD|$+neu;>o)qQIW?f9S239)8rhjPmbp^y{N=v@>jBd zjmik1d`z=nWAtC4G19C&^tw>0X5z^`EL2TQAU9@f&5baJ{2G{#0-nW>zL_}9=w1v* zsRX)mG1y5M$-oB?1U+E4$Wh9(`B&AaD~DbA1s9IPZg<7TBAO{1Q|B9IC&Ao<$OzdA z5e$;kXwqvkrTg73x+NMP|G4bo@})EjeN^>5Ov7_W7_;B%8)o-t_c`f1@6~Qw5~r3W zc(>`840lV>FAh@9Suu)~(t74HqqITqUeG&Z|yY4}G;e!;k^IPQ65p5bg9y zw+1jNKwEM!F6w8rJQl%skj1mTV%nVeI#7(orBW|`p(9N?5iqH6<^){p5&=h=AnYGy z+S~~fz~$!OMobF^xO{>h@sEL-`(|jRTzN>7&>DqQMi#2pB-yi{BT=^fhJ58S;Ze(g zE6-)b5iC9SyH@V$HMRVUc}~sl0C`RPw0|^m7H&9aUmYSG$!I|$SxqvE&C}aw-#;xs zy={H_hl>XNB~Ko{B-xn(3xcpQ)}h?n1+*)NNkaiuV=~@g>q<;F%X!o0Dtb=U;9!=2 z@!#kVmOH}fPcmN@aaFwdqh5DUAC9aVQBe6hg9Lad_mLLakrA3`BB{4=*`(mjxouES zLEMu?3HKIMB7MB=H7rRe2{`7ff|LO509qSUOUe(F@8{n6Wh<#HGPyaE)>#gKguQz{y6AaMXKy-IRJS-`%$(0zE)F%GPQ?$ z<`$sedl_&V*0vu$p_mD+fY!N0xcAEcXr#XiXvWyUF>7l=Y=?61U-jU|t5Y+Mo!xudTY)Fp~OLz@SHzWI1J)=8Xt5(M{cAeB>gugY#nis zfI|)iXL72JOlG;Zs+L(@bVRwzX-@E=;#h@18X`2{ASXRkBL;{#g?Hf%bM$9b1Flz6 z$tAu8-sK}GWLS}BcMQIO>7il94Lb41f!{n6rG)2ouDgHbDGT6e#A{$Pv%_AO>qXA^ z@A`XkHo1UyS)zj>9hAB7&eyOG>#IKiM+lLPR(h$1C9dx4%}!sk@a0R|&v&t>8korq z57N$o2H(Sg8^7_pZvhYa`oH%Y+ce4m1*Vrjnl+355Lk6EBqNbWMv9;+FFyZ zDo-&gmqL2;qZJQmFZ6#@)y|KUou@vRq0iZez2#uVazPZt0ip-FGw0C6-5R4Q;4mg{ zgJBUj3L3(+i`4?8x!fpNH(!leW4vQ?wjzy&pqrp5iyG5(iu6S#1iEr4L(YS1$(&je zb5@$~w194<#GbmKNNzaNi};hgQ~Dy_{jqnu!!l~!EiCQf^2f@C@uukgxtUX^Orm04 zx+^cZ9G1IS*!o)OzfCfa~6eHDE=Z<^H-B4LlL z0+v9DQWi*wn#w@OLkp}TMCFD6$mJ9!NEm_J()u@@bK!*; zzKSVRZvB>;-USp>xKWWhc{%Q9QRsBT%s7s3q&*y}4D?*x>#zLIL7nq!!q~oneiDRl zb@M;JW0u{hnSGn}N1XwaB0jQvvS&O-(v32>eF)ki+d2I?bh`gG>upgCF)pn|(%7LE z_5Qo-0BUETWO}^@$cnzli(Q*hDp9$RV};al`6_xI%@CeD@knJ(t%7Hu{jiE+kNGzy zsJ_X-y^n&d2D1XOG?~0xl`X1TH~%Hf}_dtOM51+CRbr_fMX=(ZqMlV%z{Iv0b);NPTVUfYn1 z8TaTLo)>kof2+r3@$Hm2Sd;u^(+RrGE1qT*{LcZm?Y=&?;r?%kJQEZ`6EOnH3v|`4 zo5&HU>O{oJ42zAge=*kP4D5Q9@ZRRR=1>0=8P(d3*ucN_$$FRBiE~kBj@&BgAs0bM zMk9VVPcdCQUYP66@k7d|{Nzk=qu;qH|Lo?Q@0Of7(l~WfRBhHFVukF68pMb`nZ`po zQ22pJnV2Twy-iUPCMD?z7YQUmYmj>oJ$V4)qdb0ZZlQfq+S>>d-uq?yAAUxzP`dKJ z0y}$(B=^)>@N;#Tr@nl$`7LUefJdMq6N*W2owD+mI)Y1$rTSXm*+`Sb%#$2eyq>4C zIW#RG>Dns##*bGUN32GYip@Jj7@?Tl=@E8jK%P2}P~~(>?C390GC2@az$q`f(JPgU z^F|Hx>-JzYI_VedQbh!`O&tFe+ zSZ0q}LAH)=%H9)QvB*C?SeDU*er?*BCinaPT5ulXj@_E*kK)?O^e1`fS*DW33{Deg zE3d6+_Fg`dBA4s4F))jhu-`mn2&y9w1cIh#Ab1#8DNZWBx1dk2S?9v@mdFO(F`O9H z`Fmx8-yV+eyyF0E&!?l8iW?Im_eb$LprdU5O?vQQ$+#PnSFPC@u{lmz6ZR;x`l6Hw7UNO52{x+Skm57N^JHran&E`~a@Q-(He&H1 zOXL^+`XKqH1gnXa_YCddUB_u$7J z{f8AVE$TotwAtr*wt>ycJAV+x4y9 z_t%>zn4-9!>Fer84;NDxoh1i%UYS^5La)>(8!Hp8tn@qfw=Pc~UnOVZdP|l|UOQsc z2U}+a8yL=%j<1X`aafZQ&`iq^E*q;D#0)MejCp&mYSSX;9q<~+2AYnRhuxrTC@P%N zhS^fAqMGZj*b0ZhSK$;WAAg%Xj2$Kqb8PA#i`NPYW+-b-hMeK@0bi+@fWAwZ{$}!h z3e}78wVi~6c_yi`Nzkd~jhIGEbD?k5PR<)6bbH4Q%zs<`7V_dqVQ$#qqLW$8>*~u5Cu^|s{K^FHQ^rc2g|Y>YIM*$5PG_v2 z-DbY<=GS*GJ?NK%*Tkns4Q1G;lUECp@cNT@sA=M5_FLMGbW^-uSy0u)|{uc-dh*9;S)b_`h7gUf&*BuMjAz3usW(teis(L#B|!3ZZ$w z`Aq1Sq+HHlj_1>9L^PDj1OJ|#xE$k`fj@t9Nl=hy0TCNZ7nLmsy<*D`_` zmmBW{j39ZzNMCAspN{X2@3^K&o<`Cs^~pzNGH|j6M?40%S8HJFQacZ&b>97qxos`r zW|kglQFQhpL=i@uA$N^>czwxeVy%v7;k@Oj+KvaiB%|9>+!J8wXRfZ^0bDWjTKlNI zWLuh}4wEUORq$?IYisRE{Z?Cn51?xQq zHISFh;Hur;=ZD3uUF`f$Y~W`&y-qi5>B_K=qcg@r5}OI{&3{yO1h;~|0e?A z7On6jJ)qxGJ?|7suHU2d8;&1gdi`Drg&-dnRX{u&Uk;Mb8<)XnhQAV!B0{Yon}?FY z?<*Hsv?}xDS|Lx4fTLVtmQoPWgTeWW6`h^cu1wS72R4r_v-G%CV5exm_Q`0%20;H7 z-mB^>rgZJQsq#vb$7<<50Ugu9$3kd05jli+vUuZb>czaH=}bSlJe)*^wHEGtJQT3x z{HLO?-&*e^+|KfwIL`*BM(k%u@hgW%iw_q~vXp7Ww-~{-Rh@sxWdV5G8zU3BEl6;y zRK^tZ#zXCj2fVnl<|~o%dZd^*H*xZ}oK#d3i6o2-?h!YSdx1*&uNH(`%=N4{BL}~5$qb(& z_8tRHfp7|Cpn$o%b*lccZ3kswQr$=Q5Ndo+OceXRh(rEUk!p7y&%(mF+t(S#ZKeM* z=sox9@noCt#y>*EFgY_V*mpoD2CuX5de>(qRc^$8XX7g7wG4dtBF1Vh;H??? zrI*$zZ568%kk6_wzuWHHV-ufDK)#4g=Dv&^{uomO-S|L(kO5xdnI*M2fzx17&sTw5 zy^*UuC3EdO1v`;;N9rXp%gtf3+?*5D*r4;vclFbKt45qsK3ospu-x-zPJEFtFH9$< zgMU?D{=&(qHO(_Niu>8uhFv~|BMbdLIf-%Tfr!h5v82|iKphLZY>GDz+Fe~`LH{iQ zZ-O;vqwBjzyw0;TY9%5fBq}2qA>I5G$@PGBPOk?J#chny_`A1AoK;xO3IEvzAH z=&lAmZiYCw=9x20V9Nml=YaYFX(*saV|y``5GCyV;n|gYdn*@K@K6@&tXZW!hc>Hp z;b64Y;z;a$V%`*|mlirTt;ge387awCKk?0TdyC4~1b;-2mu6|lKAFT-`E_w?Uhk*j z&r|g#d&>2F#$EXq`gYwfjCj9auiYqJH-Ei#!u9X#_WT^w;W{oGUAHp0Sc*4l1_SlYYV4*iKz<4|zRC z-fj8^*_jK)-ZK5!qhIQ-2+m&~zq^jS|D4Q&Una4c+)H-Wf;5+SFU=3ThdKG_%g(*$ z?3+*AqZy0Iap(S0Y=_Tkv2UWYcfdP-spD{I(EVhKX8~&=%?G1_b({fSu^PeQl;YH{ zaa-REY(>8QkrKURlg`=K;Dd-TOb%&Lfz5k^e>F{RL<_!xV9^LT>V+TEB=mP zGW(Kry9fu2vUuY|!EbVfog%Rb?3pUPBRJ0`Yer5gE6MnRN(K=mQkYUqc^yXHgxtf_ zVUMOTFpQgNu8*Lwz7Kb(wH4e0TpojY`qrnFnL*XTo|qwr2r!Bsic^_cCbYLb?i)5Maf0?^hCy&H(eugn5Ec`}WU>A7NrDD#;cIBhi9;OVMNBbk8q`*A zc=Rjz(C@i*tFP=KHMu_b9&3mDmwJ<8a~QR_dkz!1it`FxfxBD|M=IefODHP}IpRPP zKZ$^4K(la~-@BwGgR9491#b*bUcrdTif&bUJ(Hyfl>WiTUD*(|-lMgSQ)h2T!i?Wa zcKmOyJ+~^x{fBU3Cduf&M=0WD`w1n7vs9Y``100Xs651>onAmd+Qm*?^9DkVzt=$H za?6R|)As~C<8fs0n*e}t97^}(KGDUm_Tllnl731x9` zvyyqM?P0_ z$89($0=mlNmgyZ{o7ky)TQ^U3exIGRNjD&^aOwi9GbZGe_!;mVWB4I*=KLstUe3_u z>l`Qc#^LB21`qIY)UEI(O?FJUdn>w36(8QL`1q(>TIv4oxk7#EA#2ceE>J*ZgJG1s zc{|dzt=XoXzIyye+RMU%*nSL3>Sd?!6>B%<_KPH$lcGiq$=PidN@_GBCh z=2nzuKfqi-g!kmqmkW2&hsIZZzR_xJl|Wn-xlL#JI`7KI7F_cwf7)ZOa|zEQmj+CY zTE|H}#HkNF&-ByW%%#Ut^pr{0&U2~!!pVyjcPBee-K_BY>k?A8K$FiA?IfJ&Zh&Vn z{_owq&e~|__I?wUYB2=-@ z$j0{7BVT-N0uoA?7P|%{<@B*~WYqe6)08>4B9p4u4a@NlwBm+*Jjk>ZJf*~-cz7bv z^l@pn-Jec>OR;dMY?;N=>ccu;LUKA1KBq8+#ire9JU6+&y}=}H-Mb}QVUv|yr^&?u z?l$QY#YS8k3%M~&68#f@-lQ$MnDkP0L%dx;bI6EI2fF+70l60PX5PfYA0JbKk73d$ zW>p^p=_>hu`?13R4?l*K^C7}NN=4Da%QZve8s8{%MXbHo_PtjY9cACQy0nP(wX)-M z+}^b<73bkYt8e|@yl&Tk8+#3#4HZ7n@E@Q}uFeKP#b=1x1osP%5_F}SI%V`J-Ld^dFcmgcHS7R!b*HZUlz^NaNfPQ%Pht$ zs3RbkIkdt^D8SiHzV^|ZJb9ij-#^cLZT(xOdl`v8Nqbl?!9h~ay$v5@=jve`sZ6$j zOV*4E0XHNyIbiTS|OC5(nW?-wc6gRt$fyGr<{_dt-v!IDZpNL85xmm+H+KU$Z zA*AK+jo@yJe$&lzk6j?+HlVM1(Y(hy&Z_%mH@64;u8zPDL*0bk!y)0_Sc%ij%F&#@PhRGY-+lTgk{U z#9k!Yxf$`;HJjRSL6(N5e^>qP+%LTFSuP|cm)@`goS6U3Kl>*bjU$U!^{m#7TtsN3 z5=|GY?U+m;-FR;nuD`w%+hQU=<}jlF`p*bChk9elFF&f;b;iuDgK=Bt@QbNK-J=GQ zgumdz1MfaP`r{A)xH@O!eKxD`4Amvi-^2WSVBcIefs^JI?hWwYf>@+iFio3iWz4I{ z+p-ngb3kgLy4t7%wjOq1VvF2^%zi_rca>wji?@a&B0;Fet6A4o8%`TSsCkGq=cU!o zeEW|JKHj_uRWQs3zlS!Ts9NIvz4o>4P2WsB$-a_+pZFT7Q4g%ME$y#09PkCZ=9_p0 zMdBUzyA~8WvCH?vev8E9!uBg9Of1NhN;gjK*J<^&21rfeT-oitutE@8f7IL1^PIW6 z_8~oBwsPkxd`ahvSMlnA92J(<{T<+xyB(g`{I9p8{lC6lRj0IRY}yI_W4`Y3KNoJe zyy%9z(P9@zjYqA9m9G5f#3FAJGpwXR*BXa4BT!uN|e?&Nm`9>c#5rkmAo z@U@w@qL3NVnN75ym*=w4GCd5po9NJUvqZNOw%ldnKeWjy{6Z`w%H_N)SutTBktXuS ztOwKmCio>?F{6rd;))>C%+H5B0JK8nCYK6 zop;b(!Y_=2mn!Tz;iuCTBQl$;kJ|M`+6^vM_&os+TR8)W&7!eRkmSWy)!faM?O^$3 zRUeiYqT-W)2$hhkSQg>5Y1(6<1Uh86T4K3y`R|5rUJG9^P@YP0`0^V4Z*jx#a*oo@ zriY6Pd7eb8snLq!w8ft->s>-ULDl~to|VIZr(bNAatO9J4)SrV=qt%5`JtxZVZ^Bn z&Wt+nyZ|dKTery~SlVfQNaC(S{oXxOEL$q~%<_bPzU`yai^$>I=C`V{75MtQpiZPX zTBQVx&6pg0xEbJ0Sab5b-x@Kgfnk)~zv1#nr*+!ARAAz4;tZu;+BuVCcCor#!p7J*$G-Z*b*I(&ru zKkrwMGE2AgU)8lG$tNd=`9JSAsGioMW3kwOO{1Ah8;(_Y9wl2{f2@>gF~*N+9$BHY z&|;}i+RIVugj=z?@{aeGZk&!#V(%-6UNK+ic2RTttb52dHaHg6G-;9=AFkL)y;i&E zM*JV{z87WNY&0kBF$3!wMJxw9_&%%Z%*}TWS=-Ea6H@eIMOmmT%YEej+4|7`pC1RG zkN@%BSKU~=Z^Qh#De!;4{XZ}ceZ&2Ge)?(NUw`h~d;I^7>i?-Jg>v`?G0KKd@n2TkupS!idF@I$`Bw?QPHZPa$BVgQ6nM(B7}$xAyTVUfrLo` z8KR<6E&?)(4AG*5IUqh+1OaCsclKXpFVx!;Px#IXV#oP-O##i>*qlsCw~1k_QYv& z%ga~m>tD9MY+Rp~>h3a3E56fw`19S9hU?unZq;k?R6DD)$Y9yIfJH@}8z!|+?^-1>cy=#-z4v;B zdVFijlJgc(lf#FjpMAF5@3)%u>&H?PY03Xoo2j|^;PK-dn{P#~U-tcpZQt)MB}DG= zI(|Ovz^$K+c0M}sm7OS29Q%aI^?CwMAd6eKvorruO|Jy+4mnEZXwvp2ccv(LQQR zKHc*Z_>26+gJ015(_i((n`#>1zct|Zm-~zVxO+L}zWN`>8r#7&wLLBlhYo?iF8ClX zuSi{hfZw#sHV2K-{&8vf=?Yig2o50l$Z6AW*3aJ(>}&tcsiVi%I|KxIt>0zx zoypE`FrTkqzuqqB+rxE5Y#hdc~@>Vy{|z>kQ0ER5NA z-c9M?yG<#(H2(8}Elh%bEa+x1sS)t}za3v# z;8UCbcosj+_~7X!VS$sUu~+NjKAriG)&Shw9)oZFPnYb^M{5{?ZW@YLdYAs&Mex-3 z)%?%opEecSiqw^?y3Z zzg6ykThzZ*?k}?Ux61vmn)SEJ{b7?oP0!z6?k|e7FfV_5xxcu`62-b7Lp+KMPx#eqqp zH#)fLIXbMMZ-TifSaws3I9l2oMyXgHnn-F_B+-=TI`S?lwm8)Ik9M{tr;8gdxk$Lo zjLU7`!7rd0>>Q`E{`vVaqw{WjXFlDGDyqw<+!JbOo6-`4y^T#>(UvewU1+-a=RYF% zO*?|d2xB(#>#AjWvZTtLyz8}H)v_vCdgY-0R>)+&Wto-x-oTtK|B6iRk@boDIKSBe z@a83NH%OW>(YPYBeS>$FuS-7Leg96xUHeV^9$DhD-^K!pNqro=f8dc~dQ@*YoPvv- z%YJ{tnp8A&Pa?Rk*;JZT?nSxdvBU}2lo+m=oM7aIg<8~kOT9)NMZySG_)((j137ht zyvsig&-rzZC{OQf*VOI zy+#h^WAm|}9th@xD%wkXEAN!oxnDlod)MYl!OoC_O^JN`79+=tDj(GuLu;!o7Fgs_ z89MUhZdx~L^k?6u@|GgPjY@|TcimAAx;7`kbF@S+EBB<$1(u4V1Cy#FM`gH~xf~3s zEV36;l9G2&K{R+dW;gu9haG#%90x5no*vwL%%S)GO)e@@c4qk%KZ2~`I3xQ0bv&kI z^2uV-(#_?}xTR?SoTqlg9^>A&1Fy}+y;Q8|!5mAR0yn}=xORET&DnySf^2u=d^%4r zGiZZxV@%~gl*g5CGIow`hqgmk0B+1Cm%^!LjO{w)FUf;OvBq0$vA5~B>7!`#<~E&) z+t?VaSa0MF?G3H-M)|sIYDFlG#D;f@_ajni<9m|#IO0D z=W;N9e&P;VvP#Ab-Njo)xPGo`?nJ0O$jK7!PC2-_s(>!S>9@cmWH)k~*4(VNtfQOL z&8aLvTa~k7eDnFA6BsYR8659t(eI(ZM_g3-tGqBRSF=L*B8%js8i$(QO+T)1Bfpx? zFm5__63oJo^0H^k95Nq8V&fL=6Np5+pWKpEF4_-2#2tSk&JkD0vSkkNeO$ZqAPRFs zR!5AlJTjA7jOi#kcJlV_B^cCVT!zWiu9>-r`mTfDe00@LP1(M}^44b=VGxn+mlL~E zP@3RZk%iWQ{GE0?;3lMrV2#M4LcS@S1QSVTYA%3}w&}nYXbbc$vK~j*vrJE2$xjVc zP$f74wvQZ6TZA)968DqGAa(u$1ye$6QBNw`2QH%oST=c3XI4vq?N*rYjJi=9G%BF8 z$z||G_ycAI(#yG@eAMF(K;4|LBXX59ZA-kXv3ZcT`m;rQYGO(cUXaESz5KGX-eexN z2%6n=+_Cox@fh_B%tWwJ(HCn<&)}#DR=HTkbO3~C)C~RU7eF)UZ%}V=_0je5KqffI zXDEaHfJ8(`lRv9em}(_CM|!lZ?B9R9R;TyRhGN|({pZMp z3Bln^@yJ-krS3eef*-I79;LBXv65ICtRpNOWDNJoujAIY5`*)7RPRE*_HD=o%hzmU zR;b5f4Ks(GM|V$$Ojr0W^NofU(T*!U=9~Xhd+sv+tU>+PT`neI4T7CoLb>u2O4s?; z4`r*O&6X5h=d1f3SeW&!5ct)u^OIh&ZDQ}(1L0d2ua;e2B9FnND5Seu-(TAw|5?I5 zr;puB5}JVCN3MV`!TnH`$}0T&6gC)+3f&zPP-9r5 z=vSpo(XAa{z;9JLcKf8XFlb!=H0CO&Bjbg$7|P}e)-@akW|yxGAPJUt)|>0AKW=zv zb&GU*x5~YJtH^AFu&5H<@Xo>2WA?)rR~07$Tx}G+j8;bpS7?VfvQ|Sz`D(}Y8C6Z;R&LiS=j-VsB-u>33WCdV7@g7b=JQ>-^)Rc zqieaFq$rt@n49!HGK5vK;ozvk!i#iD&C`8@JC{_OaW|bmz28YMN@vBu`{(M6$fhHq z?01d@nm?EMpP@KH zqtWQ5OE){B4aMK`4lJ|pT5x5{MGqH5q)xve&c6vR&^qt#(tt=vn#LOxzg0F|2;><| zZ~eQ1I|8~PM4SW?f~~Zyc4Cvu;VH;L3e0r7N~3#m_f7u^=&%%b$|yFsu?p@|8ISIf z(q6!?!#Y$IQ*`?eke<{CnOc!H5?9PBFLthrVy3G_<;V2CSDtV*cchH8YOl3mPtw23 zsE(o@9ge{C{xIKepmx^YtNl5QyRr{R3_Vr5Z3Rnv#ud>)q`fw7*|i_F z#{kjc>!GJ3%y^%R3oObJH?`9kc-r|}5yQC!dim+raR&w}i^fmqRb;s1z>u<+&EkH* ze17tGN8^{jTO_S`>;CH&y<;VpU!1DcEzt_QVD#}`jENU^HceiPf=4-N*H~*ReLPK( z(I|!T;vhaV%;Fd=ihe=0wF zu5Gh%*(Y_ah+IV5-Rq3V2myg${CyGa#E*~MUk@vWJ!5hdu4P((DG?@OZx^b26 z8oMFy^{>plD*G)w)!M4y>&KBrOugNn4xUEt#-2D2GXKC*Lohs3(dhzH zPg}&E%Z|RyK?a+)Mc& zy93Ho=>)3#v}sY&Eb7-HDq&{4;C96O$9Q9BGT5zBeixZ=N1;PQy%W3Q@AN zsi+Un%mgk}!?vR;$sS2wVeLApDE zAgm1KZw)7B4_JO^G=QT^g`uIEBgmY1fH{$vBwf^WI&BiMeY44Blk&j_lsCP_F>OEA zL)&AMJC5Rll8EdFo+L?*f1cv;q-|uIZq>#h%Au?(?gI*8NLkJsn`2HhBPR%x<+)6V zf(l*3ASj!>VWq?_c0>mjiFx{N-fz*gbh7WDsa~Nm&zZ%UAZJm3>?Kmpf}s$V-=@R$JO)1lXME+BS##XkEj2wsr(J8EpjM=c~)Y|-G|n0A=FD1tIqt1c%n3&S9Kb{4?KR_7lM z)Q%8Z?!F6U$~qqS%bDVnstKbU3iC(ldw47TP7xj7(Y-_A7M|e^9Pp{-5nufZ=Bt$& zU|01qKIznHcfV7=Y)Nl!#dP&W-(b9H#B?PjOH(s$_?OotliEIW>*>PqTJ=Ws!!KoN z%~0wB(@l+)SL_;|$LG~Wj?8upY*LJs>`?GhW=FP!h-8IJQUhA)1#~4-zJ4oQg|X`h zCwx=p1J>cMx`Ubf0Yn(B><0mef4M%ld-AmYP;Fhtl@rL^v?NGSOgfy(T08wU!;|cp z($#Um{#F>p-#DlBs&go{Q7kP_$U978@4|sRND_KTG0}ZKbP46ieY*9P5ga^-4+#uf zM2I51!WZ3-!(;Uoi%{Yv+a;@WRqkEZ80m)z_Upq9~c1+u+*-p;LzGOXFJUM5Dnn$AS6WBFpN5yLLX7PY$d{f39_c9{@t< zlheG|O7BWpct3SV+l)Y`HYpVZFS7Kl^DbSaMjy;kom?=IAJyeI5r5SmlKw|XBYjU` z1}TIR&Vcu+#kVRHvCaZW9iPgZlrxl1CNn~6lk~8*krT0xFStYp=_~ehQ%TPPX!|?H zSLjY;bwZMevL6hivR9wNt+r?XrYC%`{F&OvK!V1~wYoZb6o0PQwx)>DxN{S#Z5|Ct zW5T^3_8!0{GLmV{kd#BFzSxw@NvV6b=WQ*c%cG=FU)8>g!Te&4g7Y=pg{M6hjc-$= z@HiuD;ZYom(+iJ+P`F@IK9?M0Sr@~incBVrNi zgcR2%<*Bx62&y0aTB4Gzh&^o&B_p=rddg9ut^AIf=EjhOoOiYxE~Ds@kmoAB_n3J`0hLBsuf>&iP;!`KfyNNg6%=G#vMO|DvUr;mF+X>*lCzJzed6DpF%J-mF%!f3%Pgzl?+)Y^o{jg_*tRl|0)mEhtJyMwhw*oyE(HA79nO-k|oKzuVMnV?}ot0=hg0 zDb|99)P?^b`vox|X&Um+vdFf^vGfYl{gJ=QVsy$gD>^Y=n2mTte#1Cn2jq&*s*UH0 zdU!DVgmdT;jK;i)Q{L7XUGaZys`rUGVLxP=$Iyw_pWjo*ZTN{0Bg!2Zvjcy#+%axGn&}{gB3=zm-jv>A$-g6}rbmQ7G*r7Y!s<4_IF@bubv;RDg}N zN~H5#1h%G=^ey(Jz_zYlr?#GCLTtE%CwEZj)8)-ZA9L3L9Ku3+aSV=Cmaj7Jvk!mn{+WPZkUWCH=VhjtP z`Cctz)7t>{-b>xRg?5W+-$t1_X-CwAVcx9{9*8!+hGzs;^?H4;=r}`&#q;ndZsO%h zPenawozIBBY0NR$6{fty0tvPy3PIXPQGpeq0BrkLlh*MH>yNtY$qsh6NKjHCc4V`o?$_ZB zBK#?`bqebq%uZlFo(}jhvTN?a_1D$=pdumaX^n#NGRF}i3u-t|EikKh{@VVkM6G4N znz2(l5gj?`pGhwsDNQJsKRwx<@?0`ma*7Z+(vTFNt>wecvC}aWoF+@ksA0G|=$v$e zpw2|WKTJgpOXm^TLO#_d9(HAkS?=?8UKs!sqz|Y^pS+oLW0)#Nb*$D)7**Zly?}?o z*b4uz1`wFxfZ-^n5Bw@J+RR_-Qdk2I>5oQEZJNwWDv}?eDcQ1|?SU^Jb5Q*g!CJSr zlMW`UwtodYfHqQqN$b(NGSZo8dSWP^*tT=%RCJt6d0UvsmA)*qw%mX0xTZ&GQmJso z88^kiv+DCSOL?w~E&KgMhD0EGFR8G!*O{!jNt!&8UXq~_DZ_I)Sg4gA+S(e#!m((P z3}q#Y22eV0d4_8nSf^RrQ2^1P9{F)4ydJV2DG<4fl^F{DplXfb5{SD`I5a|Lk#{!U z+n~+TCa_bjjG_Vn)BhUG`TyjR0#}kSk!kZKmdv1=H*)$T;CAp4P@Xu#_X_2*$ zm9>(h8gG$mA{-t7U$i|jGXqn4Qy(Kx!gncaP zpV%>p<+&?d&y8F^vUM?Sag-^U^gZqOTURKIP4_LbH1)jmxNpYYEIDXAWt=&@Q@q7F zQ!~?C{K(%vto^}u2HVk-)CJ&Is)^h)O!r78+fj$+N^ZuG4zWY@J2B>^WbwO`%{CjH z`%AM0$lZM-PwW**H+cKVvdfb;_oIu=XR|5z#2LVWg=!k&Q8rBVv`HH8q2JIZ=cWjN zZQu<7EId!}%`ctS@D}c8O;5ES4Hxc$QXD~k9w2S)37!SD@Uc`TzRbxv4a(Kg5IIW%Q^D>F7b zOEgzl+atQ_qkzgsoDJY}8?;XyzoI|#ti&)}U)W0{CVLOBtLYq-Sar2cp0rtvG6IFd zign~WZQ}-u(OwzbG_Rt=GD|5vZ(MXKbAzQG%bwQ7t8$J{w0oyt={R%$V)|S+CaBb> zdB1~ATL2S7lC8%Qjp$|6OI{6S`$K(cyQ3sLkmd?|L)<%Sc}{JW3EOycraPT*`l3p2 z6UlKZN+_Tdt_zVsaC-RyCrH{0;wn?Z zE9(a;mO=>Ts~k3gJW+{bClR6yG;nGmILK4+!ki00q9o+8$;`5M0LktqsgfT|ZOX!O zssNBih(nPmDI|^YB867ljg9mVg90<+n2WUZhQELbxha~);6W^d+*->!VHibC0OjbU zSo-(8S#F(X=2Y+$nh?Y%vhUaJN%G4+V!L8%F;cm+bbHt2f+v^@1U_qS~HId=}?$W0Q)Glh`RknX`yHEQ3XK>Y#Cc-qv7fe z+reBo0>r-+mp)cQm80Gha@zp4*&+{s^%f)vt00gBV`cA^Le+E#P`PxNl%>Lfh!bfD z8lVw*UqzN;U%-UT?W)2l@{o2o)Gmsif(w}IK$`0_KtA(>QJXZ)JhGKXua889E3KGm z(^ui&eUs4j!9r08D@17gfIRW@S3Yv`+;L~}+j6G85as8;nnyvvsexR<%Dv7aB z6*<%hdY)y@l!9D8zVaMR3r z64T{o2H(!RskDP;_Axz?$>B_Ia6FMBQZpccRDw=;JXawV!oO!l`TlNyC;XO#!=tzNsiMV0x&)A1^^-eJ2E*XsbytC|3?!RG_*Ur4 zd%Z{oJ*4*nmV|Q1gu<5rf?dvS(Uy_qCJf<2PqD8?Q1Uw>Q-o8tM2A7Q{p(9BpvEDa zda9-rHI~VwqiiG79&&AD%xRZV<-xw`sH`g`Ap!MeH6Uk*le!Dz#~#$4(VLitsU|W zIV-&;fC#CpE0UO^A1QKQiGN*|#6a{Ef4syX(@g=CKa0cwnz^0(&`_~?;zAz|^7(*Xj)(@RZIZC3|lpWX|h=fQ{zXsEnvzge@qjgyjr_KN3(LkDqd1h0?JTKK3NfX~`@ zz;F8AbPD$^WQSu?%Nh09*+AvU#)%`8)ioQ_PIJnA$XTq%vcp#<9H{c#PE1(YgMoY! zv3)A^m}9Xf>25wv{%mOaZBgN}h;vJ7t&dK<(<7ZT?jF~tUW-}k5`@0Mm;SomaqrDY zYo*QOcl)biUisx@J*x4isMEbrBx#TIvs|CfNVh6O4ju@s7R{GSKL;0aX-aEnfeZY# zMCW<{eV)f4LBh%cxPWdE1p)wL;110w+n`E)as~7h-u-js-m`*KuVL?r^H3^+Q>h#g zD~H-Se)yxs90w2sXA5jfCf(CQ`AmU=Y<|NHsCTp7&d?nn=F=rNvd6ZDKDZ3t0iii7 z0`oI~`)__jD}JYQbZQ{_#7%C^IeSqm6h2*u9tcr&cH3$33wj-IN)U51jxMZptp(Wp zzO)bFlXW+LF-YWj%_XY#KL>NNZ%JEWS>!(Bce(o1mr7Bx^)bwL>x~8z-G>f0((ivT zo7o)Pu9Xv)p_z51sXXsG*N0Y{GP%tWr?Y?7NzwBTgWuP^FU=B@G8v9(>R_2&K-HLh zU&_IwNa5UyEC4fDK5$cX+j}Y5m2ZHJE1|FX73LPwM>&vKD6S_u_2Nm3EDHGK{*8d? z#;$4rMjxdImjRUb8Kt<^TqkP{Tmk+;8Up)%NzQ;Tsub_xAbKBEv0&=5v11Txj@~u_ z;iT~B*KYF!^4$0vntR1l-;G%ts_KV0bC;F+e3ZPSj=YF!u;v9S9FB>U8MG<3LcFaK z8)v`9n}nAb-lgHx>9oq!1jl{J`?+po0)J;< zR>b8OoyYqq+ntED-|Z6r+F4tEoT?e@8_;*NWs{;Q(OJ>JB)BjXJvoJ3N30L~>Qhzd z)Yxdxi~LARj_QrfqSt#RGH0ct;}TCrh84PD?&Yr;k1owj3Sr3n_8+wh9;|? zmu1h_MEnn8x(YCj^Ppe8f;!+f3HeHCRq%i+M0pK!M$c$g`GBWoPrfRhyUwhtyp$zZ zri4Ft4;Z^Yx$9u;sLF$FI_(INCOc2U@BJXQAOcpI4T<59`{-oTEWWVN*p^iVv<& z@V254r-6f;sLJKLM%TF9G(7Z<<2a`(gV<_7zT_ooTnXe17i)RzyYdo z7@3>-rh|Q1`*Y=B#OXMMH#`kIh){|1x=i{bkFFJ}=t%Cs&HsbPm0w=~BC$d!y=Hr$ zt*>CaUb71`nmeZy+eqmtlUOem&onBb-6st{+Ui+sh_YZ%C-IY=ItJ7@^0?zYiA@Oq zH=e`Z?m1zoQFAmtsLeGqBjykw3d$__-#QMKEuX}t6_VEW+UhUL%%gmzmQ1{_&)sNm z$?8btU){=oJKL zNKyoOQd-r9JrzL*bkOI2w;5e`OtovizKp;01TGG~ z(jOFeKkhr0E=5G=#Z~yOIAW4dZyEvFS4+~T>;gqv#P^>MAXs7KCo%%*<8eTtWCP-W zDd8xjuyKlngTS%PBqjiB+f~3t2E(ruS}mVpWS>bqljCd?dN)tFhu2h)d{vK07;@yK zC}8sbb*jRF86^VXnS?PwW{s9+oA4X*2}h>5HpZvE#oIGtqpmbjmP2=Q>1A+T!Hcr8 zj3e`+1NRIVY0IquDYK zMfuUt=7wyYs_h%M|Jd#0Y;Tx{Gssdrb&OU?>H}~eB$J&7PB3>VGOFC|wG{ouWFKXo zxLIOv#emrouT&Kg{}n8X^W}|Z7=?R{WT9bDAGT8dn{myoI0a0o5G3Y8xm&=-!H@;~ z0?Ee2Hz+A=7|F+MDi8vf4OmMPXaTGL#J8}?t@gv7y4Vg;w2D{wY(uDlM>sUMRY+gQ zRbXJ!q^vjZ<(=8Cxf}`uLq7A=bA_~rr;I000%%V<#vX~-fh(b|9N#obyHZxPZerWw z!Xu~qi|EB2E&F#bM&mQeP!n59j>VsPe>r(%mk0 z9+D~sW~Ta={ZpYA9qhv;MP+5eB2}p{y{%`^f>G$eY{wf&q$G+K51W3-wExaLkXSvk1;TRr5Ze zQbW|kzj<{r_M-cP4C(5$!w7MMg!J#`YgB$Iy2)Qgs6)?m)23jwM(oxGVH`HqL4t4V z7b)*x>UXfavtHO;8F<(y)6hL@fZ3?9+YA+<&~q1@Jq!Z`OkPt1T60zaJmMomsvz0` z%l^?+K550EV!Ylt^p`S2@9CoeY!j!iX!tEj`Bo<0)^NJ;%P6h=gUvYF+i3Hwe(vh_ zK;uS!8Z&Ph)a)`Q+d(Kr>wL9LCL|7tokRU z;BTDYQY1tuE83h5Jg`)jNSgH*{Ay>FgtX)uQfu775PI z#&#j$*>m#mRy$EGv>^Bv^xA!M(^N+qp;Vz{g$X(>1z7Q19wD9Zaw!PLoXe=1+Aj`{ zZSD_)o|0yA*o?b=Pe{6n;h52kbn$GO#6U|N5$`~^Y!H4B&i#h-=rIno6ZkUaK7_lh z0g~e&aXF|KsWlPSxpkgNOuGEYBoV!jtsLAKy5*Ac?7~7de0_8E@I1fn;1B15bxJi6CCCuL)Ri$L1tSkUWIYikLUM!Y%%V?b# z-dz=8=h7Hi;i7K{Um2R(zzgLwO6FrR0$up4LMvq@pBzbrID`!2K7kcO_IApRm?%8v z{kGwf5V$j(B>9l~oe=Km29VW!Q^8^sHw3Ox2%p}11RRWz7fW~b#+gIkWTh{6lh%`! z>ex|54Wwl&t*14lU5eunm(7J2Vrfa?{Z4Kb^#QiL3uzHd46$_X0aKp|Ms;}g)uRYh zeXmsO(&3zFmyDQAV(WuJ?90EPUE_~4%-Z_OcQgq>cGSwkkyY86>@qWj3%yMEaCd>K z@_7r?BhB7!WA$UX#GnpL5N8@&p%Tb!7>6YZBp<~XSyOTOgVpmlWLpRc?WF~99c(uW zOkDFPWRZ1Bd_s9rIsLIvvKAOPqz##h<6f^`(A_CI{1z~he_FY54M`Su9p21&p|T7q zS3#~icQ1WQn51`zlEpkTNk1y6wnBm(+tmLP93R>ut8@;ek_t@Uc4JhB!dWQ%!%R#6 z-=g1(`^xtppZ5Vs#I;Ihl=g0DLXDVcy$9=earEqy?HT9OYB#R^c4E9Rl6YLWH@oBs zE$l*x){C)d(!j4-=(5Kc`Be%#hfV@XCYsh<%Og`s3>yLAQa5utyp5oYJ%pKkpgg7M zNtFnk3rLgk)*4q&m^S-L5{CBg2}&$(el;E=&nNj=YqmuZEI?h@d;x+pR3YY_Ir5nn z>nQ7o8DRh8Ry_Ck zMt$5Ai06UNIByt_xQ_ahsk5Mz#TrX~ms2c-x}+Rs8!HPdR6((6VL`(yBW^CY44*bG z-Y8CUu@VU9P+5s7N3D3XxZ0My;V9`5WhZVOuO1vB#gR6eaKqo6=3ccfzGiW(Tx+QI5*( zC_9|tiZZe@+ErjK7iBD?Xp`hsM-Q~&h9chwAFTuL_63P|KM)?CK z)J5>Kozth!l$(AJfRq);mn!HiPG?(0jjziUU*&(9BdQuXmFsw^oO{fsKH=?ww^50m z2QFo@q+TD@?IM@AX7+S1$Ap!E1=`gvL{g;N_Y z@i$@(=;wV%0~uJKl+7rR*lQ@9s=5NJ%dlSO$;9=}y?ASDW0UEVS0pe3|)$45w<&)S&zP0Q0Eptqm*U|FJ z)!rPDF)v%Q3GfXJrkVUma&AdhWcLQ6ZMq0yW4a$eDxSCf!gQja7*U3vaG^@&dVkF2l=JBlO`T;b}1%m&f_vCXqF$G^$zv&N|`o^BlZGj zF|T47T@^-|_Woo*n4zjVR#RONBps5+FfXV=|CP3|#OLdkCGQc2Fd{VIG^ew z>F$>x2r{lsHRFMe0t;+l1#GQ-0Txd|D>g^CACBGe_&`ngS}z|0=>es9`d6>McMg=N zFRUe%#bG%n@}%D!D57JOFt*JT&-9Ymm5fKZ{6vyCkADK?m#8l+1(kcH9XQ3|=uRCH zAT=d(wgNZBSiE*vL9f)k9hC8voANA)?e#?{MH?oggtT^lj%lC03H2ob)Wm!@)V)n$ zQ}%@aamkZx?WIKY-igbJ)&u}7F*c5D;a=F*7yI z*NA93w5$p8cpl1%{w2KgrW=#&@5lo5SzoE|RE&FpRnMkSzXCg6l~v@3tleoZw1(V9 zoG3Bnn)#$;Jn|sOlP=^`8({sr{CRXnC#LxEvg$7Z_8z{qSfe|SpdRJaTFe-U2!5ii zL+lJ~D|hX#oR}q6cVdXv;cFzp1#SxcKB~R~Jqto7(_UUgyW?I)cWsQ8IfZ<8oZMI& zW=uQGJqb?nto(l(%_xk+DH=S!#;T5nb3y*CVxHlMTA(VCDa03#XBg8yjB>nS9+AkG zpDf@P@`Yw#tIQK{!0fqEc5$=ndx#gN+>|rV&xLa!Em|j#P`CM@sE7=E*i(QCfH6sZ%kW!zdG{b_E!r?~~J&o#v_WB8k>^H$9%VsY?304K6Ul>nA+@VEz; za*6}oYpo*LU2%r9tzzk8K{ie?lPbxrvW)C2oOZlf3a*Xit*m6#zs)UNW@jF0?V^;jj&zytz{{oAePF1 z$~pu93Jt=mP^5wrXftW%KN5K~YA zb`&A4LdKPdDuxS1BIn_4iPGn(*m~EX;?}Sro-Qc{OVK8`*z9Q;3SgGFvrtWaDlNkK z`n(oB>Q-AuxyU)(g1!qbmvm4)gJln#6kYwrR6Fz0HnRL-G?fdq8V0UlpH2{a+TGrY z--z0`!htepE4$?XfhgYJ0<-bZ$jv?c-&3#)#HC-P2%|5#!O;&jx#}Hz!o7 zz184hGe00y?eWCUf(+H1%iYg^cM2{8Dd=ZPOg7jE+d^(d{1DV>x2eN*74?s)N+%{6Y zl?R)=Q}_`J!kQdR5T#>Wr8SdJ@=xz{dI;-d#VM0U&5Y?j8h$bykaP9DU_3gEaESnz zJC$i12b{~wQB{B>6Q87K9-*I3GN1#R`>NAo)yX@|Llzz}4xNGA_TV7&Ay6c>*71U? zE}<`Y`1FA*n-yUWKdMHS_KG&^&rI~+Ejs+oNve4_!A_geaF%wC?nAR=oU>KQE?>HP zCr#23>aS#1e;3Jg=yy|uZ+}8+6Wjw4@SIA@G36ekU-8&3EGleqnZ$h!*GPtBpyh5_%OoWX(r;{jv` zfe7sbb0ChrM&#Me6x><(6~TejnPUw{O!*W9WU{`R)aTC9KV}B8>Z$K{LDlDW(df>A z4c_hy7gp14f&d~>4yJc26#p3snBNqYe>yjZ1o-cU=6?5d3WLD9c_sH`cLY0!w3+(O zLg8H5wEC*%V%3`>-u+aH*Ksv<%^0Tp#^8(A`}*IKnC$)(;3x}}Xq^H>jC>fQ(z6)SdAbUjGdvidj~ z-iQ&i9q$r`dx}*px!%f&Oi2;QDpjiS<|4E`)-ORanHP=eT>BwhAdExxZEgnoaPnN4 zbDJYn8k!aRW*Uv5CS*HhmMausYreRNm8kH(X<+V4XHo2+{z6?DZNZp=|vVW8hhsLVH zv*3#^ZUj|bH(=QNrg8URjBvj(EqpjYER5q2-qixhn~1M^gVH^hknM-!ODBzNlO)ms z>~1aYrd-Z6!S9|Izscz1mk4<9_`>nG*vD-QH+?YeA zV62o9mie30JBT&8EyjP%iw*~SmG|4blE!?8?*01^+R%jf*4aKweXi75H+13H-({5p@~;nU~_GGLxs|S{v!ECG;i{%K5Q@PaG1$>SLO}qAEkiMiXr(p-Yq6= z@ulhOCQ7!t@Twc3udn|83$tckFa>gF3G4@ZMORWae0xVC_oVPg znm9w+4P8+pK5jtBoO|G_P#A5~X4`BIu}hi6`$7;KM8YmeMU6}2JE7xZYm>}W&7XKV zE_DfQ=%(_aj|b8F4K|XtWNW)Njdu4syAIf$-?Qfu`Umzq=X8{OTeMSClT&7c8oeW8@=^=NBh7Q| zW}wvLfacRHl;WYl9opV-V4r?M&gc&vD+7AY-wAW z^Uuz+KTW4GtSvE{y{x;79^xh0arn%K==chFhXU~Bm2D_{_DPm1OS>FkmqK6*# z8P~70dc-HBONI9q)@?L{vYq}#TU!M_FcQOkWe1V_X0M>dg+s(0C%iX=Kn z9x*wjV1H&Gn#mHSoRrXn(v)5FC{e=;8BIO>)OYZYFh|T1OWpa@+RY0fqfE=-CqU>< zm%O3#;EVUcTp=~_pfUPk!WX>*@K$Jk3$Nioh4|i<`Q7}N;30OeiZcb5!*=yh(z-z# z7C9nXp5f4?>wC;fNFKnW=6sp7cMkw6cXoER%$sA`rV%=u1RN*9+oSp%2Rr;gQ_x8c zfTLOkGC>}Rd4?^G7&*|_m904fHmuRmzZv^0Hu!QXp}gyuu1@%CGO;CccE|p~tw?3~ z)~<=h_uH1Z^KBC}UoZ zH;cHbwJujE98u;>%A{~Q2QDqFZ3Kb(9Dpx#O%*9*ScY9Gd+wQq2i$n~OT}H-2igUv z8i~RHe!;*JROA-9ZD=`E27yEaeCq%Q*-7PYip+O!r-jySYUA9QU_0Tns&~C|UaA-n5QCOIe7P zNU*W~Oh_L~Hwqe=FYD<&`H+PcxbZ??!270hCC230+~&a0f{Z$_tEnC8idGKD476Sp zMe8qD%;q4m+l7;w_8SGq?&^Lxu_S9RfGo21=3`bYGBDJz-ePdq$%*G!BWRjvx62~M z)5J~pxUy&Ygnx905jzSz2<)dPY5o&MSaI^5Y}9hw4 zB1%Wvx6fVzNz!B{pCA_i*r!X!^zQqXdE^; z6rTJJlt0?A@9eP(P!IQ<|S%` z+iP_0zr9fP+iWY{e|x(Bqm#b*U<$`@je08!nA%$aexAVoQ$JhF#Bc{OUzs~YI?LR0 z>id^NoKD6}9FO`t49{ZXfhkLEQc^aNNhEADrt$}Kpu!qXb zBmvdl8n&LU;D!kyR2HVJUu9ROoLRlI14i!n3ezIt?_=Z2yUZhRjwcEx`D#Bx_&=ZT z)>_PpZ_E^Z8%$cvM3rTuXr~KQMnbhZ&_flmp=5%3kE^ZDq7Nq%TnidGB~-2y%3lNV z%Z50^WHe)r3gt5;PZ&Bez0Ou)ORWAcb5$q(&V2Lp%Z#FTWT;_~%TU0ppCUHRX#%6m z8g!c-1pzaB#WP=A51RuLU)0QBrei43EGX?Pi_HtKn{SECmBI0?SJ;PJ{fbpc1h~F5 zZKwe3F|uVZxU+VU{nk#Unlh43+jOn@brc*6FW5=mEwI!H0!iU4%#O*B)k)gcGfLB+ zUF15^cEz&xvz@DfwlPmYy#SP0DY&uS;Idnk6f!_z$XYUv|A6nI;ZGv`y^T4VW;lD?BN5Tc%0(WPlk8 z;OKx$e1BKx`<5d*Um7g-QKyB^_FbEjEwS70H5%|`Ab#nm|D(l%gUIw;K(Eem9Gy8U zeGxHn>wICKTC9z{MFy&;P>H6^4q48LgbdkeAdYDFG-6Y+hi^i`jpoisHWy;;G<(4&byMg$G?zW)B>{uR9yuZ}P z?5v8SW6s(#?V9JLBw7ep=0?j%aZ4Xt1Hu>;U@cJ#z0u%+)uY`;?=5Z%$D*XRe*rE8 zDiWr%@f87Lx`K2<^HHRRD-16_!^?}eb5T1fJQ_u%#T1HSynt#N%@zl3ZC9Ep!_j_E zgLOE4Yes+kx0_6sZ-n;OxH=rOG=4vq=xAp_8I3JyB8e8{FN-|=vEYB|-%iQVrN@3q zC7Xi*xg0X-Z|21F;4MwSVNbo|%H8Z8ekfn?1K^f`t!A)kZoM0$gj~W~%p`hU`x-I^ z=$T8KeXOOtidqYc$P(ht=7o>yoXzInUmtMHXjPy9-}VLIs0Wt{HU~|e{W8);?SS>w z4nuJ`nbvN=FPkYLYR6j>_H6#~0X)0-L2}Dy9vYba+8t%4!LeKp6^fx3U|0q13&3#e zZc$U&p*(U$aON5tEs&vU)U_qHOsyCAWnGX-qhtI#sC)uOU#|^Kz<2`&?aw}Vu0qHP z`{d9C!^yJU1kR>{UbXdli(HuX@0`m`%=nLTKE?3dSUBBqvgAO3rkhiniDvU~N_p4Y zK&k52>i$C(wmQ|wXf*i+ZzJ2&4dm?QIQk1lEI~QBx14y*Tg-}8>q@K1;m2zi?v8Y{wes?AK7qAmRf~%yUkpO4>vjAK8#HMg~lF`3LLFByn##vZ9 zr5_Q){Paw3k+lSDAwdXTT3y9peO*%=n?w8SWdi=~ zp3`ek%M2VJUfMaYXWVO#^5TIb-MLuI%u8s;cT+gw%WMUD9WjyqBt8HF`0^m_N;-O@ zxv|b$5K4hVtpdE>gCLfz+d_~JJAiYg1kQL38)Ms^9jMfx^%;GL4fJC_h=jDa4#8^I z{~9|3w9z4>ENRdq-Hr1NF5kp||Kn{G>XPQG{Z&uc7)truBBE^_V(JSh(uptYuf>NCn=uaFB~5 z;>7E`9(tySvv@#ha5aS_9#`5j>^Pr!KTXNJS-#v9uuX@*rniN*-_D#PUFF|9qlhgf z(i#9PNEXAV0(E7I?M~ZO4)K@9J3AO5CDDy*zfi3E0Fym6cAun}nfK=*j=#s0r@^m( zC)y^*GK;c9h6dOi5L| zV*h(GCD3kfPo>%8ur>axwH>HgtF-g~BuFdthY&?8Q;raj1APJ4Y za%o;E&VL>jNF}fj;GEZfF$n_PhD;<6mR4TbNo7{XC*p$p3pnSr0xn?3Liu5V{w@Y6 z8L!P=3oA-ujaaSkNK1ZTXOitPpgUP-Cv9UwP$3@B5+}XQLcPCeUhDT2wc(Y(BE#Jy`I_78&uCfXyjbc{Bk<5)hqGwxs+KkyVcI?)k6l`#r9<9ify<;l# z%^aa_?|^|6qAsHX$8|5e20Fs1**AWEL~kNFKHFTn!X1NXEl8&gAk9kkNOoz}!(Jol z2-bTBYbaj^+m=+2&P8LWKLS-WZPE=oi51|m7}xcjE;y+?$9<$aM2a6dc&6cz+z;F2 zJhd6?uD~VT^C=p$%6_BE8XjG0DDx1MyEV3DhGgBv`$2iA?wi)(EFPHu6#^(haNk*l z762ZxS4WwZbFld%|1hS+HBNo~zHybdS!S*$lb{IGVvAw?hFd+gue43w(7Spq0P#yVLV(N{e_y$x+RF||ihysKO(=`_x_+K#GP+o0f;I{JhN zs6GpBBTMkKVBPaJnZ67VZ>~Ik)Cto5`SSn%N#5Esh&%PUUz65PdLU0g4Fkk&^)@x!OTZh?Lo zQd$}?WzM)dtKEOjedfgwLh=%Hlms)*33yv+>ZHe5Lk0E&sEx`tsm`_MN3EMD>MR zOWqiB`hhjahfsF@=x`N~nX$83;9P6}HS=tZ>(#qa^Tw81s;YrRn;*50{){R7o0@Tv z_uegH_P@HzJUSjNdn*iLhVVe8;@7o@=iT82p!ivPp}9Ev3+j4k&=VM7i9Jt(^cC!^ zQSED?1TP(KP+>b?CIJpzyw_5l2|rqG5-p6}v_5anmeC0WFr!1p$aSNP0fiS0uK2F% z^}m)6&x2!Ww+sIOjW!k%-dD8GNxyBWw61orWdqpHI-ndoDkQ)TiA6%lerx~%V1nt-Fk8>O2+X;(*;Kv3G_d{Y zD5>CnbDe#ZXsOLaYSg1&07hu-`vU-hkHWUSzW_=S9ngziuUuh^&1Yv+m!PmU!GLrU z;xLjmvF=__jB>hl_)FvtK9jj6oSbU0_kgxUdYouP+xh z0akNA-X&Ny9d1|P4y^b&j;Vf+y?7UDGEAkYfbG2t_mx>zVyzA=@PB*8&84^U)4gKx z{xWDU=8jF*0qS7dSL3;qn4wnTsY8_MB0QUJpL3*>nH3psT^U*hi5>vwL1tdFbyTB9 zsLlDQbV5=_3UR3Sm~o8%M28l9JYBJx96I_Z{qB=d3vO|a*?Ygx0rO!)Z+evn8NGz3 zM;4Z6fJU_uX_yjXU9y%uV-D*(TKm%nIN52=aN5pC(DVH1%P8Nj_LQntWEWY>F7f~- zqvIrTj*e+*erFOJA3XYTIu*hVB?{PX_?od9Tp>UspkVZ=1H4KDs0W#)b-p=VbU8tX zXN#2?)rI*w6`*EzuGcqKbC=%RHmTS!u%W7VdWXM%V!%CZxzYH++l#Be@`MZ`$~Wib zhp}qGCY7$ZKvs4NfixWrbhT_Q8bu;lpPr4>SfJ)Vcd4tFG~tImz_otAC;M% zyI>D$57Vpb#HV=@a2+NnKeIP5s=ZX?GZW#Z&+%&abc;-?2p%PKeSW)^g9MHkB6zerQRIY-n?CaB4f*3 zaOI57LIZgdyg{HmNZ$x>etw^Nys}p7T2~H11O6w!9XExO3^K7eE ziYv&OklD@!XC%zQ-kPs8`fOm>8HQV*+o))e$Cnmjl4&|i%M}GMq#w(6BEe?x7qp#` z5x^MkD`?Q-Dgj^YwunQpyR_NM3)U0q=;W=L{;Qkha+Grhim{>KWdUsuSzmn5avmmB zbU{K`i5dmCSv_QcIk&={V(a`rr}ICf^FQ~_|Enj94-Hunqz&F4XOr*N_ugG8cekxR z_e}CY@)*mL5=fM0!mlWN&`yXXecmqQ!#KA9?n092Z^%^z55Gz<(?I>Ud6T|A zzMZGIh()#;r90Iv93@)KB(5}r?Qdf`Ox1s%?K8)1C!Hw>)j%)&M)KEZ+uMIPMRBc@ zbPK3jx;rrTWGfb8`#!;5eY%k#1Da3({%oQP@4(P$q5#4M;x+tGr4>{ z*Mr?kLMP@qyiE}8xeIcdwF}BY1s&}bdV!SHh&?!$`ZL7x_M_L0dk6o5>7TzTxF6De zEU{H6FE3U~VSA;Nz@g(ChGW@_X6yz2GKQO`H!A{q zH)RYrbCo@KDnW}Us+^DDv~B084tlt|roYa=6V&@kPE4w}%V5gTxpFpQS^jq~n#H$d z{mNc_!f#(Y2{&)XEr!o0L=(j^V(0Q@_Iou`qKT>lPMpr|DB;JrR;D}^#Jb^tkr~sg zGFZFYMbzRq-#4WQo>7_hYIbDZ*g2dwq_6coyZKEzCUb-tY5u4^S(zRKKYHG5m3(`B z*@1dZvT!3Em*~tApjO8W(lI>>^aG9|(zz$4ss;7<^5Br)2AK`Z7hh_O7z;O)W1~qQ zPRo6r9Kr}>9kqXZ`Z#X2yy({+N!!I}NY(91vpyjYv6+I4qcUy2EkgTm?3Ui6>@BtX z>>g0kl+a)PtJZU2D#$(8tOVX~Ur_w(J6NKj{@Kc(-PXf$Ny=*<3^=_aC26QCL5R}@ zWA@V*8}T0$WhRHZPtbD2(wB2=1aPt=@*w8qH3tRX_z7h(j2&#oz-9!-4=E@Iu_9O= z^^|W3TyP7Hb*&i}P4rP&NG1bAL}BP2VeczDI|!=fWq|}XVjf~PD9f(cq=%SUR+P_m zXzQj;De-aWd@_*SS4x~eInLVav-{tjPhqW_C#TO2;%a%z>RxI_zTAu@ugw<^F;rH_ z=YXWu@!zjp-uwA+la|1nFCStKP*|o*nxRG1&1hp$m*9m1SG;q>nsZ1aSMs>RtNIBI ztJ=@H|1kjTOW^o$A(^0QL9bEt7)IcreQ%_aW^DFyk;U7j0|=K}2xxLY+GXEDc%yEd zmy~43<<~1?VP|eOJ-R_Sxck;~nFc9=(2J%rx|+L=DO`*CcD~NLyDs(-%cXr7Eclv2RaE(2q@_XKF0&c_#u+%PwmQ>4HuTVAaX)!zH-m_uBs&8jwqD| z($Mh(&7g&uc=2eB-*5-*n~fs9yfrGOYdlt3rva>n*4(X4U6YE+ztS7Q=D=U5{!sNC z)5J8nR|7cvwY`V_xNKtFE0^}izRO{3Fc^W4A89x&UI^{TG0qCK zJOO4lZf6U=HF$Dq;uV(pDVujoEUyy7i2?ffhxw5bqY`}vYZqi*rK~^V{JuLD^ob1$ zyb8Uf@mX}*a{MlCXs`F`&#T#s_+z|}2HH7m(HgG5`x;+i>or(f{C{6*5~_? zugWJcm^v)!uDvbihdICN4fh-f@7AmvPSI6cU9>$PV1?=yavUX$WZz+foW!);clE@Q zp5jKt@Qb3#r}Zu+3NPyXiTHhUI+D8bG`c{wp$i-IbUr&s1d@L5|RZw)g`jcJ0+3qohjLKGO1V zg{h+>4yzg?I8vzosS}1EopK7bY}s5IOp(tF`e2r>*|Q|Rl+S~OXy(Ikf6`R@GjX%m zqb{t;3Br1QO+Ywuad);Hi5N~<_Vo4SFRrE{oE8%N9HyS9a^Z#v&#;#DNR z3>8RGzQ-i;T6Djwj?d|+FR?k70?owr-iZ87e~e|m`NgsJt1hhyxT~xaIaPAsR+9J} zANmKA6MkCtDx}mnX8mnSfCG@Qz>v}{ywyiwo(Aq1a!cI7Xemr*Q0umJ&IO;o&?);D zRlCrI+_Teo9XTp49plH1Ujk!ee*S!j8A$y>-9K?NrnnEN$E!!dIRzV-17uBvgx z**sOPi7(qrRVljHaE~5rb@!r-6?h0+dal6`$*-A~=g3he>*uXoYP?t5TjEdZ%D(S? zL#v7BX<(iBOF+=HF@q@K><3shU#ni7#>YgZWA=8m{WR??DZ_^e->`mA##LoJnseM( z=XA1h3X|f_W3Td@GrKq4A?r{1;r_BBpa83{XHAiVrS_f%Y{A6uLejQ+>=fydbJ9M1 z!SZGK$tI2O3Adaz*sD3Fy0;KGHIHj2q=W@zEOpvmScf#q=L(C?gojQKh3j5Km4jusLV65(ICZq&n=g*Wx10y z1B1OTOUZf*(TM)ncaZK`j@8IlZO>9psyrM@y^(85`(Elj(^xZl-eLGOZSQUD{M);> zx`)A1x~}}6tNdhTy9Q8(PqR2d+?0y*|ICxi90L85AjO4WI%TG^Zk$=I5_599b}B#k zdkvEQ1oR{7gtA1X-tA|V;`H&LkuQO^>o2AZLB)EL!}@z~3Tv((HkJvE<@1onkVYG+ zpDxUU4|cE8{0?ys;DgRMXwL7f(ptP&;#x~+3v0RK^2yPNveyR?l1u8DCQ7ZScDRb)51*Cb7FLV>b+mGE}%%8{!2%I z9#b#Bb6e?LKV_rE+nI7YnJvGscM;Y99#K0p2ntY6TEbs~&9M?*&Zt)LJd>-d92oT; zqm1$nf@Tl=8BIUg@_v>2WeHApnA^(o_51 zzWdnoh+S{j_gn2Z+wYlp?&u2%&pQH7myS5pnH*2dGga%&d89a;y=)rUTdlItU6_no z1dCev*#2z-SLATgA7S9CSB!mMbWKM${EE$pj!tO)D>D8axea zc8n5ozc(;8RTl1gc4s!Rwd#h>i`DYx4*)=tX0Ab58f3?+V8qfDzNLJnDK_%u(aL_y6qrZ%5)g zeHk@NN+S5UbGFwq%pZR+mVP@(4-Wc*>G%rQYk!v0=n2sHy6f|AA**4eThgx3q1POs zlrW7r78mXQ+#oiXL|9Z}$De0@G*!>q7eu%ydD|%9m}CBepsr;NI3L_AG#7r#+xxF; z290|pBJ~Ad%I1a{5~NrEx+%bUo8sW|wo%mI-$WQW9BH#Y`GL#&{Mqx-Q8D$N%kNP0 zt0V$xe`aEjqCR#p3MJZR#Euu%KKgdM`#8NPPZFaX7)vB27N+G)_KO~8a;gO`8D~H7N&W?Pk zF2{P3x=keNRs<`2u_bo2lW)TpT+288p3Xm#{;SXybiYggzl zwKq7mE2OaHgcQ`8C<27mXSB7;Fsr#Yu?&Pz@bzHX;4H}at9KpP`(hVv{uX$?H#|Db zF!M#${tL2Y3j4*wpC?$Y?uX1DiL;42<{)?*;hzN^p#~(bHVQc~8U@RXj!7}@I+DVk zU%KLdjjAsyArMmoYJ*%^7Mj%jEY=D^ZkUJ#ZCLI-146955mnj6k@`?nd~CuKx!ox8 zp}{*BfN_dUc~(S2sA3)ImK>~uuf!$7TVmDV&C%aSOCE!=&@Doi&WjL_k;-yEYM1Ys z%1DiZLcKMqnQfi5W)OGFS&P?)W?{~5LgykE`U+C^F_5>^oxAxSZHPy1@*$e`{Ht!4 z25uBL-H#on!YA|0dO*K!SB4@A-N0;z6Q`yP<)ZKUCFMOVnb)8d@GJQJ;cx$Ap45$_ zV;v2soT4VfQm8LbQ;`pU=FJ6XkxR|jd15KI(0iJGcb{It%yPj4dkE^51%D}UUmEx) zC4C=J7J~*|OFS8Sh3&|I0+pcgvgAyE%?%q{*O}MI?F#NLwoNV)-Jej-0Lh9tFnadg zU_UKdE;@i)Hjoo*C2Ze_+6-*wn25a-Ho|nv>cz`^6WT4a=fSR<2ecE9Km1t~07{l=*4uW@BIVk@N+pkshZl|~hREQCm>wVbQ z?x_vgWc)&tCYh!cCJE=Y>}ibW+^n3K7ke!N~haGJ0iZ1dk#~6&i@bqtYH$ zIFnTxN;iY{Z1w@Ln|e zNDu^lIUwdXwW0$;S-AWykod;*?=9qJIgPsuUMpRJ*Rx4)X6+RQ(`OpPD>P=IX!8a&+Qk1Am(fKeY|Jpj!MnmfWCY zEzc=JS8$MmrUc)yt?~4j;QzhoC5y*kIjobQMM#vDeM++$a;lHtFEk#ys|i2e;Yeyx zQ}ZBxD!zk`MXZ0Xf6QKpNa(zf#$e+jr&8wA?#BjkPPNbU@jLL`?oN42I0hJ<)=KWD zax11*a+?TV!v61H**IWvq3nBYm~*Dn}21Up%ixBBIW zg|oPVtJPZ|{pm2VFk$J7Q7Y_DIoomZ=pZM@&1+%}zuiV72dc$HkzoxalA@snGARDG z{WkzKe-K`ef%izt>EaLG`*Kb2rr^sv;Wxr>3dRfUz3}bu>h4w90@;tgGsdF2j65N6 zQtob*nd9G_962Me74>=`X*C~E3qK+12(gBZaGf|*(4_EVc28mT_ZO(7sk`3y>~6*j z-Z=^W2NaYgsOm9&4m@6_q~)UBZ49B|GH}%z#QBv9u(`UMmPk?c z<4V7*R}aC}NXgWa51g?(5A1EexAyK23_gvklbSuyX|C>4?bcD5(;rkM^Ktd`k{8&N zJu!&%vtvQoj?!>-b@!P=^ediEIYPK;GWGTOh@FZ%jSlM~*79~J6=>=~7!X76m6O7U z{#O>jiY5`4G>G{T0=!t~slD4$aN6;F?*OhX+Zvd+@eqB`Y1|fNoo5$)az^gw_Tg!B zNznAcbzm4a^{m4FxN7{3=oF zf&rG7t<;doZwJ54>$n`c5C=x8?{fiaCs+QpN-OC$*eF z60<|-B*TOQg&Wrl&JP@acs*EOrZon>ej{JTa^DGo@UwgGllFVQ5Be!2^H3=Yml$^T z>--7KFFD&i;G{eofJbTic0PUMEveLMs&4q?!LKud!#0o+;Yie)zEGT@Fv6u*G2^KS zq9^yoovh%S7D0Kx@9qbw?V3_(2^|4C({3=J9(_j53?`PFGY-CCy5P~kcM*mYJLOR0y`Jhnhh7iNFCl`(!Ro{ua=MX*_s{pSYt*JK_v%*8SrcwI{?%NQj8>I#%f*I)^hg&ELy z`R$wB`VuV))96nBaAgNDV_$AYvdVv_S*ZubW4U*^4^dyu6I5biwmG1OY$kELThXo@ zZ0j<=M~o=CW_=zEv08|!`_=|gU^U50mm7TI{#81J9$`#P#VG-#+4;T={SAH8-8(;> z&_9F2z8wyq%+}uQL4{FL1gI!ADObR(pr5@%CT4hYuMXy7M_V zS~oyII8J!d7%VF@EI-?6c2Q1|{TA!ni`83{W4}F_am;Sl{QRB|4y5l1!Vw>Gj-rDS z&m5(DAlKd$m({X}$4Hs8sTmP4Jx)_|=QX zdfhjKVIcwwhrqfdQ>@jRksj&CQF>yIj7z+Vy=qeI1z`(WhlSHIW!JV_@w%?L)NLJf zGp_4zUH;4{_iU!4Q^W@cQdt{qLPo zP3k_hQMVBbA`C9!^~8YXwY5bD(GTV!+gB-dhhA3}Qd$o?kbZg>`%h$%L5kEo5 z50C}f<6a{xj*2(A;~Z~tV@y~X5wfMzhR+$bT+NYU9V*?*iWFyCT%~n ziqH7uYp_jS4|Xrv-#FlRNej#UJZzxfb?IU-zsk1Xkim+mymfugB)VpomyGGZ3W*j^ z7g!xmYme}E=8H=(U*b6`Q(}DOefGAEQ1PU)1v$ z*h0qy{IkUG$*G5)x&h5v(z5@t@W6bQ^pY5QyJrftFo+rE1#?aLmXuS)_>Zuvg+u^m zMj@G&1gl!wWv1c|O58l0_hR$-W}$jUIV-{cmCbB*GyoJ4d~48c?fZ_maZmd|A0!J0^`>QWM>byh0dFZVsV{uDq_Y0jH8z@J-@ zB26=uy=x!D6SHR@juZX~ye4ik7bFonVjNcL;u!c*5;-itCpWEpkO*p-x6~j z!yj6TEDjaKjfgmG%HiT<;)H#t-|5B|3M=n9xl2UM^M+vFfrS_PX&CbCD^*e}NF+Xbxo!%XQNO>odK1vnF;ImdDFq+p!QGGYWam z1LrhRZHFru@(6N%eLF!KoBUNr<5W=ECu04MDrUOg#7f)!|YstXNou6Zul9HF^siIgjW;5`BTfH(dlg}YXQ@*d0u_>NqHhVs^AIx`oN?#FT!xk+)n$88sg0+_jEIE z=4W3C?|Y*p^RYwlPt%L(+jnAhBYV*qn1y(U;ay@D-E-Eq{=JpZ&^3*JXF1Ah3r?cO z{a{ms$^bN%7uT}R2v(igZWMA8{*8Mq8wCnE+I%5IzjAQ?ZdVX8=05#~i1~>^l(j9{ z!O0`$sqjd!67Wg{79j5dC@Gd04Hd`u@!FV!tgsSAUw~c4Kg7sDmsZ9@0+aaL6PQGu zm4=FjjXbb&K}I0!5}t2vFH}eQz`k-Z%HsW&<2p}-Yk)e-hzZ2Bu`vcv{x`?%+p_$& znw^iQfjN2S7v3CJRj-_GT9d-Ko}?`-Ez!?^`ug-JIqA5_C@o(Jt%u21%J}dahH(Cj z3lwkgj(m)xuCIxQhVrl$3s!pH3hh@P9}NSqTkiel^BEj=Y?28@Y-Abu&c6xBF8;df zt)T-@&O(LOB5V!-p2%#N!yV zsU(&4kb8KgG(0nOczxE5G?OHjqEH{0{Q4`rJ<%kgJ@NI?_Om)wD7%_O)E32NfXjYH zn&>Yg%_Hfz#3V@)m=DgEB+K)TO$5rMhnk`FC95HK0#&&6aF9i2nwj1UPH}7VN975f&g%@WSy^+* zBg!We_aK&s$|j6$+nE8UQh(g%;~!Mj&2Vvx2J|e)A8(u8MjLqKCH|0nt56x%(vz}f zsnwe(uXlR|^KtxE{}WE0u4^@Ph4=|}A&)HJ<6h;{)%{zrfHz>xzHYY|1QlIUHD*agoQ&P3m|lY&%+$*66N=Fg9#rc-#gtDYlZ|+YuVA_mqS;= zGxV~<8O~(=A_WU$W%QY<@UzR&cOE8YqXCTBf4iD}u z8(^)C(*<=O36qWcK+JP}&Ec?{Vl&NU%R+wypYIcl)W0TsTQ<)Oi0;=_&IzsvcjiP)7@_hkV3kRtp^5Y{*$-!PS$SR(f&rcy0ZoujG@Hu!T-Z*X4*@VTz(8e~^+WZl|8I z;5V17YR$Su9`ea^uJrg)QTL}Jr)6;j?)66E@~}F`EaO45F5{*x`|C2eSg{Y5d7HKR zn)&n?Dh6|}<@P;d**)Tf2@3H$+5|!S(?6RWNwi}%o2$^zr>oo*;(TODw?YEmpqK6$ zFIatwflL1|R{fFIjOI*BekH>rG-5MCx@yrm9-1BHKGBSd!=9R9tTJSDSz9<-9lOb3 zh(@x679UkeXow1C*o_zyMr)5_k3E}?FMU@{PlQ8{NIwK_>Ye*}P`O%4Y%P-cCout5 zT@y0&w)yu*=b#HFW>xwvf*v5R1Cnoq262%C2m;$m*OPsX1=z4C#4 zD#Mt0F@@2`-w+8l++kO*-V5@|vipz9TdbnMUTbvdvsR+(J-VW#sxR*B%;TPEnC_IB> zy+?o7i|0bu43T5kSF_A4&xl!`$A8-;TDR-0cDJ(LjNrm^m@J`HQSWv{mXc*wuF`n- zxxr4tqUlBU{;W?YS-(WrfgROi(h{7o8K)4yWWlg;lSCPu_~MzR9u-00W=nd?+Su_2 zyh5v@S#vf3g+4m`t}S6XA~!=3^ZY5zr|12rdt=AS1`>OYHm9^r8>Nibj6Dp5)D}eR zExEUdRaRpPJt$I#OZA|-YO{y*TD51HsI(FFl3LV_Xp4-8y(puvw-HB679=lc z*O;Y##xL8_a~}Uu&MC-Pkr3-gTgO=N@7VJAQ*gc&`t#a|n(Ktq=q2^GwDLhtr1XTD z)l%!Isad&}(eSh4X2#}wG2)%l5CmDnS$_pL$cQ736)UqYsG6| z{xAPk&GUq*SZHq=V@;ohd4w4vUa?|>=;J2tQWf{RhDzvag|qIEC!N#qk-E6x!)^!X zC$CP}!oM{}1e}m6ZJ!IKP8C+8-n~7Zu$t_HBII6o9KjO`f$Ye9ehHwd)6tEO+SZJt z*DfRg>jfSQ2&10McO!&p!1jvD+L_4sTvuF7q&P9z9o#GVy;e5>cX5cZ5wp!~o-5+f52ZHs~|tymC$VasjGI9&?G&^rB(I#72YtNrZLo z1@~2C@+CFBILQ{HIpj*^`>d?26E8$GNgou3F0>xHA+YDT!ao+4a{XO4F1w|izAeRB z4By=^Gts!5gOiPwS#TLOzQ>p{IKQ~NAlO7qO+dS?i158<@51lS#{gwzP*7aA6a&9q zv;A3a^p>IA@l&JM)?Q;;HlY`CJf?>dZ7>JG6MxN@VFDAm(l?`OX;zsUR(F3=B z`oNo$eWpX&OLbO0!!EDSmGz0XL1=37@8=$Pk*`3zGeb8hrj++&AZa;&M6!PQpv%4N zU~LKZo$nSe2Va6-JP1M4a2{3?UXqoJ;@ZOHi+!f#+{+iO=^?W0Qt|=OIlkQ>$GFzB zuL?m*7w1K&62hv;OE>vhd-Y2yl!eAL5)}u|2hbhy{VU;{HOc!zfM4mi@O$6)!f|f} z%<)y&D^{e{ya&Wv_a<~$CKqHrRE~)9l9o&Z$f3G;t`p z!Ry$x2OJ1m1}qb=JY>@RHYmDAA(dqo)Uu4;2?kOxk&flWGx(L5?P>78bq3D-{@0X2If&{pd#5Kv;B1dk@`m(d* z!+f*U$24uoZ!%ytr=-Bp>j|^*#x^O=_MGA_@8jsIk|f;bvNLXV&1-3(bM{ZjAC*CH zEn&>R&-^7cb_$#-zut05_%Pp=g14*5UoLaoKcS@ii%F!YE01~qI7oOsl|3t#G=Bc_ zvk9pc)ecqmwa-NV1+EZ+=J0c@*3W)MpH2o`AML_uzR;|8NM9Es#r~eU=g^~B3Yfy| zdPcgO>2rG_ZD>%7FSK}QIb^^th3?qJujT#yZH9$KTmEn|$9~-eVSciK#`fwl6y>W- z4&XJpufk>GYBYn8wN1dQHlKk!^o%%n|C*Co&m)I8)N%~L21)upNX&u|^iT*SeEq3%Kzg~y2VtUnr zgr!xcIragTHPL+B%yyAX>$acET8i_p4RC1ykTxWVvcQsSH>2%P7KL**6DO4H=RFOU z$-RohT&9@2BYBHicapr_-8f=S9yb&QbBCg;)nltvWB+n<$IvUKTXb$q@caKg)8uN z`X}-3MbUcwF}jC*R*f;&eh`APb8!0%LrE=xSv7XHK~`aPzxIX55<_QZL>*_Zd6MOd zNONFJS^8s2uu2YXGh=nA(fJ?ui&u=&fXo5wyw9(r?H_oOAqBsKX@ag;5A=I&)KgnT zU9<9ohs_;Og#K6I3at9b;NJcaN_Av=sW6Ywq0%;4fSO-a9o z7w6MziV1oRCQch4)dJ>b%6*v7#C_JZ5{IJ}J|@nf?}YhJSkkS*<@>fg_$;-3W{)+k zzvLd&LE)a_)aI%?eeaRBAnvN%pS-2}=t|`W=il=Q>{TkME#XAU@X-_g9N#NsXn^+n zZ~0|AUGNziF>9$7>M?6s?q9+o1G9Hz%ET9MWo$NA+Sflr%1Ghs^hUfZ$$ZOcY;_)& zS8K$3rGUgns;@3!dK}+KMoRLXjDzpQDgZ%H`sM)2(^=gvf;ZKRbPTw;qx4BbRaFPv zK+Q`I20{3Bk&RC&Wpk3>Z=!thT#IS^Z&~kf`^~HrjV$e<&=oJ=Jc0f7fV&X}{mhHw zdO1ZyOPTj2h3aYMoif6)33Re^-ADF7$>{v&-Kvh5WtY{_YL5~h`l%R9kxeOMDSo)( z$!J6g;l~>yg~@nEqHxD40j1;I8|u&o6J`y1sb;x37*Cd?Z4>?2UB1A3yi!)sTlFf9 z0YBNLb)S~DDP^d7uU>W=41L5rh?ibLR$2MFh(e517XHC>3GtU;u;FSCV`da_+iBrq zNSD^^r!9xsa)VCj)=={oJEkwk(sgia`N0;KrK7K&PkrjDML6Yh@{F2zscu=Tv{mmbP_?(gg-@B-u*o_|i0&;8bkQ45KLG}WSpmSlkoe>?Yj?th7Yqg@kv^Y80urMhU*Bb;KiCglu)v2%ynVLH`|HT z0O?2Sg~Z!gv?ZEi1)D{x_6jX2grzU17rwyfg%iunpRRPxI$oqdc>v9cebTBCHFZSe zDXT3Q<$kTKW%04_4am_24YvkDz|r9gqqdM|4;1QUSiSl`%nQ@FLQH-z`^N0h@H9!2 zjvIBpe2U*e(26P`&nenTt-80mgwUQG6{k2pQ9^euw>+Kql3vQts~&r#-4AezTc7G> z+y^40NKE7FsK;OW%+u7F`Kl9FBL1kVdx8nuk16g~$ErUOMtC{dX`S$2_Vw$oeLDon zbxCZ5p8qab6BF-H@kiqEt^X{?o?UMS*;&&N4%L{>MG}=F!Fy+1oBHUo8a=?7n^!wh z;Kg>GGgs>%mi7%0C-pq(?dF2utF9S*MX!IqL9%Tcwxn`q?-GCd94{y=XZ?gcvtXM# zsB50{bWBHmngY~WjlM}9zv`wUHKguwh;vbn7jdj#1)-krv;&?Z|M=nTREQkk(fgmf z?Z^R*YzjXFF<44tH(?-f24U+fzQVQG$7YbupZTLV3kR|9J5LWj-y=d2aaeusJD2KQ zH}rLD+y=tx!5&jzucG3{>v2jT{`R5rtqD8G<8nI>_=qKUrAueU-;SE`3{p^U;c31& zs5iw~se+zuXX5MT@BaZ-+15?RQjD-8#*fG_b*vkhDE-nyalp(b*|73eo1mp4%YQz! z7`|<@KA$q!FxNk;?1i*TRYyg@us>9Js@)jwwQgEu5Wbn}IQKhZ)^de!;`S?b3-jr6 zAHQ?IeMZrOQW@Tf4_8Q^hS{H;hN1Fp*f(P2*3Ew^{J9tdzxZzpLsOY9-@jSwnc#I! z&cq^BS4?;@_~UQaqh#V}cM0Frp<(sa%FX2#y#w?41e*5Wb__(+9kM`tLiEg(jf^%Y z)Z>7Z`pYOXztLnbdTp}6#W9Em4Xg10rG6BV`TyAauc)ThH;NYqQBhIQjfx5q6$KR$ z5v4;=RCFsuWh)>hDAJ?^Y0{FYC|H2V21KL;q}NCdJs=%~&|84eLrDlB5K`AVasR*X zjB|0W&&3&MFa{S{A;};sZ`S+FIe&Agq!?xywo!SFcTMKXbZ>L-0;Vona5hAx{Wey) z3wvPYj~DiX{^r%6XTR*16M5(CyC-z!^EJig6H_OZ6XwcxE04w1 zo&9`|RJV~LR$u4Yw(alKRGEbIsrXCZwx`P;+x&u@8@%OT-^vORt8bK{={BGSb}lh4 z<4@&Qi}xM)MFBjE39D^>As>wCt6}CbNtzQDEy*vxKkC@1I3U5@l_2SoquTkiO81wd zJn433*mixM#gP+F!)VLLoDf}O0sZK&y9sR1qew5%sy6p;mwewx$n3l667X`|*`Oid z=SH%2e_MnAb?EW&yu036W12sw&HgEJ>CCn@p2e-6=r?PDC0Ha|a~m)Fk&IYFMP_O% z24`YzG6r1Fg1FJ5ALDqS)nV0AsdC@S?twNiHEqnD8q~17BboJNPZp^RD?jeM^66uL zW=zm3?`43nA#qemSw_-@oMAFNoeVx{ow|?fTH`kn&3;4`G2KZ1%^_cB5BV3+UTb1T z7m8#NHN6H`H>hc>g`!k0*)tK{-E22YHxxi=)yzm|e#U>xwd+EI<1f7t&X(tllIp1`eykv0x}`bJ#u0A=WX8w``k~+tRaV_L)23w&)ByyHXk&-Ja!%O z{cJea`rwc4H~eFi4zNr7HRk=S5-{-hFjlW}AmcOqpTe4T^UfpHl={7)g+w&KoKFptKTqbjXm+mH zZdHjgiT|E?z-pfFfYjAzA1djyB%q)%K7*b$FG`%d6kS; z!MG%y!yLg1dO@_1#J2zShY6K|$GGmr4=ulz1 z@55CBaEG^wNTl2UPZ;?>#r{r63R_7rUfvSZRQ7RxcI^6<>5U6=+Q}itRYQ-bUe}hJ zVdK7ikg1|Xpelqtw<&3z%OctGW3Gm|+_k;Z+Wz%R9DQHW+uAq6!~^DTgk=i0wFT*Z zXElo1$Zk3C($cj3} z0<|Aca3VL;4xMh3KI^mJS!D6=sD8(DJERw9M2%B=LocqcNw2jj@BetQwnzAMB)MM= z;_^2C9-aNdEkovnTQO_-ijS2uE6| zkdQ89i&8FNas@n?&h3& z7WmWk!vj`(M|?l+kPxQ{6K*4$RR0pC z4(~C$Hkg&!GwwL6zjCLnF4Of_IKyFd!D?J}K&V9&PDWHzN}}C9j~RYap5fpgHiFfo z2JXL{jt3~q)N4KSJ|v5aRLm|g?%yd(c9y6H-X!V1;x4Em{hYPjUya!-J)!JNw5#Zb z>eyqiL0NsM2)c35|L=3ULO5dZongFU_Sw^bdD$VlNPdxtP`^9m@7m;O`Fy;~wNtqy z_G(r%7yTm>!uPd_7~byDPdh351gzTswiVIyUyKLQ6akgm#h0_=m$ZymIRx26KXUvm ze^@Ix;?^=~a-iW|!uP9y+gNFl+i2D1mlEkB@5s&y31{2v!-x6RUA<;_C#>vLZCGc56iG1Wh_= zr@8gZ_wL6M<~&-N&nMX}nqP%VQ_#{vf``{JRvffqT+{Vs0l}X!v#x|*|L8U5lBErS zPAp(?V+)t;`qJ;ryCbT9Op=_tL1j3jpg7DJneqXHuP4 z6wQQz6%9&n?VkdJC9ccqRp$g z8n#!x{foQn%L65?#qEDTKb>`D{f9)rTLtlyzKaj-}{4Xfa6WONZ-qJ3}8}J=dPWg|`0km&cKc_8p0bMkltw(tET7 zXDuGFac7WC9HOnbx@`RZY-YjyvdKdNHOF0D?8A`>DhVDtbX|o`vX{jwZp5kx)l0X# zv5j`D94EK1^<4p|{)r4kpVly4w|nA?Rbfy=es`((lO1_j4fh8Dojg)4e^s3_SwVH0 zdB^aJW=CG;#tcij5FWfZRW>nj#}L*0HHf;;adx6kMgRUPwu4$4$GwVDC>TudKD2_m z@_bYAQJ(u!l2&T|NHC%@y=JUypCfpi2zCG9{*V-T+Cl6PVtVGOZ~>XcUB<97ixhI0 zsU6E*_QCW0E=XIn{a{%z{x!fi8wdjR=HZ$Izm7~KGv$Fn$*bs?dk+y{t>ZSlHx z&idM|<4fQM6nTQRdo%V!UXq&~Su{?7L-Wto(Pm9@%AY2W#@!S<$D?cx^A6?@PwRt3 zn2ILgt2PARW!V6zmq$$%WF@-}ozbhmMHv2twln$9a-tB(x6JoEQO;Ct!j`QJ#Uao< z()>l_D)6nv`HM2=IZ7>nn2}}P0Le+8+AO&D1bd3mNdJGLnGryhMfYJ=iVgu z+8dLydMBUB_5e+!Qfh-Z(&(6+>=16Ht!{b~aTba6J2N>DQSM29`kE>x71PY(bdG>$ z#{;%(JiuVyJ%?CLse$wCVB>24lB2^0>}1!}kJ3tC@2b|8)==kFOYmuf(84ItW&q_; zIsetG^*BBbJLaUTX`!q1L~wZ2vC5mMi?`-7_w>y$dnrXA=Ryw zHhM5c*MVcy>E1|+_LFo>fWfUU7Hd`);Oju*5M~MLrZ*Si5gxBe;B>uLJHfm1w}5^t zPnRoSq`7x={{^$Gdn!&?q+h^So08;LlL4MwH0lL%IpCeS0EYy;0o*x? zjRTz9EQMnoyKT@>FGDli`K7lq`af6O&I|K2_Zpz0}4O`r%{)C^h}hc5K_f zCwXr7rR~Rh+r_r;&*(X5vFm)B^6RLFj$((-)ugY9KEU~Wkc>!pS1grexT`+ILvm?5 z#&-FF?L&VOD@rsbcXDdLalIHOf1h{AzgM_QV_2!)*|q7Y{>t2yk*w_U`%WA84>w&7 zc(Xo}@w;g2W9wZ^ZD`WyK!A0u;KU2WA@y_z>QC9GF7^AJ%%2jay_M%C-8$BZSB`c8 zamg<=4j3@DTT6zFhGqMGF(LG{8F=U!kzVcOJrJDBiyR1=?Y`wob{=14M4Gd%Lxt5`OZ{>9*t&U@wMFmrjA}{}W zls;+SXmQp3s`I5-APbsJ&W81B*5}Fb!q=mOcH^eHn+8Is5tJ*MQg255l9#CC-$?1lpD+4r;MBoAeJ^)j;VnlZzvwl;nV1$;;Nc*vL1P1cRPl?!+{nH0BMZW(HtuL=%J@Sb@C8gEx7JIz8>`+s z+~s!onMz~qTyqq+%zalhrmpt zUxcApCoj*eir;I@j>y+3u8|F347U}*)t+MTg3MoqDF)bylzWCA7oi2#e@Eh69mBu zArM{Nr?LBbIFsxPwRl+PLyOA|cRlBjSKB}nLWQ>MH#;7&0xC46zM=8%q$e8glNPJ+ zKy;;`Tz3ybv!CM>GLvPnnX|48&YSa@Nh|qe))lpPC{H2Z@GF5mr_>pQ3q-{03{Lt- zlrZoacMEyfI6vIwsQIe-?y|H3d(BDq?0PhopYFLz#4}@=P$yENJ&MU7ZxF1(Ij(98 zDE(AWy#es_eUgzwme%i{;P8(H;X|Nx-eRCJ!`i_{^Hrf!_#3TEFQv?@{&NZ@K1&Dm zXBtF*MZtIhU>J~sN;Akn{qUly|L;Sh!bG`J9v{Ug8RQ5<^0L`E{ebA z?%{+(twn|yZ{TajL3_20*l#dm2JA}HI61doLf}sMR_s3~6;SKO&#)^kg? zsjT9-UD@Fw*fpKLF?-*TG@ztdAiKjgwpiK;7%lD==)@rJi45fIn=G7=y-QrY;~chI z%vOmiI({NkGNv|ns-oTA_p!h==}UnQt2p4d#tRy$Hpl+eecmFXJA@=uafe@#q7ynw zd;57bZ?o^Rd|PEN+mcU>21lr7)laU$YOlu7uI)iwI(jwm-e{3i?a6SxcgSUxs=l)d zRmyv+s>;mujQ?G?dqF8ovQ=7U{zGt~I+wX#!mcf-8CbPDYP-=(#SgKkDv8KdyHjD| z2(0`vwtSD4%2V52P@W|2H_^StJDkIu_(0*yzZA}%uBkL>`QckQ&b_?_kqWKAMK z1T_C`h1l2E|7x_Al4ohZvw?lZAgQx;F5#|y_`1ykmPUrtNNBb#>56v{=NAaPB|QBU zVJX+|G_ZovXT`T*(ER`I+^#ulRd5l-YWB0y%^VNzG?`Zh`GJs`tqHQS)VeDHQr-9w8 zHO!0T`pv>uwRzV5)BPRq>KOBZq~}etbrmgwaf*RCim36xg-8gSL19-98I#ocHnWf=FgewLzDDwi{}X)_inb<$)2C*k$I>9As5v4Vl}n6 zcx}L}QyP|kZrD1=#FABC?A6(YkI7K=Pr0CDA2qz2_iAL}rz^;Kf*YGD>As*^#b5X0 zE@cJ5;le9r4jIX z+zFUg_Y=mX^UzCi{4S!brrU+Ph45zrq2bb_k^9G+9Vep)a*l&!2ZR}~FOER<4H)ZB zc9a!?FC*ftih^%)ItandniqhOq|U7xO0C1>9j1wQH<-kv7j?j3g=n{H*=&kO`zAJG zYxb3Zx0r^pY+YqkJl_rKhk|Y`gwZVY)mf8a)$=P{#mwzj+ILAweqevfA@s?-6vn6` z^iH6bFz0;!znlLb{GU)zA!}1-nbvY&!jq$ohSk?@ixW?Nv1vDwHm!-#mTWahNdJ;? zQEvRz)Z{zX;cSnA1Pb^=K@78;68J!TzBfxJRlKHS@pIh?)v9GtNyD9Tn-6VS%?g%_ zbE40ugkT$>ZE-);p;uh^#flm|t@=gaELCT57?G(kEGE!*oa5Rxm0OD%H7M@fwe9wW z+0#3u9xjTA-n(|2AB8!wL#O~dU=2Uz&rK_lCBIFH&ZUaE^QO|VHB>xD0V2J7Gg`k) ze@GnI<&KOwqiV3+TdsOcV@^7wCx(6tL;K5yf6)~m6K~6(dXqVd!#7Z^IW=Yw@$h20 z`LTAymzUA`lQ$k5-4U6pF^=~$xGY{u-q^j|7rLyfz6|Ce%~x6bXnsE(#AEXgWlpgM zP1(7BEt@DzT{Q$=vy}5nUNO+d;~GJac%@`&qbv9`42eIBwu8vA+D|O$wIHPOYFQWI zygc<0%!=FImOy241nM*pH(_+A_F`#XP8N4Pby4dt+fn_$j)$FJDXM=LS?<2k8TxQJ zH&~M!m56Ru=A=h7U&>IJD~Yj zD^~p7f-%j>s1vz0K^ajltoTv0{0Mhm;&7rHb}r%3#S%?;Ey)0XJMoDtqI`xKE|1BV zns|!HuA(FdSw|B0*R5{iu2$}F0PZNon%B%6n*Y;4kQ6G1-SZEBwm&X-4+BZB&efv_ z5KH!%nsxk+FX{MfyKzcY;dE`1zj30gAOd+f-aK#<}qgx|$ljHcKs640h*1yQ) zwSo1?t-7olVS7Y5KB6{zfQVRScDYGY-Je!rE)~8?9Cm+3z7e!k;$cWvCgS(q5@zN% ziM|i%etgh@7fkunR=~?FP(?95&*$b9o(DHIQEB`oG}vF2t)NSk!L6}{b~3+R~|JtYxdQ75gkdpzs zd>_edpRev^a@E5PxW?XXdFx3XYWlgu*of3pG8vObZ_fhJ}yno~)S(F_lLxnOo}hsRRxj4LB`MaQjk>H}tz* z1{Xp3{QFCKembpA&G9-W@TL*OzvI_~!`TyUV#P4wSbFXCM!TZc(wSJ>rO*5c_RbPj zD;f*m*=xXg7e#wBuBGvo2yFOb(#<0YPEK6O!;$hs(<*UBZU&(KCg0mN%p8ceiHU6_G;$cic zbzG{oyqCiJw2thL(Yk&qyMG8q6c>xSO=WePCqvo;T&ea+Ro{AR2byy)@Tjdnc6wIj zPkfw(XhCa!IbZ&nFzhfM(_visMnIKK_TFtU^oUbe6ivNV!NIvyD!;;3#Jv1&E3bupH5ij5?-!yh`ZPWawV1tPX2>}7 zfmcI?^hBVwqQ}4I$f-g9lkOqT?!h+jqR^ibFL}dK<(V#%dM#ClhzRqcXp6}-QtAn}vqwJqc!T%GY(lG>J#Hg?ZVodYB)^TEmiCvh3xxc@f@_} zjSUMm*rl#=4`d69fkVCMH6S}-OP(`hm+xP#T8i!al*URxZpI0nK z8;-E&bp)_nx&<`*j1k!kti#rWWzu^efUzmeDAj@mMVenk{o{FO@*d;X4K|A5!InqK znyKDEQtPDGeT9VoKMUYt(=F)6>R4Ht9*b?y>mmplU+efT#$yk*Ge{I9M!a_fYI`Qv zGMQ2@Vi*jU`_%rh_8y>CBMX;)kwuq5P0M@_QWMaydI8TW*IZ<(1c#&w7W)7cZ{QkB z#p#$gkcC;`hM}%uvIX#XE#MZH|LR^jS?40&t}-qleFZ(4Ug;!-tw9v3e`n7=cv~Y_ z2?N+^9H}R^;KHV=;LEr3_icwO{`-94iYnLdV*G!EJO9U!Q5}FRDtF`&zLZ}p)sVMj z{NEhPhUP$`J{^8J7j=lR@jlUI0Typqda9B7{$hkZ7;PniE-+S!>Nbuszu1 zs8_o1wzqNnIu3jZ3q`emjw_}<3;9DvRn=abYfu()YP8QbD%_W?7mINSD;D0Q@LAsN zw#HbPRB&lnq(vy)HwD?dvv>>?v87>HIbqZgj1Wg-5a82hP&3!yeL7u8r35_^Hd;Sy ziip0c{~?lEvu(e_`X0HWd-bV%&sKbpLbly`>@ynGxcf`-Zd2}=yGM2VBnUojbsfbg zCl0 z$~-FW`#uSo8@w{vV}8uBy2Q4LeMW=3U&D)oPyKb=&1*fv`cdE9?~6KAZ)N>V+3fNv zl4dT`2X!y&QR#A~{Om$ZEzIDbTchxQ#cp}+_P`6@W1P&nD}ul?$|bXc$?%gdVX1HQ zS?9h!sFl$1&9mUSld_OUeE&_aU4-@rQeq;i<;#d^;mpf*JsO(9vw%8d8D^0ynb0zU zK!vnvRA_$<8+=Y3DG7qbYj_k6BhKb9)0Ebz4lL;M&zMyR4+PUuW3aGo9c z)qnV}XMCOXhj!VFun0|g^u26bj}0EkXq9Ke3QIrDrz{McX_%s(8wbDJqp*e!0uFD;Pyzj1s4C2jo%Pw5-ymDOw zwZ@yM0>i^>x)U2@%eXXUAXhRSrE)7YbOhau4!-?}JB*#%iZ!O1Il9%)s@T-TE<_-L z(+IJjeZi1U`3q$Jkfyu+Xx};>&BHsNjkEEKS6)5_hA@2q2SObq)5G5j=0Cy0qJxcM zEMLQ!#2aWU)7S}DnN+vZWk+boEgt(0BEEX+mxOagbyhc;-R}C2srGwU=O>oeSY;3B zcdEsW!W*O9wv)aMMBvey{IxJ(XWiJgT#8d&zI9pOgJel( zbT`-wuFK|hqc_laMi}{zo&@1G6qN(XmjnJD{rS>pw8q7IDQS@83+Rskgwe@u?Z}RE z<(xRJOb*44M_7G&seJjWZe{AV%W5~@2Hezn@pqy`gRJ6Pp{~RMIJjmBw9FUldr$ww z?#Ji@aevIOuFWz3OCd7?o-ipzTHyJ}R_!ES?zY94S?~2W35Zdx72m#g0|suu_IJuo zuI+@KQLa9bhKfxZMM<_85EXm#jEYg{iX2_7(M**W3R?P1aiZwjZ}{e^SPy^EjxmVg z@tfwhn~}w9rJ_Mo)8fw|+LD7N#V-lhG~ZS(?T=8*Ad0v#&?1CqqwX>L#Q{ge9_cLW&UA+uQSxv7)`n zr?qWs#@SV@*dnJS8$Ujo{?)+4P0L=ukS!SBDL1%C-(}RW?TVL4`|`a>#5PMm605*r zyhL>=?pPBlOw^@6^-195^IInR1h)w(>)ycG_d=&FsUcM5MZHzchD_3UyvASO zZG6Pfg#p&a9cR(6v(I*QnJ zS>CHCz)dJlH@X!hR0R%IKM0i=p1h**^w+zmhKW<|}vDpzxH^!r3U!p9S6>HXifQoQN5EV|BXE5#1FeaG8tFv~$Vi)piuhIn?G z@0FDvVHkfbOEjocs1+rl3u|3mF>u^ag?9?u8-$^s)UCZ&jS(^)hv&t?9L)ufm(R!}j^BDvNErwq99Cmazaq*52N zX`0(AJdY~En;c67U7=I_Ij$0mAl6JC0bSk7CSzA%-kn58fqqc88(E9hVJSucPx0x?dn!xzu(= z|Mh?C%c}Suy*(HA_;}sf`?yEMbGuB(cG+!*PT2J9ek){=%Nv^aJpS^}>qbA4fsV*1 zW^-GZ$7t3?5mrMP?Q>yD&WVr6K}%L|h~yh#R=UaoB0qK-o+72+(~uWgtdNwO*0I)^ zsYvtR=Qd|r{bgzGy0c-0nvCr~LrCU|!?wDq>8z{oOItMzN25*BX}64PwX%Qo9E0-? z(l01JAU(YSZp>GykUHihk|(txZ4VJ|sCg>sQ5WkTs3$)fDyS&Gm)zWSC86gxe86~% zYm+g2RIK#T<_Y3y>#G4T0>+$Pd3KC#!oC(|8RVG}8mI~p$rhUHx!_T=kDdEe_P&NTkJwm$?f`bU!qdFwve-Ar-Z5OKEH>-*p@>%sSdb7$p; zCcHXTvLbyj!WtEIj&s)6~1`cld=h{D)`VCPUgu+xk2?w>CqQ@ZrT;3~d|f z2ljc2#qmOO*|J2wWeLdHY}qA?{-pNq6Ef(6q6Kesu9O>PtdkH})eLbz{9VmH6p?aj zf04`5f#{&$lX4n%U6*d~rz7sy9Ca14LRlXaPLK}s%Em%cRV(y>k~l;RzFJs-$=y> zGoCS4i0UqKOfxt5b1iLNLmAy>(8c)(3;s2x-f(Y7ZTO#F1$Jr+D6EquHV2ff3nRVw zJeR`^bbhVq%AXESINh@VtQP`stb@dk1sBtS6|L-{TNLbHwBeR(9k6^GtIW~L%#eS` z148N6-MLS&M?ueCDtIAn}u!2!K zwE3x6YzgUV!GU=2l-X4`L}DT0M3{H&s6jh0(n2hQmkhJkwyC- zJsM`2bKdyGtZIVa-<~%og1>KR2I4Aa;*cdz3huQ&R5G&SQr*4Ej)@5{f<$2lme#Kn zZ=frCSPS;%o8e)DG; z$YXH04CQn|ttI%v;5YMD7|3R-Ip2Qv_4&cik3yAZnq-&OcHJ=7rfm@sOJJtz^oO0h zctymfI>qD<(g+q|>V|g5LymFwA40p%Y}OLw3A)$Vi@#4!{WyI3+s;#_v&yqD0(wqK zc&7?KKEr7Q_+8@l)8!vxH)%bDV?pdn^BDcinhp^cOa*)mtPq9^Vg%xPuOPa9Zcga8 zo*Man<&oAE9Gc}||zeDlinY4IvUUkGyjoCCH0;`!=fM5%7d z;f*BG1dZRm(6@M}qm#`ECieSvwW{OY&0ZiozxKW&MUW>yCtJ3RI9)g;)U<7U4+%9YXl>Y@xh2t)Lgi`5lx^@plcG<~vI6WnlyRFH5fLYIvM;Xz~6VM!v48 z9fRZ?y)|D{z)##Q(P?R>dNDzB3QGN6+sh8UcQw)^4nehgmF;`=v}T1nM+`q-5UNy{*X>(;}9fL@XZv|?IhQqNB~MLjs#vSUhJXqT~DaTe8xRJ^}s zmA~(kiQC~>(Z1fXE19TU2{FUkS^0d=WVFwo=juX})u7A(rC4|=YzEhwoWX3_NO}F9 zFJCxKbPT}coW5}3yBfl~xIf(8)_M~H~x|BZ;| zBB4_1Vl%`aH=VS+nm-*n>`_rT3I+6@Ur9mzRonsr_hwA{n|0VRoS0v`%GI3gM=Sd$ zE8J@Ce!ajjv0n__ss^#^$y+s9!eO=QMWTO8Nrx~2xi9d<6$U0yba6x#&~^Z^rhM1i zsBROnS#%U~?5~ur3()Fja+pzq@b}Sj;i=SlQCV2ujw;~~g8aPoT=Uuv-@>v8Gd#&E zLx+|3G^_Wm(MPB*4P)moEmQAwK>Rbvh)!G)&an+k$xu)$2Pj>@dUxj_5<~r&CYsYR zffklD%99(O-2s$GRb5a@;)H6Dbn#Aip7rP5>{6#haJ6bhUMa~*r+O3GzHbPnUJgmT z0zN0SZhJbI`)Kmj7(nsP*&NGlg%0Kd~g4)U=Vxa`HI5qoQ@r3S+ zPFU}+TO9B1BK{~PFj>u0*jY8m+ik;FJBr0r?=j#u9Dc@nF)nYocY>q$#97T56yaFoE2UIVewMn&Hc^*l!LeGUq>Fg&k-v76CJ1G`pei&nIg6JZc0vr2 zeC?S0<*_$P5pq!5v8HZQAXWjw!5^P^zzf;Sx*f#8{O%)&_fX^9vo)4@n%iOGc z#S?>)8)F94Z#uPTOo?TB-UU`Ze7%bP%|rKPep0s1=w1zph++D}&Y;wOyMjd>7xAPq z{CS&qc!!gb5u{b9#&He{EMA#u^jnf54-%057uGwj>k5;0@gCKAquMWXN8Jn<{e@vw z;GRKv3t_ruHY-zgve(of%B&tT@MFScV^VF(++*N@6DwK$ z@IX5qB){oz$??ZPK>81YyVmg^5!MBLG~fCvMoS_xQP1z04kx3(YvI+DUy|QCW`FR@ z%t_L&TT)`^4dSD9B{^*i2P=Qs`m_Lls&yICB}}7a^fI{jKF@qH&&Xar+^PfH$+Zsv zG7RalIrbvCY`roO-GFxGi!X-@VO=ev-t?$$XmY_3m>%)UXW9$+jnY#q zmtD%q$r+Aq)wiw6t-jAsZ!t!is@-r~9rqB5)%VO_5LF_`5hsSRasE3$fKyORRyZL< z5B#94qEnh`$Dh7*?^ z8p5l~&SApz=7b_T5`w@Y?($>Rzzd81!fpd9u(Zl@yg>a3Mk&aYi`^vBm+4?VkD_WG zCqS&z)AaK;ezArMJ<{3aCUl0z7M!nIOYKAX@Ba9w3Ore89Vzt4!l~>7qqAV92n15e zCWuznUow_3%&i*WGe?_3(1cAZ!k`Z+Y;p$thnGXl<^6WTqf^SBfNaYaVIIp{P~WIm zrycHqR>X;)RKS&^F<)baZud`UjBD<5Rs3^M(fyc0Gl z55A-Gj|+Qh?*{Qtt;$3F`1uql6v5LK+G%PTszR;z$p!si5lDX`*!4F?)529_fzf+D zPe+^Yy(xg#q1(2ke8aWt+SGx|;PS}NM0PY=_@L7?LRGmm{0=O0^OXmKKV0?(*r@1{ z?@fQCU5B2(?03I#$&Cx&+$b{#*-yzy)iPk)VuCeT9<&6hz9TOCrl5pxXa9045OG4? zdB5S_l$}yyyYaA>dg;noK(et9dJo+x*epnj_H{u4mTK$Egmm&?FX6T-qsPaPjn9s8b7dv_6|>M}eZTkBC8|F~|L1etS7 z)1m0omio_VqPKhyyl320aT3wr?*cn88mA!}TG0J8-!zOeIN8wC+kj3rlCnsO|8xaCB3@CyUrg)d|$1cty@YJxA@>9_OQTxdWA&@hE7fiIrb z#2+FvApAe4+unWK|C%LAz}Y{5@-xC^Sskh_=nVp#XOwnp^EZGkq#d^%%O~@k+B#JU z!GWWlaMSc9MwsS5!X?%mHE*6t7T`g@D#~h5mUJryR^z*zB`n4ba;u^icV;5kp$KOk zc(U!@$NAFT`kAa|ZtA0EN zEgO=+1AocX{M_I;Sz*cQ$7x6pcQl!og=LdbUK5l!0{@V3MdPp*a$nUklllp48PFKI z*NLzHa=qyW`gSl2;Nn2;q{XZ%^wpg}GH+57$)AO+6j}3^pingy5}epF`2$)ZlRF;I zf@H4MzUr?+vn|X73d}+c7>6}y!6nww$i|%raFb&w1AXA<%ZqPIu4w(thN>?R2GQcx zPdQ1N}TnP#+zmqNQ8L2trWCagVk=}$xhE=z-M%`GGlN|=rl zSof;dD)gkr)?LEJT`M1{G9s1>t{EGQwYD>b7oJP^dCBicRy;BtjUTtP5{5i=gRa^x zbGJ-z+|2Ho2zvtiGdR2vPef%FyoV>(v9Wa{k|F?iLk7)|Ndh~}>xz*ctJp6TUTA^u zi;a11^~@3$s0IoLpQO%!xrpziU&KB^hbs8DEEC^5$db<5g8lJvUlPoy@@F=91d!Li z@VV z{9e%V1d{t(XbaI7g3*OPOjU*x>U%*^5qij?x%-$=fX4yVXJ>Z;SPuS`0RbX{KO%*`nE1#VDt&|X7+aQ4R6)M2_`B_Gl+N*z6^H+5vO}A_|Tb6pv2=n2PY` z7cj&2A=_-3s#ea?P2k8uW&G5Z#W*+y8mCdOSYtjf9CK$NPg{f>DG?|iopF8vZTV&+4UDc)Xc4X;Qg4l)9hB(U#3HNFvvQj_4i&am0?V?KSsf$sK_tZ8U-_Qm`6*Djdi|YfHou^n&VW z1t4={V1?r3G((JHJ&yk4?CqBV`_Vc`MmZ@H%d5oFWw06kp{E&{8FWrEJ^rGz_O&H# zO@l1(-kcJ2GiQlhOCfJckmN3&(g!(2EU=6Na^pA`MrOy|a{Cu7@E_6Y2RdmI!y4If z42)LQo!_8hZwnMFHOVR;qCm=t;0uNF^Sy<5;cMyN9JV3Ps)v=;(XQg+feOL+g3uqP zDQJT6o0?!Zye>uJ#h9Fg4Vv&OPWT>M_g-=)K4QC?`1hKlH#dab8Lz5>=?w+wx`Kcy z%yTSaH1s^EvzQP+xr$Sa`1wP$pWhjvRo%Rm;v|>#=i5M_{yTxN)g_=ks>xYE01JpA z6s{WJE_ESL-YanRzTn6i^s63VfCp~{hwIqQ{hDZ|CJfypd6^Ng!~=PBY$3vr!@0}7 z7pQg_2P~|nrBy#c*DW-|b!&xZ{Aw81ZvZ)%SI!38!l2`{b@kXQs7m0aU7)E7y}3(3 zX47BQ6>;8H-obIfe-XiVbi-c~HxdY(1RBK%I-=@R`oTt$Q!7l!ExNz$CtEz;zD95m zG_%h$ECUN;H(xcU9S?^NlZEEBjDDIsO2|RzGL$3wP^lxOqanRdThKu8(V|w|i=*@cK)Ng7MmkqxYs1?wY2|e0FkGjkU%J*mjnn%AoP-ukh<1c?BD&qbH}*%kMG4d4K!R9Ntf#FRnWDzrnB}R@Ihe;|k_&zX~~YUdbmn z-s$O2|1Da0KnS;{=!3ki(=cg-9j11T{FwIJCz~s&MF|UcLSsfGRy~!`a|q9!Hz07pR!>(xk3ri%NDu0N1pjP|P5x%yg^G``bS{zF^= zZ?)M+2Sr|3NVVjxF8s8`eX8>rMBnkENR{{nffe9m1&Usq@qsM4%|y|-bV!*x3!Mt? zl|HVL(A#w{2i-@3#dRmU3m7R0L-}e_zt~0m$CK!a7Rrno@C!|2r}Hoy7!KHuK?iwf zVUFGNbiIAcX9Hz0|Fi1XBBw-+Cghw&!vJ@`XOaQ*XMInZMUkb(Be{md(vS6IFRxT& z)kI2Fx}3lF>{=W+h1qz%gGQ0rd+*%i1-^#J6Mj86v!n>l&4(}gV7X6q+glJ$#~o43 zp@D5VoCSL@#wW-7>q33EaKxW4uIOoFW#2S}agpKcB8rn*ZPSXw`*UZ5oSLRzOMlR8 zTDUQAW5w+R%KrC_g(&j(VvLuM#>`X~l$6TNSEC{!@|FdbuZztFI-t0CgFx=<-h0Xb zGmc@ShZ97~W*Yv$5kJYjv~NQ&8?M0qEUV50Z5>fV4MaG%H)&AunaSSn> zRrS%|Q7pA-VGZZ5GcKm1H|V1OZJEnxqVSpqQf-~;o4loAkOGxYIXX6GJ1JxW*pJ-2 zvicY|(zL(C7&Brpko1KjI;Xsa1WW7(aV73$Px{BJ>MgOs-IN>^_hY~;5}4hDEahWWok@WaF8LN0geaE*ur;u{eIIe{3(-JjaT^6 z&HUR!{@$~Xx|Oy8(=;BY8!;?5eX8d>Zudeg&R}a%hQK%HoAJB37w+jAS4-*UUSIM- z8`FqqD^z;im-uy->)b6YQ}Q*;LAki(oOXJ&Z@S&AUcqM^!A&7qBW=SrtKAw*Ft2oi%a@ZA zZg{$rWioPlkmm%>Ffup7vN3-lQr#?UeW&V~z13@4HU;u`WweA39QGfda_NmUIe$X) z=^OKssE;yN);}qGE(*y7_`Za>CPkQn)ZW1oAT?i>Ya8gYUy^Jiq^h%65EWb7QRpr$ z6(J|fBmNS?#IW9^6j^ZQ`w9e|cfx&zC(aHiUBicT*O*vTs-`G;srWdKr=r*QqxEyx zIh0%ra2EZxynZ=pAt^>BL+%&yW8EvE5?CK)ponByB!gM~x;E<1M(`RI+C4}TrO1ug z0Q4u-<)pJ-ir{+M%H(YXP`}WL7Dx|7K5u>=La?UQsfMdQ0aJ3tr^--e5io<^qgAZr z6I*b^Sa?XGtjt%Ik7ZQzFWn-ebc4n^A^U`O@EvMmei0Uk8zgN_lF=Rw%y|)L6PC@5 zuV&>?)}8e>PGnVV%(9Zx6v^p>imO`M`jD^l)`^~i)6}1R=e8NXMgkrAKHR!G9=M%M z1E#pF;0x>?F$!?Oo=h%?<$l8616zCKnLIZ%%T2Z=oz?x$e-J436!*^36rlhZcP@oS)-#2ia2Fpyp+gQ-!ZSJziZmKwZ0AUYi2@bPQmqy>{r zIew6@N!%H)*jMcAtK!C&ZROy}kDW-98b6F#3P;tvNv31jFW*Mp2+f_^Hyf&jUfEM3^=ud*i8hFF16KZp_QuWh0JF0LTypT% zQFJ^;OB=OdUROhujrvdop(-U9*>M9PtX^-4eB$yXxwap!PYj-L$)t=lwQ*rh7(%>r(dy4gt@k zPkcS~1_OHk0v%WKq!9KUv{11U{S|l1C6S%P06q;)UN@GW91XDJIRK?@l=F@QVu$;y zhkmPC;kFP}0X#A6QA4Aw@65NBIL-0%j;L;H(aJK$niYmi-LzU!{9~a7Rx9*Z0!tt= zL-xU;8s;)R$mydJ-rtcQ;Uyc-KM79GqPf2$K6qf8YGpk=oFg{1;=zBeN&VOIYy^gYJ z2FEx&NN33gO&6FngQH!=8Un5nQ%{R7u-t!J*=s!mvHvggS>oyjzy)vxyxMH% zD87?}+QYpWm=kQ3r>U*p#dTJWj&%GJfRhjtWaM{){hWww@Y3uV#jkLQ;T$prU`U8ye!G!9ZN}w+yUd|O&5P7b)u*9V2lqEcD7}Dof_9)@j<&cKaLls`tLLp4p zjnHcCGkd9V&LaK?4j#C^M{aS?4PTdb(WC9fijIzp!f>{*oL|5`|CD@be(x#w$nhQ5 z%HuVr3M|ELgtBKyJqY@qdz&?G(%np-7pL$lbZ%`^?-N7`+I8@h=7T8VxXJ)dub1=e z84vq3J*JYZl*l&~PLz*(RF#3IEN=?boFIp%&3xBwzNqgHqAtXz*I@n*BLoag`vgt; zkJ;ja8m2Oc_b81|mZrINj&mf3E%29{MN}>iaXl(tfM4ioG&nyIK*1M@ScW~&S=;Oj z*4|M8L0@fu@zBbM++>81zs7p~NB!WblIR4NU`@N70gMxQ%8Zd?nMIQUZR8 zS{<82GvQ^~m_kTj$Elxk@Y@&Hs#%9q6*{&oc6tHd;b6tANAsMALU{aKg#~M2qXFCi zN82c~?B9Uz7_~$W+B+BhEm2iD$m%ciV5NwsiVUAot)smXOKD6ap}3khoUF={&yTzM z2?3$q2c=B}ZZ!=|8;>mG75B0;wXhzoD|<$y;=w7(>z{hRpLXG^IjVy_kUQew*KLQ# z#E>m*x8+4f{rJ;*irdmq>Qr+m=M2?^}cII+o zSrb?MvYEJvP5cyK%WrI%(_lmRT;d#DK54DwuMN0h-b68cm{ZG2unf{Yf$5I!v~*wU zVdV0@E(8?nlyk@Vdnf9-ltYLK62*V##ZzZbUpm!s`#_SrmER5uT~*k(7Gwar_b7^ zft6q4lU)pL-NXx0Jf_3@hUbdc{N1uyCk4X{k@d$WUXg+M(Ysx#Z;H@q6)^|Q zK-NyF%DK_J@*BQk%7OwcBIsA~*8r+%Bge!^mRjQuZ?88c-2NbHCL$5>_1W@^iBLs^ zIL;#c<-absefv{ppCn;V(!JNljc3KB2It>-i+9?8zM(SPUR|jv zZQ2ch@+EG~BsdR+$zd6OFPt0ati5%)w-sg(Gn5UYv_`O>3;Jlbh`mtJ5gVfE9WMI> z5E^xH7$Qz|==I9sbjhqCw~9T7F&$^iY>%RiHPUp(WDEj#K;kws3X_m>CZGjH8?E(?V# zm$>C*M>@)#ZpqyzM_<jX zC)~`wpJ~**nQ(omFCEx;z-zn@$eb3Yw^a!FH;SIN2wD;rQ;FQEZKnNlcSPZyY=Zp# z@3t_kQkFA?F?<_hzbjY=*ac49{09;7`P}B+3*-`US+_eEshw4v3ltL}cI+ zGw~`3PcJlT|Km!gbJC&E7kOm2O-!J^#S$@2b5d*jo;cv=-B5w`FTHCAk_7Es3=N|p zN$022D02B6#%TnISpUY)Ve##Dp}qJU)A@ye6sY7>nq`CmOC@(BUE9RMT3@TPZ)!#v zOZBzZFUl)zf0%)P5e=Tw82mZ$m2l4eLYn;=Mq}^-4A3_%YkTw$enM2&IHqe{5q{O2 zpMif}GDg|D6#K`~rH(Z@C#5-O_G9v0!E}m_)1#9c((rT6fTquX#W?+`< zb;4H6Aga$(x-w>V7`E5=NQaRN1s)%EKPdi2^!cZ(;_Al~R=5%(4#ls)s*Z0~8?_Q+R4;-cMlWI4@el70> z+Ogklv$$7nCK5pcgHwCgBcN`vsG)|}!S*3x zSt(#J(Q@LwDpSc)(!Kq5t#|zR$I`EXrM6>i%o;Pi1;ZnB@Z?S6gLs$}ZANzU8-3QXVvM@sb%koVW(DS^xislnGBR!(= z8HQUOGLm;kYl4JdEmQ-X2GzYY@b?5Cs&<~M{ZIih7xBW9{^D(I?=6YuS`W-8w2SGG zi0f>3;$=&)x0w845uUqGl54f1g=0pSx&{#jBo?VB3EX0X_ZhZMwq4K^_%>{%D)O#V z1euw3Ez4EH4qr^J z98AP=Zd)4oOhN98zE>Lvv|u*ydcl=NRx9UUFwh8QRQ>ikO=n}6s!MC~NVMG=_ry%? z)U(sEQ2AYQglKLAY2aw)4C)z~&6zPm(T@~>*Q=rovO))>89Q?VW-+xZ%;GL=U z3U}sgQ1bLo7dEu~iCXRKPRIveNKDQfol!ibzM;8fIZV+*Q#mni1UDlaZ43JV$KHiRNSpNiH>g}cRemzOo*{97JOiVYUeU1_h;+6u5P-+POdp|;JhygPPM}Hqf63Co%lX5igZ!rmA+U`ToHAj8Y z^>>czNn&EVw6y|vtX|srqI1V1sMx#{OzVVIq)0^J;?6Ako|`MjJ+AE0f4uIoe#=Rx zGR18Ersf;T(Wx_4IcRdUCo^HK5WP5R6yK?%vG*@(b%aA>`YQpK6XTvT1`H~)66g1ikNUjX~)w&^f zAxLXXRiKvU0(7hW6_N1|(ZCHXMF=FFYkqyn9cB)UnuM#&p^3l{pBV`bTSYpOph*Hr_y6U4BY^J$WkaJP629E*;b(1m zW4bo*JX4EbfQqwx0BuKD($*wB-#VkAjHB>cz$=TlIrtGv7RsAvyhpf?)}go>TY5V~+CRo1H%sJn*3IO>oIc>Ovo1Kg z(J$A)t}J60ISJ(DZRCzerum;g*#5mj=qYC3USSb&@!b1Uu2Xs5=U*7-T$R+3sLd0< znwM;DB~o7)A6Q{xN1?WV@>s7_fy=6JxKT)f2NI;NZ!IFV1*a-u8xaMabvOvkC+>U9Fb@&rWGhNs*ZMgHm!?#4el zlUvw`IAU9mQt$O3kJtX*yrH8cFNBl~(9s08lmQ8+plN@+?DNeQ8(YVKA-!X{F6cE# zq%wMmoeI|K4M@*_M=hg)b7tA(mY}guz-?#g)s?(NU z%Aava@{r++*hFQ?#e?3Zg70Dy8r6}=B%XkpEA#^2-0abzPRo9Ak-BU&Gy>Nnob)#a zrf1;SYiQa#y`BrLz$)7lKS$|>SD2SK10D4#Ch;fBSh!r|3vYPik40EWb@Uyck)%!t zcW~s7OJfEm_vP$(Uy~Om^)@n=o%S433==&#b?xcY6){PIu+pyG_1}%`=7rUL59_2P zR>jMOw=-4YQXLK28cfU2CBRSxOqYY7gl;&b#kkWey$F9nvU5UnubkJYqDy}CnSi9x z>K_eaar;AA^@Q?(hPJlXm2-=avBS2XHgG>sh#6v2GgRU01EdkgDjgcSjqQ> zfQa2Ku}8G@?KWuIoy_UhVsVsTcr&Q?oSr>YUVCBWwFKoGQJV@#RdB|t!I*lMUoz@k z_xtk5Cj~5!gb5d$KOuH?!z%rzecO#5Q^Cc{|AZys2j>~@Q1%&2O(HxPc$j#<$rDY6wg}d_4Pg{u5KM2~OiT#d zCJ}{!7tkud#$LPOpi*!%A(i34GO@Ht)1GI=t9wXf_&@SbLRo@-;03^rcz0y3HT!r5 zaqxztou6xtRZa8Y4gT1DB_~O=Bswg8(Wy3cBsM_@KdM;ggpa+r)tZAQRZP+zW{?R5 zps8T38jSa1t!$XUKUygiB{Z&p0|r~*&u`6RTRA=ODG_~D@^3j8=?RWR_|3V4Szd+Z zXfID1CG;;C54VX`=3VJ|CBtGyDZ3O~DJN*0Ke{zrM274J^e$m7I)o^T|%n~oGVGSy?E?k!vW&`6}!|H%bX^5 zoyO>Vb|9D~(`;G=r~d=`W}uaio&-vNJ>1^*noS=Gx)~;DCj!IP9!}?X2r<4IFGteW z8rSMWLqOgnMJ&!SZ4FHlI*zFs#?;N(p^arL)j5EBq+K&Q3t@|W-7N_{BWzhFjBHsR zXxnyY6qndD64Iut(hWcZ?gq{wrg3T!c5$Jd1Tu9fxwCAG%@#QDG(EI0#;MwgTvMRB zMD6csLxe2XA)(NxIPX;${Ca;HV?f8NFcubc5@t14WZ@u)XtO3FZsNt#X`w z4C+%NEu>9*Jz=w%Z)QFLiPz%Ip?q*3S?NJyD*C+oGzFOQ8GAIFw1yD&ed-BL3_M6! zY*qN{?E$?((OvZ3h)0IUADc#cA5>c}wv^2cSYDv)_y}7u#L^cH?YU7!a;^gNqH;0c z(b|djQ8cRGrjt-oaKo2+_xKx0PI^3=&`!S)aPH9r?KhT_H|x!b1@hPahHtm`{Q86( zJ+=@4@5UJD$Zb%jmq-2gZm9x-6Q3v6wu6lWD|M7f{C7Q(IguoYyy+X!BJ*39uAXCU z{F#r#pGO*KSasPOsdZ5-h;1P`NQ}Ox4*)pXwu^dt95OC3`o=8@wxc!U`R7KRi9s|?sV2B zt%LI-a}7Pm&RE0I1ta{Q5UV3WRR2%5ryAbT*(9zm#f%;zc4EU#Ng=X^-*Ff{VObKD z^o7`ZeXTK+!~}>f_rtyOufMeX6iSzoaZXr$r5ZH7d7rF!;Q>+`gQh~p6R8JK2wfR1 zjPI7)vR!!w<*8*IrDiG0|SQfBbVWYViB~TEt4><(_EooA14M9KU%} z!!Xb2rNz@17FY0j@AQR^V6Cnaca&gO_|BG~O!d21Wy1V@j5?4{7UL&>LNBsSEWkZA zBn9eVQLL!ooS+4-uuuBKCm-_Evqede?k*DcY<+qtu%*DWvWYyDUv<&v;v7qf!coc^ z?avM76HR4>`N4h?ASp5O`gYi#JL;k`R6qUYAPf%+E>vEkw|o4UOtRsmB|a;c)%Jal zSl8dGC$3y1|LLhb01u}p0_*1q5&>NoXr$Xt$ho1kmGrt&BV_-_ENY^89fBVtB6r^d zJ={#AE!KF=FFJ=R*ZEeLKF?se4J37ee8*ni+A480d>|S4|fQKO^2a9gNddXGqA_SOgDP8t7dp z%bZ}rHHshj2)afJHJ3WtjskONmxKQXNVZv%hLf%Bt;n>5zfHEuKe78BUPDVi`M)f1 zynw@d$xxlA27HVUzBEIH zxR#q6#cbsbr(xZ+70dOt^W_!egX+*uei;2E?16XbjOnj6okuUC{eH45+T5?*9X^3s zVp>ul{!{0g8WWbYrfe3DHj_jxkscE@GrQ%6T)S+j$rnYsZ$aU3l7wtOC~FlS_;ui>vfC-PrTnN z1Zy2D%KJlB&RrK`vct2?!Fd%P7VV45OZR_zPzx(sYJD1^m1FQ&fA*-KcHaulf6*e$ zeR%q^{2{~Yok*RX={n!zcYKJ0Ecqmj-htPw!J2rzz+SZ%#n|#~J25zjO1fnOQrneE z9LlT|GG>Zc-)sLc5!0oP8U!wnZbIUx-XT4Hxm5;X!=h=3QTy7m;X{sue=!3N$&zao z%74pio;ZmlISs3+y(_zptzx5p%@B>^oF}F6O#xv>(i2OEZlD-dP2i|Y`MP0?s}x77 z?+sRv4{ML>FSrDhAh?#x)AUqa?Q9<%i=tQkL{6Nl?bPv=&*aW+fUOvCvLsV=ZKX1P z`7ax_-ez%4trf941{ykr!5l)=G2dt#BbL{gJlGMD6i6kQy>uYbYX3Azl7!WA}! zt9KyRJl6P_$UiZZR?IC=Q~pF4@O(lI**08?utOh{zNC!*OAmjLS&Fkm!?@heEdvgK zpa0yk#BI#)DVzyV=tn|zDF@8pxY zSL-EDb&gh+%4@&#I@eX$iiv`w+19@w7AenenL6`nLmzIp|_hA#e<8m=9TxQFn`l_BSmHAn@iS+`H+qx zM^ai^7+U^Kq%)5P#b<}2Vc(;XLVrb=Na^f361i9JrSRppmfPzo)=mc6-=qJO(Sc@L zgT}P`fpF2O~`BN)OESL#5k{Y;ctyiLa>=TPw%LttzM8KvgR1Q&ZWhTya zyQ(ekVOv(aDS;gC8h@ZVvsbbs&NaWsD+wD;D^K8O~>yD0_?4Y;Ilv z4I}P6E69Z~M2fG&G0f7aVcQ)}ykf9h+gU9)P0+iEIc#9TxdiX;|4=;}Zs2P^W)$^T zDnkptQBkuD6!}Y?^IMd>!&_5UUEK?-`>1-d>Tws|? z254Ena3r41bGsrE?3HM4M7bbNx`;m-=31gp7`>ck4wCv24Gx46gUc-j4JW-ajOx03 zO^4(f`YTG5AE%_+eh{a-A?3Gid3WU2`JAP_2lwt33wS3j)1I;EkRtl8&Todj$E~Fo zA7jS<{8}sOVl9y?p+maI9r+M}C4Fo@5T5!PxoiV+Pu9gP8XDzZjaL;wF^F*;SC>t! zo(LYwlj>Q3^my#ZpA+Wh(*l}pb&EN*vcq0vb*!(4P|Qnp?xnSdS+v-iqhSHZ&mssV zIJ0(r@S9oJl*+Rb=Go^T3Nzka zAKDL;)cno>V;{6=J?r}B5TA7q>+5#x-l3G@kZtz}732cssCm6r?2&xi8Emy=y?Ve% z>7}|gM8#)dVF_Kh3m-%ot=d9<+CER32ssZPU%UBX(G?;k9X7;gxtkt)j>X|9BBDmGBa z#AAWd(Cn#NueW)ovub=FrwV%rLj6#vP|Y0Y+tR0>oPS{wPal&!1deoH7r#ASXS^+Qh1aZI-o+q^T2)dyb0d?vZ4)=eo^q8z3_mCQ&$n{g zdXs2uyM7bq*`=W5N833VJ{JRP3$(*)XKX`K1HPJ7Ci2uJrlwnFDIxb^Z%%WLB^Y%fsVP3p33}O`>hWv+55jN zek$Px?{ayPHFyh4Vs*Q;mlPP#cA2KCbPLcfO$|?Z1qK1Z?799lJ+b8n;yRTIi}FZw zDZ2SY)drG?I7j}Vx-gphIu}*4QY+}#Qr#u7OersPJF-)euWou!c-AZRT7;Y5D%QMQx1m?7`{=_0{_4!Ik; z7VWZ1&^U9dj-+?tS~1;HPhN0A+sJW) z$?4V>D5WFV)7d*hx7xoX;PlYO+7ZRR_6!A6CBYaa~!2>nAlY<2HM`FsL}gNv&F}&)T@Q zkdS!eo?V2KyRP2YBfIOh9zj?vGVXH8qV)Z055t1^uOj8uyKkTZN@paHTt!MZLY@20 zL12WJ(+FhvNWYQKFA=Mci38frpjriD2?{?>I{Bq{)FbfMU}X---$&^D^!)3;Bt z*_CsDFPQ7pUvzn|gk*@SZnN;=j7J`SX1ncYwAMdd)$=VkQ%rvy>ksjTrnh&_?Z>tw zIeg@yN|nVIo3~1{_vCXNq}2OUv7FcGOhqXCh1oX3DuKcOgJ0PiEk%5N7E8^-)^dH6 zcJL_GIDxIWuY!(((fM~y@%RBaIr-6J zIf!o(mFs519W_D;l^R;MH_7hE>VmSf1uC4|-UE~|M1Y`^vAm1ZkE0K%RL^pvNNCan zU1s0T$LP;OaoI6fCu#?_;}u}pV;kB)QYP#DEP{6J>o{)cJ+>qNoUgFRqQfQ0 ztD@)E_x;hH+~e?K4wHKFbMj^}dh-){#fJvB3;TrI^m#D|GpMNFgysAR^dp*?mfp9I zl1z(gcYoy+|KWt$H*u%4-&2XBuIw(4dfXl`cDr_EsLd4Ktnmx2wCjkjmOQ^zgtH@h`pBvFH*<*BOY%&Lxbx3OcyS%;$`A*-XtP)g@C$Bjb$= z+fe3HQ6?0rh?jj_uu2owd4_**4 zM=i#i<0&mnVn!sSWY273#i%xaX{^+*?iR9T_qoklX#@k`fW(r>17S(rlyn-rRY=YZ zOzBJZ!PV@eF!r|xU9J-)tj-~W{Y%iOB>P&hcE2nt+18$51NQftlfb>%BYS?%UF`(c z)*_bkcYf=z?2(YV9vDm&mhgSqAuNmRiWx6EuTvFWUdogG0w7!^yU z=G!M%%72 z$No&O0tW$E#B-1#!TvlkIv}Dk{p_-0)CbGO+D0y3Rqt?E5Fy~<_FW0$7G!52QCD-S=Kw$Eeo z+{(=e}h;jyC)GH7(Vnz)e5AjUPu1tmKk@&)`v} zKfWEN?)EvW?7zLudlZe(DS8ro!KTgmNei~H!V?m#rs(`}T32E5 zZOLpLKj^yGfBar6PRs;qUGr|7+Qhnt`#EX;1#szf{_@+8&gE&E^cl69>5=}sHc0!E z7eHN^BaC~K_b;{i|I_F?k&i9-v(oupeEq%2_5}RkYoxie9m*@Qi@)~tPM1e;9HXC)o39Oufcxu(v*wcJv}&WhSNU;pQX_kdmC|9eNf z!2f4QB~LMn&Ps|qEo=ML+d7#HM#8ROHcCPV;?D%Q<&@1>O8U7}=ll42E&oJBz1J$8 zwX|+PSbF~u)0n_Oii3`VA0`$}B(de2iXC+mgR>9P8-i``E*Q>KDzB%};Audj=2-3u zKgN!UB;OTy)YVP^1A8E+!mAe%mZZ0o^A^FAi;$5aZ`B2@=IxA#_A$I)Y4n_)+-X#@ z=gTJ(J6WLvmA%!`2EM)B)6X(eF1=WxB0~uuof|*;S@XEpZ1p)cWu)ItMC3Xef)&ew z(*^os1@7X92e8#diJ>e+Nqgl%U$oKd(M7~pkBpRn!rcdE5~dHVHRi7P&V zbNhK?!}iy=y~NqK4;-|driLnK@L|P`j*imS3BGN}Hi~c8c@-I`2+!DtbMxRtd3oF? z6YXtxQTx#`iFk>inq{^ca?#s%#CWJ68*&-zWG=++$M64oFOdIMHK4A=Csr0oA45{0pdpav{Q7^l z`}E6l=sHSx=o-$a^RTq>$AnG!|N$RZiHcF-iLFp-AqTX?;b~KxDpLt zcCQ&+YT~qYc90RX)+x11m?J z_(W$-HW7B>KpgWJf$j0w1xS5bp`rkI{^Cld*xV)N{Na!)4q2=&f(a>0#s&RDYf(B7*^X=x)db3|YPN>r*z3sE3~8_<87cGu(0!41UHo>$05& zgJ%pAZ*us3$Hy9+{=Q{^rZP+n(4Lcg>est?v3;k|P%!_UWdO>5HCa{MxAR$kc&Zyb zr`4(6-`8cr`8jBhLY<)bHD2@+G=d49O`qegPk$0sEmtO&o#{<|cFs#N>py(NOBQ!~xK+{hc4&>e zUur$;J{a1zRaEDA{-^(_^+0=xs4(|PFm`{MR5_8k%TW^FA6U8VTj~uj5ktP$HKm`ouo3)7g@u z;~LQS9Ear56Q>z9&f^^a98a$tFNWT#p4!^>ZN_m7LslCPq}l zYzP;y{81j$05m=XWR3~@USHoa{zS-1^q}y*MJn^=QIY)X1ba=*7sn3fTPZx~ynjtr z+F}0SQ&aYxbajJidmCf0w=mIsWKXr^q|2P8uDM6zC|?oFAQ zuC?(!2xf#kzuNdLDZYK@j79_)oHu#WRpv^4;(4uBVdajbdo(T@7ki|w<&8=8yAm$i`2xl zZCK{+13k~StG|4WtJAXHm3WBopr_- z171c~tg^YIgm~}u^IE8ABi5@=BhaM7;G1-f-+OTqV0hd|h78|&hIcw& zyl)rvdf={O_5MP_5rfBLF0=dJ8(rvq7-e`({jYB{VHI_H{(==a?~cX-iL_sJvF@-C z()V(&)^tGh&-ULh(6PDN2GHI(y+HYS4YAHlIN6BJX7)ZVQamn1#);J7*E0tW# zzgv!g{B+dXA6_%g3+VcAtW?WGoKwk9|3=Pp_WJa~Xoa(5E<q@rnS#O(r@0{0E#FiR6MB6 zhGGD;w;zM!m*`}zk{CAF~mH7MBA)cEmlU(pT$r%(i}2+ z*#FtGKi;2wd*xYL9@pe3lJF*hK)RZK;Xrjuc*g*4rN(hc4k%8hmbmHW*&ADgQs;*a zzF9&b3zU}0gGffjx2t(Wp?uD$#1r7lV)^K`)la{Of<|B%y1OExT(K zY!o2^jUwfFx3(Ux*dj;p(qx(WA-3`8M zRTi0E+gQQZKKM^g?UaW2fw!C2gB10(_sNMv_rsUF{Z#_=j_>Yvxp^Y!Sm{)LfgV#T zwpjYbX;lHkSe2UZObO)qz3K0h<)nW=Z!&%0`6uwZiGbAz&dX3Fm~S3@9)aghg;m33KAGU&wu zvqs|LD+&-*nmRQKG~=3{TZBWWe)-$|E3%TlkA)+o91ckB`S=88=fBrK3I<=*_-rM# zkM1y^T#&5m3iNY8(OhpffkMjLEN?2e`fU5=*}?I ze%yH^nE&RJN~N$A6_Q_d^h&ao9xVl+vQ+eTMBqB{vZkP*K;P>}K`GilkdEXfD9?I; zh0eNX{!1Ir|Lv4VWp}bh$3kh@J3E>}S&Zo+0lKV$f*^rgGA}en$%<#7oF3wD-wM7C za3V=6n`Tr}tDLLX6BxH0tq;YK=Ar+`Wyh-Y(Gfi#!P?*jOi2It%g3Mdc8q%{=!$0< z{;(F>6%Yhv)C`Rq?!2Mx|3v-%;pH!z1zr7!?>BJN`FYAWx8_YBa?K4VfnR1V*A~Y@ zQz_v~BMvD3eIxBf1wl)Z>Pga@|1X=)@<7$rDu5uZP9&>tfzzQD_v;uUs~l$``_3i- zBoqRkg={4s`UJnglGKe}K?DwwdvI@K`D8c$nyO^ zK|*&4UbmSDE4t?Y@&JkM+@eenvAi`Ve`n}cuBM@J@MdCx#s8q}&Euio-}mt>B~g@Q zH!ZT9iYD2aX*50_jTXbimc*fczLwxJ&oJzp9L_UU8DxTdj#mJ zm3A6sF8l71@{8w{jWLf zv%jpioelJuezJUbu#IqU`WAr=MX~&iqODg6^FzV>=R;jkVk&>((1HV-wwh`%)31u- z72ebN*C}u4&{%zq$(P?5m)rB{_ercjgjswu~MqBiF4FMRMd z3*OQsH#YdEQCzaxQ{HE5H5~H^I`k(&qWP~+G`;FruE}L#Y!s;+vA!=B8{IM7Ffmk@ zr4ssP_bKUv*GQ*s%3OX8KYr##_-Y}+GtO~r#%0=xe1p9%tFS_*?;rBz7rP5SqVN7B zaG#*jS`LCWLGOFJ5eRb-J;$=z@oy8sTJjdodOJg+x60Ulj9*Wa>99a=0Vzx5yr9X< znuz@x7Q`*8qeld-yMjV-2H){jz+vXqmA9yle;?oVMd#~EmX;jEzReR#Kzg4RNlmnSl*lmt zsgdptiJPBCHe#yoo{lmvuq$pX=10XOll8 z*ZL;CVpWxCGJlQCaAOxP_q$}p?bO{<&qNI6FZ}|&%;XNGK0yy zTDGRf|G9bnmpo&n+W>aM$~IHV#C?3XwXyc^mnJlhq_Q(k{!Yn?#e61Txt@-Da9C^0 z6Q+!hk$}~s$;RfP{Y@MNbxj*`{}xQmCp5TpfkGoi;I_ct1nkcZ3GQQ^%CJjf!`e;M z6-;Y^k+vvDR7i{}R0OPFI$jJ6&sc}YY7RcL+O|a|Ai((BS@&(b?*SH?_y^uQPZ(q= z=F?*#tFs{GyT2&qp^tqE`Nf5Gvmmo}K455(=fZ)m*n-x72z<@ao6V5_g}~0c$qQT& z&N>cyV^M(QpVGpaG~`ZJ3$Uu?7lH(YAHk-AA|})n9YyKh5W78o4OR-T;PjtcE#7@OqTthBbR~%pjQeU_B=JkyyN$(MS-0q{!baiX@;vj zzv%7A;64v_;fWusernJhh620d*hK-mA(`LZtsC)$aB^-i$Jasd?JS^)`tiLH5^*`t z>?@$GXaGzZ>KE^rBK$=qHR~1R@RFooT1wl;a?b9;epDaKjsyzdOIq)=&t6hXAN;cT zgAl!4Y5qguE^goqVcS*q$rb1<^j^774Zr7-`}{{<9`0W!(fOSsYZR+r^8?7_Q*3yd zpil^Q(1tY7bSpK2@AeB1i9Qw|c|~g-a{(cILc+a+%|4?U&kX+By`?s4OSMGV_G)pl zU4QIW%~Co3;b^0xiSDmwhmF$yO3Atf{{?eccn=Kp6!=_=)B*a@G7<;FoSQn(;7}Ib*#&`dlWOIc^X_aRmo!iO#4>UcjHRsuzEmty0B&f19 z9eY$#$@>b_QBW>YGwqfbdEJbqHI9FP;p+tc47Pjp$cHm5&(QkUpg>+^jWz;U)MWBP z)@H2c+iI{_X_UuGR+}Z(G(G|~?F8)2xQXBWy&$-#WwL6^!qs(5)Y?ZhY1ed9px8wV z?okqS|3~~=^unMFi@bjZANh1_98?`%E)Q|PZ$XN}1pkc7jqtGIs6?yE4O7-bM$9y! zA~9{Yi{}bOL`~zjWaT$*t!~_-w##0}Pxgv!`ZnnOC+`h+o|!$EqX$$Scb7r$(F-r( zCG5P2iR_MGzT^a=2aP(sbrV(b|L1Yn94hK(NMty>!ay67e5i{#Ix7QbLAp$W_MZI{ zxwUq+pJ z*>K^d#?IuT#Dj+ZIK;#7cesK7KZi(EB?K_BGJT@f+1Pefa|0h`jWRVwg>R zxO3?Ir7sd~<+D=C<}=o+iQT` z=vb{{>H$JnOmJ3X$)|7s2Q4^;-)V^Y`bNuSV5jIdOqVzMol3s+AIrwF4=p@2V;`B^ zXYMq-DCk{91M#D*^KE@2$B$X1Iuh>$ zoxZTt!Ij+13;5so51dZ$xrT_~z_rPNeytF}XzZo-K&jfc#K3Lsyztp+*OU|SCpd!M zvK-qD=OW(eT%1g(G5@Z@+JaPhD*yGswm^?^SfoYjmZb8#$X;~lMKz{p`n!}5l$TEl z9HrpHr6+C$jZNel78DO*Ih`UtQo$UN$p4%$hDOr{%bnx zV}y4&zp*ZI@;y*%&QKUTetq?l*!W=SjI7z{PhI($TyM$usQ@_ooKLebBsr=;9UwYn zc;C@WfAUqg3t{?};X7J&ahVy+ZKC^+8}Ik}ej1nfAlW23rs=B2ukrU{J8PWsZ1K5+ z?%%}XJNyY-VNozbk_@|*S4c$i`MYl*h43;SfN*npzFaG@(3=ubm zy1Jo9dFXouBWr^0ARyO4Ln~>Zu0H4jtz!$&CnFEfaHA30o`T|vRQ|_Ab9Y_T0D5-C zLkn`D+$vIQid1h2q=YrzF`Su4!>#OeX<2bmmWG&!dyJU5-Y*?F>s|xbP;F_8$nd9c zY`#s0{*_>ArE*cQ?PKc?0xwH2w2{{-Qz4kv{MT{A>`(*04x!RD#TB_8Vul_w5l5L1 z^8{M#4GEH`cL-msTJg}u0V(O9c^Rbwp|+TZ#&X1sj86>Ml+89sMAc|K1B^CesfU37nyn<7@=TxRrk& z&v%Qg&5)+Jr!DqBytT%(%8)l6Vn|E_JT-ZxHrmhv8+BBnjUoBW!p>ip3;n@RSmjC> z2jn&x_FVVqo!gN3W+fp3Kt40$^=jK-&AQVGZN6Jpk2&^9dWuWv{_=9YyiMIb^lRXi zsV^=&aShU-u$Xtj?*or}2^$EXBc74^pwV=1UXMag(`sSl%D)b3m@S+QnRTuRLS_x< zge=VqsMxvj4Cpdf%!G{yye+`1jxj6NT9J*F8bzFmD~epOZkDRy59sx~HuCLevPLD?ni*!R_`% zP0PKS1hneDdHgw$61^vmS5eO-%wt3Mr~dcqARERTUNk<|RY7f6-=_G@Nqnnr*s~|# z$FdsIs^l-ad3S7{$HACiCBJVw;X&?}0IJv_fO^0O0*k+Yt{vs|pQ=hn2Uw~9>skOf zc!nlv>t#?TG>R~^Ax6@izt2B~1_r9B?F^ZW==}@8Mw-R@{H!&)H}?<{ptJKruV{ur zvh4>!-aq=@#KtyEm694~7}0Y&a_Lq}W#U^*qdQ%14>Vor)lo72W!D<~$sR;LYiqUw zER2SS{Q@bkEr|J4SUd|^!NQn7%XsY5_y=gtsgciYcAVu8=o)LF{bqk$6|VwY@{qgp z-)4*Qvr!fydhWw$1Qz$J-n@#og`8fo7$&yz;i7}d`bzh>ccXwbS|j20;`u6%WA9Fq zw!h{2MS90GQE-A&v!v&f%U9otxLtkMa`=>6bX4>o$DckUD(=ZSf6=;k`yROU>-d9j zmPND29-c_svg`QqQ@5U_TW_oK5NR^j*6#!nHs+@S?_`cFA$3P+)**x?#I=PIUs5=( z4pOtO|K}$?&SZ`W8C$>FYD!a7@u{`sxwW>`UDc!3jE1r2m@*wRv4ds3ha?6UCCn1| z@qYMnugp9@?m!XL@$CMWWBbfK<$BWgU)aNZFMmDy%~_H+CH@4xaS zF>En|T{--y;@DZ4UX7zUfVmM|r3MU%m}+HV)K1pdJLvCg{dxI#9)GO-@lqXzK49mL z+^(TI6ocrzXtT#j^Qa4oXmhT#_4Z74KnA$^TJLYRt8+KyD_Mu1fNj%5oeFA>Q3L%x zPB2*Z3wY$zy`{yZ;z|DM$DJI6_po3eSKljfv!Av^Gwa0`%ULNRV?Br_!03?#Ce*y6 zB*6@b$przQ*(XSJ6u(}Jfl9!3Q;;`jWgfrP^G?2rj@hG{Dd@4_MBI|e6O12tzQSs%}bXj~|HDQuJ z;CJ}{exCp9!0ROa7Z(j?Wt`r2H88@6cg^Z0*|FC+&>g(3`C~ct(Z;3Sao=;#FI^r` z7nN)+A9G;bv$Ia7zOWJP2m_xVx_#>2;VT%c7hx%T_!rbW^b6Fe{m%Oqyi zm_D$P=8as!GQ^T627kVA;4gn~DO{OVf`W7Rb3N!#g+*6Nsj5*U7|PDJ{k-M{&%QmJ z80y4=cR(WdrkPBc2U^PG6(!Pzvl&<;%! zScJY}mll`-Ie0uF<_JypLh*T+#@<0pQhC0+G_vpBt+<_3>cfQ%Sqd`Or3}61U(RU_ z+5D5`N%~*1HId^*d)a3Ss7t@vQc5T`z0jhNwF?eq=&7H6`GZh+!qgot-ax2m-k)bw z2%QU~`>mo=@d_DdK4m|D1u@i+*t4ZP8BQ{e@J!&BzFli~WKDdL==WF(=M{Gu!%=<4 z$w_MkM)d(jMi9efq|6}vY~v#^bq*iaclEJf08S7(mQuFY=dQlx4`&5X`oDSJ%hsSH zU6U4!JkrZL_SQkqt!YiWI9L1{6cHQKV%j)?N^F>Jg0k4ur3_kTolX zsp;KyyxtzgwR`vTf-Iga0r(p<@&eJA@gB}WqA@80iAerJ{>tq2KpVYmc#r0#*EX${ zr$n7UM`DPg=t zc@Su@cu{+za0nXkf&-JsTO3NweFdG*O3kA+^&0k zv?f~uC6`)eDUW_%X8exthFOYeOgQ1Gvb@AHAHXMR0hgQ#qU#i=#d}yE+@4jbc*yGe zb;a`wl~$)6J&C1TU$1H2?mv-yEdG&V>uwOCRUTirP$A$==)>YS7i_nmb481KN_Cw_ zM;V^Bi47O!;ubap8(HX6)0&6wW>YWsG^#G})|Qml-Yk5*K>3+&vwxg?2TBPGshzK# zt{u~qfdzYcYiqiA$!!f}WszPL|K(q-^(5<#dt|8tv9+(VH{YzEE?-*Z=e541UZk?V zEsnPa{ro}gpYynFmES?J!!jRDX3UwGI2Aklvw zOBY~h58fZgyg6TNSo}fvt=~jo$2rT-iv2pj4o2U+5o@v4k=<-qPd^VOe^?wj!cWsK zHp5SpKzFQ{c?y8wx0z)BpSMF6ILQW4PI>`UHktDl-OHA`zca_TNk;N@`#W!iXgdP9 z(iu5gJ@Q-M)$iwE;M5qcto_o5=$DIL7k)B;Sby2kChOnbrvRC@W8O+%Wv{5G<#Z0a z(39%yQB&7jw8o!|rD^e}y)Y!zhl4;P>b-MZ67sg-F>Togm7-&)>DZUCG%4KYPOHPL zZ*(9afi$l`D(m5J(<>Z>QHXlE`sV6hC1x_;1KS5hdhkrORNGqL<` z<|Cupai`HgivRgL0!d}w3P=%V)M*jzUWuO|)9uEJ!7ib&aL=bA4-H$IPj~+Q z`Q*lv`3rk`+3+Mtk^5*d__b>juoEifK9PmFvX+7s089D*CZQnCA=@AdX`W7kDLG9|jyf$&}3gcB4d6ynB<=nf(EEtZAR zhB2>@DrM^T3PyK{^8TFMXO4i~dzz|eHk50-XH1zx-XD`~Y`MTPek7y&KpT_3Jng6m z?_#lTVd~vZ5U1g-Wx9|yhbJ!~4sj>aAdxx=wY4ChR-|bPYgmC^1*0l~D8%*1Qn2sp z#_1^hUDTKusB-QOt0L(2b1euxo`Eb`tlt>uhH^@v=>=6&uV#oUe#7o-spyT=lF<2w zfc;7V-E>n`K-XcBt^pIqdM(;p-w-G8I@@Vd56bRNj=->E15kV8#^ubq1V2^26C<5b zWisUHepY@9?F1x(=x`C`^Ugt^*sn)FMr_;#+Dn|D!`25}U%;1P=9*Y6H<<$9<4^6W zTzO2D;m-J5){nI=Wu*02y;yZ(+8k%bS75L^ zw^GQ{sgSh-FvM^e8mY~+Z$a!*nNT?k(=_DS&7my5>3n*Jkk#%~!sz@ae+HyBOl*;!@WHFM~ zwM1!;8y5V~9AKk7a`e71toN%etD}}zF^{@dR@`-e{tj1LU(Fp#_CAhx0uSax$VV71dTyoHM)p zwnVt%jX}CSx>^vDxfong(<#tQ{sxWgS|!Bh3}39@%#E-UHH(>P!5 z0C$+3JeN}Jj#{)en<@K98k}(OK&E zLe%O-97k}$2a-9h3R@l5FCvxje8auQb!%mXndlvKwWZM30z@Yt_+fU*-X(03nbvB4 zCw%%Ws9Nu-J%RnR$C1MBQ>)6NVg!Zq15yl;ivZ%iUkhlMX8DK+iS&>-P* zJ?2js?`IDc1ehXQm$#3ZPw)44+*he~ZCs52tUH)OOKtCEDRmStCl6EA*VE9N%x-KX zb6B00xQQ`&7@=r=elEvFp*g1MB zJ!wv9trGE%!iEa;AqIi@2KDekU26JpMk`b@2m>u25!_RoOL}Xu?siLB#j`!le?4*O zmCYyUS~1o}FSJoASLh1sRS`-}GP)#~L-PtZ*hD`rab}3X8_K(=TXp*rPxvZ0DCS0s zYBb*#tWo$wGgIk)!Jc_jQi$eLm)AZ~*q?gj0ITlID)-nz?^{OuTB4|A@)Qm*D?|IU zd!W3YfY7{7f(5sJLcTD~W#gNDm)pU$FnWu^5;fpq&;GKP&sr$MTw$KuAOM#c5IFfz=KPrGUXVI^99G>y;DwZua*hM|-+%Vl5_RyWx zvJ1JRoM^Ny;JgKZHb$jZe*igb0z+Q~6GJHMvbE7=pY&JRox@d=GKTB`7e}8DMyU<& zE8GIt`@0~PQK_#KM&3+Zykz5c82nxHzzyOr*AtD~qNUgJbD#w|J^?!;i19X}fk{*# zf06YebIg{(p@R^P**9MM?Vef6MkeJYZZ#jVprh=#__FZAfp<3({9gpO^BqT5Ud&Lq z>FAQHCk+P=ZsGU|76>*%zY}BB^#%L7*=s$4z@e697rzZ$9PdZ-`tyW7Y&gM)9*y+7 zfVYGe9Bo#HL%HKJ_{GTe8thp_FYtq6A@y->Ptq|pMlx@h#2aQZpaMqwdkap*DnaZV zoWii61P&7V3pv$=>GkVKLI@u%Iv>_#bN(L~O<|D}cQ9+Q;Z=+0HV^&C%RCX<(`Py6 z0*YRJwY1w!-;bTlkBR8E0Pv@aRf)NvE<_$D;hBQRI-znvg zjiT>f%zjPQdUCm_2WxeQ89jD!RgcQLB@NBb!O$1ri8~d*n8NLy=kB2Tiiyhjj#~&H zlsJTlkapw^oXt8xz@yPNw9qSB4AP|)zqT)o4H>~W z)LIX)!O;YEf!py(f(>X7U>yCW#|cFTtcSUb^z~YrMV<;^j4?`0A7$n`o3lO)*z$U9 zZ3Ij_zo(~<@7?It!Z|Re~f599qNK`TYvzgGDYp5e9i2ew3J7 zew3A$7r~ z;|5jrj1}|@4fF`{-xty~ruF?6ZuVbJ_x6~>-UP7>Uwbqu?|IvX4d2VI1Q?a%s%;<^ zd_)lohJW@g?T@3c7Q;~ME$nVQJt;3Uf@)U-U3y+@qcblFmS4S5zve{xh}E35_c zcwUL~#No&@3}CTz=3)qev+&u%Iu5Oes`EZ7+#Svo*34`Ukgt|%k90A561Z;;9MqA5 z9YKDP!}$+dn4t|<6J40unS#FxS7OuVs^<#K7B0e}D;AmtZ|eKfKVDEdv7^RoZfJ$lhyYxTHWJ-XHaw&Vjt>#l;M*mAzMbXianxT%)o6$}t7 zV9yg}D6I0Ra9#Ml=?m<_hy|}a3M+|n1IZg*;*H+TES`K?S>IyqZ1xd z&B$CbPZUqh1}D|CKN7;j8^qLILkeUVCD|1%gxGZ7>bv{2>*t)827~YdV2n8S9K7an z??30EhHkl27qiOu^BUj7$fkC@hjZt7TfN;oY6o|ECU_j*NpQK<9%dEGq#;24!1px8<%c8M+GqEk2X!kL@SS2mMZm`>VS{iK`iHFJHy65d zNWnzA+cne@C498w5jSk+BCOg=>+yrXlM36YtbOdoE-1JywVL>afgEUeF$9hk3gp?B zvO7N=fvsMH1r6?n4Vk8|K>4i#av9fUy}F;tYK2DjlRq=$VRZSP$y8XqSEx?Gph1{Q z2g63RISa{^d=Esc;EY4(tfYP z&$9@HROsuMcWwuHG>fcGIMK6-xtT2EB zP|{*JVHeU*zyb-VXOC@6TS83_xR~|a%Mk2hfqbCcCa8HGZ^4fegq(kZKl^DjRBo$n zR3Q6`*w_XX!O0-mWmt-hna>%g|0I@h>BBB{Q8f+cc_Kbt+_F5IZbC37iGKIvk^S{^ zL{_N|vc=x-IB}hS!x9ytlENFhBcNIoB#^@Aj}Cr^5&Lt)OC*7|-aM_Q#4JTt67J2J zNKv$w?dUN)?Sb9t;}hWfqZUtI^8za=xY%82LgedE;sDSEDM zDPk$8hrwDoaviA*a=o`9_xxzs_gMA&QO|qo*TeT~NgNMf{Rp!V*7wMpE`ZS&0RCt2 zm$>s&eu6bWQoeHoTUaHA1L1q@`;-31ORjCUPgfYZKru2GJX+PX&1?}Zv7JB4TMWSm zJED#i?%4z#G;Ao|EA2nk^*f!Lseg7#2jI(toeszwCLbfM7lU{oaru>xkpS_wFhz=xEIk`X$=WmMm zF!sj@60w5YDC5OzrUD^DpNN1qkE!dha%AOduF(;(B;J4?-=juy;o6ttNn8EJGSb^) zq=iGEjj#6swjglf1V3V93I3^jx9$G&n=c4!{rtgu)3r;KN!^f_mFmk;64pXG)P(mP zkV+LG|Mt+0*L&Z{@|J?hA$fpmjV^D(&s?^9jS5?O_YDXSHx4UPM*&N8ba?g3wmn@ZnM{R|4V)jIDtN7cDs2$Z5VCNpm|?0Lmfwe1jHM8=*txiH+@zML7uu( z^t0(PkD^!@0P#=F%*jyVl9pU5q1@0apj&wSI1O@rgjUU33>>va8{&W_W)iwN@9ERF zm~aP0YKxZ6W$%<5^Xd8X@OINZ$!qP3no4qbMnPsKWhGAhEw&p9w(%WpH?~dJpxxxz z*}{Niy6L38{!BL?Mej7pIth^}6H--J1E&Vt#(lS)R~wa&#u>_4qx! z`TEevVz8y+czMVwu*drzdxXLp5xT)MF8SAQUjvMv?}h_KPqBV5c^hmG2Y@VuOTy|q zc;%}p2*!E{GZu(X4{$Nlrj%9#KHym#&ZYxNbVKU`_Q?6j&5*E;k{Fu6bBi&WCJo#D zjM|H_%g9*@gHj7tYhh-j75eM3gdk?C7jyjPluj=kMVyzzuAQg{gcF2I=-22~31%I} z)+PY@aYBEI@8Ab=WE1gP>=FZUL(9(32H5#!6@$A;k}(Q+2mt%6PM7IiDTSTCpYi5o zd2v%}TLOgP#L^PE@_6RvV6(YBy$U;YkY7vRxe*BLy}^~I*hb9SkgDt^B_ky!H72a zoEmGF?)&Y8O9tsjy>r`syQlYORq6Iso#-;HM-QyB#K>F)}yh5{v$o`K}~#uq!T zvN7o>SwEdIQ7J~UNtYtj$_kh({4K%iL0IHfSrwX+zGg5`!QQ_rGze!;h zzgxkiq4_l0WF0Oz2PvH&eyJVtxpl?a4rL(StqA+|d6^Gg48W%IM=2a6lFxm&Mzf1( zJDl2)T^wir>p+i?@cEl9;YR zmCGQuc7=H>(bTo)Cd@1sT#DV*_}WCgnXtWVJOFy&b5k zjMB{37jMqt&;4;C+qJdDn8AAO=ZGf%xHAm)UM2hnfs=1yu-h>#qKg70tz&2nDw-Td z=|KAVyN+_;$@TOR0_5Fl(<_@JA0NO0&vLYR#0J2cN0%oo+|VU(S7x#kb(Q0~64!nk zCztiRAc63l2;)x7L;!SE7etnL;EXBg+lrQPl@`AaXSE@$K>z06%a|slu&$%ZLk6MI z_v-~50{YC!^Wzi-9K<2d7)4Tzf){ah{AOEj^HJR)rTon_AXIfk?u)okH)_H~NGmhQ zOSVJ$sE4+g_eg(fr0&%D2vINjTUU^MP-2L*puDYXg~k8~ol1L{Z2sI$kp#DyDoIo@A})iD23q-ZUxtv}kB-+q2E!cQfKq zjoni(dy-AOnN1n+-e&p_tytvJ+!eQF!b?9K{F5P7)%4cS+g1{?q<_;F}20PsQ z#}c|MAuCU2k^tAZf|u9Mlsa#ty^Hnt-k5h`yy~Av8lij^jnE9EypXy%XS4pyB@`{9 ze`Mb_ZjG?)wUr7Y0Q_QUajZ0V9H2XN_4yKep%<&{$1T_ZX01} z!nz%Qg%=A{Rx=^!^^lN(pZ|>5Pl+eLXt>3cn3XoBT=Q#4qxR13TTaZZ-nKw283&dd z&6lCm{w$CCTk_JUd3H}`wpI%0Z)MI&HT&Tf?sQ_kr@i-4401PC3XK_P#m0X{-osT% znLt#Dymt4LSs`SuDQ~h>Q$J_TNF=Zl8HCpX^dJ4kA-Y2fFce*AX0%xSP*|4;8&MTr z-UAze5OG1c@O#jJYXD;y)UatE7zy^ZZZ{L^DpU34lX-1;Zd<{p;qhG|?k6fo99YcmBzv^qBo-M} zx&BA>qZrH2B_jON|HQ48=Gn9tdI0Sf9+_F)U*|h%xUs&Htx)H|7E+DQ44LrnvAM!q zQbX*@>jGxvE0*@0DaHcj{SpoWRD7RmJB36}4|+pS;NGta%V&Sq<9r5OAOJ&yM=H6( zyn%E9amOU`fPUo8o^=#y-5Sc!hX&r97E+yZ{V$(Q_D@tQxP3bEcrlV`iDs7Gt^W~R z{{pz8g_-IA@3T;Cf&P52-!=2UN{Ih|70lSz?O8@yZ=l9Ed0U+T5z-Izabi`duq?SM z=|hUFxR*%mDx^@&Q>zl4944fRnvs~tSi96zAIUvB)p(M7;q zZ4IXyFWn>_8$5DeA5y-Tn_(VyZ(k-jS7xb^mEXD#jX6fuFC<-~$48TZu0SJ;#*a?NKgc)I?YL+97aeBsRz$T{&PL)e_0ea1Bc=WJ+uxNo~TdPh6N>$II3*3h4us0@W^m0 zr6BJPF3~NCl&D+n;S#u)UI%i+&@Fi)fy^pfsvJ^@!fBCd;bGYl>#b?E%V%E)kFpre zH2(2NwotZy*UwRFVg6xMEe<|!i#jcr+166*elHt)%*)yDM;0{U-SXRGh8^i19$5F6 z%^1H4@ILzLq+*2JZ*-kOpyOp!--ZPz(BoTgwi0iDBfHRFs!;XTNkCU%j;CL5wROB# z$N)RT(%cHUwABbu1!BRD) zrj&B-NUQAdD%0B4Qig$hW#1b9e2i}MeGzHrxwaZXS&!&p;MQy7_3YJ3odR0q<)B_0 z04GS#y4dwz4Q79KKT}wtOVrDdxtRn;NUo5Nm2e4kR9b;vCby#nOM(a?91pmDYd4-J z1dT^orjHL*qMD3QOq*oF9(KTGxA#3=KGa7CDrE&)v*s0HAr z806(AXeV&n5knk`fbZqw`!QbFL=sAbw3@^F&~tvgPa9eXu(Rqc<^I1hQEKE&YHol1 zTA7!C2OSfUNyG8x5w@_E!>|)WT>g@P&lDnrcfM3IZ`t?I(_ge}os!}aO)8_u1=2KO z2?{5~iT?8$x~gpVS8v^b!a65Z@$Fw!5h2O%!LFDurlk3oaHn*71~wofi8>3y*ide; zLXzNYL&)j}R)Im^>4_2|tH4nK&l$f-L|~97A!WhrA4Y-1Kq%&#VS0lgq#YXND1R!w zuK&}B8a7RVqL5+eKHo!3*6{q1)u|Y`SMc7rOEFMGI^_U-Zwj{9exUNaW8YoNbYs?f zqzBNfh^$I$>S}H`g`Y4ga2PypH28yP6kM9LR85b3NptHkAR21I4ppxWdgTet3$1;A zAJ>v76v{P7fXSO?WY_LTLNJu4$Ni$0q0Y>b@ab6Ee@GQ6Z01A&5jTUsq9?d_#=J$n zO4#V}YbkLlYZJDxdyo{)=nUYrQ?$XG9h_t)eK z{j224A1@Xa{_|Py7ah77RnnYVH}B3cIYfwTsnUn<9mGurUMIPqwmsf8a3=$H=Zl0w zgl9zYC>TAln}E5()GxSl#1+N+VXr@CiW*Z;p_PVY+~_DiPsz_QCMt8W;9ASR69xEy zOrO3$KzyW}2+3C~9Q78B2=Fe!FLf=VHk8H==l!+ig0Y5D%9ne|0aH2}is$|$`zHl< z&G|87Gb84`fnFy7^-a z725( zQRmiogv*z68x~w`wLjYI2lQ2PxCsdIRDR3bsEhO$5nl4Sl}(Qz25m79%nOT<3vw9B~7;)?C6=cGt{YXyRP|j6GilY{&~Ju)(e0j@1E294#!mQ#KnNNUp-aM zZ#!9XSA0*h&!8ND<*&#ROTS$aw{g;R8q^dc62pj9%Pq!M;woER*xeF=WV@2{gds)r zFejn4=klgS`1nJA@yDJeQ!AMYvnIXhqhURT-ZFrq!f`o2;{7$uZ)Lf~K0yTydPf~rEA66VTP!~EQ?=v1_*dl(a z^P%y@D@tz1o<8_s*MHo$v9Gz4oOXG-B-x<1{cm|&;p2rf7^q(XbkomZ{vz-M=(Bp? zeY0k=&gX$WE!HB8mAv-?hoQ1+Z0|=*Ri*DsojBU!yuEmD*pt1LN6X(AUkUhD8<_A# zHh4Te(U9T9d=E^n_}HPsu5YHo`1_+3;kK}aNw1J_sw6r%Ry1%&1eB{U!$eSptTM|I zV)e~pK~zs%_4Veq<3*o-zphwIdG&t-V$8^Bd(9?HM2f{Oy0CC-9qG~$c)UT zy9T|ss%88$Y~TSr$Ql`&h=l_G|9j8qQ-sA1LTH54+$VNZ+2Z!|PiuJ0@F1 zhcv_ow-dY_^?kElcN#LCFD9YIZ(-7%6e~JwefpK~uT1)s(W*_6O86Tug6OTt0KsSu zpK+x(o?PjPcJBG{afSEw8PDi8^1NYZKfI4}(m zDSXd8j;)LEQ3}DyOu7PudL)5W09t~3Q=3?UMUMRZ#KQ7uU{!zIF`vcQfJIw8+=5tY zv%tIM)tDEV(SJRCw)3!%9b6w+98}UcV*gB{o-kzrFp-*~fyaOrMU71|o zV!%|=f=FV@gL}E&lew*_RzaJNaC4HFaM4dcK*PU9#ga^U4++w7J3Ee+%Ey6eZ}O=)>uCq)!wzJ&TE>DI%vl^v^4K?TJl|(fu7ke(JF|y}Q3pqbbem(JQxn zaJ{6LlchQDir*hxr8Aq?zmrp<*y2IbGcvyN;Ud0zysaI-&e#2cZZyW|ctDw!Fy!F# z1!208!j7kai zZhkrdDR%+wKUY|(7RMK@-|NZEp=Dv%*sv_9qp-bl-F(WBoWGE$jv#;581+ z==J(w*iz(gX<=n5y?guTS23@KRE6~<&7ojKQmY#j+*a^4s;qtnRGi5qtIU%d0SqTADfoS(#Z`%gP{%kQ^y z__4wN88XBnETqbTjB}U%xyQ0$(!PFPKliH?2MqRTGWVG(qGfkJgtoXHyrYghcPHN+ z2l-O!^H?u#^J8Y$!KJ}j5z#D*{8110 zwSvYS2{Z3rGpCe$LbNQ zw1Mf`ch;4fhlzLPdd`)^45Y`ad+Z=*4G*4et2nRAED}7{fa_Vm6t$GYmw^#EpTwGb`m` z`IZp%esEW*YEEu!JzHk}x4(O}!R9n)*p|R{&3)`zE@=0Knt5KLN#uP_xlZfSU15UhG{hb~V%ylDueflYKpt;C`An{U>T3=Q~^fZ9L~-b04sBY z`6o5t`-pXq^A0`-b68hgrz}iJ!DPFXaT&&eda2~JGvVAwJzRXq&S zgs`17g!|;XbjeD!mYlQ2`gN*R3j}J?mNx6$zhCyyY3;R`+=C~GFXDek&NExW6RaMs zB3ls2EHV{q2p5V9XXX?D+4&t5(E-pa0V;YN;O|7#`8Z*A9yQ@VgK+7^Z-NT`k1A_T zqrt(fg&~mBy3`Rtn(H_WOXdSIw+(2E$*MS8nY3EGnvXXCa9fK3>!v&i zXv7yg%TppIQiFgtO&^Q35{a4208az378PFDoP*6oHui-Pi9CJ#0dGKrrRiC+UiGu) z&=r4r4C8aUN0i%%u@(eQJiar{+FH4HFUq9QZ_2}tcrFIEP~2FN{hN0Zwo|heQTTlG z-$WC5(k!OJ^oj3xfwK+*&6;HladZr7bcEOJTgosT^tkM3Lgj^R`-q`*t6jfY&h+FK zjRtsYYuVy5`p4p=K!aev>_*aw`VZIVwezoadu7-pp*>r9Nt=At&bi7*|ILa;nG8xB z+kN+Xw{Teiwq+uY{5=cb+R$MkiV0yw0^X8P}EyXf`2=sZc)bpZjP%dubCb4++ z2z*Ep1o;kpQ=H;I1h3EE7HB2ccD|2%*}Aq* zbH`Ls9xxS}RBu`2#u252LMuoLOAr{?fi z_0!J)xFpxSEn+SDRC}spqhiEX$1dza-9e0 zS3via@>Vwthmk_I+lvOKdQ20t!9&cKfv9UJv}Hd_C~>9-y>7w#)ownV%wIe;5^W&$ z1C&uE#3GmXKe`To&Ud3oJZmHhj~tA>$2%X|Eq~|#Veieuq3+xF@sbjiC9*S=2w8?m zmXT!3PWCdEWDkifgM@@ZvaciizGR8AWf`IDTZkC4$5_W;{9be4&vQSY-*J3@zuW!& z@B2NT_bJXPk)@T`S35H zswWv7Lw)Q6%`16FdvoCx<}CBr*v|(@#OK<9WTmV(p&@) zP>qY9UyVUW%#_BHJjdwA@HuGr2Vto`^F}RJMdx@4HP4yuAG;oRmOSZ3GMMrqm)Oh- zk{*KpuP6~NBm9F=+b-6Qmp#-vx>_4gYuU5&RmR-L`bUOu#WoFcafD)-S~N_4#r>fk zgxdh?ihp<*vxg)o4^Mxja${Z)w`obXA9P$fig{nt3s`|qy{Mlj*H8?}@jt@iP5bBt zZFJR63_f^WK^Mz8d|4$=((S?~orC%WGMqdJwrnV0kL+Qz0^P4s!B&uD@yAcH4MbE? zN+4N1lSFCvj5%}Iaw<6bvm#N?tR3mP{TR_fovXH}EJY`yd|x31PrQ3HL4CWI-~Dt|6Dh$wSr5M;CXRC}wig#5!~wgH;)f9O{FN$&cTucqS!N=O7d6ccq5s+5{ahlH3tG z{Sc{}kXiQ1^I|1I?J|h|6Eq38+LM5vNswh1ZYv&(RrySIIysvSAm!MJ)G=2dyYA&7 zNV>V%*G<1)`iqbR>kF`o=a0}oOA=c2f4p$@Zfo!HD5r<~Zoy>=`Wspz##)6N z@aHf(x)Y5%zfrY%`;cvjoxp23D6ERGuKlM~$gENHHIEM7hFPvlg1^)Zw^Zo3$miQz zo4tS!%MSK)o21?0QZN)Fs+b&@$L2G_43|ao@LE_S=JRXgmKiOJp*02+E;VKI&A%OH zmZxxoNNr4fQsHr?3jbi_n9DblML&>TjPxG?6GTl zE*`&HUOwyG(71E}m!sWGSsZ}0_fqucIujzP1jSC;ktWO^KuosD261!!Jg|jA*)jB{lp*6RM028X#S>!M3jcE8QVJ=22c&NK$1J%iJ671$5Z28 z-A}q`hV4-v8ev6|GRJQ<BlS4_V|$%* zh?JlJlRPCAj~_HvGCi*sNApZ?hzYOMUPre_7;=|D8!Ss&b|oH<Ejd0ZrDD^0(nuIl*UkTE$4I&5wo?sP!ZvR6#G)Dt53V9n6AbExBk#$j4UH&URBUadXK^BYz5 zOMmiWyXfH(RZ6aYu-SD>lV$lsK;De=!|cmkRz+YKJ9;!Og2{W!|HsoKJGMa{E!wbV zWBkgL%NQR?C9=@}_qw?vPSZ38rPRDzwvNsdX#qTA7j%P1d%W1}Jo z#*^K6UNBvjL7Ac;s+GCqR0&m}jP_Yar@v!LqNnzh0(bwrKC)<2)Qg6og0g4G(#n61^b zDP+LPhQbHHk-;%?p)ndC4DsSfZFs7-LyGjQ+P|uEGXQ1@2g1}%l>G(Q2H-m zMwVio>W-5HjS;P#&^6zBSv;{xR`z+M#;=kbBlDhKN)S`wJ1A@u0LH1%e94-`3@D57 z4CeNSa`x`D@jw$e%Ca3_Itz$bR<)I@D0$=QR+aDX5pHCJ_o|BwUiD~P3_X#-qJ_y!vM?J=qm2_ zl~ylZsD$+3sleI1afYw};ezejB31;@x$L{8#SeO~*;qOv9M?NiwihCyE9J#tj5BTP zPw7DD40rX{1R*KMUmjR>I<7NgU;A=?WhC7H)h*x`H*+nTVv}3nu5qVLqJi?_)PC(7 zOvTi3SwjwzeOj&L7gnH~dHI%MN-=??gsjgmeIO4IGq9k_(>=xti`N>MKYWuQM+e%o zm@@>y9HT2Xx3Drh?TkR@C(;1MBsmrrT0Bau>akT2N1Dv-E^K^GrJc@b4(ineBJ z^QZ*pvkrEzs5kF8BML-VxWglyc2s!s=RvBgclT6kJFR2SrcCmOo;_GwRoW5J8PMk3 z!7a7D5c{sxz9Y9~2A;?qkEs}gBt5w3$BI%2`7~y>8@!^QHQd~0PFETow*?d^1tSzjkW=3d?qNZsE`2Lkg^JsRv@;&^w^Pi}uiCp4x zH80_R!{2X_3g)Eb>OzMCAjn3LWZ-9ySW@HXSq%d_bP4$ z6`wXiSGLnjIRb*xHKu+h*<))Sh|<;$?;wRf9e=oCnD#a;=$pmp%OAFCFAD(}MWTLo z?1CT+rwfQgnN|e1uI`i&2G-Zj3AqV$3s+X2p4T41xd|hPiVsukJD;h1 zfol)~TlKyL-7XvC{jqnZ=jP-;=tC0wv>w|G3%9N<2n|MF)37Z1vp?KXp_moq5f%?O zXAr8N5fHxi+k#a}h=y}GqwEY#;!fyS!}bJN`Ay)NmjcT#e=gv={UHSV9e&&bo7(@6 zj*{tNknx3WrX?}fsUvc$a$ZsmUVm|`o2!-rCrzKiom(H6UN2L>lODd_RV{|$rWiJp zpQ;+fDN&?Te4vW>|Dd6dgcbd!y}(zhP{CtireYt*YFIe_CAqyai-pI~&jnYtr4%2JP2y=;6EH67H1sy%M8n zL#|2Ni_5^gi;i32T`s!`8pIz6q2n%qvQT}8mi40S%sWaT!&h7)g*oxNf9JM#VG!C+ zFjGInMbi3!o3+)VYxcyQ=rfyuX`1!F_VrP-rsidemfRpQa;?FT3_`K967YV|Pokt)Ekr)*irZf<_-k(iKX-M{b#(^{ zNt64B!Qw++W?8)doaRD%qv3(PBg!+HM(i}IverRV9h!7Zq z#mV*k264i$Rnd^OB&!3WgliMVBpW}s+(=lqem7F!jT>!;iPx_>Iwj{4RUw*)RELMP zGok#$>SF9*(&*qM6;dg(Q;a$zZ=SsxJlYemdC^hsNnH=MB0or^9yZ; z^d<_Ho{hv0>9mahOU|uy^7DRXBWS~(WC-y#wvyT7XAZxW6nOSn^9_ES;dR?HWJFxtEG^EcO`t0L@=TN`6T5NJpZg z7GH{x+W8dwX*P)GT>{5~>)!il(gaa*zS+w(X6^s7_|O{87@MOFri-RRak8zDUCr~qqh88VKuiP#MwN44r%MH9hrgo15-AC5NwVtyO?0I0=6uWBDYk+ zI&iz|G2WtDqNil>+cHO>Uw;eo!vN=v_MI@I>&CE0ewP_L#O7LpD@0XeV&Eh0DLUu< zzhca!iZnNJE{3R)4m-f3&!>wLO*c}uc2O^&(;44m7H|0D+^ z8}+c*d_oh>a%yxC&$yQA^8Xri+=d_x{!)dXi6$44338zg>>%TeffFp!vMR14qlFU& zKDZ;7Q66Yvc6ao%2(jwO%MH8l`5JcHWvHVGBCzY|eVG+Pcq!G4!_!(Unk6^BZuaUx zq3L$PBGJw7U~RsuVWlgFOlCoD;JNSoa}A;@Z1)ENsKjq#D-xZ2mQCiDfl55-H!##x z2iBLFxla4lPRT^;5g(uH7lb+a!E6pUnBaV5w-bhz&v(5_X7wi14Ps7MNTTuFI&Jl^%*{?bT4T!DiSe! zZ|ZyleyB9f^awxFvq^NH{B=}QK_J?W=NdF@#18x+{r}**{2_rou`B-Uj4(p z@I&34z(DfU!LLPm2)_3Z-x;sLOm;CD3{y|SZ=hNejA#9L6fL_KP200ZlnidI5q>n9 z)TZsB_7YKvlQ{HE4Wj6KzLeI~cW-V}^jGb=Zu~U@m99s%v?awdkiiA7)uvc)5|!rF z)7D0)tt_6@$A02HYrB3&yVk=;vfkDtP9x8%v6t-VFUx(+c$Hw8XQZqvZ{pf^pH$EB z+o0BcZ86=$O1UUH4cT?sM z4|g68d>a0=>$g^~VJG`AOwRL_M_lK3;3~L=OX=;_N5K!53`9q~q{*1;_(yhk#+`z7 zHD$yop}^=dh*m>Ft|eCeXgydq5Ne5T-N}rQW!eH|ymUA7DrI63>oc2R`ef;tE z$opaGIJ@P0h=$x>lcH#=@zh@T^BG&mhP_|Yz)DsrICu1e)6@&Y^Y6NW^G@<81gaG!0Bqc~>#Bg8 z0KHiI$HJ12d=!p3YKb}v0SmL$<4?j!itYr9#J+xX<^nUF3DKH%{i|pXofoiE{+uWr zWJnxlnLfPJRMi99Z-r8KuGY?{Iif#-?Az?SzsfM_cXTMeZEODFhx@tt)aRxN-oI-H zmJ(zS)>}l)nR__ryJS28gb{@=)x;$`HQaJ2Z=)|~*Z$^D#-6ZuZ4-xyZ1)y@G9jT? zr9xwuirDDT9u0nd9%H&v)OB<#5{>;5}8)!kTPXVkKyHX~I& zpCpPSqc%IvxFD~#?01rV3HcR8p9_0l|MLZ-ocM1FhSy>X}c_oVFI zpb7bvVH2kd$qw&TzA_xjy>|NwZExi+@y-kv@0^g_WPOxc@a5S&Uf;+nb{zm*9z{8u zkoA%jpRGP6?Ue25V2Gms@PMXlYOVX6(e3q`Zpr0GmULF5g4;7;LQe*^!2hk_!q{B? z6upli?9G4ho?3RJ>P!t@R&OFz`@7fJ#h;&~!u;0RqSgiwk@NdG4eglth6W!Bpa5P%GrG%yVF3iN|UW*G& zM9)vSg;&y|T*{wfhu~PZ!-8BCdOC$=h&r;olPUvBYVlf%TC5)A0`1mK{Bmh9uwA~o z(y;$~dT$;TxqGc=rd^icf*UIJy;NvaPI2U*4u7D3lrEelH{0Fa0m~l3*B{eJcG|TA+OIPfAE&M$4(4QVRe>XmVm=7 zbQd@+mp1y|J`woFdN5BL3uAL>r7>UVeK&Oe`&AS$`FcLRkQo`_vll$LKHY+mnT5E$ z<}=Es{LE2!&$0UZW9=8irSQfA3&;BHVe_9&{{HjG*ikdFql3-()xx3q8lEDpIOF0q zxTO2@jUPUgbe}$rv{TrTu|3mb{jKST*HxHiEOg^!ZlQkG@ezOhD{Oz|JD>Mj{jMqE z2~+f?Wv-^#Tgu_Pskh`aRDWI7Kd`KVPCDraV_1!t!uOIYCmuX3^nR0u+T=DP`P)}4 z`TE2AO87(glf-h zsOq}@xjTkCz`WxY#g{=1FA$s_XF%^-pVjFvrkzHP1`hd+3Oa#p7~vLI=;nr)3-fKI z7S_)nB zPchpE27Wi5$a(DkcwYGN*CKI5P=ecmX1VCo?~jfaWs)qH1rs9Kq{Jtl4XB%g6%LLV z-I5p77tAjf8gfoPs=86~>C4Ybkkq&(t2a{NG)BWNw-WK+kO`yjqo|3Fp+3KHM5O zRY;MuDV(9uy_)9zJ7n#QNs!&?ngheC8nQj;L-CWe!hiQ#NH{U|W3NP|^8*jk3Dz&# z8|O=GL@%jAhL-o~9r5C7oe~>iiTx0teS@OkXzRKRTt30yP^4`h|79MtjNcg1^h3XU zm}B2t)z1wXn(i_bDcAcBB9)EL2J^mTGJeS;-xDjAuQhybaC4Ks#bUyZa0ou`5(Rm;?2BBXTU6Rf>qt@ehJ z+%L1QL`sW*rRZ1_(;JF18KwKbKM7s0TW_Xo0S;O$eB{;CQyg0I>w%0EpY_BtplC&h z+}OBL_qUE>o+zCFfd`rr(}9&Ab36l`#wMKsfPKQle1&o17Tk!&yXsPQ*)L<^(Rk5f zam9VGr>6dEvFWbRx!!MT&(lub8Ck-6psIov?Mv(FgM1a@(V=DznW5#e1^QrtfwkQH zDbc(6qdmSm70zEcgCF%M7hOLzDyY25=Sr!{V(9=WoXRweI#~QIqx|aW@ZaYnwe)kO zIQF~%r%&HXWb@j#!+1W(8&fag9-}{4ZB+l_>@C=_O|yUUk$-5mqpLXH^p4QjeJVy? zy+rDM@j%#CpW*9IUv%T~B4^xiqJm_;I4u-AE(dz;rX8ZBm}V7(VnJ`CqPJ~_?c8AE z7ft07a#x{fE4t+85W4)nSrvyqX|rI>&zA}M`@sTB)Q;vwjA++{r0V=fpA@U_wHh+< zukrLTjYL0j_4wg75=4ZRzC^ZV^vS1Hi-rZN@uk#f{VGPZ{G73(zDT31$W@%A{d|h6 z#_(KTW<=+2IsL>(qkNTP#hlSk^sJ0lLp(`T4Gub=vrBt8|Adt-8P;BE+3>lq=