From 9a0a7cc8cef061484871e5b796c4c8a7348abc4f Mon Sep 17 00:00:00 2001 From: hoping Date: Thu, 21 Dec 2023 11:14:06 +0800 Subject: [PATCH] add ipc features --- .../app/src/main/res/values/styles.xml | 4 +- mobile2/backend/src/lib.rs | 54 ++++++++++++++++--- mobile2/backend/src/types.rs | 40 ++++++++++++++ mobile2/frontend/src/main.ts | 37 ++++++++++++- mobile2/frontend/tsconfig.tsbuildinfo | 2 +- 5 files changed, 126 insertions(+), 11 deletions(-) create mode 100644 mobile2/backend/src/types.rs diff --git a/mobile2/backend/gen/android/app/src/main/res/values/styles.xml b/mobile2/backend/gen/android/app/src/main/res/values/styles.xml index eee7590..ab8b4fc 100644 --- a/mobile2/backend/gen/android/app/src/main/res/values/styles.xml +++ b/mobile2/backend/gen/android/app/src/main/res/values/styles.xml @@ -1,8 +1,8 @@ - \ No newline at end of file diff --git a/mobile2/backend/src/lib.rs b/mobile2/backend/src/lib.rs index 19d8870..0a401a5 100644 --- a/mobile2/backend/src/lib.rs +++ b/mobile2/backend/src/lib.rs @@ -1,7 +1,7 @@ -mod platform; +use std::sync::RwLock; -use crate::platform::{init_builder, init_logging}; use anyhow::Result; +use lazy_static::lazy_static; use wry::{ application::{ event::{Event, StartCause, WindowEvent}, @@ -11,9 +11,20 @@ use wry::{ webview::{WebView, WebViewBuilder}, }; +use crate::{ + platform::{init_builder, init_logging}, + types::{Error, IPCRequest, MobileTrojanLoop}, +}; + +mod platform; +mod types; + +lazy_static! { + pub static ref LOOPER: RwLock = MobileTrojanLoop::new(); +} pub fn main() -> Result<()> { init_logging(); - let event_loop = EventLoop::new(); + let event_loop = LOOPER.write().unwrap().looper.take().unwrap(); let mut webview = None; event_loop.run(move |event, event_loop, control_flow| { @@ -30,16 +41,31 @@ pub fn main() -> Result<()> { webview.take(); *control_flow = ControlFlow::Exit; } + Event::UserEvent(code) => { + if let Some(webview) = &webview { + if let Err(err) = webview.evaluate_script(&code) { + log::error!("run code:{} failed:{}", code, err); + } + } + } _ => (), } }); } -fn handle_ipc(s: &String) -> Result<()> { +fn handle_ipc(s: &String) -> Result<(), types::Error> { + let request: IPCRequest = serde_json::from_str(s.as_str())?; + match request.method.as_str() { + "startInit" => { + log::info!("start init now"); + set_config("".to_string())?; + } + _ => {} + } Ok(()) } -fn build_webview(event_loop: &EventLoopWindowTarget<()>) -> Result { +fn build_webview(event_loop: &EventLoopWindowTarget) -> Result { let window = WindowBuilder::new() .with_title("Trojan Mobile App") .build(event_loop)?; @@ -48,7 +74,6 @@ fn build_webview(event_loop: &EventLoopWindowTarget<()>) -> Result { // If you want to use custom protocol, set url like this and add files like index.html to assets directory. .with_url("wry://assets/index.html")? .with_devtools(true) - .with_initialization_script("console.log('hello world from init script');") .with_ipc_handler(|_, s| { if let Err(err) = handle_ipc(&s) { log::error!("call ipc:{} failed:{:?}", s, err); @@ -59,3 +84,20 @@ fn build_webview(event_loop: &EventLoopWindowTarget<()>) -> Result { Ok(webview) } + +fn call_js(code: String) -> Result<(), Error> { + LOOPER + .read() + .map_err(|err| Error::Lock(err.to_string()))? + .proxy + .send_event(code)?; + Ok(()) +} + +pub fn set_config(data: String) -> Result<(), Error> { + call_js(format!("window.setConfig('{}');", data)) +} + +pub fn set_app_list(data: String) -> Result<(), Error> { + call_js(format!("window.setAppList('{}');", data)) +} diff --git a/mobile2/backend/src/types.rs b/mobile2/backend/src/types.rs new file mode 100644 index 0000000..4b4f54b --- /dev/null +++ b/mobile2/backend/src/types.rs @@ -0,0 +1,40 @@ +use derive_more::From; +use serde::Deserialize; +use std::{env::JoinPathsError, sync::RwLock}; +use wry::application::event_loop::{EventLoop, EventLoopBuilder, EventLoopClosed, EventLoopProxy}; + +pub struct MobileTrojanLoop { + pub looper: Option>, + pub proxy: EventLoopProxy, +} + +unsafe impl Sync for MobileTrojanLoop {} +unsafe impl Send for MobileTrojanLoop {} + +impl MobileTrojanLoop { + pub fn new() -> RwLock { + let looper = EventLoopBuilder::with_user_event().build(); + let proxy = looper.create_proxy(); + RwLock::new(Self { + looper: Some(looper), + proxy, + }) + } +} + +#[derive(Deserialize, Default, Debug)] +pub struct IPCRequest { + pub method: String, + pub payload: String, +} + +#[derive(From, Debug)] +pub enum Error { + #[cfg(target_os = "android")] + JNI(jni::errors::Error), + JSON(serde_json::Error), + Lock(String), + IPC(EventLoopClosed), + Path(JoinPathsError), + IO(std::io::Error), +} diff --git a/mobile2/frontend/src/main.ts b/mobile2/frontend/src/main.ts index c8fc172..2321b3b 100644 --- a/mobile2/frontend/src/main.ts +++ b/mobile2/frontend/src/main.ts @@ -5,16 +5,49 @@ */ // Plugins -import { registerPlugins } from '@/plugins' +import {registerPlugins} from '@/plugins' // Components import App from './App.vue' // Composables -import { createApp } from 'vue' +import {createApp} from 'vue' +import router from "@/router"; const app = createApp(App) registerPlugins(app) app.mount('#app') + +declare global { + interface Window { + ipc: IPCHandle; + + setConfig(data: String): void + + setAppList(data: String): void + + setError(data: String): void + } + + interface IPCHandle { + postMessage(msg: String): void + } +} + +window.setConfig = (data) => { + router.push("/") +} + +window.setError = (err) => { + +} + +window.setAppList = (data) => { + +} + +if (window.ipc != undefined) { + window.ipc.postMessage(JSON.stringify({method: "startInit", payload: ""})) +} diff --git a/mobile2/frontend/tsconfig.tsbuildinfo b/mobile2/frontend/tsconfig.tsbuildinfo index 1b38375..240c47e 100644 --- a/mobile2/frontend/tsconfig.tsbuildinfo +++ b/mobile2/frontend/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"program":{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/@babel/types/lib/index.d.ts","./node_modules/@babel/parser/typings/babel-parser.d.ts","./node_modules/source-map-js/source-map.d.ts","./node_modules/@vue/shared/dist/shared.d.ts","./node_modules/@vue/compiler-core/dist/compiler-core.d.ts","./node_modules/@vue/compiler-dom/dist/compiler-dom.d.ts","./node_modules/@vue/reactivity/dist/reactivity.d.ts","./node_modules/@vue/runtime-core/dist/runtime-core.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts","./node_modules/vue/jsx.d.ts","./node_modules/vue/dist/vue.d.ts","./src/app.vue.ts","./src/components/helloworld.vue.ts","./src/layouts/default/appbar.vue.ts","./src/layouts/default/view.vue.ts","./src/layouts/default/default.vue.ts","./src/views/home.vue.ts","./node_modules/vue/jsx-runtime/index.d.ts","./__vls_types.d.ts","./node_modules/vue-router/dist/vue-router.d.ts","./node_modules/vuetify/lib/components/index.d.mts","./node_modules/vuetify/lib/labs/components.d.mts","./node_modules/vuetify/lib/index.d.mts","./src/plugins/vuetify.ts","./node_modules/pinia/node_modules/vue-demi/lib/index.d.ts","./node_modules/pinia/dist/pinia.d.ts","./src/store/index.ts","./src/router/index.ts","./src/plugins/index.ts","./src/main.ts","./node_modules/vite/types/hmrpayload.d.ts","./node_modules/vite/types/customevent.d.ts","./node_modules/vite/types/hot.d.ts","./node_modules/vite/types/importglob.d.ts","./node_modules/vite/types/importmeta.d.ts","./node_modules/vite/client.d.ts","./src/vite-env.d.ts","./src/store/app.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/file.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/filereader.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/dom-events.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/globals.global.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/esbuild/lib/main.d.ts","./node_modules/vite/types/metadata.d.ts","./node_modules/rollup/dist/rollup.d.ts","./node_modules/postcss/lib/previous-map.d.ts","./node_modules/postcss/lib/input.d.ts","./node_modules/postcss/lib/css-syntax-error.d.ts","./node_modules/postcss/lib/declaration.d.ts","./node_modules/postcss/lib/root.d.ts","./node_modules/postcss/lib/warning.d.ts","./node_modules/postcss/lib/lazy-result.d.ts","./node_modules/postcss/lib/no-work-result.d.ts","./node_modules/postcss/lib/processor.d.ts","./node_modules/postcss/lib/result.d.ts","./node_modules/postcss/lib/document.d.ts","./node_modules/postcss/lib/rule.d.ts","./node_modules/postcss/lib/node.d.ts","./node_modules/postcss/lib/comment.d.ts","./node_modules/postcss/lib/container.d.ts","./node_modules/postcss/lib/at-rule.d.ts","./node_modules/postcss/lib/list.d.ts","./node_modules/postcss/lib/postcss.d.ts","./node_modules/vite/dist/node/index.d.ts","./node_modules/magic-string/dist/magic-string.cjs.d.ts","./node_modules/typescript/lib/typescript.d.ts","./node_modules/@vue/reactivity-transform/dist/reactivity-transform.d.ts","./node_modules/@vue/compiler-sfc/dist/compiler-sfc.d.ts","./node_modules/vue/compiler-sfc/index.d.ts","./node_modules/@vitejs/plugin-vue/dist/index.d.ts","./node_modules/@vuetify/loader-shared/dist/imports/generateimports.d.ts","./node_modules/@vuetify/loader-shared/dist/styles/writestyles.d.ts","./node_modules/@vuetify/loader-shared/dist/index.d.ts","./node_modules/vite-plugin-vuetify/dist/index.d.ts","./node_modules/unplugin-fonts/dist/types.d.ts","./node_modules/unplugin-fonts/dist/vite.d.ts","./vite.config.ts","./src/app.vue","./src/layouts/default/default.vue","./src/views/home.vue"],"fileInfos":[{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},"0","0",{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},"0","0","0",{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},"0",{"version":"0","affectsGlobalScope":true},"0","0",{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},"0","0","0",{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},"0","0","0","0",{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},"0","0","0",{"version":"0","affectsGlobalScope":true},"0",{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"root":[[77,82],84,89,[92,95],102,103,224],"options":{"allowSyntheticDefaultImports":true,"composite":true,"esModuleInterop":true,"jsx":1,"module":99,"sourceMap":false,"strict":true,"target":99,"useDefineForClassFields":true},"fileIdsList":[[72,74,76,83,85,88,91],[65],[104],[139],[140,145,173],[141,152,153,160,170,181],[141,142,152,160],[143,182],[144,145,153,161],[145,170,178],[146,148,152,160],[147],[148,149],[152],[150,152],[139,152],[152,153,154,170,181],[152,153,154,167,170,173],[137,186],[148,152,155,160,170,181],[152,153,155,156,160,170,178,181],[155,157,170,178,181],[104,105,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188],[152,158],[159,181,186],[148,152,160,170],[161],[162],[139,163],[164,180,186],[165],[166],[152,167,168],[167,169,182,184],[140,152,170,171,172,173],[140,170,172],[170,171],[173],[174],[139,170],[152,176,177],[176,177],[145,160,170,178],[179],[160,180],[140,155,166,181],[145,182],[170,183],[159,184],[185],[140,145,152,154,163,170,181,184,186],[170,187],[211,216],[65,66,67,68],[69],[65,66,67,69,210,212,213,214],[65,66,212],[68],[68,71,72,74],[71,72,73,85,88,91],[218,219],[72,85,88,90],[76,88],[207],[205,207],[196,204,205,206,208],[194],[197,202,207,210],[193,210],[197,198,201,202,203,210],[197,198,199,201,202,210],[194,195,196,197,198,202,203,204,206,207,208,210],[67,194,195,196,197,198,199,201,202,203,204,205,206,207,208,209],[67,210],[197,199,200,202,203,210],[201,210],[202,203,207,210],[195,205],[67],[114,118,181],[114,170,181],[109],[111,114,178,181],[160,178],[189],[109,189],[111,114,160,181],[106,107,110,113,140,152,170,181],[106,112],[110,114,140,173,181,189],[140,189],[130,140,189],[108,109,189],[114],[108,109,110,111,112,113,114,115,116,118,119,120,121,122,123,124,125,126,127,128,129,131,132,133,134,135,136],[114,121,122],[112,114,122,123],[113],[106,109,114],[114,118,122,123],[118],[112,114,117,181],[106,111,112,114,118,121],[140,170],[109,114,130,140,186,189],[211,222],[211,220],[100],[96,97,99,152,153,155,157,160,170,178,181,187,189,190,191,192,210],[96],[97],[98,99],[192],[72,76,88,91],[215],[70,74,75,88],[74,88],[76,85,88],[72,74,76,85,86,87,88,91],[76,79,80,88],[76,77,88,94],[76,88,89,92,93],[88,101],[81,82,85],[91],[76,78,88],[76,88,101],[181,211,217,221,223],[92],[105],[138,187],[140],[141,146,174],[142,153,154,161,171,182],[142,143,153,161],[144,183],[145,146,154,162],[146,171,179],[147,149,153,161],[148],[149,150],[151,153],[153],[140,153],[153,154,155,171,182],[109,110,111,112,113,114,115,116,117,119,120,121,122,123,124,125,126,127,128,129,130,132,133,134,135,136,137],[171,188],[153,154,155,168,171,174],[149,153,156,161,171,182],[153,154,156,157,161,171,179,182],[156,158,171,179,182],[153,159],[160,182,187],[149,153,161,171],[163],[140,164],[165,181,187],[167],[153,168,169],[168,170,183,185],[171,172],[141,153,171,172,173,174],[141,171,173],[175],[140,171],[153,177,178],[177,178],[146,161,171,179],[180],[161,181],[141,156,167,182],[146,183],[171,184],[160,185],[186],[141,146,153,155,164,171,182,185,187],[216],[65,66,213],[71,72,73,86,89,92],[212,217],[105,106,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189],[97,98,100,153,154,156,158,161,171,179,182,188,190,191,192,193,211],[76,89],[89,102],[197,205,206,207,209],[195,196,197,198,199,203,204,205,207,208,209,211],[206,208],[194,211],[195],[202,211],[67,211],[196,206],[208],[198,199,202,203,204,211],[198,199,200,202,203,211],[198,200,201,203,204,211],[198,203,208,211],[203,204,208,211],[193],[115,119,182],[107,112,113,115,119,122],[115],[190],[161,179],[109,110,190],[110,115,131,141,187,190],[115,171,182],[131,141,190],[107,113],[112,115,179,182],[141,190],[141,171],[111,115,141,174,182,190],[107,108,111,114,141,153,171,182],[113,115,118,182],[110],[107,110,115],[115,122,123],[115,119,123,124],[113,115,123,124],[110,190],[119],[112,115,161,182],[212,221],[219,220],[99,100],[67,195,196,197,198,199,200,202,203,204,205,206,207,208,209,210],[76,89,95,225],[98],[72,74,76,83,86,89,92],[65,66,67,69,211,213,214,215],[70,74,75,89],[74,89],[72,76,89,92],[76,86,89],[76,89,90,93,94],[86,226,227],[72,74,76,86,87,88,89,92],[76,89,102],[72,86,89,91],[101],[212,223]],"referencedMap":[[84,1],[66,2],[104,3],[105,3],[139,4],[140,5],[141,6],[142,7],[143,8],[144,9],[145,10],[146,11],[147,12],[148,13],[149,13],[151,14],[150,15],[152,16],[153,17],[154,18],[138,19],[155,20],[156,21],[157,22],[189,23],[158,24],[159,25],[160,26],[161,27],[162,28],[163,29],[164,30],[165,31],[166,32],[167,33],[168,33],[169,34],[170,35],[172,36],[171,37],[173,38],[174,39],[175,40],[176,41],[177,42],[178,43],[179,44],[180,45],[181,46],[182,47],[183,48],[184,49],[185,50],[186,51],[187,52],[217,53],[69,54],[70,55],[215,56],[214,57],[71,58],[72,59],[74,60],[220,61],[91,62],[90,63],[208,64],[206,65],[207,66],[195,67],[196,65],[203,68],[194,69],[199,70],[200,71],[205,72],[210,73],[193,74],[201,75],[202,76],[197,77],[204,64],[198,78],[67,79],[121,80],[128,81],[120,80],[135,82],[112,83],[111,84],[134,85],[129,86],[132,87],[114,88],[113,89],[109,90],[108,91],[131,92],[110,93],[115,94],[119,94],[137,95],[136,94],[123,96],[124,97],[126,98],[122,99],[125,100],[130,85],[117,101],[118,102],[127,103],[107,104],[133,105],[223,106],[221,107],[101,108],[211,109],[97,110],[98,111],[100,112],[191,113],[85,114],[216,115],[76,116],[83,117],[75,117],[86,118],[88,119],[87,63],[77,63],[78,63],[79,63],[81,120],[80,63],[95,121],[94,122],[89,123],[93,124],[103,125],[92,125],[82,126],[102,127],[224,128]],"exportedModulesMap":[[84,1],[66,2],[104,129],[105,130],[139,131],[140,132],[141,133],[142,134],[143,135],[144,136],[145,137],[146,138],[147,139],[148,140],[149,141],[151,142],[150,141],[152,143],[153,144],[154,145],[138,146],[188,147],[155,148],[156,149],[157,150],[158,151],[159,152],[160,153],[161,154],[162,28],[163,155],[164,156],[165,157],[166,32],[167,158],[168,159],[169,159],[170,160],[172,161],[171,162],[173,163],[174,39],[175,164],[176,165],[177,166],[178,167],[179,168],[180,169],[181,170],[182,171],[183,172],[184,173],[185,174],[186,175],[187,176],[217,177],[69,54],[70,55],[215,178],[71,58],[72,59],[74,179],[218,180],[190,181],[212,182],[91,183],[90,184],[208,185],[206,186],[207,187],[195,188],[196,189],[203,190],[194,191],[199,192],[209,193],[200,194],[205,193],[201,195],[202,196],[197,187],[204,197],[198,198],[192,199],[67,79],[121,200],[128,201],[120,202],[135,203],[112,204],[111,205],[134,206],[129,207],[132,208],[114,209],[113,210],[109,211],[108,212],[131,203],[110,213],[115,214],[116,202],[119,215],[106,130],[137,202],[136,216],[123,217],[124,218],[126,219],[122,200],[125,220],[130,221],[118,222],[127,94],[133,223],[222,224],[221,225],[101,226],[211,227],[96,228],[98,111],[99,229],[85,230],[216,231],[76,232],[83,233],[75,233],[86,234],[88,183],[87,235],[77,63],[78,63],[79,63],[81,120],[80,63],[95,236],[94,237],[89,238],[93,129],[103,239],[92,240],[82,126],[102,241],[224,242]],"semanticDiagnosticsPerFile":[84,66,65,104,105,139,140,141,142,143,144,145,146,147,148,149,151,150,152,153,154,138,188,155,156,157,189,158,159,160,161,162,163,164,165,166,167,168,169,170,172,171,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,217,69,70,215,214,71,72,74,68,218,220,219,73,190,212,91,90,208,206,207,195,196,203,194,199,209,200,205,210,193,201,202,197,204,198,192,67,63,64,12,14,13,2,15,16,17,18,19,20,21,22,3,4,23,27,24,25,26,28,29,30,5,31,32,33,34,6,38,35,36,37,39,7,40,45,46,41,42,43,44,8,50,47,48,49,51,9,52,53,54,57,55,56,58,59,10,1,11,62,61,60,213,121,128,120,135,112,111,134,129,132,114,113,109,108,131,110,115,116,119,106,137,136,123,124,126,122,125,130,117,118,127,107,133,222,223,221,101,211,97,96,98,99,100,191,85,216,76,83,75,86,88,87,77,78,79,81,80,95,94,89,93,103,92,82,102,224],"affectedFilesPendingEmit":[77,78,79,81,80,95,94,89,93,103,92,82,224],"emitSignatures":[77,78,79,80,81,82,93,94,95]},"version":"5.3.3"} \ No newline at end of file +{"program":{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/@babel/types/lib/index.d.ts","./node_modules/@babel/parser/typings/babel-parser.d.ts","./node_modules/source-map-js/source-map.d.ts","./node_modules/@vue/shared/dist/shared.d.ts","./node_modules/@vue/compiler-core/dist/compiler-core.d.ts","./node_modules/@vue/compiler-dom/dist/compiler-dom.d.ts","./node_modules/@vue/reactivity/dist/reactivity.d.ts","./node_modules/@vue/runtime-core/dist/runtime-core.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts","./node_modules/vue/jsx.d.ts","./node_modules/vue/dist/vue.d.ts","./src/app.vue.ts","./src/components/helloworld.vue.ts","./src/layouts/default/appbar.vue.ts","./src/layouts/default/view.vue.ts","./src/layouts/default/default.vue.ts","./src/views/home.vue.ts","./node_modules/vue/jsx-runtime/index.d.ts","./__vls_types.d.ts","./node_modules/vue-router/dist/vue-router.d.ts","./node_modules/vuetify/lib/components/index.d.mts","./node_modules/vuetify/lib/labs/components.d.mts","./node_modules/vuetify/lib/index.d.mts","./src/plugins/vuetify.ts","./node_modules/pinia/node_modules/vue-demi/lib/index.d.ts","./node_modules/pinia/dist/pinia.d.ts","./src/store/index.ts","./src/router/index.ts","./src/plugins/index.ts","./src/main.ts","./node_modules/vite/types/hmrpayload.d.ts","./node_modules/vite/types/customevent.d.ts","./node_modules/vite/types/hot.d.ts","./node_modules/vite/types/importglob.d.ts","./node_modules/vite/types/importmeta.d.ts","./node_modules/vite/client.d.ts","./src/vite-env.d.ts","./src/store/app.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/file.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/filereader.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/dom-events.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/globals.global.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/esbuild/lib/main.d.ts","./node_modules/vite/types/metadata.d.ts","./node_modules/rollup/dist/rollup.d.ts","./node_modules/postcss/lib/previous-map.d.ts","./node_modules/postcss/lib/input.d.ts","./node_modules/postcss/lib/css-syntax-error.d.ts","./node_modules/postcss/lib/declaration.d.ts","./node_modules/postcss/lib/root.d.ts","./node_modules/postcss/lib/warning.d.ts","./node_modules/postcss/lib/lazy-result.d.ts","./node_modules/postcss/lib/no-work-result.d.ts","./node_modules/postcss/lib/processor.d.ts","./node_modules/postcss/lib/result.d.ts","./node_modules/postcss/lib/document.d.ts","./node_modules/postcss/lib/rule.d.ts","./node_modules/postcss/lib/node.d.ts","./node_modules/postcss/lib/comment.d.ts","./node_modules/postcss/lib/container.d.ts","./node_modules/postcss/lib/at-rule.d.ts","./node_modules/postcss/lib/list.d.ts","./node_modules/postcss/lib/postcss.d.ts","./node_modules/vite/dist/node/index.d.ts","./node_modules/magic-string/dist/magic-string.cjs.d.ts","./node_modules/typescript/lib/typescript.d.ts","./node_modules/@vue/reactivity-transform/dist/reactivity-transform.d.ts","./node_modules/@vue/compiler-sfc/dist/compiler-sfc.d.ts","./node_modules/vue/compiler-sfc/index.d.ts","./node_modules/@vitejs/plugin-vue/dist/index.d.ts","./node_modules/@vuetify/loader-shared/dist/imports/generateimports.d.ts","./node_modules/@vuetify/loader-shared/dist/styles/writestyles.d.ts","./node_modules/@vuetify/loader-shared/dist/index.d.ts","./node_modules/vite-plugin-vuetify/dist/index.d.ts","./node_modules/unplugin-fonts/dist/types.d.ts","./node_modules/unplugin-fonts/dist/vite.d.ts","./vite.config.ts","./src/views/home.vue"],"fileInfos":[{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},"0","0",{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},"0","0","0",{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},"0","0","0","0",{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},"0",{"version":"0","affectsGlobalScope":true},"0","0",{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},"0","0","0",{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0","0","0","0",{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},"0","0","0","0",{"version":"0","affectsGlobalScope":true},{"version":"0","affectsGlobalScope":true},"0","0","0",{"version":"0","affectsGlobalScope":true},"0",{"version":"0","affectsGlobalScope":true},"0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0"],"root":[[77,82],84,89,[92,95],102,103,224],"options":{"allowSyntheticDefaultImports":true,"composite":true,"esModuleInterop":true,"jsx":1,"module":99,"sourceMap":false,"strict":true,"target":99,"useDefineForClassFields":true},"fileIdsList":[[72,74,76,83,85,88,91],[65],[104],[139],[140,145,173],[141,152,153,160,170,181],[141,142,152,160],[143,182],[144,145,153,161],[145,170,178],[146,148,152,160],[147],[148,149],[152],[150,152],[139,152],[152,153,154,170,181],[152,153,154,167,170,173],[137,186],[148,152,155,160,170,181],[152,153,155,156,160,170,178,181],[155,157,170,178,181],[104,105,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188],[152,158],[159,181,186],[148,152,160,170],[161],[162],[139,163],[164,180,186],[165],[166],[152,167,168],[167,169,182,184],[140,152,170,171,172,173],[140,170,172],[170,171],[173],[174],[139,170],[152,176,177],[176,177],[145,160,170,178],[179],[160,180],[140,155,166,181],[145,182],[170,183],[159,184],[185],[140,145,152,154,163,170,181,184,186],[170,187],[211,216],[65,66,67,68],[69],[65,66,67,69,210,212,213,214],[65,66,212],[68],[68,71,72,74],[71,72,73,85,88,91],[218,219],[72,85,88,90],[76,88],[207],[205,207],[196,204,205,206,208],[194],[197,202,207,210],[193,210],[197,198,201,202,203,210],[197,198,199,201,202,210],[194,195,196,197,198,202,203,204,206,207,208,210],[67,194,195,196,197,198,199,201,202,203,204,205,206,207,208,209],[67,210],[197,199,200,202,203,210],[201,210],[202,203,207,210],[195,205],[67],[114,118,181],[114,170,181],[109],[111,114,178,181],[160,178],[189],[109,189],[111,114,160,181],[106,107,110,113,140,152,170,181],[106,112],[110,114,140,173,181,189],[140,189],[130,140,189],[108,109,189],[114],[108,109,110,111,112,113,114,115,116,118,119,120,121,122,123,124,125,126,127,128,129,131,132,133,134,135,136],[114,121,122],[112,114,122,123],[113],[106,109,114],[114,118,122,123],[118],[112,114,117,181],[106,111,112,114,118,121],[140,170],[109,114,130,140,186,189],[211,222],[211,220],[100],[96,97,99,152,153,155,157,160,170,178,181,187,189,190,191,192,210],[96],[97],[98,99],[192],[72,76,88,91],[215],[70,74,75,88],[74,88],[76,85,88],[72,74,76,85,86,87,88,91],[76,79,80,88],[76,77,88,93,94],[76,88,89,92,93],[88,101],[81,82,85],[91],[76,78,88],[76,88,101],[181,211,217,221,223],[103],[76,91,104],[117],[111,112,113,114,115,116,117,118,119,121,122,123,124,125,126,127,128,129,130,131,132,134,135,136,137,138,139],[142],[143,148,176],[144,155,156,163,173,184],[144,145,155,163],[146,185],[147,148,156,164],[148,173,181],[149,151,155,163],[151,152],[150],[153,155],[155],[112],[188],[142,155],[155,156,157,173,184],[155,156,157,170,173,176],[143,148,155,157,166,173,184,187,189],[151,155,158,163,173,184],[155,156,158,159,163,173,181,184],[158,160,173,181,184],[155,161],[162,184,189],[151,155,163,173],[164],[142,166],[167,183,189],[168],[169],[155,170,171],[170,172,185,187],[143,155,173,174,175,176],[173,174],[143,173,175],[176],[177],[142,173],[155,179,180],[179,180],[148,163,173,181],[182],[163,183],[143,158,169,184],[148,185],[173,186],[162,187],[65,66,215],[99,100,102,155,156,158,160,163,173,181,184,190,192,193,194,195,213],[71,72,73,88,91,94],[65,66,67,69,213,215,216,217],[214,219],[218],[173,190],[72,74,76,88,89,90,91,94],[76,91],[197,198,199,200,201,205,206,207,209,210,211,213],[200,205,210,213],[210],[67,213],[200,201,202,204,205,213],[195],[208,210],[205,206,210,213],[204,213],[199,207,208,209,211],[198,208],[200,201,204,205,206,213],[196,213],[200,202,203,205,206,213],[197],[107,108,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191],[67,197,198,199,200,201,202,204,205,206,207,208,209,210,211,212],[115,117,120,184],[117,121,125,126],[121],[114,117,163,184],[113,117,143,176,184,192],[143,192],[133,143,192],[116],[112,192],[163,181],[111,112,192],[107],[117,173,184],[143,173],[114,117,181,184],[109,115],[94],[112,117,133,143,189,192],[117,121,184],[117,124,125],[109,112,117],[109,114,115,117,121,124],[109,110,113,116,143,155,173,184],[115,117,125,126],[221,222],[76,91,92,95,96],[88],[76,91,97,225],[99],[72,74,76,83,86,89,92],[70,74,75,91],[74,91],[72,74,76,83,87,90,93],[72,76,91,94],[72,74,76,83,88,91,94],[72,88,91,93],[76,88,91],[101,102],[91,104],[214,223]],"referencedMap":[[84,1],[66,2],[104,3],[105,3],[139,4],[140,5],[141,6],[142,7],[143,8],[144,9],[145,10],[146,11],[147,12],[148,13],[149,13],[151,14],[150,15],[152,16],[153,17],[154,18],[138,19],[155,20],[156,21],[157,22],[189,23],[158,24],[159,25],[160,26],[161,27],[162,28],[163,29],[164,30],[165,31],[166,32],[167,33],[168,33],[169,34],[170,35],[172,36],[171,37],[173,38],[174,39],[175,40],[176,41],[177,42],[178,43],[179,44],[180,45],[181,46],[182,47],[183,48],[184,49],[185,50],[186,51],[187,52],[217,53],[69,54],[70,55],[215,56],[214,57],[71,58],[72,59],[74,60],[220,61],[91,62],[90,63],[208,64],[206,65],[207,66],[195,67],[196,65],[203,68],[194,69],[199,70],[200,71],[205,72],[210,73],[193,74],[201,75],[202,76],[197,77],[204,64],[198,78],[67,79],[121,80],[128,81],[120,80],[135,82],[112,83],[111,84],[134,85],[129,86],[132,87],[114,88],[113,89],[109,90],[108,91],[131,92],[110,93],[115,94],[119,94],[137,95],[136,94],[123,96],[124,97],[126,98],[122,99],[125,100],[130,85],[117,101],[118,102],[127,103],[107,104],[133,105],[223,106],[221,107],[101,108],[211,109],[97,110],[98,111],[100,112],[191,113],[85,114],[216,115],[76,116],[83,117],[75,117],[86,118],[88,119],[87,63],[77,63],[78,63],[79,63],[81,120],[80,63],[95,121],[94,122],[89,123],[93,124],[103,125],[92,125],[82,126],[102,127],[224,128]],"exportedModulesMap":[[84,1],[66,2],[104,129],[105,130],[139,131],[140,132],[141,91],[142,133],[143,134],[144,135],[145,136],[146,137],[147,138],[148,139],[149,140],[151,141],[150,142],[152,141],[153,143],[154,144],[138,145],[188,146],[155,147],[156,148],[157,149],[189,150],[158,151],[159,152],[160,153],[161,154],[162,155],[163,156],[164,157],[165,31],[166,158],[167,159],[168,160],[169,161],[170,162],[172,163],[171,162],[173,164],[174,165],[175,166],[176,167],[177,168],[178,169],[179,170],[180,171],[181,172],[182,173],[183,174],[184,175],[185,176],[186,177],[187,178],[217,179],[69,54],[70,55],[214,180],[71,58],[72,59],[74,181],[218,182],[220,183],[219,184],[190,185],[91,186],[90,187],[208,188],[206,189],[207,190],[196,191],[203,192],[194,193],[199,194],[209,194],[200,195],[205,196],[210,197],[201,198],[202,199],[197,200],[204,201],[198,202],[192,203],[67,79],[213,204],[121,205],[128,206],[120,207],[135,208],[112,209],[111,210],[134,211],[129,212],[132,213],[114,214],[113,215],[108,216],[131,217],[110,218],[115,219],[116,220],[106,221],[137,113],[136,222],[123,223],[124,223],[126,224],[122,131],[125,225],[130,226],[117,227],[118,131],[127,228],[107,216],[133,113],[223,229],[101,108],[211,190],[97,230],[96,231],[98,232],[100,233],[85,234],[76,235],[83,236],[75,236],[86,237],[88,238],[87,239],[77,63],[78,63],[79,63],[81,120],[80,63],[95,221],[94,240],[89,241],[93,187],[103,242],[92,243],[82,126],[224,244]],"semanticDiagnosticsPerFile":[84,66,65,104,105,139,140,141,142,143,144,145,146,147,148,149,151,150,152,153,154,138,188,155,156,157,189,158,159,160,161,162,163,164,165,166,167,168,169,170,172,171,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,217,69,70,215,214,71,72,74,68,218,220,219,73,190,212,91,90,208,206,207,195,196,203,194,199,209,200,205,210,193,201,202,197,204,198,192,67,63,64,12,14,13,2,15,16,17,18,19,20,21,22,3,4,23,27,24,25,26,28,29,30,5,31,32,33,34,6,38,35,36,37,39,7,40,45,46,41,42,43,44,8,50,47,48,49,51,9,52,53,54,57,55,56,58,59,10,1,11,62,61,60,213,121,128,120,135,112,111,134,129,132,114,113,109,108,131,110,115,116,119,106,137,136,123,124,126,122,125,130,117,118,127,107,133,222,223,221,101,211,97,96,98,99,100,191,85,216,76,83,75,86,88,87,77,78,79,81,80,95,94,89,93,103,92,82,102,224],"affectedFilesPendingEmit":[77,78,79,81,80,95,94,89,93,103,92,82,224],"emitSignatures":[77,78,79,80,81,82,95]},"version":"5.3.3"} \ No newline at end of file