From 3b296853ba3128419fb88aaf1af95e3bb43d1134 Mon Sep 17 00:00:00 2001 From: octospacc Date: Sun, 26 Mar 2023 18:05:22 +0200 Subject: [PATCH] Upd. PicoBlog, Minesweeper; Add. 2048; Fix. CSS --- .../{Global.css => Global.css.SelfBuild.js} | 18 +- Assets/Assets/MinesweeperEmbed.js | 197 ++++++++ Assets/Assets/sitoctt.css.SelfBuild.js | 2 +- Assets/vuesweeper-core/LICENSE | 21 + Assets/vuesweeper-core/app.js | 429 ++++++++++++++++++ Assets/vuesweeper-core/index.html | 34 ++ Assets/vuesweeper-core/style.css | 1 + Assets/vuesweeper-core/vendor.js | 6 + Pages/PicoBlog.md | 9 + Pages/Raccolte/Gaming/2048.md | 50 ++ Pages/Raccolte/Gaming/Minesweeper.md | 24 +- Pages/Raccolte/Gaming/Nonogram.md | 2 +- Pages/Raccolte/Gaming/Raccolta-Videogiochi.md | 7 +- Scripts/Lib/SelfBuild.js | 2 + Site.ini | 1 + 15 files changed, 797 insertions(+), 6 deletions(-) rename Assets/Assets/{Global.css => Global.css.SelfBuild.js} (65%) create mode 100644 Assets/Assets/MinesweeperEmbed.js create mode 100644 Assets/vuesweeper-core/LICENSE create mode 100644 Assets/vuesweeper-core/app.js create mode 100644 Assets/vuesweeper-core/index.html create mode 100644 Assets/vuesweeper-core/style.css create mode 100644 Assets/vuesweeper-core/vendor.js create mode 100644 Pages/Raccolte/Gaming/2048.md diff --git a/Assets/Assets/Global.css b/Assets/Assets/Global.css.SelfBuild.js similarity index 65% rename from Assets/Assets/Global.css rename to Assets/Assets/Global.css.SelfBuild.js index 3b0f120..c6f5a79 100644 --- a/Assets/Assets/Global.css +++ b/Assets/Assets/Global.css.SelfBuild.js @@ -1,3 +1,7 @@ +#!/usr/bin/env node +require('../../Scripts/Lib/SelfBuild.js').importAll(); + +Fs.writeFileSync(__filename.split('.SelfBuild.js')[0], ` /* Global styles applied to all pages with any base template. * * Note to future self: @@ -10,7 +14,7 @@ .Inline { Display: Inline; } .InlineBlock { Display: Inline-Block; } .NoCol { Color: Transparent !Important; } -.NoDisplay, .DispNone { Display: None; } +.NoDisp, .NoDisplay, .DispNone { Display: None; } .DispBlock { Display: Block; } .NoWrap { White-Space: NoWrap; } @@ -29,10 +33,19 @@ } /* Set Headings as Inline when inside Details Summaries and List Items */ -:Where(Summary, Li) > :Where(H1, H2, H3, H4, H5, H6) { +/*:Where(Summary, Li) > :Where(H1, H2, H3, H4, H5, H6) {*/ +${Where('summary >', CssAllHeadings, '')}, +${Where('li >', CssAllHeadings, '')} { Display: Inline; } +/* Python-Markdown can put a

for list text items, forming spacing between it and sublists. + Wrapping a list in a div with this class when this effect is unwanted. + */ +.ListNoInMargin > * > li > p { margin-bottom: 0; } +/* Strange
s are sometimes formed */ +/*.ListNoInMargin > * > li > p > br:last-of-type { display: none; }*/ + /* Animazioni per le desinenze */ .BlinkA { Animation: BlinkerA 0.25s Step-Start Infinite; @@ -50,3 +63,4 @@ 50% {Position: Absolute; Visibility: Hidden;} 100% {Position: Static; Visibility: Visible;} } +`); diff --git a/Assets/Assets/MinesweeperEmbed.js b/Assets/Assets/MinesweeperEmbed.js new file mode 100644 index 0000000..334b616 --- /dev/null +++ b/Assets/Assets/MinesweeperEmbed.js @@ -0,0 +1,197 @@ +// Multipurpose embeddable Minesweeper game on top of vuesweeper + +// How many pixels one square takes up +var MineSquareSize = 32; + +var Notices = { + NoticeLocked: "Ops! Questo contenuto è bloccato. Completa una partita a Minesweeper per accedervi. 🙃️", + AlertLockedWon: "Hai vinto! Goditi il contenuto sbloccato. 💖️", + AlertLockedLost: "Ops! Hai perso! Ritenta. 🙃️", + AlertLockedEgg: "Hai scoperto l'easter egg e hai saltato la partita. Mah. 🙄️", + AlertLockedResize: "Non si imbroglia ridimensionando la finestra!!! Il gioco verrà resettato. Non riceverai ulteriori avvisi. 😈️", +}; + +var ResizeAlerted = false; + +// Add styles to current page +var New = document.createElement('style'); +New.innerHTML = ` +/* Don't know what's up with the percentages */ +.Minesweeper { + width: calc(100% - 5% - 1.25%); + z-index: 4; +} +.Minesweeper > iframe { + max-height: none !important; + border: none; +} +.Minesweeper.Locker { + position: absolute; +} +`; +document.body.appendChild(New); + +// Setup all Minesweeper boards on the page +document.querySelectorAll('.Minesweeper').forEach(function(Container){ + // Prevent excessive flickering when page is still loading + Container.style.display = 'none'; + + var Frame = document.createElement('iframe'); + Frame.src = '/vuesweeper-core/'; + Container.appendChild(Frame); + var GameWindow = Frame.contentWindow; + var Game, GameState; + var DoContentUnlock; + + function GetGameSecs(Game) { + var Vals = Game.state._value; + var Ms = `${Vals.endMS - Vals.startMS}`; + var Time = Math.round(`${Ms.slice(0, -3)}.${Ms.slice(-3)}`); + return Time; + }; + + window.onload = function(){ + Container.style.display = ''; + Game = GameWindow.vuesweeper; + var [Width, Height, Bombs] = [15, 15, 36]; + + function SetupLockGame() { + // Reset styles and remove locker elements + DoContentUnlock = function DoContentUnlock() { + LockedEl.style['margin-top'] = ''; + LockedEl.style['margin-bottom'] = ''; + NoticeEl.remove(); + Container.remove(); + }; + + // Element of content to lock must be an immediately succeding sibiling of the game container + var LockedEl = Container.nextElementSibling; + LockedEl.style.visibility = ''; + + // Add notice to the user saying to win a game to see the content underneath + // TODO: Maybe put it instead of the iframe, with a button, and when the user clicks that the iframe is set up? + var NoticeEl = document.createElement('p'); + NoticeEl.innerHTML = Notices.NoticeLocked; + Container.before(NoticeEl); + + var NoticeClicked = 0; + NoticeEl.onclick = function(){ + NoticeClicked += 1; + if (NoticeClicked >= (Game.mines / 2)) { + alert(Notices.AlertLockedEgg); + DoContentUnlock(); + }; + }; + + // Set game window to size of content, adding needed paddings to window and content + var FromStyle = getComputedStyle(LockedEl); + var Margin = MineSquareSize * 2; + // LR padding to prevent content spilling + LockedEl.style['padding-left'] = `${~~FromStyle['padding-left'].split('px')[0] + 16}px`; + LockedEl.style['padding-right'] = `${~~FromStyle['padding-right'].split('px')[0] + 16}px`; + // Ensure game is tall enough and doesn't cover more than needed content + Frame.style.height = `${~~FromStyle.height.split('px')[0] + (MineSquareSize * 3.5)}px`; + LockedEl.style['margin-top'] = `${Margin}px`; + LockedEl.style['margin-bottom'] = `${Margin}px`; + + // Set important color/transparency styles + var UnlockStyle = GameWindow.document.getElementById('GameStyle-Locker'); + if (!UnlockStyle) { + UnlockStyle = document.createElement('style'); + UnlockStyle.id = 'GameStyle-Locker'; + UnlockStyle.innerHTML = ` + html, body { + overflow: hidden; + } + button.bg-gray-500\\/10 { + background: #d0d0d0; + outline: 2px solid #e0e0e0; + } + button.bg-gray-500\\/10:hover { + background: rgba(192, 192, 192, 0.80); + } + button.bg-red-500\\/50 { + background-color: #e07070; + outline: 2px solid #e0e0e0; + } + button.text-transparent { + background: rgba(192, 192, 192, 0.75); + outline: 2px solid rgba(192, 192, 192, 0.75); + } + button.text-blue-500, + button.text-green-500, + button.text-yellow-500, + button.text-orange-500, + button.text-red-500, + button.text-purple-500, + button.text-pink-500, + button.text-teal-500 { + background: #e0e0e0; + outline: 2px solid #e0e0e0; + } + `; + GameWindow.document.body.appendChild(UnlockStyle); + }; + + // Set board size according to content size on screen + [Width, Height] = [ + ~~(FromStyle.width.split('px')[0] / MineSquareSize) - 1, + ~~(FromStyle.height.split('px')[0] / MineSquareSize), + ]; + Bombs = ~~(2 * Math.sqrt(Width * Height)); + + // No cheating! (And no breaking my fragile CSS :c) + window.onresize = function(){ + if (!ResizeAlerted) { + setTimeout(function(){ + LockedEl.style.visibility = 'hidden'; + alert(Notices.AlertLockedResize); + }, 150); + ResizeAlerted = true; + }; + LockedEl.style['padding-left'] = ''; + LockedEl.style['padding-right'] = ''; + NoticeEl.remove(); + SetupLockGame(); + }; + + Game.reset(Width, Height, Bombs); + }; + + // Game board used to unlock page content on game win + if (Container.classList.contains('Locker')) { + SetupLockGame(); + } + // Normal game board + else { + // TODO: + // Add buttons to select board size and control game execution + // Proper CSS with scrollbars always visible on screen when needed due to board overflow + }; + + Game.reset(Width, Height, Bombs); + }; + + // When user clicks the board, it's a good time for checking win/loss + GameWindow.onclick = function(){ + var OldState = GameState; + var CurState = Game.state._value.status; + if (OldState != CurState) { + // On win, remove the board from the page + if (CurState == 'won') { + setTimeout(function(){ + alert(Notices.AlertLockedWon + ` (${Game.width}x${Game.height}, ${Game.mines} mine, in ${GetGameSecs(Game)}s)`); + DoContentUnlock(); + }, 1000); + } else + // On lose, reset the board + if (CurState == 'lost') { + setTimeout(function(){ + alert(Notices.AlertLockedLost); + Game.reset(); + }, 300); + }; + GameState = CurState; + }; + }; +}); diff --git a/Assets/Assets/sitoctt.css.SelfBuild.js b/Assets/Assets/sitoctt.css.SelfBuild.js index 1b46d52..f2fee24 100644 --- a/Assets/Assets/sitoctt.css.SelfBuild.js +++ b/Assets/Assets/sitoctt.css.SelfBuild.js @@ -76,7 +76,7 @@ Details Div { } .BorderBox, ${Where('.BorderBoxContainer >', ' Div, Details', ':Not(.NoBorderBox)')} -Details Div Details:Not(.NoBorderBox) { +/*Details Div Details:Not(.NoBorderBox)*/ { Border: 2px Solid Purple; Margin: 8px; Padding: 4px; diff --git a/Assets/vuesweeper-core/LICENSE b/Assets/vuesweeper-core/LICENSE new file mode 100644 index 0000000..670b1b3 --- /dev/null +++ b/Assets/vuesweeper-core/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020-PRESENT Anthony Fu + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Assets/vuesweeper-core/app.js b/Assets/vuesweeper-core/app.js new file mode 100644 index 0000000..cbc3e2c --- /dev/null +++ b/Assets/vuesweeper-core/app.js @@ -0,0 +1,429 @@ +// This file was manually hacked directly from the compiled version downloaded from . + +// Change AppDeployPath from "/vuesweeper-core/" to wherever you put this folder on the server. +// Unfortunately Vue won't work with relative paths, only absolute, and won't work served from file:///. +var AppDeployPath = "/vuesweeper-core/"; + +var C = Object.getOwnPropertySymbols; +var $ = (i, e, t) => e in i ? Object.defineProperty(i, e, { + enumerable: !0, + configurable: !0, + writable: !0, + value: t + }) : i[e] = t, + g = (i, e) => { + for (var t in e || (e = {})) Object.prototype.hasOwnProperty.call(e, t) && $(i, t, e[t]); + if (C) + for (var t of C(e)) Object.prototype.propertyIsEnumerable.call(e, t) && $(i, t, e[t]); + return i + }, + p = (i, e) => Object.defineProperties(i, Object.getOwnPropertyDescriptors(e)); + +import { d as v, w as Z, o, c as u, a as _, u as q, b as E, r as S, e as f, F as x, t as b, f as H, n as P, g as z, h as y, i as K, j as W, k as d, l as w, m as G, p as k, q as J, s as Q, v as U, x as X, y as Y, z as ee } from "./vendor.js"; + +const te = function() { + const e = document.createElement("link").relList; + if (e && e.supports && e.supports("modulepreload")) return; + for (const n of document.querySelectorAll('link[rel="modulepreload"]')) r(n); + new MutationObserver(n => { + for (const s of n) + if (s.type === "childList") + for (const a of s.addedNodes) a.tagName === "LINK" && a.rel === "modulepreload" && r(a) + }).observe(document, { + childList: !0, + subtree: !0 + }); + + function t(n) { + const s = {}; + return n.integrity && (s.integrity = n.integrity), n.referrerpolicy && (s.referrerPolicy = n.referrerpolicy), n.crossorigin === "use-credentials" ? s.credentials = "include" : n.crossorigin === "anonymous" ? s.credentials = "omit" : s.credentials = "same-origin", s + } + + function r(n) { + if (n.ep) return; + n.ep = !0; + const s = t(n); + fetch(n.href, s) + } +}; +te(); +const ne = v({ + props: { + passed: { + type: Boolean + } + }, + setup(i) { + const e = i; + + function t() { + const r = { + colors: ["#5D8C7B", "#F2D091", "#F2A679", "#D9695F", "#8C4646"], + shapes: ["square"], + ticks: 500 + }; + _(p(g({}, r), { + particleCount: 80, + spread: 100, + origin: { + y: 0 + } + })), setTimeout(() => { + _(p(g({}, r), { + particleCount: 50, + angle: 60, + spread: 80, + origin: { + x: 0 + } + })) + }, 250), setTimeout(() => { + _(p(g({}, r), { + particleCount: 50, + angle: 120, + spread: 80, + origin: { + x: 1 + } + })) + }, 400) + } + return Z(() => e.passed, r => { + r && setTimeout(t, 300) + }, { + flush: "post" + }), (r, n) => (o(), u("div")) + } + }), + j = q(), + se = E(j), + N = S(!1); +E(N); +const re = { + key: 0, + "i-mdi-flag": "", + "text-red": "" + }, + ae = { + key: 0, + "i-mdi-mine": "" + }, + ie = { + key: 1, + "font-600": "" + }, + oe = v({ + props: { + block: null + }, + emits: ["lrclick"], + setup(i, { + emit: e + }) { + function t(s) { + s.buttons === 3 && e("lrclick", s) + } + const r = ["text-transparent", "text-blue-500", "text-green-500", "text-yellow-500", "text-orange-500", "text-red-500", "text-purple-500", "text-pink-500", "text-teal-500"]; + + function n(s) { + return s.flagged ? "bg-gray-500/10" : s.revealed ? s.mine ? "bg-red-500/50" : r[s.adjacentMines] : "bg-gray-500/10 hover:bg-gray-500/20" + } + return (s, a) => (o(), u("button", { + flex: "~", + "items-center": "", + "justify-center": "", + "min-w-8": "", + "min-h-8": "", + m: "1px", + border: "0.5 gray-400/10", + class: P(n(i.block)), + onMousedown: t + }, [i.block.flagged ? (o(), u("div", re)) : i.block.revealed || f(N) ? (o(), u(x, { + key: 1 + }, [i.block.mine ? (o(), u("div", ae)) : (o(), u("div", ie, b(i.block.adjacentMines), 1))], 64)) : H("", !0)], 34)) + } + }), + le = [ + [1, 1], + [1, 0], + [1, -1], + [0, -1], + [-1, -1], + [-1, 0], + [-1, 1], + [0, 1] + ]; +class ue { + constructor(e, t, r) { + this.width = e, this.height = t, this.mines = r, this.state = S(), this.reset() + } + get board() { + return this.state.value.board + } + get blocks() { + return this.state.value.board.flat() + } + reset(e = this.width, t = this.height, r = this.mines) { + this.width = e, this.height = t, this.mines = r, this.state.value = { + mineGenerated: !1, + status: "ready", + board: Array.from({ + length: this.height + }, (n, s) => Array.from({ + length: this.width + }, (a, l) => ({ + x: l, + y: s, + adjacentMines: 0, + revealed: !1 + }))) + } + } + randomRange(e, t) { + return Math.random() * (t - e) + e + } + randomInt(e, t) { + return Math.round(this.randomRange(e, t)) + } + generateMines(e, t) { + const r = () => { + const n = this.randomInt(0, this.width - 1), + s = this.randomInt(0, this.height - 1), + a = e[s][n]; + return Math.abs(t.x - a.x) <= 1 && Math.abs(t.y - a.y) <= 1 || a.mine ? !1 : (a.mine = !0, !0) + }; + Array.from({ + length: this.mines + }, () => null).forEach(() => { + let n = !1; + for (; !n;) n = r() + }), this.updateNumbers() + } + updateNumbers() { + this.board.forEach(e => { + e.forEach(t => { + t.mine || this.getSiblings(t).forEach(r => { + r.mine && (t.adjacentMines += 1) + }) + }) + }) + } + expendZero(e) { + e.adjacentMines || this.getSiblings(e).forEach(t => { + t.revealed || (t.flagged || (t.revealed = !0), this.expendZero(t)) + }) + } + onRightClick(e) { + this.state.value.status === "play" && (e.revealed || (e.flagged = !e.flagged)) + } + onClick(e) { + if (this.state.value.status === "ready" && (this.state.value.status = "play", this.state.value.startMS = +new Date), !(this.state.value.status !== "play" || e.flagged)) { + if (this.state.value.mineGenerated || (this.generateMines(this.board, e), this.state.value.mineGenerated = !0), e.revealed = !0, e.mine) { + this.onGameOver("lost"); + return + } + this.expendZero(e) + } + } + getSiblings(e) { + return le.map(([t, r]) => { + const n = e.x + t, + s = e.y + r; + if (!(n < 0 || n >= this.width || s < 0 || s >= this.height)) return this.board[s][n] + }).filter(Boolean) + } + showAllMines() { + this.board.flat().forEach(e => { + e.mine && (e.revealed = !0) + }) + } + checkGameState() { + if (!this.state.value.mineGenerated || this.state.value.status !== "play") return; + this.board.flat().some(t => !t.mine && !t.revealed) || this.onGameOver("won") + } + autoExpand(e) { + if (this.state.value.status !== "play" || e.flagged) return; + const t = this.getSiblings(e), + r = t.reduce((a, l) => a + (l.flagged ? 1 : 0), 0), + n = t.reduce((a, l) => a + (!l.revealed && !l.flagged ? 1 : 0), 0); + r === e.adjacentMines && t.forEach(a => { + a.revealed || a.flagged || (a.revealed = !0, this.expendZero(a), a.mine && this.onGameOver("lost")) + }); + const s = e.adjacentMines - r; + n === s && t.forEach(a => { + !a.revealed && !a.flagged && (a.flagged = !0) + }) + } + onGameOver(e) { + this.state.value.status = e, this.state.value.endMS = +Date.now(), e === "lost" && (this.showAllMines(), setTimeout(() => { + //alert("lost") + }, 10)) + } +} +const ce = w(), + de = { + flex: "~ gap1", + "justify-center": "", + p4: "" + }, + fe = { + flex: "~ gap-10", + "justify-center": "" + }, + he = { + "font-mono": "", + "text-2xl": "", + flex: "~ gap-1", + "items-center": "" + }, + me = d("div", { + "i-carbon-timer": "" + }, null, -1), + ge = { + "font-mono": "", + "text-2xl": "", + flex: "~ gap-1", + "items-center": "" + }, + pe = d("div", { + "i-mdi-mine": "" + }, null, -1), + ve = { + p5: "", + "w-full": "", + "overflow-auto": "" + }, + GameMain = v({ + setup(i) { + const e = new ue(9, 9, 10), + t = z(), + r = y(() => { + var l, c; + return Math.round((((l = e.state.value.endMS) != null ? l : +t.value) - ((c = e.state.value.startMS) != null ? c : +t.value)) / 1e3) + }); + + // Export game object + window.vuesweeper = e; + + // Actualy don't use localStorage, as saving the game state glitches after a while + //K("vuesweeper-state", e.state); + + const n = y(() => e.board), + s = y(() => e.state.value.mineGenerated ? e.blocks.reduce((l, c) => l - (c.flagged ? 1 : 0), e.mines) : e.mines); + + function a(l) { + switch (l) { + case "easy": + e.reset(9, 9, 10); + break; + case "medium": + e.reset(16, 16, 40); + break; + case "hard": + e.reset(16, 30, 99); + break; + } + } + return W(() => { + e.checkGameState() + }), (l, c) => { + const D = oe, + A = ne; + return o(), u("div", null, [ce, /*d("div", de, [ + d("button", { + btn: "", + onClick: c[0] || (c[0] = h => f(e).reset()) + }, " New Game "), + d("button", { + btn: "", + onClick: c[1] || (c[1] = h => a("easy")) + }, " Easy "), + d("button", { + btn: "", + onClick: c[2] || (c[2] = h => a("medium")) + }, " Medium "), + d("button", { + btn: "", + onClick: c[3] || (c[3] = h => a("hard")) + }, " Hard "), + ]),*/ d("div", fe, [d("div", he, [me, w(" " + b(r.value), 1)]), d("div", ge, [pe, w(" " + b(s.value), 1)])]), d("div", ve, [(o(!0), u(x, null, G(n.value, (h, O) => (o(), u("div", { + key: O, + flex: "~", + "items-center": "", + "justify-center": "", + "w-max": "", + ma: "" + }, [(o(!0), u(x, null, G(h, (m, F) => (o(), J(D, { + key: F, + block: m, + onClick: M => f(e).onClick(m), + onLrclick: M => f(e).autoExpand(m), + onContextmenu: Q(M => f(e).onRightClick(m), ["prevent"]) + }, null, 8, ["block", "onClick", "onLrclick", "onContextmenu"]))), 128))]))), 128))]), k(A, { + passed: f(e).state.value.status === "won" + }, null, 8, ["passed"])]) + } + } + }), + VueRoutes = [{ + name: "index", + path: "/", + component: GameMain, + props: !0 + }, { + name: AppDeployPath, + path: AppDeployPath, + component: GameMain, + props: !0 + }], + xe = { + "text-xl": "", + "mt-6": "", + "inline-flex": "", + "gap-2": "" + }//, + /* + be = { + key: 0, + "i-carbon-moon": "" + }, + we = { + key: 1, + "i-carbon-sun": "" + }, + */ + //Me = v({ + // setup(i) { + // return (e, t) => (o(), u("nav", xe, [d("button", { + // class: "icon-btn !outline-none", + // onClick: t[0] || (t[0] = r => f(se)()) + // }, /*[f(j) ? (o(), u("div", be)) : (o(), u("div", we))]*/)])) + // } + //}); +var Ce = (i, e) => { + const t = i.__vccOpts || i; + for (const [r, n] of e) t[r] = n; + return t +}; +const $e = {}, + Ge = { + "font-sans": "", + p: "y-10", + text: "center gray-700 dark:gray-200" + }; + +function Ee(i, e) { + const t = U("router-view"); + //const r = Me; + return o(), u("main", Ge, [k(t), /*k(r)*/]) +} +var Se = Ce($e, [ + ["render", Ee] +]); +const AppRuntime = X(Se); +const RouteRuntime = Y({ + history: ee(), + routes: VueRoutes +}); +AppRuntime.use(RouteRuntime); +AppRuntime.mount("#app"); diff --git a/Assets/vuesweeper-core/index.html b/Assets/vuesweeper-core/index.html new file mode 100644 index 0000000..540ab18 --- /dev/null +++ b/Assets/vuesweeper-core/index.html @@ -0,0 +1,34 @@ + + + + + + + + + + + + + +

+ + \ No newline at end of file diff --git a/Assets/vuesweeper-core/style.css b/Assets/vuesweeper-core/style.css new file mode 100644 index 0000000..4d4110d --- /dev/null +++ b/Assets/vuesweeper-core/style.css @@ -0,0 +1 @@ +*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}.dark{color-schema:dark}html,body,#app{height:100%;margin:0;padding:0}html.dark{background:#121212}.i-carbon-logo-github,[i-carbon-logo-github=""]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1.2em' height='1.2em' preserveAspectRatio='xMidYMid meet' viewBox='0 0 32 32'%3E%3Cpath fill='currentColor' fill-rule='evenodd' d='M16 2a14 14 0 0 0-4.43 27.28c.7.13 1-.3 1-.67v-2.38c-3.89.84-4.71-1.88-4.71-1.88a3.71 3.71 0 0 0-1.62-2.05c-1.27-.86.1-.85.1-.85a2.94 2.94 0 0 1 2.14 1.45a3 3 0 0 0 4.08 1.16a2.93 2.93 0 0 1 .88-1.87c-3.1-.36-6.37-1.56-6.37-6.92a5.4 5.4 0 0 1 1.44-3.76a5 5 0 0 1 .14-3.7s1.17-.38 3.85 1.43a13.3 13.3 0 0 1 7 0c2.67-1.81 3.84-1.43 3.84-1.43a5 5 0 0 1 .14 3.7a5.4 5.4 0 0 1 1.44 3.76c0 5.38-3.27 6.56-6.39 6.91a3.33 3.33 0 0 1 .95 2.59v3.84c0 .46.25.81 1 .67A14 14 0 0 0 16 2Z'/%3E%3C/svg%3E");mask:var(--un-icon) no-repeat;mask-size:100% 100%;-webkit-mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;background-color:currentColor;height:1.2em;width:1.2em;}.i-carbon-moon,[i-carbon-moon=""]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1.2em' height='1.2em' preserveAspectRatio='xMidYMid meet' viewBox='0 0 32 32'%3E%3Cpath fill='currentColor' d='M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3Z'/%3E%3C/svg%3E");mask:var(--un-icon) no-repeat;mask-size:100% 100%;-webkit-mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;background-color:currentColor;height:1.2em;width:1.2em;}.i-carbon-sun,[i-carbon-sun=""]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1.2em' height='1.2em' preserveAspectRatio='xMidYMid meet' viewBox='0 0 32 32'%3E%3Cpath fill='currentColor' d='M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6ZM5.394 6.813L6.81 5.399l3.505 3.506L8.9 10.319zM2 15.005h5v2H2zm3.394 10.193L8.9 21.692l1.414 1.414l-3.505 3.506zM15 25.005h2v5h-2zm6.687-1.9l1.414-1.414l3.506 3.506l-1.414 1.414zm3.313-8.1h5v2h-5zm-3.313-6.101l3.506-3.506l1.414 1.414l-3.506 3.506zM15 2.005h2v5h-2z'/%3E%3C/svg%3E");mask:var(--un-icon) no-repeat;mask-size:100% 100%;-webkit-mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;background-color:currentColor;height:1.2em;width:1.2em;}.i-carbon-timer,[i-carbon-timer=""]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1.2em' height='1.2em' preserveAspectRatio='xMidYMid meet' viewBox='0 0 32 32'%3E%3Cpath fill='currentColor' d='M15 11h2v9h-2zm-2-9h6v2h-6z'/%3E%3Cpath fill='currentColor' d='m28 9l-1.42-1.41l-2.25 2.25a10.94 10.94 0 1 0 1.18 1.65ZM16 26a9 9 0 1 1 9-9a9 9 0 0 1-9 9Z'/%3E%3C/svg%3E");mask:var(--un-icon) no-repeat;mask-size:100% 100%;-webkit-mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;background-color:currentColor;height:1.2em;width:1.2em;}.i-mdi-flag,[i-mdi-flag=""]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1.2em' height='1.2em' preserveAspectRatio='xMidYMid meet' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6h-5.6Z'/%3E%3C/svg%3E");mask:var(--un-icon) no-repeat;mask-size:100% 100%;-webkit-mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;background-color:currentColor;height:1.2em;width:1.2em;}.i-mdi-mine,[i-mdi-mine=""]{--un-icon:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1.2em' height='1.2em' preserveAspectRatio='xMidYMid meet' viewBox='0 0 24 24'%3E%3Cpath fill='currentColor' d='M23 13v-2h-3.07a7.988 7.988 0 0 0-1.62-3.9l2.19-2.17l-1.43-1.43l-2.17 2.19A7.988 7.988 0 0 0 13 4.07V1h-2v3.07c-1.42.18-2.77.74-3.9 1.62L4.93 3.5L3.5 4.93L5.69 7.1A7.988 7.988 0 0 0 4.07 11H1v2h3.07c.18 1.42.74 2.77 1.62 3.9L3.5 19.07l1.43 1.43l2.17-2.19c1.13.88 2.48 1.44 3.9 1.62V23h2v-3.07c1.42-.18 2.77-.74 3.9-1.62l2.17 2.19l1.43-1.43l-2.19-2.17a7.988 7.988 0 0 0 1.62-3.9H23M12 8a4 4 0 0 0-4 4H6a6 6 0 0 1 6-6v2Z'/%3E%3C/svg%3E");mask:var(--un-icon) no-repeat;mask-size:100% 100%;-webkit-mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;background-color:currentColor;height:1.2em;width:1.2em;}.btn,[btn=""]{display:inline-block;cursor:pointer;border-radius:0.25rem;--un-bg-opacity:1;background-color:rgba(13,148,136,var(--un-bg-opacity));padding-left:1rem;padding-right:1rem;padding-top:0.25rem;padding-bottom:0.25rem;--un-text-opacity:1;color:rgba(255,255,255,var(--un-text-opacity));}.icon-btn{display:inline-block;cursor:pointer;user-select:none;color:0.9em;opacity:0.75;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;transition-duration:200ms;}.btn:disabled,[btn=""]:disabled{cursor:default;--un-bg-opacity:1;background-color:rgba(75,85,99,var(--un-bg-opacity));opacity:0.5;}.btn:hover,[btn=""]:hover{--un-bg-opacity:1;background-color:rgba(15,118,110,var(--un-bg-opacity));}.icon-btn:hover{--un-text-opacity:1;color:rgba(13,148,136,var(--un-text-opacity));opacity:1;}.ma,[ma=""]{margin:auto;}[m~="\31 px"]{margin:1px;}.mt-6,[mt-6=""]{margin-top:1.5rem;}.block{display:block;}.min-h-8,[min-h-8=""]{min-height:2rem;}.min-w-8,[min-w-8=""]{min-width:2rem;}.w-full,[w-full=""]{width:100%;}.w-max,[w-max=""]{width:max-content;}.flex,[flex~="\~"]{display:flex;}.inline-flex,[inline-flex=""]{display:inline-flex;}.items-center,[items-center=""]{align-items:center;}.justify-center,[justify-center=""]{justify-content:center;}.gap-1,.gap1,[flex~="gap-1"],[flex~="gap1"]{grid-gap:0.25rem;gap:0.25rem;}.gap-10,[flex~="gap-10"]{grid-gap:2.5rem;gap:2.5rem;}.gap-2,[gap-2=""]{grid-gap:0.5rem;gap:0.5rem;}.overflow-auto,[overflow-auto=""]{overflow:auto;}.border{border-width:1px;border-style:solid;}[border~="\30 \.5"]{border-width:0.5px;border-style:solid;}[border~="gray-400\/10"]{border-color:rgba(156,163,175,0.1);}.bg-gray-500\/10{background-color:rgba(107,114,128,0.1);}.bg-red-500\/50{background-color:rgba(239,68,68,0.5);}.dark .dark\:bg-hex-121212{--un-bg-opacity:1;background-color:rgba(18,18,18,var(--un-bg-opacity));}.hover\:bg-gray-500\/20:hover{background-color:rgba(107,114,128,0.2);}.p4,[p4=""]{padding:1rem;}.p5,[p5=""]{padding:1.25rem;}[p~="y-10"]{padding-top:2.5rem;padding-bottom:2.5rem;}[text~="center"]{text-align:center;}.font-mono,[font-mono=""]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;}.font-sans,[font-sans=""]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";}.text-2xl,[text-2xl=""]{font-size:1.5rem;line-height:2rem;}.text-xl,[text-xl=""]{font-size:1.25rem;line-height:1.75rem;}.font-600,[font-600=""]{font-weight:600;}.dark .dark\:text-white{--un-text-opacity:1;color:rgba(255,255,255,var(--un-text-opacity));}.dark [text~="dark\:gray-200"]{--un-text-opacity:1;color:rgba(229,231,235,var(--un-text-opacity));}.text-blue-500{--un-text-opacity:1;color:rgba(59,130,246,var(--un-text-opacity));}.text-green-500{--un-text-opacity:1;color:rgba(34,197,94,var(--un-text-opacity));}.text-orange-500{--un-text-opacity:1;color:rgba(249,115,22,var(--un-text-opacity));}.text-pink-500{--un-text-opacity:1;color:rgba(236,72,153,var(--un-text-opacity));}.text-purple-500{--un-text-opacity:1;color:rgba(168,85,247,var(--un-text-opacity));}.text-red,[text-red=""]{--un-text-opacity:1;color:rgba(248,113,113,var(--un-text-opacity));}.text-red-500{--un-text-opacity:1;color:rgba(239,68,68,var(--un-text-opacity));}.text-teal-500{--un-text-opacity:1;color:rgba(20,184,166,var(--un-text-opacity));}.text-transparent{color:transparent;}.text-yellow-500{--un-text-opacity:1;color:rgba(234,179,8,var(--un-text-opacity));}[text~="gray-700"]{--un-text-opacity:1;color:rgba(55,65,81,var(--un-text-opacity));}.\!outline-none{outline:2px solid transparent !important;outline-offset:2px !important;}[content~="initial-scale\=1\.0"]{content:"initial-scale=1.0";}[content~="Opinionated"]{content:"Opinionated";}[content~="Starter"]{content:"Starter";}[content~="Template"]{content:"Template";}[content~="Vite"]{content:"Vite";}[content~="width\=device-width\2c "]{content:"width=device-width,";} diff --git a/Assets/vuesweeper-core/vendor.js b/Assets/vuesweeper-core/vendor.js new file mode 100644 index 0000000..5d585d4 --- /dev/null +++ b/Assets/vuesweeper-core/vendor.js @@ -0,0 +1,6 @@ +function tr(e,t){const n=Object.create(null),r=e.split(",");for(let s=0;s!!n[s.toLowerCase()]:s=>!!n[s]}const Vo="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",Yo=tr(Vo);function As(e){return!!e||e===""}function nr(e){if(z(e)){const t={};for(let n=0;n{if(n){const r=n.split(Qo);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function rr(e){let t="";if(_e(e))t=e;else if(z(e))for(let n=0;n_e(e)?e:e==null?"":z(e)||ve(e)&&(e.toString===Ts||!V(e.toString))?JSON.stringify(e,Os,2):String(e),Os=(e,t)=>t&&t.__v_isRef?Os(e,t.value):Et(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s])=>(n[`${r} =>`]=s,n),{})}:Ms(t)?{[`Set(${t.size})`]:[...t.values()]}:ve(t)&&!z(t)&&!Is(t)?String(t):t,le={},wt=[],ke=()=>{},Zo=()=>!1,Go=/^on[^a-z]/,hn=e=>Go.test(e),sr=e=>e.startsWith("onUpdate:"),Ee=Object.assign,or=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},ei=Object.prototype.hasOwnProperty,ee=(e,t)=>ei.call(e,t),z=Array.isArray,Et=e=>pn(e)==="[object Map]",Ms=e=>pn(e)==="[object Set]",V=e=>typeof e=="function",_e=e=>typeof e=="string",ir=e=>typeof e=="symbol",ve=e=>e!==null&&typeof e=="object",Ss=e=>ve(e)&&V(e.then)&&V(e.catch),Ts=Object.prototype.toString,pn=e=>Ts.call(e),ti=e=>pn(e).slice(8,-1),Is=e=>pn(e)==="[object Object]",lr=e=>_e(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,en=tr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),gn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},ni=/-(\w)/g,Ue=gn(e=>e.replace(ni,(t,n)=>n?n.toUpperCase():"")),ri=/\B([A-Z])/g,Ot=gn(e=>e.replace(ri,"-$1").toLowerCase()),mn=gn(e=>e.charAt(0).toUpperCase()+e.slice(1)),Cn=gn(e=>e?`on${mn(e)}`:""),Dt=(e,t)=>!Object.is(e,t),xn=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},si=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Tr;const oi=()=>Tr||(Tr=typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof global!="undefined"?global:{});let Te;class ii{constructor(t=!1){this.active=!0,this.effects=[],this.cleanups=[],!t&&Te&&(this.parent=Te,this.index=(Te.scopes||(Te.scopes=[])).push(this)-1)}run(t){if(this.active)try{return Te=this,t()}finally{Te=this.parent}}on(){Te=this}off(){Te=this.parent}stop(t){if(this.active){let n,r;for(n=0,r=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},Fs=e=>(e.w&st)>0,Ns=e=>(e.n&st)>0,ai=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let r=0;r{(a==="length"||a>=r)&&l.push(c)});else switch(n!==void 0&&l.push(i.get(n)),t){case"add":z(e)?lr(n)&&l.push(i.get("length")):(l.push(i.get(ft)),Et(e)&&l.push(i.get(Ln)));break;case"delete":z(e)||(l.push(i.get(ft)),Et(e)&&l.push(i.get(Ln)));break;case"set":Et(e)&&l.push(i.get(ft));break}if(l.length===1)l[0]&&kn(l[0]);else{const c=[];for(const a of l)a&&c.push(...a);kn(cr(c))}}function kn(e,t){for(const n of z(e)?e:[...e])(n!==De||n.allowRecurse)&&(n.scheduler?n.scheduler():n.run())}const di=tr("__proto__,__v_isRef,__isVue"),$s=new Set(Object.getOwnPropertyNames(Symbol).map(e=>Symbol[e]).filter(ir)),hi=ar(),pi=ar(!1,!0),gi=ar(!0),Fr=mi();function mi(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=ne(this);for(let o=0,i=this.length;o{e[t]=function(...n){Mt();const r=ne(this)[t].apply(this,n);return St(),r}}),e}function ar(e=!1,t=!1){return function(r,s,o){if(s==="__v_isReactive")return!e;if(s==="__v_isReadonly")return e;if(s==="__v_isShallow")return t;if(s==="__v_raw"&&o===(e?t?Ii:Us:t?Ds:Hs).get(r))return r;const i=z(r);if(!e&&i&&ee(Fr,s))return Reflect.get(Fr,s,o);const l=Reflect.get(r,s,o);return(ir(s)?$s.has(s):di(s))||(e||Me(r,"get",s),t)?l:ye(l)?!i||!lr(s)?l.value:l:ve(l)?e?Ks(l):Yt(l):l}}const yi=js(),vi=js(!0);function js(e=!1){return function(n,r,s,o){let i=n[r];if(Ut(i)&&ye(i)&&!ye(s))return!1;if(!e&&!Ut(s)&&(Ws(s)||(s=ne(s),i=ne(i)),!z(n)&&ye(i)&&!ye(s)))return i.value=s,!0;const l=z(n)&&lr(r)?Number(r)e,yn=e=>Reflect.getPrototypeOf(e);function Jt(e,t,n=!1,r=!1){e=e.__v_raw;const s=ne(e),o=ne(t);t!==o&&!n&&Me(s,"get",t),!n&&Me(s,"get",o);const{has:i}=yn(s),l=r?fr:n?pr:Kt;if(i.call(s,t))return l(e.get(t));if(i.call(s,o))return l(e.get(o));e!==s&&e.get(t)}function Qt(e,t=!1){const n=this.__v_raw,r=ne(n),s=ne(e);return e!==s&&!t&&Me(r,"has",e),!t&&Me(r,"has",s),e===s?n.has(e):n.has(e)||n.has(s)}function Xt(e,t=!1){return e=e.__v_raw,!t&&Me(ne(e),"iterate",ft),Reflect.get(e,"size",e)}function Nr(e){e=ne(e);const t=ne(this);return yn(t).has.call(t,e)||(t.add(e),ze(t,"add",e,e)),this}function Lr(e,t){t=ne(t);const n=ne(this),{has:r,get:s}=yn(n);let o=r.call(n,e);o||(e=ne(e),o=r.call(n,e));const i=s.call(n,e);return n.set(e,t),o?Dt(t,i)&&ze(n,"set",e,t):ze(n,"add",e,t),this}function kr(e){const t=ne(this),{has:n,get:r}=yn(t);let s=n.call(t,e);s||(e=ne(e),s=n.call(t,e)),r&&r.call(t,e);const o=t.delete(e);return s&&ze(t,"delete",e,void 0),o}function $r(){const e=ne(this),t=e.size!==0,n=e.clear();return t&&ze(e,"clear",void 0,void 0),n}function Zt(e,t){return function(r,s){const o=this,i=o.__v_raw,l=ne(i),c=t?fr:e?pr:Kt;return!e&&Me(l,"iterate",ft),i.forEach((a,f)=>r.call(s,c(a),c(f),o))}}function Gt(e,t,n){return function(...r){const s=this.__v_raw,o=ne(s),i=Et(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,a=s[e](...r),f=n?fr:t?pr:Kt;return!t&&Me(o,"iterate",c?Ln:ft),{next(){const{value:p,done:h}=a.next();return h?{value:p,done:h}:{value:l?[f(p[0]),f(p[1])]:f(p),done:h}},[Symbol.iterator](){return this}}}}function Ve(e){return function(...t){return e==="delete"?!1:this}}function xi(){const e={get(o){return Jt(this,o)},get size(){return Xt(this)},has:Qt,add:Nr,set:Lr,delete:kr,clear:$r,forEach:Zt(!1,!1)},t={get(o){return Jt(this,o,!1,!0)},get size(){return Xt(this)},has:Qt,add:Nr,set:Lr,delete:kr,clear:$r,forEach:Zt(!1,!0)},n={get(o){return Jt(this,o,!0)},get size(){return Xt(this,!0)},has(o){return Qt.call(this,o,!0)},add:Ve("add"),set:Ve("set"),delete:Ve("delete"),clear:Ve("clear"),forEach:Zt(!0,!1)},r={get(o){return Jt(this,o,!0,!0)},get size(){return Xt(this,!0)},has(o){return Qt.call(this,o,!0)},add:Ve("add"),set:Ve("set"),delete:Ve("delete"),clear:Ve("clear"),forEach:Zt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=Gt(o,!1,!1),n[o]=Gt(o,!0,!1),t[o]=Gt(o,!1,!0),r[o]=Gt(o,!0,!0)}),[e,n,t,r]}const[Pi,Ri,Ai,Oi]=xi();function dr(e,t){const n=t?e?Oi:Ai:e?Ri:Pi;return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ee(n,s)&&s in r?n:r,s,o)}const Mi={get:dr(!1,!1)},Si={get:dr(!1,!0)},Ti={get:dr(!0,!1)},Hs=new WeakMap,Ds=new WeakMap,Us=new WeakMap,Ii=new WeakMap;function Fi(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Ni(e){return e.__v_skip||!Object.isExtensible(e)?0:Fi(ti(e))}function Yt(e){return Ut(e)?e:hr(e,!1,Bs,Mi,Hs)}function Li(e){return hr(e,!1,Ci,Si,Ds)}function Ks(e){return hr(e,!0,Ei,Ti,Us)}function hr(e,t,n,r,s){if(!ve(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=s.get(e);if(o)return o;const i=Ni(e);if(i===0)return e;const l=new Proxy(e,i===2?r:n);return s.set(e,l),l}function Ct(e){return Ut(e)?Ct(e.__v_raw):!!(e&&e.__v_isReactive)}function Ut(e){return!!(e&&e.__v_isReadonly)}function Ws(e){return!!(e&&e.__v_isShallow)}function zs(e){return Ct(e)||Ut(e)}function ne(e){const t=e&&e.__v_raw;return t?ne(t):e}function qs(e){return rn(e,"__v_skip",!0),e}const Kt=e=>ve(e)?Yt(e):e,pr=e=>ve(e)?Ks(e):e;function Vs(e){Ge&&De&&(e=ne(e),ks(e.dep||(e.dep=cr())))}function Ys(e,t){e=ne(e),e.dep&&kn(e.dep)}function ye(e){return!!(e&&e.__v_isRef===!0)}function ot(e){return Qs(e,!1)}function Js(e){return Qs(e,!0)}function Qs(e,t){return ye(e)?e:new ki(e,t)}class ki{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:ne(t),this._value=n?t:Kt(t)}get value(){return Vs(this),this._value}set value(t){t=this.__v_isShallow?t:ne(t),Dt(t,this._rawValue)&&(this._rawValue=t,this._value=this.__v_isShallow?t:Kt(t),Ys(this))}}function et(e){return ye(e)?e.value:e}const $i={get:(e,t,n)=>et(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return ye(s)&&!ye(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Xs(e){return Ct(e)?e:new Proxy(e,$i)}class ji{constructor(t,n,r,s){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this._dirty=!0,this.effect=new ur(t,()=>{this._dirty||(this._dirty=!0,Ys(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!s,this.__v_isReadonly=r}get value(){const t=ne(this);return Vs(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function Bi(e,t,n=!1){let r,s;const o=V(e);return o?(r=e,s=ke):(r=e.get,s=e.set),new ji(r,s,o||!s,n)}Promise.resolve();function tt(e,t,n,r){let s;try{s=r?e(...r):e()}catch(o){vn(o,t,n)}return s}function Ie(e,t,n,r){if(V(e)){const o=tt(e,t,n,r);return o&&Ss(o)&&o.catch(i=>{vn(i,t,n)}),o}const s=[];for(let o=0;o>>1;Wt(Re[r])We&&Re.splice(t,1)}function to(e,t,n,r){z(e)?n.push(...e):(!t||!t.includes(e,e.allowRecurse?r+1:r))&&n.push(e),eo()}function Ki(e){to(e,Lt,kt,yt)}function Wi(e){to(e,Qe,$t,vt)}function yr(e,t=null){if(kt.length){for(jn=t,Lt=[...new Set(kt)],kt.length=0,yt=0;ytWt(n)-Wt(r)),vt=0;vte.id==null?1/0:e.id;function ro(e){$n=!1,sn=!0,yr(e),Re.sort((n,r)=>Wt(n)-Wt(r));const t=ke;try{for(We=0;Wey.trim()):p&&(s=n.map(si))}let l,c=r[l=Cn(t)]||r[l=Cn(Ue(t))];!c&&o&&(c=r[l=Cn(Ot(t))]),c&&Ie(c,e,6,s);const a=r[l+"Once"];if(a){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Ie(a,e,6,s)}}function so(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!V(e)){const c=a=>{const f=so(a,t,!0);f&&(l=!0,Ee(i,f))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(r.set(e,null),null):(z(o)?o.forEach(c=>i[c]=null):Ee(i,o),r.set(e,i),i)}function vr(e,t){return!e||!hn(t)?!1:(t=t.slice(2).replace(/Once$/,""),ee(e,t[0].toLowerCase()+t.slice(1))||ee(e,Ot(t))||ee(e,t))}let Le=null,oo=null;function on(e){const t=Le;return Le=e,oo=e&&e.type.__scopeId||null,t}function qi(e,t=Le,n){if(!t||e._n)return e;const r=(...s)=>{r._d&&Yr(-1);const o=on(t),i=e(...s);return on(o),r._d&&Yr(1),i};return r._n=!0,r._c=!0,r._d=!0,r}function Pn(e){const{type:t,vnode:n,proxy:r,withProxy:s,props:o,propsOptions:[i],slots:l,attrs:c,emit:a,render:f,renderCache:p,data:h,setupState:y,ctx:O,inheritAttrs:F}=e;let A,S;const I=on(e);try{if(n.shapeFlag&4){const J=s||r;A=He(f.call(J,J,p,o,y,h,O)),S=c}else{const J=t;A=He(J.length>1?J(o,{attrs:c,slots:l,emit:a}):J(o,null)),S=t.props?c:Vi(c)}}catch(J){jt.length=0,vn(J,e,1),A=Oe(Ke)}let D=A;if(S&&F!==!1){const J=Object.keys(S),{shapeFlag:se}=D;J.length&&se&7&&(i&&J.some(sr)&&(S=Yi(S,i)),D=xt(D,S))}return n.dirs&&(D.dirs=D.dirs?D.dirs.concat(n.dirs):n.dirs),n.transition&&(D.transition=n.transition),A=D,on(I),A}const Vi=e=>{let t;for(const n in e)(n==="class"||n==="style"||hn(n))&&((t||(t={}))[n]=e[n]);return t},Yi=(e,t)=>{const n={};for(const r in e)(!sr(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Ji(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:l,patchFlag:c}=t,a=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?jr(r,i,a):!!i;if(c&8){const f=t.dynamicProps;for(let p=0;pe.__isSuspense;function Zi(e,t){t&&t.pendingBranch?z(e)?t.effects.push(...e):t.effects.push(e):Wi(e)}function tn(e,t){if(be){let n=be.provides;const r=be.parent&&be.parent.provides;r===n&&(n=be.provides=Object.create(r)),n[e]=t}}function nt(e,t,n=!1){const r=be||Le;if(r){const s=r.parent==null?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides;if(s&&e in s)return s[e];if(arguments.length>1)return n&&V(t)?t.call(r.proxy):t}}function Gu(e,t){return br(e,null,t)}const Br={};function rt(e,t,n){return br(e,t,n)}function br(e,t,{immediate:n,deep:r,flush:s,onTrack:o,onTrigger:i}=le){const l=be;let c,a=!1,f=!1;if(ye(e)?(c=()=>e.value,a=Ws(e)):Ct(e)?(c=()=>e,r=!0):z(e)?(f=!0,a=e.some(Ct),c=()=>e.map(S=>{if(ye(S))return S.value;if(Ct(S))return _t(S);if(V(S))return tt(S,l,2)})):V(e)?t?c=()=>tt(e,l,2):c=()=>{if(!(l&&l.isUnmounted))return p&&p(),Ie(e,l,3,[h])}:c=ke,t&&r){const S=c;c=()=>_t(S())}let p,h=S=>{p=A.onStop=()=>{tt(S,l,4)}};if(zt)return h=ke,t?n&&Ie(t,l,3,[c(),f?[]:void 0,h]):c(),ke;let y=f?[]:Br;const O=()=>{if(!!A.active)if(t){const S=A.run();(r||a||(f?S.some((I,D)=>Dt(I,y[D])):Dt(S,y)))&&(p&&p(),Ie(t,l,3,[S,y===Br?void 0:y,h]),y=S)}else A.run()};O.allowRecurse=!!t;let F;s==="sync"?F=O:s==="post"?F=()=>xe(O,l&&l.suspense):F=()=>{!l||l.isMounted?Ki(O):O()};const A=new ur(c,F);return t?n?O():y=A.run():s==="post"?xe(A.run.bind(A),l&&l.suspense):A.run(),()=>{A.stop(),l&&l.scope&&or(l.scope.effects,A)}}function Gi(e,t,n){const r=this.proxy,s=_e(e)?e.includes(".")?io(r,e):()=>r[e]:e.bind(r,r);let o;V(t)?o=t:(o=t.handler,n=t);const i=be;Pt(this);const l=br(s,o.bind(r),n);return i?Pt(i):ht(),l}function io(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;s{_t(n,t)});else if(Is(e))for(const n in e)_t(e[n],t);return e}function el(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return _r(()=>{e.isMounted=!0}),fo(()=>{e.isUnmounting=!0}),e}const Se=[Function,Array],tl={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Se,onEnter:Se,onAfterEnter:Se,onEnterCancelled:Se,onBeforeLeave:Se,onLeave:Se,onAfterLeave:Se,onLeaveCancelled:Se,onBeforeAppear:Se,onAppear:Se,onAfterAppear:Se,onAppearCancelled:Se},setup(e,{slots:t}){const n=Ao(),r=el();let s;return()=>{const o=t.default&&co(t.default(),!0);if(!o||!o.length)return;const i=ne(e),{mode:l}=i,c=o[0];if(r.isLeaving)return Rn(c);const a=Hr(c);if(!a)return Rn(c);const f=Bn(a,i,r,n);Hn(a,f);const p=n.subTree,h=p&&Hr(p);let y=!1;const{getTransitionKey:O}=a.type;if(O){const F=O();s===void 0?s=F:F!==s&&(s=F,y=!0)}if(h&&h.type!==Ke&&(!ut(a,h)||y)){const F=Bn(h,i,r,n);if(Hn(h,F),l==="out-in")return r.isLeaving=!0,F.afterLeave=()=>{r.isLeaving=!1,n.update()},Rn(c);l==="in-out"&&a.type!==Ke&&(F.delayLeave=(A,S,I)=>{const D=lo(r,h);D[String(h.key)]=h,A._leaveCb=()=>{S(),A._leaveCb=void 0,delete f.delayedLeave},f.delayedLeave=I})}return c}}},nl=tl;function lo(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Bn(e,t,n,r){const{appear:s,mode:o,persisted:i=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:a,onEnterCancelled:f,onBeforeLeave:p,onLeave:h,onAfterLeave:y,onLeaveCancelled:O,onBeforeAppear:F,onAppear:A,onAfterAppear:S,onAppearCancelled:I}=t,D=String(e.key),J=lo(n,e),se=(Q,de)=>{Q&&Ie(Q,r,9,de)},he={mode:o,persisted:i,beforeEnter(Q){let de=l;if(!n.isMounted)if(s)de=F||l;else return;Q._leaveCb&&Q._leaveCb(!0);const ue=J[D];ue&&ut(e,ue)&&ue.el._leaveCb&&ue.el._leaveCb(),se(de,[Q])},enter(Q){let de=c,ue=a,we=f;if(!n.isMounted)if(s)de=A||c,ue=S||a,we=I||f;else return;let pe=!1;const ge=Q._enterCb=Fe=>{pe||(pe=!0,Fe?se(we,[Q]):se(ue,[Q]),he.delayedLeave&&he.delayedLeave(),Q._enterCb=void 0)};de?(de(Q,ge),de.length<=1&&ge()):ge()},leave(Q,de){const ue=String(e.key);if(Q._enterCb&&Q._enterCb(!0),n.isUnmounting)return de();se(p,[Q]);let we=!1;const pe=Q._leaveCb=ge=>{we||(we=!0,de(),ge?se(O,[Q]):se(y,[Q]),Q._leaveCb=void 0,J[ue]===e&&delete J[ue])};J[ue]=e,h?(h(Q,pe),h.length<=1&&pe()):pe()},clone(Q){return Bn(Q,t,n,r)}};return he}function Rn(e){if(bn(e))return e=xt(e),e.children=null,e}function Hr(e){return bn(e)?e.children?e.children[0]:void 0:e}function Hn(e,t){e.shapeFlag&6&&e.component?Hn(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function co(e,t=!1){let n=[],r=0;for(let s=0;s1)for(let s=0;s!!e.type.__asyncLoader,bn=e=>e.type.__isKeepAlive;function rl(e,t){ao(e,"a",t)}function sl(e,t){ao(e,"da",t)}function ao(e,t,n=be){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(_n(t,r,n),n){let s=n.parent;for(;s&&s.parent;)bn(s.parent.vnode)&&ol(r,t,n,s),s=s.parent}}function ol(e,t,n,r){const s=_n(t,e,r,!0);ho(()=>{or(r[t],s)},n)}function _n(e,t,n=be,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{if(n.isUnmounted)return;Mt(),Pt(n);const l=Ie(t,n,e,i);return ht(),St(),l});return r?s.unshift(o):s.push(o),o}}const qe=e=>(t,n=be)=>(!zt||e==="sp")&&_n(e,t,n),il=qe("bm"),_r=qe("m"),ll=qe("bu"),cl=qe("u"),fo=qe("bum"),ho=qe("um"),ul=qe("sp"),al=qe("rtg"),fl=qe("rtc");function dl(e,t=be){_n("ec",e,t)}let Un=!0;function hl(e){const t=go(e),n=e.proxy,r=e.ctx;Un=!1,t.beforeCreate&&Dr(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:a,created:f,beforeMount:p,mounted:h,beforeUpdate:y,updated:O,activated:F,deactivated:A,beforeDestroy:S,beforeUnmount:I,destroyed:D,unmounted:J,render:se,renderTracked:he,renderTriggered:Q,errorCaptured:de,serverPrefetch:ue,expose:we,inheritAttrs:pe,components:ge,directives:Fe,filters:v}=t;if(a&&pl(a,r,null,e.appContext.config.unwrapInjectedRef),i)for(const k in i){const B=i[k];V(B)&&(r[k]=B.bind(n))}if(s){const k=s.call(n,n);ve(k)&&(e.data=Yt(k))}if(Un=!0,o)for(const k in o){const B=o[k],q=V(B)?B.bind(n,n):V(B.get)?B.get.bind(n,n):ke,Y=!V(B)&&V(B.set)?B.set.bind(n):ke,X=Ae({get:q,set:Y});Object.defineProperty(r,k,{enumerable:!0,configurable:!0,get:()=>X.value,set:re=>X.value=re})}if(l)for(const k in l)po(l[k],r,n,k);if(c){const k=V(c)?c.call(n):c;Reflect.ownKeys(k).forEach(B=>{tn(B,k[B])})}f&&Dr(f,e,"c");function H(k,B){z(B)?B.forEach(q=>k(q.bind(n))):B&&k(B.bind(n))}if(H(il,p),H(_r,h),H(ll,y),H(cl,O),H(rl,F),H(sl,A),H(dl,de),H(fl,he),H(al,Q),H(fo,I),H(ho,J),H(ul,ue),z(we))if(we.length){const k=e.exposed||(e.exposed={});we.forEach(B=>{Object.defineProperty(k,B,{get:()=>n[B],set:q=>n[B]=q})})}else e.exposed||(e.exposed={});se&&e.render===ke&&(e.render=se),pe!=null&&(e.inheritAttrs=pe),ge&&(e.components=ge),Fe&&(e.directives=Fe)}function pl(e,t,n=ke,r=!1){z(e)&&(e=Kn(e));for(const s in e){const o=e[s];let i;ve(o)?"default"in o?i=nt(o.from||s,o.default,!0):i=nt(o.from||s):i=nt(o),ye(i)&&r?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:l=>i.value=l}):t[s]=i}}function Dr(e,t,n){Ie(z(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function po(e,t,n,r){const s=r.includes(".")?io(n,r):()=>n[r];if(_e(e)){const o=t[e];V(o)&&rt(s,o)}else if(V(e))rt(s,e.bind(n));else if(ve(e))if(z(e))e.forEach(o=>po(o,t,n,r));else{const o=V(e.handler)?e.handler.bind(n):t[e.handler];V(o)&&rt(s,o,e)}}function go(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(a=>ln(c,a,i,!0)),ln(c,t,i)),o.set(t,c),c}function ln(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&ln(e,o,n,!0),s&&s.forEach(i=>ln(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=gl[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const gl={data:Ur,props:ct,emits:ct,methods:ct,computed:ct,beforeCreate:Ce,created:Ce,beforeMount:Ce,mounted:Ce,beforeUpdate:Ce,updated:Ce,beforeDestroy:Ce,beforeUnmount:Ce,destroyed:Ce,unmounted:Ce,activated:Ce,deactivated:Ce,errorCaptured:Ce,serverPrefetch:Ce,components:ct,directives:ct,watch:yl,provide:Ur,inject:ml};function Ur(e,t){return t?e?function(){return Ee(V(e)?e.call(this,this):e,V(t)?t.call(this,this):t)}:t:e}function ml(e,t){return ct(Kn(e),Kn(t))}function Kn(e){if(z(e)){const t={};for(let n=0;n0)&&!(i&16)){if(i&8){const f=e.vnode.dynamicProps;for(let p=0;p{c=!0;const[h,y]=yo(p,t,!0);Ee(i,h),y&&l.push(...y)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!o&&!c)return r.set(e,wt),wt;if(z(o))for(let f=0;f-1,y[1]=F<0||O-1||ee(y,"default"))&&l.push(p)}}}const a=[i,l];return r.set(e,a),a}function Kr(e){return e[0]!=="$"}function Wr(e){const t=e&&e.toString().match(/^\s*function (\w+)/);return t?t[1]:e===null?"null":""}function zr(e,t){return Wr(e)===Wr(t)}function qr(e,t){return z(t)?t.findIndex(n=>zr(n,e)):V(t)&&zr(t,e)?0:-1}const vo=e=>e[0]==="_"||e==="$stable",wr=e=>z(e)?e.map(He):[He(e)],_l=(e,t,n)=>{const r=qi((...s)=>wr(t(...s)),n);return r._c=!1,r},bo=(e,t,n)=>{const r=e._ctx;for(const s in e){if(vo(s))continue;const o=e[s];if(V(o))t[s]=_l(s,o,r);else if(o!=null){const i=wr(o);t[s]=()=>i}}},_o=(e,t)=>{const n=wr(t);e.slots.default=()=>n},wl=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=ne(t),rn(t,"_",n)):bo(t,e.slots={})}else e.slots={},t&&_o(e,t);rn(e.slots,wn,1)},El=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=le;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:(Ee(s,t),!n&&l===1&&delete s._):(o=!t.$stable,bo(t,s)),i=t}else t&&(_o(e,t),i={default:1});if(o)for(const l in s)!vo(l)&&!(l in i)&&delete s[l]};function it(e,t,n,r){const s=e.dirs,o=t&&t.dirs;for(let i=0;izn(h,t&&(z(t)?t[y]:t),n,r,s));return}if(Dn(r)&&!s)return;const o=r.shapeFlag&4?xr(r.component)||r.component.proxy:r.el,i=s?null:o,{i:l,r:c}=e,a=t&&t.r,f=l.refs===le?l.refs={}:l.refs,p=l.setupState;if(a!=null&&a!==c&&(_e(a)?(f[a]=null,ee(p,a)&&(p[a]=null)):ye(a)&&(a.value=null)),V(c))tt(c,l,12,[i,f]);else{const h=_e(c),y=ye(c);if(h||y){const O=()=>{if(e.f){const F=h?f[c]:c.value;s?z(F)&&or(F,o):z(F)?F.includes(o)||F.push(o):h?f[c]=[o]:(c.value=[o],e.k&&(f[e.k]=c.value))}else h?(f[c]=i,ee(p,c)&&(p[c]=i)):ye(c)&&(c.value=i,e.k&&(f[e.k]=i))};i?(O.id=-1,xe(O,n)):O()}}}const xe=Zi;function Pl(e){return Rl(e)}function Rl(e,t){const n=oi();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:a,setElementText:f,parentNode:p,nextSibling:h,setScopeId:y=ke,cloneNode:O,insertStaticContent:F}=e,A=(u,d,g,w=null,_=null,P=null,M=!1,x=null,R=!!d.dynamicChildren)=>{if(u===d)return;u&&!ut(u,d)&&(w=L(u),me(u,_,P,!0),u=null),d.patchFlag===-2&&(R=!1,d.dynamicChildren=null);const{type:C,ref:$,shapeFlag:N}=d;switch(C){case Er:S(u,d,g,w);break;case Ke:I(u,d,g,w);break;case An:u==null&&D(d,g,w,M);break;case Be:Fe(u,d,g,w,_,P,M,x,R);break;default:N&1?he(u,d,g,w,_,P,M,x,R):N&6?v(u,d,g,w,_,P,M,x,R):(N&64||N&128)&&C.process(u,d,g,w,_,P,M,x,R,Z)}$!=null&&_&&zn($,u&&u.ref,P,d||u,!d)},S=(u,d,g,w)=>{if(u==null)r(d.el=l(d.children),g,w);else{const _=d.el=u.el;d.children!==u.children&&a(_,d.children)}},I=(u,d,g,w)=>{u==null?r(d.el=c(d.children||""),g,w):d.el=u.el},D=(u,d,g,w)=>{[u.el,u.anchor]=F(u.children,d,g,w,u.el,u.anchor)},J=({el:u,anchor:d},g,w)=>{let _;for(;u&&u!==d;)_=h(u),r(u,g,w),u=_;r(d,g,w)},se=({el:u,anchor:d})=>{let g;for(;u&&u!==d;)g=h(u),s(u),u=g;s(d)},he=(u,d,g,w,_,P,M,x,R)=>{M=M||d.type==="svg",u==null?Q(d,g,w,_,P,M,x,R):we(u,d,_,P,M,x,R)},Q=(u,d,g,w,_,P,M,x)=>{let R,C;const{type:$,props:N,shapeFlag:j,transition:K,patchFlag:G,dirs:ae}=u;if(u.el&&O!==void 0&&G===-1)R=u.el=O(u.el);else{if(R=u.el=i(u.type,P,N&&N.is,N),j&8?f(R,u.children):j&16&&ue(u.children,R,null,w,_,P&&$!=="foreignObject",M,x),ae&&it(u,null,w,"created"),N){for(const ce in N)ce!=="value"&&!en(ce)&&o(R,ce,null,N[ce],P,u.children,w,_,E);"value"in N&&o(R,"value",null,N.value),(C=N.onVnodeBeforeMount)&&je(C,w,u)}de(R,u,u.scopeId,M,w)}ae&&it(u,null,w,"beforeMount");const oe=(!_||_&&!_.pendingBranch)&&K&&!K.persisted;oe&&K.beforeEnter(R),r(R,d,g),((C=N&&N.onVnodeMounted)||oe||ae)&&xe(()=>{C&&je(C,w,u),oe&&K.enter(R),ae&&it(u,null,w,"mounted")},_)},de=(u,d,g,w,_)=>{if(g&&y(u,g),w)for(let P=0;P{for(let C=R;C{const x=d.el=u.el;let{patchFlag:R,dynamicChildren:C,dirs:$}=d;R|=u.patchFlag&16;const N=u.props||le,j=d.props||le;let K;g&<(g,!1),(K=j.onVnodeBeforeUpdate)&&je(K,g,d,u),$&&it(d,u,g,"beforeUpdate"),g&<(g,!0);const G=_&&d.type!=="foreignObject";if(C?pe(u.dynamicChildren,C,x,g,w,G,P):M||q(u,d,x,null,g,w,G,P,!1),R>0){if(R&16)ge(x,d,N,j,g,w,_);else if(R&2&&N.class!==j.class&&o(x,"class",null,j.class,_),R&4&&o(x,"style",N.style,j.style,_),R&8){const ae=d.dynamicProps;for(let oe=0;oe{K&&je(K,g,d,u),$&&it(d,u,g,"updated")},w)},pe=(u,d,g,w,_,P,M)=>{for(let x=0;x{if(g!==w){for(const x in w){if(en(x))continue;const R=w[x],C=g[x];R!==C&&x!=="value"&&o(u,x,C,R,M,d.children,_,P,E)}if(g!==le)for(const x in g)!en(x)&&!(x in w)&&o(u,x,g[x],null,M,d.children,_,P,E);"value"in w&&o(u,"value",g.value,w.value)}},Fe=(u,d,g,w,_,P,M,x,R)=>{const C=d.el=u?u.el:l(""),$=d.anchor=u?u.anchor:l("");let{patchFlag:N,dynamicChildren:j,slotScopeIds:K}=d;K&&(x=x?x.concat(K):K),u==null?(r(C,g,w),r($,g,w),ue(d.children,g,$,_,P,M,x,R)):N>0&&N&64&&j&&u.dynamicChildren?(pe(u.dynamicChildren,j,g,_,P,M,x),(d.key!=null||_&&d===_.subTree)&&Eo(u,d,!0)):q(u,d,g,$,_,P,M,x,R)},v=(u,d,g,w,_,P,M,x,R)=>{d.slotScopeIds=x,u==null?d.shapeFlag&512?_.ctx.activate(d,g,w,M,R):m(d,g,w,_,P,M,R):H(u,d,R)},m=(u,d,g,w,_,P,M)=>{const x=u.component=Dl(u,w,_);if(bn(u)&&(x.ctx.renderer=Z),Ul(x),x.asyncDep){if(_&&_.registerDep(x,k),!u.el){const R=x.subTree=Oe(Ke);I(null,R,d,g)}return}k(x,u,d,g,_,P,M)},H=(u,d,g)=>{const w=d.component=u.component;if(Ji(u,d,g))if(w.asyncDep&&!w.asyncResolved){B(w,d,g);return}else w.next=d,Ui(w.update),w.update();else d.component=u.component,d.el=u.el,w.vnode=d},k=(u,d,g,w,_,P,M)=>{const x=()=>{if(u.isMounted){let{next:$,bu:N,u:j,parent:K,vnode:G}=u,ae=$,oe;lt(u,!1),$?($.el=G.el,B(u,$,M)):$=G,N&&xn(N),(oe=$.props&&$.props.onVnodeBeforeUpdate)&&je(oe,K,$,G),lt(u,!0);const ce=Pn(u),Ne=u.subTree;u.subTree=ce,A(Ne,ce,p(Ne.el),L(Ne),u,_,P),$.el=ce.el,ae===null&&Qi(u,ce.el),j&&xe(j,_),(oe=$.props&&$.props.onVnodeUpdated)&&xe(()=>je(oe,K,$,G),_)}else{let $;const{el:N,props:j}=d,{bm:K,m:G,parent:ae}=u,oe=Dn(d);if(lt(u,!1),K&&xn(K),!oe&&($=j&&j.onVnodeBeforeMount)&&je($,ae,d),lt(u,!0),N&&U){const ce=()=>{u.subTree=Pn(u),U(N,u.subTree,u,_,null)};oe?d.type.__asyncLoader().then(()=>!u.isUnmounted&&ce()):ce()}else{const ce=u.subTree=Pn(u);A(null,ce,g,w,u,_,P),d.el=ce.el}if(G&&xe(G,_),!oe&&($=j&&j.onVnodeMounted)){const ce=d;xe(()=>je($,ae,ce),_)}d.shapeFlag&256&&u.a&&xe(u.a,_),u.isMounted=!0,d=g=w=null}},R=u.effect=new ur(x,()=>Gs(u.update),u.scope),C=u.update=R.run.bind(R);C.id=u.uid,lt(u,!0),C()},B=(u,d,g)=>{d.component=u;const w=u.vnode.props;u.vnode=d,u.next=null,bl(u,d.props,w,g),El(u,d.children,g),Mt(),yr(void 0,u.update),St()},q=(u,d,g,w,_,P,M,x,R=!1)=>{const C=u&&u.children,$=u?u.shapeFlag:0,N=d.children,{patchFlag:j,shapeFlag:K}=d;if(j>0){if(j&128){X(C,N,g,w,_,P,M,x,R);return}else if(j&256){Y(C,N,g,w,_,P,M,x,R);return}}K&8?($&16&&E(C,_,P),N!==C&&f(g,N)):$&16?K&16?X(C,N,g,w,_,P,M,x,R):E(C,_,P,!0):($&8&&f(g,""),K&16&&ue(N,g,w,_,P,M,x,R))},Y=(u,d,g,w,_,P,M,x,R)=>{u=u||wt,d=d||wt;const C=u.length,$=d.length,N=Math.min(C,$);let j;for(j=0;j$?E(u,_,P,!0,!1,N):ue(d,g,w,_,P,M,x,R,N)},X=(u,d,g,w,_,P,M,x,R)=>{let C=0;const $=d.length;let N=u.length-1,j=$-1;for(;C<=N&&C<=j;){const K=u[C],G=d[C]=R?Xe(d[C]):He(d[C]);if(ut(K,G))A(K,G,g,null,_,P,M,x,R);else break;C++}for(;C<=N&&C<=j;){const K=u[N],G=d[j]=R?Xe(d[j]):He(d[j]);if(ut(K,G))A(K,G,g,null,_,P,M,x,R);else break;N--,j--}if(C>N){if(C<=j){const K=j+1,G=K<$?d[K].el:w;for(;C<=j;)A(null,d[C]=R?Xe(d[C]):He(d[C]),g,G,_,P,M,x,R),C++}}else if(C>j)for(;C<=N;)me(u[C],_,P,!0),C++;else{const K=C,G=C,ae=new Map;for(C=G;C<=j;C++){const Pe=d[C]=R?Xe(d[C]):He(d[C]);Pe.key!=null&&ae.set(Pe.key,C)}let oe,ce=0;const Ne=j-G+1;let gt=!1,Or=0;const It=new Array(Ne);for(C=0;C=Ne){me(Pe,_,P,!0);continue}let $e;if(Pe.key!=null)$e=ae.get(Pe.key);else for(oe=G;oe<=j;oe++)if(It[oe-G]===0&&ut(Pe,d[oe])){$e=oe;break}$e===void 0?me(Pe,_,P,!0):(It[$e-G]=C+1,$e>=Or?Or=$e:gt=!0,A(Pe,d[$e],g,null,_,P,M,x,R),ce++)}const Mr=gt?Al(It):wt;for(oe=Mr.length-1,C=Ne-1;C>=0;C--){const Pe=G+C,$e=d[Pe],Sr=Pe+1<$?d[Pe+1].el:w;It[C]===0?A(null,$e,g,Sr,_,P,M,x,R):gt&&(oe<0||C!==Mr[oe]?re($e,g,Sr,2):oe--)}}},re=(u,d,g,w,_=null)=>{const{el:P,type:M,transition:x,children:R,shapeFlag:C}=u;if(C&6){re(u.component.subTree,d,g,w);return}if(C&128){u.suspense.move(d,g,w);return}if(C&64){M.move(u,d,g,Z);return}if(M===Be){r(P,d,g);for(let N=0;Nx.enter(P),_);else{const{leave:N,delayLeave:j,afterLeave:K}=x,G=()=>r(P,d,g),ae=()=>{N(P,()=>{G(),K&&K()})};j?j(P,G,ae):ae()}else r(P,d,g)},me=(u,d,g,w=!1,_=!1)=>{const{type:P,props:M,ref:x,children:R,dynamicChildren:C,shapeFlag:$,patchFlag:N,dirs:j}=u;if(x!=null&&zn(x,null,g,u,!0),$&256){d.ctx.deactivate(u);return}const K=$&1&&j,G=!Dn(u);let ae;if(G&&(ae=M&&M.onVnodeBeforeUnmount)&&je(ae,d,u),$&6)T(u.component,g,w);else{if($&128){u.suspense.unmount(g,w);return}K&&it(u,null,d,"beforeUnmount"),$&64?u.type.remove(u,d,g,_,Z,w):C&&(P!==Be||N>0&&N&64)?E(C,d,g,!1,!0):(P===Be&&N&384||!_&&$&16)&&E(R,d,g),w&&fe(u)}(G&&(ae=M&&M.onVnodeUnmounted)||K)&&xe(()=>{ae&&je(ae,d,u),K&&it(u,null,d,"unmounted")},g)},fe=u=>{const{type:d,el:g,anchor:w,transition:_}=u;if(d===Be){b(g,w);return}if(d===An){se(u);return}const P=()=>{s(g),_&&!_.persisted&&_.afterLeave&&_.afterLeave()};if(u.shapeFlag&1&&_&&!_.persisted){const{leave:M,delayLeave:x}=_,R=()=>M(g,P);x?x(u.el,P,R):R()}else P()},b=(u,d)=>{let g;for(;u!==d;)g=h(u),s(u),u=g;s(d)},T=(u,d,g)=>{const{bum:w,scope:_,update:P,subTree:M,um:x}=u;w&&xn(w),_.stop(),P&&(P.active=!1,me(M,u,d,g)),x&&xe(x,d),xe(()=>{u.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&u.asyncDep&&!u.asyncResolved&&u.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve())},E=(u,d,g,w=!1,_=!1,P=0)=>{for(let M=P;Mu.shapeFlag&6?L(u.component.subTree):u.shapeFlag&128?u.suspense.next():h(u.anchor||u.el),te=(u,d,g)=>{u==null?d._vnode&&me(d._vnode,null,null,!0):A(d._vnode||null,u,d,null,null,null,g),no(),d._vnode=u},Z={p:A,um:me,m:re,r:fe,mt:m,mc:ue,pc:q,pbc:pe,n:L,o:e};let W,U;return t&&([W,U]=t(Z)),{render:te,hydrate:W,createApp:xl(te,W)}}function lt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Eo(e,t,n=!1){const r=e.children,s=t.children;if(z(r)&&z(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}const Ol=e=>e.__isTeleport,Co="components";function ea(e,t){return Sl(Co,e,!0,t)||e}const Ml=Symbol();function Sl(e,t,n=!0,r=!1){const s=Le||be;if(s){const o=s.type;if(e===Co){const l=ql(o);if(l&&(l===t||l===Ue(t)||l===mn(Ue(t))))return o}const i=Vr(s[e]||o[e],t)||Vr(s.appContext[e],t);return!i&&r?o:i}}function Vr(e,t){return e&&(e[t]||e[Ue(t)]||e[mn(Ue(t))])}const Be=Symbol(void 0),Er=Symbol(void 0),Ke=Symbol(void 0),An=Symbol(void 0),jt=[];let dt=null;function Tl(e=!1){jt.push(dt=e?null:[])}function Il(){jt.pop(),dt=jt[jt.length-1]||null}let cn=1;function Yr(e){cn+=e}function xo(e){return e.dynamicChildren=cn>0?dt||wt:null,Il(),cn>0&&dt&&dt.push(e),e}function ta(e,t,n,r,s,o){return xo(Ro(e,t,n,r,s,o,!0))}function Fl(e,t,n,r,s){return xo(Oe(e,t,n,r,s,!0))}function qn(e){return e?e.__v_isVNode===!0:!1}function ut(e,t){return e.type===t.type&&e.key===t.key}const wn="__vInternal",Po=({key:e})=>e!=null?e:null,nn=({ref:e,ref_key:t,ref_for:n})=>e!=null?_e(e)||ye(e)||V(e)?{i:Le,r:e,k:t,f:!!n}:e:null;function Ro(e,t=null,n=null,r=0,s=null,o=e===Be?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Po(t),ref:t&&nn(t),scopeId:oo,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null};return l?(Cr(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=_e(n)?8:16),cn>0&&!i&&dt&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&dt.push(c),c}const Oe=Nl;function Nl(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===Ml)&&(e=Ke),qn(e)){const l=xt(e,t,!0);return n&&Cr(l,n),l}if(Vl(e)&&(e=e.__vccOpts),t){t=Ll(t);let{class:l,style:c}=t;l&&!_e(l)&&(t.class=rr(l)),ve(c)&&(zs(c)&&!z(c)&&(c=Ee({},c)),t.style=nr(c))}const i=_e(e)?1:Xi(e)?128:Ol(e)?64:ve(e)?4:V(e)?2:0;return Ro(e,t,n,r,s,i,o,!0)}function Ll(e){return e?zs(e)||wn in e?Ee({},e):e:null}function xt(e,t,n=!1){const{props:r,ref:s,patchFlag:o,children:i}=e,l=t?$l(r||{},t):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&Po(l),ref:t&&t.ref?n&&s?z(s)?s.concat(nn(t)):[s,nn(t)]:nn(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Be?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&xt(e.ssContent),ssFallback:e.ssFallback&&xt(e.ssFallback),el:e.el,anchor:e.anchor}}function kl(e=" ",t=0){return Oe(Er,null,e,t)}function na(e="",t=!1){return t?(Tl(),Fl(Ke,null,e)):Oe(Ke,null,e)}function He(e){return e==null||typeof e=="boolean"?Oe(Ke):z(e)?Oe(Be,null,e.slice()):typeof e=="object"?Xe(e):Oe(Er,null,String(e))}function Xe(e){return e.el===null||e.memo?e:xt(e)}function Cr(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(z(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Cr(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!(wn in t)?t._ctx=Le:s===3&&Le&&(Le.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else V(t)?(t={default:t,_ctx:Le},n=32):(t=String(t),r&64?(n=16,t=[kl(t)]):n=8);e.children=t,e.shapeFlag|=n}function $l(...e){const t={};for(let n=0;nt(i,l,void 0,o&&o[l]));else{const i=Object.keys(e);s=new Array(i.length);for(let l=0,c=i.length;le?Oo(e)?xr(e)||e.proxy:Vn(e.parent):null,un=Ee(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Vn(e.parent),$root:e=>Vn(e.root),$emit:e=>e.emit,$options:e=>go(e),$forceUpdate:e=>()=>Gs(e.update),$nextTick:e=>mr.bind(e.proxy),$watch:e=>Gi.bind(e)}),jl={get({_:e},t){const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:c}=e;let a;if(t[0]!=="$"){const y=i[t];if(y!==void 0)switch(y){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(r!==le&&ee(r,t))return i[t]=1,r[t];if(s!==le&&ee(s,t))return i[t]=2,s[t];if((a=e.propsOptions[0])&&ee(a,t))return i[t]=3,o[t];if(n!==le&&ee(n,t))return i[t]=4,n[t];Un&&(i[t]=0)}}const f=un[t];let p,h;if(f)return t==="$attrs"&&Me(e,"get",t),f(e);if((p=l.__cssModules)&&(p=p[t]))return p;if(n!==le&&ee(n,t))return i[t]=4,n[t];if(h=c.config.globalProperties,ee(h,t))return h[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return s!==le&&ee(s,t)?(s[t]=n,!0):r!==le&&ee(r,t)?(r[t]=n,!0):ee(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:o}},i){let l;return!!n[i]||e!==le&&ee(e,i)||t!==le&&ee(t,i)||(l=o[0])&&ee(l,i)||ee(r,i)||ee(un,i)||ee(s.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?this.set(e,t,n.get(),null):n.value!=null&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},Bl=wo();let Hl=0;function Dl(e,t,n){const r=e.type,s=(t?t.appContext:e.appContext)||Bl,o={uid:Hl++,vnode:e,type:r,parent:t,appContext:s,root:null,next:null,subTree:null,effect:null,update:null,scope:new ii(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(s.provides),accessCache:null,renderCache:[],components:null,directives:null,propsOptions:yo(r,s),emitsOptions:so(r,s),emit:null,emitted:null,propsDefaults:le,inheritAttrs:r.inheritAttrs,ctx:le,data:le,props:le,attrs:le,slots:le,refs:le,setupState:le,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return o.ctx={_:o},o.root=t?t.root:o,o.emit=zi.bind(null,o),e.ce&&e.ce(o),o}let be=null;const Ao=()=>be||Le,Pt=e=>{be=e,e.scope.on()},ht=()=>{be&&be.scope.off(),be=null};function Oo(e){return e.vnode.shapeFlag&4}let zt=!1;function Ul(e,t=!1){zt=t;const{props:n,children:r}=e.vnode,s=Oo(e);vl(e,n,s,t),wl(e,r);const o=s?Kl(e,t):void 0;return zt=!1,o}function Kl(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=qs(new Proxy(e.ctx,jl));const{setup:r}=n;if(r){const s=e.setupContext=r.length>1?zl(e):null;Pt(e),Mt();const o=tt(r,e,0,[e.props,s]);if(St(),ht(),Ss(o)){if(o.then(ht,ht),t)return o.then(i=>{Jr(e,i,t)}).catch(i=>{vn(i,e,0)});e.asyncDep=o}else Jr(e,o,t)}else Mo(e,t)}function Jr(e,t,n){V(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ve(t)&&(e.setupState=Xs(t)),Mo(e,n)}let Qr;function Mo(e,t,n){const r=e.type;if(!e.render){if(!t&&Qr&&!r.render){const s=r.template;if(s){const{isCustomElement:o,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:c}=r,a=Ee(Ee({isCustomElement:o,delimiters:l},i),c);r.render=Qr(s,a)}}e.render=r.render||ke}Pt(e),Mt(),hl(e),St(),ht()}function Wl(e){return new Proxy(e.attrs,{get(t,n){return Me(e,"get","$attrs"),t[n]}})}function zl(e){const t=r=>{e.exposed=r||{}};let n;return{get attrs(){return n||(n=Wl(e))},slots:e.slots,emit:e.emit,expose:t}}function xr(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Xs(qs(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in un)return un[n](e)}}))}function ql(e){return V(e)&&e.displayName||e.name}function Vl(e){return V(e)&&"__vccOpts"in e}const Ae=(e,t)=>Bi(e,t,zt);function So(e,t,n){const r=arguments.length;return r===2?ve(t)&&!z(t)?qn(t)?Oe(e,null,[t]):Oe(e,t):Oe(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&qn(n)&&(n=[n]),Oe(e,t,n))}const Yl="3.2.31",Jl="http://www.w3.org/2000/svg",at=typeof document!="undefined"?document:null,Xr=at&&at.createElement("template"),Ql={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t?at.createElementNS(Jl,e):at.createElement(e,n?{is:n}:void 0);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>at.createTextNode(e),createComment:e=>at.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>at.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},cloneNode(e){const t=e.cloneNode(!0);return"_value"in e&&(t._value=e._value),t},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{Xr.innerHTML=r?`${e}`:e;const l=Xr.content;if(r){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function Xl(e,t,n){const r=e._vtc;r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Zl(e,t,n){const r=e.style,s=_e(n);if(n&&!s){for(const o in n)Yn(r,o,n[o]);if(t&&!_e(t))for(const o in t)n[o]==null&&Yn(r,o,"")}else{const o=r.display;s?t!==n&&(r.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(r.display=o)}}const Zr=/\s*!important$/;function Yn(e,t,n){if(z(n))n.forEach(r=>Yn(e,t,r));else if(t.startsWith("--"))e.setProperty(t,n);else{const r=Gl(e,t);Zr.test(n)?e.setProperty(Ot(r),n.replace(Zr,""),"important"):e[r]=n}}const Gr=["Webkit","Moz","ms"],On={};function Gl(e,t){const n=On[t];if(n)return n;let r=Ue(t);if(r!=="filter"&&r in e)return On[t]=r;r=mn(r);for(let s=0;sdocument.createEvent("Event").timeStamp&&(an=()=>performance.now());const e=navigator.userAgent.match(/firefox\/(\d+)/i);To=!!(e&&Number(e[1])<=53)}let Jn=0;const nc=Promise.resolve(),rc=()=>{Jn=0},sc=()=>Jn||(nc.then(rc),Jn=an());function oc(e,t,n,r){e.addEventListener(t,n,r)}function ic(e,t,n,r){e.removeEventListener(t,n,r)}function lc(e,t,n,r,s=null){const o=e._vei||(e._vei={}),i=o[t];if(r&&i)i.value=r;else{const[l,c]=cc(t);if(r){const a=o[t]=uc(r,s);oc(e,l,a,c)}else i&&(ic(e,l,i,c),o[t]=void 0)}}const ts=/(?:Once|Passive|Capture)$/;function cc(e){let t;if(ts.test(e)){t={};let n;for(;n=e.match(ts);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[Ot(e.slice(2)),t]}function uc(e,t){const n=r=>{const s=r.timeStamp||an();(To||s>=n.attached-1)&&Ie(ac(r,n.value),t,5,[r])};return n.value=e,n.attached=sc(),n}function ac(e,t){if(z(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const ns=/^on[a-z]/,fc=(e,t,n,r,s=!1,o,i,l,c)=>{t==="class"?Xl(e,r,s):t==="style"?Zl(e,n,r):hn(t)?sr(t)||lc(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):dc(e,t,r,s))?tc(e,t,r,o,i,l,c):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),ec(e,t,r,s))};function dc(e,t,n,r){return r?!!(t==="innerHTML"||t==="textContent"||t in e&&ns.test(t)&&V(n)):t==="spellcheck"||t==="draggable"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||ns.test(t)&&_e(n)?!1:t in e}const hc={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};nl.props;const pc=["ctrl","shift","alt","meta"],gc={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>pc.some(n=>e[`${n}Key`]&&!t.includes(n))},sa=(e,t)=>(n,...r)=>{for(let s=0;s{const t=yc().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=vc(r);if(!s)return;const o=t._component;!V(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.innerHTML="";const i=n(s,!1,s instanceof SVGElement);return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t};function vc(e){return _e(e)?document.querySelector(e):e}/*! + * vue-router v4.0.14 + * (c) 2022 Eduardo San Martin Morote + * @license MIT + */const Io=typeof Symbol=="function"&&typeof Symbol.toStringTag=="symbol",Tt=e=>Io?Symbol(e):"_vr_"+e,bc=Tt("rvlm"),ss=Tt("rvd"),Pr=Tt("r"),Fo=Tt("rl"),Qn=Tt("rvl"),bt=typeof window!="undefined";function _c(e){return e.__esModule||Io&&e[Symbol.toStringTag]==="Module"}const ie=Object.assign;function Mn(e,t){const n={};for(const r in t){const s=t[r];n[r]=Array.isArray(s)?s.map(e):e(s)}return n}const Bt=()=>{},wc=/\/$/,Ec=e=>e.replace(wc,"");function Sn(e,t,n="/"){let r,s={},o="",i="";const l=t.indexOf("?"),c=t.indexOf("#",l>-1?l:0);return l>-1&&(r=t.slice(0,l),o=t.slice(l+1,c>-1?c:t.length),s=e(o)),c>-1&&(r=r||t.slice(0,c),i=t.slice(c,t.length)),r=Rc(r!=null?r:t,n),{fullPath:r+(o&&"?")+o+i,path:r,query:s,hash:i}}function Cc(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function os(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function xc(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Rt(t.matched[r],n.matched[s])&&No(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Rt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function No(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!Pc(e[n],t[n]))return!1;return!0}function Pc(e,t){return Array.isArray(e)?is(e,t):Array.isArray(t)?is(t,e):e===t}function is(e,t){return Array.isArray(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Rc(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/");let s=n.length-1,o,i;for(o=0;o({left:window.pageXOffset,top:window.pageYOffset});function Tc(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=Sc(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.pageXOffset,t.top!=null?t.top:window.pageYOffset)}function ls(e,t){return(history.state?history.state.position-t:-1)+e}const Xn=new Map;function Ic(e,t){Xn.set(e,t)}function Fc(e){const t=Xn.get(e);return Xn.delete(e),t}let Nc=()=>location.protocol+"//"+location.host;function Lo(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let l=s.includes(e.slice(o))?e.slice(o).length:1,c=s.slice(l);return c[0]!=="/"&&(c="/"+c),os(c,"")}return os(n,e)+r+s}function Lc(e,t,n,r){let s=[],o=[],i=null;const l=({state:h})=>{const y=Lo(e,location),O=n.value,F=t.value;let A=0;if(h){if(n.value=y,t.value=h,i&&i===O){i=null;return}A=F?h.position-F.position:0}else r(y);s.forEach(S=>{S(n.value,O,{delta:A,type:qt.pop,direction:A?A>0?Ht.forward:Ht.back:Ht.unknown})})};function c(){i=n.value}function a(h){s.push(h);const y=()=>{const O=s.indexOf(h);O>-1&&s.splice(O,1)};return o.push(y),y}function f(){const{history:h}=window;!h.state||h.replaceState(ie({},h.state,{scroll:En()}),"")}function p(){for(const h of o)h();o=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",f)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",f),{pauseListeners:c,listen:a,destroy:p}}function cs(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?En():null}}function kc(e){const{history:t,location:n}=window,r={value:Lo(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(c,a,f){const p=e.indexOf("#"),h=p>-1?(n.host&&document.querySelector("base")?e:e.slice(p))+c:Nc()+e+c;try{t[f?"replaceState":"pushState"](a,"",h),s.value=a}catch(y){console.error(y),n[f?"replace":"assign"](h)}}function i(c,a){const f=ie({},t.state,cs(s.value.back,c,s.value.forward,!0),a,{position:s.value.position});o(c,f,!0),r.value=c}function l(c,a){const f=ie({},s.value,t.state,{forward:c,scroll:En()});o(f.current,f,!0);const p=ie({},cs(r.value,c,null),{position:f.position+1},a);o(c,p,!1),r.value=c}return{location:r,state:s,push:l,replace:i}}function ia(e){e=Ac(e);const t=kc(e),n=Lc(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=ie({location:"",base:e,go:r,createHref:Mc.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function $c(e){return typeof e=="string"||e&&typeof e=="object"}function ko(e){return typeof e=="string"||typeof e=="symbol"}const Ye={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},$o=Tt("nf");var us;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(us||(us={}));function At(e,t){return ie(new Error,{type:e,[$o]:!0},t)}function Je(e,t){return e instanceof Error&&$o in e&&(t==null||!!(e.type&t))}const as="[^/]+?",jc={sensitive:!1,strict:!1,start:!0,end:!0},Bc=/[.+*?^${}()[\]/\\]/g;function Hc(e,t){const n=ie({},jc,t),r=[];let s=n.start?"^":"";const o=[];for(const a of e){const f=a.length?[]:[90];n.strict&&!a.length&&(s+="/");for(let p=0;pt.length?t.length===1&&t[0]===40+40?1:-1:0}function Uc(e,t){let n=0;const r=e.score,s=t.score;for(;n1&&(c==="*"||c==="+")&&t(`A repeatable param (${a}) must be alone in its segment. eg: '/:ids+.`),o.push({type:1,value:a,regexp:f,repeatable:c==="*"||c==="+",optional:c==="*"||c==="?"})):t("Invalid state to consume buffer"),a="")}function h(){a+=c}for(;l{i(I)}:Bt}function i(f){if(ko(f)){const p=r.get(f);p&&(r.delete(f),n.splice(n.indexOf(p),1),p.children.forEach(i),p.alias.forEach(i))}else{const p=n.indexOf(f);p>-1&&(n.splice(p,1),f.record.name&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function l(){return n}function c(f){let p=0;for(;p=0&&(f.record.path!==n[p].record.path||!jo(f,n[p]));)p++;n.splice(p,0,f),f.record.name&&!fs(f)&&r.set(f.record.name,f)}function a(f,p){let h,y={},O,F;if("name"in f&&f.name){if(h=r.get(f.name),!h)throw At(1,{location:f});F=h.record.name,y=ie(Yc(p.params,h.keys.filter(I=>!I.optional).map(I=>I.name)),f.params),O=h.stringify(y)}else if("path"in f)O=f.path,h=n.find(I=>I.re.test(O)),h&&(y=h.parse(O),F=h.record.name);else{if(h=p.name?r.get(p.name):n.find(I=>I.re.test(p.path)),!h)throw At(1,{location:f,currentLocation:p});F=h.record.name,y=ie({},p.params,f.params),O=h.stringify(y)}const A=[];let S=h;for(;S;)A.unshift(S.record),S=S.parent;return{name:F,path:O,params:y,matched:A,meta:Xc(A)}}return e.forEach(f=>o(f)),{addRoute:o,resolve:a,removeRoute:i,getRoutes:l,getRecordMatcher:s}}function Yc(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function Jc(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:Qc(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||{}:{default:e.component}}}function Qc(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="boolean"?n:n[r];return t}function fs(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Xc(e){return e.reduce((t,n)=>ie(t,n.meta),{})}function ds(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function jo(e,t){return t.children.some(n=>n===e||jo(e,n))}const Bo=/#/g,Zc=/&/g,Gc=/\//g,eu=/=/g,tu=/\?/g,Ho=/\+/g,nu=/%5B/g,ru=/%5D/g,Do=/%5E/g,su=/%60/g,Uo=/%7B/g,ou=/%7C/g,Ko=/%7D/g,iu=/%20/g;function Rr(e){return encodeURI(""+e).replace(ou,"|").replace(nu,"[").replace(ru,"]")}function lu(e){return Rr(e).replace(Uo,"{").replace(Ko,"}").replace(Do,"^")}function Zn(e){return Rr(e).replace(Ho,"%2B").replace(iu,"+").replace(Bo,"%23").replace(Zc,"%26").replace(su,"`").replace(Uo,"{").replace(Ko,"}").replace(Do,"^")}function cu(e){return Zn(e).replace(eu,"%3D")}function uu(e){return Rr(e).replace(Bo,"%23").replace(tu,"%3F")}function au(e){return e==null?"":uu(e).replace(Gc,"%2F")}function fn(e){try{return decodeURIComponent(""+e)}catch{}return""+e}function fu(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;so&&Zn(o)):[r&&Zn(r)]).forEach(o=>{o!==void 0&&(t+=(t.length?"&":"")+n,o!=null&&(t+="="+o))})}return t}function du(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Array.isArray(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}function Ft(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e,reset:n}}function Ze(e,t,n,r,s){const o=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((i,l)=>{const c=p=>{p===!1?l(At(4,{from:n,to:t})):p instanceof Error?l(p):$c(p)?l(At(2,{from:t,to:p})):(o&&r.enterCallbacks[s]===o&&typeof p=="function"&&o.push(p),i())},a=e.call(r&&r.instances[s],t,n,c);let f=Promise.resolve(a);e.length<3&&(f=f.then(c)),f.catch(p=>l(p))})}function Tn(e,t,n,r){const s=[];for(const o of e)for(const i in o.components){let l=o.components[i];if(!(t!=="beforeRouteEnter"&&!o.instances[i]))if(hu(l)){const a=(l.__vccOpts||l)[t];a&&s.push(Ze(a,n,r,o,i))}else{let c=l();s.push(()=>c.then(a=>{if(!a)return Promise.reject(new Error(`Couldn't resolve component "${i}" at "${o.path}"`));const f=_c(a)?a.default:a;o.components[i]=f;const h=(f.__vccOpts||f)[t];return h&&Ze(h,n,r,o,i)()}))}}return s}function hu(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function ps(e){const t=nt(Pr),n=nt(Fo),r=Ae(()=>t.resolve(et(e.to))),s=Ae(()=>{const{matched:c}=r.value,{length:a}=c,f=c[a-1],p=n.matched;if(!f||!p.length)return-1;const h=p.findIndex(Rt.bind(null,f));if(h>-1)return h;const y=gs(c[a-2]);return a>1&&gs(f)===y&&p[p.length-1].path!==y?p.findIndex(Rt.bind(null,c[a-2])):h}),o=Ae(()=>s.value>-1&&yu(n.params,r.value.params)),i=Ae(()=>s.value>-1&&s.value===n.matched.length-1&&No(n.params,r.value.params));function l(c={}){return mu(c)?t[et(e.replace)?"replace":"push"](et(e.to)).catch(Bt):Promise.resolve()}return{route:r,href:Ae(()=>r.value.href),isActive:o,isExactActive:i,navigate:l}}const pu=uo({name:"RouterLink",props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:ps,setup(e,{slots:t}){const n=Yt(ps(e)),{options:r}=nt(Pr),s=Ae(()=>({[ms(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[ms(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&t.default(n);return e.custom?o:So("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),gu=pu;function mu(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function yu(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Array.isArray(s)||s.length!==r.length||r.some((o,i)=>o!==s[i]))return!1}return!0}function gs(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ms=(e,t,n)=>e!=null?e:t!=null?t:n,vu=uo({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},setup(e,{attrs:t,slots:n}){const r=nt(Qn),s=Ae(()=>e.route||r.value),o=nt(ss,0),i=Ae(()=>s.value.matched[o]);tn(ss,o+1),tn(bc,i),tn(Qn,s);const l=ot();return rt(()=>[l.value,i.value,e.name],([c,a,f],[p,h,y])=>{a&&(a.instances[f]=c,h&&h!==a&&c&&c===p&&(a.leaveGuards.size||(a.leaveGuards=h.leaveGuards),a.updateGuards.size||(a.updateGuards=h.updateGuards))),c&&a&&(!h||!Rt(a,h)||!p)&&(a.enterCallbacks[f]||[]).forEach(O=>O(c))},{flush:"post"}),()=>{const c=s.value,a=i.value,f=a&&a.components[e.name],p=e.name;if(!f)return ys(n.default,{Component:f,route:c});const h=a.props[e.name],y=h?h===!0?c.params:typeof h=="function"?h(c):h:null,F=So(f,ie({},y,t,{onVnodeUnmounted:A=>{A.component.isUnmounted&&(a.instances[p]=null)},ref:l}));return ys(n.default,{Component:F,route:c})||F}}});function ys(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const bu=vu;function la(e){const t=Vc(e.routes,e),n=e.parseQuery||fu,r=e.stringifyQuery||hs,s=e.history,o=Ft(),i=Ft(),l=Ft(),c=Js(Ye);let a=Ye;bt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=Mn.bind(null,b=>""+b),p=Mn.bind(null,au),h=Mn.bind(null,fn);function y(b,T){let E,L;return ko(b)?(E=t.getRecordMatcher(b),L=T):L=b,t.addRoute(L,E)}function O(b){const T=t.getRecordMatcher(b);T&&t.removeRoute(T)}function F(){return t.getRoutes().map(b=>b.record)}function A(b){return!!t.getRecordMatcher(b)}function S(b,T){if(T=ie({},T||c.value),typeof b=="string"){const U=Sn(n,b,T.path),u=t.resolve({path:U.path},T),d=s.createHref(U.fullPath);return ie(U,u,{params:h(u.params),hash:fn(U.hash),redirectedFrom:void 0,href:d})}let E;if("path"in b)E=ie({},b,{path:Sn(n,b.path,T.path).path});else{const U=ie({},b.params);for(const u in U)U[u]==null&&delete U[u];E=ie({},b,{params:p(b.params)}),T.params=p(T.params)}const L=t.resolve(E,T),te=b.hash||"";L.params=f(h(L.params));const Z=Cc(r,ie({},b,{hash:lu(te),path:L.path})),W=s.createHref(Z);return ie({fullPath:Z,hash:te,query:r===hs?du(b.query):b.query||{}},L,{redirectedFrom:void 0,href:W})}function I(b){return typeof b=="string"?Sn(n,b,c.value.path):ie({},b)}function D(b,T){if(a!==b)return At(8,{from:T,to:b})}function J(b){return Q(b)}function se(b){return J(ie(I(b),{replace:!0}))}function he(b){const T=b.matched[b.matched.length-1];if(T&&T.redirect){const{redirect:E}=T;let L=typeof E=="function"?E(b):E;return typeof L=="string"&&(L=L.includes("?")||L.includes("#")?L=I(L):{path:L},L.params={}),ie({query:b.query,hash:b.hash,params:b.params},L)}}function Q(b,T){const E=a=S(b),L=c.value,te=b.state,Z=b.force,W=b.replace===!0,U=he(E);if(U)return Q(ie(I(U),{state:te,force:Z,replace:W}),T||E);const u=E;u.redirectedFrom=T;let d;return!Z&&xc(r,L,E)&&(d=At(16,{to:u,from:L}),Y(L,L,!0,!1)),(d?Promise.resolve(d):ue(u,L)).catch(g=>Je(g)?Je(g,2)?g:q(g):k(g,u,L)).then(g=>{if(g){if(Je(g,2))return Q(ie(I(g.to),{state:te,force:Z,replace:W}),T||u)}else g=pe(u,L,!0,W,te);return we(u,L,g),g})}function de(b,T){const E=D(b,T);return E?Promise.reject(E):Promise.resolve()}function ue(b,T){let E;const[L,te,Z]=_u(b,T);E=Tn(L.reverse(),"beforeRouteLeave",b,T);for(const U of L)U.leaveGuards.forEach(u=>{E.push(Ze(u,b,T))});const W=de.bind(null,b,T);return E.push(W),mt(E).then(()=>{E=[];for(const U of o.list())E.push(Ze(U,b,T));return E.push(W),mt(E)}).then(()=>{E=Tn(te,"beforeRouteUpdate",b,T);for(const U of te)U.updateGuards.forEach(u=>{E.push(Ze(u,b,T))});return E.push(W),mt(E)}).then(()=>{E=[];for(const U of b.matched)if(U.beforeEnter&&!T.matched.includes(U))if(Array.isArray(U.beforeEnter))for(const u of U.beforeEnter)E.push(Ze(u,b,T));else E.push(Ze(U.beforeEnter,b,T));return E.push(W),mt(E)}).then(()=>(b.matched.forEach(U=>U.enterCallbacks={}),E=Tn(Z,"beforeRouteEnter",b,T),E.push(W),mt(E))).then(()=>{E=[];for(const U of i.list())E.push(Ze(U,b,T));return E.push(W),mt(E)}).catch(U=>Je(U,8)?U:Promise.reject(U))}function we(b,T,E){for(const L of l.list())L(b,T,E)}function pe(b,T,E,L,te){const Z=D(b,T);if(Z)return Z;const W=T===Ye,U=bt?history.state:{};E&&(L||W?s.replace(b.fullPath,ie({scroll:W&&U&&U.scroll},te)):s.push(b.fullPath,te)),c.value=b,Y(b,T,E,W),q()}let ge;function Fe(){ge=s.listen((b,T,E)=>{const L=S(b),te=he(L);if(te){Q(ie(te,{replace:!0}),L).catch(Bt);return}a=L;const Z=c.value;bt&&Ic(ls(Z.fullPath,E.delta),En()),ue(L,Z).catch(W=>Je(W,12)?W:Je(W,2)?(Q(W.to,L).then(U=>{Je(U,20)&&!E.delta&&E.type===qt.pop&&s.go(-1,!1)}).catch(Bt),Promise.reject()):(E.delta&&s.go(-E.delta,!1),k(W,L,Z))).then(W=>{W=W||pe(L,Z,!1),W&&(E.delta?s.go(-E.delta,!1):E.type===qt.pop&&Je(W,20)&&s.go(-1,!1)),we(L,Z,W)}).catch(Bt)})}let v=Ft(),m=Ft(),H;function k(b,T,E){q(b);const L=m.list();return L.length?L.forEach(te=>te(b,T,E)):console.error(b),Promise.reject(b)}function B(){return H&&c.value!==Ye?Promise.resolve():new Promise((b,T)=>{v.add([b,T])})}function q(b){return H||(H=!b,Fe(),v.list().forEach(([T,E])=>b?E(b):T()),v.reset()),b}function Y(b,T,E,L){const{scrollBehavior:te}=e;if(!bt||!te)return Promise.resolve();const Z=!E&&Fc(ls(b.fullPath,0))||(L||!E)&&history.state&&history.state.scroll||null;return mr().then(()=>te(b,T,Z)).then(W=>W&&Tc(W)).catch(W=>k(W,b,T))}const X=b=>s.go(b);let re;const me=new Set;return{currentRoute:c,addRoute:y,removeRoute:O,hasRoute:A,getRoutes:F,resolve:S,options:e,push:J,replace:se,go:X,back:()=>X(-1),forward:()=>X(1),beforeEach:o.add,beforeResolve:i.add,afterEach:l.add,onError:m.add,isReady:B,install(b){const T=this;b.component("RouterLink",gu),b.component("RouterView",bu),b.config.globalProperties.$router=T,Object.defineProperty(b.config.globalProperties,"$route",{enumerable:!0,get:()=>et(c)}),bt&&!re&&c.value===Ye&&(re=!0,J(s.location).catch(te=>{}));const E={};for(const te in Ye)E[te]=Ae(()=>c.value[te]);b.provide(Pr,T),b.provide(Fo,Yt(E)),b.provide(Qn,c);const L=b.unmount;me.add(b),b.unmount=function(){me.delete(b),me.size<1&&(a=Ye,ge&&ge(),c.value=Ye,re=!1,H=!1),L()}}}}function mt(e){return e.reduce((t,n)=>t.then(()=>n()),Promise.resolve())}function _u(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iRt(a,l))?r.push(l):n.push(l));const c=e.matched[i];c&&(t.matched.find(a=>Rt(a,c))||s.push(c))}return[n,r,s]}var Ar={};(function e(t,n,r,s){var o=!!(t.Worker&&t.Blob&&t.Promise&&t.OffscreenCanvas&&t.OffscreenCanvasRenderingContext2D&&t.HTMLCanvasElement&&t.HTMLCanvasElement.prototype.transferControlToOffscreen&&t.URL&&t.URL.createObjectURL);function i(){}function l(v){var m=n.exports.Promise,H=m!==void 0?m:t.Promise;return typeof H=="function"?new H(v):(v(i,i),null)}var c=function(){var v=Math.floor(16.666666666666668),m,H,k={},B=0;return typeof requestAnimationFrame=="function"&&typeof cancelAnimationFrame=="function"?(m=function(q){var Y=Math.random();return k[Y]=requestAnimationFrame(function X(re){B===re||B+v-1typeof e=="string",In=()=>{};function Eu(e,t){function n(...r){e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})}return n}const Cu=e=>e();function Wo(e,t=!0){Ao()?_r(e):t?e():mr(e)}function xu(e,t=1e3,n={}){const{immediate:r=!0,immediateCallback:s=!1}=n;let o=null;const i=ot(!1);function l(){o&&(clearInterval(o),o=null)}function c(){i.value=!1,l()}function a(){t<=0||(i.value=!0,s&&e(),l(),o=setInterval(e,et(t)))}if(r&&dn&&a(),ye(t)){const f=rt(t,()=>{r&&dn&&a()});Vt(f)}return Vt(c),{isActive:i,pause:c,resume:a}}function ua(e=!1){if(ye(e))return t=>(e.value=typeof t=="boolean"?t:!e.value,e.value);{const t=ot(e);return[t,r=>(t.value=typeof r=="boolean"?r:!t.value,t.value)]}}var vs=Object.getOwnPropertySymbols,Pu=Object.prototype.hasOwnProperty,Ru=Object.prototype.propertyIsEnumerable,Au=(e,t)=>{var n={};for(var r in e)Pu.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&vs)for(var r of vs(e))t.indexOf(r)<0&&Ru.call(e,r)&&(n[r]=e[r]);return n};function Ou(e,t,n={}){const r=n,{eventFilter:s=Cu}=r,o=Au(r,["eventFilter"]);return rt(e,Eu(s,t),o)}const pt=dn?window:void 0;function Mu(...e){let t,n,r,s;if(wu(e[0])?([n,r,s]=e,t=pt):[t,n,r,s]=e,!t)return In;let o=In;const i=rt(()=>et(t),c=>{o(),!!c&&(c.addEventListener(n,r,s),o=()=>{c.removeEventListener(n,r,s),o=In})},{immediate:!0,flush:"post"}),l=()=>{i(),o()};return Vt(l),l}function Su(e,t={}){const{window:n=pt}=t;let r;const s=ot(!1),o=()=>{!n||(r||(r=n.matchMedia(e)),s.value=r.matches)};return Wo(()=>{o(),!!r&&("addEventListener"in r?r.addEventListener("change",o):r.addListener(o),Vt(()=>{"removeEventListener"in o?r.removeEventListener("change",o):r.removeListener(o)}))}),s}const Gn=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},er="__vueuse_ssr_handlers__";Gn[er]=Gn[er]||{};const Tu=Gn[er];function zo(e,t){return Tu[e]||t}function Iu(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"||Array.isArray(e)?"object":Number.isNaN(e)?"any":"number"}const Fu={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))}};function Nu(e,t,n,r={}){var s;const{flush:o="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,shallow:a,window:f=pt,eventFilter:p,onError:h=I=>{console.error(I)}}=r,y=et(t),O=Iu(y),F=(a?Js:ot)(t),A=(s=r.serializer)!=null?s:Fu[O];if(!n)try{n=zo("getDefaultStorage",()=>{var I;return(I=pt)==null?void 0:I.localStorage})()}catch(I){h(I)}function S(I){if(!(!n||I&&I.key!==e))try{const D=I?I.newValue:n.getItem(e);D==null?(F.value=y,c&&y!==null&&n.setItem(e,A.write(y))):typeof D!="string"?F.value=D:F.value=A.read(D)}catch(D){h(D)}}return S(),f&&l&&Mu(f,"storage",I=>setTimeout(()=>S(I),0)),n&&Ou(F,()=>{try{F.value==null?n.removeItem(e):n.setItem(e,A.write(F.value))}catch(I){h(I)}},{flush:o,deep:i,eventFilter:p}),F}function qo(e){return Su("(prefers-color-scheme: dark)",e)}var Lu=Object.defineProperty,bs=Object.getOwnPropertySymbols,ku=Object.prototype.hasOwnProperty,$u=Object.prototype.propertyIsEnumerable,_s=(e,t,n)=>t in e?Lu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,ju=(e,t)=>{for(var n in t||(t={}))ku.call(t,n)&&_s(e,n,t[n]);if(bs)for(var n of bs(t))$u.call(t,n)&&_s(e,n,t[n]);return e};function Bu(e={}){const{selector:t="html",attribute:n="class",window:r=pt,storage:s,storageKey:o="vueuse-color-scheme",listenToStorageChanges:i=!0,storageRef:l}=e,c=ju({auto:"",light:"light",dark:"dark"},e.modes||{}),a=qo({window:r}),f=Ae(()=>a.value?"dark":"light"),p=l||(o==null?ot("auto"):Nu(o,"auto",s,{window:r,listenToStorageChanges:i})),h=Ae({get(){return p.value==="auto"?f.value:p.value},set(A){p.value=A}}),y=zo("updateHTMLAttrs",(A,S,I)=>{const D=r==null?void 0:r.document.querySelector(A);if(!!D)if(S==="class"){const J=I.split(/\s/g);Object.values(c).flatMap(se=>(se||"").split(/\s/g)).filter(Boolean).forEach(se=>{J.includes(se)?D.classList.add(se):D.classList.remove(se)})}else D.setAttribute(S,I)});function O(A){var S;y(t,n,(S=c[A])!=null?S:A)}function F(A){e.onChanged?e.onChanged(A,O):O(A)}return rt(h,F,{flush:"post",immediate:!0}),Wo(()=>F(h.value)),h}var Hu=Object.defineProperty,Du=Object.defineProperties,Uu=Object.getOwnPropertyDescriptors,ws=Object.getOwnPropertySymbols,Ku=Object.prototype.hasOwnProperty,Wu=Object.prototype.propertyIsEnumerable,Es=(e,t,n)=>t in e?Hu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,zu=(e,t)=>{for(var n in t||(t={}))Ku.call(t,n)&&Es(e,n,t[n]);if(ws)for(var n of ws(t))Wu.call(t,n)&&Es(e,n,t[n]);return e},qu=(e,t)=>Du(e,Uu(t));function aa(e={}){const{valueDark:t="dark",valueLight:n="",window:r=pt}=e,s=Bu(qu(zu({},e),{onChanged:(l,c)=>{var a;e.onChanged?(a=e.onChanged)==null||a.call(e,l==="dark"):c(l)},modes:{dark:t,light:n}})),o=qo({window:r});return Ae({get(){return s.value==="dark"},set(l){l===o.value?s.value="auto":s.value=l?"dark":"light"}})}function Vu(e,t={}){const{immediate:n=!0,window:r=pt}=t,s=ot(!1);function o(){!s.value||!r||(e(),r.requestAnimationFrame(o))}function i(){!s.value&&r&&(s.value=!0,o())}function l(){s.value=!1}return n&&i(),Vt(l),{isActive:s,pause:l,resume:i}}var Yu=Object.defineProperty,Cs=Object.getOwnPropertySymbols,Ju=Object.prototype.hasOwnProperty,Qu=Object.prototype.propertyIsEnumerable,xs=(e,t,n)=>t in e?Yu(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Xu=(e,t)=>{for(var n in t||(t={}))Ju.call(t,n)&&xs(e,n,t[n]);if(Cs)for(var n of Cs(t))Qu.call(t,n)&&xs(e,n,t[n]);return e};function fa(e={}){const{controls:t=!1,interval:n="requestAnimationFrame"}=e,r=ot(new Date),s=()=>r.value=new Date,o=n==="requestAnimationFrame"?Vu(s,{immediate:!0}):xu(s,n,{immediate:!0});return t?Xu({now:r},o):r}var Ps,Rs;dn&&(window==null?void 0:window.navigator)&&((Ps=window==null?void 0:window.navigator)==null?void 0:Ps.platform)&&/iP(ad|hone|od)/.test((Rs=window==null?void 0:window.navigator)==null?void 0:Rs.platform);export{Be as F,ca as a,ua as b,ta as c,uo as d,et as e,na as f,fa as g,Ae as h,Nu as i,Gu as j,Ro as k,kl as l,ra as m,rr as n,Tl as o,Oe as p,Fl as q,ot as r,sa as s,Zu as t,aa as u,ea as v,rt as w,oa as x,la as y,ia as z}; diff --git a/Pages/PicoBlog.md b/Pages/PicoBlog.md index df80830..c8e5296 100644 --- a/Pages/PicoBlog.md +++ b/Pages/PicoBlog.md @@ -37,6 +37,15 @@ href='./PicoBlog.html'>disponibile qui. Considera di consultare quella per u +
+#### [2023-03-26] Ora solo chi ha skill può leggere. +Per fare qualcosa di epico, e contemporaneamente gradito ad alcune persone ma sgraditissimo ad altre, sulla mia pagina dedicata al **campo minato** ho fatto una roba: la sezione [curiosità](./Raccolte/Gaming/Minesweeper.html#-Curiosit) è bloccata, e per poterla leggere bisogna completare una partita al giochino. Non sai giocare? Peggio per te. 🙃️. Vabbe, non totalmente: + +* Man mano che si premono i quadratini, questi diventano semi-trasparenti e fanno intravedere il testo sotto. +* Il gioco sparisce se si disattiva JavaScript, e la sezione di testo non viene coperta. +* Ho incluso un easter egg che fa saltare la partita senza doverla vincere. 👀️ +
+
#### [2023-03-23] Finalmente certe pagine... Oggi ho finito di sistemare la grafica di alcune pagine che ho iniziato a creare ieri, [Minesweeper](./Raccolte/Gaming/Minesweeper.html) e [Nonogram](./Raccolte/Gaming/Nonogram.html). Quando avevo iniziato il sito quasi un anno fa pianificavo di fare cose di questo tipo in questo modo, ma non ho mai fatto molto fino ad ora. Vedrò di continuare così... diff --git a/Pages/Raccolte/Gaming/2048.md b/Pages/Raccolte/Gaming/2048.md new file mode 100644 index 0000000..b79c903 --- /dev/null +++ b/Pages/Raccolte/Gaming/2048.md @@ -0,0 +1,50 @@ +// % Categories = Gaming +// % EditedOn = 2023-03-26 + + + +# 🔢️ 2048 + +**2048** è un semplice giochino puzzle in cui si ha una griglia di piastrelle numerate, generate casualmente, che si può far scorrere interamente in una delle quattro direzioni. Tutti i numeri sono potenze di 2, e numeri uguali che si scontrano vanno a sommarsi per diventare il loro doppio. + +* Se si arriva, a furia di far sommare le piastrelle, a 2048, **si vince** una partita, che però può andare avanti anche oltre. +* **Si perde** se si arriva a riempire la griglia interamente di numeri senza avere spazio per fare altre mosse. + +L'implementazione ufficiale del gioco è open source, cosa che ha portato alla creazione di tantissimi cloni e versioni modificate che implementano le meccaniche più svariate. + +...**WIP**... Se vuoi scoprire altre cosine sul gioco, leggi su [Wikipedia](https://it.wikipedia.org/wiki/2048_(videogioco)){[:MdTgtBlank:]}. + +## Implementazioni + +* **Ufficiale** (Gabriele Cirulli): [Web](https://play2048.co/){[:MdTgtBlank:]}, [Git](https://github.com/gabrielecirulli/2048){[:MdTgtBlank:]} + +## Cloni + +* **2248**: [Web](https://2248game.com/){[:MdTgtBlank:]} + +## [:HNotesRefsHtml:] + +[^PageBg]: **Sfondo della Pagina**: [Fonte](https://yandex.com/games/app/176908){[:MdTgtBlank:]} diff --git a/Pages/Raccolte/Gaming/Minesweeper.md b/Pages/Raccolte/Gaming/Minesweeper.md index 59185b3..2eb21d1 100644 --- a/Pages/Raccolte/Gaming/Minesweeper.md +++ b/Pages/Raccolte/Gaming/Minesweeper.md @@ -1,5 +1,5 @@ // % Categories = Gaming -// % EditedOn = 2023-03-22 +// % EditedOn = 2023-03-26 -# 🔢️ Nonogram +# #️⃣️ Nonogram I **Nonogram** (conosciuti anche come **Picross**, **Crucipixel**, e un'altra ventina di nomi) sono dei puzzle che consistono nel riempire una griglia di quadratini al fine di svelare un'immagine, utilizzando i numeri ai lati del foglio per trovare intersezioni tra righe e colonne. diff --git a/Pages/Raccolte/Gaming/Raccolta-Videogiochi.md b/Pages/Raccolte/Gaming/Raccolta-Videogiochi.md index 62b8d97..b45bd55 100644 --- a/Pages/Raccolte/Gaming/Raccolta-Videogiochi.md +++ b/Pages/Raccolte/Gaming/Raccolta-Videogiochi.md @@ -25,6 +25,8 @@ _In costruzione..._ Questo è il posto per i titoli migliori, **quelli epici e unici nel loro genere**, punto. E qui, non importa assolutamente che un dato gioco sia popolare o meno: conta solo quanto per me è importante. +### 🔢️ 2048 ↗️ + ### 🎩 A Hat in Time Platformer 3D vivace e frenetico, proveniente senza dubbio dalla scuola di Super Mario 64. La difficoltà della storia principale è giusta, e il gioco scorre piacevolmente con un alternarsi di temi e ambienti che sa sempre di fresco. Ma, insomma, già soltanto il carisma del personaggio protagonista fa venire voglia di giocare. @@ -37,7 +39,8 @@ Animal Crossing è uno di quei giochi che va banalmente provato per essere capit ### ⛏️ Minecraft Credo si possa dire che Minecraft è **il gioco** bene o male moderno che da semplici premesse sviluppa complessità potenzialmente infinita. In senso buono, ovviamente: la complessità va a colpire e a premiare chi la cerca, ma il titolo resta giocabile per chiunque. All'inizio è fare "case" che sono buchi 4x4 sotto terra, ma dopo diventa creare installazioni titaniche, che siano puramente estetiche o anche funzionali - non dimentichiamo che Minecraft è Turing-complete. E alla fine? Beh, non si arriverà mai alla fine... -### 💣 Minesweeper ↗️ + +### 💣 Minesweeper ↗️ ### 🏃‍♀️ Mirror's Edge Una serie di giochi in prima persona che, con un ritmo vivace ma non opprimente, mischia platforming parkour e combattimento ravvicinato. @@ -46,6 +49,8 @@ In ogni caso, parliamo di un gioco capace di dare un gran senso di libertà e di Da YouTube/2N1TJP1cxmo. +### #️⃣️ Nonogram ↗️ + ### 🐙 Splatoon Sparatutto in terza persona che dire diverso dagli altri è poco. Splatoon rompe le aspettative di realismo di guerra del genere, e presenta un gameplay simpatico, fatto di colori accecanti, che non si ferma mai. Non ci sono umani a sparare proiettili con il ferro, ma calamari che spargono inchiostro. Giocare in Mischie Mollusche (questo il nome delle battaglie online 4-contro-4) è divertente, ma profondità del gioco e inventiva del team di sviluppo si vedono in modalità storia. diff --git a/Scripts/Lib/SelfBuild.js b/Scripts/Lib/SelfBuild.js index dceeb9d..1123ac8 100644 --- a/Scripts/Lib/SelfBuild.js +++ b/Scripts/Lib/SelfBuild.js @@ -4,6 +4,8 @@ Exp.Fs = require('fs'); // https://stackoverflow.com/a/69049676 Exp.importAll = function importAll(){ delete this.importAll; Object.assign(global, this); }; +Exp.CssAllHeadings = ' h1, h2, h3, h4, h5, h6'; + Exp.TryStringToList = In => { if (typeof(In) == 'string') { return In.split(','); diff --git a/Site.ini b/Site.ini index f9ca6fa..4539991 100644 --- a/Site.ini +++ b/Site.ini @@ -62,3 +62,4 @@ MdTgtBlankNofw = " target="_blank" rel="noopener nofollow YouTubeURL = https://inv.bp.projectsegfau.lt/ YouTube360 = https://inv.bp.projectsegfau.lt/latest_version?itag=18&id= videoelemargs-controlmuteloopauto = controls="true" muted="true" loop="true" autoplay="true" +sitocttRepoBase = https://gitlab.com/octtspacc/sitoctt