diff --git a/internal/check-card-deck.mjs b/internal/check-card-deck.mjs new file mode 100644 index 000000000..2c2dec078 --- /dev/null +++ b/internal/check-card-deck.mjs @@ -0,0 +1,117 @@ +// check-card-deck — a DECK must print as CARDS, not as paper. +// +// THE BUG THIS EXISTS FOR: the previous deck used @page{size:letter portrait} with +// height:100% per card, so one card stretched across a whole 8.5x11 sheet — 95 +// mostly-empty letter pages, and no photo at all. "The print dialog needs to show +// all the cards not in a paper format but a CARD format." +// +// ⚠ IT ASSERTS THE MEASURED MediaBox, NOT THE CSS. Chromium SILENTLY falls back to +// letter for a named size it does not know: `size: A6 portrait` yields 612x792pt +// with no error, while `size: 2.5in 3.5in` yields exactly 180x252pt. A gate that +// grepped the stylesheet would pass on a deck that prints as letter paper. +// +// Usage: node internal/check-card-deck.mjs [lang] [stock] +// PACKET_ORIGIN (default http://127.0.0.1:4898) · PACKET_API · PACKET_ISO3 +import { chromium } from 'playwright' + +const ORIGIN = process.env.PACKET_ORIGIN || 'http://127.0.0.1:4898' +const API = process.env.PACKET_API || 'https://pray.doxa.life' +const ISO3 = process.env.PACKET_ISO3 || 'LAO' +const LANG = process.argv[2] || 'en' +const STOCK = process.argv[3] || 'poker' +// Expected MediaBox in points, derived from the stock's inches (72pt = 1in). +// a6 is 4.13x5.83in, the inch rounding of 105x148mm -> ~297.4x419.8pt. An earlier +// constant here said 396.5x559.7 and FAILED a correct render: the gate's own +// arithmetic was wrong, not the renderer. Derive, do not hand-copy. +const IN = { poker: [2.5, 3.5], postcard: [4, 6], a6: [4.13, 5.83] }[STOCK] +if (!IN) { console.error(`unknown stock "${STOCK}"`); process.exit(2) } +const EXPECT = IN.map(v => +(v * 72).toFixed(2)) + +const b = await chromium.launch() +const pg = await b.newPage({ viewport: { width: 900, height: 1200 } }) +const errs = []; pg.on('pageerror', e => errs.push(String(e).slice(0, 140))) +await pg.goto(ORIGIN + '/') + +const out = await pg.evaluate(async ({ ORIGIN, API, ISO3, LANG, STOCK }) => { + const [{ createCardRenderer }, strings, norm] = await Promise.all([ + import(`${ORIGIN}/library/packet/card-render.js`), + fetch(`${ORIGIN}/library/scripts/posters/packet-strings.json`).then(r => r.json()), + import(`${ORIGIN}/plugin-designs/my-upg-100-list/data/normalize.js`), + ]) + const resp = await fetch(`${API}/api/people-groups/list?fields=slug,name,country_code,population,religion,image_url,primary_language&lang=en`, { cache: 'no-store' }) + const recs = norm.normalizeRecords(norm.extractRecords(await resp.json())) + const groups = recs.filter(r => String(r.country_code) === ISO3) + .sort((a, b) => String(a.name).localeCompare(String(b.name), LANG)) + const R = createCardRenderer({ strings, lang: LANG, stock: STOCK }) + return { html: R.buildDeck({ id: ISO3.toLowerCase(), label: ISO3 }, groups), n: groups.length } +}, { ORIGIN, API, ISO3, LANG, STOCK }) + +await pg.setContent(out.html, { waitUntil: 'load' }) +await pg.waitForTimeout(4000) +const r = await pg.evaluate(() => { + const cards = [...document.querySelectorAll('.card')] + const imgs = [...document.querySelectorAll('img.ph')] + const qrs = [...document.querySelectorAll('.qr svg')] + // Does the QR carry a real symbol, or an empty path? + const qrPaths = qrs.map(s => (s.querySelector('path')?.getAttribute('d') || '').length) + return { + cards: cards.length, + imgs: imgs.length, + broken: imgs.filter(i => !i.complete || i.naturalWidth === 0).length, + nophoto: document.querySelectorAll('.ph-none').length, + qrs: qrs.length, + qrEmpty: qrPaths.filter(n => n < 50).length, + urls: [...document.querySelectorAll('.url')].slice(0, 2).map(e => e.textContent), + // ⚠ ASSERT THE VALUES ARE HUMAN-READABLE, not merely present. The first deck + // rendered "LAO" / "thm" / "EAN" because normalizeRecords() flattens each + // { value, label } dict to its VALUE and parks the label under _label. + // A gate counting rows passed it: the rows were there, just unreadable. + // An all-caps or all-lowercase token of 2-4 chars with no space is a code. + codeish: [...document.querySelectorAll('.v')] + .map(e => (e.textContent || '').trim()) + .filter(v => /^[A-Z]{2,4}$|^[a-z]{2,4}$/.test(v)), + cta: (document.querySelector('.cta') || {}).textContent || '', + overflow: cards.filter(c => c.scrollHeight > c.clientHeight + 2).length, + } +}) +const pdf = await pg.pdf({ preferCSSPageSize: true, printBackground: true }) +await b.close() + +const raw = pdf.toString('latin1') +const boxes = [...raw.matchAll(/MediaBox\s*\[\s*0\s+0\s+([\d.]+)\s+([\d.]+)\s*\]/g)].map(m => [+m[1], +m[2]]) +const pages = (raw.match(/\/Type\s*\/Page[^s]/g) || []).length +const [pw, ph] = boxes[0] || [0, 0] + +const fails = [] +if (!r.cards) fails.push('no cards rendered') +if (pages !== r.cards) fails.push(`${pages} PDF pages for ${r.cards} cards — one card must be exactly one page`) +if (Math.abs(pw - EXPECT[0]) > 2 || Math.abs(ph - EXPECT[1]) > 2) { + fails.push(`page is ${pw}x${ph}pt, expected ${EXPECT[0]}x${EXPECT[1]}pt for "${STOCK}"` + + (Math.abs(pw - 612) < 2 ? ' — this is LETTER: the @page size silently fell back' : '')) +} +if (r.broken) fails.push(`${r.broken} broken portrait(s)`) +if (!r.imgs && !r.nophoto) fails.push('no portraits at all — a prayer card needs a face') +if (r.qrs !== r.cards) fails.push(`${r.qrs} QR codes for ${r.cards} cards`) +if (r.qrEmpty) fails.push(`${r.qrEmpty} QR code(s) render an empty symbol`) +if (r.overflow) fails.push(`${r.overflow} card(s) overflow their own box`) +if (r.codeish.length) { + fails.push(`${r.codeish.length} field(s) show a raw CODE instead of a label ` + + `(e.g. ${[...new Set(r.codeish)].slice(0, 4).join(', ')}) — read _label`) +} +if (errs.length) fails.push(`${errs.length} page error(s): ${errs[0]}`) + +console.log(` stock / lang : ${STOCK} / ${LANG}`) +console.log(` cards / PDF pages: ${r.cards} / ${pages}`) +console.log(` page size : ${pw} x ${ph} pt (${(pw / 72).toFixed(2)} x ${(ph / 72).toFixed(2)} in)`) +console.log(` portraits : ${r.imgs} (${r.broken} broken, ${r.nophoto} placeholder)`) +console.log(` QR codes : ${r.qrs} (${r.qrEmpty} empty)`) +console.log(` sample URL : ${r.urls[0] || '—'}`) +console.log(` call to action : ${r.cta}`) +console.log(` raw codes shown : ${r.codeish.length}${r.codeish.length ? ' (' + [...new Set(r.codeish)].slice(0,4).join(', ') + ')' : ''}`) +console.log(` overflowing cards: ${r.overflow}`) +if (fails.length) { + console.error(`\nCARD-DECK: FAIL — ${fails.length} problem(s)`) + for (const f of fails) console.error(' - ' + f) + process.exit(1) +} +console.log(`\nCARD-DECK: PASS — ${r.cards} cards, one card per ${(pw / 72).toFixed(2)}x${(ph / 72).toFixed(2)}in page.`) diff --git a/internal/check-packet-browser.mjs b/internal/check-packet-browser.mjs new file mode 100644 index 000000000..739446992 --- /dev/null +++ b/internal/check-packet-browser.mjs @@ -0,0 +1,82 @@ +// check-packet-browser — the packet the READER gets, not the one Node writes. +// +// WHY A SECOND PACKET GATE. check-packet-render verifies a packet FILE produced by +// the build-time generator. This one verifies the BROWSER path: the legend's +// Export > Prayer packet action imports library/packet/packet-render.js, fetches +// live records, and prints in-place. Both callers share that one renderer, and this +// gate is what proves the shared module actually runs in a browser — a module can +// be perfectly correct under Node and still fail in a tab (a bare `process.env` +// reference, a Node-only import, a JSON import assertion). +// +// It also covers I18N, which is a product requirement rather than a nicety: pass a +// language and the gate reports which headings came back translated. Fallback is +// PER KEY, so a half-finished translation must render its finished keys and leave +// the rest in English — never blank. +// +// Usage: node internal/check-packet-browser.mjs [lang] +// PACKET_ORIGIN http origin serving the repo root (default http://127.0.0.1:4898) +// PACKET_API records API (default https://pray.doxa.life) +// PACKET_ISO3 country to build a test packet for (default LAO) +// Needs a static server over the repo root, e.g.: python3 -m http.server 4898 + +import { chromium } from 'playwright' +const b = await chromium.launch() +const pg = await b.newPage({ viewport:{width:1500,height:1941} }) +const errs=[]; pg.on('pageerror',e=>errs.push(String(e).slice(0,140))) + +const ORIGIN = process.env.PACKET_ORIGIN || 'http://127.0.0.1:4898' +const API = process.env.PACKET_API || 'https://pray.doxa.life' +const ISO3 = process.env.PACKET_ISO3 || 'LAO' +const RENDER = `${ORIGIN}/library/packet/packet-render.js` +const STRINGS = `${ORIGIN}/library/scripts/posters/packet-strings.json` +const LANG = process.argv[2] || 'en' + +await pg.goto(ORIGIN + '/') +const html = await pg.evaluate(async ({RENDER, STRINGS, LANG, ORIGIN, API, ISO3}) => { + const [{ createPacketRenderer }, strings, norm] = await Promise.all([ + import(RENDER), + fetch(STRINGS).then(r=>r.json()), + import(`${ORIGIN}/plugin-designs/my-upg-100-list/data/normalize.js`), + ]) + const R = createPacketRenderer({ strings, lang: LANG }) + const resp = await fetch(`${API}/api/people-groups/list?fields=slug,name,country_code,population,religion,image_url&lang=en`, {cache:'no-store'}) + // Use the SAME normalizer the app uses — the API returns { posts, total }, and + // hand-rolling the extraction is how a probe ends up testing something the + // product never does. + const recs = norm.normalizeRecords(norm.extractRecords(await resp.json())) + const groups = recs.filter(r=>String(r.country_code)===ISO3) + .sort((a,b)=>String(a.name).localeCompare(String(b.name), LANG)) + const photos = new Map(groups.filter(g=>g.image_url).map(g=>[g.slug,g.image_url])) + return R.buildPacket({id:ISO3.toLowerCase(),label:ISO3}, groups, photos, '') +}, {RENDER, STRINGS, LANG, ORIGIN, API, ISO3}) + +await pg.setContent(html, { waitUntil:'load' }) +await pg.waitForTimeout(3000) +const r = await pg.evaluate(()=>({ + sheets: document.querySelectorAll('.sheet').length, + cards: document.querySelectorAll('.card').length, + wheel: document.querySelectorAll('svg path[fill^="hsl"]').length, + mark5: document.body.innerText.includes('Gadarenes'), + metacamp: (document.body.innerText.match(/metacamp\.org/g)||[]).length, + firstCard: (document.querySelector('.card')||{}).innerText||'', + wheelTitle: (document.body.innerText.match(/^.*Wheel.*$/m)||[''])[0], + pointsTitle: (document.body.innerText.match(/^.*Prayer Points.*$|^.*Puntos.*$/m)||[''])[0], +})) +const pdf = await pg.pdf({ preferCSSPageSize:true }) +const t = pdf.toString('latin1') +const pages=(t.match(/\/Type\s*\/Page[^s]/g)||[]).length +const boxes=[...t.matchAll(/MediaBox\s*\[\s*0\s+0\s+([\d.]+)\s+([\d.]+)\s*\]/g)].map(m=>[+m[1],+m[2]]) +await b.close() +console.log(` lang : ${LANG}`) +console.log(` sheets/PDF pages : ${r.sheets} / ${pages}`) +console.log(` people cards : ${r.cards}`) +console.log(` wheel segments : ${r.wheel}`) +console.log(` Mark 5 in full : ${r.mark5}`) +console.log(` metacamp.org : ${r.metacamp}`) +console.log(` page size : ${boxes[0]?boxes[0].join(' x '):'?'} pt`) +console.log(` points heading : ${r.pointsTitle.trim()}`) +console.log(` wheel heading : ${r.wheelTitle.trim()}`) +console.log(` page errors : ${errs.length} ${errs[0]||''}`) +const bad = !r.sheets || pages!==r.sheets || !r.cards || r.wheel!==12 || !r.mark5 || r.metacamp!==2 || errs.length +console.log(bad?'\nFAIL':'\nPASS — browser-rendered packet is correct') +process.exit(bad?1:0) diff --git a/library/components/legends/SemanticTreeLegend.vue b/library/components/legends/SemanticTreeLegend.vue index c2a9b098e..a7ccd6a67 100644 --- a/library/components/legends/SemanticTreeLegend.vue +++ b/library/components/legends/SemanticTreeLegend.vue @@ -174,9 +174,17 @@ const { scrimRef, scrimStyle } = useViewportScrim(exportMenuOpen) // export path is functional (the menu emits 'export' with 'poster' | 'packet', // and a profile wires @export to a real download). // A profile STILL has to opt in with :export-enabled="true" — this flag only -// stops it being force-hidden. OFF until the export packet is finished: the -// button currently produces a broken packet, so no bundle shows it. -const SHOW_EXPORT_BUTTON = false +// stops it being force-hidden. +// +// ON since 2026-09-24. It was held OFF with the note "until the export packet is +// finished: the button currently produces a broken packet" — that precondition is +// now met. The packet renderer (library/packet/packet-render.js) is shared by the +// build-time generator and the browser export, so both produce the same document, +// and it is gated at the rendered layer by check:packet-render (8 sheets -> 8 +// letter-portrait pages, map painted, Mark 5 in full, 12 wheel segments). +// The packet is generated ON CLICK, never shipped: one is ~3.5 MB and 28 zones +// would add ~100 MB to a repo that already had a publish blocked at 74 MB. +const SHOW_EXPORT_BUTTON = true const sortBy = ref(null) // null = default (pop desc), 'count' | 'pop' const sortDir = ref('desc') // 'desc' | 'asc' diff --git a/library/packet/card-render.js b/library/packet/card-render.js new file mode 100644 index 000000000..b5e0609ae --- /dev/null +++ b/library/packet/card-render.js @@ -0,0 +1,175 @@ +// card-render.js — THE prayer-card deck renderer, shared by every caller. +// +// ★ THE POINT OF THIS FILE: A DECK PRINTS AS CARDS, NOT AS PAPER. +// The previous deck set `@page{size:letter portrait}` and gave each card +// `height:100%`, so one card was stretched across a whole 8.5x11 sheet — 95 +// mostly-empty letter pages, with no photo. The Driver: "the print dialog that +// opens up needs to show all the cards not in a paper format but a CARD format, +// the aspect ratio that is used in the card generator." +// +// So the page IS the card: @page takes the card's own dimensions, and every card +// fills exactly one page. Print two-sided on cardstock and cut, or print to PDF +// and send to a card printer. +// +// ⚠ @page size MUST be given in explicit units. MEASURED: `size: A6 portrait` +// SILENTLY falls back to letter in Chromium (612x792pt) with no error, while +// `size: 2.5in 3.5in` yields exactly 180x252pt. Named sizes beyond letter/A4 are +// not reliable — always use explicit inches, and always ASSERT the measured +// MediaBox rather than trusting the CSS. +// +// The card content follows doxa-life/promotional-material-generation, which is a +// data pipeline feeding an InDesign template: per language it emits Description, +// Religion, Area, Country, a QR code and a URL. Description and Area are NOT +// available from this API (measured: 0 of 2107 records carry either), so the card +// is built from what genuinely exists — portrait, name, country, population, +// language, religion (with its explanatory sentence) and the QR back to the live +// profile. An empty block reserved for data that never arrives is worse than a +// card designed around the data there is. +// +// I18N: every string comes from the caller's strings object, per-key fallback to +// English, same contract as the packet. The QR encodes the LOCALISED URL, so a +// Spanish card scans to the Spanish page. + +import { qrSvg } from './qr.js'; + +// ── CARD STOCK ────────────────────────────────────────────────────────────── +// Poker-size trading card (2.5 x 3.5in) — the format commercial card printers, +// sleeves and boxes are built around, and the one people already associate with a +// deck you hold and deal out. Bleed is included in the page so a trimmed card +// keeps its full-bleed portrait. +export const STOCK = { + poker: { w: 2.5, h: 3.5, label: 'Poker (2.5 x 3.5 in)' }, + postcard: { w: 4, h: 6, label: 'Postcard (4 x 6 in)' }, + a6: { w: 4.13, h: 5.83, label: 'A6 (105 x 148 mm)' }, // explicit in, NOT "A6" +}; + +const PX = 96; // CSS px per inch + +export function createCardRenderer({ strings, lang = 'en', stock = 'poker', + siteBase = 'https://pray.doxa.life' } = {}) { + const EN = strings.en; + const L = strings[lang] || {}; + const t = (k) => (L[k] !== undefined ? L[k] : EN[k]); + const esc = (s) => String(s ?? '').replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + // ⚠ PREFER THE LABEL, AND KNOW WHERE IT LIVES. + // The API sends { value, label } dicts, but records reach this renderer AFTER + // normalizeRecords(), which flattens each field to its `.value` and parks the + // human-readable text under `_label`. Reading the field alone therefore + // yields "LAO", "thm", "EAN" — codes, on a card a person is meant to pray from. + // Measured: the first deck shipped exactly that, and a gate counting "4 rows + // rendered" passed it, because the rows were present, just unreadable. + // Handles all three shapes: an un-normalized dict, a normalized value+label + // pair, and a plain string. + const label = (g, key) => { + const lab = g[`${key}_label`]; + if (lab) return String(lab); + const v = g[key]; + if (v && typeof v === 'object') return String(v.label ?? v.value ?? ''); + return v == null ? '' : String(v); + }; + const num = (n) => (Number.isFinite(Number(n)) ? Number(n).toLocaleString(lang) : '—'); + + const S = STOCK[stock] || STOCK.poker; + const W = Math.round(S.w * PX); // card box in CSS px + const H = Math.round(S.h * PX); + + // The live profile URL for this group, in this language. English has no prefix + // (the generator's own rule); every other language does. + const profileUrl = (slug) => (lang === 'en' + ? `${siteBase}/${slug}` + : `${siteBase}/${lang}/${slug}`); + + function css() { + return ` + /* THE PAGE IS THE CARD. Explicit inches — a named size silently falls back to + letter in Chromium, which is exactly the bug this renderer exists to fix. */ + @page{size:${S.w}in ${S.h}in;margin:0} + html,body{margin:0;padding:0;background:#6f6f6f; + -webkit-print-color-adjust:exact;print-color-adjust:exact} + .card{position:relative;width:${W}px;height:${H}px;overflow:hidden; + background:#f7f4ec;color:#1b1a17; + font-family:Georgia,'Palatino Linotype',serif; + page-break-after:always;break-after:page} + .card:last-child{page-break-after:auto;break-after:auto} + + /* PORTRAIT: full-bleed across the top. A face is what makes this a prayer card + rather than a data tile — it is the largest thing on the card by design. */ + .ph{position:absolute;left:0;top:0;width:${W}px;height:${Math.round(H * 0.46)}px; + object-fit:cover;display:block;background:#ddd6c6} + .ph-none{position:absolute;left:0;top:0;width:${W}px;height:${Math.round(H * 0.46)}px; + background:linear-gradient(160deg,#e6dfcd,#cfc6ad);display:flex; + align-items:center;justify-content:center; + font:italic 11px Georgia,serif;color:#8c8170} + + /* A soft scrim under the name so it stays legible over any photo. */ + .scrim{position:absolute;left:0;top:${Math.round(H * 0.30)}px;width:${W}px; + height:${Math.round(H * 0.16)}px; + background:linear-gradient(to bottom,rgba(24,22,18,0),rgba(24,22,18,.72))} + .nm{position:absolute;left:14px;right:14px;top:${Math.round(H * 0.355)}px; + font:700 19px Georgia,serif;color:#fff;line-height:1.05; + text-shadow:0 1px 3px rgba(0,0,0,.5)} + .nm.long{font-size:15px} + + .body{position:absolute;left:14px;right:14px;top:${Math.round(H * 0.48)}px; + bottom:${Math.round(H * 0.20)}px;overflow:hidden} + .row{display:flex;gap:6px;font:400 9.5px Georgia,serif;line-height:1.5;margin-bottom:1px} + .k{color:#8c8170;min-width:52px;flex:0 0 auto} + .v{color:#3b3a34;font-weight:600} + .rel{margin-top:5px;font:italic 8.5px Georgia,serif;color:#6d665a;line-height:1.35} + + /* FOOTER: the QR is the card's whole reason to survive the day it is handed + over — it carries the reader to the live profile in their own language. */ + .ft{position:absolute;left:14px;right:14px;bottom:10px; + display:flex;align-items:flex-end;gap:8px} + .qr{flex:0 0 auto;line-height:0} + .ftx{flex:1 1 auto;min-width:0} + .cta{font:600 8px Georgia,serif;color:#7a3b2e;letter-spacing:.04em; + text-transform:uppercase} + .url{font:400 7px Georgia,serif;color:#a89f8c;word-break:break-all;margin-top:1px} + .brand{position:absolute;right:14px;bottom:10px; + font:400 7px Georgia,serif;color:#b9ae99;text-align:right}`; + } + + // One card = one page. + function card(g) { + const name = String(g.name || g.slug || ''); + const photo = g.image_url + ? `` + : `
${esc(t('no_photo'))}
`; + // The religion's explanatory sentence, when the caller kept it. normalizeRecords() + // keeps only { value, label } and DROPS `description`, so this is present only + // when a caller passes records straight from the API. Absent is normal, not a bug — + // the card simply gives that space back to the rows. + const relDesc = (g.religion && typeof g.religion === 'object' && g.religion.description) + || g.religion_description || ''; + const relHtml = relDesc + ? `
${esc(String(relDesc).slice(0, 170))}
` : ''; + const url = profileUrl(g.slug); + const rows = [ + [t('card_country'), label(g, 'country_code')], + [t('card_population'), `${num(g.population)} ${t('people_suffix')}`], + [t('card_language'), label(g, 'primary_language')], + [t('card_religion'), label(g, 'religion')], + ].filter(([, v]) => v && String(v).trim() && String(v) !== '—') + .map(([k, v]) => `
${esc(k)}
` + + `
${esc(v)}
`).join(''); + + return `
${photo}
` + + `
${esc(name)}
` + + `
${rows}${relHtml}
` + + `
${qrSvg(url, { size: 54, margin: 1 })}
` + + `
${esc(t('card_cta'))}
` + + `
${esc(url.replace(/^https?:\/\//, ''))}
` + + `
`; + } + + function buildDeck(zone, groups) { + const cards = groups.map(card).join(''); + return ` +${esc(zone.label || zone.id)} — ${esc(t('deck_title'))} +${cards}`; + } + + return { buildDeck, card, css, profileUrl, W, H, stock: S }; +} diff --git a/library/packet/packet-render.js b/library/packet/packet-render.js new file mode 100644 index 000000000..7d797b3a9 --- /dev/null +++ b/library/packet/packet-render.js @@ -0,0 +1,276 @@ +// packet-render.js — THE prayer packet renderer, shared by both callers. +// +// ★ ONE RENDERER, TWO CALLERS. The packet is produced in two places: +// - library/scripts/posters/packet.mjs (build time, Node, writes files) +// - the UPG-100 legend's Export > Prayer packet action (click time, browser) +// Both import THIS module, so a change to a page lands in both. The backlog card +// asked for exactly this: "reuse the existing print actions rather than growing a +// fourth implementation." +// +// It is pure: no fs, no process, no DOM. Everything it needs is passed in — +// strings, language, the zone, its groups, photos, and the map SVG. That is what +// lets the same code run under Node and in a browser tab. +// +// PAGE ORDER IS THE PRODUCT SPEC, do not reorder: +// 1 the map one-pager +// 2..n the people groups, 20 per page, with photos +// n+1 the 12 prayer points +// n+2 the prayer wheel +// +// I18N: every human-readable string comes from packet-strings.json. A new language +// is a NEW BLOCK there, never a code change, and fallback is PER KEY so a +// half-finished translation renders its finished keys instead of blanking. + +export function createPacketRenderer({ strings, lang = 'en' }) { + const EN = strings.en; + const L = strings[lang] || {}; + const t = (k) => (L[k] !== undefined ? L[k] : EN[k]); + const tr = (k) => ((L.rhythms || {})[k] !== undefined ? L.rhythms[k] : EN.rhythms[k]); + const POINTS = L.points || EN.points; + const fill = (s, vars) => String(s).replace(/\{(\w+)\}/g, (_, k) => (vars[k] ?? '')); + const flat = (v) => (v && typeof v === 'object' ? (v.label ?? v.value ?? '') : (v ?? '')); + + // ── SHEET GEOMETRY — the letter-portrait sheet, same as the poster format ─── + const W = 1500, H = 1941; // CSS px; 8.5x11 at width 1500 + const PAGE_W_IN = 8.5; + const SCALE = (PAGE_W_IN * 96 / W).toFixed(6); // print scale: one sheet = one page + const M = 60, HEAD = 90; // margins + running header + const COLS = 2, ROWS = 10, PER_PAGE = COLS * ROWS; + const GUT = 14; + const CW = (W - 2 * M - GUT * (COLS - 1)) / COLS; + const CH = (H - 2 * M - HEAD - GUT * (ROWS - 1)) / ROWS; + const PHOTO = Math.min(CH - 8, CW * 0.34); + + const esc = (s) => String(s ?? '').replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); + // ⚠ `lang` (the factory parameter), never a module-level LANG — and never + // process.env.LANG, which is the SHELL's POSIX locale ("en_US.UTF-8"): not a valid + // BCP-47 tag, and it throws inside toLocaleString. + const num = (n) => (Number.isFinite(Number(n)) ? Number(n).toLocaleString(lang) : '—'); + + const sheet = (inner, cls = '') => + `
${inner}
`; + + function css() { + return ` + @page{size:letter portrait;margin:0} + html,body{margin:0;background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact} + .sheet{position:relative;width:${W}px;height:${H}px;background:#f7f4ec;overflow:hidden; + page-break-after:always;break-after:page} + .sheet:last-child{page-break-after:auto;break-after:auto} + .hd{position:absolute;left:${M}px;top:46px;font:700 30px Georgia,'Palatino Linotype',serif;color:#1b1a17} + .hd-r{position:absolute;right:${M}px;top:54px;font:400 19px Georgia,serif;color:#8c8170} + .card{position:absolute;display:flex;gap:12px;align-items:center; + border-bottom:1px solid #e2ddd0;padding-bottom:6px} + .card img,.card .nophoto{width:${PHOTO.toFixed(0)}px;height:${PHOTO.toFixed(0)}px;flex:0 0 auto;border-radius:3px} + .card img{object-fit:cover} + .card .nophoto{border:1px solid #d6d0c0;background:#f2efe6;display:flex;align-items:center; + justify-content:center;font:italic 13px Georgia,serif;color:#a89f8c;text-align:center;padding:6px} + .nm{font:700 25px Georgia,serif;color:#1b1a17;line-height:1.1} + .mt{font:400 17px Georgia,serif;color:#6d766e} + /* FINE PRINT — Driver: "attribution minimal, fine print small". */ + .fine{position:absolute;left:0;right:0;bottom:22px;text-align:center; + font:400 13px Georgia,serif;color:#a89f8c} + /* PRINT. The sheet is authored at ${W}px wide while @page is physical, so without + a rescale the browser maps ${W}px -> 15.6in and TILES one sheet over many pages. + + ⚠ Use zoom, NOT transform:scale(). They look identical on screen and behave + completely differently under pagination: + transform is paint-time — the element still RESERVES its full ${H}px layout + box, so the paginator walks ${H}px of content and breaks it across + two sheets, inking only the top of the first. Measured: 8 sheets + came out as 16 PDF pages. Negative margins do NOT fix this — they + collapse the outer space, not the fragmentation box. + zoom is layout-time — the box itself becomes ${(PAGE_W_IN*96).toFixed(0)}px + wide, so pagination sees the scaled size. Measured: 1 page/sheet. + Verified by _probe-pagecount.mjs (transform 2, transform+margins 2, zoom 1). */ + @media print{ + html,body{width:${(PAGE_W_IN * 96).toFixed(0)}px;margin:0;padding:0} + .sheet{width:${W}px;height:${H}px;zoom:${SCALE}; + page-break-after:always;break-after:page} + .sheet:last-child{page-break-after:auto;break-after:auto} + }`; + } + + // Lift the poster's stylesheet so the inlined map keeps its palette and map rules, + // dropping only the rules that would fight the packet's own page shell. + // + // Comments are stripped FIRST and deliberately: generate.mjs's CSS comments are long + // prose that contains braces and selector-like text, so any brace-counting or + // selector regex run over the raw source mis-parses them as rules. Strip, then split. + function mapCss(posterHtml) { + const block = posterHtml.match(/ +${pages.join('\n')}`; + } + + return { buildPacket, mapPage, listPages, pointsPage, wheelPage, css, mapCss, PER_PAGE, W, H }; +} diff --git a/library/packet/qr.js b/library/packet/qr.js new file mode 100644 index 000000000..704df32c2 --- /dev/null +++ b/library/packet/qr.js @@ -0,0 +1,211 @@ +// qr.js — a minimal, self-contained QR encoder. No dependency, no network. +// +// WHY HAND-ROLLED. The prayer cards need a QR per group linking back to that +// group's live page, and the Driver's standing constraint is "as much data as you +// can without compromising speed and without adding a lot of dependencies on the +// internet". A QR symbol is pure computation — Reed-Solomon over GF(256) and a bit +// layout — so it costs one small file instead of a package, and it runs identically +// in Node (build-time decks) and the browser (print-on-click). +// +// SCOPE, deliberately narrow: byte mode, error-correction level M, the smallest +// version that fits, mask 0. That is all a short https URL needs +// (https://pray.doxa.life/ is ~40 chars -> version 3). It is NOT a general +// QR library: no kanji mode, no ECI, no structured append. Encoding anything much +// longer than a URL will throw rather than silently produce a symbol that will not +// scan. +// +// ⚠ A QR that does not scan looks exactly like one that does. Do not "improve" this +// by eye — verify by decoding the output. + +// ── GF(256) arithmetic, the field QR's Reed-Solomon works over ─────────────── +const EXP = new Uint8Array(512); +const LOG = new Uint8Array(256); +(() => { + let x = 1; + for (let i = 0; i < 255; i++) { + EXP[i] = x; + LOG[x] = i; + x <<= 1; + if (x & 0x100) x ^= 0x11d; // the QR generator polynomial + } + for (let i = 255; i < 512; i++) EXP[i] = EXP[i - 255]; +})(); +const mul = (a, b) => (a === 0 || b === 0 ? 0 : EXP[LOG[a] + LOG[b]]); + +// Reed-Solomon error-correction codewords for one block. +function rsEncode(data, ecLen) { + // Build the generator polynomial for ecLen codewords. + let gen = [1]; + for (let i = 0; i < ecLen; i++) { + const next = new Array(gen.length + 1).fill(0); + for (let j = 0; j < gen.length; j++) { + next[j] ^= gen[j]; + next[j + 1] ^= mul(gen[j], EXP[i]); + } + gen = next; + } + const res = new Uint8Array(ecLen); + for (const byte of data) { + const factor = byte ^ res[0]; + res.copyWithin(0, 1); + res[ecLen - 1] = 0; + for (let j = 0; j < ecLen; j++) res[j] ^= mul(gen[j + 1], factor); + } + return res; +} + +// ── Version table (level M only) — [version, totalCodewords, ecPerBlock, blocks] +// Versions 1..6 cover every URL this app produces; beyond that we throw rather +// than guess, because a wrong table silently yields an unscannable symbol. +const VERSIONS = [ + [1, 26, 10, 1], [2, 44, 16, 1], [3, 70, 26, 1], + [4, 100, 18, 2], [5, 134, 24, 2], [6, 172, 16, 4], +]; + +const ALIGN = { 1: [], 2: [6, 18], 3: [6, 22], 4: [6, 26], 5: [6, 30], 6: [6, 34] }; + +/** + * Encode `text` as a QR matrix. + * @returns {{size:number, modules:Uint8Array}} row-major, 1 = dark. + */ +export function qrMatrix(text) { + const bytes = new TextEncoder().encode(text); + + // Pick the smallest version whose data capacity fits. + let spec = null; + for (const v of VERSIONS) { + const [, total, ecPer, blocks] = v; + const dataCw = total - ecPer * blocks; + if (bytes.length + 2 + 1 <= dataCw) { spec = v; break; } // +mode nibble, +length + } + if (!spec) { + throw new Error(`qr: ${bytes.length} bytes exceeds this encoder's range (max ~${ + VERSIONS.at(-1)[1] - VERSIONS.at(-1)[2] * VERSIONS.at(-1)[3] - 3} bytes). ` + + 'It is scoped to short URLs on purpose.'); + } + const [version, totalCw, ecPerBlock, blocks] = spec; + const dataCw = totalCw - ecPerBlock * blocks; + + // ── Bit stream: mode(0100) + length(8 bits) + payload + terminator ────────── + const bits = []; + const push = (val, len) => { for (let i = len - 1; i >= 0; i--) bits.push((val >> i) & 1); }; + push(0b0100, 4); + push(bytes.length, 8); + for (const b of bytes) push(b, 8); + for (let i = 0; i < 4 && bits.length < dataCw * 8; i++) bits.push(0); + while (bits.length % 8) bits.push(0); + const data = []; + for (let i = 0; i < bits.length; i += 8) { + data.push(bits.slice(i, i + 8).reduce((a, b) => (a << 1) | b, 0)); + } + // Pad alternately with the two spec-mandated bytes. + const PAD = [0xec, 0x11]; + for (let i = 0; data.length < dataCw; i++) data.push(PAD[i % 2]); + + // ── Split into blocks, compute EC, interleave ─────────────────────────────── + const perBlock = Math.floor(dataCw / blocks); + const dBlocks = []; + const eBlocks = []; + for (let i = 0; i < blocks; i++) { + const chunk = data.slice(i * perBlock, (i + 1) * perBlock); + dBlocks.push(chunk); + eBlocks.push(rsEncode(chunk, ecPerBlock)); + } + const final = []; + for (let i = 0; i < perBlock; i++) for (const b of dBlocks) final.push(b[i]); + for (let i = 0; i < ecPerBlock; i++) for (const b of eBlocks) final.push(b[i]); + + // ── Lay out the matrix ────────────────────────────────────────────────────── + const size = version * 4 + 17; + const m = new Int8Array(size * size).fill(-1); // -1 = free + const at = (r, c) => r * size + c; + const set = (r, c, v) => { if (r >= 0 && c >= 0 && r < size && c < size) m[at(r, c)] = v; }; + + const finder = (r0, c0) => { + for (let r = -1; r <= 7; r++) for (let c = -1; c <= 7; c++) { + const inRing = (r === 0 || r === 6 || c === 0 || c === 6); + const inCore = (r >= 2 && r <= 4 && c >= 2 && c <= 4); + set(r0 + r, c0 + c, (r >= 0 && r <= 6 && c >= 0 && c <= 6 && (inRing || inCore)) ? 1 : 0); + } + }; + finder(0, 0); finder(0, size - 7); finder(size - 7, 0); + + for (let i = 8; i < size - 8; i++) { // timing patterns + const v = i % 2 === 0 ? 1 : 0; + if (m[at(6, i)] === -1) set(6, i, v); + if (m[at(i, 6)] === -1) set(i, 6, v); + } + for (const r of ALIGN[version] || []) { // alignment patterns + for (const c of ALIGN[version] || []) { + if (m[at(r, c)] !== -1) continue; + for (let dr = -2; dr <= 2; dr++) for (let dc = -2; dc <= 2; dc++) { + set(r + dr, c + dc, (Math.abs(dr) === 2 || Math.abs(dc) === 2 || (dr === 0 && dc === 0)) ? 1 : 0); + } + } + } + set(size - 8, 8, 1); // the always-dark module + + // Reserve format-information cells so data skips them. + const fmtCells = []; + for (let i = 0; i <= 8; i++) { if (i !== 6) fmtCells.push([8, i], [i, 8]); } + for (let i = 0; i < 8; i++) fmtCells.push([8, size - 1 - i], [size - 1 - i, 8]); + for (const [r, c] of fmtCells) if (m[at(r, c)] === -1) m[at(r, c)] = -2; // -2 = reserved + + // ── Place data, zig-zag upward in 2-column strips, with mask 0 applied ─────── + let bi = 0; + let up = true; + for (let col = size - 1; col > 0; col -= 2) { + if (col === 6) col--; // skip the vertical timing line + for (let i = 0; i < size; i++) { + const row = up ? size - 1 - i : i; + for (const c of [col, col - 1]) { + if (m[at(row, c)] !== -1) continue; + const bit = bi < final.length * 8 + ? (final[bi >> 3] >> (7 - (bi & 7))) & 1 + : 0; + bi++; + // Mask 0: invert where (row + col) is even. Applied HERE rather than in a + // second pass so reserved/function modules are never touched. + m[at(row, c)] = bit ^ ((row + c) % 2 === 0 ? 1 : 0); + } + } + up = !up; + } + + // ── Format information: level M (00) + mask 0 (000), BCH(15,5) + XOR mask ──── + let fmt = 0b00000; // ecc M = 00, mask 0 = 000 + let rem = fmt; + for (let i = 0; i < 10; i++) rem = (rem << 1) ^ (((rem >> 9) & 1) * 0x537); + const fmtBits = ((fmt << 10) | rem) ^ 0b101010000010010; + const fmtBit = (i) => (fmtBits >> i) & 1; + for (let i = 0; i <= 5; i++) { set(8, i, fmtBit(i)); set(size - 1 - i, 8, fmtBit(i)); } + set(8, 7, fmtBit(6)); set(8, 8, fmtBit(7)); set(7, 8, fmtBit(8)); + for (let i = 9; i <= 14; i++) { set(8, size - 15 + i, fmtBit(i)); set(14 - i, 8, fmtBit(i)); } + set(size - 8, 8, 1); + + const modules = new Uint8Array(size * size); + for (let i = 0; i < m.length; i++) modules[i] = m[i] === 1 ? 1 : 0; + return { size, modules }; +} + +/** + * Render `text` as an inline SVG QR code. + * Drawn as ONE path of rectangles rather than per-module s: a version-3 + * symbol is 29x29 = 841 modules, and 841 elements per card times 95 cards is a + * document a print dialog struggles with. + */ +export function qrSvg(text, { size = 120, margin = 2, dark = '#14110d' } = {}) { + const { size: n, modules } = qrMatrix(text); + const total = n + margin * 2; + let d = ''; + for (let r = 0; r < n; r++) { + for (let c = 0; c < n; c++) { + if (modules[r * n + c]) d += `M${c + margin} ${r + margin}h1v1h-1z`; + } + } + return `` + + `` + + ``; +} diff --git a/library/scripts/posters/packet-strings.json b/library/scripts/posters/packet-strings.json index 8212aba89..741fe8429 100644 --- a/library/scripts/posters/packet-strings.json +++ b/library/scripts/posters/packet-strings.json @@ -10,6 +10,12 @@ "list_header": "{from}–{to} of {count} · pray for them by name", "people_suffix": "people", "no_photo": "no photo available", + "deck_title": "Prayer Cards", + "card_country": "Country", + "card_population": "People", + "card_language": "Language", + "card_religion": "Religion", + "card_cta": "Pray for them", "points_title": "12 Prayer Points", "points_intro": "One hour with God, five minutes each. Pray these twelve for the people groups in this packet.", "points_attrib": "Prayer rhythms inspired by Metacamp · metacamp.org", diff --git a/library/scripts/posters/packet.mjs b/library/scripts/posters/packet.mjs index f7fed6b54..29a53e0e0 100644 --- a/library/scripts/posters/packet.mjs +++ b/library/scripts/posters/packet.mjs @@ -68,22 +68,14 @@ const tr = (k) => ((L.rhythms || {})[k] !== undefined ? L.rhythms[k] : EN.rhythm const POINTS = L.points || EN.points; const fill = (s, vars) => String(s).replace(/\{(\w+)\}/g, (_, k) => (vars[k] ?? '')); -// ── SHEET GEOMETRY — the letter-portrait sheet, same as the poster format ─── -const W = 1500, H = 1941; // CSS px; 8.5x11 at width 1500 -const PAGE_W_IN = 8.5; -const SCALE = (PAGE_W_IN * 96 / W).toFixed(6); // print scale: one sheet = one page -const M = 60, HEAD = 90; // margins + running header -const COLS = 2, ROWS = 10, PER_PAGE = COLS * ROWS; -const GUT = 14; -const CW = (W - 2 * M - GUT * (COLS - 1)) / COLS; -const CH = (H - 2 * M - HEAD - GUT * (ROWS - 1)) / ROWS; -const PHOTO = Math.min(CH - 8, CW * 0.34); - -const esc = (s) => String(s ?? '').replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); -// The API returns some fields as { value, label } dicts; the card wants the label. -const flat = (v) => (v && typeof v === 'object' ? (v.label ?? v.value ?? '') : (v ?? '')); -const num = (n) => (Number.isFinite(Number(n)) ? Number(n).toLocaleString(LANG) : '—'); +// ── THE RENDERER IS SHARED ────────────────────────────────────────────────── +// The pages themselves live in library/packet/packet-render.js so that the browser +// (the UPG-100 legend's "Prayer packet" export) and this build-time script render +// the SAME packet from the SAME code. Changing a page here changes it in both. +const { createPacketRenderer } = await import( + join(__dirname, '..', '..', 'packet', 'packet-render.js')); +const R = createPacketRenderer({ strings: STRINGS, lang: LANG }); +const { mapPage, listPages, pointsPage, wheelPage, css, mapCss, PER_PAGE, W, H } = R; // ── DATA ──────────────────────────────────────────────────────────────────── const clusters = JSON.parse(readFileSync(join(DATA, 'clusters.json'), 'utf8')); @@ -135,229 +127,18 @@ async function fetchPhotos(groups, limit = 16) { } // ── PAGE SHELL ────────────────────────────────────────────────────────────── -const sheet = (inner, cls = '') => - `
${inner}
`; - -function css() { - return ` - @page{size:letter portrait;margin:0} - html,body{margin:0;background:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact} - .sheet{position:relative;width:${W}px;height:${H}px;background:#f7f4ec;overflow:hidden; - page-break-after:always;break-after:page} - .sheet:last-child{page-break-after:auto;break-after:auto} - .hd{position:absolute;left:${M}px;top:46px;font:700 30px Georgia,'Palatino Linotype',serif;color:#1b1a17} - .hd-r{position:absolute;right:${M}px;top:54px;font:400 19px Georgia,serif;color:#8c8170} - .card{position:absolute;display:flex;gap:12px;align-items:center; - border-bottom:1px solid #e2ddd0;padding-bottom:6px} - .card img,.card .nophoto{width:${PHOTO.toFixed(0)}px;height:${PHOTO.toFixed(0)}px;flex:0 0 auto;border-radius:3px} - .card img{object-fit:cover} - .card .nophoto{border:1px solid #d6d0c0;background:#f2efe6;display:flex;align-items:center; - justify-content:center;font:italic 13px Georgia,serif;color:#a89f8c;text-align:center;padding:6px} - .nm{font:700 25px Georgia,serif;color:#1b1a17;line-height:1.1} - .mt{font:400 17px Georgia,serif;color:#6d766e} - /* FINE PRINT — Driver: "attribution minimal, fine print small". */ - .fine{position:absolute;left:0;right:0;bottom:22px;text-align:center; - font:400 13px Georgia,serif;color:#a89f8c} - /* PRINT. The sheet is authored at ${W}px wide while @page is physical, so without - a rescale the browser maps ${W}px -> 15.6in and TILES one sheet over many pages. - - ⚠ Use zoom, NOT transform:scale(). They look identical on screen and behave - completely differently under pagination: - transform is paint-time — the element still RESERVES its full ${H}px layout - box, so the paginator walks ${H}px of content and breaks it across - two sheets, inking only the top of the first. Measured: 8 sheets - came out as 16 PDF pages. Negative margins do NOT fix this — they - collapse the outer space, not the fragmentation box. - zoom is layout-time — the box itself becomes ${(PAGE_W_IN*96).toFixed(0)}px - wide, so pagination sees the scaled size. Measured: 1 page/sheet. - Verified by _probe-pagecount.mjs (transform 2, transform+margins 2, zoom 1). */ - @media print{ - html,body{width:${(PAGE_W_IN * 96).toFixed(0)}px;margin:0;padding:0} - .sheet{width:${W}px;height:${H}px;zoom:${SCALE}; - page-break-after:always;break-after:page} - .sheet:last-child{page-break-after:auto;break-after:auto} - }`; -} - -// Lift the poster's stylesheet so the inlined map keeps its palette and map rules, -// dropping only the rules that would fight the packet's own page shell. -// -// Comments are stripped FIRST and deliberately: generate.mjs's CSS comments are long -// prose that contains braces and selector-like text, so any brace-counting or -// selector regex run over the raw source mis-parses them as rules. Strip, then split. -function mapCss(posterHtml) { - const block = posterHtml.match(/ -${pages.join('\n')}`; - return { html, pageCount: pages.length, withPhoto }; + // 1 map + N list pages + points + wheel — asked of the renderer, not recomputed + // here, so this count cannot disagree with what was actually emitted. + const pageCount = 1 + Math.ceil(groups.length / R.PER_PAGE) + 2; + return { html, pageCount, withPhoto }; } // ── MAIN ──────────────────────────────────────────────────────────────────── diff --git a/package.json b/package.json index 2d134e1b5..640731f35 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,8 @@ "check:heartbeat": "node internal/check-heartbeat-threshold.mjs # the HEARTBEAT ZONE threshold (the choropleth's top bin) must come from config AND the shipped config must still render today's ramp. Two sides: (B) a configured threshold must MOVE the edge — catches re-hard-coding; (A2) dashboard.config.js's own map.* must still resolve to 5/20/60/150/Infinity — catches the shipped default silently changing. A2 was MISSING at first and heartbeatThreshold:999 shipped past this gate printing 'default ramp unchanged'. A grep for '150' cannot do either job: it false-positives on the legitimate default and false-negatives on a re-hard-coding at 200. run check:heartbeat:self-test for the NEGATIVE tests (3 cases).", "check:heartbeat:self-test": "node internal/check-heartbeat-threshold.mjs --self-test # THREE regression cases, each required to fire ITS OWN assertion: [literal] resolver replaced by the old hard-coded array -> B; [shipped-default] dashboard.config.js heartbeatThreshold changed -> A2; [shipped-mode] heartbeatMode flipped to quantile -> A2. Poisons IN MEMORY, never the file. Testing that the FEATURE works is not testing that the REGRESSION is caught — this gate shipped with only the first and missed the second.", "build:unlocked": "bun run gates:pre && bun run library-index && bun run check:library-index && bun run clean && bun run token && bun run build:bundles && bun run tree && bun run gates:post && bun run gallery", + "check:card-deck": "node internal/check-card-deck.mjs", + "check:packet-browser": "node internal/check-packet-browser.mjs", "check:packet-render": "node internal/check-packet-render.mjs", "check:template-literal": "node internal/template-literal-check.mjs", "verify:map-paint": "node internal/verify-map-paint.mjs", diff --git a/plugin-designs/my-upg-100-list/poster-wall.vue b/plugin-designs/my-upg-100-list/poster-wall.vue index f9f73a1a7..b5378eb50 100644 --- a/plugin-designs/my-upg-100-list/poster-wall.vue +++ b/plugin-designs/my-upg-100-list/poster-wall.vue @@ -38,6 +38,7 @@ */ import { computed, inject, ref, watch, onBeforeUnmount } from 'vue' import { useShadowStyles } from '@map/composables/useShadowStyles.js' +import { useI18n } from 'vue-i18n' // Export-modal geometry — see the note at .modal-scrim below, and library/utils/viewportScrim.js. import { useViewportScrim } from '@map/utils/viewportScrim.js' // Named imports: only the list arrays ship in the bundle; the file's bookkeeping fields stay out. @@ -263,6 +264,27 @@ async function renderFor(list, spec) { const EXPORT_SPEC = { widthIn: 8.5, heightIn: 12.75, dpi: 150 } // single-canvas, phone-safe const exportState = ref(null) // { label, phase, message, pct, kind } + +// CARD STOCK for the prayer-card deck. The Driver asked to be able to "choose the +// layout of the print dialog to choose the aspect ratio of these prayer cards", so +// the stock is a user choice, not a constant. Poker (2.5x3.5in) is the default: it +// is what commercial card printers, sleeves and boxes are built around. +// @page takes these as explicit inches — a NAMED size silently falls back to letter +// in Chromium, which is the exact bug this deck is being fixed for. +const DECK_STOCKS = [ + { id: 'poker', label: 'Card 2.5 × 3.5 in' }, + { id: 'postcard', label: 'Postcard 4 × 6 in' }, + { id: 'a6', label: 'A6 105 × 148 mm' }, +] +const deckStock = ref('poker') +// The deck follows the app's locale; packet-strings.json falls back PER KEY, and +// the QR on each card encodes the LOCALISED profile URL, so a Spanish card scans +// through to the Spanish page. +const { locale: deckLocale } = useI18n() +function deckLang() { + const l = deckLocale && (deckLocale.value ?? deckLocale) + return (typeof l === 'string' && l) || 'en' +} const { scrimRef, scrimStyle } = useViewportScrim(exportState) // exportPoster()/downloadPacket()/download() REMOVED (2026-09-23) — the Driver's brief was @@ -411,7 +433,12 @@ async function printPoster(list) { // disagree between the map, the list print and the card deck. async function fetchListRecords(list) { if (!API_BASE) throw new Error('no API configured') - const fields = 'slug,name,country_code,wagf_region,wagf_block,rop1,population,religion' + // image_url + primary_language are what make a PRAYER CARD rather than a data + // tile: a face and the tongue the gospel has to reach them in. The deck shipped + // without either because they were never requested here — measured 95/95 groups + // DO have a portrait, so the omission cost every card its photo. + const fields = 'slug,name,country_code,wagf_region,wagf_block,rop1,population,religion,' + + 'image_url,primary_language' const resp = await fetch(`${API_BASE}/api/people-groups/list?fields=${fields}&lang=en`, { cache: 'no-store' }) if (!resp.ok) throw new Error(`people-groups fetch failed (${resp.status})`) const records = normalizeRecords(extractRecords(await resp.json())) @@ -505,51 +532,25 @@ async function printCardDeck(list) { message: 'fetching people-group records', pct: 30 } try { const rows = await fetchListRecords(list) + // ★ THE PAGE IS THE CARD. This used to set @page{size:letter portrait} and give + // each card height:100%, so a "deck" printed as 95 mostly-empty 8.5x11 sheets + // with no photo. The Driver: "the print dialog that opens up needs to show all + // the cards not in a paper format but a CARD format, the aspect ratio that is + // used in the card generator." + // + // The pages now come from library/packet/card-render.js — one renderer, every + // caller — which sets @page to the card stock's own inches, so one card is + // exactly one page at 2.5x3.5in. Print on cardstock and cut, or send the PDF + // to a card printer. + const [{ createCardRenderer }, strings] = await Promise.all([ + import('@map/packet/card-render.js'), + import('@map/scripts/posters/packet-strings.json').then((m) => m.default || m), + ]) + const R = createCardRenderer({ strings, lang: deckLang(), stock: deckStock.value }) const title = `Doxa UPG prayer cards — ${escapeHtml(list.label || list.id)}` - const cardsHtml = rows.map((r) => ( - '
' + - '
' + escapeHtml(list.label || list.id) + '
' + - '

' + escapeHtml(r.name) + '

' + - '
' + - '
Country
' + escapeHtml(r.country_code_label || r.country_code || '—') + '
' + - '
Population
' + escapeHtml(r.population ? Number(r.population).toLocaleString() : '—') + '
' + - '
Affinity bloc
' + escapeHtml((r.rop1 && r.rop1.label) || '—') + '
' + - '
Religion
' + escapeHtml(r.religion_label || '—') + '
' + - '
' + - '

"Ask the Lord of the harvest to send out workers into his harvest field." — Matthew 9:38

' + - '
' - )).join('') - const w = openPrintWindow(title, - '' + title + '' + - '' + - '
' + cardsHtml + '
' + - '', { autoprint: true }) + exportState.value = { ...exportState.value, phase: 'render', + message: `laying out ${rows.length} cards`, pct: 70 } + const w = openPrintWindow(title, R.buildDeck(list, rows), { autoprint: true }) if (!w) { // See the note in the list path: an iframe cannot be pop-up blocked. exportState.value = { label: list.label, kind: 'Card Deck', phase: 'error', @@ -692,6 +693,14 @@ useShadowStyles( 'border-radius:2px;background:transparent;transition:background .15s}' + '.pbtn:hover{color:#10b981}' + '.pbtn:hover::after{background:#10b981}' + + // CARD STOCK picker — sits with the print buttons because it changes what the + // print dialog PRODUCES (it becomes the @page size). Quieter than the buttons: + // it is a modifier, not an action. + '.pstock{flex:0 1 auto;max-width:100%;border:1px solid #d8dde3;border-radius:3px;' + + 'background:#fff;color:#5b6672;font:inherit;font-size:9.5px;font-weight:600;' + + 'padding:2px 4px;cursor:pointer;line-height:1.25}' + + '.pstock:hover{border-color:#10b981;color:#10b981}' + + '.is-dark .pstock{background:#12211a;border-color:#2c4a3b;color:#9fb3a8}' + '.is-dark .pbtn{color:#9fb3a8}' + // SECTIONS. // Sections need more separation than the cards within them, or the regional @@ -840,6 +849,15 @@ useShadowStyles( :aria-label="`Print the ${list.label} UPG prayer poster`">UPG prayer poster + + diff --git a/plugin-designs/my-upg-100-list/upg-100-list.vue b/plugin-designs/my-upg-100-list/upg-100-list.vue index eb634839b..a2ba7ebd9 100644 --- a/plugin-designs/my-upg-100-list/upg-100-list.vue +++ b/plugin-designs/my-upg-100-list/upg-100-list.vue @@ -74,6 +74,11 @@ import GeocoderComponent from '@map/components/map-controls/GeocoderComponent.vu import { lists as clusterLists, asia_lists as clusterAsiaLists, uncovered_lists as clusterUncoveredLists } from './data/clusters.json' const clusters = { lists: clusterLists, asia_lists: clusterAsiaLists, uncovered_lists: clusterUncoveredLists } import { normalizeRecords, extractRecords } from './data/normalize.js' +import { useI18n } from 'vue-i18n' +// The in-place print helper: a hidden same-page iframe, NOT window.open(). A popup +// is blockable and drops the user out of the map; the iframe opens the print dialog +// right here. Shared so the packet, the poster and the card deck all print the same way. +import { openPrintFrame } from '@map/composables/printInPlace.js' import { buildLegendNodes, leafZones } from './data/legend-tree.js' import { resolveAllZones } from './data/zone-geometry.js' // slice 09b-9 §3 (L18/L29 FIX): the per-zone color OVERRIDE map. zone-colors.json @@ -318,6 +323,12 @@ let addPinLayers = null // set in onMounted (closes over pin const API_BASE = (typeof window !== 'undefined' && window.MAP_APP_API_URL) || import.meta.env.VITE_API_BASE_URL || '' + +// Prayer-packet printing (legend Export > Prayer packet). openPrintFrame is the +// SHARED in-place print helper — a hidden same-page iframe, so the dialog opens in +// this tab rather than a popup a browser may block. The packet's locale follows the +// app's, so a reader gets it in their own language. +const { locale: packetLocale } = useI18n() const DEAF_COUNT = 123 // Shadow-root CSS. (No backticks inside this string — a stray backtick closes the @@ -1069,17 +1080,28 @@ provide('onSemanticTreeSelect', onLegendSelect) // ── LEGEND EXPORT (top-right of the legend titlebar) ──────────────────────── // The shared legend emits 'export' with 'poster' | 'packet' for the currently -// SELECTED node. Poster serves the SAME pre-rendered artefact the poster wall -// downloads — one file, so the legend, the wall and the preview can never show -// three different things. Packet is not built yet and says so plainly. -function onLegendExport(kind) { +// SELECTED node — the Driver's ask: "I select one and it gives me print options at +// the top right of the legend... that's the only way that map would be usable." +// +// Poster serves the SAME pre-rendered artefact the poster wall downloads — one +// file, so the legend, the wall and the preview can never show three different +// things. +// +// ★ PACKET IS GENERATED IN THE BROWSER, ON CLICK — never shipped as an asset. +// One packet is ~3.5 MB (photos dominate); 28 zones would add ~100 MB to a repo +// that ALREADY had a publish blocked at a 74 MB asset tree. Generating on click +// costs zero repository bytes, and the photos come from URLs the records already +// carry. This is the Driver's instruction: "instead of fetching the poster from +// the public folder I want the client side code to generate the poster real time +// when you click on the button so it does not take a lot of mb storage." +// +// The pages themselves come from library/packet/packet-render.js — the SAME module +// the build-time generator uses, so the printed packet and the generated one cannot +// drift. The card asked for exactly that: reuse, do not grow a fourth print path. +async function onLegendExport(kind) { const zoneId = selectedKey.value; if (!zoneId) return; // the button only shows with a selection - if (kind === 'packet') { - status.value = 'Prayer List — coming soon'; - setTimeout(() => { status.value = ''; }, 2600); - return; - } + if (kind === 'packet') { await printPrayerPacket(zoneId); return; } const base = resolveAssetsBase(profileConfig.value); const a = document.createElement('a'); a.href = `${base}/posters/${zoneId}.webp`; @@ -1087,6 +1109,89 @@ function onLegendExport(kind) { document.body.appendChild(a); a.click(); a.remove(); } +// Build and print a zone's prayer packet without leaving the page. +// PAGE ORDER IS THE PRODUCT SPEC: map · people groups 20/page with photos · +// 12 prayer points · prayer wheel. +let packetBusy = false; +async function printPrayerPacket(zoneId) { + if (packetBusy) return; // a second click must not open a second job + packetBusy = true; + try { + const zone = allLists().find((z) => z.id === zoneId); + if (!zone) throw new Error(`no list "${zoneId}"`); + status.value = 'Building the prayer packet…'; + + if (!API_BASE) throw new Error('no API configured'); + const fields = 'slug,name,country_code,population,religion,image_url'; + const resp = await fetch(`${API_BASE}/api/people-groups/list?fields=${fields}&lang=${packetLang()}`, + { cache: 'no-store' }); + if (!resp.ok) throw new Error(`people-groups fetch failed (${resp.status})`); + const records = normalizeRecords(extractRecords(await resp.json())); + + // ⚠ pg_slugs BYPASSES the shared evaluator — it intentionally THROWS on that + // type, and 12 of the 27 lists use it. Same special-case the map and the poster + // wall already apply, so all three agree about who is in a list. + let slugs; + if (zone.selector && zone.selector.type === 'pg_slugs') { + slugs = new Set(zone.selector.values || []); + } else { + const { evaluate } = await import('./data/selector-evaluator.js'); + slugs = new Set(evaluate(zone.selector, records)); // evaluate returns a Set + } + const groups = records.filter((r) => slugs.has(r.slug)) + .sort((a, b) => String(a.name).localeCompare(String(b.name), packetLang())); + if (!groups.length) throw new Error('that list resolved to no people groups'); + + // Photos stay as URLs here. The Node generator base64-inlines them so its file + // is self-contained offline; in a browser the print frame can fetch them, and + // inlining 95 images client-side would stall the tab for no gain. + const photos = new Map(groups.filter((g) => g.image_url).map((g) => [g.slug, g.image_url])); + + const [{ createPacketRenderer }, strings] = await Promise.all([ + import('@map/packet/packet-render.js'), + import('@map/scripts/posters/packet-strings.json').then((m) => m.default || m), + ]); + const R = createPacketRenderer({ strings, lang: packetLang() }); + + // The map page takes the poster's . If it cannot be fetched the packet + // still prints — a cover without the map beats no packet at all. + let mapSvg = ''; + try { + const base = resolveAssetsBase(profileConfig.value); + const html = await (await fetch(`${base}/posters/${zoneId}.html`, { cache: 'force-cache' })).text(); + const svg = html.match(//); + if (svg) mapSvg = `` + + `
${svg[0]}
`; + } catch { /* cover page without the map */ } + + status.value = `Printing ${groups.length} people groups…`; + openPrintFrame(R.buildPacket(zone, groups, photos, mapSvg), { autoprint: true }); + status.value = ''; + } catch (err) { + status.value = `Packet failed: ${err && err.message ? err.message : err}`; + setTimeout(() => { status.value = ''; }, 4000); + } finally { + packetBusy = false; + } +} + +// Every list across all three cluster buckets, flattened. +function allLists() { + return [...(clusters.lists || []), ...(clusters.asia_lists || []), + ...(clusters.uncovered_lists || [])]; +} + +// The packet follows the app's locale so a reader gets it in their own language; +// packet-strings.json falls back PER KEY, so a half-finished translation renders +// its finished keys rather than blanking. +function packetLang() { + // useI18n()'s locale can be a plain string or a ref depending on how the host + // installed it, so normalise rather than assume. + const l = packetLocale && (packetLocale.value ?? packetLocale); + return (typeof l === 'string' && l) || 'en'; +} + function onLegendSelect(node) { if (!map || !map.getLayer('tapestry-fill')) return // R1.2 D-6: in batch mode the legend feeds the selection union, NOT the isolate. diff --git a/public/doxa-maps/my-upg-100-list/my-upg-100-list.js b/public/doxa-maps/my-upg-100-list/my-upg-100-list.js index efa46c6c4..411878ec1 100644 --- a/public/doxa-maps/my-upg-100-list/my-upg-100-list.js +++ b/public/doxa-maps/my-upg-100-list/my-upg-100-list.js @@ -1,46 +1,46 @@ -(function(){"use strict";var Md;var Qo=typeof document<"u"?document.currentScript:null;const Sw="modulepreload",Aw=function(e){return"/"+e},$w={},En=function(t,o,n){let a=Promise.resolve();function r(s){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=s,window.dispatchEvent(i),!i.defaultPrevented)throw s}return a.then(s=>{for(const i of s||[])i.status==="rejected"&&r(i.reason);return t().catch(r)})};/** +(function(){"use strict";var rp;var ln=typeof document<"u"?document.currentScript:null;const gx="modulepreload",fx=function(e){return"/"+e},hx={},to=function(t,o,n){let a=Promise.resolve();function r(s){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=s,window.dispatchEvent(i),!i.defaultPrevented)throw s}return a.then(s=>{for(const i of s||[])i.status==="rejected"&&r(i.reason);return t().catch(r)})};/** * @vue/shared v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function mr(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const ze={},en=[],qt=()=>{},di=()=>!1,ua=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),da=e=>e.startsWith("onUpdate:"),nt=Object.assign,br=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},Fd=Object.prototype.hasOwnProperty,Re=(e,t)=>Fd.call(e,t),ke=Array.isArray,Co=e=>Tn(e)==="[object Map]",pa=e=>Tn(e)==="[object Set]",pi=e=>Tn(e)==="[object Date]",xe=e=>typeof e=="function",Ve=e=>typeof e=="string",It=e=>typeof e=="symbol",je=e=>e!==null&&typeof e=="object",gi=e=>(je(e)||xe(e))&&xe(e.then)&&xe(e.catch),fi=Object.prototype.toString,Tn=e=>fi.call(e),Od=e=>Tn(e).slice(8,-1),ga=e=>Tn(e)==="[object Object]",fa=e=>Ve(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Pn=mr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ha=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},Dd=/-\w/g,gt=ha(e=>e.replace(Dd,t=>t.slice(1).toUpperCase())),Bd=/\B([A-Z])/g,Rt=ha(e=>e.replace(Bd,"-$1").toLowerCase()),ma=ha(e=>e.charAt(0).toUpperCase()+e.slice(1)),yr=ha(e=>e?`on${ma(e)}`:""),Jt=(e,t)=>!Object.is(e,t),ba=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},_r=e=>{const t=parseFloat(e);return isNaN(t)?e:t},mi=e=>{const t=Ve(e)?Number(e):NaN;return isNaN(t)?e:t};let bi;const ya=()=>bi||(bi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function et(e){if(ke(e)){const t={};for(let o=0;o{if(o){const n=o.split(Gd);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Le(e){let t="";if(Ve(e))t=e;else if(ke(e))for(let o=0;o!!(e&&e.__v_isRef===!0),ue=e=>Ve(e)?e:e==null?"":ke(e)||je(e)&&(e.toString===fi||!xe(e.toString))?vi(e)?ue(e.value):JSON.stringify(e,ki,2):String(e),ki=(e,t)=>vi(t)?ki(e,t.value):Co(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,a],r)=>(o[vr(n,r)+" =>"]=a,o),{})}:pa(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>vr(o))}:It(t)?vr(t):je(t)&&!ke(t)&&!ga(t)?String(t):t,vr=(e,t="")=>{var o;return It(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};/** +**/function Cr(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const Xe={},cn=[],oo=()=>{},$i=()=>!1,_a=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),va=e=>e.startsWith("onUpdate:"),gt=Object.assign,Tr=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},cp=Object.prototype.hasOwnProperty,Ke=(e,t)=>cp.call(e,t),we=Array.isArray,No=e=>Fn(e)==="[object Map]",Vo=e=>Fn(e)==="[object Set]",Ai=e=>Fn(e)==="[object Date]",Ae=e=>typeof e=="function",Qe=e=>typeof e=="string",Bt=e=>typeof e=="symbol",ze=e=>e!==null&&typeof e=="object",Li=e=>(ze(e)||Ae(e))&&Ae(e.then)&&Ae(e.catch),Ei=Object.prototype.toString,Fn=e=>Ei.call(e),up=e=>Fn(e).slice(8,-1),ka=e=>Fn(e)==="[object Object]",wa=e=>Qe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,On=Cr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),xa=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},dp=/-\w/g,vt=xa(e=>e.replace(dp,t=>t.slice(1).toUpperCase())),pp=/\B([A-Z])/g,Gt=xa(e=>e.replace(pp,"-$1").toLowerCase()),Sa=xa(e=>e.charAt(0).toUpperCase()+e.slice(1)),Pr=xa(e=>e?`on${Sa(e)}`:""),no=(e,t)=>!Object.is(e,t),$a=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},Aa=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Ti=e=>{const t=Qe(e)?Number(e):NaN;return isNaN(t)?e:t};let Pi;const La=()=>Pi||(Pi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function at(e){if(we(e)){const t={};for(let o=0;o{if(o){const n=o.split(fp);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Ne(e){let t="";if(Qe(e))t=e;else if(we(e))for(let o=0;oIo(o,t))}const Ii=e=>!!(e&&e.__v_isRef===!0),de=e=>Qe(e)?e:e==null?"":we(e)||ze(e)&&(e.toString===Ei||!Ae(e.toString))?Ii(e)?de(e.value):JSON.stringify(e,Ri,2):String(e),Ri=(e,t)=>Ii(t)?Ri(e,t.value):No(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,a],r)=>(o[Mr(n,r)+" =>"]=a,o),{})}:Vo(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>Mr(o))}:Bt(t)?Mr(t):ze(t)&&!we(t)&&!ka(t)?String(t):t,Mr=(e,t="")=>{var o;return Bt(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};/** * @vue/reactivity v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let ut;class wi{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&ut&&(ut.active?(this.parent=ut,this.index=(ut.scopes||(ut.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){const n=this.scopes.slice();for(t=0,o=n.length;t0&&--this._on===0){if(ut===this)ut=this.prevScope;else{let t=ut;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let o,n;for(o=0,n=this.effects.length;o0)return;if(Nn){let t=Nn;for(Nn=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;Mn;){let t=Mn;for(Mn=void 0;t;){const o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=o}}if(e)throw e}function Li(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ci(e){let t,o=e.depsTail,n=o;for(;n;){const a=n.prevDep;n.version===-1?(n===o&&(o=a),$r(n),Wd(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=t,e.depsTail=o}function Ar(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ei(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ei(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===In)||(e.globalVersion=In,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ar(e))))return;e.flags|=2;const t=e.dep,o=We,n=Ut;We=e,Ut=!0;try{Li(e);const a=e.fn(e._value);(t.version===0||Jt(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{We=o,Ut=n,Ci(e),e.flags&=-3}}function $r(e,t=!1){const{dep:o,prevSub:n,nextSub:a}=e;if(n&&(n.nextSub=a,e.prevSub=void 0),a&&(a.prevSub=n,e.nextSub=void 0),o.subs===e&&(o.subs=n,!n&&o.computed)){o.computed.flags&=-5;for(let r=o.computed.deps;r;r=r.nextDep)$r(r,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function Wd(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let Ut=!0;const Ti=[];function Zt(){Ti.push(Ut),Ut=!1}function Xt(){const e=Ti.pop();Ut=e===void 0?!0:e}function Pi(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=We;We=void 0;try{t()}finally{We=o}}}let In=0;class Yd{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Lr{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!We||!Ut||We===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==We)o=this.activeLink=new Yd(We,this),We.deps?(o.prevDep=We.depsTail,We.depsTail.nextDep=o,We.depsTail=o):We.deps=We.depsTail=o,Mi(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){const n=o.nextDep;n.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=n),o.prevDep=We.depsTail,o.nextDep=void 0,We.depsTail.nextDep=o,We.depsTail=o,We.deps===o&&(We.deps=n)}return o}trigger(t){this.version++,In++,this.notify(t)}notify(t){xr();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{Sr()}}}function Mi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)Mi(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const va=new WeakMap,Go=Symbol(""),Cr=Symbol(""),Rn=Symbol("");function xt(e,t,o){if(Ut&&We){let n=va.get(e);n||va.set(e,n=new Map);let a=n.get(o);a||(n.set(o,a=new Lr),a.map=n,a.key=o),a.track()}}function po(e,t,o,n,a,r){const s=va.get(e);if(!s){In++;return}const i=l=>{l&&l.trigger()};if(xr(),t==="clear")s.forEach(i);else{const l=ke(e),c=l&&fa(o);if(l&&o==="length"){const u=Number(n);s.forEach((p,g)=>{(g==="length"||g===Rn||!It(g)&&g>=u)&&i(p)})}else switch((o!==void 0||s.has(void 0))&&i(s.get(o)),c&&i(s.get(Rn)),t){case"add":l?c&&i(s.get("length")):(i(s.get(Go)),Co(e)&&i(s.get(Cr)));break;case"delete":l||(i(s.get(Go)),Co(e)&&i(s.get(Cr)));break;case"set":Co(e)&&i(s.get(Go));break}}Sr()}function qd(e,t){const o=va.get(e);return o&&o.get(t)}function tn(e){const t=Me(e);return t===e?t:(xt(t,"iterate",Rn),Ft(e)?t:t.map(Kt))}function ka(e){return xt(e=Me(e),"iterate",Rn),e}function Qt(e,t){return ho(e)?nn(fo(e)?Kt(t):t):Kt(t)}const Jd={__proto__:null,[Symbol.iterator](){return Er(this,Symbol.iterator,e=>Qt(this,e))},concat(...e){return tn(this).concat(...e.map(t=>ke(t)?tn(t):t))},entries(){return Er(this,"entries",e=>(e[1]=Qt(this,e[1]),e))},every(e,t){return go(this,"every",e,t,void 0,arguments)},filter(e,t){return go(this,"filter",e,t,o=>o.map(n=>Qt(this,n)),arguments)},find(e,t){return go(this,"find",e,t,o=>Qt(this,o),arguments)},findIndex(e,t){return go(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return go(this,"findLast",e,t,o=>Qt(this,o),arguments)},findLastIndex(e,t){return go(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return go(this,"forEach",e,t,void 0,arguments)},includes(...e){return Tr(this,"includes",e)},indexOf(...e){return Tr(this,"indexOf",e)},join(e){return tn(this).join(e)},lastIndexOf(...e){return Tr(this,"lastIndexOf",e)},map(e,t){return go(this,"map",e,t,void 0,arguments)},pop(){return Fn(this,"pop")},push(...e){return Fn(this,"push",e)},reduce(e,...t){return Ni(this,"reduce",e,t)},reduceRight(e,...t){return Ni(this,"reduceRight",e,t)},shift(){return Fn(this,"shift")},some(e,t){return go(this,"some",e,t,void 0,arguments)},splice(...e){return Fn(this,"splice",e)},toReversed(){return tn(this).toReversed()},toSorted(e){return tn(this).toSorted(e)},toSpliced(...e){return tn(this).toSpliced(...e)},unshift(...e){return Fn(this,"unshift",e)},values(){return Er(this,"values",e=>Qt(this,e))}};function Er(e,t,o){const n=ka(e),a=n[t]();return n!==e&&!Ft(e)&&(a._next=a.next,a.next=()=>{const r=a._next();return r.done||(r.value=o(r.value)),r}),a}const Zd=Array.prototype;function go(e,t,o,n,a,r){const s=ka(e),i=s!==e&&!Ft(e),l=s[t];if(l!==Zd[t]){const p=l.apply(e,r);return i?Kt(p):p}let c=o;s!==e&&(i?c=function(p,g){return o.call(this,Qt(e,p),g,e)}:o.length>2&&(c=function(p,g){return o.call(this,p,g,e)}));const u=l.call(s,c,n);return i&&a?a(u):u}function Ni(e,t,o,n){const a=ka(e),r=a!==e&&!Ft(e);let s=o,i=!1;a!==e&&(r?(i=n.length===0,s=function(c,u,p){return i&&(i=!1,c=Qt(e,c)),o.call(this,c,Qt(e,u),p,e)}):o.length>3&&(s=function(c,u,p){return o.call(this,c,u,p,e)}));const l=a[t](s,...n);return i?Qt(e,l):l}function Tr(e,t,o){const n=Me(e);xt(n,"iterate",Rn);const a=n[t](...o);return(a===-1||a===!1)&&$a(o[0])?(o[0]=Me(o[0]),n[t](...o)):a}function Fn(e,t,o=[]){Zt(),xr();const n=Me(e)[t].apply(e,o);return Sr(),Xt(),n}const Xd=mr("__proto__,__v_isRef,__isVue"),Ii=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(It));function Qd(e){It(e)||(e=String(e));const t=Me(this);return xt(t,"has",e),t.hasOwnProperty(e)}class Ri{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,n){if(o==="__v_skip")return t.__v_skip;const a=this._isReadonly,r=this._isShallow;if(o==="__v_isReactive")return!a;if(o==="__v_isReadonly")return a;if(o==="__v_isShallow")return r;if(o==="__v_raw")return n===(a?r?Gi:ji:r?Bi:Di).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const s=ke(t);if(!a){let l;if(s&&(l=Jd[o]))return l;if(o==="hasOwnProperty")return Qd}const i=Reflect.get(t,o,Ze(t)?t:n);if((It(o)?Ii.has(o):Xd(o))||(a||xt(t,"get",o),r))return i;if(Ze(i)){const l=s&&fa(o)?i:i.value;return a&&je(l)?Mr(l):l}return je(i)?a?Mr(i):on(i):i}}class Fi extends Ri{constructor(t=!1){super(!1,t)}set(t,o,n,a){let r=t[o];const s=ke(t)&&fa(o);if(!this._isShallow){const c=ho(r);if(!Ft(n)&&!ho(n)&&(r=Me(r),n=Me(n)),!s&&Ze(r)&&!Ze(n))return c||(r.value=n),!0}const i=s?Number(o)e,wa=e=>Reflect.getPrototypeOf(e);function ap(e,t,o){return function(...n){const a=this.__v_raw,r=Me(a),s=Co(r),i=e==="entries"||e===Symbol.iterator&&s,l=e==="keys"&&s,c=a[e](...n),u=o?Pr:t?nn:Kt;return!t&&xt(r,"iterate",l?Cr:Go),nt(Object.create(c),{next(){const{value:p,done:g}=c.next();return g?{value:p,done:g}:{value:i?[u(p[0]),u(p[1])]:u(p),done:g}}})}}function xa(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function rp(e,t){const o={get(a){const r=this.__v_raw,s=Me(r),i=Me(a);e||(Jt(a,i)&&xt(s,"get",a),xt(s,"get",i));const{has:l}=wa(s),c=t?Pr:e?nn:Kt;if(l.call(s,a))return c(r.get(a));if(l.call(s,i))return c(r.get(i));r!==s&&r.get(a)},get size(){const a=this.__v_raw;return!e&&xt(Me(a),"iterate",Go),a.size},has(a){const r=this.__v_raw,s=Me(r),i=Me(a);return e||(Jt(a,i)&&xt(s,"has",a),xt(s,"has",i)),a===i?r.has(a):r.has(a)||r.has(i)},forEach(a,r){const s=this,i=s.__v_raw,l=Me(i),c=t?Pr:e?nn:Kt;return!e&&xt(l,"iterate",Go),i.forEach((u,p)=>a.call(r,c(u),c(p),s))}};return nt(o,e?{add:xa("add"),set:xa("set"),delete:xa("delete"),clear:xa("clear")}:{add(a){const r=Me(this),s=wa(r),i=Me(a),l=!t&&!Ft(a)&&!ho(a)?i:a;return s.has.call(r,l)||Jt(a,l)&&s.has.call(r,a)||Jt(i,l)&&s.has.call(r,i)||(r.add(l),po(r,"add",l,l)),this},set(a,r){!t&&!Ft(r)&&!ho(r)&&(r=Me(r));const s=Me(this),{has:i,get:l}=wa(s);let c=i.call(s,a);c||(a=Me(a),c=i.call(s,a));const u=l.call(s,a);return s.set(a,r),c?Jt(r,u)&&po(s,"set",a,r):po(s,"add",a,r),this},delete(a){const r=Me(this),{has:s,get:i}=wa(r);let l=s.call(r,a);l||(a=Me(a),l=s.call(r,a)),i&&i.call(r,a);const c=r.delete(a);return l&&po(r,"delete",a,void 0),c},clear(){const a=Me(this),r=a.size!==0,s=a.clear();return r&&po(a,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(a=>{o[a]=ap(a,e,t)}),o}function Sa(e,t){const o=rp(e,t);return(n,a,r)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?n:Reflect.get(Re(o,a)&&a in n?o:n,a,r)}const sp={get:Sa(!1,!1)},ip={get:Sa(!1,!0)},lp={get:Sa(!0,!1)},cp={get:Sa(!0,!0)},Di=new WeakMap,Bi=new WeakMap,ji=new WeakMap,Gi=new WeakMap;function up(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function on(e){return ho(e)?e:Aa(e,!1,ep,sp,Di)}function dp(e){return Aa(e,!1,op,ip,Bi)}function Mr(e){return Aa(e,!0,tp,lp,ji)}function Cw(e){return Aa(e,!0,np,cp,Gi)}function Aa(e,t,o,n,a){if(!je(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=a.get(e);if(r)return r;const s=up(Od(e));if(s===0)return e;const i=new Proxy(e,s===2?n:o);return a.set(e,i),i}function fo(e){return ho(e)?fo(e.__v_raw):!!(e&&e.__v_isReactive)}function ho(e){return!!(e&&e.__v_isReadonly)}function Ft(e){return!!(e&&e.__v_isShallow)}function $a(e){return e?!!e.__v_raw:!1}function Me(e){const t=e&&e.__v_raw;return t?Me(t):e}function Uo(e){return!Re(e,"__v_skip")&&Object.isExtensible(e)&&hi(e,"__v_skip",!0),e}const Kt=e=>je(e)?on(e):e,nn=e=>je(e)?Mr(e):e;function Ze(e){return e?e.__v_isRef===!0:!1}function ce(e){return Ui(e,!1)}function an(e){return Ui(e,!0)}function Ui(e,t){return Ze(e)?e:new pp(e,t)}class pp{constructor(t,o){this.dep=new Lr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:Me(t),this._value=o?t:Kt(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||Ft(t)||ho(t);t=n?t:Me(t),Jt(t,o)&&(this._rawValue=t,this._value=n?t:Kt(t),this.dep.trigger())}}function ye(e){return Ze(e)?e.value:e}const gp={get:(e,t,o)=>t==="__v_raw"?e:ye(Reflect.get(e,t,o)),set:(e,t,o,n)=>{const a=e[t];return Ze(a)&&!Ze(o)?(a.value=o,!0):Reflect.set(e,t,o,n)}};function Ki(e){return fo(e)?e:new Proxy(e,gp)}function fp(e){const t=ke(e)?new Array(e.length):{};for(const o in e)t[o]=zi(e,o);return t}class hp{constructor(t,o,n){this._object=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=It(o)?o:String(o),this._raw=Me(t);let a=!0,r=t;if(!ke(t)||It(this._key)||!fa(this._key))do a=!$a(r)||Ft(r);while(a&&(r=r.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=ye(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&Ze(this._raw[this._key])){const o=this._object[this._key];if(Ze(o)){o.value=t;return}}this._object[this._key]=t}get dep(){return qd(this._raw,this._key)}}class mp{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function bp(e,t,o){return Ze(e)?e:xe(e)?new mp(e):je(e)&&arguments.length>1?zi(e,t,o):ce(e)}function zi(e,t,o){return new hp(e,t,o)}class yp{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new Lr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=In-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&We!==this)return $i(this,!0),!0}get value(){const t=this.dep.track();return Ei(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function _p(e,t,o=!1){let n,a;return xe(e)?n=e:(n=e.get,a=e.set),new yp(n,a,o)}const La={},Ca=new WeakMap;let Ko;function vp(e,t=!1,o=Ko){if(o){let n=Ca.get(o);n||Ca.set(o,n=[]),n.push(e)}}function kp(e,t,o=ze){const{immediate:n,deep:a,once:r,scheduler:s,augmentJob:i,call:l}=o,c=b=>a?b:Ft(b)||a===!1||a===0?mo(b,1):mo(b);let u,p,g,k,w=!1,_=!1;if(Ze(e)?(p=()=>e.value,w=Ft(e)):fo(e)?(p=()=>c(e),w=!0):ke(e)?(_=!0,w=e.some(b=>fo(b)||Ft(b)),p=()=>e.map(b=>{if(Ze(b))return b.value;if(fo(b))return c(b);if(xe(b))return l?l(b,2):b()})):xe(e)?t?p=l?()=>l(e,2):e:p=()=>{if(g){Zt();try{g()}finally{Xt()}}const b=Ko;Ko=u;try{return l?l(e,3,[k]):e(k)}finally{Ko=b}}:p=qt,t&&a){const b=p,x=a===!0?1/0:a;p=()=>mo(b(),x)}const d=xi(),h=()=>{u.stop(),d&&d.active&&br(d.effects,u)};if(r&&t){const b=t;t=(...x)=>{const A=b(...x);return h(),A}}let y=_?new Array(e.length).fill(La):La;const v=b=>{if(!(!(u.flags&1)||!u.dirty&&!b))if(t){const x=u.run();if(b||a||w||(_?x.some((A,L)=>Jt(A,y[L])):Jt(x,y))){g&&g();const A=Ko;Ko=u;try{const L=[x,y===La?void 0:_&&y[0]===La?[]:y,k];y=x,l?l(t,3,L):t(...L)}finally{Ko=A}}}else u.run()};return i&&i(v),u=new Si(p),u.scheduler=s?()=>s(v,!1):v,k=b=>vp(b,!1,u),g=u.onStop=()=>{const b=Ca.get(u);if(b){if(l)l(b,4);else for(const x of b)x();Ca.delete(u)}},t?n?v(!0):y=u.run():s?s(v.bind(null,!0),!0):u.run(),h.pause=u.pause.bind(u),h.resume=u.resume.bind(u),h.stop=h,h}function mo(e,t=1/0,o){if(t<=0||!je(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,Ze(e))mo(e.value,t,o);else if(ke(e))for(let n=0;n{mo(n,t,o)});else if(ga(e)){for(const n in e)mo(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&mo(e[n],t,o)}return e}/** +**/let mt;class Fi{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&mt&&(mt.active?(this.parent=mt,this.index=(mt.scopes||(mt.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,o;if(this.scopes){const n=this.scopes.slice();for(t=0,o=n.length;t0&&--this._on===0){if(mt===this)mt=this.prevScope;else{let t=mt;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let o,n;for(o=0,n=this.effects.length;o0)return;if(Bn){let t=Bn;for(Bn=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;Dn;){let t=Dn;for(Dn=void 0;t;){const o=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(n){e||(e=n)}t=o}}if(e)throw e}function ji(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ui(e){let t,o=e.depsTail,n=o;for(;n;){const a=n.prevDep;n.version===-1?(n===o&&(o=a),Dr(n),kp(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=t,e.depsTail=o}function Or(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ki(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ki(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Gn)||(e.globalVersion=Gn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Or(e))))return;e.flags|=2;const t=e.dep,o=et,n=Yt;et=e,Yt=!0;try{ji(e);const a=e.fn(e._value);(t.version===0||no(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{et=o,Yt=n,Ui(e),e.flags&=-3}}function Dr(e,t=!1){const{dep:o,prevSub:n,nextSub:a}=e;if(n&&(n.nextSub=a,e.prevSub=void 0),a&&(a.prevSub=n,e.nextSub=void 0),o.subs===e&&(o.subs=n,!n&&o.computed)){o.computed.flags&=-5;for(let r=o.computed.deps;r;r=r.nextDep)Dr(r,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function kp(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let Yt=!0;const Hi=[];function ao(){Hi.push(Yt),Yt=!1}function ro(){const e=Hi.pop();Yt=e===void 0?!0:e}function zi(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=et;et=void 0;try{t()}finally{et=o}}}let Gn=0;class wp{constructor(t,o){this.sub=t,this.dep=o,this.version=o.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Br{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!et||!Yt||et===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==et)o=this.activeLink=new wp(et,this),et.deps?(o.prevDep=et.depsTail,et.depsTail.nextDep=o,et.depsTail=o):et.deps=et.depsTail=o,Vi(o);else if(o.version===-1&&(o.version=this.version,o.nextDep)){const n=o.nextDep;n.prevDep=o.prevDep,o.prevDep&&(o.prevDep.nextDep=n),o.prevDep=et.depsTail,o.nextDep=void 0,et.depsTail.nextDep=o,et.depsTail=o,et.deps===o&&(et.deps=n)}return o}trigger(t){this.version++,Gn++,this.notify(t)}notify(t){Rr();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{Fr()}}}function Vi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let n=t.deps;n;n=n.nextDep)Vi(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const Ea=new WeakMap,Wo=Symbol(""),Gr=Symbol(""),jn=Symbol("");function Pt(e,t,o){if(Yt&&et){let n=Ea.get(e);n||Ea.set(e,n=new Map);let a=n.get(o);a||(n.set(o,a=new Br),a.map=n,a.key=o),a.track()}}function yo(e,t,o,n,a,r){const s=Ea.get(e);if(!s){Gn++;return}const i=l=>{l&&l.trigger()};if(Rr(),t==="clear")s.forEach(i);else{const l=we(e),c=l&&wa(o);if(l&&o==="length"){const u=Number(n);s.forEach((p,f)=>{(f==="length"||f===jn||!Bt(f)&&f>=u)&&i(p)})}else switch((o!==void 0||s.has(void 0))&&i(s.get(o)),c&&i(s.get(jn)),t){case"add":l?c&&i(s.get("length")):(i(s.get(Wo)),No(e)&&i(s.get(Gr)));break;case"delete":l||(i(s.get(Wo)),No(e)&&i(s.get(Gr)));break;case"set":No(e)&&i(s.get(Wo));break}}Fr()}function xp(e,t){const o=Ea.get(e);return o&&o.get(t)}function un(e){const t=Oe(e);return t===e?t:(Pt(t,"iterate",jn),jt(e)?t:t.map(qt))}function Ca(e){return Pt(e=Oe(e),"iterate",jn),e}function so(e,t){return ko(e)?pn(vo(e)?qt(t):t):qt(t)}const Sp={__proto__:null,[Symbol.iterator](){return jr(this,Symbol.iterator,e=>so(this,e))},concat(...e){return un(this).concat(...e.map(t=>we(t)?un(t):t))},entries(){return jr(this,"entries",e=>(e[1]=so(this,e[1]),e))},every(e,t){return _o(this,"every",e,t,void 0,arguments)},filter(e,t){return _o(this,"filter",e,t,o=>o.map(n=>so(this,n)),arguments)},find(e,t){return _o(this,"find",e,t,o=>so(this,o),arguments)},findIndex(e,t){return _o(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return _o(this,"findLast",e,t,o=>so(this,o),arguments)},findLastIndex(e,t){return _o(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return _o(this,"forEach",e,t,void 0,arguments)},includes(...e){return Ur(this,"includes",e)},indexOf(...e){return Ur(this,"indexOf",e)},join(e){return un(this).join(e)},lastIndexOf(...e){return Ur(this,"lastIndexOf",e)},map(e,t){return _o(this,"map",e,t,void 0,arguments)},pop(){return Un(this,"pop")},push(...e){return Un(this,"push",e)},reduce(e,...t){return Wi(this,"reduce",e,t)},reduceRight(e,...t){return Wi(this,"reduceRight",e,t)},shift(){return Un(this,"shift")},some(e,t){return _o(this,"some",e,t,void 0,arguments)},splice(...e){return Un(this,"splice",e)},toReversed(){return un(this).toReversed()},toSorted(e){return un(this).toSorted(e)},toSpliced(...e){return un(this).toSpliced(...e)},unshift(...e){return Un(this,"unshift",e)},values(){return jr(this,"values",e=>so(this,e))}};function jr(e,t,o){const n=Ca(e),a=n[t]();return n!==e&&!jt(e)&&(a._next=a.next,a.next=()=>{const r=a._next();return r.done||(r.value=o(r.value)),r}),a}const $p=Array.prototype;function _o(e,t,o,n,a,r){const s=Ca(e),i=s!==e&&!jt(e),l=s[t];if(l!==$p[t]){const p=l.apply(e,r);return i?qt(p):p}let c=o;s!==e&&(i?c=function(p,f){return o.call(this,so(e,p),f,e)}:o.length>2&&(c=function(p,f){return o.call(this,p,f,e)}));const u=l.call(s,c,n);return i&&a?a(u):u}function Wi(e,t,o,n){const a=Ca(e),r=a!==e&&!jt(e);let s=o,i=!1;a!==e&&(r?(i=n.length===0,s=function(c,u,p){return i&&(i=!1,c=so(e,c)),o.call(this,c,so(e,u),p,e)}):o.length>3&&(s=function(c,u,p){return o.call(this,c,u,p,e)}));const l=a[t](s,...n);return i?so(e,l):l}function Ur(e,t,o){const n=Oe(e);Pt(n,"iterate",jn);const a=n[t](...o);return(a===-1||a===!1)&&Ia(o[0])?(o[0]=Oe(o[0]),n[t](...o)):a}function Un(e,t,o=[]){ao(),Rr();const n=Oe(e)[t].apply(e,o);return Fr(),ro(),n}const Ap=Cr("__proto__,__v_isRef,__isVue"),Yi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Bt));function Lp(e){Bt(e)||(e=String(e));const t=Oe(this);return Pt(t,"has",e),t.hasOwnProperty(e)}class qi{constructor(t=!1,o=!1){this._isReadonly=t,this._isShallow=o}get(t,o,n){if(o==="__v_skip")return t.__v_skip;const a=this._isReadonly,r=this._isShallow;if(o==="__v_isReactive")return!a;if(o==="__v_isReadonly")return a;if(o==="__v_isShallow")return r;if(o==="__v_raw")return n===(a?r?tl:el:r?Qi:Xi).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const s=we(t);if(!a){let l;if(s&&(l=Sp[o]))return l;if(o==="hasOwnProperty")return Lp}const i=Reflect.get(t,o,rt(t)?t:n);if((Bt(o)?Yi.has(o):Ap(o))||(a||Pt(t,"get",o),r))return i;if(rt(i)){const l=s&&wa(o)?i:i.value;return a&&ze(l)?Hr(l):l}return ze(i)?a?Hr(i):dn(i):i}}class Ji extends qi{constructor(t=!1){super(!1,t)}set(t,o,n,a){let r=t[o];const s=we(t)&&wa(o);if(!this._isShallow){const c=ko(r);if(!jt(n)&&!ko(n)&&(r=Oe(r),n=Oe(n)),!s&&rt(r)&&!rt(n))return c||(r.value=n),!0}const i=s?Number(o)e,Ta=e=>Reflect.getPrototypeOf(e);function Mp(e,t,o){return function(...n){const a=this.__v_raw,r=Oe(a),s=No(r),i=e==="entries"||e===Symbol.iterator&&s,l=e==="keys"&&s,c=a[e](...n),u=o?Kr:t?pn:qt;return!t&&Pt(r,"iterate",l?Gr:Wo),gt(Object.create(c),{next(){const{value:p,done:f}=c.next();return f?{value:p,done:f}:{value:i?[u(p[0]),u(p[1])]:u(p),done:f}}})}}function Pa(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Np(e,t){const o={get(a){const r=this.__v_raw,s=Oe(r),i=Oe(a);e||(no(a,i)&&Pt(s,"get",a),Pt(s,"get",i));const{has:l}=Ta(s),c=t?Kr:e?pn:qt;if(l.call(s,a))return c(r.get(a));if(l.call(s,i))return c(r.get(i));r!==s&&r.get(a)},get size(){const a=this.__v_raw;return!e&&Pt(Oe(a),"iterate",Wo),a.size},has(a){const r=this.__v_raw,s=Oe(r),i=Oe(a);return e||(no(a,i)&&Pt(s,"has",a),Pt(s,"has",i)),a===i?r.has(a):r.has(a)||r.has(i)},forEach(a,r){const s=this,i=s.__v_raw,l=Oe(i),c=t?Kr:e?pn:qt;return!e&&Pt(l,"iterate",Wo),i.forEach((u,p)=>a.call(r,c(u),c(p),s))}};return gt(o,e?{add:Pa("add"),set:Pa("set"),delete:Pa("delete"),clear:Pa("clear")}:{add(a){const r=Oe(this),s=Ta(r),i=Oe(a),l=!t&&!jt(a)&&!ko(a)?i:a;return s.has.call(r,l)||no(a,l)&&s.has.call(r,a)||no(i,l)&&s.has.call(r,i)||(r.add(l),yo(r,"add",l,l)),this},set(a,r){!t&&!jt(r)&&!ko(r)&&(r=Oe(r));const s=Oe(this),{has:i,get:l}=Ta(s);let c=i.call(s,a);c||(a=Oe(a),c=i.call(s,a));const u=l.call(s,a);return s.set(a,r),c?no(r,u)&&yo(s,"set",a,r):yo(s,"add",a,r),this},delete(a){const r=Oe(this),{has:s,get:i}=Ta(r);let l=s.call(r,a);l||(a=Oe(a),l=s.call(r,a)),i&&i.call(r,a);const c=r.delete(a);return l&&yo(r,"delete",a,void 0),c},clear(){const a=Oe(this),r=a.size!==0,s=a.clear();return r&&yo(a,"clear",void 0,void 0),s}}),["keys","values","entries",Symbol.iterator].forEach(a=>{o[a]=Mp(a,e,t)}),o}function Ma(e,t){const o=Np(e,t);return(n,a,r)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?n:Reflect.get(Ke(o,a)&&a in n?o:n,a,r)}const Ip={get:Ma(!1,!1)},Rp={get:Ma(!1,!0)},Fp={get:Ma(!0,!1)},Op={get:Ma(!0,!0)},Xi=new WeakMap,Qi=new WeakMap,el=new WeakMap,tl=new WeakMap;function Dp(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function dn(e){return ko(e)?e:Na(e,!1,Ep,Ip,Xi)}function Bp(e){return Na(e,!1,Tp,Rp,Qi)}function Hr(e){return Na(e,!0,Cp,Fp,el)}function bx(e){return Na(e,!0,Pp,Op,tl)}function Na(e,t,o,n,a){if(!ze(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const r=a.get(e);if(r)return r;const s=Dp(up(e));if(s===0)return e;const i=new Proxy(e,s===2?n:o);return a.set(e,i),i}function vo(e){return ko(e)?vo(e.__v_raw):!!(e&&e.__v_isReactive)}function ko(e){return!!(e&&e.__v_isReadonly)}function jt(e){return!!(e&&e.__v_isShallow)}function Ia(e){return e?!!e.__v_raw:!1}function Oe(e){const t=e&&e.__v_raw;return t?Oe(t):e}function Yo(e){return!Ke(e,"__v_skip")&&Object.isExtensible(e)&&Ci(e,"__v_skip",!0),e}const qt=e=>ze(e)?dn(e):e,pn=e=>ze(e)?Hr(e):e;function rt(e){return e?e.__v_isRef===!0:!1}function ue(e){return ol(e,!1)}function gn(e){return ol(e,!0)}function ol(e,t){return rt(e)?e:new Gp(e,t)}class Gp{constructor(t,o){this.dep=new Br,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:Oe(t),this._value=o?t:qt(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||jt(t)||ko(t);t=n?t:Oe(t),no(t,o)&&(this._rawValue=t,this._value=n?t:qt(t),this.dep.trigger())}}function _e(e){return rt(e)?e.value:e}const jp={get:(e,t,o)=>t==="__v_raw"?e:_e(Reflect.get(e,t,o)),set:(e,t,o,n)=>{const a=e[t];return rt(a)&&!rt(o)?(a.value=o,!0):Reflect.set(e,t,o,n)}};function nl(e){return vo(e)?e:new Proxy(e,jp)}function Up(e){const t=we(e)?new Array(e.length):{};for(const o in e)t[o]=al(e,o);return t}class Kp{constructor(t,o,n){this._object=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=Bt(o)?o:String(o),this._raw=Oe(t);let a=!0,r=t;if(!we(t)||Bt(this._key)||!wa(this._key))do a=!Ia(r)||jt(r);while(a&&(r=r.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=_e(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&rt(this._raw[this._key])){const o=this._object[this._key];if(rt(o)){o.value=t;return}}this._object[this._key]=t}get dep(){return xp(this._raw,this._key)}}class Hp{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function zp(e,t,o){return rt(e)?e:Ae(e)?new Hp(e):ze(e)&&arguments.length>1?al(e,t,o):ue(e)}function al(e,t,o){return new Kp(e,t,o)}class Vp{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new Br(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Gn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&et!==this)return Gi(this,!0),!0}get value(){const t=this.dep.track();return Ki(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Wp(e,t,o=!1){let n,a;return Ae(e)?n=e:(n=e.get,a=e.set),new Vp(n,a,o)}const Ra={},Fa=new WeakMap;let qo;function Yp(e,t=!1,o=qo){if(o){let n=Fa.get(o);n||Fa.set(o,n=[]),n.push(e)}}function qp(e,t,o=Xe){const{immediate:n,deep:a,once:r,scheduler:s,augmentJob:i,call:l}=o,c=w=>a?w:jt(w)||a===!1||a===0?wo(w,1):wo(w);let u,p,f,k,S=!1,_=!1;if(rt(e)?(p=()=>e.value,S=jt(e)):vo(e)?(p=()=>c(e),S=!0):we(e)?(_=!0,S=e.some(w=>vo(w)||jt(w)),p=()=>e.map(w=>{if(rt(w))return w.value;if(vo(w))return c(w);if(Ae(w))return l?l(w,2):w()})):Ae(e)?t?p=l?()=>l(e,2):e:p=()=>{if(f){ao();try{f()}finally{ro()}}const w=qo;qo=u;try{return l?l(e,3,[k]):e(k)}finally{qo=w}}:p=oo,t&&a){const w=p,$=a===!0?1/0:a;p=()=>wo(w(),$)}const d=Oi(),g=()=>{u.stop(),d&&d.active&&Tr(d.effects,u)};if(r&&t){const w=t;t=(...$)=>{const x=w(...$);return g(),x}}let b=_?new Array(e.length).fill(Ra):Ra;const y=w=>{if(!(!(u.flags&1)||!u.dirty&&!w))if(t){const $=u.run();if(w||a||S||(_?$.some((x,E)=>no(x,b[E])):no($,b))){f&&f();const x=qo;qo=u;try{const E=[$,b===Ra?void 0:_&&b[0]===Ra?[]:b,k];b=$,l?l(t,3,E):t(...E)}finally{qo=x}}}else u.run()};return i&&i(y),u=new Di(p),u.scheduler=s?()=>s(y,!1):y,k=w=>Yp(w,!1,u),f=u.onStop=()=>{const w=Fa.get(u);if(w){if(l)l(w,4);else for(const $ of w)$();Fa.delete(u)}},t?n?y(!0):b=u.run():s?s(y.bind(null,!0),!0):u.run(),g.pause=u.pause.bind(u),g.resume=u.resume.bind(u),g.stop=g,g}function wo(e,t=1/0,o){if(t<=0||!ze(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,rt(e))wo(e.value,t,o);else if(we(e))for(let n=0;n{wo(n,t,o)});else if(ka(e)){for(const n in e)wo(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&wo(e[n],t,o)}return e}/** * @vue/runtime-core v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const On=[];let Nr=!1;function Ew(e,...t){if(Nr)return;Nr=!0,Zt();const o=On.length?On[On.length-1].component:null,n=o&&o.appContext.config.warnHandler,a=wp();if(n)rn(n,o,11,[e+t.map(r=>{var s,i;return(i=(s=r.toString)==null?void 0:s.call(r))!=null?i:JSON.stringify(r)}).join(""),o&&o.proxy,a.map(({vnode:r})=>`at <${Kl(o,r.type)}>`).join(` +**/const Kn=[];let zr=!1;function yx(e,...t){if(zr)return;zr=!0,ao();const o=Kn.length?Kn[Kn.length-1].component:null,n=o&&o.appContext.config.warnHandler,a=Jp();if(n)fn(n,o,11,[e+t.map(r=>{var s,i;return(i=(s=r.toString)==null?void 0:s.call(r))!=null?i:JSON.stringify(r)}).join(""),o&&o.proxy,a.map(({vnode:r})=>`at <${ac(o,r.type)}>`).join(` `),a]);else{const r=[`[Vue warn]: ${e}`,...t];a.length&&r.push(` -`,...xp(a)),console.warn(...r)}Xt(),Nr=!1}function wp(){let e=On[On.length-1];if(!e)return[];const t=[];for(;e;){const o=t[0];o&&o.vnode===e?o.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function xp(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[` -`],...Sp(o))}),t}function Sp({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${Kl(e.component,e.type,n)}`,r=">"+o;return e.props?[a,...Ap(e.props),r]:[a+r]}function Ap(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...Hi(n,e[n]))}),o.length>3&&t.push(" ..."),t}function Hi(e,t,o){return Ve(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:Ze(t)?(t=Hi(e,Me(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):xe(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=Me(t),o?t:[`${e}=`,t])}function rn(e,t,o,n){try{return n?e(...n):e()}catch(a){Dn(a,t,o)}}function zt(e,t,o,n){if(xe(e)){const a=rn(e,t,o,n);return a&&gi(a)&&a.catch(r=>{Dn(r,t,o)}),a}if(ke(e)){const a=[];for(let r=0;r>>1,a=Lt[n],r=Bn(a);r=Bn(o)?Lt.push(e):Lt.splice(Lp(t),0,e),e.flags|=1,Wi()}}function Wi(){Ea||(Ea=Vi.then(Ji))}function Cp(e){if(!ke(e))Eo&&e.id===-1?Eo.splice(ln+1,0,e):e.flags&1||(sn.push(e),e.flags|=1);else for(let t=0;tBn(o)-Bn(n));if(sn.length=0,Eo){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function Ji(e){try{for(eo=0;eo{n._d&&ja(-1);const r=Ta(t),s=_o.length;let i;try{i=e(...a)}finally{for(let l=_o.length;l>s;l--)Zr();Ta(r),n._d&&ja(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function Ep(e,t){if(_t===null)return e;const o=za(_t),n=e.dirs||(e.dirs=[]);for(let a=0;a1)return o&&xe(t)?t.call(n&&n.proxy):t}}function Tp(){return!!(ko()||Vo)}const Pp=Symbol.for("v-scx"),Mp=()=>Te(Pp);function Np(e,t){return Rr(e,null,t)}function tt(e,t,o){return Rr(e,t,o)}function Rr(e,t,o=ze){const{immediate:n,deep:a,flush:r,once:s}=o,i=nt({},o),l=t&&n||!t&&r!=="post";let c;if(pn){if(r==="sync"){const k=Mp();c=k.__watcherHandles||(k.__watcherHandles=[])}else if(!l){const k=()=>{};return k.stop=qt,k.resume=qt,k.pause=qt,k}}const u=vt;i.call=(k,w,_)=>zt(k,u,w,_);let p=!1;r==="post"?i.scheduler=k=>{Et(k,u&&u.suspense)}:r!=="sync"&&(p=!0,i.scheduler=(k,w)=>{w?k():Ir(k)}),i.augmentJob=k=>{t&&(k.flags|=4),p&&(k.flags|=2,u&&(k.id=u.uid,k.i=u))};const g=kp(e,t,i);return pn&&(c?c.push(g):l&&g()),g}function Ip(e,t,o){const n=this.proxy,a=Ve(e)?e.includes(".")?Xi(n,e):()=>n[e]:e.bind(n,n);let r;xe(t)?r=t:(r=t.handler,o=t);const s=Jn(this),i=Rr(a,r.bind(n),o);return s(),i}function Xi(e,t){const o=t.split(".");return()=>{let n=e;for(let a=0;ae.__isTeleport,Ho=e=>e&&(e.disabled||e.disabled===""),Rp=e=>e&&(e.defer||e.defer===""),el=e=>typeof SVGElement<"u"&&e instanceof SVGElement,tl=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Fr=(e,t)=>{const o=e&&e.to;return Ve(o)?t?t(o):null:o},Fp={name:"Teleport",__isTeleport:!0,process(e,t,o,n,a,r,s,i,l,c){const{mc:u,pc:p,pbc:g,o:{insert:k,querySelector:w,createText:_,createComment:d,parentNode:h}}=c,y=Ho(t.props);let{dynamicChildren:v}=t;const b=(L,M,P)=>{L.shapeFlag&16&&u(L.children,M,P,a,r,s,i,l)},x=(L=t)=>{const M=Ho(L.props),P=L.target=Fr(L.props,w),I=Or(P,L,_,k);P&&(s!=="svg"&&el(P)?s="svg":s!=="mathml"&&tl(P)&&(s="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(P),M||(b(L,P,I),jn(L,!1)))},A=L=>{const M=()=>{if(To.get(L)===M){if(To.delete(L),Ho(L.props)){const P=h(L.el)||o;b(L,P,L.anchor),jn(L,!0)}x(L)}};To.set(L,M),Et(M,r)};if(e==null){const L=t.el=_(""),M=t.anchor=_("");if(k(L,o,n),k(M,o,n),Rp(t.props)||r&&r.pendingBranch){A(t);return}y&&(b(t,o,M),jn(t,!0)),x()}else{t.el=e.el;const L=t.anchor=e.anchor,M=To.get(e);if(M){M.flags|=8,To.delete(e),A(t);return}t.targetStart=e.targetStart;const P=t.target=e.target,I=t.targetAnchor=e.targetAnchor,B=Ho(e.props),H=B?o:P,O=B?L:I;if(s==="svg"||el(P)?s="svg":(s==="mathml"||tl(P))&&(s="mathml"),v?(g(e.dynamicChildren,v,H,a,r,s,i),qr(e,t,!0)):l||p(e,t,H,O,a,r,s,i,!1),y)B?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Ma(t,o,L,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const R=Fr(t.props,w);R&&(t.target=R,Ma(t,R,null,c,0))}else B&&Ma(t,P,I,c,1);jn(t,y)}},remove(e,t,o,{um:n,o:{remove:a}},r){const{shapeFlag:s,children:i,anchor:l,targetStart:c,targetAnchor:u,target:p,props:g}=e,k=Ho(g),w=r||!k,_=To.get(e);if(_&&(_.flags|=8,To.delete(e)),p&&(a(c),a(u)),r&&a(l),!_&&(k||p)&&s&16)for(let d=0;d1){for(const o of e)if(o.type!==no){t=o;break}}return t}function ol(e){if(!Ra(e))return Pa(e.type)&&e.children?Bp(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:o}=e;if(o){if(t&16)return o[0];if(t&32&&xe(o.default))return o.default()}}function Br(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;Br(Pa(o.type)&&ol(o)||o,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Gn(e,t){return xe(e)?nt({name:e.name},t,{setup:e}):e}function jr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function nl(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}const Na=new WeakMap;function Un(e,t,o,n,a=!1){if(ke(e)){e.forEach((_,d)=>Un(_,t&&(ke(t)?t[d]:t),o,n,a));return}if(cn(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Un(e,t,o,n.component.subTree);return}const r=n.shapeFlag&4?za(n.component):n.el,s=a?null:r,{i,r:l}=e,c=t&&t.r,u=i.refs===ze?i.refs={}:i.refs,p=i.setupState,g=Me(p),k=p===ze?di:_=>nl(u,_)?!1:Re(g,_),w=(_,d)=>!(d&&nl(u,d));if(c!=null&&c!==l){if(al(t),Ve(c))u[c]=null,k(c)&&(p[c]=null);else if(Ze(c)){const _=t;w(c,_.k)&&(c.value=null),_.k&&(u[_.k]=null)}}if(xe(l))rn(l,i,12,[s,u]);else{const _=Ve(l),d=Ze(l);if(_||d){const h=()=>{if(e.f){const y=_?k(l)?p[l]:u[l]:w()||!e.k?l.value:u[e.k];if(a)ke(y)&&br(y,r);else if(ke(y))y.includes(r)||y.push(r);else if(_)u[l]=[r],k(l)&&(p[l]=u[l]);else{const v=[r];w(l,e.k)&&(l.value=v),e.k&&(u[e.k]=v)}}else _?(u[l]=s,k(l)&&(p[l]=s)):d&&(w(l,e.k)&&(l.value=s),e.k&&(u[e.k]=s))};if(s){const y=()=>{h(),Na.delete(e)};y.id=-1,Na.set(e,y),Et(y,o)}else al(e),h()}}}function al(e){const t=Na.get(e);t&&(t.flags|=8,Na.delete(e))}const rl=e=>e.nodeType===8;ya().requestIdleCallback,ya().cancelIdleCallback;function jp(e,t){if(rl(e)&&e.data==="["){let o=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(t(n)===!1)break}else if(rl(n))if(n.data==="]"){if(--o===0)break}else n.data==="["&&o++;n=n.nextSibling}}else t(e)}const cn=e=>!!e.type.__asyncLoader;function Gp(e){xe(e)&&(e={loader:e});const{loader:t,loadingComponent:o,errorComponent:n,delay:a=200,hydrate:r,timeout:s,suspensible:i=!0,onError:l}=e;let c=null,u,p=0;const g=()=>(p++,c=null,k()),k=()=>{let w;return c||(w=c=t().catch(_=>{if(_=_ instanceof Error?_:new Error(String(_)),l)return new Promise((d,h)=>{l(_,()=>d(g()),()=>h(_),p+1)});throw _}).then(_=>w!==c&&c?c:(_&&(_.__esModule||_[Symbol.toStringTag]==="Module")&&(_=_.default),u=_,_)))};return Gn({name:"AsyncComponentWrapper",__asyncLoader:k,__asyncHydrate(w,_,d){const h=w.isConnected;let y=!1;(_.bu||(_.bu=[])).push(()=>y=!0);const v=()=>{y||!w.parentNode||h&&!w.isConnected||d()},b=r?()=>{const x=r(v,A=>jp(w,A));x&&(_.bum||(_.bum=[])).push(x)}:v;u?b():k().then(()=>!_.isUnmounted&&b())},get __asyncResolved(){return u},setup(){const w=vt;if(jr(w),u)return()=>Ia(u,w);const _=x=>{c=null,Dn(x,w,13,!n)};if(i&&w.suspense||pn)return k().then(x=>()=>Ia(x,w)).catch(x=>(_(x),()=>n?Ge(n,{error:x}):null));const d=ce(!1),h=ce(),y=ce(!!a);let v,b;return Oa(()=>{v!=null&&clearTimeout(v),b!=null&&clearTimeout(b)}),a&&(b=setTimeout(()=>{w.isUnmounted||(y.value=!1)},a)),s!=null&&(v=setTimeout(()=>{if(!w.isUnmounted&&!d.value&&!h.value){const x=new Error(`Async component timed out after ${s}ms.`);_(x),h.value=x}},s)),k().then(()=>{w.isUnmounted||(d.value=!0,w.parent&&Ra(w.parent.vnode)&&w.parent.update())}).catch(x=>{if(w.isUnmounted){c=null;return}_(x),h.value=x}),()=>{if(d.value&&u)return Ia(u,w);if(h.value&&n)return Ge(n,{error:h.value});if(o&&!y.value)return Ia(o,w)}}})}function Ia(e,t){const{ref:o,props:n,children:a,ce:r}=t.vnode,s=Ge(e,n,a);return s.ref=o,s.ce=r,delete t.vnode.ce,s}const Ra=e=>e.type.__isKeepAlive;function Up(e,t){sl(e,"a",t)}function Kp(e,t){sl(e,"da",t)}function sl(e,t,o=vt){const n=e.__wdc||(e.__wdc=()=>{let a=o;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Fa(t,n,o),o){let a=o.parent;for(;a&&a.parent;)Ra(a.parent.vnode)&&zp(n,t,o,a),a=a.parent}}function zp(e,t,o,n){const a=Fa(t,e,n,!0);Oa(()=>{br(n[t],a)},o)}function Fa(e,t,o=vt,n=!1){if(o){const a=o[e]||(o[e]=[]),r=t.__weh||(t.__weh=(...s)=>{Zt();const i=Jn(o),l=zt(t,o,e,s);return i(),Xt(),l});return n?a.unshift(r):a.push(r),r}}const yo=e=>(t,o=vt)=>{(!pn||e==="sp")&&Fa(e,(...n)=>t(...n),o)},il=yo("bm"),to=yo("m"),Hp=yo("bu"),Vp=yo("u"),oo=yo("bum"),Oa=yo("um"),Wp=yo("sp"),Yp=yo("rtg"),qp=yo("rtc");function Jp(e,t=vt){Fa("ec",e,t)}const Zp="components",ll=Symbol.for("v-ndc");function cl(e){return Ve(e)?Xp(Zp,e,!1)||e:e||ll}function Xp(e,t,o=!0,n=!1){const a=_t||vt;if(a){const r=a.type;{const i=Ul(r,!1);if(i&&(i===t||i===gt(t)||i===ma(gt(t))))return r}const s=ul(a[e]||r[e],t)||ul(a.appContext[e],t);return!s&&n?r:s}}function ul(e,t){return e&&(e[t]||e[gt(t)]||e[ma(gt(t))])}function St(e,t,o,n){let a;const r=o,s=ke(e);if(s||Ve(e)){const i=s&&fo(e);let l=!1,c=!1;i&&(l=!Ft(e),c=ho(e),e=ka(e)),a=new Array(e.length);for(let u=0,p=e.length;ut(i,l,void 0,r));else{const i=Object.keys(e);a=new Array(i.length);for(let l=0,c=i.length;l0;return t!=="default"&&(c.name=t),W(),rt(Ce,null,[Ge("slot",c,n)],u?-2:64)}let s=e[t];s&&s._c&&(s._d=!1);const i=_o.length;W();let l;try{const c=s&&dl(s(o)),u=o.key||r||c&&c.key;l=rt(Ce,{key:(u&&!It(u)?u:`_${t}`)+(!c&&n?"_fb":"")},c||(n?n():[]),c&&e._===1?64:-2)}catch(c){for(let u=_o.length;u>i;u--)Zr();throw c}finally{s&&s._c&&(s._d=!0)}return!a&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function dl(e){return e.some(t=>Wn(t)?!(t.type===no||t.type===Ce&&!dl(t.children)):!0)?e:null}const Gr=e=>e?Bl(e)?za(e):Gr(e.parent):null,Kn=nt(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=>Gr(e.parent),$root:e=>Gr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>hl(e),$forceUpdate:e=>e.f||(e.f=()=>{Ir(e.update)}),$nextTick:e=>e.n||(e.n=bo.bind(e.proxy)),$watch:e=>Ip.bind(e)}),Ur=(e,t)=>e!==ze&&!e.__isScriptSetup&&Re(e,t),Qp={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:o,setupState:n,data:a,props:r,accessCache:s,type:i,appContext:l}=e;if(t[0]!=="$"){const g=s[t];if(g!==void 0)switch(g){case 1:return n[t];case 2:return a[t];case 4:return o[t];case 3:return r[t]}else{if(Ur(n,t))return s[t]=1,n[t];if(a!==ze&&Re(a,t))return s[t]=2,a[t];if(Re(r,t))return s[t]=3,r[t];if(o!==ze&&Re(o,t))return s[t]=4,o[t];Kr&&(s[t]=0)}}const c=Kn[t];let u,p;if(c)return t==="$attrs"&&xt(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(o!==ze&&Re(o,t))return s[t]=4,o[t];if(p=l.config.globalProperties,Re(p,t))return p[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:r}=e;return Ur(a,t)?(a[t]=o,!0):n!==ze&&Re(n,t)?(n[t]=o,!0):Re(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:n,appContext:a,props:r,type:s}},i){let l;return!!(o[i]||e!==ze&&i[0]!=="$"&&Re(e,i)||Ur(t,i)||Re(r,i)||Re(n,i)||Re(Kn,i)||Re(a.config.globalProperties,i)||(l=s.__cssModules)&&l[i])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:Re(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function pl(e){return ke(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let Kr=!0;function eg(e){const t=hl(e),o=e.proxy,n=e.ctx;Kr=!1,t.beforeCreate&&gl(t.beforeCreate,e,"bc");const{data:a,computed:r,methods:s,watch:i,provide:l,inject:c,created:u,beforeMount:p,mounted:g,beforeUpdate:k,updated:w,activated:_,deactivated:d,beforeDestroy:h,beforeUnmount:y,destroyed:v,unmounted:b,render:x,renderTracked:A,renderTriggered:L,errorCaptured:M,serverPrefetch:P,expose:I,inheritAttrs:B,components:H,directives:O,filters:R}=t;if(c&&tg(c,n,null),s)for(const C in s){const re=s[C];xe(re)&&(n[C]=re.bind(o))}if(a){const C=a.call(o,o);je(C)&&(e.data=on(C))}if(Kr=!0,r)for(const C in r){const re=r[C],_e=xe(re)?re.bind(o,o):xe(re.get)?re.get.bind(o,o):qt,ne=!xe(re)&&xe(re.set)?re.set.bind(o):qt,ge=Z({get:_e,set:ne});Object.defineProperty(n,C,{enumerable:!0,configurable:!0,get:()=>ge.value,set:fe=>ge.value=fe})}if(i)for(const C in i)fl(i[C],n,o,C);if(l){const C=xe(l)?l.call(o):l;Reflect.ownKeys(C).forEach(re=>{Pt(re,C[re])})}u&&gl(u,e,"c");function F(C,re){ke(re)?re.forEach(_e=>C(_e.bind(o))):re&&C(re.bind(o))}if(F(il,p),F(to,g),F(Hp,k),F(Vp,w),F(Up,_),F(Kp,d),F(Jp,M),F(qp,A),F(Yp,L),F(oo,y),F(Oa,b),F(Wp,P),ke(I))if(I.length){const C=e.exposed||(e.exposed={});I.forEach(re=>{Object.defineProperty(C,re,{get:()=>o[re],set:_e=>o[re]=_e,enumerable:!0})})}else e.exposed||(e.exposed={});x&&e.render===qt&&(e.render=x),B!=null&&(e.inheritAttrs=B),H&&(e.components=H),O&&(e.directives=O),P&&jr(e)}function tg(e,t,o=qt){ke(e)&&(e=zr(e));for(const n in e){const a=e[n];let r;je(a)?"default"in a?r=Te(a.from||n,a.default,!0):r=Te(a.from||n):r=Te(a),Ze(r)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:s=>r.value=s}):t[n]=r}}function gl(e,t,o){zt(ke(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function fl(e,t,o,n){let a=n.includes(".")?Xi(o,n):()=>o[n];if(Ve(e)){const r=t[e];xe(r)&&tt(a,r)}else if(xe(e))tt(a,e.bind(o));else if(je(e))if(ke(e))e.forEach(r=>fl(r,t,o,n));else{const r=xe(e.handler)?e.handler.bind(o):t[e.handler];xe(r)&&tt(a,r,e)}}function hl(e){const t=e.type,{mixins:o,extends:n}=t,{mixins:a,optionsCache:r,config:{optionMergeStrategies:s}}=e.appContext,i=r.get(t);let l;return i?l=i:!a.length&&!o&&!n?l=t:(l={},a.length&&a.forEach(c=>Da(l,c,s,!0)),Da(l,t,s)),je(t)&&r.set(t,l),l}function Da(e,t,o,n=!1){const{mixins:a,extends:r}=t;r&&Da(e,r,o,!0),a&&a.forEach(s=>Da(e,s,o,!0));for(const s in t)if(!(n&&s==="expose")){const i=og[s]||o&&o[s];e[s]=i?i(e[s],t[s]):t[s]}return e}const og={data:ml,props:bl,emits:bl,methods:zn,computed:zn,beforeCreate:Ct,created:Ct,beforeMount:Ct,mounted:Ct,beforeUpdate:Ct,updated:Ct,beforeDestroy:Ct,beforeUnmount:Ct,destroyed:Ct,unmounted:Ct,activated:Ct,deactivated:Ct,errorCaptured:Ct,serverPrefetch:Ct,components:zn,directives:zn,watch:ag,provide:ml,inject:ng};function ml(e,t){return t?e?function(){return nt(xe(e)?e.call(this,this):e,xe(t)?t.call(this,this):t)}:t:e}function ng(e,t){return zn(zr(e),zr(t))}function zr(e){if(ke(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${gt(t)}Modifiers`]||e[`${Rt(t)}Modifiers`];function lg(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||ze;let a=o;const r=t.startsWith("update:"),s=r&&ig(n,t.slice(7));s&&(s.trim&&(a=o.map(u=>Ve(u)?u.trim():u)),s.number&&(a=a.map(_r)));let i,l=n[i=yr(t)]||n[i=yr(gt(t))];!l&&r&&(l=n[i=yr(Rt(t))]),l&&zt(l,e,6,a);const c=n[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,zt(c,e,6,a)}}const cg=new WeakMap;function _l(e,t,o=!1){const n=o?cg:t.emitsCache,a=n.get(e);if(a!==void 0)return a;const r=e.emits;let s={},i=!1;if(!xe(e)){const l=c=>{const u=_l(c,t,!0);u&&(i=!0,nt(s,u))};!o&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!i?(je(e)&&n.set(e,null),null):(ke(r)?r.forEach(l=>s[l]=null):nt(s,r),je(e)&&n.set(e,s),s)}function Ba(e,t){return!e||!ua(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Re(e,t[0].toLowerCase()+t.slice(1))||Re(e,Rt(t))||Re(e,t))}function Tw(){}function vl(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[r],slots:s,attrs:i,emit:l,render:c,renderCache:u,props:p,data:g,setupState:k,ctx:w,inheritAttrs:_}=e,d=Ta(e);let h,y;try{if(o.shapeFlag&4){const b=a||n,x=b;h=ao(c.call(x,b,u,p,k,g,w)),y=i}else{const b=t;h=ao(b.length>1?b(p,{attrs:i,slots:s,emit:l}):b(p,null)),y=t.props?i:ug(i)}}catch(b){_o.length=0,Dn(b,e,1),h=Ge(no)}let v=h;if(y&&_!==!1){const b=Object.keys(y),{shapeFlag:x}=v;b.length&&x&7&&(r&&b.some(da)&&(y=dg(y,r)),v=dn(v,y,!1,!0))}if(o.dirs&&(v=dn(v,null,!1,!0),v.dirs=v.dirs?v.dirs.concat(o.dirs):o.dirs),o.transition){const b=Pa(v.type)&&ol(v)||v;Br(b,o.transition)}return h=v,Ta(d),h}const ug=e=>{let t;for(const o in e)(o==="class"||o==="style"||ua(o))&&((t||(t={}))[o]=e[o]);return t},dg=(e,t)=>{const o={};for(const n in e)(!da(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function pg(e,t,o){const{props:n,children:a,component:r}=e,{props:s,children:i,patchFlag:l}=t,c=r.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&l>=0){if(l&1024)return!0;if(l&16)return n?kl(n,s,c):!!s;if(l&8){const u=t.dynamicProps;for(let p=0;pObject.create(xl),Al=e=>Object.getPrototypeOf(e)===xl;function fg(e,t,o,n=!1){const a={},r=Sl();e.propsDefaults=Object.create(null),$l(e,t,a,r);for(const s in e.propsOptions[0])s in a||(a[s]=void 0);o?e.props=n?a:dp(a):e.type.props?e.props=a:e.props=r,e.attrs=r}function hg(e,t,o,n){const{props:a,attrs:r,vnode:{patchFlag:s}}=e,i=Me(a),[l]=e.propsOptions;let c=!1;if((n||s>0)&&!(s&16)){if(s&8){const u=e.vnode.dynamicProps;for(let p=0;p{l=!0;const[g,k]=Ll(p,t,!0);nt(s,g),k&&i.push(...k)};!o&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!l)return je(e)&&n.set(e,en),en;if(ke(r))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",Wr=e=>ke(e)?e.map(ao):[ao(e)],bg=(e,t,o)=>{if(t._n)return t;const n=jt((...a)=>Wr(t(...a)),o);return n._c=!1,n},El=(e,t,o)=>{const n=e._ctx;for(const a in e){if(Vr(a))continue;const r=e[a];if(xe(r))t[a]=bg(a,r,n);else if(r!=null){const s=Wr(r);t[a]=()=>s}}},Tl=(e,t)=>{const o=Wr(t);e.slots.default=()=>o},Pl=(e,t,o)=>{for(const n in t)(o||!Vr(n))&&(e[n]=t[n])},yg=(e,t,o)=>{const n=e.slots=Sl();if(e.vnode.shapeFlag&32){const a=t._;a?(Pl(n,t,o),o&&hi(n,"_",a,!0)):El(t,n)}else t&&Tl(e,t)},_g=(e,t,o)=>{const{vnode:n,slots:a}=e;let r=!0,s=ze;if(n.shapeFlag&32){const i=t._;i?o&&i===1?r=!1:Pl(a,t,o):(r=!t.$stable,El(t,a)),s=t}else t&&(Tl(e,t),s={default:1});if(r)for(const i in a)!Vr(i)&&s[i]==null&&delete a[i]},Et=Sg;function vg(e){return kg(e)}function kg(e,t){const o=ya();o.__VUE__=!0;const{insert:n,remove:a,patchProp:r,createElement:s,createText:i,createComment:l,setText:c,setElementText:u,parentNode:p,nextSibling:g,setScopeId:k=qt,insertStaticContent:w}=e,_=($,N,E,K=null,Y=null,X=null,Q=void 0,q=null,f=!!N.dynamicChildren)=>{if($===N)return;$&&!Yn($,N)&&(K=mt($),fe($,Y,X,!0),$=null),N.patchFlag===-2&&(f=!1,N.dynamicChildren=null);const{type:m,ref:j,shapeFlag:V}=N;switch(m){case Hn:d($,N,E,K);break;case no:h($,N,E,K);break;case Jr:$==null&&y(N,E,K,Q);break;case Ce:H($,N,E,K,Y,X,Q,q,f);break;default:V&1?x($,N,E,K,Y,X,Q,q,f):V&6?O($,N,E,K,Y,X,Q,q,f):(V&64||V&128)&&m.process($,N,E,K,Y,X,Q,q,f,qe)}j!=null&&Y?Un(j,$&&$.ref,X,N||$,!N):j==null&&$&&$.ref!=null&&Un($.ref,null,X,$,!0)},d=($,N,E,K)=>{if($==null)n(N.el=i(N.children),E,K);else{const Y=N.el=$.el;N.children!==$.children&&c(Y,N.children)}},h=($,N,E,K)=>{$==null?n(N.el=l(N.children||""),E,K):N.el=$.el},y=($,N,E,K)=>{[$.el,$.anchor]=w($.children,N,E,K,$.el,$.anchor)},v=({el:$,anchor:N},E,K)=>{let Y;for(;$&&$!==N;)Y=g($),n($,E,K),$=Y;n(N,E,K)},b=({el:$,anchor:N})=>{let E;for(;$&&$!==N;)E=g($),a($),$=E;a(N)},x=($,N,E,K,Y,X,Q,q,f)=>{if(N.type==="svg"?Q="svg":N.type==="math"&&(Q="mathml"),$==null)A(N,E,K,Y,X,Q,q,f);else{const m=$.el&&$.el._isVueCE?$.el:null;try{m&&m._beginPatch(),P($,N,Y,X,Q,q,f)}finally{m&&m._endPatch()}}},A=($,N,E,K,Y,X,Q,q)=>{let f,m;const{props:j,shapeFlag:V,transition:se,dirs:ae}=$;if(f=$.el=s($.type,X,j&&j.is,j),V&8?u(f,$.children):V&16&&M($.children,f,null,K,Y,Yr($,X),Q,q),ae&&zo($,null,K,"created"),L(f,$,$.scopeId,Q,K),j){for(const S in j)S!=="value"&&!Pn(S)&&r(f,S,null,j[S],X,K);"value"in j&&r(f,"value",null,j.value,X),(m=j.onVnodeBeforeMount)&&ro(m,K,$)}ae&&zo($,null,K,"beforeMount");const U=wg(Y,se);U&&se.beforeEnter(f),n(f,N,E),((m=j&&j.onVnodeMounted)||U||ae)&&Et(()=>{try{m&&ro(m,K,$),U&&se.enter(f),ae&&zo($,null,K,"mounted")}finally{}},Y)},L=($,N,E,K,Y)=>{if(E&&k($,E),K)for(let X=0;X{for(let m=f;m<$.length;m++){const j=$[m]=q?vo($[m]):ao($[m]);_(null,j,N,E,K,Y,X,Q,q)}},P=($,N,E,K,Y,X,Q)=>{const q=N.el=$.el;let{patchFlag:f,dynamicChildren:m,dirs:j}=N;f|=$.patchFlag&16;const V=$.props||ze,se=N.props||ze;let ae;if(E&&Wo(E,!1),(ae=se.onVnodeBeforeUpdate)&&ro(ae,E,N,$),j&&zo(N,$,E,"beforeUpdate"),E&&Wo(E,!0),m&&(!$.dynamicChildren||$.dynamicChildren.length!==m.length)&&(f=0,Q=!1,m=null),(V.innerHTML&&se.innerHTML==null||V.textContent&&se.textContent==null)&&u(q,""),m?I($.dynamicChildren,m,q,E,K,Yr(N,Y),X):Q||re($,N,q,null,E,K,Yr(N,Y),X,!1),f>0){if(f&16)B(q,V,se,E,Y);else if(f&2&&V.class!==se.class&&r(q,"class",null,se.class,Y),f&4&&r(q,"style",V.style,se.style,Y),f&8){const U=N.dynamicProps;for(let S=0;S{ae&&ro(ae,E,N,$),j&&zo(N,$,E,"updated")},K)},I=($,N,E,K,Y,X,Q)=>{for(let q=0;q{if(N!==E){if(N!==ze)for(const X in N)!Pn(X)&&!(X in E)&&r($,X,N[X],null,Y,K);for(const X in E){if(Pn(X))continue;const Q=E[X],q=N[X];Q!==q&&X!=="value"&&r($,X,q,Q,Y,K)}"value"in E&&r($,"value",N.value,E.value,Y)}},H=($,N,E,K,Y,X,Q,q,f)=>{const m=N.el=$?$.el:i(""),j=N.anchor=$?$.anchor:i("");let{patchFlag:V,dynamicChildren:se,slotScopeIds:ae}=N;ae&&(q=q?q.concat(ae):ae),$==null?(n(m,E,K),n(j,E,K),M(N.children||[],E,j,Y,X,Q,q,f)):V>0&&V&64&&se&&$.dynamicChildren&&$.dynamicChildren.length===se.length?(I($.dynamicChildren,se,E,Y,X,Q,q),(N.key!=null||Y&&N===Y.subTree)&&qr($,N,!0)):re($,N,E,j,Y,X,Q,q,f)},O=($,N,E,K,Y,X,Q,q,f)=>{N.slotScopeIds=q,$==null?N.shapeFlag&512?Y.ctx.activate(N,E,K,Q,f):R(N,E,K,Y,X,Q,f):G($,N,f)},R=($,N,E,K,Y,X,Q)=>{const q=$.component=Tg($,K,Y);if(Ra($)&&(q.ctx.renderer=qe),Pg(q,!1,Q),q.asyncDep){if(Y&&Y.registerDep(q,F,Q),!$.el){const f=q.subTree=Ge(no);h(null,f,N,E),$.placeholder=f.el}}else F(q,$,N,E,Y,X,Q)},G=($,N,E)=>{const K=N.component=$.component;if(pg($,N,E))if(K.asyncDep&&!K.asyncResolved){C(K,N,E);return}else K.next=N,K.update();else N.el=$.el,K.vnode=N},F=($,N,E,K,Y,X,Q)=>{const q=()=>{if($.isMounted){let{next:V,bu:se,u:ae,parent:U,vnode:S}=$;{const $e=Ml($);if($e){V&&(V.el=S.el,C($,V,Q)),$e.asyncDep.then(()=>{Et(()=>{$.isUnmounted||m()},Y)});return}}let D=V,oe;Wo($,!1),V?(V.el=S.el,C($,V,Q)):V=S,se&&ba(se),(oe=V.props&&V.props.onVnodeBeforeUpdate)&&ro(oe,U,V,S),Wo($,!0);const le=vl($),he=$.subTree;$.subTree=le,_(he,le,p(he.el),mt(he),$,Y,X),V.el=le.el,D===null&&gg($,le.el),ae&&Et(ae,Y),(oe=V.props&&V.props.onVnodeUpdated)&&Et(()=>ro(oe,U,V,S),Y)}else{let V;const{el:se,props:ae}=N,{bm:U,m:S,parent:D,root:oe,type:le}=$,he=cn(N);Wo($,!1),U&&ba(U),!he&&(V=ae&&ae.onVnodeBeforeMount)&&ro(V,D,N),Wo($,!0);{oe.ce&&oe.ce._hasShadowRoot()&&oe.ce._injectChildStyle(le,$.parent?$.parent.type:void 0);const $e=$.subTree=vl($);_(null,$e,E,K,$,Y,X),N.el=$e.el}if(S&&Et(S,Y),!he&&(V=ae&&ae.onVnodeMounted)){const $e=N;Et(()=>ro(V,D,$e),Y)}(N.shapeFlag&256||D&&cn(D.vnode)&&D.vnode.shapeFlag&256)&&$.a&&Et($.a,Y),$.isMounted=!0,N=E=K=null}};$.scope.on();const f=$.effect=new Si(q);$.scope.off();const m=$.update=f.run.bind(f),j=$.job=f.runIfDirty.bind(f);j.i=$,j.id=$.uid,f.scheduler=()=>Ir(j),Wo($,!0),m()},C=($,N,E)=>{N.component=$;const K=$.vnode.props;$.vnode=N,$.next=null,hg($,N.props,K,E),_g($,N.children,E),Zt(),Yi($),Xt()},re=($,N,E,K,Y,X,Q,q,f=!1)=>{const m=$&&$.children,j=$?$.shapeFlag:0,V=N.children,{patchFlag:se,shapeFlag:ae}=N;if(se>0){if(se&128){ne(m,V,E,K,Y,X,Q,q,f);return}else if(se&256){_e(m,V,E,K,Y,X,Q,q,f);return}}ae&8?(j&16&&Qe(m,Y,X),V!==m&&u(E,V)):j&16?ae&16?ne(m,V,E,K,Y,X,Q,q,f):Qe(m,Y,X,!0):(j&8&&u(E,""),ae&16&&M(V,E,K,Y,X,Q,q,f))},_e=($,N,E,K,Y,X,Q,q,f)=>{$=$||en,N=N||en;const m=$.length,j=N.length,V=Math.min(m,j);let se;for(se=0;sej?Qe($,Y,X,!0,!1,V):M(N,E,K,Y,X,Q,q,f,V)},ne=($,N,E,K,Y,X,Q,q,f)=>{let m=0;const j=N.length;let V=$.length-1,se=j-1;for(;m<=V&&m<=se;){const ae=$[m],U=N[m]=f?vo(N[m]):ao(N[m]);if(Yn(ae,U))_(ae,U,E,null,Y,X,Q,q,f);else break;m++}for(;m<=V&&m<=se;){const ae=$[V],U=N[se]=f?vo(N[se]):ao(N[se]);if(Yn(ae,U))_(ae,U,E,null,Y,X,Q,q,f);else break;V--,se--}if(m>V){if(m<=se){const ae=se+1,U=aese)for(;m<=V;)fe($[m],Y,X,!0),m++;else{const ae=m,U=m,S=new Map;for(m=U;m<=se;m++){const Oe=N[m]=f?vo(N[m]):ao(N[m]);Oe.key!=null&&S.set(Oe.key,m)}let D,oe=0;const le=se-U+1;let he=!1,$e=0;const ve=new Array(le);for(m=0;m=le){fe(Oe,Y,X,!0);continue}let ot;if(Oe.key!=null)ot=S.get(Oe.key);else for(D=U;D<=se;D++)if(ve[D-U]===0&&Yn(Oe,N[D])){ot=D;break}ot===void 0?fe(Oe,Y,X,!0):(ve[ot-U]=m+1,ot>=$e?$e=ot:he=!0,_(Oe,N[ot],E,null,Y,X,Q,q,f),oe++)}const ct=he?xg(ve):en;for(D=ct.length-1,m=le-1;m>=0;m--){const Oe=U+m,ot=N[Oe],co=N[Oe+1],hr=Oe+1{const{el:X,type:Q,transition:q,children:f,shapeFlag:m}=$;if(m&6){ge($.component.subTree,N,E,K);return}if(m&128){$.suspense.move(N,E,K);return}if(m&64){Q.move($,N,E,qe);return}if(Q===Ce){n(X,N,E);for(let V=0;Vq.enter(X),Y));else{const{leave:V,delayLeave:se,afterLeave:ae}=q,U=()=>{$.ctx.isUnmounted?a(X):n(X,N,E)},S=()=>{const D=X._isLeaving||!!X[Dr];X._isLeaving&&X[Dr](!0),q.persisted&&!D?U():V(X,()=>{U(),ae&&ae()})};se?se(X,U,S):S()}else n(X,N,E)},fe=($,N,E,K=!1,Y=!1)=>{const{type:X,props:Q,ref:q,children:f,dynamicChildren:m,shapeFlag:j,patchFlag:V,dirs:se,cacheIndex:ae,memo:U}=$;if(V===-2&&(Y=!1),q!=null&&(Zt(),Un(q,null,E,$,!0),Xt()),ae!=null&&(N.renderCache[ae]=void 0),j&256){N.ctx.deactivate($);return}const S=j&1&&se,D=!cn($);let oe;if(D&&(oe=Q&&Q.onVnodeBeforeUnmount)&&ro(oe,N,$),j&6)Fe($.component,E,K);else{if(j&128){$.suspense.unmount(E,K);return}S&&zo($,null,N,"beforeUnmount"),j&64?$.type.remove($,N,E,qe,K):m&&!m.hasOnce&&(X!==Ce||V>0&&V&64)?Qe(m,N,E,!1,!0):(X===Ce&&V&384||!Y&&j&16)&&Qe(f,N,E),K&&de($)}const le=U!=null&&ae==null;(D&&(oe=Q&&Q.onVnodeUnmounted)||S||le)&&Et(()=>{oe&&ro(oe,N,$),S&&zo($,null,N,"unmounted"),le&&($.el=null)},E)},de=$=>{const{type:N,el:E,anchor:K,transition:Y}=$;if(N===Ce){Ke(E,K);return}if(N===Jr){b($);return}const X=()=>{a(E),Y&&!Y.persisted&&Y.afterLeave&&Y.afterLeave()};if($.shapeFlag&1&&Y&&!Y.persisted){const{leave:Q,delayLeave:q}=Y,f=()=>Q(E,X);q?q($.el,X,f):f()}else X()},Ke=($,N)=>{let E;for(;$!==N;)E=g($),a($),$=E;a(N)},Fe=($,N,E)=>{const{bum:K,scope:Y,job:X,subTree:Q,um:q,m:f,a:m}=$;Nl(f),Nl(m),K&&ba(K),Y.stop(),X&&(X.flags|=8,fe(Q,$,N,E)),q&&Et(q,N),Et(()=>{$.isUnmounted=!0},N)},Qe=($,N,E,K=!1,Y=!1,X=0)=>{for(let Q=X;Q<$.length;Q++)fe($[Q],N,E,K,Y)},mt=$=>{if($.shapeFlag&6)return mt($.component.subTree);if($.shapeFlag&128)return $.suspense.next();const N=g($.anchor||$.el),E=N&&N[Qi];return E?g(E):N};let He=!1;const it=($,N,E)=>{let K;$==null?N._vnode&&(fe(N._vnode,null,null,!0),K=N._vnode.component):_(N._vnode||null,$,N,null,null,null,E),N._vnode=$,He||(He=!0,Yi(K),qi(),He=!1)},qe={p:_,um:fe,m:ge,r:de,mt:R,mc:M,pc:re,pbc:I,n:mt,o:e};return{render:it,hydrate:void 0,createApp:sg(it)}}function Yr({type:e,props:t},o){return o==="svg"&&e==="foreignObject"||o==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:o}function Wo({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function wg(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function qr(e,t,o=!1){const n=e.children,a=t.children;if(ke(n)&&ke(a))for(let r=0;r>1,e[o[i]]0&&(t[n]=o[r-1]),o[r]=n)}}for(r=o.length,s=o[r-1];r-- >0;)o[r]=s,s=t[s];return o}function Ml(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ml(t)}function Nl(e){if(e)for(let t=0;te.__isSuspense;function Sg(e,t){t&&t.pendingBranch?ke(e)?t.effects.push(...e):t.effects.push(e):Cp(e)}const Ce=Symbol.for("v-fgt"),Hn=Symbol.for("v-txt"),no=Symbol.for("v-cmt"),Jr=Symbol.for("v-stc"),_o=[];let Ot=null;function W(e=!1){_o.push(Ot=e?null:[])}function Zr(){_o.pop(),Ot=_o[_o.length-1]||null}let Vn=1;function ja(e,t=!1){Vn+=e,e<0&&Ot&&t&&(Ot.hasOnce=!0)}function Fl(e){return e.dynamicChildren=Vn>0?Ot||en:null,Zr(),Vn>0&&Ot&&Ot.push(e),e}function ee(e,t,o,n,a,r){return Fl(T(e,t,o,n,a,r,!0))}function rt(e,t,o,n,a){return Fl(Ge(e,t,o,n,a,!0))}function Wn(e){return e?e.__v_isVNode===!0:!1}function Yn(e,t){return e.type===t.type&&e.key===t.key}const Ol=({key:e})=>e??null,Ga=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?Ve(e)||Ze(e)||xe(e)?{i:_t,r:e,k:t,f:!!o}:e:null);function T(e,t=null,o=null,n=0,a=null,r=e===Ce?0:1,s=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ol(t),ref:t&&Ga(t),scopeId:Zi,slotScopeIds:null,children:o,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:n,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:_t};return i?(Ua(l,o),r&128&&e.normalize(l)):o&&(l.shapeFlag|=Ve(o)?8:16),Vn>0&&!s&&Ot&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&Ot.push(l),l}const Ge=Ag;function Ag(e,t=null,o=null,n=0,a=null,r=!1){if((!e||e===ll)&&(e=no),Wn(e)){const i=dn(e,t,!0);return o&&Ua(i,o),Vn>0&&!r&&Ot&&(i.shapeFlag&6?Ot[Ot.indexOf(e)]=i:Ot.push(i)),i.patchFlag=-2,i}if(Og(e)&&(e=e.__vccOpts),t){t=$g(t);let{class:i,style:l}=t;i&&!Ve(i)&&(t.class=Le(i)),je(l)&&($a(l)&&!ke(l)&&(l=nt({},l)),t.style=et(l))}const s=Ve(e)?1:Rl(e)?128:Pa(e)?64:je(e)?4:xe(e)?2:0;return T(e,t,o,n,a,s,r,!0)}function $g(e){return e?$a(e)||Al(e)?nt({},e):e:null}function dn(e,t,o=!1,n=!1){const{props:a,ref:r,patchFlag:s,children:i,transition:l}=e,c=t?Lg(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Ol(c),ref:t&&t.ref?o&&r?ke(r)?r.concat(Ga(t)):[r,Ga(t)]:Ga(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ce?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&dn(e.ssContent),ssFallback:e.ssFallback&&dn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&Br(u,l.clone(u)),u}function dt(e=" ",t=0){return Ge(Hn,null,e,t)}function be(e="",t=!1){return t?(W(),rt(no,null,e)):Ge(no,null,e)}function ao(e){return e==null||typeof e=="boolean"?Ge(no):ke(e)?Ge(Ce,null,e.slice()):Wn(e)?vo(e):Ge(Hn,null,String(e))}function vo(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:dn(e)}function Ua(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(ke(t))o=16;else if(typeof t=="object")if(n&65){const a=t.default;a&&(a._c&&(a._d=!1),Ua(e,a()),a._c&&(a._d=!0));return}else{o=32;const a=t._;!a&&!Al(t)?t._ctx=_t:a===3&&_t&&(_t.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(xe(t)){if(n&65){Ua(e,{default:t});return}t={default:t,_ctx:_t},o=32}else t=String(t),n&64?(o=16,t=[dt(t)]):o=8;e.children=t,e.shapeFlag|=o}function Lg(...e){const t={};for(let o=0;ovt||_t;let Ka,qn;{const e=ya(),t=(o,n)=>{let a;return(a=e[o])||(a=e[o]=[]),a.push(n),r=>{a.length>1?a.forEach(s=>s(r)):a[0](r)}};Ka=t("__VUE_INSTANCE_SETTERS__",o=>vt=o),qn=t("__VUE_SSR_SETTERS__",o=>pn=o)}const Jn=e=>{const t=vt;return Ka(e),e.scope.on(),()=>{e.scope.off(),Ka(t)}},Dl=()=>{vt&&vt.scope.off(),Ka(null)};function Bl(e){return e.vnode.shapeFlag&4}let pn=!1;function Pg(e,t=!1,o=!1){t&&qn(t);const{props:n,children:a}=e.vnode,r=Bl(e);fg(e,n,r,t),yg(e,a,o||t);const s=r?Mg(e,t):void 0;return t&&qn(!1),s}function Mg(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Qp);const{setup:n}=o;if(n){Zt();const a=e.setupContext=n.length>1?Ig(e):null,r=Jn(e),s=rn(n,e,0,[e.props,a]),i=gi(s);if(Xt(),r(),(i||e.sp)&&!cn(e)&&jr(e),i){if(s.then(Dl,Dl),t)return s.then(l=>{qn(!0);try{jl(e,l,t)}finally{qn(!1)}}).catch(l=>{Dn(l,e,0)});e.asyncDep=s}else jl(e,s)}else Gl(e)}function jl(e,t,o){xe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:je(t)&&(e.setupState=Ki(t)),Gl(e)}function Gl(e,t,o){const n=e.type;e.render||(e.render=n.render||qt);{const a=Jn(e);Zt();try{eg(e)}finally{Xt(),a()}}}const Ng={get(e,t){return xt(e,"get",""),e[t]}};function Ig(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,Ng),slots:e.slots,emit:e.emit,expose:t}}function za(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ki(Uo(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in Kn)return Kn[o](e)},has(t,o){return o in t||o in Kn}})):e.proxy}const Rg=/(?:^|[-_])\w/g,Fg=e=>e.replace(Rg,t=>t.toUpperCase()).replace(/[-_]/g,"");function Ul(e,t=!0){return xe(e)?e.displayName||e.name:e.name||t&&e.__name}function Kl(e,t,o=!1){let n=Ul(t);if(!n&&t.__file){const a=t.__file.match(/([^/\\]+)\.\w+$/);a&&(n=a[1])}if(!n&&e){const a=r=>{for(const s in r)if(r[s]===t)return s};n=a(e.components)||e.parent&&a(e.parent.type.components)||a(e.appContext.components)}return n?Fg(n):o?"App":"Anonymous"}function Og(e){return xe(e)&&"__vccOpts"in e}const Z=(e,t)=>_p(e,t,pn);function zl(e,t,o){try{ja(-1);const n=arguments.length;return n===2?je(t)&&!ke(t)?Wn(t)?Ge(e,null,[t]):Ge(e,t):Ge(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&Wn(o)&&(o=[o]),Ge(e,t,o))}finally{ja(1)}}const Dg="3.5.42";/** +`,...Zp(a)),console.warn(...r)}ro(),zr=!1}function Jp(){let e=Kn[Kn.length-1];if(!e)return[];const t=[];for(;e;){const o=t[0];o&&o.vnode===e?o.recurseCount++:t.push({vnode:e,recurseCount:0});const n=e.component&&e.component.parent;e=n&&n.vnode}return t}function Zp(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[` +`],...Xp(o))}),t}function Xp({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${ac(e.component,e.type,n)}`,r=">"+o;return e.props?[a,...Qp(e.props),r]:[a+r]}function Qp(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...rl(n,e[n]))}),o.length>3&&t.push(" ..."),t}function rl(e,t,o){return Qe(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:rt(t)?(t=rl(e,Oe(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):Ae(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=Oe(t),o?t:[`${e}=`,t])}function fn(e,t,o,n){try{return n?e(...n):e()}catch(a){Hn(a,t,o)}}function Jt(e,t,o,n){if(Ae(e)){const a=fn(e,t,o,n);return a&&Li(a)&&a.catch(r=>{Hn(r,t,o)}),a}if(we(e)){const a=[];for(let r=0;r>>1,a=Nt[n],r=zn(a);r=zn(o)?Nt.push(e):Nt.splice(tg(t),0,e),e.flags|=1,il()}}function il(){Oa||(Oa=sl.then(ul))}function og(e){if(!we(e))Ro&&e.id===-1?Ro.splice(mn+1,0,e):e.flags&1||(hn.push(e),e.flags|=1);else for(let t=0;tzn(o)-zn(n));if(hn.length=0,Ro){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function ul(e){try{for(io=0;io{n._d&&qa(-1);const r=Da(t),s=So.length;let i;try{i=e(...a)}finally{for(let l=So.length;l>s;l--)ls();Da(r),n._d&&qa(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function pl(e,t){if(Lt===null)return e;const o=Qa(Lt),n=e.dirs||(e.dirs=[]);for(let a=0;a1)return o&&Ae(t)?t.call(n&&n.proxy):t}}function ng(){return!!(Ao()||Xo)}const ag=Symbol.for("v-scx"),rg=()=>Ie(ag);function sg(e,t){return Wr(e,null,t)}function lt(e,t,o){return Wr(e,t,o)}function Wr(e,t,o=Xe){const{immediate:n,deep:a,flush:r,once:s}=o,i=gt({},o),l=t&&n||!t&&r!=="post";let c;if(vn){if(r==="sync"){const k=rg();c=k.__watcherHandles||(k.__watcherHandles=[])}else if(!l){const k=()=>{};return k.stop=oo,k.resume=oo,k.pause=oo,k}}const u=Ct;i.call=(k,S,_)=>Jt(k,u,S,_);let p=!1;r==="post"?i.scheduler=k=>{Rt(k,u&&u.suspense)}:r!=="sync"&&(p=!0,i.scheduler=(k,S)=>{S?k():Vr(k)}),i.augmentJob=k=>{t&&(k.flags|=4),p&&(k.flags|=2,u&&(k.id=u.uid,k.i=u))};const f=qp(e,t,i);return vn&&(c?c.push(f):l&&f()),f}function ig(e,t,o){const n=this.proxy,a=Qe(e)?e.includes(".")?gl(n,e):()=>n[e]:e.bind(n,n);let r;Ae(t)?r=t:(r=t.handler,o=t);const s=oa(this),i=Wr(a,r.bind(n),o);return s(),i}function gl(e,t){const o=t.split(".");return()=>{let n=e;for(let a=0;ae.__isTeleport,Zo=e=>e&&(e.disabled||e.disabled===""),lg=e=>e&&(e.defer||e.defer===""),hl=e=>typeof SVGElement<"u"&&e instanceof SVGElement,ml=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Yr=(e,t)=>{const o=e&&e.to;return Qe(o)?t?t(o):null:o},cg={name:"Teleport",__isTeleport:!0,process(e,t,o,n,a,r,s,i,l,c){const{mc:u,pc:p,pbc:f,o:{insert:k,querySelector:S,createText:_,createComment:d,parentNode:g}}=c,b=Zo(t.props);let{dynamicChildren:y}=t;const w=(E,P,R)=>{E.shapeFlag&16&&u(E.children,P,R,a,r,s,i,l)},$=(E=t)=>{const P=Zo(E.props),R=E.target=Yr(E.props,S),K=qr(R,E,_,k);R&&(s!=="svg"&&hl(R)?s="svg":s!=="mathml"&&ml(R)&&(s="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(R),P||(w(E,R,K),Vn(E,!1)))},x=E=>{const P=()=>{if(Fo.get(E)===P){if(Fo.delete(E),Zo(E.props)){const R=g(E.el)||o;w(E,R,E.anchor),Vn(E,!0)}$(E)}};Fo.set(E,P),Rt(P,r)};if(e==null){const E=t.el=_(""),P=t.anchor=_("");if(k(E,o,n),k(P,o,n),lg(t.props)||r&&r.pendingBranch){x(t);return}b&&(w(t,o,P),Vn(t,!0)),$()}else{t.el=e.el;const E=t.anchor=e.anchor,P=Fo.get(e);if(P){P.flags|=8,Fo.delete(e),x(t);return}t.targetStart=e.targetStart;const R=t.target=e.target,K=t.targetAnchor=e.targetAnchor,V=Zo(e.props),ae=V?o:R,M=V?E:K;if(s==="svg"||hl(R)?s="svg":(s==="mathml"||ml(R))&&(s="mathml"),y?(f(e.dynamicChildren,y,ae,a,r,s,i),is(e,t,!0)):l||p(e,t,ae,M,a,r,s,i,!1),b)V?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Ga(t,o,E,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const L=Yr(t.props,S);L&&(t.target=L,Ga(t,L,null,c,0))}else V&&Ga(t,R,K,c,1);Vn(t,b)}},remove(e,t,o,{um:n,o:{remove:a}},r){const{shapeFlag:s,children:i,anchor:l,targetStart:c,targetAnchor:u,target:p,props:f}=e,k=Zo(f),S=r||!k,_=Fo.get(e);if(_&&(_.flags|=8,Fo.delete(e)),p&&(a(c),a(u)),r&&a(l),!_&&(k||p)&&s&16)for(let d=0;d1){for(const o of e)if(o.type!==po){t=o;break}}return t}function bl(e){if(!Ka(e))return Ba(e.type)&&e.children?pg(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:o}=e;if(o){if(t&16)return o[0];if(t&32&&Ae(o.default))return o.default()}}function Zr(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;Zr(Ba(o.type)&&bl(o)||o,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Wn(e,t){return Ae(e)?gt({name:e.name},t,{setup:e}):e}function Xr(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function yl(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}const ja=new WeakMap;function Yn(e,t,o,n,a=!1){if(we(e)){e.forEach((_,d)=>Yn(_,t&&(we(t)?t[d]:t),o,n,a));return}if(bn(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Yn(e,t,o,n.component.subTree);return}const r=n.shapeFlag&4?Qa(n.component):n.el,s=a?null:r,{i,r:l}=e,c=t&&t.r,u=i.refs===Xe?i.refs={}:i.refs,p=i.setupState,f=Oe(p),k=p===Xe?$i:_=>yl(u,_)?!1:Ke(f,_),S=(_,d)=>!(d&&yl(u,d));if(c!=null&&c!==l){if(_l(t),Qe(c))u[c]=null,k(c)&&(p[c]=null);else if(rt(c)){const _=t;S(c,_.k)&&(c.value=null),_.k&&(u[_.k]=null)}}if(Ae(l))fn(l,i,12,[s,u]);else{const _=Qe(l),d=rt(l);if(_||d){const g=()=>{if(e.f){const b=_?k(l)?p[l]:u[l]:S()||!e.k?l.value:u[e.k];if(a)we(b)&&Tr(b,r);else if(we(b))b.includes(r)||b.push(r);else if(_)u[l]=[r],k(l)&&(p[l]=u[l]);else{const y=[r];S(l,e.k)&&(l.value=y),e.k&&(u[e.k]=y)}}else _?(u[l]=s,k(l)&&(p[l]=s)):d&&(S(l,e.k)&&(l.value=s),e.k&&(u[e.k]=s))};if(s){const b=()=>{g(),ja.delete(e)};b.id=-1,ja.set(e,b),Rt(b,o)}else _l(e),g()}}}function _l(e){const t=ja.get(e);t&&(t.flags|=8,ja.delete(e))}const vl=e=>e.nodeType===8;La().requestIdleCallback,La().cancelIdleCallback;function gg(e,t){if(vl(e)&&e.data==="["){let o=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(t(n)===!1)break}else if(vl(n))if(n.data==="]"){if(--o===0)break}else n.data==="["&&o++;n=n.nextSibling}}else t(e)}const bn=e=>!!e.type.__asyncLoader;function fg(e){Ae(e)&&(e={loader:e});const{loader:t,loadingComponent:o,errorComponent:n,delay:a=200,hydrate:r,timeout:s,suspensible:i=!0,onError:l}=e;let c=null,u,p=0;const f=()=>(p++,c=null,k()),k=()=>{let S;return c||(S=c=t().catch(_=>{if(_=_ instanceof Error?_:new Error(String(_)),l)return new Promise((d,g)=>{l(_,()=>d(f()),()=>g(_),p+1)});throw _}).then(_=>S!==c&&c?c:(_&&(_.__esModule||_[Symbol.toStringTag]==="Module")&&(_=_.default),u=_,_)))};return Wn({name:"AsyncComponentWrapper",__asyncLoader:k,__asyncHydrate(S,_,d){const g=S.isConnected;let b=!1;(_.bu||(_.bu=[])).push(()=>b=!0);const y=()=>{b||!S.parentNode||g&&!S.isConnected||d()},w=r?()=>{const $=r(y,x=>gg(S,x));$&&(_.bum||(_.bum=[])).push($)}:y;u?w():k().then(()=>!_.isUnmounted&&w())},get __asyncResolved(){return u},setup(){const S=Ct;if(Xr(S),u)return()=>Ua(u,S);const _=$=>{c=null,Hn($,S,13,!n)};if(i&&S.suspense||vn)return k().then($=>()=>Ua($,S)).catch($=>(_($),()=>n?He(n,{error:$}):null));const d=ue(!1),g=ue(),b=ue(!!a);let y,w;return za(()=>{y!=null&&clearTimeout(y),w!=null&&clearTimeout(w)}),a&&(w=setTimeout(()=>{S.isUnmounted||(b.value=!1)},a)),s!=null&&(y=setTimeout(()=>{if(!S.isUnmounted&&!d.value&&!g.value){const $=new Error(`Async component timed out after ${s}ms.`);_($),g.value=$}},s)),k().then(()=>{S.isUnmounted||(d.value=!0,S.parent&&Ka(S.parent.vnode)&&S.parent.update())}).catch($=>{if(S.isUnmounted){c=null;return}_($),g.value=$}),()=>{if(d.value&&u)return Ua(u,S);if(g.value&&n)return He(n,{error:g.value});if(o&&!b.value)return Ua(o,S)}}})}function Ua(e,t){const{ref:o,props:n,children:a,ce:r}=t.vnode,s=He(e,n,a);return s.ref=o,s.ce=r,delete t.vnode.ce,s}const Ka=e=>e.type.__isKeepAlive;function hg(e,t){kl(e,"a",t)}function mg(e,t){kl(e,"da",t)}function kl(e,t,o=Ct){const n=e.__wdc||(e.__wdc=()=>{let a=o;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Ha(t,n,o),o){let a=o.parent;for(;a&&a.parent;)Ka(a.parent.vnode)&&bg(n,t,o,a),a=a.parent}}function bg(e,t,o,n){const a=Ha(t,e,n,!0);za(()=>{Tr(n[t],a)},o)}function Ha(e,t,o=Ct,n=!1){if(o){const a=o[e]||(o[e]=[]),r=t.__weh||(t.__weh=(...s)=>{ao();const i=oa(o),l=Jt(t,o,e,s);return i(),ro(),l});return n?a.unshift(r):a.push(r),r}}const xo=e=>(t,o=Ct)=>{(!vn||e==="sp")&&Ha(e,(...n)=>t(...n),o)},wl=xo("bm"),co=xo("m"),yg=xo("bu"),_g=xo("u"),uo=xo("bum"),za=xo("um"),vg=xo("sp"),kg=xo("rtg"),wg=xo("rtc");function xg(e,t=Ct){Ha("ec",e,t)}const Sg="components",xl=Symbol.for("v-ndc");function Sl(e){return Qe(e)?$g(Sg,e,!1)||e:e||xl}function $g(e,t,o=!0,n=!1){const a=Lt||Ct;if(a){const r=a.type;{const i=nc(r,!1);if(i&&(i===t||i===vt(t)||i===Sa(vt(t))))return r}const s=$l(a[e]||r[e],t)||$l(a.appContext[e],t);return!s&&n?r:s}}function $l(e,t){return e&&(e[t]||e[vt(t)]||e[Sa(vt(t))])}function Et(e,t,o,n){let a;const r=o,s=we(e);if(s||Qe(e)){const i=s&&vo(e);let l=!1,c=!1;i&&(l=!jt(e),c=ko(e),e=Ca(e)),a=new Array(e.length);for(let u=0,p=e.length;ut(i,l,void 0,r));else{const i=Object.keys(e);a=new Array(i.length);for(let l=0,c=i.length;l0;return t!=="default"&&(c.name=t),H(),ft(Me,null,[He("slot",c,n)],u?-2:64)}let s=e[t];s&&s._c&&(s._d=!1);const i=So.length;H();let l;try{const c=s&&Al(s(o)),u=o.key||r||c&&c.key;l=ft(Me,{key:(u&&!Bt(u)?u:`_${t}`)+(!c&&n?"_fb":"")},c||(n?n():[]),c&&e._===1?64:-2)}catch(c){for(let u=So.length;u>i;u--)ls();throw c}finally{s&&s._c&&(s._d=!0)}return!a&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function Al(e){return e.some(t=>Qn(t)?!(t.type===po||t.type===Me&&!Al(t.children)):!0)?e:null}const Qr=e=>e?ec(e)?Qa(e):Qr(e.parent):null,qn=gt(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=>Qr(e.parent),$root:e=>Qr(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Tl(e),$forceUpdate:e=>e.f||(e.f=()=>{Vr(e.update)}),$nextTick:e=>e.n||(e.n=lo.bind(e.proxy)),$watch:e=>ig.bind(e)}),es=(e,t)=>e!==Xe&&!e.__isScriptSetup&&Ke(e,t),Ag={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:o,setupState:n,data:a,props:r,accessCache:s,type:i,appContext:l}=e;if(t[0]!=="$"){const f=s[t];if(f!==void 0)switch(f){case 1:return n[t];case 2:return a[t];case 4:return o[t];case 3:return r[t]}else{if(es(n,t))return s[t]=1,n[t];if(a!==Xe&&Ke(a,t))return s[t]=2,a[t];if(Ke(r,t))return s[t]=3,r[t];if(o!==Xe&&Ke(o,t))return s[t]=4,o[t];ts&&(s[t]=0)}}const c=qn[t];let u,p;if(c)return t==="$attrs"&&Pt(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(o!==Xe&&Ke(o,t))return s[t]=4,o[t];if(p=l.config.globalProperties,Ke(p,t))return p[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:r}=e;return es(a,t)?(a[t]=o,!0):n!==Xe&&Ke(n,t)?(n[t]=o,!0):Ke(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(r[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:n,appContext:a,props:r,type:s}},i){let l;return!!(o[i]||e!==Xe&&i[0]!=="$"&&Ke(e,i)||es(t,i)||Ke(r,i)||Ke(n,i)||Ke(qn,i)||Ke(a.config.globalProperties,i)||(l=s.__cssModules)&&l[i])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:Ke(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function Ll(e){return we(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let ts=!0;function Lg(e){const t=Tl(e),o=e.proxy,n=e.ctx;ts=!1,t.beforeCreate&&El(t.beforeCreate,e,"bc");const{data:a,computed:r,methods:s,watch:i,provide:l,inject:c,created:u,beforeMount:p,mounted:f,beforeUpdate:k,updated:S,activated:_,deactivated:d,beforeDestroy:g,beforeUnmount:b,destroyed:y,unmounted:w,render:$,renderTracked:x,renderTriggered:E,errorCaptured:P,serverPrefetch:R,expose:K,inheritAttrs:V,components:ae,directives:M,filters:L}=t;if(c&&Eg(c,n,null),s)for(const h in s){const U=s[h];Ae(U)&&(n[h]=U.bind(o))}if(a){const h=a.call(o,o);ze(h)&&(e.data=dn(h))}if(ts=!0,r)for(const h in r){const U=r[h],ie=Ae(U)?U.bind(o,o):Ae(U.get)?U.get.bind(o,o):oo,Y=!Ae(U)&&Ae(U.set)?U.set.bind(o):oo,pe=oe({get:ie,set:Y});Object.defineProperty(n,h,{enumerable:!0,configurable:!0,get:()=>pe.value,set:ge=>pe.value=ge})}if(i)for(const h in i)Cl(i[h],n,o,h);if(l){const h=Ae(l)?l.call(o):l;Reflect.ownKeys(h).forEach(U=>{Ot(U,h[U])})}u&&El(u,e,"c");function A(h,U){we(U)?U.forEach(ie=>h(ie.bind(o))):U&&h(U.bind(o))}if(A(wl,p),A(co,f),A(yg,k),A(_g,S),A(hg,_),A(mg,d),A(xg,P),A(wg,x),A(kg,E),A(uo,b),A(za,w),A(vg,R),we(K))if(K.length){const h=e.exposed||(e.exposed={});K.forEach(U=>{Object.defineProperty(h,U,{get:()=>o[U],set:ie=>o[U]=ie,enumerable:!0})})}else e.exposed||(e.exposed={});$&&e.render===oo&&(e.render=$),V!=null&&(e.inheritAttrs=V),ae&&(e.components=ae),M&&(e.directives=M),R&&Xr(e)}function Eg(e,t,o=oo){we(e)&&(e=os(e));for(const n in e){const a=e[n];let r;ze(a)?"default"in a?r=Ie(a.from||n,a.default,!0):r=Ie(a.from||n):r=Ie(a),rt(r)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:s=>r.value=s}):t[n]=r}}function El(e,t,o){Jt(we(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function Cl(e,t,o,n){let a=n.includes(".")?gl(o,n):()=>o[n];if(Qe(e)){const r=t[e];Ae(r)&<(a,r)}else if(Ae(e))lt(a,e.bind(o));else if(ze(e))if(we(e))e.forEach(r=>Cl(r,t,o,n));else{const r=Ae(e.handler)?e.handler.bind(o):t[e.handler];Ae(r)&<(a,r,e)}}function Tl(e){const t=e.type,{mixins:o,extends:n}=t,{mixins:a,optionsCache:r,config:{optionMergeStrategies:s}}=e.appContext,i=r.get(t);let l;return i?l=i:!a.length&&!o&&!n?l=t:(l={},a.length&&a.forEach(c=>Va(l,c,s,!0)),Va(l,t,s)),ze(t)&&r.set(t,l),l}function Va(e,t,o,n=!1){const{mixins:a,extends:r}=t;r&&Va(e,r,o,!0),a&&a.forEach(s=>Va(e,s,o,!0));for(const s in t)if(!(n&&s==="expose")){const i=Cg[s]||o&&o[s];e[s]=i?i(e[s],t[s]):t[s]}return e}const Cg={data:Pl,props:Ml,emits:Ml,methods:Jn,computed:Jn,beforeCreate:It,created:It,beforeMount:It,mounted:It,beforeUpdate:It,updated:It,beforeDestroy:It,beforeUnmount:It,destroyed:It,unmounted:It,activated:It,deactivated:It,errorCaptured:It,serverPrefetch:It,components:Jn,directives:Jn,watch:Pg,provide:Pl,inject:Tg};function Pl(e,t){return t?e?function(){return gt(Ae(e)?e.call(this,this):e,Ae(t)?t.call(this,this):t)}:t:e}function Tg(e,t){return Jn(os(e),os(t))}function os(e){if(we(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${vt(t)}Modifiers`]||e[`${Gt(t)}Modifiers`];function Rg(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||Xe;let a=o;const r=t.startsWith("update:"),s=r&&Ig(n,t.slice(7));s&&(s.trim&&(a=o.map(u=>Qe(u)?u.trim():u)),s.number&&(a=a.map(Aa)));let i,l=n[i=Pr(t)]||n[i=Pr(vt(t))];!l&&r&&(l=n[i=Pr(Gt(t))]),l&&Jt(l,e,6,a);const c=n[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,Jt(c,e,6,a)}}const Fg=new WeakMap;function Il(e,t,o=!1){const n=o?Fg:t.emitsCache,a=n.get(e);if(a!==void 0)return a;const r=e.emits;let s={},i=!1;if(!Ae(e)){const l=c=>{const u=Il(c,t,!0);u&&(i=!0,gt(s,u))};!o&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!r&&!i?(ze(e)&&n.set(e,null),null):(we(r)?r.forEach(l=>s[l]=null):gt(s,r),ze(e)&&n.set(e,s),s)}function Wa(e,t){return!e||!_a(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Ke(e,t[0].toLowerCase()+t.slice(1))||Ke(e,Gt(t))||Ke(e,t))}function _x(){}function Rl(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[r],slots:s,attrs:i,emit:l,render:c,renderCache:u,props:p,data:f,setupState:k,ctx:S,inheritAttrs:_}=e,d=Da(e);let g,b;try{if(o.shapeFlag&4){const w=a||n,$=w;g=go(c.call($,w,u,p,k,f,S)),b=i}else{const w=t;g=go(w.length>1?w(p,{attrs:i,slots:s,emit:l}):w(p,null)),b=t.props?i:Og(i)}}catch(w){So.length=0,Hn(w,e,1),g=He(po)}let y=g;if(b&&_!==!1){const w=Object.keys(b),{shapeFlag:$}=y;w.length&&$&7&&(r&&w.some(va)&&(b=Dg(b,r)),y=_n(y,b,!1,!0))}if(o.dirs&&(y=_n(y,null,!1,!0),y.dirs=y.dirs?y.dirs.concat(o.dirs):o.dirs),o.transition){const w=Ba(y.type)&&bl(y)||y;Zr(w,o.transition)}return g=y,Da(d),g}const Og=e=>{let t;for(const o in e)(o==="class"||o==="style"||_a(o))&&((t||(t={}))[o]=e[o]);return t},Dg=(e,t)=>{const o={};for(const n in e)(!va(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function Bg(e,t,o){const{props:n,children:a,component:r}=e,{props:s,children:i,patchFlag:l}=t,c=r.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&l>=0){if(l&1024)return!0;if(l&16)return n?Fl(n,s,c):!!s;if(l&8){const u=t.dynamicProps;for(let p=0;pObject.create(Dl),Gl=e=>Object.getPrototypeOf(e)===Dl;function jg(e,t,o,n=!1){const a={},r=Bl();e.propsDefaults=Object.create(null),jl(e,t,a,r);for(const s in e.propsOptions[0])s in a||(a[s]=void 0);o?e.props=n?a:Bp(a):e.type.props?e.props=a:e.props=r,e.attrs=r}function Ug(e,t,o,n){const{props:a,attrs:r,vnode:{patchFlag:s}}=e,i=Oe(a),[l]=e.propsOptions;let c=!1;if((n||s>0)&&!(s&16)){if(s&8){const u=e.vnode.dynamicProps;for(let p=0;p{l=!0;const[f,k]=Ul(p,t,!0);gt(s,f),k&&i.push(...k)};!o&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!r&&!l)return ze(e)&&n.set(e,cn),cn;if(we(r))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",rs=e=>we(e)?e.map(go):[go(e)],Hg=(e,t,o)=>{if(t._n)return t;const n=zt((...a)=>rs(t(...a)),o);return n._c=!1,n},Hl=(e,t,o)=>{const n=e._ctx;for(const a in e){if(as(a))continue;const r=e[a];if(Ae(r))t[a]=Hg(a,r,n);else if(r!=null){const s=rs(r);t[a]=()=>s}}},zl=(e,t)=>{const o=rs(t);e.slots.default=()=>o},Vl=(e,t,o)=>{for(const n in t)(o||!as(n))&&(e[n]=t[n])},zg=(e,t,o)=>{const n=e.slots=Bl();if(e.vnode.shapeFlag&32){const a=t._;a?(Vl(n,t,o),o&&Ci(n,"_",a,!0)):Hl(t,n)}else t&&zl(e,t)},Vg=(e,t,o)=>{const{vnode:n,slots:a}=e;let r=!0,s=Xe;if(n.shapeFlag&32){const i=t._;i?o&&i===1?r=!1:Vl(a,t,o):(r=!t.$stable,Hl(t,a)),s=t}else t&&(zl(e,t),s={default:1});if(r)for(const i in a)!as(i)&&s[i]==null&&delete a[i]},Rt=Zg;function Wg(e){return Yg(e)}function Yg(e,t){const o=La();o.__VUE__=!0;const{insert:n,remove:a,patchProp:r,createElement:s,createText:i,createComment:l,setText:c,setElementText:u,parentNode:p,nextSibling:f,setScopeId:k=oo,insertStaticContent:S}=e,_=(C,F,I,z=null,Q=null,Z=null,te=void 0,X=null,m=!!F.dynamicChildren)=>{if(C===F)return;C&&!ea(C,F)&&(z=ct(C),ge(C,Q,Z,!0),C=null),F.patchFlag===-2&&(m=!1,F.dynamicChildren=null);const{type:v,ref:D,shapeFlag:W}=F;switch(v){case Zn:d(C,F,I,z);break;case po:g(C,F,I,z);break;case Ya:C==null&&b(F,I,z,te);break;case Me:ae(C,F,I,z,Q,Z,te,X,m);break;default:W&1?$(C,F,I,z,Q,Z,te,X,m):W&6?M(C,F,I,z,Q,Z,te,X,m):(W&64||W&128)&&v.process(C,F,I,z,Q,Z,te,X,m,We)}D!=null&&Q?Yn(D,C&&C.ref,Z,F||C,!F):D==null&&C&&C.ref!=null&&Yn(C.ref,null,Z,C,!0)},d=(C,F,I,z)=>{if(C==null)n(F.el=i(F.children),I,z);else{const Q=F.el=C.el;F.children!==C.children&&c(Q,F.children)}},g=(C,F,I,z)=>{C==null?n(F.el=l(F.children||""),I,z):F.el=C.el},b=(C,F,I,z)=>{[C.el,C.anchor]=S(C.children,F,I,z,C.el,C.anchor)},y=({el:C,anchor:F},I,z)=>{let Q;for(;C&&C!==F;)Q=f(C),n(C,I,z),C=Q;n(F,I,z)},w=({el:C,anchor:F})=>{let I;for(;C&&C!==F;)I=f(C),a(C),C=I;a(F)},$=(C,F,I,z,Q,Z,te,X,m)=>{if(F.type==="svg"?te="svg":F.type==="math"&&(te="mathml"),C==null)x(F,I,z,Q,Z,te,X,m);else{const v=C.el&&C.el._isVueCE?C.el:null;try{v&&v._beginPatch(),R(C,F,Q,Z,te,X,m)}finally{v&&v._endPatch()}}},x=(C,F,I,z,Q,Z,te,X)=>{let m,v;const{props:D,shapeFlag:W,transition:ce,dirs:re}=C;if(m=C.el=s(C.type,Z,D&&D.is,D),W&8?u(m,C.children):W&16&&P(C.children,m,null,z,Q,ss(C,Z),te,X),re&&Jo(C,null,z,"created"),E(m,C,C.scopeId,te,z),D){for(const q in D)q!=="value"&&!On(q)&&r(m,q,null,D[q],Z,z);"value"in D&&r(m,"value",null,D.value,Z),(v=D.onVnodeBeforeMount)&&fo(v,z,C)}re&&Jo(C,null,z,"beforeMount");const B=qg(Q,ce);B&&ce.beforeEnter(m),n(m,F,I),((v=D&&D.onVnodeMounted)||B||re)&&Rt(()=>{try{v&&fo(v,z,C),B&&ce.enter(m),re&&Jo(C,null,z,"mounted")}finally{}},Q)},E=(C,F,I,z,Q)=>{if(I&&k(C,I),z)for(let Z=0;Z{for(let v=m;v{const X=F.el=C.el;let{patchFlag:m,dynamicChildren:v,dirs:D}=F;m|=C.patchFlag&16;const W=C.props||Xe,ce=F.props||Xe;let re;if(I&&Qo(I,!1),(re=ce.onVnodeBeforeUpdate)&&fo(re,I,F,C),D&&Jo(F,C,I,"beforeUpdate"),I&&Qo(I,!0),v&&(!C.dynamicChildren||C.dynamicChildren.length!==v.length)&&(m=0,te=!1,v=null),(W.innerHTML&&ce.innerHTML==null||W.textContent&&ce.textContent==null)&&u(X,""),v?K(C.dynamicChildren,v,X,I,z,ss(F,Q),Z):te||U(C,F,X,null,I,z,ss(F,Q),Z,!1),m>0){if(m&16)V(X,W,ce,I,Q);else if(m&2&&W.class!==ce.class&&r(X,"class",null,ce.class,Q),m&4&&r(X,"style",W.style,ce.style,Q),m&8){const B=F.dynamicProps;for(let q=0;q{re&&fo(re,I,F,C),D&&Jo(F,C,I,"updated")},z)},K=(C,F,I,z,Q,Z,te)=>{for(let X=0;X{if(F!==I){if(F!==Xe)for(const Z in F)!On(Z)&&!(Z in I)&&r(C,Z,F[Z],null,Q,z);for(const Z in I){if(On(Z))continue;const te=I[Z],X=F[Z];te!==X&&Z!=="value"&&r(C,Z,X,te,Q,z)}"value"in I&&r(C,"value",F.value,I.value,Q)}},ae=(C,F,I,z,Q,Z,te,X,m)=>{const v=F.el=C?C.el:i(""),D=F.anchor=C?C.anchor:i("");let{patchFlag:W,dynamicChildren:ce,slotScopeIds:re}=F;re&&(X=X?X.concat(re):re),C==null?(n(v,I,z),n(D,I,z),P(F.children||[],I,D,Q,Z,te,X,m)):W>0&&W&64&&ce&&C.dynamicChildren&&C.dynamicChildren.length===ce.length?(K(C.dynamicChildren,ce,I,Q,Z,te,X),(F.key!=null||Q&&F===Q.subTree)&&is(C,F,!0)):U(C,F,I,D,Q,Z,te,X,m)},M=(C,F,I,z,Q,Z,te,X,m)=>{F.slotScopeIds=X,C==null?F.shapeFlag&512?Q.ctx.activate(F,I,z,te,m):L(F,I,z,Q,Z,te,m):N(C,F,m)},L=(C,F,I,z,Q,Z,te)=>{const X=C.component=af(C,z,Q);if(Ka(C)&&(X.ctx.renderer=We),rf(X,!1,te),X.asyncDep){if(Q&&Q.registerDep(X,A,te),!C.el){const m=X.subTree=He(po);g(null,m,F,I),C.placeholder=m.el}}else A(X,C,F,I,Q,Z,te)},N=(C,F,I)=>{const z=F.component=C.component;if(Bg(C,F,I))if(z.asyncDep&&!z.asyncResolved){h(z,F,I);return}else z.next=F,z.update();else F.el=C.el,z.vnode=F},A=(C,F,I,z,Q,Z,te)=>{const X=()=>{if(C.isMounted){let{next:W,bu:ce,u:re,parent:B,vnode:q}=C;{const j=Wl(C);if(j){W&&(W.el=q.el,h(C,W,te)),j.asyncDep.then(()=>{Rt(()=>{C.isUnmounted||v()},Q)});return}}let me=W,xe;Qo(C,!1),W?(W.el=q.el,h(C,W,te)):W=q,ce&&$a(ce),(xe=W.props&&W.props.onVnodeBeforeUpdate)&&fo(xe,B,W,q),Qo(C,!0);const Fe=Rl(C),O=C.subTree;C.subTree=Fe,_(O,Fe,p(O.el),ct(O),C,Q,Z),W.el=Fe.el,me===null&&Gg(C,Fe.el),re&&Rt(re,Q),(xe=W.props&&W.props.onVnodeUpdated)&&Rt(()=>fo(xe,B,W,q),Q)}else{let W;const{el:ce,props:re}=F,{bm:B,m:q,parent:me,root:xe,type:Fe}=C,O=bn(F);Qo(C,!1),B&&$a(B),!O&&(W=re&&re.onVnodeBeforeMount)&&fo(W,me,F),Qo(C,!0);{xe.ce&&xe.ce._hasShadowRoot()&&xe.ce._injectChildStyle(Fe,C.parent?C.parent.type:void 0);const j=C.subTree=Rl(C);_(null,j,I,z,C,Q,Z),F.el=j.el}if(q&&Rt(q,Q),!O&&(W=re&&re.onVnodeMounted)){const j=F;Rt(()=>fo(W,me,j),Q)}(F.shapeFlag&256||me&&bn(me.vnode)&&me.vnode.shapeFlag&256)&&C.a&&Rt(C.a,Q),C.isMounted=!0,F=I=z=null}};C.scope.on();const m=C.effect=new Di(X);C.scope.off();const v=C.update=m.run.bind(m),D=C.job=m.runIfDirty.bind(m);D.i=C,D.id=C.uid,m.scheduler=()=>Vr(D),Qo(C,!0),v()},h=(C,F,I)=>{F.component=C;const z=C.vnode.props;C.vnode=F,C.next=null,Ug(C,F.props,z,I),Vg(C,F.children,I),ao(),ll(C),ro()},U=(C,F,I,z,Q,Z,te,X,m=!1)=>{const v=C&&C.children,D=C?C.shapeFlag:0,W=F.children,{patchFlag:ce,shapeFlag:re}=F;if(ce>0){if(ce&128){Y(v,W,I,z,Q,Z,te,X,m);return}else if(ce&256){ie(v,W,I,z,Q,Z,te,X,m);return}}re&8?(D&16&&Ve(v,Q,Z),W!==v&&u(I,W)):D&16?re&16?Y(v,W,I,z,Q,Z,te,X,m):Ve(v,Q,Z,!0):(D&8&&u(I,""),re&16&&P(W,I,z,Q,Z,te,X,m))},ie=(C,F,I,z,Q,Z,te,X,m)=>{C=C||cn,F=F||cn;const v=C.length,D=F.length,W=Math.min(v,D);let ce;for(ce=0;ceD?Ve(C,Q,Z,!0,!1,W):P(F,I,z,Q,Z,te,X,m,W)},Y=(C,F,I,z,Q,Z,te,X,m)=>{let v=0;const D=F.length;let W=C.length-1,ce=D-1;for(;v<=W&&v<=ce;){const re=C[v],B=F[v]=m?$o(F[v]):go(F[v]);if(ea(re,B))_(re,B,I,null,Q,Z,te,X,m);else break;v++}for(;v<=W&&v<=ce;){const re=C[W],B=F[ce]=m?$o(F[ce]):go(F[ce]);if(ea(re,B))_(re,B,I,null,Q,Z,te,X,m);else break;W--,ce--}if(v>W){if(v<=ce){const re=ce+1,B=rece)for(;v<=W;)ge(C[v],Q,Z,!0),v++;else{const re=v,B=v,q=new Map;for(v=B;v<=ce;v++){const ve=F[v]=m?$o(F[v]):go(F[v]);ve.key!=null&&q.set(ve.key,v)}let me,xe=0;const Fe=ce-B+1;let O=!1,j=0;const he=new Array(Fe);for(v=0;v=Fe){ge(ve,Q,Z,!0);continue}let De;if(ve.key!=null)De=q.get(ve.key);else for(me=B;me<=ce;me++)if(he[me-B]===0&&ea(ve,F[me])){De=me;break}De===void 0?ge(ve,Q,Z,!0):(he[De-B]=v+1,De>=j?j=De:O=!0,_(ve,F[De],I,null,Q,Z,te,X,m),xe++)}const ke=O?Jg(he):cn;for(me=ke.length-1,v=Fe-1;v>=0;v--){const ve=B+v,De=F[ve],Ee=F[ve+1],dt=ve+1{const{el:Z,type:te,transition:X,children:m,shapeFlag:v}=C;if(v&6){pe(C.component.subTree,F,I,z);return}if(v&128){C.suspense.move(F,I,z);return}if(v&64){te.move(C,F,I,We);return}if(te===Me){n(Z,F,I);for(let W=0;WX.enter(Z),Q));else{const{leave:W,delayLeave:ce,afterLeave:re}=X,B=()=>{C.ctx.isUnmounted?a(Z):n(Z,F,I)},q=()=>{const me=Z._isLeaving||!!Z[Jr];Z._isLeaving&&Z[Jr](!0),X.persisted&&!me?B():W(Z,()=>{B(),re&&re()})};ce?ce(Z,B,q):q()}else n(Z,F,I)},ge=(C,F,I,z=!1,Q=!1)=>{const{type:Z,props:te,ref:X,children:m,dynamicChildren:v,shapeFlag:D,patchFlag:W,dirs:ce,cacheIndex:re,memo:B}=C;if(W===-2&&(Q=!1),X!=null&&(ao(),Yn(X,null,I,C,!0),ro()),re!=null&&(F.renderCache[re]=void 0),D&256){F.ctx.deactivate(C);return}const q=D&1&&ce,me=!bn(C);let xe;if(me&&(xe=te&&te.onVnodeBeforeUnmount)&&fo(xe,F,C),D&6)Te(C.component,I,z);else{if(D&128){C.suspense.unmount(I,z);return}q&&Jo(C,null,F,"beforeUnmount"),D&64?C.type.remove(C,F,I,We,z):v&&!v.hasOnce&&(Z!==Me||W>0&&W&64)?Ve(v,F,I,!1,!0):(Z===Me&&W&384||!Q&&D&16)&&Ve(m,F,I),z&&se(C)}const Fe=B!=null&&re==null;(me&&(xe=te&&te.onVnodeUnmounted)||q||Fe)&&Rt(()=>{xe&&fo(xe,F,C),q&&Jo(C,null,F,"unmounted"),Fe&&(C.el=null)},I)},se=C=>{const{type:F,el:I,anchor:z,transition:Q}=C;if(F===Me){$e(I,z);return}if(F===Ya){w(C);return}const Z=()=>{a(I),Q&&!Q.persisted&&Q.afterLeave&&Q.afterLeave()};if(C.shapeFlag&1&&Q&&!Q.persisted){const{leave:te,delayLeave:X}=Q,m=()=>te(I,Z);X?X(C.el,Z,m):m()}else Z()},$e=(C,F)=>{let I;for(;C!==F;)I=f(C),a(C),C=I;a(F)},Te=(C,F,I)=>{const{bum:z,scope:Q,job:Z,subTree:te,um:X,m,a:v}=C;Yl(m),Yl(v),z&&$a(z),Q.stop(),Z&&(Z.flags|=8,ge(te,C,F,I)),X&&Rt(X,F),Rt(()=>{C.isUnmounted=!0},F)},Ve=(C,F,I,z=!1,Q=!1,Z=0)=>{for(let te=Z;te{if(C.shapeFlag&6)return ct(C.component.subTree);if(C.shapeFlag&128)return C.suspense.next();const F=f(C.anchor||C.el),I=F&&F[fl];return I?f(I):F};let qe=!1;const ot=(C,F,I)=>{let z;C==null?F._vnode&&(ge(F._vnode,null,null,!0),z=F._vnode.component):_(F._vnode||null,C,F,null,null,null,I),F._vnode=C,qe||(qe=!0,ll(z),cl(),qe=!1)},We={p:_,um:ge,m:pe,r:se,mt:L,mc:P,pc:U,pbc:K,n:ct,o:e};return{render:ot,hydrate:void 0,createApp:Ng(ot)}}function ss({type:e,props:t},o){return o==="svg"&&e==="foreignObject"||o==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:o}function Qo({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function qg(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function is(e,t,o=!1){const n=e.children,a=t.children;if(we(n)&&we(a))for(let r=0;r>1,e[o[i]]0&&(t[n]=o[r-1]),o[r]=n)}}for(r=o.length,s=o[r-1];r-- >0;)o[r]=s,s=t[s];return o}function Wl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Wl(t)}function Yl(e){if(e)for(let t=0;te.__isSuspense;function Zg(e,t){t&&t.pendingBranch?we(e)?t.effects.push(...e):t.effects.push(e):og(e)}const Me=Symbol.for("v-fgt"),Zn=Symbol.for("v-txt"),po=Symbol.for("v-cmt"),Ya=Symbol.for("v-stc"),So=[];let Ut=null;function H(e=!1){So.push(Ut=e?null:[])}function ls(){So.pop(),Ut=So[So.length-1]||null}let Xn=1;function qa(e,t=!1){Xn+=e,e<0&&Ut&&t&&(Ut.hasOnce=!0)}function Zl(e){return e.dynamicChildren=Xn>0?Ut||cn:null,ls(),Xn>0&&Ut&&Ut.push(e),e}function ee(e,t,o,n,a,r){return Zl(T(e,t,o,n,a,r,!0))}function ft(e,t,o,n,a){return Zl(He(e,t,o,n,a,!0))}function Qn(e){return e?e.__v_isVNode===!0:!1}function ea(e,t){return e.type===t.type&&e.key===t.key}const Xl=({key:e})=>e??null,Ja=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?Qe(e)||rt(e)||Ae(e)?{i:Lt,r:e,k:t,f:!!o}:e:null);function T(e,t=null,o=null,n=0,a=null,r=e===Me?0:1,s=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Xl(t),ref:t&&Ja(t),scopeId:dl,slotScopeIds:null,children:o,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:n,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:Lt};return i?(Za(l,o),r&128&&e.normalize(l)):o&&(l.shapeFlag|=Qe(o)?8:16),Xn>0&&!s&&Ut&&(l.patchFlag>0||r&6)&&l.patchFlag!==32&&Ut.push(l),l}const He=Xg;function Xg(e,t=null,o=null,n=0,a=null,r=!1){if((!e||e===xl)&&(e=po),Qn(e)){const i=_n(e,t,!0);return o&&Za(i,o),Xn>0&&!r&&Ut&&(i.shapeFlag&6?Ut[Ut.indexOf(e)]=i:Ut.push(i)),i.patchFlag=-2,i}if(pf(e)&&(e=e.__vccOpts),t){t=Qg(t);let{class:i,style:l}=t;i&&!Qe(i)&&(t.class=Ne(i)),ze(l)&&(Ia(l)&&!we(l)&&(l=gt({},l)),t.style=at(l))}const s=Qe(e)?1:Jl(e)?128:Ba(e)?64:ze(e)?4:Ae(e)?2:0;return T(e,t,o,n,a,s,r,!0)}function Qg(e){return e?Ia(e)||Gl(e)?gt({},e):e:null}function _n(e,t,o=!1,n=!1){const{props:a,ref:r,patchFlag:s,children:i,transition:l}=e,c=t?tf(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Xl(c),ref:t&&t.ref?o&&r?we(r)?r.concat(Ja(t)):[r,Ja(t)]:Ja(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Me?s===-1?16:s|16:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&_n(e.ssContent),ssFallback:e.ssFallback&&_n(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&Zr(u,l.clone(u)),u}function bt(e=" ",t=0){return He(Zn,null,e,t)}function ef(e,t){const o=He(Ya,null,e);return o.staticCount=t,o}function ye(e="",t=!1){return t?(H(),ft(po,null,e)):He(po,null,e)}function go(e){return e==null||typeof e=="boolean"?He(po):we(e)?He(Me,null,e.slice()):Qn(e)?$o(e):He(Zn,null,String(e))}function $o(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:_n(e)}function Za(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(we(t))o=16;else if(typeof t=="object")if(n&65){const a=t.default;a&&(a._c&&(a._d=!1),Za(e,a()),a._c&&(a._d=!0));return}else{o=32;const a=t._;!a&&!Gl(t)?t._ctx=Lt:a===3&&Lt&&(Lt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Ae(t)){if(n&65){Za(e,{default:t});return}t={default:t,_ctx:Lt},o=32}else t=String(t),n&64?(o=16,t=[bt(t)]):o=8;e.children=t,e.shapeFlag|=o}function tf(...e){const t={};for(let o=0;oCt||Lt;let Xa,ta;{const e=La(),t=(o,n)=>{let a;return(a=e[o])||(a=e[o]=[]),a.push(n),r=>{a.length>1?a.forEach(s=>s(r)):a[0](r)}};Xa=t("__VUE_INSTANCE_SETTERS__",o=>Ct=o),ta=t("__VUE_SSR_SETTERS__",o=>vn=o)}const oa=e=>{const t=Ct;return Xa(e),e.scope.on(),()=>{e.scope.off(),Xa(t)}},Ql=()=>{Ct&&Ct.scope.off(),Xa(null)};function ec(e){return e.vnode.shapeFlag&4}let vn=!1;function rf(e,t=!1,o=!1){t&&ta(t);const{props:n,children:a}=e.vnode,r=ec(e);jg(e,n,r,t),zg(e,a,o||t);const s=r?sf(e,t):void 0;return t&&ta(!1),s}function sf(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Ag);const{setup:n}=o;if(n){ao();const a=e.setupContext=n.length>1?cf(e):null,r=oa(e),s=fn(n,e,0,[e.props,a]),i=Li(s);if(ro(),r(),(i||e.sp)&&!bn(e)&&Xr(e),i){if(s.then(Ql,Ql),t)return s.then(l=>{ta(!0);try{tc(e,l,t)}finally{ta(!1)}}).catch(l=>{Hn(l,e,0)});e.asyncDep=s}else tc(e,s)}else oc(e)}function tc(e,t,o){Ae(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ze(t)&&(e.setupState=nl(t)),oc(e)}function oc(e,t,o){const n=e.type;e.render||(e.render=n.render||oo);{const a=oa(e);ao();try{Lg(e)}finally{ro(),a()}}}const lf={get(e,t){return Pt(e,"get",""),e[t]}};function cf(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,lf),slots:e.slots,emit:e.emit,expose:t}}function Qa(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(nl(Yo(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in qn)return qn[o](e)},has(t,o){return o in t||o in qn}})):e.proxy}const uf=/(?:^|[-_])\w/g,df=e=>e.replace(uf,t=>t.toUpperCase()).replace(/[-_]/g,"");function nc(e,t=!0){return Ae(e)?e.displayName||e.name:e.name||t&&e.__name}function ac(e,t,o=!1){let n=nc(t);if(!n&&t.__file){const a=t.__file.match(/([^/\\]+)\.\w+$/);a&&(n=a[1])}if(!n&&e){const a=r=>{for(const s in r)if(r[s]===t)return s};n=a(e.components)||e.parent&&a(e.parent.type.components)||a(e.appContext.components)}return n?df(n):o?"App":"Anonymous"}function pf(e){return Ae(e)&&"__vccOpts"in e}const oe=(e,t)=>Wp(e,t,vn);function rc(e,t,o){try{qa(-1);const n=arguments.length;return n===2?ze(t)&&!we(t)?Qn(t)?He(e,null,[t]):He(e,t):He(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&Qn(o)&&(o=[o]),He(e,t,o))}finally{qa(1)}}const gf="3.5.42";/** * @vue/runtime-dom v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let Xr;const Hl=typeof window<"u"&&window.trustedTypes;if(Hl)try{Xr=Hl.createPolicy("vue",{createHTML:e=>e})}catch{}const Vl=Xr?e=>Xr.createHTML(e):e=>e,Bg="http://www.w3.org/2000/svg",jg="http://www.w3.org/1998/Math/MathML",wo=typeof document<"u"?document:null,Wl=wo&&wo.createElement("template"),Gg={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,n)=>{const a=t==="svg"?wo.createElementNS(Bg,e):t==="mathml"?wo.createElementNS(jg,e):o?wo.createElement(e,{is:o}):wo.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>wo.createTextNode(e),createComment:e=>wo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>wo.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,n,a,r){const s=o?o.previousSibling:t.lastChild;if(a&&(a===r||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),o),!(a===r||!(a=a.nextSibling)););else{Wl.innerHTML=Vl(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=Wl.content;if(n==="svg"||n==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}t.insertBefore(i,o)}return[s?s.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}},Ug=Symbol("_vtc");function Kg(e,t,o){const n=e[Ug];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const Yl=Symbol("_vod"),zg=Symbol("_vsh"),Hg=Symbol(""),Vg=/(?:^|;)\s*display\s*:/;function Wg(e,t,o){const n=e.style,a=Ve(o);let r=!1;if(o&&!a){if(t)if(Ve(t))for(const s of t.split(";")){const i=s.slice(0,s.indexOf(":")).trim();o[i]==null&&Zn(n,i,"")}else for(const s in t)o[s]==null&&Zn(n,s,"");for(const s in o){s==="display"&&(r=!0);const i=o[s];i!=null?qg(e,s,!Ve(t)&&t?t[s]:void 0,i)||Zn(n,s,i):Zn(n,s,"")}}else if(a){if(t!==o){const s=n[Hg];s&&(o+=";"+s),n.cssText=o,r=Vg.test(o)}}else t&&e.removeAttribute("style");Yl in e&&(e[Yl]=r?n.display:"",e[zg]&&(n.display="none"))}const Ha=/\s*!important$/;function Zn(e,t,o){if(ke(o))o.forEach(n=>Zn(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))Ha.test(o)?e.setProperty(t,o.replace(Ha,""),"important"):e.setProperty(t,o);else{const n=Yg(e,t);Ha.test(o)?e.setProperty(Rt(n),o.replace(Ha,""),"important"):e[n]=o}}const ql=["Webkit","Moz","ms"],Qr={};function Yg(e,t){const o=Qr[t];if(o)return o;let n=gt(t);if(n!=="filter"&&n in e)return Qr[t]=n;n=ma(n);for(let a=0;aes||(tf.then(()=>es=0),es=Date.now());function nf(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if(ke(a)){const r=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{r.call(n),n._stopped=!0};const s=a.slice(),i=[n];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,af=(e,t,o,n,a,r)=>{const s=a==="svg";t==="class"?Kg(e,n,s):t==="style"?Wg(e,o,n):ua(t)?da(t)||Zg(e,t,o,n,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):rf(e,t,n,s))?(Xl(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Zl(e,t,n,s,r,t!=="value")):e._isVueCE&&(sf(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Ve(n)))?Xl(e,gt(t),n,r,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Zl(e,t,n,s))};function rf(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&ec(t)&&xe(o));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const a=e.tagName;if(a==="IMG"||a==="VIDEO"||a==="CANVAS"||a==="SOURCE")return!1}return ec(t)&&Ve(o)?!1:t in e}function sf(e,t){const o=e._def.props;if(!o)return!1;const n=gt(t);return Array.isArray(o)?o.some(a=>gt(a)===n):Object.keys(o).some(a=>gt(a)===n)}const tc={};function lf(e,t,o){let n=Gn(e,t);ga(n)&&(n=nt({},n,t));class a extends ts{constructor(s){super(n,s,o)}}return a.def=n,a}const cf=typeof HTMLElement<"u"?HTMLElement:class{};class ts extends cf{constructor(t,o={},n=sc){super(),this._def=t,this._props=o,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==sc?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(nt({},t.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.assignedSlot||t.parentNode||t.host);)if(t instanceof ts){this._parent=t;break}this._instance||(this._resolved?this._mount(this._def):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{if(this._pendingResolve=void 0,this.isConnected)return this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._inheritParentContext(t))}_inheritParentContext(t=this._parent){t&&this._app&&Object.setPrototypeOf(this._app._context.provides,t._instance.provides)}disconnectedCallback(){this._connected=!1,bo(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const o of t)this._setAttr(o.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n{this._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:s}=n;let i;if(r&&!ke(r))for(const l in r){const c=r[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=mi(this._props[l])),(i||(i=Object.create(null)))[gt(l)]=!0)}this._numberProps=i,this._resolveProps(n),this.shadowRoot&&this._applyStyles(s),this._mount(n)},o=this._def.__asyncLoader;if(o)return this._pendingResolve=o().then(n=>{n.configureApp=this._def.configureApp,t(this._def=n,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const o=this._instance&&this._instance.exposed;if(o)for(const n in o)Re(this,n)||Object.defineProperty(this,n,{get:()=>ye(o[n])})}_resolveProps(t){const{props:o}=t,n=ke(o)?o:Object.keys(o||{});for(const a of Object.keys(this))a[0]!=="_"&&n.includes(a)&&this._setProp(a,this[a]);for(const a of n.map(gt))Object.defineProperty(this,a,{get(){return this._getProp(a)},set(r){this._setProp(a,r,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const o=this.hasAttribute(t);let n=o?this.getAttribute(t):tc;const a=gt(t);o&&this._numberProps&&this._numberProps[a]&&(n=mi(n)),this._setProp(a,n,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,o,n=!0,a=!1){if(o!==this._props[t]&&(this._dirty=!0,o===tc?delete this._props[t]:(this._props[t]=o,t==="key"&&this._app&&(this._app._ceVNode.key=o)),a&&this._instance&&this._update(),n)){const r=this._ob;r&&(this._processMutations(r.takeRecords()),r.disconnect()),o===!0?this.setAttribute(Rt(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(Rt(t),o+""):o||this.removeAttribute(Rt(t)),r&&r.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),mf(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=Ge(this._def,nt(t,this._props));return this._instance||(o.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const a=(r,s)=>{this.dispatchEvent(new CustomEvent(r,ga(s[0])?nt({detail:s},s[0]):{detail:s}))};n.emit=(r,...s)=>{a(r,s),Rt(r)!==r&&a(Rt(r),s)},this._setParent()}),o}_applyStyles(t,o,n){if(!t)return;if(o){if(o===this._def||this._styleChildren.has(o))return;this._styleChildren.add(o)}const a=this._nonce,r=this.shadowRoot,s=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(r);let i=null;for(let l=t.length-1;l>=0;l--){const c=document.createElement("style");a&&c.setAttribute("nonce",a),c.textContent=t[l],r.insertBefore(c,i||s),i=c,l===0&&(n||this._styleAnchors.set(this._def,c),o&&this._styleAnchors.set(o,c))}}_getStyleAnchor(t){if(!t)return null;const o=this._styleAnchors.get(t);return o&&o.parentNode===this.shadowRoot?o:(o&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let o=0;o{const t=e.props["onUpdate:modelValue"]||!1;return ke(t)?o=>ba(t,o):t};function uf(e){e.target.composing=!0}function nc(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Va=Symbol("_assign"),Wa=Symbol("_initialValue");function os(e,t,o){return t&&(e=e.trim()),o&&(e=_r(e)),e}const df={created(e,{modifiers:{lazy:t,trim:o,number:n}},a){e.parentNode&&(e.type==="text"?e[Wa]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Wa]=e.defaultValue.replace(/\r\n?/g,` -`))),e[Va]=oc(a);const r=n||a.props&&a.props.type==="number";gn(e,t?"change":"input",s=>{s.target.composing||e[Va](os(e.value,o,r))}),(o||r)&&gn(e,"change",()=>{e.value=os(e.value,o,r)}),t||(gn(e,"compositionstart",uf),gn(e,"compositionend",nc),gn(e,"change",nc))},mounted(e,{value:t,modifiers:{trim:o,number:n}}){const a=t??"",r=e[Wa];delete e[Wa],r!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==r?e[Va](os(e.value,o,n)):e.value=a},beforeUpdate(e,{value:t,oldValue:o,modifiers:{lazy:n,trim:a,number:r}},s){if(e[Va]=oc(s),e.composing)return;const i=(r||e.type==="number")&&!/^0\d/.test(e.value)?_r(e.value):e.value,l=t??"";if(i===l)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(n&&t===o||a&&e.value.trim()===l)||(e.value=l)}},pf=["ctrl","shift","alt","meta"],gf={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)=>pf.some(o=>e[`${o}Key`]&&!t.includes(o))},Dt=(e,t)=>{if(!e)return e;const o=e._withMods||(e._withMods={}),n=t.join(".");return o[n]||(o[n]=(a,...r)=>{for(let s=0;s{const o=e._withKeys||(e._withKeys={}),n=t.join(".");return o[n]||(o[n]=a=>{if(!("key"in a))return;const r=Rt(a.key);if(t.some(s=>s===r||ff[s]===r))return e(a)})},hf=nt({patchProp:af},Gg);let ac;function rc(){return ac||(ac=vg(hf))}const mf=(...e)=>{rc().render(...e)},sc=(...e)=>{const t=rc().createApp(...e),{mount:o}=t;return t.mount=n=>{const a=yf(n);if(!a)return;const r=t._component;!xe(r)&&!r.render&&!r.template&&(r.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const s=o(a,!1,bf(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),s},t};function bf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function yf(e){return Ve(e)?document.querySelector(e):e}/*! +**/let cs;const sc=typeof window<"u"&&window.trustedTypes;if(sc)try{cs=sc.createPolicy("vue",{createHTML:e=>e})}catch{}const ic=cs?e=>cs.createHTML(e):e=>e,ff="http://www.w3.org/2000/svg",hf="http://www.w3.org/1998/Math/MathML",Lo=typeof document<"u"?document:null,lc=Lo&&Lo.createElement("template"),mf={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,n)=>{const a=t==="svg"?Lo.createElementNS(ff,e):t==="mathml"?Lo.createElementNS(hf,e):o?Lo.createElement(e,{is:o}):Lo.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>Lo.createTextNode(e),createComment:e=>Lo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Lo.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,n,a,r){const s=o?o.previousSibling:t.lastChild;if(a&&(a===r||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),o),!(a===r||!(a=a.nextSibling)););else{lc.innerHTML=ic(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=lc.content;if(n==="svg"||n==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}t.insertBefore(i,o)}return[s?s.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}},bf=Symbol("_vtc");function yf(e,t,o){const n=e[bf];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const cc=Symbol("_vod"),_f=Symbol("_vsh"),vf=Symbol(""),kf=/(?:^|;)\s*display\s*:/;function wf(e,t,o){const n=e.style,a=Qe(o);let r=!1;if(o&&!a){if(t)if(Qe(t))for(const s of t.split(";")){const i=s.slice(0,s.indexOf(":")).trim();o[i]==null&&na(n,i,"")}else for(const s in t)o[s]==null&&na(n,s,"");for(const s in o){s==="display"&&(r=!0);const i=o[s];i!=null?Sf(e,s,!Qe(t)&&t?t[s]:void 0,i)||na(n,s,i):na(n,s,"")}}else if(a){if(t!==o){const s=n[vf];s&&(o+=";"+s),n.cssText=o,r=kf.test(o)}}else t&&e.removeAttribute("style");cc in e&&(e[cc]=r?n.display:"",e[_f]&&(n.display="none"))}const er=/\s*!important$/;function na(e,t,o){if(we(o))o.forEach(n=>na(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))er.test(o)?e.setProperty(t,o.replace(er,""),"important"):e.setProperty(t,o);else{const n=xf(e,t);er.test(o)?e.setProperty(Gt(n),o.replace(er,""),"important"):e[n]=o}}const uc=["Webkit","Moz","ms"],us={};function xf(e,t){const o=us[t];if(o)return o;let n=vt(t);if(n!=="filter"&&n in e)return us[t]=n;n=Sa(n);for(let a=0;ads||(Tf.then(()=>ds=0),ds=Date.now());function Mf(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if(we(a)){const r=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{r.call(n),n._stopped=!0};const s=a.slice(),i=[n];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Nf=(e,t,o,n,a,r)=>{const s=a==="svg";t==="class"?yf(e,n,s):t==="style"?wf(e,o,n):_a(t)?va(t)||Af(e,t,o,n,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):If(e,t,n,s))?(gc(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&pc(e,t,n,s,r,t!=="value")):e._isVueCE&&(Rf(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Qe(n)))?gc(e,vt(t),n,r,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),pc(e,t,n,s))};function If(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&hc(t)&&Ae(o));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const a=e.tagName;if(a==="IMG"||a==="VIDEO"||a==="CANVAS"||a==="SOURCE")return!1}return hc(t)&&Qe(o)?!1:t in e}function Rf(e,t){const o=e._def.props;if(!o)return!1;const n=vt(t);return Array.isArray(o)?o.some(a=>vt(a)===n):Object.keys(o).some(a=>vt(a)===n)}const mc={};function Ff(e,t,o){let n=Wn(e,t);ka(n)&&(n=gt({},n,t));class a extends ps{constructor(s){super(n,s,o)}}return a.def=n,a}const Of=typeof HTMLElement<"u"?HTMLElement:class{};class ps extends Of{constructor(t,o={},n=kc){super(),this._def=t,this._props=o,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==kc?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(gt({},t.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.assignedSlot||t.parentNode||t.host);)if(t instanceof ps){this._parent=t;break}this._instance||(this._resolved?this._mount(this._def):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{if(this._pendingResolve=void 0,this.isConnected)return this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._inheritParentContext(t))}_inheritParentContext(t=this._parent){t&&this._app&&Object.setPrototypeOf(this._app._context.provides,t._instance.provides)}disconnectedCallback(){this._connected=!1,lo(()=>{this._connected||(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const o of t)this._setAttr(o.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let n=0;n{this._resolved=!0,this._pendingResolve=void 0;const{props:r,styles:s}=n;let i;if(r&&!we(r))for(const l in r){const c=r[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=Ti(this._props[l])),(i||(i=Object.create(null)))[vt(l)]=!0)}this._numberProps=i,this._resolveProps(n),this.shadowRoot&&this._applyStyles(s),this._mount(n)},o=this._def.__asyncLoader;if(o)return this._pendingResolve=o().then(n=>{n.configureApp=this._def.configureApp,t(this._def=n,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const o=this._instance&&this._instance.exposed;if(o)for(const n in o)Ke(this,n)||Object.defineProperty(this,n,{get:()=>_e(o[n])})}_resolveProps(t){const{props:o}=t,n=we(o)?o:Object.keys(o||{});for(const a of Object.keys(this))a[0]!=="_"&&n.includes(a)&&this._setProp(a,this[a]);for(const a of n.map(vt))Object.defineProperty(this,a,{get(){return this._getProp(a)},set(r){this._setProp(a,r,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const o=this.hasAttribute(t);let n=o?this.getAttribute(t):mc;const a=vt(t);o&&this._numberProps&&this._numberProps[a]&&(n=Ti(n)),this._setProp(a,n,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,o,n=!0,a=!1){if(o!==this._props[t]&&(this._dirty=!0,o===mc?delete this._props[t]:(this._props[t]=o,t==="key"&&this._app&&(this._app._ceVNode.key=o)),a&&this._instance&&this._update(),n)){const r=this._ob;r&&(this._processMutations(r.takeRecords()),r.disconnect()),o===!0?this.setAttribute(Gt(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(Gt(t),o+""):o||this.removeAttribute(Gt(t)),r&&r.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),Vf(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=He(this._def,gt(t,this._props));return this._instance||(o.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const a=(r,s)=>{this.dispatchEvent(new CustomEvent(r,ka(s[0])?gt({detail:s},s[0]):{detail:s}))};n.emit=(r,...s)=>{a(r,s),Gt(r)!==r&&a(Gt(r),s)},this._setParent()}),o}_applyStyles(t,o,n){if(!t)return;if(o){if(o===this._def||this._styleChildren.has(o))return;this._styleChildren.add(o)}const a=this._nonce,r=this.shadowRoot,s=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(r);let i=null;for(let l=t.length-1;l>=0;l--){const c=document.createElement("style");a&&c.setAttribute("nonce",a),c.textContent=t[l],r.insertBefore(c,i||s),i=c,l===0&&(n||this._styleAnchors.set(this._def,c),o&&this._styleAnchors.set(o,c))}}_getStyleAnchor(t){if(!t)return null;const o=this._styleAnchors.get(t);return o&&o.parentNode===this.shadowRoot?o:(o&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let o=0;o{const t=e.props["onUpdate:modelValue"]||!1;return we(t)?o=>$a(t,o):t};function Df(e){e.target.composing=!0}function bc(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const tn=Symbol("_assign"),or=Symbol("_initialValue");function gs(e,t,o){return t&&(e=e.trim()),o&&(e=Aa(e)),e}const Bf={created(e,{modifiers:{lazy:t,trim:o,number:n}},a){e.parentNode&&(e.type==="text"?e[or]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[or]=e.defaultValue.replace(/\r\n?/g,` +`))),e[tn]=tr(a);const r=n||a.props&&a.props.type==="number";en(e,t?"change":"input",s=>{s.target.composing||e[tn](gs(e.value,o,r))}),(o||r)&&en(e,"change",()=>{e.value=gs(e.value,o,r)}),t||(en(e,"compositionstart",Df),en(e,"compositionend",bc),en(e,"change",bc))},mounted(e,{value:t,modifiers:{trim:o,number:n}}){const a=t??"",r=e[or];delete e[or],r!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==r?e[tn](gs(e.value,o,n)):e.value=a},beforeUpdate(e,{value:t,oldValue:o,modifiers:{lazy:n,trim:a,number:r}},s){if(e[tn]=tr(s),e.composing)return;const i=(r||e.type==="number")&&!/^0\d/.test(e.value)?Aa(e.value):e.value,l=t??"";if(i===l)return;const c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&e.type!=="range"&&(n&&t===o||a&&e.value.trim()===l)||(e.value=l)}},Gf={deep:!0,created(e,{value:t,modifiers:{number:o}},n){e._modelValue=t,en(e,"change",()=>{const a=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>o?Aa(nr(l)):nr(l)),r=e.multiple,s=r?Vo(e._modelValue)?new Set(a):a:a[0],i=e._pendingValue=[r,r?we(s)?a.slice():a:s];try{e[tn](s)}finally{lo(()=>{e._pendingValue===i&&(e._pendingValue=void 0)})}}),e[tn]=tr(n)},mounted(e,{value:t}){yc(e,t)},beforeUpdate(e,{value:t},o){e._modelValue=t,e[tn]=tr(o)},updated(e,{value:t}){const o=e._pendingValue;e._pendingValue=void 0,(!o||o[0]!==e.multiple||!jf(t,o[1],o[0]))&&yc(e,t)}};function jf(e,t,o){if(!o||we(e))return Io(e,t);if(Vo(e)){if(e.size!==t.length)return!1;for(const n of t)if(!e.has(n))return!1;return!0}return!1}function yc(e,t){const o=e.multiple,n=we(t);if(!(o&&!n&&!Vo(t))){for(let a=0,r=e.options.length;aString(c)===String(i)):s.selected=_p(t,i)>-1}else s.selected=t.has(i);else if(Io(nr(s),t)){e.selectedIndex!==a&&(e.selectedIndex=a);return}}!o&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function nr(e){return"_value"in e?e._value:e.value}const Uf=["ctrl","shift","alt","meta"],Kf={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)=>Uf.some(o=>e[`${o}Key`]&&!t.includes(o))},kt=(e,t)=>{if(!e)return e;const o=e._withMods||(e._withMods={}),n=t.join(".");return o[n]||(o[n]=(a,...r)=>{for(let s=0;s{const o=e._withKeys||(e._withKeys={}),n=t.join(".");return o[n]||(o[n]=a=>{if(!("key"in a))return;const r=Gt(a.key);if(t.some(s=>s===r||Hf[s]===r))return e(a)})},zf=gt({patchProp:Nf},mf);let _c;function vc(){return _c||(_c=Wg(zf))}const Vf=(...e)=>{vc().render(...e)},kc=(...e)=>{const t=vc().createApp(...e),{mount:o}=t;return t.mount=n=>{const a=Yf(n);if(!a)return;const r=t._component;!Ae(r)&&!r.render&&!r.template&&(r.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const s=o(a,!1,Wf(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),s},t};function Wf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Yf(e){return Qe(e)?document.querySelector(e):e}/*! * pinia v2.3.1 * (c) 2025 Eduardo San Martin Morote * @license MIT - */let ic;const Ya=e=>ic=e,lc=Symbol();function as(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Xn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Xn||(Xn={}));function _f(){const e=kr(!0),t=e.run(()=>ce({}));let o=[],n=[];const a=Uo({install(r){Ya(a),a._a=r,r.provide(lc,a),r.config.globalProperties.$pinia=a,n.forEach(s=>o.push(s)),n=[]},use(r){return this._a?o.push(r):n.push(r),this},_p:o,_a:null,_e:e,_s:new Map,state:t});return a}const cc=()=>{};function uc(e,t,o,n=cc){e.push(t);const a=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),n())};return!o&&xi()&&Vd(a),a}function fn(e,...t){e.slice().forEach(o=>{o(...t)})}const vf=e=>e(),dc=Symbol(),rs=Symbol();function ss(e,t){e instanceof Map&&t instanceof Map?t.forEach((o,n)=>e.set(n,o)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const o in t){if(!t.hasOwnProperty(o))continue;const n=t[o],a=e[o];as(a)&&as(n)&&e.hasOwnProperty(o)&&!Ze(n)&&!fo(n)?e[o]=ss(a,n):e[o]=n}return e}const kf=Symbol();function wf(e){return!as(e)||!e.hasOwnProperty(kf)}const{assign:Po}=Object;function xf(e){return!!(Ze(e)&&e.effect)}function Sf(e,t,o,n){const{state:a,actions:r,getters:s}=t,i=o.state.value[e];let l;function c(){i||(o.state.value[e]=a?a():{});const u=fp(o.state.value[e]);return Po(u,r,Object.keys(s||{}).reduce((p,g)=>(p[g]=Uo(Z(()=>{Ya(o);const k=o._s.get(e);return s[g].call(k,k)})),p),{}))}return l=pc(e,c,t,o,n,!0),l}function pc(e,t,o={},n,a,r){let s;const i=Po({actions:{}},o),l={deep:!0};let c,u,p=[],g=[],k;const w=n.state.value[e];!r&&!w&&(n.state.value[e]={});let _;function d(M){let P;c=u=!1,typeof M=="function"?(M(n.state.value[e]),P={type:Xn.patchFunction,storeId:e,events:k}):(ss(n.state.value[e],M),P={type:Xn.patchObject,payload:M,storeId:e,events:k});const I=_=Symbol();bo().then(()=>{_===I&&(c=!0)}),u=!0,fn(p,P,n.state.value[e])}const h=r?function(){const{state:P}=o,I=P?P():{};this.$patch(B=>{Po(B,I)})}:cc;function y(){s.stop(),p=[],g=[],n._s.delete(e)}const v=(M,P="")=>{if(dc in M)return M[rs]=P,M;const I=function(){Ya(n);const B=Array.from(arguments),H=[],O=[];function R(C){H.push(C)}function G(C){O.push(C)}fn(g,{args:B,name:I[rs],store:x,after:R,onError:G});let F;try{F=M.apply(this&&this.$id===e?this:x,B)}catch(C){throw fn(O,C),C}return F instanceof Promise?F.then(C=>(fn(H,C),C)).catch(C=>(fn(O,C),Promise.reject(C))):(fn(H,F),F)};return I[dc]=!0,I[rs]=P,I},b={_p:n,$id:e,$onAction:uc.bind(null,g),$patch:d,$reset:h,$subscribe(M,P={}){const I=uc(p,M,P.detached,()=>B()),B=s.run(()=>tt(()=>n.state.value[e],H=>{(P.flush==="sync"?u:c)&&M({storeId:e,type:Xn.direct,events:k},H)},Po({},l,P)));return I},$dispose:y},x=on(b);n._s.set(e,x);const L=(n._a&&n._a.runWithContext||vf)(()=>n._e.run(()=>(s=kr()).run(()=>t({action:v}))));for(const M in L){const P=L[M];if(Ze(P)&&!xf(P)||fo(P))r||(w&&wf(P)&&(Ze(P)?P.value=w[M]:ss(P,w[M])),n.state.value[e][M]=P);else if(typeof P=="function"){const I=v(P,M);L[M]=I,i.actions[M]=P}}return Po(x,L),Po(Me(x),L),Object.defineProperty(x,"$state",{get:()=>n.state.value[e],set:M=>{d(P=>{Po(P,M)})}}),n._p.forEach(M=>{Po(x,s.run(()=>M({store:x,app:n._a,pinia:n,options:i})))}),w&&r&&o.hydrate&&o.hydrate(x.$state,w),c=!0,u=!0,x}/*! #__NO_SIDE_EFFECTS__ */function is(e,t,o){let n,a;const r=typeof t=="function";typeof e=="string"?(n=e,a=r?o:t):(a=e,n=e.id);function s(i,l){const c=Tp();return i=i||(c?Te(lc,null):null),i&&Ya(i),i=ic,i._s.has(n)||(r?pc(n,t,a,i):Sf(n,a,i)),i._s.get(n)}return s.$id=n,s}const ls="__doxaMapToken",cs="doxa:map-token",gc="__doxaMapTokenBridge",hn=()=>{if(typeof window>"u")return"";const e=window[ls];return typeof e=="string"?e:""};function fc(e){if(typeof window>"u")return"";const t=typeof e=="string"?e.trim():"";if(!t||t===hn())return hn();window[ls]=t;try{window.dispatchEvent(new CustomEvent(cs,{detail:t}))}catch{}return t}function Af(){if(typeof window>"u"||window[gc])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!hn()&&(window[ls]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return hn()},set(t){fc(t)}}),window[gc]=!0}catch{}}function $f(){Af();const e=ce(hn());if(typeof window<"u"){const t=()=>{e.value=hn()};window.addEventListener(cs,t);try{oo(()=>window.removeEventListener(cs,t))}catch{}}return e}function hc(e){return Gp({loader:e,onError(t,o,n,a){a<=3?setTimeout(o,a*500):n()}})}const Lf={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل"},Cf={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين"},Ef={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},Tf={title:{prayer:"تقدم الصلاة",engagement:"تقدم الانخراط",adoption:"تقدم التبني",languageFamilies:"العائلات اللغوية",doxaRegions:"مناطق Doxa",affinityBlocs:"كتل القرابة",gospelResources:"موارد الإنجيل"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب"},prayer:{needsPrayer:"يحتاج إلى صلاة",hasPrayer:"لديه صلاة",fullPrayerCoverage:"تغطية صلاة كاملة"},progress:{title:"التقدم",covered:"{covered} من {total} مجموعة شعبية مغطاة بالصلاة · {pct}%",short:"{covered} من {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"يحتاج إلى انخراط",hasEngagement:"لديه انخراط"},adoption:{needsAdoption:"يحتاج إلى تبني",hasAdoption:"لديه تبني"},columns:{upgs:"UUPGs",population:"السكان",name:"الاسم"},footer:{total:"الإجمالي"},sortByUpgs:"ترتيب حسب UUPG",sortByPop:"ترتيب حسب السكان",colLabel:{religion:"ديانات UUPG",prayer:"حالة الصلاة",engagement:"حالة المشاركة",adoption:"حالة التبني",status:"الحالة"},titleBar:{legend:"مفتاح الخريطة",peopleGroups:"الشعوب",wagfRegions:"مناطق WAGF",languages:"اللغات"}},Pf={menuComingSoon:"القائمة قادمة قريباً"},Mf={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Nf={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},If={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"}},Rf={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة"},Ff={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen"},Of={prayForThem:"Für sie beten",adoptThem:"Sie adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten"},Df={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Bf={title:{prayer:"Gebetsfortschritt",engagement:"Engagement-Fortschritt",adoption:"Adoptionsfortschritt",languageFamilies:"Sprachfamilien",doxaRegions:"Doxa-Regionen",affinityBlocs:"Affinitätsblöcke",gospelResources:"Evangeliumsressourcen"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe"},prayer:{needsPrayer:"Braucht Gebet",hasPrayer:"Hat Gebet",fullPrayerCoverage:"Vollständige Gebetsabdeckung"},progress:{title:"Fortschritt",covered:"{covered} von {total} Volksgruppen im Gebet abgedeckt · {pct}%",short:"{covered} von {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Braucht Engagement",hasEngagement:"Hat Engagement"},adoption:{needsAdoption:"Braucht Adoption",hasAdoption:"Hat Adoption"},columns:{upgs:"UUPGs",population:"Bevölkerung"},footer:{total:"Gesamt"}},jf={menuComingSoon:"Menü folgt in Kürze"},Gf={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},Uf={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},Kf={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"}},zf={prayer:"Gebet",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Volksgruppen",regions:"Regionen",countries:"Länder","language-families":"Sprachen",religion:"Religionen",family:"Sprachfamilie",language:"Sprache",dialect:"Dialekt/Varietät",bloc:"Affinitätsblock",cluster:"Cluster",group:"Volksgruppe",pgic:"Volksgruppe im Land",region:"WAGF-Region",block:"WAGF-Block",country:"Land"},Hf={backToLegend:"Back to Legend",closeDetailView:"Close detail view"},Vf={prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed",shareSteps:["Embed this map on your site","Create a list of the websites in your city","Train them to embed it too","Train them to train others to embed it too","Multiply maps everywhere for Jesus!"],share:"Share"},Wf={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},Yf={title:{prayer:"Prayer Progress",engagement:"Engagement Progress",adoption:"Adoption Progress",languageFamilies:"Language Families",doxaRegions:"Doxa Regions",affinityBlocs:"Affinity Blocks",gospelResources:"Gospel Resources"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayerCoverage:"Full Prayer Coverage"},progress:{title:"Progress",covered:"{covered} of {total} people groups covered in prayer · {pct}%",short:"{covered} of {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UUPGs",population:"Population",name:"Name"},footer:{total:"Total"},sortByUpgs:"Sort by UUPGs",sortByPop:"Sort by Population",colLabel:{religion:"UUPG Religions",prayer:"Prayer Status",engagement:"Engagement Status",adoption:"Adoption Status",status:"Status"},titleBar:{legend:"Legend",peopleGroups:"People Groups",wagfRegions:"WAGF Regions",languages:"Languages"}},qf={menuComingSoon:"Menu coming soon"},Jf={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},Zf={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},Xf={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},Qf={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"},kinds:{people:"People Group + Country",peopleGroup:"People Group",bloc:"Affinity Block",cluster:"People Cluster",country:"Country",region:"Region",family:"Language Family",languageKind:"Language",dialect:"Dialect",religionKind:"Religion"},sections:{within:"Within {selection}",allData:"All DOXA Data"}},eh={prayer:"Prayer",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"People Groups (Affinity)",regions:"Regions",countries:"Countries","language-families":"Languages",religion:"Religions",family:"Lang Family",language:"Language",dialect:"Dialect/Variety",bloc:"Affinity Block",cluster:"Cluster",group:"People Group",pgic:"PG in Country",region:"WAGF Region",block:"WAGF Bloc",country:"Country"},th={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle"},oh={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar"},nh={labels:{country:"País:",population:"Población:",language:"Idioma:",religion:"Religión:",languageFamily:"Familia lingüística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"No hay descripción disponible."}},ah={title:{prayer:"Progreso de oración",engagement:"Progreso de implicación",adoption:"Progreso de adopción",languageFamilies:"Familias lingüísticas",doxaRegions:"Regiones Doxa",affinityBlocs:"Bloques de afinidad",gospelResources:"Recursos del Evangelio"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas"},prayer:{needsPrayer:"Necesita oración",hasPrayer:"Tiene oración",fullPrayerCoverage:"Cobertura de oración completa"},progress:{title:"Progreso",covered:"{covered} de {total} grupos de personas cubiertos en oración · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesita implicación",hasEngagement:"Tiene implicación"},adoption:{needsAdoption:"Necesita adopción",hasAdoption:"Tiene adopción"},columns:{upgs:"UUPGs",population:"Población",name:"Nombre"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por población",colLabel:{religion:"Religiones UUPG",prayer:"Estado de oración",engagement:"Estado de compromiso",adoption:"Estado de adopción",status:"Estado"},titleBar:{legend:"Leyenda",peopleGroups:"Pueblos",wagfRegions:"Regiones WAGF",languages:"Idiomas"}},rh={menuComingSoon:"Menú próximamente"},sh={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},ih={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},lh={placeholder:"Pueblo, lugar, idioma, religión",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"}},ch={prayer:"Oración",adoption:"Adopción",engagement:"Compromiso","affinity-blocks":"Pueblos",regions:"Regiones",countries:"Países","language-families":"Idiomas",religion:"Religiones",family:"Familia lingüística",language:"Idioma",dialect:"Dialecto/Variedad",bloc:"Bloque de afinidad",cluster:"Clúster",group:"Pueblo",pgic:"Pueblo en país",region:"Región WAGF",block:"Bloque WAGF",country:"País"},uh={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée"},dh={prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer"},ph={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},gh={title:{prayer:"Progression de la prière",engagement:"Progression de l'engagement",adoption:"Progression de l'adoption",languageFamilies:"Familles de langues",doxaRegions:"Régions Doxa",affinityBlocs:"Blocs d'affinité",gospelResources:"Ressources de l'Évangile"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes"},prayer:{needsPrayer:"Besoin de prière",hasPrayer:"Prière en cours",fullPrayerCoverage:"Couverture de prière complète"},progress:{title:"Progression",covered:"{covered} sur {total} groupes de personnes couverts par la prière · {pct}%",short:"{covered} sur {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Besoin d'engagement",hasEngagement:"Engagement en cours"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adoption en cours"},columns:{upgs:"UUPGs",population:"Population",name:"Nom"},footer:{total:"Total"},sortByUpgs:"Trier par UUPG",sortByPop:"Trier par population",colLabel:{religion:"Religions UUPG",prayer:"Statut de prière",engagement:"Statut d'engagement",adoption:"Statut d'adoption",status:"Statut"},titleBar:{legend:"Légende",peopleGroups:"Peuples",wagfRegions:"Régions WAGF",languages:"Langues"}},fh={menuComingSoon:"Menu bientôt disponible"},hh={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},mh={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},bh={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},yh={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"}},_h={prayer:"Prière",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Peuples",regions:"Régions",countries:"Pays","language-families":"Langues",religion:"Religions",family:"Famille linguistique",language:"Langue",dialect:"Dialecte/Variété",bloc:"Bloc d'affinité",cluster:"Grappe",group:"Peuple",pgic:"Peuple dans le pays",region:"Région WAGF",block:"Bloc WAGF",country:"Pays"},vh={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें"},kh={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें"},wh={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},xh={title:{prayer:"प्रार्थना प्रगति",engagement:"सहभागिता प्रगति",adoption:"गोद लेने की प्रगति",languageFamilies:"भाषा परिवार",doxaRegions:"Doxa क्षेत्र",affinityBlocs:"समानता समूह",gospelResources:"सुसमाचार संसाधन"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह"},prayer:{needsPrayer:"प्रार्थना चाहिए",hasPrayer:"प्रार्थना है",fullPrayerCoverage:"पूर्ण प्रार्थना कवरेज"},progress:{title:"प्रगति",covered:"{total} में से {covered} जनजाति समूह प्रार्थना में कवर · {pct}%",short:"{total} में से {covered} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"सहभागिता चाहिए",hasEngagement:"सहभागिता है"},adoption:{needsAdoption:"गोद लेना चाहिए",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPGs",population:"जनसंख्या"},footer:{total:"कुल"}},Sh={menuComingSoon:"मेनू शीघ्र आ रहा है"},Ah={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},$h={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},Lh={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"}},Ch={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio"},Eh={prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Più informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora"},Th={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},Ph={title:{prayer:"Avanzamento della preghiera",engagement:"Avanzamento dell'impegno",adoption:"Avanzamento dell'adozione",languageFamilies:"Famiglie linguistiche",doxaRegions:"Regioni Doxa",affinityBlocs:"Blocchi di affinità",gospelResources:"Risorse del Vangelo"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone"},prayer:{needsPrayer:"Necessita preghiera",hasPrayer:"Ha preghiera",fullPrayerCoverage:"Copertura di preghiera completa"},progress:{title:"Avanzamento",covered:"{covered} di {total} gruppi di persone coperti dalla preghiera · {pct}%",short:"{covered} di {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necessita impegno",hasEngagement:"Ha impegno"},adoption:{needsAdoption:"Necessita adozione",hasAdoption:"Ha adozione"},columns:{upgs:"UUPGs",population:"Popolazione"},footer:{total:"Totale"}},Mh={menuComingSoon:"Menu in arrivo"},Nh={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},Ih={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},Rh={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"}},Fh={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe"},Oh={prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Repor vista",toggleFullscreen:"Alternar ecrã inteiro",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Definições de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Partilhar e incorporar"},Dh={labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"Sem descrição disponível."}},Bh={title:{prayer:"Progresso da oração",engagement:"Progresso do envolvimento",adoption:"Progresso da adoção",languageFamilies:"Famílias linguísticas",doxaRegions:"Regiões Doxa",affinityBlocs:"Blocos de afinidade",gospelResources:"Recursos do Evangelho"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas"},prayer:{needsPrayer:"Precisa de oração",hasPrayer:"Tem oração",fullPrayerCoverage:"Cobertura de oração completa"},progress:{title:"Progresso",covered:"{covered} de {total} grupos de pessoas cobertos em oração · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Precisa de envolvimento",hasEngagement:"Tem envolvimento"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"UUPGs",population:"População",name:"Nome"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por população",colLabel:{religion:"Religiões UUPG",prayer:"Status de oração",engagement:"Status de engajamento",adoption:"Status de adoção",status:"Status"},titleBar:{legend:"Legenda",peopleGroups:"Povos",wagfRegions:"Regiões WAGF",languages:"Idiomas"}},jh={menuComingSoon:"Menu em breve"},Gh={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},Uh={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},Kh={placeholder:"Povo, local, língua, religião",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"}},zh={prayer:"Oração",adoption:"Adoção",engagement:"Engajamento","affinity-blocks":"Povos",regions:"Regiões",countries:"Países","language-families":"Idiomas",religion:"Religiões",family:"Família linguística",language:"Idioma",dialect:"Dialeto/Variedade",bloc:"Bloco de afinidade",cluster:"Agrupamento",group:"Povo",pgic:"Povo no país",region:"Região WAGF",block:"Bloco WAGF",country:"País"},Hh={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată"},Vh={prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează"},Wh={labels:{country:"Țară:",population:"Populație:",language:"Limbă:",religion:"Religie:",languageFamily:"Familie de limbi:",peopleCommitted:"Angajați să se roage:"},messages:{noDescription:"Nicio descriere disponibilă."}},Yh={title:{prayer:"Progresul rugăciunii",engagement:"Progresul implicării",adoption:"Progresul adopției",languageFamilies:"Familii de limbi",doxaRegions:"Regiuni Doxa",affinityBlocs:"Blocuri de afinitate",gospelResources:"Resurse ale Evangheliei"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare"},prayer:{needsPrayer:"Necesită rugăciune",hasPrayer:"Are rugăciune",fullPrayerCoverage:"Acoperire completă de rugăciune"},progress:{title:"Progres",covered:"{covered} din {total} grupuri de popoare acoperite în rugăciune · {pct}%",short:"{covered} din {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesită implicare",hasEngagement:"Are implicare"},adoption:{needsAdoption:"Necesită adopție",hasAdoption:"Are adopție"},columns:{upgs:"UUPGs",population:"Populație"},footer:{total:"Total"}},qh={menuComingSoon:"Meniu în curând"},Jh={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},Zh={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},Xh={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"}},Qh={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид"},em={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить"},tm={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},om={title:{prayer:"Прогресс молитвы",engagement:"Прогресс вовлечённости",adoption:"Прогресс усыновления",languageFamilies:"Языковые семьи",doxaRegions:"Регионы Doxa",affinityBlocs:"Блоки родства",gospelResources:"Евангельские ресурсы"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа"},prayer:{needsPrayer:"Нуждается в молитве",hasPrayer:"Есть молитва",fullPrayerCoverage:"Полное молитвенное покрытие"},progress:{title:"Прогресс",covered:"{covered} из {total} народных групп охвачены молитвой · {pct}%",short:"{covered} из {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Нуждается в вовлечённости",hasEngagement:"Есть вовлечённость"},adoption:{needsAdoption:"Нуждается в усыновлении",hasAdoption:"Есть усыновление"},columns:{upgs:"UUPGs",population:"Население",name:"Название"},footer:{total:"Всего"},sortByUpgs:"Сортировать по UUPG",sortByPop:"Сортировать по населению",colLabel:{religion:"Религии UUPG",prayer:"Статус молитвы",engagement:"Статус вовлечённости",adoption:"Статус усыновления",status:"Статус"},titleBar:{legend:"Легенда",peopleGroups:"Народы",wagfRegions:"Регионы WAGF",languages:"Языки"}},nm={menuComingSoon:"Меню скоро появится"},am={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},rm={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},sm={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"}},im={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна"},lm={backToLegend:"返回图例",closeDetailView:"关闭详情视图"},cm={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入"},um={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},dm={title:{prayer:"祷告进度",engagement:"参与进度",adoption:"认领进度",languageFamilies:"语系",doxaRegions:"Doxa 区域",affinityBlocs:"亲缘板块",gospelResources:"福音资源"},header:{collapsed:"图例",peopleGroupFallback:"民族群体"},prayer:{needsPrayer:"需要祷告",hasPrayer:"已有祷告",fullPrayerCoverage:"全面祷告覆盖"},progress:{title:"进度",covered:"{total} 个民族群体中已有 {covered} 个被祷告覆盖 · {pct}%",short:"{covered} / {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"需要参与",hasEngagement:"已有参与"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口"},footer:{total:"总计"}},pm={menuComingSoon:"菜单即将推出"},gm={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},fm={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},hm={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"}};/*! + */let wc;const ar=e=>wc=e,xc=Symbol();function hs(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var aa;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(aa||(aa={}));function qf(){const e=Nr(!0),t=e.run(()=>ue({}));let o=[],n=[];const a=Yo({install(r){ar(a),a._a=r,r.provide(xc,a),r.config.globalProperties.$pinia=a,n.forEach(s=>o.push(s)),n=[]},use(r){return this._a?o.push(r):n.push(r),this},_p:o,_a:null,_e:e,_s:new Map,state:t});return a}const Sc=()=>{};function $c(e,t,o,n=Sc){e.push(t);const a=()=>{const r=e.indexOf(t);r>-1&&(e.splice(r,1),n())};return!o&&Oi()&&vp(a),a}function kn(e,...t){e.slice().forEach(o=>{o(...t)})}const Jf=e=>e(),Ac=Symbol(),ms=Symbol();function bs(e,t){e instanceof Map&&t instanceof Map?t.forEach((o,n)=>e.set(n,o)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const o in t){if(!t.hasOwnProperty(o))continue;const n=t[o],a=e[o];hs(a)&&hs(n)&&e.hasOwnProperty(o)&&!rt(n)&&!vo(n)?e[o]=bs(a,n):e[o]=n}return e}const Zf=Symbol();function Xf(e){return!hs(e)||!e.hasOwnProperty(Zf)}const{assign:Oo}=Object;function Qf(e){return!!(rt(e)&&e.effect)}function eh(e,t,o,n){const{state:a,actions:r,getters:s}=t,i=o.state.value[e];let l;function c(){i||(o.state.value[e]=a?a():{});const u=Up(o.state.value[e]);return Oo(u,r,Object.keys(s||{}).reduce((p,f)=>(p[f]=Yo(oe(()=>{ar(o);const k=o._s.get(e);return s[f].call(k,k)})),p),{}))}return l=Lc(e,c,t,o,n,!0),l}function Lc(e,t,o={},n,a,r){let s;const i=Oo({actions:{}},o),l={deep:!0};let c,u,p=[],f=[],k;const S=n.state.value[e];!r&&!S&&(n.state.value[e]={});let _;function d(P){let R;c=u=!1,typeof P=="function"?(P(n.state.value[e]),R={type:aa.patchFunction,storeId:e,events:k}):(bs(n.state.value[e],P),R={type:aa.patchObject,payload:P,storeId:e,events:k});const K=_=Symbol();lo().then(()=>{_===K&&(c=!0)}),u=!0,kn(p,R,n.state.value[e])}const g=r?function(){const{state:R}=o,K=R?R():{};this.$patch(V=>{Oo(V,K)})}:Sc;function b(){s.stop(),p=[],f=[],n._s.delete(e)}const y=(P,R="")=>{if(Ac in P)return P[ms]=R,P;const K=function(){ar(n);const V=Array.from(arguments),ae=[],M=[];function L(h){ae.push(h)}function N(h){M.push(h)}kn(f,{args:V,name:K[ms],store:$,after:L,onError:N});let A;try{A=P.apply(this&&this.$id===e?this:$,V)}catch(h){throw kn(M,h),h}return A instanceof Promise?A.then(h=>(kn(ae,h),h)).catch(h=>(kn(M,h),Promise.reject(h))):(kn(ae,A),A)};return K[Ac]=!0,K[ms]=R,K},w={_p:n,$id:e,$onAction:$c.bind(null,f),$patch:d,$reset:g,$subscribe(P,R={}){const K=$c(p,P,R.detached,()=>V()),V=s.run(()=>lt(()=>n.state.value[e],ae=>{(R.flush==="sync"?u:c)&&P({storeId:e,type:aa.direct,events:k},ae)},Oo({},l,R)));return K},$dispose:b},$=dn(w);n._s.set(e,$);const E=(n._a&&n._a.runWithContext||Jf)(()=>n._e.run(()=>(s=Nr()).run(()=>t({action:y}))));for(const P in E){const R=E[P];if(rt(R)&&!Qf(R)||vo(R))r||(S&&Xf(R)&&(rt(R)?R.value=S[P]:bs(R,S[P])),n.state.value[e][P]=R);else if(typeof R=="function"){const K=y(R,P);E[P]=K,i.actions[P]=R}}return Oo($,E),Oo(Oe($),E),Object.defineProperty($,"$state",{get:()=>n.state.value[e],set:P=>{d(R=>{Oo(R,P)})}}),n._p.forEach(P=>{Oo($,s.run(()=>P({store:$,app:n._a,pinia:n,options:i})))}),S&&r&&o.hydrate&&o.hydrate($.$state,S),c=!0,u=!0,$}/*! #__NO_SIDE_EFFECTS__ */function ys(e,t,o){let n,a;const r=typeof t=="function";typeof e=="string"?(n=e,a=r?o:t):(a=e,n=e.id);function s(i,l){const c=ng();return i=i||(c?Ie(xc,null):null),i&&ar(i),i=wc,i._s.has(n)||(r?Lc(n,t,a,i):eh(n,a,i)),i._s.get(n)}return s.$id=n,s}const _s="__doxaMapToken",vs="doxa:map-token",Ec="__doxaMapTokenBridge",wn=()=>{if(typeof window>"u")return"";const e=window[_s];return typeof e=="string"?e:""};function Cc(e){if(typeof window>"u")return"";const t=typeof e=="string"?e.trim():"";if(!t||t===wn())return wn();window[_s]=t;try{window.dispatchEvent(new CustomEvent(vs,{detail:t}))}catch{}return t}function th(){if(typeof window>"u"||window[Ec])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!wn()&&(window[_s]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return wn()},set(t){Cc(t)}}),window[Ec]=!0}catch{}}function oh(){th();const e=ue(wn());if(typeof window<"u"){const t=()=>{e.value=wn()};window.addEventListener(vs,t);try{uo(()=>window.removeEventListener(vs,t))}catch{}}return e}function Tc(e){return fg({loader:e,onError(t,o,n,a){a<=3?setTimeout(o,a*500):n()}})}const nh={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل"},ah={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين"},rh={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},sh={title:{prayer:"تقدم الصلاة",engagement:"تقدم الانخراط",adoption:"تقدم التبني",languageFamilies:"العائلات اللغوية",doxaRegions:"مناطق Doxa",affinityBlocs:"كتل القرابة",gospelResources:"موارد الإنجيل"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب"},prayer:{needsPrayer:"يحتاج إلى صلاة",hasPrayer:"لديه صلاة",fullPrayerCoverage:"تغطية صلاة كاملة"},progress:{title:"التقدم",covered:"{covered} من {total} مجموعة شعبية مغطاة بالصلاة · {pct}%",short:"{covered} من {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"يحتاج إلى انخراط",hasEngagement:"لديه انخراط"},adoption:{needsAdoption:"يحتاج إلى تبني",hasAdoption:"لديه تبني"},columns:{upgs:"UUPGs",population:"السكان",name:"الاسم"},footer:{total:"الإجمالي"},sortByUpgs:"ترتيب حسب UUPG",sortByPop:"ترتيب حسب السكان",colLabel:{religion:"ديانات UUPG",prayer:"حالة الصلاة",engagement:"حالة المشاركة",adoption:"حالة التبني",status:"الحالة"},titleBar:{legend:"مفتاح الخريطة",peopleGroups:"الشعوب",wagfRegions:"مناطق WAGF",languages:"اللغات"}},ih={menuComingSoon:"القائمة قادمة قريباً"},lh={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},ch={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},uh={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"}},dh={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة"},ph={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen"},gh={prayForThem:"Für sie beten",adoptThem:"Sie adoptieren",moreInfo:"Mehr Infos",zoomIn:"Vergrößern",zoomOut:"Verkleinern",switchToLightMode:"Zum hellen Modus wechseln",switchToDarkMode:"Zum dunklen Modus wechseln",resetView:"Ansicht zurücksetzen",toggleFullscreen:"Vollbild umschalten",aboutThisMap:"Über diese Karte",closeMenu:"Menü schließen",reloadMap:"Karte neu laden",showClusters:"Cluster anzeigen",clusterSettings:"Cluster-Einstellungen",startAutoFly:"Auto-Flug starten",stopFlight:"Flug stoppen",speedLabel:"Geschwindigkeit:",speedOption:{slow:"Langsam",normal:"Normal",fast:"Schnell"},shareEmbed:"Teilen und einbetten"},fh={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},hh={title:{prayer:"Gebetsfortschritt",engagement:"Engagement-Fortschritt",adoption:"Adoptionsfortschritt",languageFamilies:"Sprachfamilien",doxaRegions:"Doxa-Regionen",affinityBlocs:"Affinitätsblöcke",gospelResources:"Evangeliumsressourcen"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe"},prayer:{needsPrayer:"Braucht Gebet",hasPrayer:"Hat Gebet",fullPrayerCoverage:"Vollständige Gebetsabdeckung"},progress:{title:"Fortschritt",covered:"{covered} von {total} Volksgruppen im Gebet abgedeckt · {pct}%",short:"{covered} von {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Braucht Engagement",hasEngagement:"Hat Engagement"},adoption:{needsAdoption:"Braucht Adoption",hasAdoption:"Hat Adoption"},columns:{upgs:"UUPGs",population:"Bevölkerung"},footer:{total:"Gesamt"}},mh={menuComingSoon:"Menü folgt in Kürze"},bh={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},yh={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},_h={placeholder:"Volk, Ort, Sprache, Religion",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"}},vh={prayer:"Gebet",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Volksgruppen",regions:"Regionen",countries:"Länder","language-families":"Sprachen",religion:"Religionen",family:"Sprachfamilie",language:"Sprache",dialect:"Dialekt/Varietät",bloc:"Affinitätsblock",cluster:"Cluster",group:"Volksgruppe",pgic:"Volksgruppe im Land",region:"WAGF-Region",block:"WAGF-Block",country:"Land"},kh={backToLegend:"Back to Legend",closeDetailView:"Close detail view"},wh={prayForThem:"Pray for them",adoptThem:"Adopt",moreInfo:"More info",zoomIn:"Zoom in",zoomOut:"Zoom out",switchToLightMode:"Switch to light mode",switchToDarkMode:"Switch to dark mode",resetView:"Reset view",toggleFullscreen:"Toggle fullscreen",aboutThisMap:"About this map",closeMenu:"Close menu",reloadMap:"Reload Map",showClusters:"Show Clusters",clusterSettings:"Cluster Settings",startAutoFly:"Start Auto Fly",stopFlight:"Stop Flight",speedLabel:"Speed:",speedOption:{slow:"Slow",normal:"Normal",fast:"Fast"},shareEmbed:"Share & embed",shareSteps:["Embed this map on your site","Create a list of the websites in your city","Train them to embed it too","Train them to train others to embed it too","Multiply maps everywhere for Jesus!"],share:"Share"},xh={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},Sh={title:{prayer:"Prayer Progress",engagement:"Engagement Progress",adoption:"Adoption Progress",languageFamilies:"Language Families",doxaRegions:"Doxa Regions",affinityBlocs:"Affinity Blocks",gospelResources:"Gospel Resources"},header:{default:"Legend",collapsed:"Legend",peopleGroupFallback:"People Group"},prayer:{needsPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayerCoverage:"Full Prayer Coverage"},progress:{title:"Progress",covered:"{covered} of {total} people groups covered in prayer · {pct}%",short:"{covered} of {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Unengaged",hasEngagement:"Engaged"},adoption:{needsAdoption:"Needs Adoption",hasAdoption:"Has Adoption"},columns:{upgs:"UUPGs",population:"Population",name:"Name"},footer:{total:"Total"},sortByUpgs:"Sort by UUPGs",sortByPop:"Sort by Population",colLabel:{religion:"UUPG Religions",prayer:"Prayer Status",engagement:"Engagement Status",adoption:"Adoption Status",status:"Status"},titleBar:{legend:"Legend",peopleGroups:"People Groups",wagfRegions:"WAGF Regions",languages:"Languages"}},$h={menuComingSoon:"Menu coming soon"},Ah={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},Lh={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},Eh={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},Ch={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"},kinds:{people:"People Group + Country",peopleGroup:"People Group",bloc:"Affinity Block",cluster:"People Cluster",country:"Country",region:"Region",family:"Language Family",languageKind:"Language",dialect:"Dialect",religionKind:"Religion"},sections:{within:"Within {selection}",allData:"All DOXA Data"}},Th={prayer:"Prayer",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"People Groups (Affinity)",regions:"Regions",countries:"Countries","language-families":"Languages",religion:"Religions",family:"Lang Family",language:"Language",dialect:"Dialect/Variety",bloc:"Affinity Block",cluster:"Cluster",group:"People Group",pgic:"PG in Country",region:"WAGF Region",block:"WAGF Bloc",country:"Country"},Ph={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle"},Mh={prayForThem:"Ora por ellos",adoptThem:"Adóptalos",moreInfo:"Más información",zoomIn:"Acercar",zoomOut:"Alejar",switchToLightMode:"Cambiar a modo claro",switchToDarkMode:"Cambiar a modo oscuro",resetView:"Restablecer vista",toggleFullscreen:"Alternar pantalla completa",aboutThisMap:"Acerca de este mapa",closeMenu:"Cerrar menú",reloadMap:"Recargar mapa",showClusters:"Mostrar clústeres",clusterSettings:"Ajustes de clústeres",startAutoFly:"Iniciar vuelo automático",stopFlight:"Detener vuelo",speedLabel:"Velocidad:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Compartir e incrustar"},Nh={labels:{country:"País:",population:"Población:",language:"Idioma:",religion:"Religión:",languageFamily:"Familia lingüística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"No hay descripción disponible."}},Ih={title:{prayer:"Progreso de oración",engagement:"Progreso de implicación",adoption:"Progreso de adopción",languageFamilies:"Familias lingüísticas",doxaRegions:"Regiones Doxa",affinityBlocs:"Bloques de afinidad",gospelResources:"Recursos del Evangelio"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas"},prayer:{needsPrayer:"Necesita oración",hasPrayer:"Tiene oración",fullPrayerCoverage:"Cobertura de oración completa"},progress:{title:"Progreso",covered:"{covered} de {total} grupos de personas cubiertos en oración · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesita implicación",hasEngagement:"Tiene implicación"},adoption:{needsAdoption:"Necesita adopción",hasAdoption:"Tiene adopción"},columns:{upgs:"UUPGs",population:"Población",name:"Nombre"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por población",colLabel:{religion:"Religiones UUPG",prayer:"Estado de oración",engagement:"Estado de compromiso",adoption:"Estado de adopción",status:"Estado"},titleBar:{legend:"Leyenda",peopleGroups:"Pueblos",wagfRegions:"Regiones WAGF",languages:"Idiomas"}},Rh={menuComingSoon:"Menú próximamente"},Fh={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},Oh={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},Dh={placeholder:"Pueblo, lugar, idioma, religión",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"}},Bh={prayer:"Oración",adoption:"Adopción",engagement:"Compromiso","affinity-blocks":"Pueblos",regions:"Regiones",countries:"Países","language-families":"Idiomas",religion:"Religiones",family:"Familia lingüística",language:"Idioma",dialect:"Dialecto/Variedad",bloc:"Bloque de afinidad",cluster:"Clúster",group:"Pueblo",pgic:"Pueblo en país",region:"Región WAGF",block:"Bloque WAGF",country:"País"},Gh={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée"},jh={prayForThem:"Priez pour eux",adoptThem:"Adoptez-les",moreInfo:"Plus d'infos",zoomIn:"Zoom avant",zoomOut:"Zoom arrière",switchToLightMode:"Passer au mode clair",switchToDarkMode:"Passer au mode sombre",resetView:"Réinitialiser la vue",toggleFullscreen:"Basculer en plein écran",aboutThisMap:"À propos de cette carte",closeMenu:"Fermer le menu",reloadMap:"Recharger la carte",showClusters:"Afficher les clusters",clusterSettings:"Paramètres des clusters",startAutoFly:"Démarrer le vol auto",stopFlight:"Arrêter le vol",speedLabel:"Vitesse :",speedOption:{slow:"Lente",normal:"Normale",fast:"Rapide"},shareEmbed:"Partager et intégrer"},Uh={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},Kh={title:{prayer:"Progression de la prière",engagement:"Progression de l'engagement",adoption:"Progression de l'adoption",languageFamilies:"Familles de langues",doxaRegions:"Régions Doxa",affinityBlocs:"Blocs d'affinité",gospelResources:"Ressources de l'Évangile"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes"},prayer:{needsPrayer:"Besoin de prière",hasPrayer:"Prière en cours",fullPrayerCoverage:"Couverture de prière complète"},progress:{title:"Progression",covered:"{covered} sur {total} groupes de personnes couverts par la prière · {pct}%",short:"{covered} sur {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Besoin d'engagement",hasEngagement:"Engagement en cours"},adoption:{needsAdoption:"Besoin d'adoption",hasAdoption:"Adoption en cours"},columns:{upgs:"UUPGs",population:"Population",name:"Nom"},footer:{total:"Total"},sortByUpgs:"Trier par UUPG",sortByPop:"Trier par population",colLabel:{religion:"Religions UUPG",prayer:"Statut de prière",engagement:"Statut d'engagement",adoption:"Statut d'adoption",status:"Statut"},titleBar:{legend:"Légende",peopleGroups:"Peuples",wagfRegions:"Régions WAGF",languages:"Langues"}},Hh={menuComingSoon:"Menu bientôt disponible"},zh={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},Vh={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},Wh={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},Yh={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"}},qh={prayer:"Prière",adoption:"Adoption",engagement:"Engagement","affinity-blocks":"Peuples",regions:"Régions",countries:"Pays","language-families":"Langues",religion:"Religions",family:"Famille linguistique",language:"Langue",dialect:"Dialecte/Variété",bloc:"Bloc d'affinité",cluster:"Grappe",group:"Peuple",pgic:"Peuple dans le pays",region:"Région WAGF",block:"Bloc WAGF",country:"Pays"},Jh={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें"},Zh={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें"},Xh={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},Qh={title:{prayer:"प्रार्थना प्रगति",engagement:"सहभागिता प्रगति",adoption:"गोद लेने की प्रगति",languageFamilies:"भाषा परिवार",doxaRegions:"Doxa क्षेत्र",affinityBlocs:"समानता समूह",gospelResources:"सुसमाचार संसाधन"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह"},prayer:{needsPrayer:"प्रार्थना चाहिए",hasPrayer:"प्रार्थना है",fullPrayerCoverage:"पूर्ण प्रार्थना कवरेज"},progress:{title:"प्रगति",covered:"{total} में से {covered} जनजाति समूह प्रार्थना में कवर · {pct}%",short:"{total} में से {covered} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"सहभागिता चाहिए",hasEngagement:"सहभागिता है"},adoption:{needsAdoption:"गोद लेना चाहिए",hasAdoption:"गोद लिया गया"},columns:{upgs:"UUPGs",population:"जनसंख्या"},footer:{total:"कुल"}},em={menuComingSoon:"मेनू शीघ्र आ रहा है"},tm={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},om={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},nm={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"}},am={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio"},rm={prayForThem:"Prega per loro",adoptThem:"Adottali",moreInfo:"Più informazioni",zoomIn:"Ingrandisci",zoomOut:"Riduci",switchToLightMode:"Passa alla modalità chiara",switchToDarkMode:"Passa alla modalità scura",resetView:"Reimposta vista",toggleFullscreen:"Attiva/disattiva schermo intero",aboutThisMap:"Informazioni su questa mappa",closeMenu:"Chiudi menu",reloadMap:"Ricarica mappa",showClusters:"Mostra cluster",clusterSettings:"Impostazioni cluster",startAutoFly:"Avvia volo automatico",stopFlight:"Ferma volo",speedLabel:"Velocità:",speedOption:{slow:"Lenta",normal:"Normale",fast:"Veloce"},shareEmbed:"Condividi e incorpora"},sm={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},im={title:{prayer:"Avanzamento della preghiera",engagement:"Avanzamento dell'impegno",adoption:"Avanzamento dell'adozione",languageFamilies:"Famiglie linguistiche",doxaRegions:"Regioni Doxa",affinityBlocs:"Blocchi di affinità",gospelResources:"Risorse del Vangelo"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone"},prayer:{needsPrayer:"Necessita preghiera",hasPrayer:"Ha preghiera",fullPrayerCoverage:"Copertura di preghiera completa"},progress:{title:"Avanzamento",covered:"{covered} di {total} gruppi di persone coperti dalla preghiera · {pct}%",short:"{covered} di {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necessita impegno",hasEngagement:"Ha impegno"},adoption:{needsAdoption:"Necessita adozione",hasAdoption:"Ha adozione"},columns:{upgs:"UUPGs",population:"Popolazione"},footer:{total:"Totale"}},lm={menuComingSoon:"Menu in arrivo"},cm={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},um={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},dm={placeholder:"Popolo, luogo, lingua, religione",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"}},pm={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe"},gm={prayForThem:"Ore por eles",adoptThem:"Adote-os",moreInfo:"Mais informações",zoomIn:"Ampliar",zoomOut:"Reduzir",switchToLightMode:"Mudar para modo claro",switchToDarkMode:"Mudar para modo escuro",resetView:"Repor vista",toggleFullscreen:"Alternar ecrã inteiro",aboutThisMap:"Sobre este mapa",closeMenu:"Fechar menu",reloadMap:"Recarregar mapa",showClusters:"Mostrar clusters",clusterSettings:"Definições de clusters",startAutoFly:"Iniciar voo automático",stopFlight:"Parar voo",speedLabel:"Velocidade:",speedOption:{slow:"Lenta",normal:"Normal",fast:"Rápida"},shareEmbed:"Partilhar e incorporar"},fm={labels:{country:"País:",population:"População:",language:"Língua:",religion:"Religião:",languageFamily:"Família linguística:",peopleCommitted:"Comprometidos a orar:"},messages:{noDescription:"Sem descrição disponível."}},hm={title:{prayer:"Progresso da oração",engagement:"Progresso do envolvimento",adoption:"Progresso da adoção",languageFamilies:"Famílias linguísticas",doxaRegions:"Regiões Doxa",affinityBlocs:"Blocos de afinidade",gospelResources:"Recursos do Evangelho"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas"},prayer:{needsPrayer:"Precisa de oração",hasPrayer:"Tem oração",fullPrayerCoverage:"Cobertura de oração completa"},progress:{title:"Progresso",covered:"{covered} de {total} grupos de pessoas cobertos em oração · {pct}%",short:"{covered} de {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Precisa de envolvimento",hasEngagement:"Tem envolvimento"},adoption:{needsAdoption:"Precisa de adoção",hasAdoption:"Tem adoção"},columns:{upgs:"UUPGs",population:"População",name:"Nome"},footer:{total:"Total"},sortByUpgs:"Ordenar por UUPG",sortByPop:"Ordenar por população",colLabel:{religion:"Religiões UUPG",prayer:"Status de oração",engagement:"Status de engajamento",adoption:"Status de adoção",status:"Status"},titleBar:{legend:"Legenda",peopleGroups:"Povos",wagfRegions:"Regiões WAGF",languages:"Idiomas"}},mm={menuComingSoon:"Menu em breve"},bm={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},ym={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},_m={placeholder:"Povo, local, língua, religião",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"}},vm={prayer:"Oração",adoption:"Adoção",engagement:"Engajamento","affinity-blocks":"Povos",regions:"Regiões",countries:"Países","language-families":"Idiomas",religion:"Religiões",family:"Família linguística",language:"Idioma",dialect:"Dialeto/Variedade",bloc:"Bloco de afinidade",cluster:"Agrupamento",group:"Povo",pgic:"Povo no país",region:"Região WAGF",block:"Bloco WAGF",country:"País"},km={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată"},wm={prayForThem:"Roagă-te pentru ei",adoptThem:"Adoptă-i",moreInfo:"Mai multe informații",zoomIn:"Mărește",zoomOut:"Micșorează",switchToLightMode:"Comută la modul luminos",switchToDarkMode:"Comută la modul întunecat",resetView:"Resetează vizualizarea",toggleFullscreen:"Comută ecran complet",aboutThisMap:"Despre această hartă",closeMenu:"Închide meniul",reloadMap:"Reîncarcă harta",showClusters:"Arată clusterele",clusterSettings:"Setări clustere",startAutoFly:"Pornește zborul automat",stopFlight:"Oprește zborul",speedLabel:"Viteză:",speedOption:{slow:"Lent",normal:"Normal",fast:"Rapid"},shareEmbed:"Partajează și încorporează"},xm={labels:{country:"Țară:",population:"Populație:",language:"Limbă:",religion:"Religie:",languageFamily:"Familie de limbi:",peopleCommitted:"Angajați să se roage:"},messages:{noDescription:"Nicio descriere disponibilă."}},Sm={title:{prayer:"Progresul rugăciunii",engagement:"Progresul implicării",adoption:"Progresul adopției",languageFamilies:"Familii de limbi",doxaRegions:"Regiuni Doxa",affinityBlocs:"Blocuri de afinitate",gospelResources:"Resurse ale Evangheliei"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare"},prayer:{needsPrayer:"Necesită rugăciune",hasPrayer:"Are rugăciune",fullPrayerCoverage:"Acoperire completă de rugăciune"},progress:{title:"Progres",covered:"{covered} din {total} grupuri de popoare acoperite în rugăciune · {pct}%",short:"{covered} din {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Necesită implicare",hasEngagement:"Are implicare"},adoption:{needsAdoption:"Necesită adopție",hasAdoption:"Are adopție"},columns:{upgs:"UUPGs",population:"Populație"},footer:{total:"Total"}},$m={menuComingSoon:"Meniu în curând"},Am={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},Lm={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},Em={placeholder:"Popor, loc, limbă, religie",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"}},Cm={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид"},Tm={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить"},Pm={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},Mm={title:{prayer:"Прогресс молитвы",engagement:"Прогресс вовлечённости",adoption:"Прогресс усыновления",languageFamilies:"Языковые семьи",doxaRegions:"Регионы Doxa",affinityBlocs:"Блоки родства",gospelResources:"Евангельские ресурсы"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа"},prayer:{needsPrayer:"Нуждается в молитве",hasPrayer:"Есть молитва",fullPrayerCoverage:"Полное молитвенное покрытие"},progress:{title:"Прогресс",covered:"{covered} из {total} народных групп охвачены молитвой · {pct}%",short:"{covered} из {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"Нуждается в вовлечённости",hasEngagement:"Есть вовлечённость"},adoption:{needsAdoption:"Нуждается в усыновлении",hasAdoption:"Есть усыновление"},columns:{upgs:"UUPGs",population:"Население",name:"Название"},footer:{total:"Всего"},sortByUpgs:"Сортировать по UUPG",sortByPop:"Сортировать по населению",colLabel:{religion:"Религии UUPG",prayer:"Статус молитвы",engagement:"Статус вовлечённости",adoption:"Статус усыновления",status:"Статус"},titleBar:{legend:"Легенда",peopleGroups:"Народы",wagfRegions:"Регионы WAGF",languages:"Языки"}},Nm={menuComingSoon:"Меню скоро появится"},Im={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},Rm={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},Fm={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"}},Om={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна"},Dm={backToLegend:"返回图例",closeDetailView:"关闭详情视图"},Bm={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入"},Gm={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},jm={title:{prayer:"祷告进度",engagement:"参与进度",adoption:"认领进度",languageFamilies:"语系",doxaRegions:"Doxa 区域",affinityBlocs:"亲缘板块",gospelResources:"福音资源"},header:{collapsed:"图例",peopleGroupFallback:"民族群体"},prayer:{needsPrayer:"需要祷告",hasPrayer:"已有祷告",fullPrayerCoverage:"全面祷告覆盖"},progress:{title:"进度",covered:"{total} 个民族群体中已有 {covered} 个被祷告覆盖 · {pct}%",short:"{covered} / {total} · {pct}%",segment:"{label} · {count} · {pct}%"},engagement:{needsEngagement:"需要参与",hasEngagement:"已有参与"},adoption:{needsAdoption:"需要认领",hasAdoption:"已有认领"},columns:{upgs:"UUPGs",population:"人口"},footer:{total:"总计"}},Um={menuComingSoon:"菜单即将推出"},Km={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},Hm={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},zm={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"}};/*! * shared v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function mm(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const qa=typeof window<"u",Mo=(e,t=!1)=>t?Symbol.for(e):Symbol(e),bm=(e,t,o)=>ym({l:e,k:t,s:o}),ym=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),st=e=>typeof e=="number"&&isFinite(e),_m=e=>vc(e)==="[object Date]",No=e=>vc(e)==="[object RegExp]",Ja=e=>Ae(e)&&Object.keys(e).length===0,kt=Object.assign,vm=Object.create,Ue=(e=null)=>vm(e);let mc;const xo=()=>mc||(mc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Ue());function bc(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function yc(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function km(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,r)=>`${a}="${yc(r)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,r)=>`${a}='${yc(r)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(n=>{e=e.replace(n,"$1javascript:")}),e}const wm=Object.prototype.hasOwnProperty;function Ht(e,t){return wm.call(e,t)}const Xe=Array.isArray,Ye=e=>typeof e=="function",pe=e=>typeof e=="string",Pe=e=>typeof e=="boolean",Ie=e=>e!==null&&typeof e=="object",xm=e=>Ie(e)&&Ye(e.then)&&Ye(e.catch),_c=Object.prototype.toString,vc=e=>_c.call(e),Ae=e=>{if(!Ie(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},Sm=e=>e==null?"":Xe(e)||Ae(e)&&e.toString===_c?JSON.stringify(e,null,2):String(e);function Am(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function Za(e){let t=e;return()=>++t}const Xa=e=>!Ie(e)||Xe(e);function Qa(e,t){if(Xa(e)||Xa(t))throw new Error("Invalid value");const o=[{src:e,des:t}];for(;o.length;){const{src:n,des:a}=o.pop();Object.keys(n).forEach(r=>{r!=="__proto__"&&(Ie(n[r])&&!Ie(a[r])&&(a[r]=Array.isArray(n[r])?[]:Ue()),Xa(a[r])||Xa(n[r])?a[r]=n[r]:o.push({src:n[r],des:a[r]}))})}}/*! + */function Vm(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const rr=typeof window<"u",Do=(e,t=!1)=>t?Symbol.for(e):Symbol(e),Wm=(e,t,o)=>Ym({l:e,k:t,s:o}),Ym=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),ht=e=>typeof e=="number"&&isFinite(e),qm=e=>Rc(e)==="[object Date]",Bo=e=>Rc(e)==="[object RegExp]",sr=e=>Ce(e)&&Object.keys(e).length===0,Tt=Object.assign,Jm=Object.create,Ze=(e=null)=>Jm(e);let Pc;const Eo=()=>Pc||(Pc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Ze());function Mc(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Nc(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Zm(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,r)=>`${a}="${Nc(r)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,r)=>`${a}='${Nc(r)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(n=>{e=e.replace(n,"$1javascript:")}),e}const Xm=Object.prototype.hasOwnProperty;function Zt(e,t){return Xm.call(e,t)}const st=Array.isArray,tt=e=>typeof e=="function",fe=e=>typeof e=="string",Re=e=>typeof e=="boolean",Ue=e=>e!==null&&typeof e=="object",Qm=e=>Ue(e)&&tt(e.then)&&tt(e.catch),Ic=Object.prototype.toString,Rc=e=>Ic.call(e),Ce=e=>{if(!Ue(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},eb=e=>e==null?"":st(e)||Ce(e)&&e.toString===Ic?JSON.stringify(e,null,2):String(e);function tb(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function ir(e){let t=e;return()=>++t}const lr=e=>!Ue(e)||st(e);function cr(e,t){if(lr(e)||lr(t))throw new Error("Invalid value");const o=[{src:e,des:t}];for(;o.length;){const{src:n,des:a}=o.pop();Object.keys(n).forEach(r=>{r!=="__proto__"&&(Ue(n[r])&&!Ue(a[r])&&(a[r]=Array.isArray(n[r])?[]:Ze()),lr(a[r])||lr(n[r])?a[r]=n[r]:o.push({src:n[r],des:a[r]}))})}}/*! * message-compiler v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function $m(e,t,o){return{line:e,column:t,offset:o}}function er(e,t,o){return{start:e,end:t}}const Lm=/\{([0-9a-zA-Z]+)\}/g;function kc(e,...t){return t.length===1&&Cm(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(Lm,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const wc=Object.assign,xc=e=>typeof e=="string",Cm=e=>e!==null&&typeof e=="object";function Sc(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const us={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Em={[us.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function Tm(e,t,...o){const n=kc(Em[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const we={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},Pm={[we.EXPECTED_TOKEN]:"Expected token: '{0}'",[we.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[we.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[we.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[we.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[we.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[we.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[we.EMPTY_PLACEHOLDER]:"Empty placeholder",[we.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[we.INVALID_LINKED_FORMAT]:"Invalid linked format",[we.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[we.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[we.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[we.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[we.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[we.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function mn(e,t,o={}){const{domain:n,messages:a,args:r}=o,s=kc((a||Pm)[e]||"",...r||[]),i=new SyntaxError(String(s));return i.code=e,t&&(i.location=t),i.domain=n,i}function Mm(e){throw e}const So=" ",Nm="\r",Tt=` -`,Im="\u2028",Rm="\u2029";function Fm(e){const t=e;let o=0,n=1,a=1,r=0;const s=L=>t[L]===Nm&&t[L+1]===Tt,i=L=>t[L]===Tt,l=L=>t[L]===Rm,c=L=>t[L]===Im,u=L=>s(L)||i(L)||l(L)||c(L),p=()=>o,g=()=>n,k=()=>a,w=()=>r,_=L=>s(L)||l(L)||c(L)?Tt:t[L],d=()=>_(o),h=()=>_(o+r);function y(){return r=0,u(o)&&(n++,a=0),s(o)&&o++,o++,a++,t[o]}function v(){return s(o+r)&&r++,r++,t[o+r]}function b(){o=0,n=1,a=1,r=0}function x(L=0){r=L}function A(){const L=o+r;for(;L!==o;)y();r=0}return{index:p,line:g,column:k,peekOffset:w,charAt:_,currentChar:d,currentPeek:h,next:y,peek:v,reset:b,resetPeek:x,skipToPeek:A}}const Io=void 0,Om=".",Ac="'",Dm="tokenizer";function Bm(e,t={}){const o=t.location!==!1,n=Fm(e),a=()=>n.index(),r=()=>$m(n.line(),n.column(),n.index()),s=r(),i=a(),l={currentType:14,offset:i,startLoc:s,endLoc:s,lastType:14,lastOffset:i,lastStartLoc:s,lastEndLoc:s,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function p(f,m,j,...V){const se=c();if(m.column+=j,m.offset+=j,u){const ae=o?er(se.startLoc,m):null,U=mn(f,ae,{domain:Dm,args:V});u(U)}}function g(f,m,j){f.endLoc=r(),f.currentType=m;const V={type:m};return o&&(V.loc=er(f.startLoc,f.endLoc)),j!=null&&(V.value=j),V}const k=f=>g(f,14);function w(f,m){return f.currentChar()===m?(f.next(),m):(p(we.EXPECTED_TOKEN,r(),0,m),"")}function _(f){let m="";for(;f.currentPeek()===So||f.currentPeek()===Tt;)m+=f.currentPeek(),f.peek();return m}function d(f){const m=_(f);return f.skipToPeek(),m}function h(f){if(f===Io)return!1;const m=f.charCodeAt(0);return m>=97&&m<=122||m>=65&&m<=90||m===95}function y(f){if(f===Io)return!1;const m=f.charCodeAt(0);return m>=48&&m<=57}function v(f,m){const{currentType:j}=m;if(j!==2)return!1;_(f);const V=h(f.currentPeek());return f.resetPeek(),V}function b(f,m){const{currentType:j}=m;if(j!==2)return!1;_(f);const V=f.currentPeek()==="-"?f.peek():f.currentPeek(),se=y(V);return f.resetPeek(),se}function x(f,m){const{currentType:j}=m;if(j!==2)return!1;_(f);const V=f.currentPeek()===Ac;return f.resetPeek(),V}function A(f,m){const{currentType:j}=m;if(j!==8)return!1;_(f);const V=f.currentPeek()===".";return f.resetPeek(),V}function L(f,m){const{currentType:j}=m;if(j!==9)return!1;_(f);const V=h(f.currentPeek());return f.resetPeek(),V}function M(f,m){const{currentType:j}=m;if(!(j===8||j===12))return!1;_(f);const V=f.currentPeek()===":";return f.resetPeek(),V}function P(f,m){const{currentType:j}=m;if(j!==10)return!1;const V=()=>{const ae=f.currentPeek();return ae==="{"?h(f.peek()):ae==="@"||ae==="%"||ae==="|"||ae===":"||ae==="."||ae===So||!ae?!1:ae===Tt?(f.peek(),V()):H(f,!1)},se=V();return f.resetPeek(),se}function I(f){_(f);const m=f.currentPeek()==="|";return f.resetPeek(),m}function B(f){const m=_(f),j=f.currentPeek()==="%"&&f.peek()==="{";return f.resetPeek(),{isModulo:j,hasSpace:m.length>0}}function H(f,m=!0){const j=(se=!1,ae="",U=!1)=>{const S=f.currentPeek();return S==="{"?ae==="%"?!1:se:S==="@"||!S?ae==="%"?!0:se:S==="%"?(f.peek(),j(se,"%",!0)):S==="|"?ae==="%"||U?!0:!(ae===So||ae===Tt):S===So?(f.peek(),j(!0,So,U)):S===Tt?(f.peek(),j(!0,Tt,U)):!0},V=j();return m&&f.resetPeek(),V}function O(f,m){const j=f.currentChar();return j===Io?Io:m(j)?(f.next(),j):null}function R(f){const m=f.charCodeAt(0);return m>=97&&m<=122||m>=65&&m<=90||m>=48&&m<=57||m===95||m===36}function G(f){return O(f,R)}function F(f){const m=f.charCodeAt(0);return m>=97&&m<=122||m>=65&&m<=90||m>=48&&m<=57||m===95||m===36||m===45}function C(f){return O(f,F)}function re(f){const m=f.charCodeAt(0);return m>=48&&m<=57}function _e(f){return O(f,re)}function ne(f){const m=f.charCodeAt(0);return m>=48&&m<=57||m>=65&&m<=70||m>=97&&m<=102}function ge(f){return O(f,ne)}function fe(f){let m="",j="";for(;m=_e(f);)j+=m;return j}function de(f){d(f);const m=f.currentChar();return m!=="%"&&p(we.EXPECTED_TOKEN,r(),0,m),f.next(),"%"}function Ke(f){let m="";for(;;){const j=f.currentChar();if(j==="{"||j==="}"||j==="@"||j==="|"||!j)break;if(j==="%")if(H(f))m+=j,f.next();else break;else if(j===So||j===Tt)if(H(f))m+=j,f.next();else{if(I(f))break;m+=j,f.next()}else m+=j,f.next()}return m}function Fe(f){d(f);let m="",j="";for(;m=C(f);)j+=m;return f.currentChar()===Io&&p(we.UNTERMINATED_CLOSING_BRACE,r(),0),j}function Qe(f){d(f);let m="";return f.currentChar()==="-"?(f.next(),m+=`-${fe(f)}`):m+=fe(f),f.currentChar()===Io&&p(we.UNTERMINATED_CLOSING_BRACE,r(),0),m}function mt(f){return f!==Ac&&f!==Tt}function He(f){d(f),w(f,"'");let m="",j="";for(;m=O(f,mt);)m==="\\"?j+=it(f):j+=m;const V=f.currentChar();return V===Tt||V===Io?(p(we.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),V===Tt&&(f.next(),w(f,"'")),j):(w(f,"'"),j)}function it(f){const m=f.currentChar();switch(m){case"\\":case"'":return f.next(),`\\${m}`;case"u":return qe(f,m,4);case"U":return qe(f,m,6);default:return p(we.UNKNOWN_ESCAPE_SEQUENCE,r(),0,m),""}}function qe(f,m,j){w(f,m);let V="";for(let se=0;se{const V=f.currentChar();return V==="{"||V==="%"||V==="@"||V==="|"||V==="("||V===")"||!V||V===So?j:(j+=V,f.next(),m(j))};return m("")}function K(f){d(f);const m=w(f,"|");return d(f),m}function Y(f,m){let j=null;switch(f.currentChar()){case"{":return m.braceNest>=1&&p(we.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),f.next(),j=g(m,2,"{"),d(f),m.braceNest++,j;case"}":return m.braceNest>0&&m.currentType===2&&p(we.EMPTY_PLACEHOLDER,r(),0),f.next(),j=g(m,3,"}"),m.braceNest--,m.braceNest>0&&d(f),m.inLinked&&m.braceNest===0&&(m.inLinked=!1),j;case"@":return m.braceNest>0&&p(we.UNTERMINATED_CLOSING_BRACE,r(),0),j=X(f,m)||k(m),m.braceNest=0,j;default:{let se=!0,ae=!0,U=!0;if(I(f))return m.braceNest>0&&p(we.UNTERMINATED_CLOSING_BRACE,r(),0),j=g(m,1,K(f)),m.braceNest=0,m.inLinked=!1,j;if(m.braceNest>0&&(m.currentType===5||m.currentType===6||m.currentType===7))return p(we.UNTERMINATED_CLOSING_BRACE,r(),0),m.braceNest=0,Q(f,m);if(se=v(f,m))return j=g(m,5,Fe(f)),d(f),j;if(ae=b(f,m))return j=g(m,6,Qe(f)),d(f),j;if(U=x(f,m))return j=g(m,7,He(f)),d(f),j;if(!se&&!ae&&!U)return j=g(m,13,$(f)),p(we.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,j.value),d(f),j;break}}return j}function X(f,m){const{currentType:j}=m;let V=null;const se=f.currentChar();switch((j===8||j===9||j===12||j===10)&&(se===Tt||se===So)&&p(we.INVALID_LINKED_FORMAT,r(),0),se){case"@":return f.next(),V=g(m,8,"@"),m.inLinked=!0,V;case".":return d(f),f.next(),g(m,9,".");case":":return d(f),f.next(),g(m,10,":");default:return I(f)?(V=g(m,1,K(f)),m.braceNest=0,m.inLinked=!1,V):A(f,m)||M(f,m)?(d(f),X(f,m)):L(f,m)?(d(f),g(m,12,N(f))):P(f,m)?(d(f),se==="{"?Y(f,m)||V:g(m,11,E(f))):(j===8&&p(we.INVALID_LINKED_FORMAT,r(),0),m.braceNest=0,m.inLinked=!1,Q(f,m))}}function Q(f,m){let j={type:14};if(m.braceNest>0)return Y(f,m)||k(m);if(m.inLinked)return X(f,m)||k(m);switch(f.currentChar()){case"{":return Y(f,m)||k(m);case"}":return p(we.UNBALANCED_CLOSING_BRACE,r(),0),f.next(),g(m,3,"}");case"@":return X(f,m)||k(m);default:{if(I(f))return j=g(m,1,K(f)),m.braceNest=0,m.inLinked=!1,j;const{isModulo:se,hasSpace:ae}=B(f);if(se)return ae?g(m,0,Ke(f)):g(m,4,de(f));if(H(f))return g(m,0,Ke(f));break}}return j}function q(){const{currentType:f,offset:m,startLoc:j,endLoc:V}=l;return l.lastType=f,l.lastOffset=m,l.lastStartLoc=j,l.lastEndLoc=V,l.offset=a(),l.startLoc=r(),n.currentChar()===Io?g(l,14):Q(n,l)}return{nextToken:q,currentOffset:a,currentPosition:r,context:c}}const jm="parser",Gm=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function Um(e,t,o){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(t||o,16);return n<=55295||n>=57344?String.fromCodePoint(n):"�"}}}function Km(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a(v,b,x,A,...L){const M=v.currentPosition();if(M.offset+=A,M.column+=A,o){const P=t?er(x,M):null,I=mn(b,P,{domain:jm,args:L});o(I)}}function r(v,b,x,A,...L){const M=v.currentPosition();if(M.offset+=A,M.column+=A,n){const P=t?er(x,M):null;n(Tm(b,P,L))}}function s(v,b,x){const A={type:v};return t&&(A.start=b,A.end=b,A.loc={start:x,end:x}),A}function i(v,b,x,A){t&&(v.end=b,v.loc&&(v.loc.end=x))}function l(v,b){const x=v.context(),A=s(3,x.offset,x.startLoc);return A.value=b,i(A,v.currentOffset(),v.currentPosition()),A}function c(v,b){const x=v.context(),{lastOffset:A,lastStartLoc:L}=x,M=s(5,A,L);return M.index=parseInt(b,10),v.nextToken(),i(M,v.currentOffset(),v.currentPosition()),M}function u(v,b,x){const A=v.context(),{lastOffset:L,lastStartLoc:M}=A,P=s(4,L,M);return P.key=b,x===!0&&(P.modulo=!0),v.nextToken(),i(P,v.currentOffset(),v.currentPosition()),P}function p(v,b){const x=v.context(),{lastOffset:A,lastStartLoc:L}=x,M=s(9,A,L);return M.value=b.replace(Gm,Um),v.nextToken(),i(M,v.currentOffset(),v.currentPosition()),M}function g(v){const b=v.nextToken(),x=v.context(),{lastOffset:A,lastStartLoc:L}=x,M=s(8,A,L);return b.type!==12?(a(v,we.UNEXPECTED_EMPTY_LINKED_MODIFIER,x.lastStartLoc,0),M.value="",i(M,A,L),{nextConsumeToken:b,node:M}):(b.value==null&&a(v,we.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,Vt(b)),M.value=b.value||"",i(M,v.currentOffset(),v.currentPosition()),{node:M})}function k(v,b){const x=v.context(),A=s(7,x.offset,x.startLoc);return A.value=b,i(A,v.currentOffset(),v.currentPosition()),A}function w(v){const b=v.context(),x=s(6,b.offset,b.startLoc);let A=v.nextToken();if(A.type===9){const L=g(v);x.modifier=L.node,A=L.nextConsumeToken||v.nextToken()}switch(A.type!==10&&a(v,we.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Vt(A)),A=v.nextToken(),A.type===2&&(A=v.nextToken()),A.type){case 11:A.value==null&&a(v,we.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Vt(A)),x.key=k(v,A.value||"");break;case 5:A.value==null&&a(v,we.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Vt(A)),x.key=u(v,A.value||"");break;case 6:A.value==null&&a(v,we.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Vt(A)),x.key=c(v,A.value||"");break;case 7:A.value==null&&a(v,we.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Vt(A)),x.key=p(v,A.value||"");break;default:{a(v,we.UNEXPECTED_EMPTY_LINKED_KEY,b.lastStartLoc,0);const L=v.context(),M=s(7,L.offset,L.startLoc);return M.value="",i(M,L.offset,L.startLoc),x.key=M,i(x,L.offset,L.startLoc),{nextConsumeToken:A,node:x}}}return i(x,v.currentOffset(),v.currentPosition()),{node:x}}function _(v){const b=v.context(),x=b.currentType===1?v.currentOffset():b.offset,A=b.currentType===1?b.endLoc:b.startLoc,L=s(2,x,A);L.items=[];let M=null,P=null;do{const H=M||v.nextToken();switch(M=null,H.type){case 0:H.value==null&&a(v,we.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Vt(H)),L.items.push(l(v,H.value||""));break;case 6:H.value==null&&a(v,we.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Vt(H)),L.items.push(c(v,H.value||""));break;case 4:P=!0;break;case 5:H.value==null&&a(v,we.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Vt(H)),L.items.push(u(v,H.value||"",!!P)),P&&(r(v,us.USE_MODULO_SYNTAX,b.lastStartLoc,0,Vt(H)),P=null);break;case 7:H.value==null&&a(v,we.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,Vt(H)),L.items.push(p(v,H.value||""));break;case 8:{const O=w(v);L.items.push(O.node),M=O.nextConsumeToken||null;break}}}while(b.currentType!==14&&b.currentType!==1);const I=b.currentType===1?b.lastOffset:v.currentOffset(),B=b.currentType===1?b.lastEndLoc:v.currentPosition();return i(L,I,B),L}function d(v,b,x,A){const L=v.context();let M=A.items.length===0;const P=s(1,b,x);P.cases=[],P.cases.push(A);do{const I=_(v);M||(M=I.items.length===0),P.cases.push(I)}while(L.currentType!==14);return M&&a(v,we.MUST_HAVE_MESSAGES_IN_PLURAL,x,0),i(P,v.currentOffset(),v.currentPosition()),P}function h(v){const b=v.context(),{offset:x,startLoc:A}=b,L=_(v);return b.currentType===14?L:d(v,x,A,L)}function y(v){const b=Bm(v,wc({},e)),x=b.context(),A=s(0,x.offset,x.startLoc);return t&&A.loc&&(A.loc.source=v),A.body=h(b),e.onCacheKey&&(A.cacheKey=e.onCacheKey(v)),x.currentType!==14&&a(b,we.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,v[x.offset]||""),i(A,b.currentOffset(),b.currentPosition()),A}return{parse:y}}function Vt(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function zm(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:r=>(o.helpers.add(r),r)}}function $c(e,t){for(let o=0;oLc(o)),e}function Lc(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let o=0;os;function l(_,d){s.code+=_}function c(_,d=!0){const h=d?n:"";l(a?h+" ".repeat(_):h)}function u(_=!0){const d=++s.indentLevel;_&&c(d)}function p(_=!0){const d=--s.indentLevel;_&&c(d)}function g(){c(s.indentLevel)}return{context:i,push:l,indent:u,deindent:p,newline:g,helper:_=>`_${_}`,needIndent:()=>s.needIndent}}function Jm(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),yn(e,t.key),t.modifier?(e.push(", "),yn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function Zm(e,t){const{helper:o,needIndent:n}=e;e.push(`${o("normalize")}([`),e.indent(n());const a=t.items.length;for(let r=0;r1){e.push(`${o("plural")}([`),e.indent(n());const a=t.cases.length;for(let r=0;r{const o=xc(t.mode)?t.mode:"normal",n=xc(t.filename)?t.filename:"message.intl";t.sourceMap;const a=t.breakLineCode!=null?t.breakLineCode:o==="arrow"?";":` -`,r=t.needIndent?t.needIndent:o!=="arrow",s=e.helpers||[],i=qm(e,{filename:n,breakLineCode:a,needIndent:r});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(r),s.length>0&&(i.push(`const { ${Sc(s.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),yn(i,e),i.deindent(r),i.push("}"),delete e.helpers;const{code:l,map:c}=i.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function tb(e,t={}){const o=wc({},t),n=!!o.jit,a=!!o.minify,r=o.optimize==null?!0:o.optimize,i=Km(o).parse(e);return n?(r&&Vm(i),a&&bn(i),{ast:i,code:""}):(Hm(i,o),eb(i,o))}/*! + */function ob(e,t,o){return{line:e,column:t,offset:o}}function ur(e,t,o){return{start:e,end:t}}const nb=/\{([0-9a-zA-Z]+)\}/g;function Fc(e,...t){return t.length===1&&ab(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(nb,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const Oc=Object.assign,Dc=e=>typeof e=="string",ab=e=>e!==null&&typeof e=="object";function Bc(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const ks={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},rb={[ks.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function sb(e,t,...o){const n=Fc(rb[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const Se={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},ib={[Se.EXPECTED_TOKEN]:"Expected token: '{0}'",[Se.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Se.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Se.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Se.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Se.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Se.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Se.EMPTY_PLACEHOLDER]:"Empty placeholder",[Se.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Se.INVALID_LINKED_FORMAT]:"Invalid linked format",[Se.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Se.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Se.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Se.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Se.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Se.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function xn(e,t,o={}){const{domain:n,messages:a,args:r}=o,s=Fc((a||ib)[e]||"",...r||[]),i=new SyntaxError(String(s));return i.code=e,t&&(i.location=t),i.domain=n,i}function lb(e){throw e}const Co=" ",cb="\r",Ft=` +`,ub="\u2028",db="\u2029";function pb(e){const t=e;let o=0,n=1,a=1,r=0;const s=E=>t[E]===cb&&t[E+1]===Ft,i=E=>t[E]===Ft,l=E=>t[E]===db,c=E=>t[E]===ub,u=E=>s(E)||i(E)||l(E)||c(E),p=()=>o,f=()=>n,k=()=>a,S=()=>r,_=E=>s(E)||l(E)||c(E)?Ft:t[E],d=()=>_(o),g=()=>_(o+r);function b(){return r=0,u(o)&&(n++,a=0),s(o)&&o++,o++,a++,t[o]}function y(){return s(o+r)&&r++,r++,t[o+r]}function w(){o=0,n=1,a=1,r=0}function $(E=0){r=E}function x(){const E=o+r;for(;E!==o;)b();r=0}return{index:p,line:f,column:k,peekOffset:S,charAt:_,currentChar:d,currentPeek:g,next:b,peek:y,reset:w,resetPeek:$,skipToPeek:x}}const Go=void 0,gb=".",Gc="'",fb="tokenizer";function hb(e,t={}){const o=t.location!==!1,n=pb(e),a=()=>n.index(),r=()=>ob(n.line(),n.column(),n.index()),s=r(),i=a(),l={currentType:14,offset:i,startLoc:s,endLoc:s,lastType:14,lastOffset:i,lastStartLoc:s,lastEndLoc:s,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function p(m,v,D,...W){const ce=c();if(v.column+=D,v.offset+=D,u){const re=o?ur(ce.startLoc,v):null,B=xn(m,re,{domain:fb,args:W});u(B)}}function f(m,v,D){m.endLoc=r(),m.currentType=v;const W={type:v};return o&&(W.loc=ur(m.startLoc,m.endLoc)),D!=null&&(W.value=D),W}const k=m=>f(m,14);function S(m,v){return m.currentChar()===v?(m.next(),v):(p(Se.EXPECTED_TOKEN,r(),0,v),"")}function _(m){let v="";for(;m.currentPeek()===Co||m.currentPeek()===Ft;)v+=m.currentPeek(),m.peek();return v}function d(m){const v=_(m);return m.skipToPeek(),v}function g(m){if(m===Go)return!1;const v=m.charCodeAt(0);return v>=97&&v<=122||v>=65&&v<=90||v===95}function b(m){if(m===Go)return!1;const v=m.charCodeAt(0);return v>=48&&v<=57}function y(m,v){const{currentType:D}=v;if(D!==2)return!1;_(m);const W=g(m.currentPeek());return m.resetPeek(),W}function w(m,v){const{currentType:D}=v;if(D!==2)return!1;_(m);const W=m.currentPeek()==="-"?m.peek():m.currentPeek(),ce=b(W);return m.resetPeek(),ce}function $(m,v){const{currentType:D}=v;if(D!==2)return!1;_(m);const W=m.currentPeek()===Gc;return m.resetPeek(),W}function x(m,v){const{currentType:D}=v;if(D!==8)return!1;_(m);const W=m.currentPeek()===".";return m.resetPeek(),W}function E(m,v){const{currentType:D}=v;if(D!==9)return!1;_(m);const W=g(m.currentPeek());return m.resetPeek(),W}function P(m,v){const{currentType:D}=v;if(!(D===8||D===12))return!1;_(m);const W=m.currentPeek()===":";return m.resetPeek(),W}function R(m,v){const{currentType:D}=v;if(D!==10)return!1;const W=()=>{const re=m.currentPeek();return re==="{"?g(m.peek()):re==="@"||re==="%"||re==="|"||re===":"||re==="."||re===Co||!re?!1:re===Ft?(m.peek(),W()):ae(m,!1)},ce=W();return m.resetPeek(),ce}function K(m){_(m);const v=m.currentPeek()==="|";return m.resetPeek(),v}function V(m){const v=_(m),D=m.currentPeek()==="%"&&m.peek()==="{";return m.resetPeek(),{isModulo:D,hasSpace:v.length>0}}function ae(m,v=!0){const D=(ce=!1,re="",B=!1)=>{const q=m.currentPeek();return q==="{"?re==="%"?!1:ce:q==="@"||!q?re==="%"?!0:ce:q==="%"?(m.peek(),D(ce,"%",!0)):q==="|"?re==="%"||B?!0:!(re===Co||re===Ft):q===Co?(m.peek(),D(!0,Co,B)):q===Ft?(m.peek(),D(!0,Ft,B)):!0},W=D();return v&&m.resetPeek(),W}function M(m,v){const D=m.currentChar();return D===Go?Go:v(D)?(m.next(),D):null}function L(m){const v=m.charCodeAt(0);return v>=97&&v<=122||v>=65&&v<=90||v>=48&&v<=57||v===95||v===36}function N(m){return M(m,L)}function A(m){const v=m.charCodeAt(0);return v>=97&&v<=122||v>=65&&v<=90||v>=48&&v<=57||v===95||v===36||v===45}function h(m){return M(m,A)}function U(m){const v=m.charCodeAt(0);return v>=48&&v<=57}function ie(m){return M(m,U)}function Y(m){const v=m.charCodeAt(0);return v>=48&&v<=57||v>=65&&v<=70||v>=97&&v<=102}function pe(m){return M(m,Y)}function ge(m){let v="",D="";for(;v=ie(m);)D+=v;return D}function se(m){d(m);const v=m.currentChar();return v!=="%"&&p(Se.EXPECTED_TOKEN,r(),0,v),m.next(),"%"}function $e(m){let v="";for(;;){const D=m.currentChar();if(D==="{"||D==="}"||D==="@"||D==="|"||!D)break;if(D==="%")if(ae(m))v+=D,m.next();else break;else if(D===Co||D===Ft)if(ae(m))v+=D,m.next();else{if(K(m))break;v+=D,m.next()}else v+=D,m.next()}return v}function Te(m){d(m);let v="",D="";for(;v=h(m);)D+=v;return m.currentChar()===Go&&p(Se.UNTERMINATED_CLOSING_BRACE,r(),0),D}function Ve(m){d(m);let v="";return m.currentChar()==="-"?(m.next(),v+=`-${ge(m)}`):v+=ge(m),m.currentChar()===Go&&p(Se.UNTERMINATED_CLOSING_BRACE,r(),0),v}function ct(m){return m!==Gc&&m!==Ft}function qe(m){d(m),S(m,"'");let v="",D="";for(;v=M(m,ct);)v==="\\"?D+=ot(m):D+=v;const W=m.currentChar();return W===Ft||W===Go?(p(Se.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),W===Ft&&(m.next(),S(m,"'")),D):(S(m,"'"),D)}function ot(m){const v=m.currentChar();switch(v){case"\\":case"'":return m.next(),`\\${v}`;case"u":return We(m,v,4);case"U":return We(m,v,6);default:return p(Se.UNKNOWN_ESCAPE_SEQUENCE,r(),0,v),""}}function We(m,v,D){S(m,v);let W="";for(let ce=0;ce{const W=m.currentChar();return W==="{"||W==="%"||W==="@"||W==="|"||W==="("||W===")"||!W||W===Co?D:(D+=W,m.next(),v(D))};return v("")}function z(m){d(m);const v=S(m,"|");return d(m),v}function Q(m,v){let D=null;switch(m.currentChar()){case"{":return v.braceNest>=1&&p(Se.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),m.next(),D=f(v,2,"{"),d(m),v.braceNest++,D;case"}":return v.braceNest>0&&v.currentType===2&&p(Se.EMPTY_PLACEHOLDER,r(),0),m.next(),D=f(v,3,"}"),v.braceNest--,v.braceNest>0&&d(m),v.inLinked&&v.braceNest===0&&(v.inLinked=!1),D;case"@":return v.braceNest>0&&p(Se.UNTERMINATED_CLOSING_BRACE,r(),0),D=Z(m,v)||k(v),v.braceNest=0,D;default:{let ce=!0,re=!0,B=!0;if(K(m))return v.braceNest>0&&p(Se.UNTERMINATED_CLOSING_BRACE,r(),0),D=f(v,1,z(m)),v.braceNest=0,v.inLinked=!1,D;if(v.braceNest>0&&(v.currentType===5||v.currentType===6||v.currentType===7))return p(Se.UNTERMINATED_CLOSING_BRACE,r(),0),v.braceNest=0,te(m,v);if(ce=y(m,v))return D=f(v,5,Te(m)),d(m),D;if(re=w(m,v))return D=f(v,6,Ve(m)),d(m),D;if(B=$(m,v))return D=f(v,7,qe(m)),d(m),D;if(!ce&&!re&&!B)return D=f(v,13,C(m)),p(Se.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,D.value),d(m),D;break}}return D}function Z(m,v){const{currentType:D}=v;let W=null;const ce=m.currentChar();switch((D===8||D===9||D===12||D===10)&&(ce===Ft||ce===Co)&&p(Se.INVALID_LINKED_FORMAT,r(),0),ce){case"@":return m.next(),W=f(v,8,"@"),v.inLinked=!0,W;case".":return d(m),m.next(),f(v,9,".");case":":return d(m),m.next(),f(v,10,":");default:return K(m)?(W=f(v,1,z(m)),v.braceNest=0,v.inLinked=!1,W):x(m,v)||P(m,v)?(d(m),Z(m,v)):E(m,v)?(d(m),f(v,12,F(m))):R(m,v)?(d(m),ce==="{"?Q(m,v)||W:f(v,11,I(m))):(D===8&&p(Se.INVALID_LINKED_FORMAT,r(),0),v.braceNest=0,v.inLinked=!1,te(m,v))}}function te(m,v){let D={type:14};if(v.braceNest>0)return Q(m,v)||k(v);if(v.inLinked)return Z(m,v)||k(v);switch(m.currentChar()){case"{":return Q(m,v)||k(v);case"}":return p(Se.UNBALANCED_CLOSING_BRACE,r(),0),m.next(),f(v,3,"}");case"@":return Z(m,v)||k(v);default:{if(K(m))return D=f(v,1,z(m)),v.braceNest=0,v.inLinked=!1,D;const{isModulo:ce,hasSpace:re}=V(m);if(ce)return re?f(v,0,$e(m)):f(v,4,se(m));if(ae(m))return f(v,0,$e(m));break}}return D}function X(){const{currentType:m,offset:v,startLoc:D,endLoc:W}=l;return l.lastType=m,l.lastOffset=v,l.lastStartLoc=D,l.lastEndLoc=W,l.offset=a(),l.startLoc=r(),n.currentChar()===Go?f(l,14):te(n,l)}return{nextToken:X,currentOffset:a,currentPosition:r,context:c}}const mb="parser",bb=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function yb(e,t,o){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(t||o,16);return n<=55295||n>=57344?String.fromCodePoint(n):"�"}}}function _b(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a(y,w,$,x,...E){const P=y.currentPosition();if(P.offset+=x,P.column+=x,o){const R=t?ur($,P):null,K=xn(w,R,{domain:mb,args:E});o(K)}}function r(y,w,$,x,...E){const P=y.currentPosition();if(P.offset+=x,P.column+=x,n){const R=t?ur($,P):null;n(sb(w,R,E))}}function s(y,w,$){const x={type:y};return t&&(x.start=w,x.end=w,x.loc={start:$,end:$}),x}function i(y,w,$,x){t&&(y.end=w,y.loc&&(y.loc.end=$))}function l(y,w){const $=y.context(),x=s(3,$.offset,$.startLoc);return x.value=w,i(x,y.currentOffset(),y.currentPosition()),x}function c(y,w){const $=y.context(),{lastOffset:x,lastStartLoc:E}=$,P=s(5,x,E);return P.index=parseInt(w,10),y.nextToken(),i(P,y.currentOffset(),y.currentPosition()),P}function u(y,w,$){const x=y.context(),{lastOffset:E,lastStartLoc:P}=x,R=s(4,E,P);return R.key=w,$===!0&&(R.modulo=!0),y.nextToken(),i(R,y.currentOffset(),y.currentPosition()),R}function p(y,w){const $=y.context(),{lastOffset:x,lastStartLoc:E}=$,P=s(9,x,E);return P.value=w.replace(bb,yb),y.nextToken(),i(P,y.currentOffset(),y.currentPosition()),P}function f(y){const w=y.nextToken(),$=y.context(),{lastOffset:x,lastStartLoc:E}=$,P=s(8,x,E);return w.type!==12?(a(y,Se.UNEXPECTED_EMPTY_LINKED_MODIFIER,$.lastStartLoc,0),P.value="",i(P,x,E),{nextConsumeToken:w,node:P}):(w.value==null&&a(y,Se.UNEXPECTED_LEXICAL_ANALYSIS,$.lastStartLoc,0,Xt(w)),P.value=w.value||"",i(P,y.currentOffset(),y.currentPosition()),{node:P})}function k(y,w){const $=y.context(),x=s(7,$.offset,$.startLoc);return x.value=w,i(x,y.currentOffset(),y.currentPosition()),x}function S(y){const w=y.context(),$=s(6,w.offset,w.startLoc);let x=y.nextToken();if(x.type===9){const E=f(y);$.modifier=E.node,x=E.nextConsumeToken||y.nextToken()}switch(x.type!==10&&a(y,Se.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,Xt(x)),x=y.nextToken(),x.type===2&&(x=y.nextToken()),x.type){case 11:x.value==null&&a(y,Se.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,Xt(x)),$.key=k(y,x.value||"");break;case 5:x.value==null&&a(y,Se.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,Xt(x)),$.key=u(y,x.value||"");break;case 6:x.value==null&&a(y,Se.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,Xt(x)),$.key=c(y,x.value||"");break;case 7:x.value==null&&a(y,Se.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,Xt(x)),$.key=p(y,x.value||"");break;default:{a(y,Se.UNEXPECTED_EMPTY_LINKED_KEY,w.lastStartLoc,0);const E=y.context(),P=s(7,E.offset,E.startLoc);return P.value="",i(P,E.offset,E.startLoc),$.key=P,i($,E.offset,E.startLoc),{nextConsumeToken:x,node:$}}}return i($,y.currentOffset(),y.currentPosition()),{node:$}}function _(y){const w=y.context(),$=w.currentType===1?y.currentOffset():w.offset,x=w.currentType===1?w.endLoc:w.startLoc,E=s(2,$,x);E.items=[];let P=null,R=null;do{const ae=P||y.nextToken();switch(P=null,ae.type){case 0:ae.value==null&&a(y,Se.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,Xt(ae)),E.items.push(l(y,ae.value||""));break;case 6:ae.value==null&&a(y,Se.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,Xt(ae)),E.items.push(c(y,ae.value||""));break;case 4:R=!0;break;case 5:ae.value==null&&a(y,Se.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,Xt(ae)),E.items.push(u(y,ae.value||"",!!R)),R&&(r(y,ks.USE_MODULO_SYNTAX,w.lastStartLoc,0,Xt(ae)),R=null);break;case 7:ae.value==null&&a(y,Se.UNEXPECTED_LEXICAL_ANALYSIS,w.lastStartLoc,0,Xt(ae)),E.items.push(p(y,ae.value||""));break;case 8:{const M=S(y);E.items.push(M.node),P=M.nextConsumeToken||null;break}}}while(w.currentType!==14&&w.currentType!==1);const K=w.currentType===1?w.lastOffset:y.currentOffset(),V=w.currentType===1?w.lastEndLoc:y.currentPosition();return i(E,K,V),E}function d(y,w,$,x){const E=y.context();let P=x.items.length===0;const R=s(1,w,$);R.cases=[],R.cases.push(x);do{const K=_(y);P||(P=K.items.length===0),R.cases.push(K)}while(E.currentType!==14);return P&&a(y,Se.MUST_HAVE_MESSAGES_IN_PLURAL,$,0),i(R,y.currentOffset(),y.currentPosition()),R}function g(y){const w=y.context(),{offset:$,startLoc:x}=w,E=_(y);return w.currentType===14?E:d(y,$,x,E)}function b(y){const w=hb(y,Oc({},e)),$=w.context(),x=s(0,$.offset,$.startLoc);return t&&x.loc&&(x.loc.source=y),x.body=g(w),e.onCacheKey&&(x.cacheKey=e.onCacheKey(y)),$.currentType!==14&&a(w,Se.UNEXPECTED_LEXICAL_ANALYSIS,$.lastStartLoc,0,y[$.offset]||""),i(x,w.currentOffset(),w.currentPosition()),x}return{parse:b}}function Xt(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function vb(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:r=>(o.helpers.add(r),r)}}function jc(e,t){for(let o=0;oUc(o)),e}function Uc(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let o=0;os;function l(_,d){s.code+=_}function c(_,d=!0){const g=d?n:"";l(a?g+" ".repeat(_):g)}function u(_=!0){const d=++s.indentLevel;_&&c(d)}function p(_=!0){const d=--s.indentLevel;_&&c(d)}function f(){c(s.indentLevel)}return{context:i,push:l,indent:u,deindent:p,newline:f,helper:_=>`_${_}`,needIndent:()=>s.needIndent}}function Ab(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),$n(e,t.key),t.modifier?(e.push(", "),$n(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function Lb(e,t){const{helper:o,needIndent:n}=e;e.push(`${o("normalize")}([`),e.indent(n());const a=t.items.length;for(let r=0;r1){e.push(`${o("plural")}([`),e.indent(n());const a=t.cases.length;for(let r=0;r{const o=Dc(t.mode)?t.mode:"normal",n=Dc(t.filename)?t.filename:"message.intl";t.sourceMap;const a=t.breakLineCode!=null?t.breakLineCode:o==="arrow"?";":` +`,r=t.needIndent?t.needIndent:o!=="arrow",s=e.helpers||[],i=$b(e,{filename:n,breakLineCode:a,needIndent:r});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(r),s.length>0&&(i.push(`const { ${Bc(s.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),$n(i,e),i.deindent(r),i.push("}"),delete e.helpers;const{code:l,map:c}=i.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function Pb(e,t={}){const o=Oc({},t),n=!!o.jit,a=!!o.minify,r=o.optimize==null?!0:o.optimize,i=_b(o).parse(e);return n?(r&&wb(i),a&&Sn(i),{ast:i,code:""}):(kb(i,o),Tb(i,o))}/*! * core-base v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function ob(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(xo().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(xo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(xo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function so(e){return Ie(e)&&ps(e)===0&&(Ht(e,"b")||Ht(e,"body"))}const Cc=["b","body"];function nb(e){return Ro(e,Cc)}const Ec=["c","cases"];function ab(e){return Ro(e,Ec,[])}const Tc=["s","static"];function rb(e){return Ro(e,Tc)}const Pc=["i","items"];function sb(e){return Ro(e,Pc,[])}const Mc=["t","type"];function ps(e){return Ro(e,Mc)}const Nc=["v","value"];function tr(e,t){const o=Ro(e,Nc);if(o!=null)return o;throw Qn(t)}const Ic=["m","modifier"];function ib(e){return Ro(e,Ic)}const Rc=["k","key"];function lb(e){const t=Ro(e,Rc);if(t)return t;throw Qn(6)}function Ro(e,t,o){for(let n=0;n{s===void 0?s=i:s+=i},g[1]=()=>{s!==void 0&&(t.push(s),s=void 0)},g[2]=()=>{g[0](),a++},g[3]=()=>{if(a>0)a--,n=4,g[0]();else{if(a=0,s===void 0||(s=gb(s),s===!1))return!1;g[1]()}};function k(){const w=e[o+1];if(n===5&&w==="'"||n===6&&w==='"')return o++,i="\\"+w,g[0](),!0}for(;n!==null;)if(o++,r=e[o],!(r==="\\"&&k())){if(l=pb(r),p=Fo[n],c=p[l]||p.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=g[c[1]],u&&(i=r,u()===!1))))return;if(n===7)return t}}const Oc=new Map;function hb(e,t){return Ie(e)?e[t]:null}function mb(e,t){if(!Ie(e))return null;let o=Oc.get(t);if(o||(o=fb(t),o&&Oc.set(t,o)),!o)return null;const n=o.length;let a=e,r=0;for(;re,yb=e=>"",_b="text",vb=e=>e.length===0?"":Am(e),kb=Sm;function Dc(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function wb(e){const t=st(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(st(e.named.count)||st(e.named.n))?st(e.named.count)?e.named.count:st(e.named.n)?e.named.n:t:t}function xb(e,t){t.count||(t.count=e),t.n||(t.n=e)}function Sb(e={}){const t=e.locale,o=wb(e),n=Ie(e.pluralRules)&&pe(t)&&Ye(e.pluralRules[t])?e.pluralRules[t]:Dc,a=Ie(e.pluralRules)&&pe(t)&&Ye(e.pluralRules[t])?Dc:void 0,r=h=>h[n(o,h.length,a)],s=e.list||[],i=h=>s[h],l=e.named||Ue();st(e.pluralIndex)&&xb(o,l);const c=h=>l[h];function u(h){const y=Ye(e.messages)?e.messages(h):Ie(e.messages)?e.messages[h]:!1;return y||(e.parent?e.parent.message(h):yb)}const p=h=>e.modifiers?e.modifiers[h]:bb,g=Ae(e.processor)&&Ye(e.processor.normalize)?e.processor.normalize:vb,k=Ae(e.processor)&&Ye(e.processor.interpolate)?e.processor.interpolate:kb,w=Ae(e.processor)&&pe(e.processor.type)?e.processor.type:_b,d={list:i,named:c,plural:r,linked:(h,...y)=>{const[v,b]=y;let x="text",A="";y.length===1?Ie(v)?(A=v.modifier||A,x=v.type||x):pe(v)&&(A=v||A):y.length===2&&(pe(v)&&(A=v||A),pe(b)&&(x=b||x));const L=u(h)(d),M=x==="vnode"&&Xe(L)&&A?L[0]:L;return A?p(A)(M,x):M},message:u,type:w,interpolate:k,normalize:g,values:kt(Ue(),s,l)};return d}let ea=null;function Ab(e){ea=e}function $b(e,t,o){ea&&ea.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const Lb=Cb("function:translate");function Cb(e){return t=>ea&&ea.emit(e,t)}const Eb=us.__EXTEND_POINT__,Yo=Za(Eb),Tb={FALLBACK_TO_TRANSLATE:Yo(),CANNOT_FORMAT_NUMBER:Yo(),FALLBACK_TO_NUMBER_FORMAT:Yo(),CANNOT_FORMAT_DATE:Yo(),FALLBACK_TO_DATE_FORMAT:Yo(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:Yo(),__EXTEND_POINT__:Yo()},Bc=we.__EXTEND_POINT__,qo=Za(Bc),Wt={INVALID_ARGUMENT:Bc,INVALID_DATE_ARGUMENT:qo(),INVALID_ISO_DATE_ARGUMENT:qo(),NOT_SUPPORT_NON_STRING_MESSAGE:qo(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:qo(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:qo(),NOT_SUPPORT_LOCALE_TYPE:qo(),__EXTEND_POINT__:qo()};function io(e){return mn(e,null,void 0)}function gs(e,t){return t.locale!=null?jc(t.locale):jc(e.locale)}let fs;function jc(e){if(pe(e))return e;if(Ye(e)){if(e.resolvedOnce&&fs!=null)return fs;if(e.constructor.name==="Function"){const t=e();if(xm(t))throw io(Wt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return fs=t}else throw io(Wt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw io(Wt.NOT_SUPPORT_LOCALE_TYPE)}function Pb(e,t,o){return[...new Set([o,...Xe(t)?t:Ie(t)?Object.keys(t):pe(t)?[t]:[o]])]}function Gc(e,t,o){const n=pe(o)?o:_n,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let r=a.__localeChainCache.get(n);if(!r){r=[];let s=[o];for(;Xe(s);)s=Uc(r,s,t);const i=Xe(t)||!Ae(t)?t:t.default?t.default:null;s=pe(i)?[i]:i,Xe(s)&&Uc(r,s,!1),a.__localeChainCache.set(n,r)}return r}function Uc(e,t,o){let n=!0;for(let a=0;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Rb(){return{upper:(e,t)=>t==="text"&&pe(e)?e.toUpperCase():t==="vnode"&&Ie(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&pe(e)?e.toLowerCase():t==="vnode"&&Ie(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&pe(e)?zc(e):t==="vnode"&&Ie(e)&&"__v_isVNode"in e?zc(e.children):e}}let Hc;function Vc(e){Hc=e}let Wc;function Fb(e){Wc=e}let Yc;function Ob(e){Yc=e}let qc=null;const Db=e=>{qc=e},Bb=()=>qc;let Jc=null;const Zc=e=>{Jc=e},jb=()=>Jc;let Xc=0;function Gb(e={}){const t=Ye(e.onWarn)?e.onWarn:mm,o=pe(e.version)?e.version:Ib,n=pe(e.locale)||Ye(e.locale)?e.locale:_n,a=Ye(n)?_n:n,r=Xe(e.fallbackLocale)||Ae(e.fallbackLocale)||pe(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,s=Ae(e.messages)?e.messages:hs(a),i=Ae(e.datetimeFormats)?e.datetimeFormats:hs(a),l=Ae(e.numberFormats)?e.numberFormats:hs(a),c=kt(Ue(),e.modifiers,Rb()),u=e.pluralRules||Ue(),p=Ye(e.missing)?e.missing:null,g=Pe(e.missingWarn)||No(e.missingWarn)?e.missingWarn:!0,k=Pe(e.fallbackWarn)||No(e.fallbackWarn)?e.fallbackWarn:!0,w=!!e.fallbackFormat,_=!!e.unresolving,d=Ye(e.postTranslation)?e.postTranslation:null,h=Ae(e.processor)?e.processor:null,y=Pe(e.warnHtmlMessage)?e.warnHtmlMessage:!0,v=!!e.escapeParameter,b=Ye(e.messageCompiler)?e.messageCompiler:Hc,x=Ye(e.messageResolver)?e.messageResolver:Wc||hb,A=Ye(e.localeFallbacker)?e.localeFallbacker:Yc||Pb,L=Ie(e.fallbackContext)?e.fallbackContext:void 0,M=e,P=Ie(M.__datetimeFormatters)?M.__datetimeFormatters:new Map,I=Ie(M.__numberFormatters)?M.__numberFormatters:new Map,B=Ie(M.__meta)?M.__meta:{};Xc++;const H={version:o,cid:Xc,locale:n,fallbackLocale:r,messages:s,modifiers:c,pluralRules:u,missing:p,missingWarn:g,fallbackWarn:k,fallbackFormat:w,unresolving:_,postTranslation:d,processor:h,warnHtmlMessage:y,escapeParameter:v,messageCompiler:b,messageResolver:x,localeFallbacker:A,fallbackContext:L,onWarn:t,__meta:B};return H.datetimeFormats=i,H.numberFormats=l,H.__datetimeFormatters=P,H.__numberFormatters=I,__INTLIFY_PROD_DEVTOOLS__&&$b(H,o,B),H}const hs=e=>({[e]:Ue()});function ms(e,t,o,n,a){const{missing:r,onWarn:s}=e;if(r!==null){const i=r(e,o,t,a);return pe(i)?i:t}else return t}function ta(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function Ub(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function Kb(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;nzb(o,e)}function zb(e,t){const o=nb(t);if(o==null)throw Qn(0);if(ps(o)===1){const r=ab(o);return e.plural(r.reduce((s,i)=>[...s,Qc(e,i)],[]))}else return Qc(e,o)}function Qc(e,t){const o=rb(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=sb(t).reduce((a,r)=>[...a,ys(e,r)],[]);return e.normalize(n)}}function ys(e,t){const o=ps(t);switch(o){case 3:return tr(t,o);case 9:return tr(t,o);case 4:{const n=t;if(Ht(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(Ht(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw Qn(o)}case 5:{const n=t;if(Ht(n,"i")&&st(n.i))return e.interpolate(e.list(n.i));if(Ht(n,"index")&&st(n.index))return e.interpolate(e.list(n.index));throw Qn(o)}case 6:{const n=t,a=ib(n),r=lb(n);return e.linked(ys(e,r),a?ys(e,a):void 0,e.type)}case 7:return tr(t,o);case 8:return tr(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const eu=e=>e;let vn=Ue();function tu(e,t={}){let o=!1;const n=t.onError||Mm;return t.onError=a=>{o=!0,n(a)},{...tb(e,t),detectError:o}}const Hb=(e,t)=>{if(!pe(e))throw io(Wt.NOT_SUPPORT_NON_STRING_MESSAGE);{Pe(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||eu)(e),a=vn[n];if(a)return a;const{code:r,detectError:s}=tu(e,t),i=new Function(`return ${r}`)();return s?i:vn[n]=i}};function Vb(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&pe(e)){Pe(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||eu)(e),a=vn[n];if(a)return a;const{ast:r,detectError:s}=tu(e,{...t,location:!1,jit:!0}),i=bs(r);return s?i:vn[n]=i}else{const o=e.cacheKey;if(o){const n=vn[o];return n||(vn[o]=bs(e))}else return bs(e)}}const ou=()=>"",Gt=e=>Ye(e);function nu(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:r,fallbackLocale:s,messages:i}=e,[l,c]=_s(...t),u=Pe(c.missingWarn)?c.missingWarn:e.missingWarn,p=Pe(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,g=Pe(c.escapeParameter)?c.escapeParameter:e.escapeParameter,k=!!c.resolvedMessage,w=pe(c.default)||Pe(c.default)?Pe(c.default)?r?l:()=>l:c.default:o?r?l:()=>l:"",_=o||w!=="",d=gs(e,c);g&&Wb(c);let[h,y,v]=k?[l,d,i[d]||Ue()]:au(e,l,d,s,p,u),b=h,x=l;if(!k&&!(pe(b)||so(b)||Gt(b))&&_&&(b=w,x=b),!k&&(!(pe(b)||so(b)||Gt(b))||!pe(y)))return a?or:l;let A=!1;const L=()=>{A=!0},M=Gt(b)?b:ru(e,l,y,b,x,L);if(A)return b;const P=Jb(e,y,v,c),I=Sb(P),B=Yb(e,M,I);let H=n?n(B,l):B;if(g&&pe(H)&&(H=km(H)),__INTLIFY_PROD_DEVTOOLS__){const O={timestamp:Date.now(),key:pe(l)?l:Gt(b)?b.key:"",locale:y||(Gt(b)?b.locale:""),format:pe(b)?b:Gt(b)?b.source:"",message:H};O.meta=kt({},e.__meta,Bb()||{}),Lb(O)}return H}function Wb(e){Xe(e.list)?e.list=e.list.map(t=>pe(t)?bc(t):t):Ie(e.named)&&Object.keys(e.named).forEach(t=>{pe(e.named[t])&&(e.named[t]=bc(e.named[t]))})}function au(e,t,o,n,a,r){const{messages:s,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,o);let p=Ue(),g,k=null;const w="translate";for(let _=0;_n;return c.locale=o,c.key=t,c}const l=s(n,qb(e,o,a,n,i,r));return l.locale=o,l.key=t,l.source=n,l}function Yb(e,t,o){return t(o)}function _s(...e){const[t,o,n]=e,a=Ue();if(!pe(t)&&!st(t)&&!Gt(t)&&!so(t))throw io(Wt.INVALID_ARGUMENT);const r=st(t)?String(t):(Gt(t),t);return st(o)?a.plural=o:pe(o)?a.default=o:Ae(o)&&!Ja(o)?a.named=o:Xe(o)&&(a.list=o),st(n)?a.plural=n:pe(n)?a.default=n:Ae(n)&&kt(a,n),[r,a]}function qb(e,t,o,n,a,r){return{locale:t,key:o,warnHtmlMessage:a,onError:s=>{throw r&&r(s),s},onCacheKey:s=>bm(t,o,s)}}function Jb(e,t,o,n){const{modifiers:a,pluralRules:r,messageResolver:s,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,g={locale:t,modifiers:a,pluralRules:r,messages:k=>{let w=s(o,k);if(w==null&&u){const[,,_]=au(u,k,t,i,l,c);w=s(_,k)}if(pe(w)||so(w)){let _=!1;const h=ru(e,k,t,w,k,()=>{_=!0});return _?ou:h}else return Gt(w)?w:ou}};return e.processor&&(g.processor=e.processor),n.list&&(g.list=n.list),n.named&&(g.named=n.named),st(n.plural)&&(g.pluralIndex=n.plural),g}function su(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:r,localeFallbacker:s}=e,{__datetimeFormatters:i}=e,[l,c,u,p]=vs(...t),g=Pe(u.missingWarn)?u.missingWarn:e.missingWarn;Pe(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const k=!!u.part,w=gs(e,u),_=s(e,a,w);if(!pe(l)||l==="")return new Intl.DateTimeFormat(w,p).format(c);let d={},h,y=null;const v="datetime format";for(let A=0;A<_.length&&(h=_[A],d=o[h]||{},y=d[l],!Ae(y));A++)ms(e,l,h,g,v);if(!Ae(y)||!pe(h))return n?or:l;let b=`${h}__${l}`;Ja(p)||(b=`${b}__${JSON.stringify(p)}`);let x=i.get(b);return x||(x=new Intl.DateTimeFormat(h,kt({},y,p)),i.set(b,x)),k?x.formatToParts(c):x.format(c)}const iu=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function vs(...e){const[t,o,n,a]=e,r=Ue();let s=Ue(),i;if(pe(t)){const l=t.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!l)throw io(Wt.INVALID_ISO_DATE_ARGUMENT);const c=l[3]?l[3].trim().startsWith("T")?`${l[1].trim()}${l[3].trim()}`:`${l[1].trim()}T${l[3].trim()}`:l[1].trim();i=new Date(c);try{i.toISOString()}catch{throw io(Wt.INVALID_ISO_DATE_ARGUMENT)}}else if(_m(t)){if(isNaN(t.getTime()))throw io(Wt.INVALID_DATE_ARGUMENT);i=t}else if(st(t))i=t;else throw io(Wt.INVALID_ARGUMENT);return pe(o)?r.key=o:Ae(o)&&Object.keys(o).forEach(l=>{iu.includes(l)?s[l]=o[l]:r[l]=o[l]}),pe(n)?r.locale=n:Ae(n)&&(s=n),Ae(a)&&(s=a),[r.key||"",i,r,s]}function lu(e,t,o){const n=e;for(const a in o){const r=`${t}__${a}`;n.__datetimeFormatters.has(r)&&n.__datetimeFormatters.delete(r)}}function cu(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:r,localeFallbacker:s}=e,{__numberFormatters:i}=e,[l,c,u,p]=ks(...t),g=Pe(u.missingWarn)?u.missingWarn:e.missingWarn;Pe(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const k=!!u.part,w=gs(e,u),_=s(e,a,w);if(!pe(l)||l==="")return new Intl.NumberFormat(w,p).format(c);let d={},h,y=null;const v="number format";for(let A=0;A<_.length&&(h=_[A],d=o[h]||{},y=d[l],!Ae(y));A++)ms(e,l,h,g,v);if(!Ae(y)||!pe(h))return n?or:l;let b=`${h}__${l}`;Ja(p)||(b=`${b}__${JSON.stringify(p)}`);let x=i.get(b);return x||(x=new Intl.NumberFormat(h,kt({},y,p)),i.set(b,x)),k?x.formatToParts(c):x.format(c)}const uu=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function ks(...e){const[t,o,n,a]=e,r=Ue();let s=Ue();if(!st(t))throw io(Wt.INVALID_ARGUMENT);const i=t;return pe(o)?r.key=o:Ae(o)&&Object.keys(o).forEach(l=>{uu.includes(l)?s[l]=o[l]:r[l]=o[l]}),pe(n)?r.locale=n:Ae(n)&&(s=n),Ae(a)&&(s=a),[r.key||"",i,r,s]}function du(e,t,o){const n=e;for(const a in o){const r=`${t}__${a}`;n.__numberFormatters.has(r)&&n.__numberFormatters.delete(r)}}ob();/*! + */function Mb(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Eo().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Eo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Eo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function ho(e){return Ue(e)&&xs(e)===0&&(Zt(e,"b")||Zt(e,"body"))}const Kc=["b","body"];function Nb(e){return jo(e,Kc)}const Hc=["c","cases"];function Ib(e){return jo(e,Hc,[])}const zc=["s","static"];function Rb(e){return jo(e,zc)}const Vc=["i","items"];function Fb(e){return jo(e,Vc,[])}const Wc=["t","type"];function xs(e){return jo(e,Wc)}const Yc=["v","value"];function dr(e,t){const o=jo(e,Yc);if(o!=null)return o;throw ra(t)}const qc=["m","modifier"];function Ob(e){return jo(e,qc)}const Jc=["k","key"];function Db(e){const t=jo(e,Jc);if(t)return t;throw ra(6)}function jo(e,t,o){for(let n=0;n{s===void 0?s=i:s+=i},f[1]=()=>{s!==void 0&&(t.push(s),s=void 0)},f[2]=()=>{f[0](),a++},f[3]=()=>{if(a>0)a--,n=4,f[0]();else{if(a=0,s===void 0||(s=Kb(s),s===!1))return!1;f[1]()}};function k(){const S=e[o+1];if(n===5&&S==="'"||n===6&&S==='"')return o++,i="\\"+S,f[0](),!0}for(;n!==null;)if(o++,r=e[o],!(r==="\\"&&k())){if(l=Ub(r),p=Uo[n],c=p[l]||p.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=f[c[1]],u&&(i=r,u()===!1))))return;if(n===7)return t}}const Xc=new Map;function zb(e,t){return Ue(e)?e[t]:null}function Vb(e,t){if(!Ue(e))return null;let o=Xc.get(t);if(o||(o=Hb(t),o&&Xc.set(t,o)),!o)return null;const n=o.length;let a=e,r=0;for(;re,Yb=e=>"",qb="text",Jb=e=>e.length===0?"":tb(e),Zb=eb;function Qc(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function Xb(e){const t=ht(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(ht(e.named.count)||ht(e.named.n))?ht(e.named.count)?e.named.count:ht(e.named.n)?e.named.n:t:t}function Qb(e,t){t.count||(t.count=e),t.n||(t.n=e)}function ey(e={}){const t=e.locale,o=Xb(e),n=Ue(e.pluralRules)&&fe(t)&&tt(e.pluralRules[t])?e.pluralRules[t]:Qc,a=Ue(e.pluralRules)&&fe(t)&&tt(e.pluralRules[t])?Qc:void 0,r=g=>g[n(o,g.length,a)],s=e.list||[],i=g=>s[g],l=e.named||Ze();ht(e.pluralIndex)&&Qb(o,l);const c=g=>l[g];function u(g){const b=tt(e.messages)?e.messages(g):Ue(e.messages)?e.messages[g]:!1;return b||(e.parent?e.parent.message(g):Yb)}const p=g=>e.modifiers?e.modifiers[g]:Wb,f=Ce(e.processor)&&tt(e.processor.normalize)?e.processor.normalize:Jb,k=Ce(e.processor)&&tt(e.processor.interpolate)?e.processor.interpolate:Zb,S=Ce(e.processor)&&fe(e.processor.type)?e.processor.type:qb,d={list:i,named:c,plural:r,linked:(g,...b)=>{const[y,w]=b;let $="text",x="";b.length===1?Ue(y)?(x=y.modifier||x,$=y.type||$):fe(y)&&(x=y||x):b.length===2&&(fe(y)&&(x=y||x),fe(w)&&($=w||$));const E=u(g)(d),P=$==="vnode"&&st(E)&&x?E[0]:E;return x?p(x)(P,$):P},message:u,type:S,interpolate:k,normalize:f,values:Tt(Ze(),s,l)};return d}let sa=null;function ty(e){sa=e}function oy(e,t,o){sa&&sa.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const ny=ay("function:translate");function ay(e){return t=>sa&&sa.emit(e,t)}const ry=ks.__EXTEND_POINT__,on=ir(ry),sy={FALLBACK_TO_TRANSLATE:on(),CANNOT_FORMAT_NUMBER:on(),FALLBACK_TO_NUMBER_FORMAT:on(),CANNOT_FORMAT_DATE:on(),FALLBACK_TO_DATE_FORMAT:on(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:on(),__EXTEND_POINT__:on()},eu=Se.__EXTEND_POINT__,nn=ir(eu),Qt={INVALID_ARGUMENT:eu,INVALID_DATE_ARGUMENT:nn(),INVALID_ISO_DATE_ARGUMENT:nn(),NOT_SUPPORT_NON_STRING_MESSAGE:nn(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:nn(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:nn(),NOT_SUPPORT_LOCALE_TYPE:nn(),__EXTEND_POINT__:nn()};function mo(e){return xn(e,null,void 0)}function Ss(e,t){return t.locale!=null?tu(t.locale):tu(e.locale)}let $s;function tu(e){if(fe(e))return e;if(tt(e)){if(e.resolvedOnce&&$s!=null)return $s;if(e.constructor.name==="Function"){const t=e();if(Qm(t))throw mo(Qt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return $s=t}else throw mo(Qt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw mo(Qt.NOT_SUPPORT_LOCALE_TYPE)}function iy(e,t,o){return[...new Set([o,...st(t)?t:Ue(t)?Object.keys(t):fe(t)?[t]:[o]])]}function ou(e,t,o){const n=fe(o)?o:An,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let r=a.__localeChainCache.get(n);if(!r){r=[];let s=[o];for(;st(s);)s=nu(r,s,t);const i=st(t)||!Ce(t)?t:t.default?t.default:null;s=fe(i)?[i]:i,st(s)&&nu(r,s,!1),a.__localeChainCache.set(n,r)}return r}function nu(e,t,o){let n=!0;for(let a=0;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function dy(){return{upper:(e,t)=>t==="text"&&fe(e)?e.toUpperCase():t==="vnode"&&Ue(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&fe(e)?e.toLowerCase():t==="vnode"&&Ue(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&fe(e)?ru(e):t==="vnode"&&Ue(e)&&"__v_isVNode"in e?ru(e.children):e}}let su;function iu(e){su=e}let lu;function py(e){lu=e}let cu;function gy(e){cu=e}let uu=null;const fy=e=>{uu=e},hy=()=>uu;let du=null;const pu=e=>{du=e},my=()=>du;let gu=0;function by(e={}){const t=tt(e.onWarn)?e.onWarn:Vm,o=fe(e.version)?e.version:uy,n=fe(e.locale)||tt(e.locale)?e.locale:An,a=tt(n)?An:n,r=st(e.fallbackLocale)||Ce(e.fallbackLocale)||fe(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,s=Ce(e.messages)?e.messages:As(a),i=Ce(e.datetimeFormats)?e.datetimeFormats:As(a),l=Ce(e.numberFormats)?e.numberFormats:As(a),c=Tt(Ze(),e.modifiers,dy()),u=e.pluralRules||Ze(),p=tt(e.missing)?e.missing:null,f=Re(e.missingWarn)||Bo(e.missingWarn)?e.missingWarn:!0,k=Re(e.fallbackWarn)||Bo(e.fallbackWarn)?e.fallbackWarn:!0,S=!!e.fallbackFormat,_=!!e.unresolving,d=tt(e.postTranslation)?e.postTranslation:null,g=Ce(e.processor)?e.processor:null,b=Re(e.warnHtmlMessage)?e.warnHtmlMessage:!0,y=!!e.escapeParameter,w=tt(e.messageCompiler)?e.messageCompiler:su,$=tt(e.messageResolver)?e.messageResolver:lu||zb,x=tt(e.localeFallbacker)?e.localeFallbacker:cu||iy,E=Ue(e.fallbackContext)?e.fallbackContext:void 0,P=e,R=Ue(P.__datetimeFormatters)?P.__datetimeFormatters:new Map,K=Ue(P.__numberFormatters)?P.__numberFormatters:new Map,V=Ue(P.__meta)?P.__meta:{};gu++;const ae={version:o,cid:gu,locale:n,fallbackLocale:r,messages:s,modifiers:c,pluralRules:u,missing:p,missingWarn:f,fallbackWarn:k,fallbackFormat:S,unresolving:_,postTranslation:d,processor:g,warnHtmlMessage:b,escapeParameter:y,messageCompiler:w,messageResolver:$,localeFallbacker:x,fallbackContext:E,onWarn:t,__meta:V};return ae.datetimeFormats=i,ae.numberFormats=l,ae.__datetimeFormatters=R,ae.__numberFormatters=K,__INTLIFY_PROD_DEVTOOLS__&&oy(ae,o,V),ae}const As=e=>({[e]:Ze()});function Ls(e,t,o,n,a){const{missing:r,onWarn:s}=e;if(r!==null){const i=r(e,o,t,a);return fe(i)?i:t}else return t}function ia(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function yy(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function _y(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;nvy(o,e)}function vy(e,t){const o=Nb(t);if(o==null)throw ra(0);if(xs(o)===1){const r=Ib(o);return e.plural(r.reduce((s,i)=>[...s,fu(e,i)],[]))}else return fu(e,o)}function fu(e,t){const o=Rb(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=Fb(t).reduce((a,r)=>[...a,Cs(e,r)],[]);return e.normalize(n)}}function Cs(e,t){const o=xs(t);switch(o){case 3:return dr(t,o);case 9:return dr(t,o);case 4:{const n=t;if(Zt(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(Zt(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw ra(o)}case 5:{const n=t;if(Zt(n,"i")&&ht(n.i))return e.interpolate(e.list(n.i));if(Zt(n,"index")&&ht(n.index))return e.interpolate(e.list(n.index));throw ra(o)}case 6:{const n=t,a=Ob(n),r=Db(n);return e.linked(Cs(e,r),a?Cs(e,a):void 0,e.type)}case 7:return dr(t,o);case 8:return dr(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const hu=e=>e;let Ln=Ze();function mu(e,t={}){let o=!1;const n=t.onError||lb;return t.onError=a=>{o=!0,n(a)},{...Pb(e,t),detectError:o}}const ky=(e,t)=>{if(!fe(e))throw mo(Qt.NOT_SUPPORT_NON_STRING_MESSAGE);{Re(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||hu)(e),a=Ln[n];if(a)return a;const{code:r,detectError:s}=mu(e,t),i=new Function(`return ${r}`)();return s?i:Ln[n]=i}};function wy(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&fe(e)){Re(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||hu)(e),a=Ln[n];if(a)return a;const{ast:r,detectError:s}=mu(e,{...t,location:!1,jit:!0}),i=Es(r);return s?i:Ln[n]=i}else{const o=e.cacheKey;if(o){const n=Ln[o];return n||(Ln[o]=Es(e))}else return Es(e)}}const bu=()=>"",Vt=e=>tt(e);function yu(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:r,fallbackLocale:s,messages:i}=e,[l,c]=Ts(...t),u=Re(c.missingWarn)?c.missingWarn:e.missingWarn,p=Re(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,f=Re(c.escapeParameter)?c.escapeParameter:e.escapeParameter,k=!!c.resolvedMessage,S=fe(c.default)||Re(c.default)?Re(c.default)?r?l:()=>l:c.default:o?r?l:()=>l:"",_=o||S!=="",d=Ss(e,c);f&&xy(c);let[g,b,y]=k?[l,d,i[d]||Ze()]:_u(e,l,d,s,p,u),w=g,$=l;if(!k&&!(fe(w)||ho(w)||Vt(w))&&_&&(w=S,$=w),!k&&(!(fe(w)||ho(w)||Vt(w))||!fe(b)))return a?pr:l;let x=!1;const E=()=>{x=!0},P=Vt(w)?w:vu(e,l,b,w,$,E);if(x)return w;const R=Ay(e,b,y,c),K=ey(R),V=Sy(e,P,K);let ae=n?n(V,l):V;if(f&&fe(ae)&&(ae=Zm(ae)),__INTLIFY_PROD_DEVTOOLS__){const M={timestamp:Date.now(),key:fe(l)?l:Vt(w)?w.key:"",locale:b||(Vt(w)?w.locale:""),format:fe(w)?w:Vt(w)?w.source:"",message:ae};M.meta=Tt({},e.__meta,hy()||{}),ny(M)}return ae}function xy(e){st(e.list)?e.list=e.list.map(t=>fe(t)?Mc(t):t):Ue(e.named)&&Object.keys(e.named).forEach(t=>{fe(e.named[t])&&(e.named[t]=Mc(e.named[t]))})}function _u(e,t,o,n,a,r){const{messages:s,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,o);let p=Ze(),f,k=null;const S="translate";for(let _=0;_n;return c.locale=o,c.key=t,c}const l=s(n,$y(e,o,a,n,i,r));return l.locale=o,l.key=t,l.source=n,l}function Sy(e,t,o){return t(o)}function Ts(...e){const[t,o,n]=e,a=Ze();if(!fe(t)&&!ht(t)&&!Vt(t)&&!ho(t))throw mo(Qt.INVALID_ARGUMENT);const r=ht(t)?String(t):(Vt(t),t);return ht(o)?a.plural=o:fe(o)?a.default=o:Ce(o)&&!sr(o)?a.named=o:st(o)&&(a.list=o),ht(n)?a.plural=n:fe(n)?a.default=n:Ce(n)&&Tt(a,n),[r,a]}function $y(e,t,o,n,a,r){return{locale:t,key:o,warnHtmlMessage:a,onError:s=>{throw r&&r(s),s},onCacheKey:s=>Wm(t,o,s)}}function Ay(e,t,o,n){const{modifiers:a,pluralRules:r,messageResolver:s,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,f={locale:t,modifiers:a,pluralRules:r,messages:k=>{let S=s(o,k);if(S==null&&u){const[,,_]=_u(u,k,t,i,l,c);S=s(_,k)}if(fe(S)||ho(S)){let _=!1;const g=vu(e,k,t,S,k,()=>{_=!0});return _?bu:g}else return Vt(S)?S:bu}};return e.processor&&(f.processor=e.processor),n.list&&(f.list=n.list),n.named&&(f.named=n.named),ht(n.plural)&&(f.pluralIndex=n.plural),f}function ku(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:r,localeFallbacker:s}=e,{__datetimeFormatters:i}=e,[l,c,u,p]=Ps(...t),f=Re(u.missingWarn)?u.missingWarn:e.missingWarn;Re(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const k=!!u.part,S=Ss(e,u),_=s(e,a,S);if(!fe(l)||l==="")return new Intl.DateTimeFormat(S,p).format(c);let d={},g,b=null;const y="datetime format";for(let x=0;x<_.length&&(g=_[x],d=o[g]||{},b=d[l],!Ce(b));x++)Ls(e,l,g,f,y);if(!Ce(b)||!fe(g))return n?pr:l;let w=`${g}__${l}`;sr(p)||(w=`${w}__${JSON.stringify(p)}`);let $=i.get(w);return $||($=new Intl.DateTimeFormat(g,Tt({},b,p)),i.set(w,$)),k?$.formatToParts(c):$.format(c)}const wu=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function Ps(...e){const[t,o,n,a]=e,r=Ze();let s=Ze(),i;if(fe(t)){const l=t.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!l)throw mo(Qt.INVALID_ISO_DATE_ARGUMENT);const c=l[3]?l[3].trim().startsWith("T")?`${l[1].trim()}${l[3].trim()}`:`${l[1].trim()}T${l[3].trim()}`:l[1].trim();i=new Date(c);try{i.toISOString()}catch{throw mo(Qt.INVALID_ISO_DATE_ARGUMENT)}}else if(qm(t)){if(isNaN(t.getTime()))throw mo(Qt.INVALID_DATE_ARGUMENT);i=t}else if(ht(t))i=t;else throw mo(Qt.INVALID_ARGUMENT);return fe(o)?r.key=o:Ce(o)&&Object.keys(o).forEach(l=>{wu.includes(l)?s[l]=o[l]:r[l]=o[l]}),fe(n)?r.locale=n:Ce(n)&&(s=n),Ce(a)&&(s=a),[r.key||"",i,r,s]}function xu(e,t,o){const n=e;for(const a in o){const r=`${t}__${a}`;n.__datetimeFormatters.has(r)&&n.__datetimeFormatters.delete(r)}}function Su(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:r,localeFallbacker:s}=e,{__numberFormatters:i}=e,[l,c,u,p]=Ms(...t),f=Re(u.missingWarn)?u.missingWarn:e.missingWarn;Re(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const k=!!u.part,S=Ss(e,u),_=s(e,a,S);if(!fe(l)||l==="")return new Intl.NumberFormat(S,p).format(c);let d={},g,b=null;const y="number format";for(let x=0;x<_.length&&(g=_[x],d=o[g]||{},b=d[l],!Ce(b));x++)Ls(e,l,g,f,y);if(!Ce(b)||!fe(g))return n?pr:l;let w=`${g}__${l}`;sr(p)||(w=`${w}__${JSON.stringify(p)}`);let $=i.get(w);return $||($=new Intl.NumberFormat(g,Tt({},b,p)),i.set(w,$)),k?$.formatToParts(c):$.format(c)}const $u=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function Ms(...e){const[t,o,n,a]=e,r=Ze();let s=Ze();if(!ht(t))throw mo(Qt.INVALID_ARGUMENT);const i=t;return fe(o)?r.key=o:Ce(o)&&Object.keys(o).forEach(l=>{$u.includes(l)?s[l]=o[l]:r[l]=o[l]}),fe(n)?r.locale=n:Ce(n)&&(s=n),Ce(a)&&(s=a),[r.key||"",i,r,s]}function Au(e,t,o){const n=e;for(const a in o){const r=`${t}__${a}`;n.__numberFormatters.has(r)&&n.__numberFormatters.delete(r)}}Mb();/*! * vue-i18n v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */const Zb="9.14.5";function Xb(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(xo().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(xo().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(xo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(xo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(xo().__INTLIFY_PROD_DEVTOOLS__=!1)}const Qb=Tb.__EXTEND_POINT__,Ao=Za(Qb);Ao(),Ao(),Ao(),Ao(),Ao(),Ao(),Ao(),Ao(),Ao();const pu=Wt.__EXTEND_POINT__,Mt=Za(pu),pt={UNEXPECTED_RETURN_TYPE:pu,INVALID_ARGUMENT:Mt(),MUST_BE_CALL_SETUP_TOP:Mt(),NOT_INSTALLED:Mt(),NOT_AVAILABLE_IN_LEGACY_MODE:Mt(),REQUIRED_VALUE:Mt(),INVALID_VALUE:Mt(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Mt(),NOT_INSTALLED_WITH_PROVIDE:Mt(),UNEXPECTED_ERROR:Mt(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Mt(),BRIDGE_SUPPORT_VUE_2_ONLY:Mt(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Mt(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Mt(),__EXTEND_POINT__:Mt()};function ft(e,...t){return mn(e,null,void 0)}const ws=Mo("__translateVNode"),xs=Mo("__datetimeParts"),Ss=Mo("__numberParts"),gu=Mo("__setPluralRules"),fu=Mo("__injectWithOption"),As=Mo("__dispose");function oa(e){if(!Ie(e)||so(e))return e;for(const t in e)if(Ht(e,t))if(!t.includes("."))Ie(e[t])&&oa(e[t]);else{const o=t.split("."),n=o.length-1;let a=e,r=!1;for(let s=0;s{if("locale"in i&&"resource"in i){const{locale:l,resource:c}=i;l?(s[l]=s[l]||Ue(),Qa(c,s[l])):Qa(c,s)}else pe(i)&&Qa(JSON.parse(i),s)}),a==null&&r)for(const i in s)Ht(s,i)&&oa(s[i]);return s}function hu(e){return e.type}function mu(e,t,o){let n=Ie(t.messages)?t.messages:Ue();"__i18nGlobal"in o&&(n=nr(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(r=>{e.mergeLocaleMessage(r,n[r])});{if(Ie(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach(s=>{e.mergeDateTimeFormat(s,t.datetimeFormats[s])})}if(Ie(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach(s=>{e.mergeNumberFormat(s,t.numberFormats[s])})}}}function bu(e){return Ge(Hn,null,e,0)}const yu="__INTLIFY_META__",_u=()=>[],ey=()=>!1;let vu=0;function ku(e){return(t,o,n,a)=>e(o,n,ko()||void 0,a)}const ty=()=>{const e=ko();let t=null;return e&&(t=hu(e)[yu])?{[yu]:t}:null};function $s(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,r=e.flatJson,s=qa?ce:an,i=!!e.translateExistCompatible;let l=Pe(e.inheritLocale)?e.inheritLocale:!0;const c=s(o&&l?o.locale.value:pe(e.locale)?e.locale:_n),u=s(o&&l?o.fallbackLocale.value:pe(e.fallbackLocale)||Xe(e.fallbackLocale)||Ae(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),p=s(nr(c.value,e)),g=s(Ae(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),k=s(Ae(e.numberFormats)?e.numberFormats:{[c.value]:{}});let w=o?o.missingWarn:Pe(e.missingWarn)||No(e.missingWarn)?e.missingWarn:!0,_=o?o.fallbackWarn:Pe(e.fallbackWarn)||No(e.fallbackWarn)?e.fallbackWarn:!0,d=o?o.fallbackRoot:Pe(e.fallbackRoot)?e.fallbackRoot:!0,h=!!e.fallbackFormat,y=Ye(e.missing)?e.missing:null,v=Ye(e.missing)?ku(e.missing):null,b=Ye(e.postTranslation)?e.postTranslation:null,x=o?o.warnHtmlMessage:Pe(e.warnHtmlMessage)?e.warnHtmlMessage:!0,A=!!e.escapeParameter;const L=o?o.modifiers:Ae(e.modifiers)?e.modifiers:{};let M=e.pluralRules||o&&o.pluralRules,P;P=(()=>{a&&Zc(null);const U={version:Zb,locale:c.value,fallbackLocale:u.value,messages:p.value,modifiers:L,pluralRules:M,missing:v===null?void 0:v,missingWarn:w,fallbackWarn:_,fallbackFormat:h,unresolving:!0,postTranslation:b===null?void 0:b,warnHtmlMessage:x,escapeParameter:A,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};U.datetimeFormats=g.value,U.numberFormats=k.value,U.__datetimeFormatters=Ae(P)?P.__datetimeFormatters:void 0,U.__numberFormatters=Ae(P)?P.__numberFormatters:void 0;const S=Gb(U);return a&&Zc(S),S})(),ta(P,c.value,u.value);function B(){return[c.value,u.value,p.value,g.value,k.value]}const H=Z({get:()=>c.value,set:U=>{c.value=U,P.locale=c.value}}),O=Z({get:()=>u.value,set:U=>{u.value=U,P.fallbackLocale=u.value,ta(P,c.value,U)}}),R=Z(()=>p.value),G=Z(()=>g.value),F=Z(()=>k.value);function C(){return Ye(b)?b:null}function re(U){b=U,P.postTranslation=U}function _e(){return y}function ne(U){U!==null&&(v=ku(U)),y=U,P.missing=v}const ge=(U,S,D,oe,le,he)=>{B();let $e;try{__INTLIFY_PROD_DEVTOOLS__,a||(P.fallbackContext=o?jb():void 0),$e=U(P)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(P.fallbackContext=void 0)}if(D!=="translate exists"&&st($e)&&$e===or||D==="translate exists"&&!$e){const[ve,ct]=S();return o&&d?oe(o):le(ve)}else{if(he($e))return $e;throw ft(pt.UNEXPECTED_RETURN_TYPE)}};function fe(...U){return ge(S=>Reflect.apply(nu,null,[S,...U]),()=>_s(...U),"translate",S=>Reflect.apply(S.t,S,[...U]),S=>S,S=>pe(S))}function de(...U){const[S,D,oe]=U;if(oe&&!Ie(oe))throw ft(pt.INVALID_ARGUMENT);return fe(S,D,kt({resolvedMessage:!0},oe||{}))}function Ke(...U){return ge(S=>Reflect.apply(su,null,[S,...U]),()=>vs(...U),"datetime format",S=>Reflect.apply(S.d,S,[...U]),()=>Kc,S=>pe(S))}function Fe(...U){return ge(S=>Reflect.apply(cu,null,[S,...U]),()=>ks(...U),"number format",S=>Reflect.apply(S.n,S,[...U]),()=>Kc,S=>pe(S))}function Qe(U){return U.map(S=>pe(S)||st(S)||Pe(S)?bu(String(S)):S)}const He={normalize:Qe,interpolate:U=>U,type:"vnode"};function it(...U){return ge(S=>{let D;const oe=S;try{oe.processor=He,D=Reflect.apply(nu,null,[oe,...U])}finally{oe.processor=null}return D},()=>_s(...U),"translate",S=>S[ws](...U),S=>[bu(S)],S=>Xe(S))}function qe(...U){return ge(S=>Reflect.apply(cu,null,[S,...U]),()=>ks(...U),"number format",S=>S[Ss](...U),_u,S=>pe(S)||Xe(S))}function $t(...U){return ge(S=>Reflect.apply(su,null,[S,...U]),()=>vs(...U),"datetime format",S=>S[xs](...U),_u,S=>pe(S)||Xe(S))}function $(U){M=U,P.pluralRules=M}function N(U,S){return ge(()=>{if(!U)return!1;const D=pe(S)?S:c.value,oe=Y(D),le=P.messageResolver(oe,U);return i?le!=null:so(le)||Gt(le)||pe(le)},()=>[U],"translate exists",D=>Reflect.apply(D.te,D,[U,S]),ey,D=>Pe(D))}function E(U){let S=null;const D=Gc(P,u.value,c.value);for(let oe=0;oe{l&&(c.value=U,P.locale=U,ta(P,c.value,u.value))}),tt(o.fallbackLocale,U=>{l&&(u.value=U,P.fallbackLocale=U,ta(P,c.value,u.value))}));const ae={id:vu,locale:H,fallbackLocale:O,get inheritLocale(){return l},set inheritLocale(U){l=U,U&&o&&(c.value=o.locale.value,u.value=o.fallbackLocale.value,ta(P,c.value,u.value))},get availableLocales(){return Object.keys(p.value).sort()},messages:R,get modifiers(){return L},get pluralRules(){return M||{}},get isGlobal(){return a},get missingWarn(){return w},set missingWarn(U){w=U,P.missingWarn=w},get fallbackWarn(){return _},set fallbackWarn(U){_=U,P.fallbackWarn=_},get fallbackRoot(){return d},set fallbackRoot(U){d=U},get fallbackFormat(){return h},set fallbackFormat(U){h=U,P.fallbackFormat=h},get warnHtmlMessage(){return x},set warnHtmlMessage(U){x=U,P.warnHtmlMessage=U},get escapeParameter(){return A},set escapeParameter(U){A=U,P.escapeParameter=U},t:fe,getLocaleMessage:Y,setLocaleMessage:X,mergeLocaleMessage:Q,getPostTranslationHandler:C,setPostTranslationHandler:re,getMissingHandler:_e,setMissingHandler:ne,[gu]:$};return ae.datetimeFormats=G,ae.numberFormats=F,ae.rt=de,ae.te=N,ae.tm=K,ae.d=Ke,ae.n=Fe,ae.getDateTimeFormat=q,ae.setDateTimeFormat=f,ae.mergeDateTimeFormat=m,ae.getNumberFormat=j,ae.setNumberFormat=V,ae.mergeNumberFormat=se,ae[fu]=n,ae[ws]=it,ae[xs]=$t,ae[Ss]=qe,ae}function oy(e){const t=pe(e.locale)?e.locale:_n,o=pe(e.fallbackLocale)||Xe(e.fallbackLocale)||Ae(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=Ye(e.missing)?e.missing:void 0,a=Pe(e.silentTranslationWarn)||No(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,r=Pe(e.silentFallbackWarn)||No(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,s=Pe(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=Ae(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=Ye(e.postTranslation)?e.postTranslation:void 0,p=pe(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,g=!!e.escapeParameterHtml,k=Pe(e.sync)?e.sync:!0;let w=e.messages;if(Ae(e.sharedMessages)){const A=e.sharedMessages;w=Object.keys(A).reduce((M,P)=>{const I=M[P]||(M[P]={});return kt(I,A[P]),M},w||{})}const{__i18n:_,__root:d,__injectWithOption:h}=e,y=e.datetimeFormats,v=e.numberFormats,b=e.flatJson,x=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:w,flatJson:b,datetimeFormats:y,numberFormats:v,missing:n,missingWarn:a,fallbackWarn:r,fallbackRoot:s,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:p,escapeParameter:g,messageResolver:e.messageResolver,inheritLocale:k,translateExistCompatible:x,__i18n:_,__root:d,__injectWithOption:h}}function Ls(e={},t){{const o=$s(oy(e)),{__extender:n}=e,a={id:o.id,get locale(){return o.locale.value},set locale(r){o.locale.value=r},get fallbackLocale(){return o.fallbackLocale.value},set fallbackLocale(r){o.fallbackLocale.value=r},get messages(){return o.messages.value},get datetimeFormats(){return o.datetimeFormats.value},get numberFormats(){return o.numberFormats.value},get availableLocales(){return o.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(r){},get missing(){return o.getMissingHandler()},set missing(r){o.setMissingHandler(r)},get silentTranslationWarn(){return Pe(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(r){o.missingWarn=Pe(r)?!r:r},get silentFallbackWarn(){return Pe(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(r){o.fallbackWarn=Pe(r)?!r:r},get modifiers(){return o.modifiers},get formatFallbackMessages(){return o.fallbackFormat},set formatFallbackMessages(r){o.fallbackFormat=r},get postTranslation(){return o.getPostTranslationHandler()},set postTranslation(r){o.setPostTranslationHandler(r)},get sync(){return o.inheritLocale},set sync(r){o.inheritLocale=r},get warnHtmlInMessage(){return o.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(r){o.warnHtmlMessage=r!=="off"},get escapeParameterHtml(){return o.escapeParameter},set escapeParameterHtml(r){o.escapeParameter=r},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(r){},get pluralizationRules(){return o.pluralRules||{}},__composer:o,t(...r){const[s,i,l]=r,c={};let u=null,p=null;if(!pe(s))throw ft(pt.INVALID_ARGUMENT);const g=s;return pe(i)?c.locale=i:Xe(i)?u=i:Ae(i)&&(p=i),Xe(l)?u=l:Ae(l)&&(p=l),Reflect.apply(o.t,o,[g,u||p||{},c])},rt(...r){return Reflect.apply(o.rt,o,[...r])},tc(...r){const[s,i,l]=r,c={plural:1};let u=null,p=null;if(!pe(s))throw ft(pt.INVALID_ARGUMENT);const g=s;return pe(i)?c.locale=i:st(i)?c.plural=i:Xe(i)?u=i:Ae(i)&&(p=i),pe(l)?c.locale=l:Xe(l)?u=l:Ae(l)&&(p=l),Reflect.apply(o.t,o,[g,u||p||{},c])},te(r,s){return o.te(r,s)},tm(r){return o.tm(r)},getLocaleMessage(r){return o.getLocaleMessage(r)},setLocaleMessage(r,s){o.setLocaleMessage(r,s)},mergeLocaleMessage(r,s){o.mergeLocaleMessage(r,s)},d(...r){return Reflect.apply(o.d,o,[...r])},getDateTimeFormat(r){return o.getDateTimeFormat(r)},setDateTimeFormat(r,s){o.setDateTimeFormat(r,s)},mergeDateTimeFormat(r,s){o.mergeDateTimeFormat(r,s)},n(...r){return Reflect.apply(o.n,o,[...r])},getNumberFormat(r){return o.getNumberFormat(r)},setNumberFormat(r,s){o.setNumberFormat(r,s)},mergeNumberFormat(r,s){o.mergeNumberFormat(r,s)},getChoiceIndex(r,s){return-1}};return a.__extender=n,a}}const Cs={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function ny({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===Ce?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},Ue())}function wu(e){return Ce}const xu=Gn({name:"i18n-t",props:kt({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>st(e)||!isNaN(e)}},Cs),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||wt({useScope:e.scope,__useComponent:!0});return()=>{const r=Object.keys(o).filter(p=>p!=="_"),s=Ue();e.locale&&(s.locale=e.locale),e.plural!==void 0&&(s.plural=pe(e.plural)?+e.plural:e.plural);const i=ny(t,r),l=a[ws](e.keypath,i,s),c=kt(Ue(),n),u=pe(e.tag)||Ie(e.tag)?e.tag:wu();return zl(u,c,l)}}});function ay(e){return Xe(e)&&!pe(e[0])}function Su(e,t,o,n){const{slots:a,attrs:r}=t;return()=>{const s={part:!0};let i=Ue();e.locale&&(s.locale=e.locale),pe(e.format)?s.key=e.format:Ie(e.format)&&(pe(e.format.key)&&(s.key=e.format.key),i=Object.keys(e.format).reduce((g,k)=>o.includes(k)?kt(Ue(),g,{[k]:e.format[k]}):g,Ue()));const l=n(e.value,s,i);let c=[s.key];Xe(l)?c=l.map((g,k)=>{const w=a[g.type],_=w?w({[g.type]:g.value,index:k,parts:l}):[g.value];return ay(_)&&(_[0].key=`${g.type}-${k}`),_}):pe(l)&&(c=[l]);const u=kt(Ue(),r),p=pe(e.tag)||Ie(e.tag)?e.tag:wu();return zl(p,u,c)}}const Au=Gn({name:"i18n-n",props:kt({value:{type:Number,required:!0},format:{type:[String,Object]}},Cs),setup(e,t){const o=e.i18n||wt({useScope:e.scope,__useComponent:!0});return Su(e,t,uu,(...n)=>o[Ss](...n))}}),$u=Gn({name:"i18n-d",props:kt({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Cs),setup(e,t){const o=e.i18n||wt({useScope:e.scope,__useComponent:!0});return Su(e,t,iu,(...n)=>o[xs](...n))}});function ry(e,t){const o=e;if(e.mode==="composition")return o.__getInstance(t)||e.global;{const n=o.__getInstance(t);return n!=null?n.__composer:e.global.__composer}}function sy(e){const t=s=>{const{instance:i,modifiers:l,value:c}=s;if(!i||!i.$)throw ft(pt.UNEXPECTED_ERROR);const u=ry(e,i.$),p=Lu(c);return[Reflect.apply(u.t,u,[...Cu(p)]),u]};return{created:(s,i)=>{const[l,c]=t(i);qa&&e.global===c&&(s.__i18nWatcher=tt(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),s.__composer=c,s.textContent=l},unmounted:s=>{qa&&s.__i18nWatcher&&(s.__i18nWatcher(),s.__i18nWatcher=void 0,delete s.__i18nWatcher),s.__composer&&(s.__composer=void 0,delete s.__composer)},beforeUpdate:(s,{value:i})=>{if(s.__composer){const l=s.__composer,c=Lu(i);s.textContent=Reflect.apply(l.t,l,[...Cu(c)])}},getSSRProps:s=>{const[i]=t(s);return{textContent:i}}}}function Lu(e){if(pe(e))return{path:e};if(Ae(e)){if(!("path"in e))throw ft(pt.REQUIRED_VALUE,"path");return e}else throw ft(pt.INVALID_VALUE)}function Cu(e){const{path:t,locale:o,args:n,choice:a,plural:r}=e,s={},i=n||{};return pe(o)&&(s.locale=o),st(a)&&(s.plural=a),st(r)&&(s.plural=r),[t,i,s]}function iy(e,t,...o){const n=Ae(o[0])?o[0]:{},a=!!n.useI18nComponentName;(Pe(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":xu.name,"I18nT"].forEach(s=>e.component(s,xu)),[Au.name,"I18nN"].forEach(s=>e.component(s,Au)),[$u.name,"I18nD"].forEach(s=>e.component(s,$u))),e.directive("t",sy(t))}function ly(e,t,o){return{beforeCreate(){const n=ko();if(!n)throw ft(pt.UNEXPECTED_ERROR);const a=this.$options;if(a.i18n){const r=a.i18n;if(a.__i18n&&(r.__i18n=a.__i18n),r.__root=t,this===this.$root)this.$i18n=Eu(e,r);else{r.__injectWithOption=!0,r.__extender=o.__vueI18nExtend,this.$i18n=Ls(r);const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=Eu(e,a);else{this.$i18n=Ls({__i18n:a.__i18n,__injectWithOption:!0,__extender:o.__vueI18nExtend,__root:t});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=e;a.__i18nGlobal&&mu(t,a,a),this.$t=(...r)=>this.$i18n.t(...r),this.$rt=(...r)=>this.$i18n.rt(...r),this.$tc=(...r)=>this.$i18n.tc(...r),this.$te=(r,s)=>this.$i18n.te(r,s),this.$d=(...r)=>this.$i18n.d(...r),this.$n=(...r)=>this.$i18n.n(...r),this.$tm=r=>this.$i18n.tm(r),o.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=ko();if(!n)throw ft(pt.UNEXPECTED_ERROR);const a=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,a.__disposer&&(a.__disposer(),delete a.__disposer,delete a.__extender),o.__deleteInstance(n),delete this.$i18n}}}function Eu(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[gu](t.pluralizationRules||e.pluralizationRules);const o=nr(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(o).forEach(n=>e.mergeLocaleMessage(n,o[n])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(n=>e.mergeDateTimeFormat(n,t.datetimeFormats[n])),t.numberFormats&&Object.keys(t.numberFormats).forEach(n=>e.mergeNumberFormat(n,t.numberFormats[n])),e}const cy=Mo("global-vue-i18n");function uy(e={},t){const o=__VUE_I18N_LEGACY_API__&&Pe(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=Pe(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,r=new Map,[s,i]=dy(e,o),l=Mo("");function c(g){return r.get(g)||null}function u(g,k){r.set(g,k)}function p(g){r.delete(g)}{const g={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(k,...w){if(k.__VUE_I18N_SYMBOL__=l,k.provide(k.__VUE_I18N_SYMBOL__,g),Ae(w[0])){const h=w[0];g.__composerExtend=h.__composerExtend,g.__vueI18nExtend=h.__vueI18nExtend}let _=null;!o&&n&&(_=vy(k,g.global)),__VUE_I18N_FULL_INSTALL__&&iy(k,g,...w),__VUE_I18N_LEGACY_API__&&o&&k.mixin(ly(i,i.__composer,g));const d=k.unmount;k.unmount=()=>{_&&_(),g.dispose(),d()}},get global(){return i},dispose(){s.stop()},__instances:r,__getInstance:c,__setInstance:u,__deleteInstance:p};return g}}function wt(e={}){const t=ko();if(t==null)throw ft(pt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw ft(pt.NOT_INSTALLED);const o=py(t),n=fy(o),a=hu(t),r=gy(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw ft(pt.NOT_AVAILABLE_IN_LEGACY_MODE);return yy(t,r,n,e)}if(r==="global")return mu(n,e,a),n;if(r==="parent"){let l=hy(o,t,e.__useComponent);return l==null&&(l=n),l}const s=o;let i=s.__getInstance(t);if(i==null){const l=kt({},e);"__i18n"in a&&(l.__i18n=a.__i18n),n&&(l.__root=n),i=$s(l),s.__composerExtend&&(i[As]=s.__composerExtend(i)),by(s,t,i),s.__setInstance(t,i)}return i}function dy(e,t,o){const n=kr();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>Ls(e)):n.run(()=>$s(e));if(a==null)throw ft(pt.UNEXPECTED_ERROR);return[n,a]}}function py(e){{const t=Te(e.isCE?cy:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw ft(e.isCE?pt.NOT_INSTALLED_WITH_PROVIDE:pt.UNEXPECTED_ERROR);return t}}function gy(e,t){return Ja(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function fy(e){return e.mode==="composition"?e.global:e.global.__composer}function hy(e,t,o=!1){let n=null;const a=t.root;let r=my(t,o);for(;r!=null;){const s=e;if(e.mode==="composition")n=s.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const i=s.__getInstance(r);i!=null&&(n=i.__composer,o&&n&&!n[fu]&&(n=null))}if(n!=null||a===r)break;r=r.parent}return n}function my(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function by(e,t,o){to(()=>{},t),Oa(()=>{const n=o;e.__deleteInstance(t);const a=n[As];a&&(a(),delete n[As])},t)}function yy(e,t,o,n={}){const a=t==="local",r=an(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw ft(pt.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const s=Pe(n.inheritLocale)?n.inheritLocale:!pe(n.locale),i=ce(!a||s?o.locale.value:pe(n.locale)?n.locale:_n),l=ce(!a||s?o.fallbackLocale.value:pe(n.fallbackLocale)||Xe(n.fallbackLocale)||Ae(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),c=ce(nr(i.value,n)),u=ce(Ae(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),p=ce(Ae(n.numberFormats)?n.numberFormats:{[i.value]:{}}),g=a?o.missingWarn:Pe(n.missingWarn)||No(n.missingWarn)?n.missingWarn:!0,k=a?o.fallbackWarn:Pe(n.fallbackWarn)||No(n.fallbackWarn)?n.fallbackWarn:!0,w=a?o.fallbackRoot:Pe(n.fallbackRoot)?n.fallbackRoot:!0,_=!!n.fallbackFormat,d=Ye(n.missing)?n.missing:null,h=Ye(n.postTranslation)?n.postTranslation:null,y=a?o.warnHtmlMessage:Pe(n.warnHtmlMessage)?n.warnHtmlMessage:!0,v=!!n.escapeParameter,b=a?o.modifiers:Ae(n.modifiers)?n.modifiers:{},x=n.pluralRules||a&&o.pluralRules;function A(){return[i.value,l.value,c.value,u.value,p.value]}const L=Z({get:()=>r.value?r.value.locale.value:i.value,set:E=>{r.value&&(r.value.locale.value=E),i.value=E}}),M=Z({get:()=>r.value?r.value.fallbackLocale.value:l.value,set:E=>{r.value&&(r.value.fallbackLocale.value=E),l.value=E}}),P=Z(()=>r.value?r.value.messages.value:c.value),I=Z(()=>u.value),B=Z(()=>p.value);function H(){return r.value?r.value.getPostTranslationHandler():h}function O(E){r.value&&r.value.setPostTranslationHandler(E)}function R(){return r.value?r.value.getMissingHandler():d}function G(E){r.value&&r.value.setMissingHandler(E)}function F(E){return A(),E()}function C(...E){return r.value?F(()=>Reflect.apply(r.value.t,null,[...E])):F(()=>"")}function re(...E){return r.value?Reflect.apply(r.value.rt,null,[...E]):""}function _e(...E){return r.value?F(()=>Reflect.apply(r.value.d,null,[...E])):F(()=>"")}function ne(...E){return r.value?F(()=>Reflect.apply(r.value.n,null,[...E])):F(()=>"")}function ge(E){return r.value?r.value.tm(E):{}}function fe(E,K){return r.value?r.value.te(E,K):!1}function de(E){return r.value?r.value.getLocaleMessage(E):{}}function Ke(E,K){r.value&&(r.value.setLocaleMessage(E,K),c.value[E]=K)}function Fe(E,K){r.value&&r.value.mergeLocaleMessage(E,K)}function Qe(E){return r.value?r.value.getDateTimeFormat(E):{}}function mt(E,K){r.value&&(r.value.setDateTimeFormat(E,K),u.value[E]=K)}function He(E,K){r.value&&r.value.mergeDateTimeFormat(E,K)}function it(E){return r.value?r.value.getNumberFormat(E):{}}function qe(E,K){r.value&&(r.value.setNumberFormat(E,K),p.value[E]=K)}function $t(E,K){r.value&&r.value.mergeNumberFormat(E,K)}const $={get id(){return r.value?r.value.id:-1},locale:L,fallbackLocale:M,messages:P,datetimeFormats:I,numberFormats:B,get inheritLocale(){return r.value?r.value.inheritLocale:s},set inheritLocale(E){r.value&&(r.value.inheritLocale=E)},get availableLocales(){return r.value?r.value.availableLocales:Object.keys(c.value)},get modifiers(){return r.value?r.value.modifiers:b},get pluralRules(){return r.value?r.value.pluralRules:x},get isGlobal(){return r.value?r.value.isGlobal:!1},get missingWarn(){return r.value?r.value.missingWarn:g},set missingWarn(E){r.value&&(r.value.missingWarn=E)},get fallbackWarn(){return r.value?r.value.fallbackWarn:k},set fallbackWarn(E){r.value&&(r.value.missingWarn=E)},get fallbackRoot(){return r.value?r.value.fallbackRoot:w},set fallbackRoot(E){r.value&&(r.value.fallbackRoot=E)},get fallbackFormat(){return r.value?r.value.fallbackFormat:_},set fallbackFormat(E){r.value&&(r.value.fallbackFormat=E)},get warnHtmlMessage(){return r.value?r.value.warnHtmlMessage:y},set warnHtmlMessage(E){r.value&&(r.value.warnHtmlMessage=E)},get escapeParameter(){return r.value?r.value.escapeParameter:v},set escapeParameter(E){r.value&&(r.value.escapeParameter=E)},t:C,getPostTranslationHandler:H,setPostTranslationHandler:O,getMissingHandler:R,setMissingHandler:G,rt:re,d:_e,n:ne,tm:ge,te:fe,getLocaleMessage:de,setLocaleMessage:Ke,mergeLocaleMessage:Fe,getDateTimeFormat:Qe,setDateTimeFormat:mt,mergeDateTimeFormat:He,getNumberFormat:it,setNumberFormat:qe,mergeNumberFormat:$t};function N(E){E.locale.value=i.value,E.fallbackLocale.value=l.value,Object.keys(c.value).forEach(K=>{E.mergeLocaleMessage(K,c.value[K])}),Object.keys(u.value).forEach(K=>{E.mergeDateTimeFormat(K,u.value[K])}),Object.keys(p.value).forEach(K=>{E.mergeNumberFormat(K,p.value[K])}),E.escapeParameter=v,E.fallbackFormat=_,E.fallbackRoot=w,E.fallbackWarn=k,E.missingWarn=g,E.warnHtmlMessage=y}return il(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw ft(pt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const E=r.value=e.proxy.$i18n.__composer;t==="global"?(i.value=E.locale.value,l.value=E.fallbackLocale.value,c.value=E.messages.value,u.value=E.datetimeFormats.value,p.value=E.numberFormats.value):a&&N(E)}),$}const _y=["locale","fallbackLocale","availableLocales"],Tu=["t","rt","d","n","tm","te"];function vy(e,t){const o=Object.create(null);return _y.forEach(a=>{const r=Object.getOwnPropertyDescriptor(t,a);if(!r)throw ft(pt.UNEXPECTED_ERROR);const s=Ze(r.value)?{get(){return r.value.value},set(i){r.value.value=i}}:{get(){return r.get&&r.get()}};Object.defineProperty(o,a,s)}),e.config.globalProperties.$i18n=o,Tu.forEach(a=>{const r=Object.getOwnPropertyDescriptor(t,a);if(!r||!r.value)throw ft(pt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,r)}),()=>{delete e.config.globalProperties.$i18n,Tu.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(Xb(),__INTLIFY_JIT_COMPILATION__?Vc(Vb):Vc(Hb),Fb(mb),Ob(Gc),__INTLIFY_PROD_DEVTOOLS__){const e=xo();e.__INTLIFY__=!0,Ab(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const ky=Object.assign({"./locales/ar/aria.json":Lf,"./locales/ar/buttons.json":Cf,"./locales/ar/detail.json":Ef,"./locales/ar/legend.json":Tf,"./locales/ar/messages.json":Pf,"./locales/ar/options.json":Mf,"./locales/ar/prayerLaps.json":Nf,"./locales/ar/search.json":If,"./locales/ar/tabs.json":Rf,"./locales/de/aria.json":Ff,"./locales/de/buttons.json":Of,"./locales/de/detail.json":Df,"./locales/de/legend.json":Bf,"./locales/de/messages.json":jf,"./locales/de/options.json":Gf,"./locales/de/prayerLaps.json":Uf,"./locales/de/search.json":Kf,"./locales/de/tabs.json":zf,"./locales/en/aria.json":Hf,"./locales/en/buttons.json":Vf,"./locales/en/detail.json":Wf,"./locales/en/legend.json":Yf,"./locales/en/messages.json":qf,"./locales/en/options.json":Jf,"./locales/en/popup.json":Zf,"./locales/en/prayerLaps.json":Xf,"./locales/en/search.json":Qf,"./locales/en/tabs.json":eh,"./locales/es/aria.json":th,"./locales/es/buttons.json":oh,"./locales/es/detail.json":nh,"./locales/es/legend.json":ah,"./locales/es/messages.json":rh,"./locales/es/options.json":sh,"./locales/es/prayerLaps.json":ih,"./locales/es/search.json":lh,"./locales/es/tabs.json":ch,"./locales/fr/aria.json":uh,"./locales/fr/buttons.json":dh,"./locales/fr/detail.json":ph,"./locales/fr/legend.json":gh,"./locales/fr/messages.json":fh,"./locales/fr/options.json":hh,"./locales/fr/popup.json":mh,"./locales/fr/prayerLaps.json":bh,"./locales/fr/search.json":yh,"./locales/fr/tabs.json":_h,"./locales/hi/aria.json":vh,"./locales/hi/buttons.json":kh,"./locales/hi/detail.json":wh,"./locales/hi/legend.json":xh,"./locales/hi/messages.json":Sh,"./locales/hi/options.json":Ah,"./locales/hi/prayerLaps.json":$h,"./locales/hi/search.json":Lh,"./locales/it/aria.json":Ch,"./locales/it/buttons.json":Eh,"./locales/it/detail.json":Th,"./locales/it/legend.json":Ph,"./locales/it/messages.json":Mh,"./locales/it/options.json":Nh,"./locales/it/prayerLaps.json":Ih,"./locales/it/search.json":Rh,"./locales/pt/aria.json":Fh,"./locales/pt/buttons.json":Oh,"./locales/pt/detail.json":Dh,"./locales/pt/legend.json":Bh,"./locales/pt/messages.json":jh,"./locales/pt/options.json":Gh,"./locales/pt/prayerLaps.json":Uh,"./locales/pt/search.json":Kh,"./locales/pt/tabs.json":zh,"./locales/ro/aria.json":Hh,"./locales/ro/buttons.json":Vh,"./locales/ro/detail.json":Wh,"./locales/ro/legend.json":Yh,"./locales/ro/messages.json":qh,"./locales/ro/options.json":Jh,"./locales/ro/prayerLaps.json":Zh,"./locales/ro/search.json":Xh,"./locales/ru/aria.json":Qh,"./locales/ru/buttons.json":em,"./locales/ru/detail.json":tm,"./locales/ru/legend.json":om,"./locales/ru/messages.json":nm,"./locales/ru/options.json":am,"./locales/ru/prayerLaps.json":rm,"./locales/ru/search.json":sm,"./locales/ru/tabs.json":im,"./locales/zh/aria.json":lm,"./locales/zh/buttons.json":cm,"./locales/zh/detail.json":um,"./locales/zh/legend.json":dm,"./locales/zh/messages.json":pm,"./locales/zh/options.json":gm,"./locales/zh/prayerLaps.json":fm,"./locales/zh/search.json":hm}),na={};for(const[e,t]of Object.entries(ky)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;na[n]??(na[n]={}),na[n][a]=t}const Pu=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"];function wy(){var o;const t=(((o=document==null?void 0:document.documentElement)==null?void 0:o.lang)||"").split("-")[0].toLowerCase();return Pu.includes(t)?t:"en"}function xy(){return uy({legacy:!1,globalInjection:!0,locale:wy(),fallbackLocale:"en",messages:na,missingWarn:!1,fallbackWarn:!1})}function ht(e,t){const o=t||Sy(e);to(()=>{var i;const n=ko();if(!n)return;const a=(i=n.proxy)==null?void 0:i.$el;if(!a)return;const r=a.getRootNode();if(!(r instanceof ShadowRoot)||r.querySelector(`style[data-shadow-styles="${o}"]`))return;const s=document.createElement("style");s.setAttribute("data-shadow-styles",o),s.textContent=e,r.appendChild(s)})}function Sy(e){let t=0;for(let o=0;o(t==null?void 0:t.theme)==="dark"),a=Z(()=>{var d;return((d=o==null?void 0:o.value)==null?void 0:d.pinHintLabel)||"Tap a coloured dot — someone still needs prayer"}),r=ce(!1),s=ce(null);let i=null,l=null,c=null,u=null,p=null;function g(){r.value=!1}function k(d,h){var v;let y=d==null?void 0:d.parentElement;for(let b=0;y&&b<12;b++,y=y.parentElement){if(y===h||(v=y.classList)!=null&&v.contains("profile-loader"))return null;let x="";try{x=getComputedStyle(y).position}catch{}if(x&&x!=="static"){const A=y.getBoundingClientRect();if(A.height>=120&&A.width>=160)return y}}return null}function w(){const d=s.value;if(d)try{d.style.removeProperty("--pin-hint-lift");const h=d.getBoundingClientRect();if(!h.height)return;const y=Math.round(h.bottom-window.innerHeight);y>0&&d.style.setProperty("--pin-hint-lift",y+8+"px")}catch{}}function _(d){const h=s.value;if(!h||!(d!=null&&d.querySelector))return;let y=0;try{const b=d.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(b){const x=b.getBoundingClientRect(),A=h.parentElement,L=A?A.getBoundingClientRect():null;if(y=L?Math.max(x.height||0,L.bottom-x.top):x.height||0,p!==b&&typeof ResizeObserver<"u"){if(c)try{c.disconnect()}catch{}p=b,c=new ResizeObserver(()=>_(d)),c.observe(b)}}}catch{}const v=Math.min(Math.max(Math.ceil(y)||20,20),72);h.style.setProperty("--pin-hint-attrib-clear",v+"px"),w()}return to(()=>{var v,b,x;const d=ko(),h=(x=(b=(v=d==null?void 0:d.proxy)==null?void 0:v.$el)==null?void 0:b.getRootNode)==null?void 0:x.call(b);if(!h||typeof h.querySelector!="function")return;let y=0;i=setInterval(()=>{y++;const A=h.querySelector("canvas");A?(clearInterval(i),i=null,r.value=!0,bo(()=>{const L=k(A,h),M=s.value;if(L&&M&&M.parentElement!==L)try{L.appendChild(M),l=L}catch{}_(h),w();try{const P=s.value&&s.value.offsetParent||null;if(P&&typeof ResizeObserver<"u"){if(u)try{u.disconnect()}catch{}u=new ResizeObserver(()=>w()),u.observe(P)}}catch{}})):y>40&&(clearInterval(i),i=null)},300)}),oo(()=>{var d;if(i&&clearInterval(i),c){try{c.disconnect()}catch{}c=null}if(p=null,u){try{u.disconnect()}catch{}u=null}if(l&&((d=s.value)==null?void 0:d.parentElement)===l)try{l.removeChild(s.value)}catch{}l=null}),ht(` + */const Ly="9.14.5";function Ey(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Eo().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Eo().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Eo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Eo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Eo().__INTLIFY_PROD_DEVTOOLS__=!1)}const Cy=sy.__EXTEND_POINT__,To=ir(Cy);To(),To(),To(),To(),To(),To(),To(),To(),To();const Lu=Qt.__EXTEND_POINT__,Dt=ir(Lu),yt={UNEXPECTED_RETURN_TYPE:Lu,INVALID_ARGUMENT:Dt(),MUST_BE_CALL_SETUP_TOP:Dt(),NOT_INSTALLED:Dt(),NOT_AVAILABLE_IN_LEGACY_MODE:Dt(),REQUIRED_VALUE:Dt(),INVALID_VALUE:Dt(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Dt(),NOT_INSTALLED_WITH_PROVIDE:Dt(),UNEXPECTED_ERROR:Dt(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Dt(),BRIDGE_SUPPORT_VUE_2_ONLY:Dt(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Dt(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Dt(),__EXTEND_POINT__:Dt()};function wt(e,...t){return xn(e,null,void 0)}const Ns=Do("__translateVNode"),Is=Do("__datetimeParts"),Rs=Do("__numberParts"),Eu=Do("__setPluralRules"),Cu=Do("__injectWithOption"),Fs=Do("__dispose");function la(e){if(!Ue(e)||ho(e))return e;for(const t in e)if(Zt(e,t))if(!t.includes("."))Ue(e[t])&&la(e[t]);else{const o=t.split("."),n=o.length-1;let a=e,r=!1;for(let s=0;s{if("locale"in i&&"resource"in i){const{locale:l,resource:c}=i;l?(s[l]=s[l]||Ze(),cr(c,s[l])):cr(c,s)}else fe(i)&&cr(JSON.parse(i),s)}),a==null&&r)for(const i in s)Zt(s,i)&&la(s[i]);return s}function Tu(e){return e.type}function Pu(e,t,o){let n=Ue(t.messages)?t.messages:Ze();"__i18nGlobal"in o&&(n=gr(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(r=>{e.mergeLocaleMessage(r,n[r])});{if(Ue(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach(s=>{e.mergeDateTimeFormat(s,t.datetimeFormats[s])})}if(Ue(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach(s=>{e.mergeNumberFormat(s,t.numberFormats[s])})}}}function Mu(e){return He(Zn,null,e,0)}const Nu="__INTLIFY_META__",Iu=()=>[],Ty=()=>!1;let Ru=0;function Fu(e){return(t,o,n,a)=>e(o,n,Ao()||void 0,a)}const Py=()=>{const e=Ao();let t=null;return e&&(t=Tu(e)[Nu])?{[Nu]:t}:null};function Os(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,r=e.flatJson,s=rr?ue:gn,i=!!e.translateExistCompatible;let l=Re(e.inheritLocale)?e.inheritLocale:!0;const c=s(o&&l?o.locale.value:fe(e.locale)?e.locale:An),u=s(o&&l?o.fallbackLocale.value:fe(e.fallbackLocale)||st(e.fallbackLocale)||Ce(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),p=s(gr(c.value,e)),f=s(Ce(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),k=s(Ce(e.numberFormats)?e.numberFormats:{[c.value]:{}});let S=o?o.missingWarn:Re(e.missingWarn)||Bo(e.missingWarn)?e.missingWarn:!0,_=o?o.fallbackWarn:Re(e.fallbackWarn)||Bo(e.fallbackWarn)?e.fallbackWarn:!0,d=o?o.fallbackRoot:Re(e.fallbackRoot)?e.fallbackRoot:!0,g=!!e.fallbackFormat,b=tt(e.missing)?e.missing:null,y=tt(e.missing)?Fu(e.missing):null,w=tt(e.postTranslation)?e.postTranslation:null,$=o?o.warnHtmlMessage:Re(e.warnHtmlMessage)?e.warnHtmlMessage:!0,x=!!e.escapeParameter;const E=o?o.modifiers:Ce(e.modifiers)?e.modifiers:{};let P=e.pluralRules||o&&o.pluralRules,R;R=(()=>{a&&pu(null);const B={version:Ly,locale:c.value,fallbackLocale:u.value,messages:p.value,modifiers:E,pluralRules:P,missing:y===null?void 0:y,missingWarn:S,fallbackWarn:_,fallbackFormat:g,unresolving:!0,postTranslation:w===null?void 0:w,warnHtmlMessage:$,escapeParameter:x,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};B.datetimeFormats=f.value,B.numberFormats=k.value,B.__datetimeFormatters=Ce(R)?R.__datetimeFormatters:void 0,B.__numberFormatters=Ce(R)?R.__numberFormatters:void 0;const q=by(B);return a&&pu(q),q})(),ia(R,c.value,u.value);function V(){return[c.value,u.value,p.value,f.value,k.value]}const ae=oe({get:()=>c.value,set:B=>{c.value=B,R.locale=c.value}}),M=oe({get:()=>u.value,set:B=>{u.value=B,R.fallbackLocale=u.value,ia(R,c.value,B)}}),L=oe(()=>p.value),N=oe(()=>f.value),A=oe(()=>k.value);function h(){return tt(w)?w:null}function U(B){w=B,R.postTranslation=B}function ie(){return b}function Y(B){B!==null&&(y=Fu(B)),b=B,R.missing=y}const pe=(B,q,me,xe,Fe,O)=>{V();let j;try{__INTLIFY_PROD_DEVTOOLS__,a||(R.fallbackContext=o?my():void 0),j=B(R)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(R.fallbackContext=void 0)}if(me!=="translate exists"&&ht(j)&&j===pr||me==="translate exists"&&!j){const[he,ke]=q();return o&&d?xe(o):Fe(he)}else{if(O(j))return j;throw wt(yt.UNEXPECTED_RETURN_TYPE)}};function ge(...B){return pe(q=>Reflect.apply(yu,null,[q,...B]),()=>Ts(...B),"translate",q=>Reflect.apply(q.t,q,[...B]),q=>q,q=>fe(q))}function se(...B){const[q,me,xe]=B;if(xe&&!Ue(xe))throw wt(yt.INVALID_ARGUMENT);return ge(q,me,Tt({resolvedMessage:!0},xe||{}))}function $e(...B){return pe(q=>Reflect.apply(ku,null,[q,...B]),()=>Ps(...B),"datetime format",q=>Reflect.apply(q.d,q,[...B]),()=>au,q=>fe(q))}function Te(...B){return pe(q=>Reflect.apply(Su,null,[q,...B]),()=>Ms(...B),"number format",q=>Reflect.apply(q.n,q,[...B]),()=>au,q=>fe(q))}function Ve(B){return B.map(q=>fe(q)||ht(q)||Re(q)?Mu(String(q)):q)}const qe={normalize:Ve,interpolate:B=>B,type:"vnode"};function ot(...B){return pe(q=>{let me;const xe=q;try{xe.processor=qe,me=Reflect.apply(yu,null,[xe,...B])}finally{xe.processor=null}return me},()=>Ts(...B),"translate",q=>q[Ns](...B),q=>[Mu(q)],q=>st(q))}function We(...B){return pe(q=>Reflect.apply(Su,null,[q,...B]),()=>Ms(...B),"number format",q=>q[Rs](...B),Iu,q=>fe(q)||st(q))}function ut(...B){return pe(q=>Reflect.apply(ku,null,[q,...B]),()=>Ps(...B),"datetime format",q=>q[Is](...B),Iu,q=>fe(q)||st(q))}function C(B){P=B,R.pluralRules=P}function F(B,q){return pe(()=>{if(!B)return!1;const me=fe(q)?q:c.value,xe=Q(me),Fe=R.messageResolver(xe,B);return i?Fe!=null:ho(Fe)||Vt(Fe)||fe(Fe)},()=>[B],"translate exists",me=>Reflect.apply(me.te,me,[B,q]),Ty,me=>Re(me))}function I(B){let q=null;const me=ou(R,u.value,c.value);for(let xe=0;xe{l&&(c.value=B,R.locale=B,ia(R,c.value,u.value))}),lt(o.fallbackLocale,B=>{l&&(u.value=B,R.fallbackLocale=B,ia(R,c.value,u.value))}));const re={id:Ru,locale:ae,fallbackLocale:M,get inheritLocale(){return l},set inheritLocale(B){l=B,B&&o&&(c.value=o.locale.value,u.value=o.fallbackLocale.value,ia(R,c.value,u.value))},get availableLocales(){return Object.keys(p.value).sort()},messages:L,get modifiers(){return E},get pluralRules(){return P||{}},get isGlobal(){return a},get missingWarn(){return S},set missingWarn(B){S=B,R.missingWarn=S},get fallbackWarn(){return _},set fallbackWarn(B){_=B,R.fallbackWarn=_},get fallbackRoot(){return d},set fallbackRoot(B){d=B},get fallbackFormat(){return g},set fallbackFormat(B){g=B,R.fallbackFormat=g},get warnHtmlMessage(){return $},set warnHtmlMessage(B){$=B,R.warnHtmlMessage=B},get escapeParameter(){return x},set escapeParameter(B){x=B,R.escapeParameter=B},t:ge,getLocaleMessage:Q,setLocaleMessage:Z,mergeLocaleMessage:te,getPostTranslationHandler:h,setPostTranslationHandler:U,getMissingHandler:ie,setMissingHandler:Y,[Eu]:C};return re.datetimeFormats=N,re.numberFormats=A,re.rt=se,re.te=F,re.tm=z,re.d=$e,re.n=Te,re.getDateTimeFormat=X,re.setDateTimeFormat=m,re.mergeDateTimeFormat=v,re.getNumberFormat=D,re.setNumberFormat=W,re.mergeNumberFormat=ce,re[Cu]=n,re[Ns]=ot,re[Is]=ut,re[Rs]=We,re}function My(e){const t=fe(e.locale)?e.locale:An,o=fe(e.fallbackLocale)||st(e.fallbackLocale)||Ce(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=tt(e.missing)?e.missing:void 0,a=Re(e.silentTranslationWarn)||Bo(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,r=Re(e.silentFallbackWarn)||Bo(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,s=Re(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=Ce(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=tt(e.postTranslation)?e.postTranslation:void 0,p=fe(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,f=!!e.escapeParameterHtml,k=Re(e.sync)?e.sync:!0;let S=e.messages;if(Ce(e.sharedMessages)){const x=e.sharedMessages;S=Object.keys(x).reduce((P,R)=>{const K=P[R]||(P[R]={});return Tt(K,x[R]),P},S||{})}const{__i18n:_,__root:d,__injectWithOption:g}=e,b=e.datetimeFormats,y=e.numberFormats,w=e.flatJson,$=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:S,flatJson:w,datetimeFormats:b,numberFormats:y,missing:n,missingWarn:a,fallbackWarn:r,fallbackRoot:s,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:p,escapeParameter:f,messageResolver:e.messageResolver,inheritLocale:k,translateExistCompatible:$,__i18n:_,__root:d,__injectWithOption:g}}function Ds(e={},t){{const o=Os(My(e)),{__extender:n}=e,a={id:o.id,get locale(){return o.locale.value},set locale(r){o.locale.value=r},get fallbackLocale(){return o.fallbackLocale.value},set fallbackLocale(r){o.fallbackLocale.value=r},get messages(){return o.messages.value},get datetimeFormats(){return o.datetimeFormats.value},get numberFormats(){return o.numberFormats.value},get availableLocales(){return o.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(r){},get missing(){return o.getMissingHandler()},set missing(r){o.setMissingHandler(r)},get silentTranslationWarn(){return Re(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(r){o.missingWarn=Re(r)?!r:r},get silentFallbackWarn(){return Re(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(r){o.fallbackWarn=Re(r)?!r:r},get modifiers(){return o.modifiers},get formatFallbackMessages(){return o.fallbackFormat},set formatFallbackMessages(r){o.fallbackFormat=r},get postTranslation(){return o.getPostTranslationHandler()},set postTranslation(r){o.setPostTranslationHandler(r)},get sync(){return o.inheritLocale},set sync(r){o.inheritLocale=r},get warnHtmlInMessage(){return o.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(r){o.warnHtmlMessage=r!=="off"},get escapeParameterHtml(){return o.escapeParameter},set escapeParameterHtml(r){o.escapeParameter=r},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(r){},get pluralizationRules(){return o.pluralRules||{}},__composer:o,t(...r){const[s,i,l]=r,c={};let u=null,p=null;if(!fe(s))throw wt(yt.INVALID_ARGUMENT);const f=s;return fe(i)?c.locale=i:st(i)?u=i:Ce(i)&&(p=i),st(l)?u=l:Ce(l)&&(p=l),Reflect.apply(o.t,o,[f,u||p||{},c])},rt(...r){return Reflect.apply(o.rt,o,[...r])},tc(...r){const[s,i,l]=r,c={plural:1};let u=null,p=null;if(!fe(s))throw wt(yt.INVALID_ARGUMENT);const f=s;return fe(i)?c.locale=i:ht(i)?c.plural=i:st(i)?u=i:Ce(i)&&(p=i),fe(l)?c.locale=l:st(l)?u=l:Ce(l)&&(p=l),Reflect.apply(o.t,o,[f,u||p||{},c])},te(r,s){return o.te(r,s)},tm(r){return o.tm(r)},getLocaleMessage(r){return o.getLocaleMessage(r)},setLocaleMessage(r,s){o.setLocaleMessage(r,s)},mergeLocaleMessage(r,s){o.mergeLocaleMessage(r,s)},d(...r){return Reflect.apply(o.d,o,[...r])},getDateTimeFormat(r){return o.getDateTimeFormat(r)},setDateTimeFormat(r,s){o.setDateTimeFormat(r,s)},mergeDateTimeFormat(r,s){o.mergeDateTimeFormat(r,s)},n(...r){return Reflect.apply(o.n,o,[...r])},getNumberFormat(r){return o.getNumberFormat(r)},setNumberFormat(r,s){o.setNumberFormat(r,s)},mergeNumberFormat(r,s){o.mergeNumberFormat(r,s)},getChoiceIndex(r,s){return-1}};return a.__extender=n,a}}const Bs={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function Ny({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===Me?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},Ze())}function Ou(e){return Me}const Du=Wn({name:"i18n-t",props:Tt({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>ht(e)||!isNaN(e)}},Bs),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||_t({useScope:e.scope,__useComponent:!0});return()=>{const r=Object.keys(o).filter(p=>p!=="_"),s=Ze();e.locale&&(s.locale=e.locale),e.plural!==void 0&&(s.plural=fe(e.plural)?+e.plural:e.plural);const i=Ny(t,r),l=a[Ns](e.keypath,i,s),c=Tt(Ze(),n),u=fe(e.tag)||Ue(e.tag)?e.tag:Ou();return rc(u,c,l)}}});function Iy(e){return st(e)&&!fe(e[0])}function Bu(e,t,o,n){const{slots:a,attrs:r}=t;return()=>{const s={part:!0};let i=Ze();e.locale&&(s.locale=e.locale),fe(e.format)?s.key=e.format:Ue(e.format)&&(fe(e.format.key)&&(s.key=e.format.key),i=Object.keys(e.format).reduce((f,k)=>o.includes(k)?Tt(Ze(),f,{[k]:e.format[k]}):f,Ze()));const l=n(e.value,s,i);let c=[s.key];st(l)?c=l.map((f,k)=>{const S=a[f.type],_=S?S({[f.type]:f.value,index:k,parts:l}):[f.value];return Iy(_)&&(_[0].key=`${f.type}-${k}`),_}):fe(l)&&(c=[l]);const u=Tt(Ze(),r),p=fe(e.tag)||Ue(e.tag)?e.tag:Ou();return rc(p,u,c)}}const Gu=Wn({name:"i18n-n",props:Tt({value:{type:Number,required:!0},format:{type:[String,Object]}},Bs),setup(e,t){const o=e.i18n||_t({useScope:e.scope,__useComponent:!0});return Bu(e,t,$u,(...n)=>o[Rs](...n))}}),ju=Wn({name:"i18n-d",props:Tt({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Bs),setup(e,t){const o=e.i18n||_t({useScope:e.scope,__useComponent:!0});return Bu(e,t,wu,(...n)=>o[Is](...n))}});function Ry(e,t){const o=e;if(e.mode==="composition")return o.__getInstance(t)||e.global;{const n=o.__getInstance(t);return n!=null?n.__composer:e.global.__composer}}function Fy(e){const t=s=>{const{instance:i,modifiers:l,value:c}=s;if(!i||!i.$)throw wt(yt.UNEXPECTED_ERROR);const u=Ry(e,i.$),p=Uu(c);return[Reflect.apply(u.t,u,[...Ku(p)]),u]};return{created:(s,i)=>{const[l,c]=t(i);rr&&e.global===c&&(s.__i18nWatcher=lt(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),s.__composer=c,s.textContent=l},unmounted:s=>{rr&&s.__i18nWatcher&&(s.__i18nWatcher(),s.__i18nWatcher=void 0,delete s.__i18nWatcher),s.__composer&&(s.__composer=void 0,delete s.__composer)},beforeUpdate:(s,{value:i})=>{if(s.__composer){const l=s.__composer,c=Uu(i);s.textContent=Reflect.apply(l.t,l,[...Ku(c)])}},getSSRProps:s=>{const[i]=t(s);return{textContent:i}}}}function Uu(e){if(fe(e))return{path:e};if(Ce(e)){if(!("path"in e))throw wt(yt.REQUIRED_VALUE,"path");return e}else throw wt(yt.INVALID_VALUE)}function Ku(e){const{path:t,locale:o,args:n,choice:a,plural:r}=e,s={},i=n||{};return fe(o)&&(s.locale=o),ht(a)&&(s.plural=a),ht(r)&&(s.plural=r),[t,i,s]}function Oy(e,t,...o){const n=Ce(o[0])?o[0]:{},a=!!n.useI18nComponentName;(Re(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":Du.name,"I18nT"].forEach(s=>e.component(s,Du)),[Gu.name,"I18nN"].forEach(s=>e.component(s,Gu)),[ju.name,"I18nD"].forEach(s=>e.component(s,ju))),e.directive("t",Fy(t))}function Dy(e,t,o){return{beforeCreate(){const n=Ao();if(!n)throw wt(yt.UNEXPECTED_ERROR);const a=this.$options;if(a.i18n){const r=a.i18n;if(a.__i18n&&(r.__i18n=a.__i18n),r.__root=t,this===this.$root)this.$i18n=Hu(e,r);else{r.__injectWithOption=!0,r.__extender=o.__vueI18nExtend,this.$i18n=Ds(r);const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=Hu(e,a);else{this.$i18n=Ds({__i18n:a.__i18n,__injectWithOption:!0,__extender:o.__vueI18nExtend,__root:t});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=e;a.__i18nGlobal&&Pu(t,a,a),this.$t=(...r)=>this.$i18n.t(...r),this.$rt=(...r)=>this.$i18n.rt(...r),this.$tc=(...r)=>this.$i18n.tc(...r),this.$te=(r,s)=>this.$i18n.te(r,s),this.$d=(...r)=>this.$i18n.d(...r),this.$n=(...r)=>this.$i18n.n(...r),this.$tm=r=>this.$i18n.tm(r),o.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=Ao();if(!n)throw wt(yt.UNEXPECTED_ERROR);const a=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,a.__disposer&&(a.__disposer(),delete a.__disposer,delete a.__extender),o.__deleteInstance(n),delete this.$i18n}}}function Hu(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[Eu](t.pluralizationRules||e.pluralizationRules);const o=gr(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(o).forEach(n=>e.mergeLocaleMessage(n,o[n])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(n=>e.mergeDateTimeFormat(n,t.datetimeFormats[n])),t.numberFormats&&Object.keys(t.numberFormats).forEach(n=>e.mergeNumberFormat(n,t.numberFormats[n])),e}const By=Do("global-vue-i18n");function Gy(e={},t){const o=__VUE_I18N_LEGACY_API__&&Re(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=Re(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,r=new Map,[s,i]=jy(e,o),l=Do("");function c(f){return r.get(f)||null}function u(f,k){r.set(f,k)}function p(f){r.delete(f)}{const f={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(k,...S){if(k.__VUE_I18N_SYMBOL__=l,k.provide(k.__VUE_I18N_SYMBOL__,f),Ce(S[0])){const g=S[0];f.__composerExtend=g.__composerExtend,f.__vueI18nExtend=g.__vueI18nExtend}let _=null;!o&&n&&(_=Jy(k,f.global)),__VUE_I18N_FULL_INSTALL__&&Oy(k,f,...S),__VUE_I18N_LEGACY_API__&&o&&k.mixin(Dy(i,i.__composer,f));const d=k.unmount;k.unmount=()=>{_&&_(),f.dispose(),d()}},get global(){return i},dispose(){s.stop()},__instances:r,__getInstance:c,__setInstance:u,__deleteInstance:p};return f}}function _t(e={}){const t=Ao();if(t==null)throw wt(yt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw wt(yt.NOT_INSTALLED);const o=Uy(t),n=Hy(o),a=Tu(t),r=Ky(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw wt(yt.NOT_AVAILABLE_IN_LEGACY_MODE);return Yy(t,r,n,e)}if(r==="global")return Pu(n,e,a),n;if(r==="parent"){let l=zy(o,t,e.__useComponent);return l==null&&(l=n),l}const s=o;let i=s.__getInstance(t);if(i==null){const l=Tt({},e);"__i18n"in a&&(l.__i18n=a.__i18n),n&&(l.__root=n),i=Os(l),s.__composerExtend&&(i[Fs]=s.__composerExtend(i)),Wy(s,t,i),s.__setInstance(t,i)}return i}function jy(e,t,o){const n=Nr();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>Ds(e)):n.run(()=>Os(e));if(a==null)throw wt(yt.UNEXPECTED_ERROR);return[n,a]}}function Uy(e){{const t=Ie(e.isCE?By:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw wt(e.isCE?yt.NOT_INSTALLED_WITH_PROVIDE:yt.UNEXPECTED_ERROR);return t}}function Ky(e,t){return sr(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function Hy(e){return e.mode==="composition"?e.global:e.global.__composer}function zy(e,t,o=!1){let n=null;const a=t.root;let r=Vy(t,o);for(;r!=null;){const s=e;if(e.mode==="composition")n=s.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const i=s.__getInstance(r);i!=null&&(n=i.__composer,o&&n&&!n[Cu]&&(n=null))}if(n!=null||a===r)break;r=r.parent}return n}function Vy(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function Wy(e,t,o){co(()=>{},t),za(()=>{const n=o;e.__deleteInstance(t);const a=n[Fs];a&&(a(),delete n[Fs])},t)}function Yy(e,t,o,n={}){const a=t==="local",r=gn(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw wt(yt.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const s=Re(n.inheritLocale)?n.inheritLocale:!fe(n.locale),i=ue(!a||s?o.locale.value:fe(n.locale)?n.locale:An),l=ue(!a||s?o.fallbackLocale.value:fe(n.fallbackLocale)||st(n.fallbackLocale)||Ce(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),c=ue(gr(i.value,n)),u=ue(Ce(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),p=ue(Ce(n.numberFormats)?n.numberFormats:{[i.value]:{}}),f=a?o.missingWarn:Re(n.missingWarn)||Bo(n.missingWarn)?n.missingWarn:!0,k=a?o.fallbackWarn:Re(n.fallbackWarn)||Bo(n.fallbackWarn)?n.fallbackWarn:!0,S=a?o.fallbackRoot:Re(n.fallbackRoot)?n.fallbackRoot:!0,_=!!n.fallbackFormat,d=tt(n.missing)?n.missing:null,g=tt(n.postTranslation)?n.postTranslation:null,b=a?o.warnHtmlMessage:Re(n.warnHtmlMessage)?n.warnHtmlMessage:!0,y=!!n.escapeParameter,w=a?o.modifiers:Ce(n.modifiers)?n.modifiers:{},$=n.pluralRules||a&&o.pluralRules;function x(){return[i.value,l.value,c.value,u.value,p.value]}const E=oe({get:()=>r.value?r.value.locale.value:i.value,set:I=>{r.value&&(r.value.locale.value=I),i.value=I}}),P=oe({get:()=>r.value?r.value.fallbackLocale.value:l.value,set:I=>{r.value&&(r.value.fallbackLocale.value=I),l.value=I}}),R=oe(()=>r.value?r.value.messages.value:c.value),K=oe(()=>u.value),V=oe(()=>p.value);function ae(){return r.value?r.value.getPostTranslationHandler():g}function M(I){r.value&&r.value.setPostTranslationHandler(I)}function L(){return r.value?r.value.getMissingHandler():d}function N(I){r.value&&r.value.setMissingHandler(I)}function A(I){return x(),I()}function h(...I){return r.value?A(()=>Reflect.apply(r.value.t,null,[...I])):A(()=>"")}function U(...I){return r.value?Reflect.apply(r.value.rt,null,[...I]):""}function ie(...I){return r.value?A(()=>Reflect.apply(r.value.d,null,[...I])):A(()=>"")}function Y(...I){return r.value?A(()=>Reflect.apply(r.value.n,null,[...I])):A(()=>"")}function pe(I){return r.value?r.value.tm(I):{}}function ge(I,z){return r.value?r.value.te(I,z):!1}function se(I){return r.value?r.value.getLocaleMessage(I):{}}function $e(I,z){r.value&&(r.value.setLocaleMessage(I,z),c.value[I]=z)}function Te(I,z){r.value&&r.value.mergeLocaleMessage(I,z)}function Ve(I){return r.value?r.value.getDateTimeFormat(I):{}}function ct(I,z){r.value&&(r.value.setDateTimeFormat(I,z),u.value[I]=z)}function qe(I,z){r.value&&r.value.mergeDateTimeFormat(I,z)}function ot(I){return r.value?r.value.getNumberFormat(I):{}}function We(I,z){r.value&&(r.value.setNumberFormat(I,z),p.value[I]=z)}function ut(I,z){r.value&&r.value.mergeNumberFormat(I,z)}const C={get id(){return r.value?r.value.id:-1},locale:E,fallbackLocale:P,messages:R,datetimeFormats:K,numberFormats:V,get inheritLocale(){return r.value?r.value.inheritLocale:s},set inheritLocale(I){r.value&&(r.value.inheritLocale=I)},get availableLocales(){return r.value?r.value.availableLocales:Object.keys(c.value)},get modifiers(){return r.value?r.value.modifiers:w},get pluralRules(){return r.value?r.value.pluralRules:$},get isGlobal(){return r.value?r.value.isGlobal:!1},get missingWarn(){return r.value?r.value.missingWarn:f},set missingWarn(I){r.value&&(r.value.missingWarn=I)},get fallbackWarn(){return r.value?r.value.fallbackWarn:k},set fallbackWarn(I){r.value&&(r.value.missingWarn=I)},get fallbackRoot(){return r.value?r.value.fallbackRoot:S},set fallbackRoot(I){r.value&&(r.value.fallbackRoot=I)},get fallbackFormat(){return r.value?r.value.fallbackFormat:_},set fallbackFormat(I){r.value&&(r.value.fallbackFormat=I)},get warnHtmlMessage(){return r.value?r.value.warnHtmlMessage:b},set warnHtmlMessage(I){r.value&&(r.value.warnHtmlMessage=I)},get escapeParameter(){return r.value?r.value.escapeParameter:y},set escapeParameter(I){r.value&&(r.value.escapeParameter=I)},t:h,getPostTranslationHandler:ae,setPostTranslationHandler:M,getMissingHandler:L,setMissingHandler:N,rt:U,d:ie,n:Y,tm:pe,te:ge,getLocaleMessage:se,setLocaleMessage:$e,mergeLocaleMessage:Te,getDateTimeFormat:Ve,setDateTimeFormat:ct,mergeDateTimeFormat:qe,getNumberFormat:ot,setNumberFormat:We,mergeNumberFormat:ut};function F(I){I.locale.value=i.value,I.fallbackLocale.value=l.value,Object.keys(c.value).forEach(z=>{I.mergeLocaleMessage(z,c.value[z])}),Object.keys(u.value).forEach(z=>{I.mergeDateTimeFormat(z,u.value[z])}),Object.keys(p.value).forEach(z=>{I.mergeNumberFormat(z,p.value[z])}),I.escapeParameter=y,I.fallbackFormat=_,I.fallbackRoot=S,I.fallbackWarn=k,I.missingWarn=f,I.warnHtmlMessage=b}return wl(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw wt(yt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const I=r.value=e.proxy.$i18n.__composer;t==="global"?(i.value=I.locale.value,l.value=I.fallbackLocale.value,c.value=I.messages.value,u.value=I.datetimeFormats.value,p.value=I.numberFormats.value):a&&F(I)}),C}const qy=["locale","fallbackLocale","availableLocales"],zu=["t","rt","d","n","tm","te"];function Jy(e,t){const o=Object.create(null);return qy.forEach(a=>{const r=Object.getOwnPropertyDescriptor(t,a);if(!r)throw wt(yt.UNEXPECTED_ERROR);const s=rt(r.value)?{get(){return r.value.value},set(i){r.value.value=i}}:{get(){return r.get&&r.get()}};Object.defineProperty(o,a,s)}),e.config.globalProperties.$i18n=o,zu.forEach(a=>{const r=Object.getOwnPropertyDescriptor(t,a);if(!r||!r.value)throw wt(yt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,r)}),()=>{delete e.config.globalProperties.$i18n,zu.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(Ey(),__INTLIFY_JIT_COMPILATION__?iu(wy):iu(ky),py(Vb),gy(ou),__INTLIFY_PROD_DEVTOOLS__){const e=Eo();e.__INTLIFY__=!0,ty(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const Zy=Object.assign({"./locales/ar/aria.json":nh,"./locales/ar/buttons.json":ah,"./locales/ar/detail.json":rh,"./locales/ar/legend.json":sh,"./locales/ar/messages.json":ih,"./locales/ar/options.json":lh,"./locales/ar/prayerLaps.json":ch,"./locales/ar/search.json":uh,"./locales/ar/tabs.json":dh,"./locales/de/aria.json":ph,"./locales/de/buttons.json":gh,"./locales/de/detail.json":fh,"./locales/de/legend.json":hh,"./locales/de/messages.json":mh,"./locales/de/options.json":bh,"./locales/de/prayerLaps.json":yh,"./locales/de/search.json":_h,"./locales/de/tabs.json":vh,"./locales/en/aria.json":kh,"./locales/en/buttons.json":wh,"./locales/en/detail.json":xh,"./locales/en/legend.json":Sh,"./locales/en/messages.json":$h,"./locales/en/options.json":Ah,"./locales/en/popup.json":Lh,"./locales/en/prayerLaps.json":Eh,"./locales/en/search.json":Ch,"./locales/en/tabs.json":Th,"./locales/es/aria.json":Ph,"./locales/es/buttons.json":Mh,"./locales/es/detail.json":Nh,"./locales/es/legend.json":Ih,"./locales/es/messages.json":Rh,"./locales/es/options.json":Fh,"./locales/es/prayerLaps.json":Oh,"./locales/es/search.json":Dh,"./locales/es/tabs.json":Bh,"./locales/fr/aria.json":Gh,"./locales/fr/buttons.json":jh,"./locales/fr/detail.json":Uh,"./locales/fr/legend.json":Kh,"./locales/fr/messages.json":Hh,"./locales/fr/options.json":zh,"./locales/fr/popup.json":Vh,"./locales/fr/prayerLaps.json":Wh,"./locales/fr/search.json":Yh,"./locales/fr/tabs.json":qh,"./locales/hi/aria.json":Jh,"./locales/hi/buttons.json":Zh,"./locales/hi/detail.json":Xh,"./locales/hi/legend.json":Qh,"./locales/hi/messages.json":em,"./locales/hi/options.json":tm,"./locales/hi/prayerLaps.json":om,"./locales/hi/search.json":nm,"./locales/it/aria.json":am,"./locales/it/buttons.json":rm,"./locales/it/detail.json":sm,"./locales/it/legend.json":im,"./locales/it/messages.json":lm,"./locales/it/options.json":cm,"./locales/it/prayerLaps.json":um,"./locales/it/search.json":dm,"./locales/pt/aria.json":pm,"./locales/pt/buttons.json":gm,"./locales/pt/detail.json":fm,"./locales/pt/legend.json":hm,"./locales/pt/messages.json":mm,"./locales/pt/options.json":bm,"./locales/pt/prayerLaps.json":ym,"./locales/pt/search.json":_m,"./locales/pt/tabs.json":vm,"./locales/ro/aria.json":km,"./locales/ro/buttons.json":wm,"./locales/ro/detail.json":xm,"./locales/ro/legend.json":Sm,"./locales/ro/messages.json":$m,"./locales/ro/options.json":Am,"./locales/ro/prayerLaps.json":Lm,"./locales/ro/search.json":Em,"./locales/ru/aria.json":Cm,"./locales/ru/buttons.json":Tm,"./locales/ru/detail.json":Pm,"./locales/ru/legend.json":Mm,"./locales/ru/messages.json":Nm,"./locales/ru/options.json":Im,"./locales/ru/prayerLaps.json":Rm,"./locales/ru/search.json":Fm,"./locales/ru/tabs.json":Om,"./locales/zh/aria.json":Dm,"./locales/zh/buttons.json":Bm,"./locales/zh/detail.json":Gm,"./locales/zh/legend.json":jm,"./locales/zh/messages.json":Um,"./locales/zh/options.json":Km,"./locales/zh/prayerLaps.json":Hm,"./locales/zh/search.json":zm}),ca={};for(const[e,t]of Object.entries(Zy)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;ca[n]??(ca[n]={}),ca[n][a]=t}const Vu=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"];function Xy(){var o;const t=(((o=document==null?void 0:document.documentElement)==null?void 0:o.lang)||"").split("-")[0].toLowerCase();return Vu.includes(t)?t:"en"}function Qy(){return Gy({legacy:!1,globalInjection:!0,locale:Xy(),fallbackLocale:"en",messages:ca,missingWarn:!1,fallbackWarn:!1})}function xt(e,t){const o=t||e0(e);co(()=>{var i;const n=Ao();if(!n)return;const a=(i=n.proxy)==null?void 0:i.$el;if(!a)return;const r=a.getRootNode();if(!(r instanceof ShadowRoot)||r.querySelector(`style[data-shadow-styles="${o}"]`))return;const s=document.createElement("style");s.setAttribute("data-shadow-styles",o),s.textContent=e,r.appendChild(s)})}function e0(e){let t=0;for(let o=0;o(t==null?void 0:t.theme)==="dark"),a=oe(()=>{var d;return((d=o==null?void 0:o.value)==null?void 0:d.pinHintLabel)||"Tap a coloured dot — someone still needs prayer"}),r=ue(!1),s=ue(null);let i=null,l=null,c=null,u=null,p=null;function f(){r.value=!1}function k(d,g){var y;let b=d==null?void 0:d.parentElement;for(let w=0;b&&w<12;w++,b=b.parentElement){if(b===g||(y=b.classList)!=null&&y.contains("profile-loader"))return null;let $="";try{$=getComputedStyle(b).position}catch{}if($&&$!=="static"){const x=b.getBoundingClientRect();if(x.height>=120&&x.width>=160)return b}}return null}function S(){const d=s.value;if(d)try{d.style.removeProperty("--pin-hint-lift");const g=d.getBoundingClientRect();if(!g.height)return;const b=Math.round(g.bottom-window.innerHeight);b>0&&d.style.setProperty("--pin-hint-lift",b+8+"px")}catch{}}function _(d){const g=s.value;if(!g||!(d!=null&&d.querySelector))return;let b=0;try{const w=d.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(w){const $=w.getBoundingClientRect(),x=g.parentElement,E=x?x.getBoundingClientRect():null;if(b=E?Math.max($.height||0,E.bottom-$.top):$.height||0,p!==w&&typeof ResizeObserver<"u"){if(c)try{c.disconnect()}catch{}p=w,c=new ResizeObserver(()=>_(d)),c.observe(w)}}}catch{}const y=Math.min(Math.max(Math.ceil(b)||20,20),72);g.style.setProperty("--pin-hint-attrib-clear",y+"px"),S()}return co(()=>{var y,w,$;const d=Ao(),g=($=(w=(y=d==null?void 0:d.proxy)==null?void 0:y.$el)==null?void 0:w.getRootNode)==null?void 0:$.call(w);if(!g||typeof g.querySelector!="function")return;let b=0;i=setInterval(()=>{b++;const x=g.querySelector("canvas");x?(clearInterval(i),i=null,r.value=!0,lo(()=>{const E=k(x,g),P=s.value;if(E&&P&&P.parentElement!==E)try{E.appendChild(P),l=E}catch{}_(g),S();try{const R=s.value&&s.value.offsetParent||null;if(R&&typeof ResizeObserver<"u"){if(u)try{u.disconnect()}catch{}u=new ResizeObserver(()=>S()),u.observe(R)}}catch{}})):b>40&&(clearInterval(i),i=null)},300)}),uo(()=>{var d;if(i&&clearInterval(i),c){try{c.disconnect()}catch{}c=null}if(p=null,u){try{u.disconnect()}catch{}u=null}if(l&&((d=s.value)==null?void 0:d.parentElement)===l)try{l.removeChild(s.value)}catch{}l=null}),xt(` .pin-hint { position: absolute; left: 50%; bottom: calc(var(--pin-hint-attrib-clear, 20px) + 12px + var(--pin-hint-lift, 0px)); transform: translateX(-50%); z-index: 2147482000; pointer-events: none; @@ -69,7 +69,7 @@ @media (prefers-reduced-motion: reduce) { .pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; } } -`,"pin-hint"),(d,h)=>r.value?(W(),ee("div",{key:0,ref_key:"hintEl",ref:s,class:Le(["pin-hint",{dark:n.value}]),role:"status"},[T("span",Ay,[h[0]||(h[0]=T("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),dt(" "+ue(a.value)+" ",1),T("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:g},"×")])],2)):be("",!0)}},Ly=!1;let Cy=0;const Ey=is("ui",{state:()=>({_storeInstanceId:++Cy,theme:"light",colorScheme:"default",reducedMotion:!1,highContrast:!1,activeTab:"doxa-regions",sidebarCollapsed:!1,mobileMenuOpen:!1,legendState:"collapsed",_customLegendHeight:null,searchMode:!1,hamburgerMenuOpen:!1,legendMode:"prayer",prayerFilter:null,engagementFilter:null,adoptionFilter:null,religionFilter:null,selectedPeopleGroup:null,breakpoint:"desktop",windowSize:{width:window.innerWidth,height:window.innerHeight},toasts:[],nextToastId:1,toastDuration:5e3,openModals:[],modalData:new Map,isGlobalLoading:!1,globalLoadingMessage:"Loading...",loadingStates:new Map,interactionHistory:[],maxHistoryLength:20,keyboardShortcutsEnabled:!0,screenReaderAnnouncement:"",focusTrapActive:!1,debugMode:!1,showPerformanceOverlay:!1}),getters:{isDarkTheme:e=>!1,isMobile:e=>e.breakpoint==="mobile",isTablet:e=>e.breakpoint==="tablet",isDesktop:e=>e.breakpoint==="desktop"||e.breakpoint==="wide",legendHeight:e=>e._customLegendHeight?e._customLegendHeight:e.legendState==="collapsed"?"48px":e.legendState==="open"?"30%":e.legendState==="fullyOpen"?"calc(100% - 80px)":"48px",caretRotation:e=>e.legendState==="collapsed"?0:90,showPullTab:e=>e.legendState==="open"||e.legendState==="fullyOpen",getToastsByType:e=>t=>e.toasts.filter(o=>o.type===t),hasOpenModal:e=>e.openModals.length>0,topModal:e=>e.openModals.length===0?null:e.openModals[e.openModals.length-1],isModalOpen:e=>t=>e.openModals.includes(t),isAnyLoading:e=>e.isGlobalLoading||e.loadingStates.size>0,isLoading:e=>t=>e.loadingStates.get(t)||!1},actions:{setTheme(e){if(!["light","dark","auto"].includes(e))return;e="light",this.theme=e;const o=this.isDarkTheme;document.documentElement.setAttribute("data-theme",o?"dark":"light");try{localStorage.setItem("theme",e)}catch{}},toggleTheme(){const e=this.theme==="light"?"dark":"light";this.setTheme(e)},setColorScheme(e){this.colorScheme=e,document.documentElement.setAttribute("data-color-scheme",e)},toggleReducedMotion(){this.reducedMotion=!this.reducedMotion,document.documentElement.setAttribute("data-reduced-motion",this.reducedMotion)},toggleHighContrast(){this.highContrast=!this.highContrast,document.documentElement.setAttribute("data-high-contrast",this.highContrast)},setActiveTab(e){this.activeTab=e,this.addToHistory({type:"tab-change",tabId:e,timestamp:Date.now()})},toggleSidebar(){this.sidebarCollapsed=!this.sidebarCollapsed},openMobileMenu(){this.mobileMenuOpen=!0},closeMobileMenu(){this.mobileMenuOpen=!1},setLegendMode(e){["prayer","detail"].includes(e)&&(this.legendMode=e)},setPrayerFilter(e){[null,"noPrayer","hasPrayer","fullPrayer"].includes(e)&&(this.prayerFilter=e)},setEngagementFilter(e){[null,"notEngaged","hasEngagement"].includes(e)&&(this.engagementFilter=e)},setAdoptionFilter(e){[null,"notAdopted","hasAdoption"].includes(e)&&(this.adoptionFilter=e)},setReligionFilter(e){[null,"C","M","H","B","E","J","S","N","O","U"].includes(e)&&(this.religionFilter=e)},selectPeopleGroup(e){this.selectedPeopleGroup=e,e?(this._legendStateBeforeDetail=this.legendState,this.legendState="open",this._customLegendHeight=null,this.setLegendMode("detail")):(this.legendState=this._legendStateBeforeDetail||"open",this._customLegendHeight=null,this.setLegendMode("prayer"))},setLegendState(e){["collapsed","open","fullyOpen"].includes(e)&&(this.legendState=e)},toggleSearchMode(){this.searchMode=!this.searchMode},setSearchMode(e){this.searchMode=e},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},updateBreakpoint(e){let t;e<768?t="mobile":e<1024?t="tablet":e<1920?t="desktop":t="wide",t!==this.breakpoint&&(this.breakpoint=t)},updateWindowSize(e,t){this.windowSize.width=e,this.windowSize.height=t,this.updateBreakpoint(e)},showToast(e){const{message:t,type:o="info",duration:n=this.toastDuration,action:a=null,persistent:r=!1}=e,s={id:this.nextToastId++,message:t,type:o,duration:n,action:a,persistent:r,createdAt:Date.now()};return this.toasts.push(s),!r&&n>0&&setTimeout(()=>{this.removeToast(s.id)},n),s.id},showSuccess(e,t={}){return this.showToast({message:e,type:"success",...t})},showError(e,t={}){return this.showToast({message:e,type:"error",duration:7e3,...t})},showWarning(e,t={}){return this.showToast({message:e,type:"warning",...t})},showInfo(e,t={}){return this.showToast({message:e,type:"info",...t})},removeToast(e){const t=this.toasts.findIndex(o=>o.id===e);t!==-1&&this.toasts.splice(t,1)},clearAllToasts(){this.toasts=[]},openModal(e,t={}){this.openModals.includes(e)||(this.openModals.push(e),this.modalData.set(e,t),this.focusTrapActive=!0)},closeModal(e=null){if(e){const t=this.openModals.indexOf(e);t!==-1&&(this.openModals.splice(t,1),this.modalData.delete(e))}else{const t=this.openModals.pop();t&&this.modalData.delete(t)}this.openModals.length===0&&(this.focusTrapActive=!1)},closeAllModals(){this.openModals=[],this.modalData.clear(),this.focusTrapActive=!1},getModalData(e){return this.modalData.get(e)},showGlobalLoading(e="Loading..."){this.isGlobalLoading=!0,this.globalLoadingMessage=e},hideGlobalLoading(){this.isGlobalLoading=!1},setLoading(e,t=!0){t?this.loadingStates.set(e,!0):this.loadingStates.delete(e)},addToHistory(e){this.interactionHistory.push(e),this.interactionHistory.length>this.maxHistoryLength&&this.interactionHistory.shift()},clearHistory(){this.interactionHistory=[]},announce(e,t="polite"){this.screenReaderAnnouncement=e,setTimeout(()=>{this.screenReaderAnnouncement===e&&(this.screenReaderAnnouncement="")},1e3)},toggleKeyboardShortcuts(){this.keyboardShortcutsEnabled=!this.keyboardShortcutsEnabled},toggleDebugMode(){this.debugMode=!this.debugMode},togglePerformanceOverlay(){this.showPerformanceOverlay=!this.showPerformanceOverlay},toggleLegend(){this.legendState==="fullyOpen"?this.legendState="open":this.legendState==="open"?this.legendState="collapsed":this.legendState="open",this._customLegendHeight=null},openLegend(){this.legendState="open",this._customLegendHeight=null},fullyOpenLegend(){this.legendState="fullyOpen",this._customLegendHeight=null},collapseLegend(){this.legendState="collapsed",this._customLegendHeight=null},setLegendHeight(e){this._customLegendHeight=e},handleLegendItemClick(){this.legendState==="fullyOpen"&&(this.legendState="open")},enableSearchMode(){this.searchMode=!0},disableSearchMode(){this.searchMode=!1},toggleHamburgerMenu(){this.hamburgerMenuOpen=!this.hamburgerMenuOpen},openHamburgerMenu(){this.hamburgerMenuOpen=!0},closeHamburgerMenu(){this.hamburgerMenuOpen=!1},init(){let e=null;try{e=localStorage.getItem("theme")}catch{}e&&this.setTheme(e),new ResizeObserver(o=>{for(const n of o)this.updateWindowSize(n.contentRect.width,n.contentRect.height)}).observe(document.documentElement),window.matchMedia&&(window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",o=>{this.theme==="auto"&&document.documentElement.setAttribute("data-theme",o.matches?"dark":"light")}),window.matchMedia("(prefers-reduced-motion: reduce)").addEventListener("change",o=>{this.reducedMotion=o.matches,document.documentElement.setAttribute("data-reduced-motion",o.matches)}))}}}),Ty=is("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const r=t.getCenter();r&&(a=[r.lng,r.lat])}this.maps[e]={instance:t,config:o,isReady:!1,zoom:n,center:a,registeredAt:Date.now()},this.activeMapId||(this.activeMapId=e)},setMapReady(e){const t=this.maps[e];t&&(t.isReady=!0)},updateMapState(e,t){const o=this.maps[e];o&&Object.assign(o,t)},unregisterMap(e){if(delete this.maps[e],this.activeMapId===e){const t=this.allMapIds;this.activeMapId=t.length>0?t[0]:null}},setActiveMap(e){e in this.maps&&(this.activeMapId=e)},selectRegion(e){this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedRegion=e},selectFamily(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedFamily=e},setActiveLegendTab(e){this.activeLegendTab=e},selectLanguage(e){this.selectedRegion=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedFamily=null,this.selectedDialect=null,this.selectedLanguage=e},selectDialect(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedDialect=e},selectAffinityBlock(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedPeopleGroup=null,this.selectedAffinityBlock=e},selectPeopleGroup(e){this.selectedPeopleGroup=e},selectResource(e){this.selectedRegion=null,this.selectedFamily=null,this.selectedAffinityBlock=null,this.selectedPeopleGroup=null,this.selectedResource===e?this.selectedResource=null:this.selectedResource=e},clearSelections(){this.selectedRegion=null,this.selectedFamily=null,this.selectedLanguage=null,this.selectedDialect=null,this.selectedAffinityBlock=null,this.selectedResource=null,this.selectedPeopleGroup=null,this.selectedPinIds=[],this.showClusters=!1,this.clusterMode="region"},setSelectedPinIds(e){this.selectedPinIds=e||[]},setFilter(e,t){this.globalFilters[e]=t},removeFilter(e){delete this.globalFilters[e]},clearFilters(){this.globalFilters={},this.searchQuery=""},setSearchQuery(e){this.searchQuery=e},startAutoFly(e,t=1){this.stopAutoFly(),this.autoFly.isActive=!0,this.autoFly.speed=t,this.autoFly.items=e,this.autoFly.currentIndex=0},stopAutoFly(){this.autoFly.timerId&&(clearInterval(this.autoFly.timerId),this.autoFly.timerId=null),this.autoFly.isActive=!1,this.autoFly.currentIndex=0},setAutoFlySpeed(e){this.autoFly.speed=Math.max(.5,Math.min(2,e))},nextAutoFlyItem(){if(!this.autoFly.isActive||this.autoFly.items.length===0)return;this.autoFly.currentIndex=(this.autoFly.currentIndex+1)%this.autoFly.items.length;const e=this.autoFly.items[this.autoFly.currentIndex];e.type==="region"?this.selectRegion(e):e.type==="family"&&this.selectFamily(e)},toggleClusters(e){typeof e=="boolean"?this.showClusters=e:this.showClusters=!this.showClusters},setClusterMode(e){["region","language-family","affinity-block","mst","resource"].includes(e)&&(this.clusterMode=e)},setClusterFilter(e,t){this.clusterFilterProperty=e||null,this.clusterFilterValue=t||null},clearClusterFilter(){this.clusterFilterProperty=null,this.clusterFilterValue=null},setFlySpeed(e){["slow","normal","fast"].includes(e)&&(this.flySpeed=e)},setSelectedFamily(e){this.selectFamily(e)},clearSelectedFamily(){this.selectFamily(null)},setSelectedRegion(e){this.selectRegion(e)},clearSelectedRegion(){this.selectRegion(null)},clearSelectedResource(){this.selectResource(null)},clearSelectedLanguage(){this.selectLanguage(null)},clearSelectedDialect(){this.selectDialect(null)},toggleFullscreen(e){this.fullscreenMapId===e?this.fullscreenMapId=null:this.fullscreenMapId=e},loadPreferences(){try{const e=localStorage.getItem("mapUserPreferences");if(e){const t=JSON.parse(e);this.preferences={...this.preferences,...t}}}catch(e){console.error("[mapStore] Failed to load preferences:",e)}},savePreferences(){try{localStorage.setItem("mapUserPreferences",JSON.stringify(this.preferences))}catch(e){console.error("[mapStore] Failed to save preferences:",e)}},setPreference(e,t){this.preferences[e]=t,this.preferences.autoSavePreferences&&this.savePreferences()}}}),Py=is("data",{state:()=>({sources:{},loadingStates:{}}),actions:{async load(e,t){if(!this.sources[e]){this.loadingStates[e]={isLoading:!0,error:null};try{const o=await t();this.sources[e]=Uo({features:o,timestamp:Date.now()}),this.loadingStates[e]={isLoading:!1,error:null}}catch(o){console.error(`[dataStore] Failed to load source "${e}":`,o),this.loadingStates[e]={isLoading:!1,error:o}}}},clearSource(e){delete this.sources[e],delete this.loadingStates[e]},cacheSourceData(e,t){this.sources[e]=Uo({features:t.normalizedData||[],timestamp:t.timestamp||Date.now()})},hasSourceData(e){return!!this.sources[e]},getSourceData(e){return this.sources[e]?{normalizedData:this.sources[e].features}:null}},getters:{getData:e=>t=>{var o;return((o=e.sources[t])==null?void 0:o.features)??null},isLoading:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.isLoading)??!1},getError:e=>t=>{var o;return((o=e.loadingStates[t])==null?void 0:o.error)??null}}}),aa={_meta:{_comment:"Single source of truth for data-source connections across all doxa-maps bundles.",_comment_token:"Mapbox access token is fetched at runtime from window.MAP_TOKEN_URL (same modular pattern as window.MAP_APP_API_URL). Not hardcoded to any host — set mapboxTokenUrl below or override window.MAP_TOKEN_URL on the host page.",mapboxTokenUrl:"window.MAP_TOKEN_URL"},activeSource:"pray-tools",sources:{"pray-tools":{id:"pray-tools",name:"Prayer.Tools API",type:"rest-api",description:"pray.doxa.life live API — people-group prayer, engagement, and adoption data. Base URL read from window.MAP_APP_API_URL or VITE_API_BASE_URL at runtime.",endpoints:{bulk:"/api/people-groups/list",detail:"/api/people-groups/detail/{slug}",statistics:"/api/people-groups/statistics"},queryParams:{lang:"en"},defaultFields:["slug","name","latitude","longitude","wagf_region","wagf_block","wagf_member","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","country_code","religion","population","has_photo","image_url","people_praying","people_committed","adopted_by_churches","engagement_status","imb_gsec","primary_language","imb_language_family","imb_language_class","imb_language_speakers"],pollFields:["slug","people_praying"],pollInterval:3e5,fallbackSourceId:null,fieldMappings:{uniqueId:"slug",slug:"slug",name:"name",latitude:"latitude",longitude:"longitude",wagfRegion:"wagf_region",doxaRegion:"wagf_region",wagfBlock:"wagf_block",wagfMember:"wagf_member",affinityBlock:"rop1",countryIso:"country_code",religion:"religion",religionCode:"religion",population:"population",hasPhoto:"has_photo",imageUrl:"image_url",photoUrl:"image_url",peoplePraying:"people_praying",peopleCommitted:"people_committed",engagementStatus:"engagement_status",adoptionStatus:"adopted_by_churches",language:"primary_language",cluster:"imb_reg_of_people_2",peopleGroup:"imb_reg_of_people_25",peopleGroupCountry:"imb_reg_of_people_3",languageFamily:"imb_language_family",languageClass:"imb_language_class",languageSpeakers:"imb_language_speakers"},imageConfig:{useField:"imageUrl",fallbackField:null,fallbackUrlTemplate:null,placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg",useSvgPlaceholder:!0}},"doxa-csv":{id:"doxa-csv",name:"DOXA People Groups CSV",type:"csv",path:"assets/data/Joshua-project-ids-Doxa-1439.csv",description:"People groups dataset from DOXA / Joshua Project",fieldMappings:{uniqueId:"ROP3",peopleGroupId:"ROP3",countryCode:"ROG",peopleId3:"PeopleID3",name:"Name",displayName:"NmDisp",alternateName:"NmAlt",description:"PeopleDesc",locationDescription:"LocationDe",country:"Ctry",countryIso:"ISOalpha3",region:"Regn",subRegion:"RegnSub",wagfRegion:"WAGF Region",doxaRegion:"WAGF Region",wagfBlock:"WAGF BLOCK",affinityBloc:"Affbloc",affinityBlock:"ROP1",affinityCode:"AffCd",affinityName:"Aff",peopleCluster:"PplClstr",ethneName:"Ethne",latitude:"Latitude",longitude:"Longitude",population:"Pop",populationClass:"PopCls",status:"Status",engagementStatus:"EngStat",evangelicalLevel:"EvngLvl",gsec:"GSEC",gsecBrief:"GSECbrf",gsecLong:"GSEClng",spiScore:"SPI",spiDescription:"SPIdesc",language:"Lang",languageCode:"ROL",languageFamily:"LangFamily",religion:"Rlgn",religionCode:"ROR",religionDescription:"RORdesc",religionBase:"RlgnBs",religionDiv:"RlgnDiv",bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",resourcesTotal:"ResTot",bibleLevel:"LvlBible",yearPublished:"YrPub",photoCredit:"PicCrdt",photoUrl:"PicURL",hasPhoto:"Photo",isIndigenous:"Indigenous"},imageConfig:{useField:"photoUrl",fallbackField:"peopleId3",fallbackUrlTemplate:"https://joshuaproject.net/assets/media/profiles/photos/p{peopleId3}.jpg",placeholderUrl:"https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg"}}},systemFields:{uniqueId:{description:"Unique identifier per row (slug for API, ROP3+ROG for CSV)",required:!0},peopleGroupId:{description:"People group ID — same group can appear in multiple countries",required:!0},name:{description:"People group display name",required:!0},latitude:{description:"Latitude coordinate for map pin",required:!0},longitude:{description:"Longitude coordinate for map pin",required:!0},engagementStatus:{description:"Boolean — true if engaged_status = 'engaged'",required:!1},adoptionStatus:{description:"Boolean — true if adopted_by_churches > 0",required:!1},peoplePraying:{description:"Number of people currently praying for this group — from pray-tools API",required:!1},peopleCommitted:{description:"Raw count of committed workers for this group — source of engagementStatus",required:!1},languageFamily:{description:"Language family name",required:!1},religion:{description:"Primary religion",required:!1},population:{description:"Population count",required:!1},doxaRegion:{description:"WAGF/DOXA region name",required:!1},photoUrl:{description:"URL to people group photo",required:!1},description:{description:"People group description text",required:!1}}},My=".profile-loader[data-v-ba19fc13]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100dvh);position:relative}.profile-error[data-v-ba19fc13]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",kn=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},Ny={class:"profile-loader"},Iy={key:0,class:"profile-error"},Ry={key:1,class:"profile-error"},Fy=kn({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var x;const o=e,n=Te("profileConfig",null),a=Z(()=>{var L;if(!o.profileConfig)return null;let A;try{A=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(A&&A.assetsBase===void 0){const M=(L=n==null?void 0:n.value)==null?void 0:L.assetsBase;typeof M=="string"&&M&&(A.assetsBase=M)}return A}),r=Z(()=>{var A;return((A=a.value)==null?void 0:A.profile)||null}),s=$f(),i=Z(()=>{var L;const A=(L=a.value)==null?void 0:L.tk;return typeof A=="string"&&A?A:s.value||""});tt(()=>{var A;return(A=a.value)==null?void 0:A.tk},A=>{typeof A=="string"&&A&&fc(A)},{immediate:!0});const l=Z(()=>{var A;return((A=a.value)==null?void 0:A.dataSource)||aa.activeSource}),c=Z(()=>{var A;return((A=a.value)==null?void 0:A.colorSet)||"default"}),u=Z(()=>!1),p=Z(()=>{var A;return((A=a.value)==null?void 0:A.pinHint)!==!1}),g=Z(()=>{var L,M;const A=(((L=a.value)==null?void 0:L.locale)||((M=a.value)==null?void 0:M.lang)||"").split("-")[0].toLowerCase();return Pu.includes(A)?A:""}),k=Te("appI18n",null);Np(()=>{g.value&&k&&(k.global.locale.value=g.value)});const w=Z(()=>{var A,L;return g.value||((L=(A=k==null?void 0:k.global)==null?void 0:A.locale)==null?void 0:L.value)||"en"}),_=Z(()=>{var A;return((A=a.value)==null?void 0:A.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),d=Te("profileModules",null);if(!d)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const h=Z(()=>{if(!r.value)return null;const A=`./${r.value}.vue`;return d[A]?hc(d[A]):(console.error(`[ProfileLoader] Profile not found: "${r.value}". Available:`,Object.keys(d)),null)});Pt("mapboxToken",i),Pt("dataSource",l),Pt("colorSet",c),Pt("profileConfig",a),Pt("instanceId",_),Pt("lang",w);const y=Ey(),v=Ty(),b=Py();try{const A=typeof localStorage<"u"?localStorage.getItem("theme"):null;A&&((x=y.setTheme)==null||x.call(y,A))}catch{}return Pt("uiStore",y),Pt("mapStore",v),Pt("dataStore",b),(A,L)=>(W(),ee("div",Ny,[a.value?h.value?(W(),rt(cl(h.value),{key:2})):(W(),ee("div",Ry,[T("p",null,[L[1]||(L[1]=dt("⚠️ Profile ",-1)),T("strong",null,'"'+ue(r.value)+'"',1),L[2]||(L[2]=dt(" not found.",-1))])])):(W(),ee("div",Iy,[...L[0]||(L[0]=[T("p",null,[dt("⚠️ "),T("strong",null,"doxa-map"),dt(": missing or invalid "),T("code",null,"profile-config"),dt(" prop.")],-1),T("p",null,[dt("Example: "),T("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),h.value&&u.value?(W(),rt(cl(ye(null)),{key:3})):be("",!0),h.value&&p.value?(W(),rt($y,{key:4})):be("",!0)]))}},[["styles",[My]],["__scopeId","data-v-ba19fc13"]]),Oy=Object.assign({"./poster-wall.vue":()=>En(()=>Promise.resolve().then(()=>y0),void 0),"./upg-100-list.vue":()=>En(()=>Promise.resolve().then(()=>Gk),void 0),"./upg-100-mfe.vue":()=>En(()=>Promise.resolve().then(()=>bw),void 0)});if(typeof window<"u"&&((Md=window.mapboxgl)!=null&&Md.setRTLTextPlugin))try{window.mapboxgl.setRTLTextPlugin("https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",null,!0)}catch{}function Dy(){return lf(Fy,{configureApp(e){e.use(_f()),e.use(xy()),e.provide("profileModules",Oy)}})}const By=Dy();typeof customElements<"u"&&(customElements.get("my-upg-100-list-map")||customElements.define("my-upg-100-list-map",By));function jy(e){const t=(e==null?void 0:e.parentElement)||e;if(!t||!t.ownerDocument)return{x:0,y:0};const o=t.ownerDocument.createElement("div");o.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",t.appendChild(o);const n=o.getBoundingClientRect();return o.remove(),{x:n.left,y:n.top}}function Mu(e){const t=ce(null),o=an({position:"fixed",inset:"0"}),n=()=>{var u,p;const r=t.value;if(!r)return;const s=jy(r),i=r.ownerDocument||(typeof document<"u"?document:null),l=((u=i==null?void 0:i.documentElement)==null?void 0:u.clientWidth)||0,c=((p=i==null?void 0:i.documentElement)==null?void 0:p.clientHeight)||0;o.value={position:"fixed",top:`${-s.y}px`,left:`${-s.x}px`,right:"auto",bottom:"auto",width:`${l}px`,height:`${c}px`,boxSizing:"border-box"}};tt(e,r=>{r&&requestAnimationFrame(()=>{n(),requestAnimationFrame(n)})},{flush:"post"});const a=()=>{e.value&&n()};return typeof window<"u"&&window.addEventListener("resize",a),oo(()=>{typeof window<"u"&&window.removeEventListener("resize",a)}),{scrimRef:t,scrimStyle:o}}const Nu=[{id:"west-africa",label:"West Africa",count:118,selector:{type:"wagf_block",value:"west_africa"},bbox:[-21.3926,4.2189,27.2705,17.4735]},{id:"sudan",label:"Sudan",count:105,selector:{type:"country_code",value:"SDN"},bbox:[20.1672,9.0707,39.723,20.499]},{id:"brazil",label:"Brazil",count:103,selector:{type:"country_code",value:"BRA"},bbox:[-77.9152,-25.4802,-32.2913,7.3352]},{id:"east-africa",label:"East Africa",count:96,selector:{type:"wagf_block",value:"east_africa"},bbox:[22.3455,-14.3059,47.7947,20.0984]},{id:"laos",label:"Laos",count:95,selector:{type:"country_code",value:"LAO"},bbox:[99.8741,13.6759,108.2843,23.2186]},{id:"middle-east-core",label:"Middle East Core",count:71,selector:{type:"country_codes",values:["IRN","YEM","IRQ","OMN","SYR","LBN","PSE","QAT","SAU","JOR","BHR","ARE","KWT"]},bbox:[31.1468,9.3265,63.7915,42.0085]},{id:"andean-caribbean",label:"Andean + Caribbean",count:63,selector:{type:"country_codes",values:["COL","PER","VEN","ECU","BOL","PRY","PAN","CUB","SUR","ATG","ABW","BHS","BRB","CYM","CUW","GRD","JAM","LCA","SXM","TCA","VCT","GUY"]},bbox:[-85.7034,-31.2233,-51.7537,31.0655]},{id:"central-africa",label:"Central Africa",count:61,selector:{type:"wagf_block",value:"central_africa"},bbox:[.6063,-11.2806,32.2325,15.7303]},{id:"europe",label:"Europe",count:55,selector:{type:"wagf_region",value:"europe"},bbox:[-42.2659,-27.2213,168.5645,85]},{id:"oceania-indonesia",label:"Oceania + Indonesia",count:53,selector:{type:"union",selectors:[{type:"wagf_region",value:"oceania"},{type:"country_code",value:"IDN"}]},bbox:[83.9392,-43.091,-136.017,21.4266]},{id:"mainland-se-asia-philippines",label:"Mainland SE Asia + Philippines",count:50,selector:{type:"country_codes",values:["VNM","MYS","THA","MMR","BRN","KHM","PHL"]},bbox:[88.6434,.084,129.7854,26.789]},{id:"maghreb-egypt",label:"Maghreb + Egypt",count:47,selector:{type:"country_codes",values:["DZA","LBY","MAR","MRT","ESH","EGY","TUN"]},bbox:[-21.8716,14.0878,37.0339,39.1426]},{id:"southern-africa-islands",label:"Southern Africa + Islands of East Africa",count:39,selector:{type:"union",selectors:[{type:"wagf_block",value:"southern_africa"},{type:"wagf_block",value:"islands_of_east_africa"}]},bbox:[.638,-38.0929,63.5885,4.4534]}],Iu=[{id:"asia-india-rajasthan",label:"Northwest India",count:116,selector:{type:"pg_slugs",values:["arain-dogri","arain-punjabi","badi-marwari","bania-dogri","bania-kashmiri","baret","bargi","bhand-kashmiri","bhojki","bhopa","bhutta","bomba","brukpa","budhan","campa","cejara","chadwa","cheintz","chheepi","chobdar","chopan","chungar","cudigar","dadupanthi","damami","daoli","daule","dhaki","dhobi-dogri","dhola","dhyar","dokhpa","domal","dosali","gagra","galwan","ganz","gardi","ghihara","gorkun","gosain-kangri","gosain-rajasthani","gurru","hadi","hajjam-haryanvi","hajjam-kashmiri","hesi","hiranbaj","kawoj","khadim","kharol","khatik-chambeali","khatik-punjabi","kraal","kriyagar","kucband","lakhera-haryanvi","laskari","lohar-dogri","malaneese","mangnyar-muslims","manhas","manjygur-muslims","masku","moghol-dogri","moghol-marwari","mogia","mon-india","murhid","nagbansi-dogri","nagda","nai-mewari","najjar","namdagur","naqqas","nar","nicar","nyaria","pajabgar","pakhimara","pangwal-buddhists","pangwala","pinjara-punjabi","pohul","purig-pa","racband","rajkumhar","rajpurohit","ratal","rath","rehar","runwalas","sain","sanchia","sanhai","sansoi","santia","saraogi","sayyid-pahari","seok","shaksaz","shikari","shina-india","singiwala","sofi","sorgars","sudhan","sunga","swangla","tak","thavi","usta","van-baoriya","ved","vijabargiya","waza"]},bbox:[69.9484,22.3586,79.972,35.9424],provinceLabel:"Rājasthān + Haryāna + Himāchal Pradesh + Jammu and Kashmīr + Punjab + Chandīgarh + Ladākh"},{id:"asia-india-andhra-pradesh",label:"South-Central India",count:107,selector:{type:"pg_slugs",values:["accukattavandlu","aguru","aiyarakulu","andhra-vaisnawa","ansari-momin-telugu","arakala","are-bondili","are-kapu","are-katika","atollu","attagara","bandollu","bania-agarwal-telegu","bayita-kammara","berad","bhatrajulu","bhondari","bindla","bolla","budakukkala","cakketakare","camadollu","cippollu","cundollu","dammali","dasari","gandalla","gandla","gangireddula","ganta-sayebulu","garadi","gavara","godagali","godari","gosangi","guddi-eluguwallu","gurika","hajjam-telugu","hatgar","jains-telugu","jakkula","jandra","jethi","kachi","kaikali","karnam","karnibhakthulu","katipamula","khatik-telugu","kommu-dasari","konda-kammara","kuliya","kurakula","lakkamari-kapu","madiga-dasu","majjula","mala-masti","malis","mandula","manna-dhora","matangi","medari","mitha-ayyalavar","moghal-telugu","mondivogula","muchi-chamar","muli","musti-chenchu","nagavamsam","nakhasa","neyyala","ontaris","padigarajulu","pagativeshagallu","paky","pambala","pamidi","pamula","pancaratra-srivaisnavas-brahmans","pariki-muggula","patkars","rajannalu","reddi-dora","reddika","runjalavallu","sadaru","sadhu-chetty","sakunapaksollu","samayavallu","saradagallu","senapathi","silavantulu","sindhollu","swakulasali-koshti","tamboli-telugu","thogataveera-kshatriya","tirugatigantla","tolakari","udupula","uppara","vaikhanasa-brahmans","verra-musti","vipravinodulu","yata","yatagiri","yatla","yite"]},bbox:[76.462,12.5091,84.8294,19.785],provinceLabel:"Andhra Pradesh + Telangāna"},{id:"asia-india-odisha",label:"East India",count:88,selector:{type:"pg_slugs",values:["badhai-chhattisgarhi","baha-i","bairagi-chhattisgarhi","bairagi-odia","bangti","banka","bargah","bari-odia","bauti","bavuri","beldar-chhattisgarhi","bhangi-chhattisgarhi","bharewa","bharia-bhumia-chhattisgarhi","bhattra-bhatri","bhoi-odia","bhunjia","bondo","brahman-jyoti","candhai-maru","chaikwa","chatarkheya","cherua","citrakar","daitapati","damla","darji-odia","dhakad-halbi","dhera","didayi","dom-chhattisgarhi","eneti-dora","ghadwa","ghantarghada","ghogia","ghusuria","godra","gosain-chhattisgarhi","guna","irika","janughanta","jogi-halbi","jogi-odia","kachchi-alia","kalal-sadri","kamila","kapasiya","kasar-odia","khadura","khairwar-chhattisgarhi","khandwal","khati-odia","khatik-chhattisgarhi","kobari","kol-chhattisgarhi","koraga","kuda","kuli","kurunga","kusta","liari","maghia","mahuria","malia","markande-kanjia","mundapotta","munnewar","nai-odia","naksia","noliya","oriya","panara","pando","panka-odia","parenga","radhi","rana","sabakhia","samasi","sanei","sayyid-chhattisgarhi","sayyid-odia","sinduria","son-koli","suda","thanapati","tharua","tula-vina"]},bbox:[80.3325,17.5357,87.6538,23.9578],provinceLabel:"Odisha + Chhattīsgarh"},{id:"asia-india-gujarat",label:"West India",count:90,selector:{type:"pg_slugs",values:["agaria","agri","anjana-patel-gujarati","bafan","bairagi-gujarati","baloch","bamcha","banjania","barot","barthari","bhodala","borpi","caki","champta","cunara","dafer","dangasiya","dasnami-bawa","depala","dudhwala","gadhai","galiara","garmatan","garvi","gavli","ghantiya","golarana","gosain-gujarati","hajjam-gujarati","halaypotra","hingora","hingorza","jat-muslim","juneja","kahar-gujarati","kamalia","kambodia-bhagat","kapadi","kasar-gujarati","kasbati","kathi","ker","khalpa","khaskeli","khatik-gujarati","langa","machhiyara","majothi","makrani","mandali-muslims","mer","mir","miyana","moghol-gujarati","mujavar","muslim-khatri","muslim-lakhera","muslim-patel","mutwa","narsinghpura","nayak-muslims","node","padhar","panar","paradhi","patanwadia","patni-jamat","patni-vankars","pomla","rathodia","raysipotra","royma","sagar","sandhai-muslims","saranias","sayyid-gujarati","shravan","siddi","sompura-salat","tai","targala","theba","tirgar","turi-barot","vadi","vahivanca-barot","vayati","vyapari","wagheri","wandharo"]},bbox:[68.1752,20.1033,74.3448,24.7906],provinceLabel:"Gujarāt"},{id:"asia-india-karnataka",label:"Southwest India",count:86,selector:{type:"pg_slugs",values:["adiyan","agasa","ansari-momin-kannada","arasu","ayri","bagga","baira","balasantoshi","bandi","bania-kannada","bania-konkani","batada","bayil-kammara","bayil-pattar","bellara","bestha","chaptegar","charodi","chenna-dasar","dombi-dasa","durga-murga","gabit","galada-kokani","ganti-chores","gatti","gauli","ghadi","godda","gomantak-maratha","gond-kannada","gudikara","guraw","hajjam-kannada","halleer","harkantra","hasalaru","helawa","holeya-dasari","jatigar","jaweri","jogi-telugu","jogi-tulu","khakar","kolari","komara-panta","koosa","koraga-korra","kottari","koyava","kudiya","kudubi","kummara-kumbara","kurahina-setti","ladar","maila","malaikudi","maleru","manser","meda","mhalo","mith-gauda","mogaveera","mundala","nadors","nai-kannada","nairy","natua","nawaiyat","padarthis","padiyar","pambada","pattegar","pendar","pinjara-kannada","rachavar","raddi","rajapuri","raneyar","raval","raya-rawat","sapalyas","sayyid-kannada","soligaru","sudir","thammadi","vilyagaras"]},bbox:[73.2695,11.4418,78.7305,18.4466],provinceLabel:"Karnātaka + Goa"},{id:"asia-india-kerala",label:"Malabar Coast",count:78,selector:{type:"pg_slugs",values:["allar","ambalavasi","anthur-nair","arayavati","ayyanavar","bakuda","bania-malayalam","bowis-mogeyar","cakkala","cakkyar-nambiyar","chakkiyar","chamar-muchi-malayalam","chengazhi-nambiar","cingatanmar","dheevara","erawallan","ezhavathi","ilayatu","indo-french","indo-vietnamese","kakkalan","kalanadies","kalladi","kallattu-kurup","karimpalan","kavara","kavuthiyan","kidaran","kocu-wellan","kollan","kootan","kumar-kshatriya","kummara-kusuvan","kunduvadian","kurukkal","laccadive","malai-pandaram","malayalar","maran-nairs","marasari","mavilan","moger-malayalam","moothan","mukkari","musari","muttatu","nalkadaya","nambutiris","narsanna","nasuvan","nayadi","otans","padannan","palakad-tandans","pandithar","pathinaickans","pathiyan","pisaroti","poduval","pulisari","puspakan-unni","reddi","samanthan","sonavar","thachanad-moopan","tiyattunni","urindavan","vadugan","valinjiyar","vetan","vettalaikarans","vettiyan","vilkurup","visavan","wainadan-cetti","wainadan-kader","wainadan-pulayan","wayanad-pathiyan"]},bbox:[72.8992,7.9875,80.5765,13.0102],provinceLabel:"Kerala + Puducherry + Lakshadweep"},{id:"asia-india-tamil-nadu",label:"Southeast India + Andaman Islands",count:73,selector:{type:"pg_slugs",values:["alavan","andamanese","ansari-momin-tamil","anuppan","aranadan","baig","bhatu-andamani","bondili","brahmin-andamani","cekkala","chamar-muchi-tamil","chayakkaran","coorgi-andamanese","dasa-palanjika","dayare","dhobi-tamil","gangawar","great-andamanese","gudugudupandi","gurukkal","jains-tamil","jarawas","jati-pillai","kambalattan","kambar","kannada-naicker","kannada-saineegar","karaiyar","karlar","karna-sale","katesar","kattiakaran","kayalar","kepmari","koliyan","kongu-vaisnawa","kongu-vellala-gounder","kota","krishnavaka","kudumi","kuluvan","kummara-kummari","kunnuva-vellalar","malai-vellala","maleyan","maniyattikkaran","mudugar","nakkala","namdeo-maratha","nanjil-mudali","onge","pannadi","panniandi","parkavakulam","parvatarajakulam","pattanavan","perumkollar","salivahanam","savalakkarar","sayyid-tamil","semman","senaithalaivar","sentinelese","siviar","tambiran","telengi","tholuva-naicker","thoraiyar","tondman","uppillian","urikkar-naicker","vellaiyan-kuppam-padaiyaci","vettaikkaran"]},bbox:[74.7588,7.4577,94.7701,13.968],provinceLabel:"Tamil Nādu + Andaman and Nicobar Islands"},{id:"asia-india-madhya-pradesh",label:"Central India",count:88,selector:{type:"pg_slugs",values:["anjana","attar-saibulu","baharupi","banchada","baraua","barda","bari-hindi","bari-marathi","basudeva","berar","bhanumati","bharwad","bhoi-marathi","bhurtia","chari","chitari","citrakathi","dhawad","dhed","dom-marathi","gachha","garodi","garpagari","gondhali","gopal","hajjam-hindi","hardas","hatkar","jadam","jains-hindi","jhadi","kachchi-kushwaha","kachera-bagheli","kaghzi","kandera","kapewar","kasar-hindi","kasikapadi","kathar","kharvi","khatik-marathi","kokaniz","kolhati","kudimahan","ladia","ladsi","lahangir","lajjhar","lodha-marathi","lonar","mana","manbhav","mankar","mitna","mondiwar","muskhan","muslim-gond","muslim-kachera","nahal","naikpod","naita","namdeo","nandiwala","naoda","nat-bagheli","neeli","nema","nilkanth","pangul","phularis","pinjara-marathi","pochammalollu","prabhu-patane","rujjhar","sagharias","sahi","sais","sanghar","sarodi","sikligar","sisgars","soria","sutar-mistry","takari","velip","waidu","yelmar","zamral"]},bbox:[69.6832,14.969,83.1757,26.995],provinceLabel:"Madhya Pradesh + Mahārāshtra + Dādra and Nagar Haveli and Damān and Diu"},{id:"asia-india-uttarakhand",label:"North India + Nepal",count:92,selector:{type:"pg_slugs",values:["ahmadiya","anwal","arain-kannauji","badhik","badi","balahar","banpar","bargala","bargujar","bhuiyar","bisati","camma","charwaha","chaudangsi","dhamin","dhekaro","gadhia","gadihar","gandharv","habura","hijra","hindu-santarash","jadupetia","jains-maithili","jarkhandi-hajjam","jarkhandi-julaha","jharkhandi-nai","jimdar","jogi-angika","kadar","kankali","khangar-bundeli","khatbune","kuthliya-bora","modaks","mujavir","mukeri","nagbansi","nalband","pankhiya","patari","puran","putliwale","rai-bhat-muslims","rajdhop","raji-india","rastogi","rave","sahisia","sayyid-garhwali","sheikhzade","shershabadia","sukiyar","tagewale","thakurai","tikulhara","tilli","turuk-pasi","baniya","barae","bhand","bhediyar","bodo","byangsi","chidmar","churaute","dhobi","dhunia","dura","gangai","gyasumdoba","halkhor","haluwai","jaine","kaike","kamar","kanu","kayastha","lodha","makalu-sherpa","mali","mallah","marwadi","nurang","pahari-nagarkotis","puma","rajbhar","raji-nepal","shaikh-bhojpuri","sudhi","surel","tseku"]},extraCountryCodes:["NPL"],bbox:[76.0644,22.1727,88.8858,31.2428],adm0:["NPL"],provinces:["Uttarākhand","Uttar Pradesh","Bihār","Jhārkhand","Delhi"],provinceLabel:"North India + Nepal"},{id:"asia-india-west-bengal",label:"Northeast India + Bangladesh + Bhutan",count:87,selector:{type:"pg_slugs",values:["aiton","angarok","ansari-momin-bengali","bagti","baida","baisya","bajandar","banai","banik-bania","barua","bhakta","bhalla","bhujel","bilaspuri","byadh","chamar-assamese","chunari","dalu-india","dhal-kstriya","dhimal","ghazi","hajjam-assamese","hajjam-bengali","haluadas","jains-bengali","kakmara","kanda","kapuria","kasar-bengali","khairwar-bengali","khalifa","khamba","khamyang","khatik-bengali","khowa","koiren","kumhar-assamese","kurol","lois","mahisyadas","malakar","man","maria-muslims","matak","mirshikar","momba","mukhi","na","nai-assamese","namasudra-assamese","paharia","pangans","pinjara-dhunia-bengali","sabar","saha","serdukpen","shabdakar","siyalgar","sudra-das","sunuwar","sutradhar","taiphake","tamboli-bengali","teli-assamese","thanga","tripuri-kumhar","tripuri-namasudra","turun","yakha","yatibi","zakhrin","brokkat","chali","dalu-bangladesh","deaf-bhutanese","doya","dzalakha","gongduk","koda","kurtop","lakha","lunape","matpa","nupbi","nyenpa","ole","ushoi"]},extraCountryCodes:["BGD","BTN"],bbox:[84.6438,21.028,98.3478,29.4168],provinceLabel:"West Bengal + Sikkim + Meghālaya + Assam + Arunāchal Pradesh + Manipur + Tripura + Bangladesh + Bhutan",adm0:["BGD","BTN"]},{id:"asia-china-yunnan-province",label:"Southern China",count:109,selector:{type:"pg_slugs",values:["a-ou","ai-cham","akeu","aling","alu","angku","ani","aoka","apu","baonuo","beidongnuo","bit-china","black-thai","bugan","buyang","cai","changpao","chesu","dianbao","diao","doupo","eastern-samadu","eastern-xiangxi-miao","ga-mong","gao","gelao","guaigun","ha-li","hagei","hongjin-tai","hu","huishui-miao","jiamao-li","jiasou","jino","khmu","kong-ge","kucong","laba","labapo","laowu","lati-china","lawu","liang-e","linghua","liping-baheng","liude","liujia","longjia","lu","lupanshui-miao","mang-china","manmet","mashan-miao","meifu-li","mengwu","mishaba-laluo","mo","mosuo","mozhihei","muda","muzi","naheng","nanjingren","northern-awu","northern-dong","northern-muji","numao","palyu","panxian-nasu","pingdi-yao","popei","pubiao","puman","pusha","qanu","qiubei-zhuang","qixingmin","rao","rumai-de-ang","sanda","sanqiao","shenzhou","sichuan-mongols","ta-er","tagu","tai-lu","tai-pong","tulao","tusu","wenma-zhuang","western-gaisu","western-samadu","wopu","wunai","xi","xialusi","xiaoliangshan-nosu","xijima","xinping-lalu","xuzhang-lalu","ya","yanghuang","yerong","yizi","youmai","younuo-bunu","yunnan-mongol","yunnan-shui"]},bbox:[96.3204,17.3374,113.2066,29.9169],provinceLabel:"Yunnan Province + Guizhou Province + Guangxi Zhuang Autonomous Region + Hunan Province + Hainan Province",provinces:["Yunnan Province","Guizhou Province","Guangxi Zhuang Autonomous Region","Hunan Province","Hainan Province"]},{id:"asia-china-tibet-autonomous-region",label:"Mainland China + Mongolia",count:53,selector:{type:"pg_slugs",values:["adi","ainu-china","alxa-mongols","bogar-lhoba","bogol","boyu-tibetans","bunan","buryat","butuo-nosu","cona-monba","darang-deng","enger-yugur","ersu","geman-deng","heishui","henan-mongols","keji","kyrgyz","luzu","manyak","medog-monba","miguba","ming","minyak","naju","namuyi","nghari-tibetans","olot","ongkor","puroik","saman","saragh-yugur","sarikoli-tajiks","shixing","suodi-nosu","tongren-bonan","uzbeks","wakhi-china","western-xibe","wutun","yidu-lhoba","yinuo-nosu","za"]},extraCountryCodes:["MNG","PRK","JPN"],bbox:[69.2237,24.2385,130.4094,51.3865],provinceLabel:"Tibet Autonomous Region + Sichuan Province + Xinjiang Uyghur Autonomous Region + Gansu Province + Inner Mongolia Autonomous Region + Qinghai Province + Heilongjiang Province + Mongolia + Japan + North Korea",provinces:["Tibet Autonomous Region","Sichuan Province","Xinjiang Uyghur Autonomous Region","Gansu Province","Inner Mongolia Autonomous Region","Qinghai Province","Heilongjiang Province"],adm0:["MNG"]}],Ru=[{id:"uncovered-scatter",label:"Scattered / Diaspora",count:8,contiguous:!1,contiguityExempt:!0,flag:"allowed non-contiguous bucket (S5-D3) — diaspora/island/micro-territory strays + 2 unstamped CHN border PGs",selector:{type:"country_codes",values:["AND","CCK","GUF","USA"]},extra_slugs:["jing","pana-china"],bbox:[-150.7534,-18.855,123.4288,50.0639]},{id:"uncovered-nas-a",label:"Central Asia + Pakistan",count:55,contiguous:!0,contiguityExempt:!1,flag:"NAS-A real frontier zone (09b-asia-contiguity-v2 N-D6): MERGE of the former uncovered-sa-west (AFG+PAK) + uncovered-central-asia (AZE/KGZ/TJK/UZB) into ONE zone owning BOTH the legend count AND the ADM0 render coverage. AFG-PAK-UZB-TJK-KGZ form one contiguous land-border core; AZE is the flagged Caspian-separated near-member (S5-D2). KAZ stays deaf-only (its only PG is deaf-kazakhstanis). Target coverage 55 (design directive; uncovered coverage counts are carried through, not recomputable from admin-membership — NOTE-COUNT). ID kept in the uncovered-* family (NOT asia-frontier-nas-a) because zone-geometry.isAsiaZone() routes any asia-*-prefixed id down the ADM1 listId path — an asia-* id would resolve 0 ADM0 polys and render NOTHING. uncovered-* keeps it on the country_codes/ADM0 render path; re-prefixing is the render-layer's NEXT slice, not this one.",selector:{type:"country_codes",values:["AFG","AZE","KGZ","PAK","TJK","UZB"]},bbox:[42.6538,23.2204,79.3424,44.9954],provinceLabel:"Pakistan + Afghanistan + Uzbekistan + Tajikistan + Kyrgyzstan + Kazakhstan + Azerbaijan"}],Gy=Qo&&Qo.tagName.toUpperCase()==="SCRIPT"&&Qo.src||new URL("my-upg-100-list.js",document.baseURI).href,Oo=e=>String(e||"").trim().replace(/\/+$/,"");function Fu(){try{const t=String(Gy||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function Uy(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return Oo(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return Oo(o)}return Oo(Fu()||"")}function Es(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const n=Oo(t);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const o=Oo((e==null?void 0:e.treeBase)||"")||Oo(Fu()||"");if(o)try{const n=typeof document<"u"?document.baseURI:void 0;return Oo(new URL(o+"/../assets",n).href)}catch{return Oo(o.replace(/\/[^/]*$/,"")+"/assets")}return"./assets"}function Ky({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",r=e||(n==null?void 0:n.shareUrl);if(typeof r=="string"&&r.trim())return r.trim();const s=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(s){if(/^https?:\/\//i.test(s))return s;if(s.startsWith("/"))return a?window.location.origin+s:s;const i=Uy(n),l=s.replace(/^\.\//,"");if(i)return i+"/"+l;if(typeof document<"u")try{return new URL(l,document.baseURI).href}catch{}return l}return a?window.location.origin+window.location.pathname:""}const zy=["country_code","wagf_region","wagf_block","primary_language","religion"];function Hy(e){return e==null?{value:null,label:null}:typeof e=="object"?{value:e.value??null,label:e.label??null}:{value:e,label:null}}function Vy(e){if(e==null||typeof e!="object")return e;const t={...e};for(const o of zy)if(o in t){const{value:n,label:a}=Hy(t[o]);t[o]=n,a!=null&&(t[`${o}_label`]=a)}return t}function Ts(e){return Array.isArray(e)?e.map(Vy):[]}function Ps(e){return Array.isArray(e)?e:e&&typeof e=="object"?e.posts||e.data||e.records||e.results||e.items||[]:[]}function wn(e){return e==null||typeof e!="object"?null:e.slug??null}function Ou(e){return typeof e=="string"&&e.toLowerCase().includes("deaf")}function Wy(e){const t=e==null?null:e.rop1;return t==null?null:typeof t=="object"?t.value??null:t}function xn(e,t){const o=new Set;if(e==null||typeof e!="object"||typeof e.type!="string")throw new Error(`selector-evaluator: malformed selector (expected an object with a string \`type\`), got: ${JSON.stringify(e)}`);const n=Array.isArray(t)?t:[];switch(e.type){case"country_code":{const a=e.value;for(const r of n)if(r&&r.country_code===a){const s=wn(r);s!=null&&o.add(s)}return o}case"country_codes":{const a=new Set(Array.isArray(e.values)?e.values:[]);for(const r of n)if(r&&a.has(r.country_code)){const s=wn(r);s!=null&&o.add(s)}return o}case"wagf_block":{const a=e.value;for(const r of n)if(r&&r.wagf_block===a){const s=wn(r);s!=null&&o.add(s)}return o}case"wagf_region":{const a=e.value;for(const r of n)if(r&&r.wagf_region===a){const s=wn(r);s!=null&&o.add(s)}return o}case"union":{const a=Array.isArray(e.selectors)?e.selectors:[];for(const r of a){const s=xn(r,n);for(const i of s)o.add(i)}return o}case"deaf_predicate":{const a=new Set(Array.isArray(e.regions)?e.regions:[]);for(const r of n){if(!r)continue;if((Ou(r.slug)||Ou(r.name))&&a.has(r.wagf_region)){const i=wn(r);i!=null&&o.add(i)}}return o}case"affinity_bloc":{const a=e.rop1;for(const r of n)if(r&&Wy(r)===a){const s=wn(r);s!=null&&o.add(s)}return o}default:throw new Error(`selector-evaluator: unknown selector type "${e.type}" (supported: country_code, country_codes, wagf_block, wagf_region, union, deaf_predicate, affinity_bloc)`)}}const Yy=Object.freeze(Object.defineProperty({__proto__:null,default:xn,evaluate:xn},Symbol.toStringTag,{value:"Module"})),qy={class:"sec-head"},Jy={class:"sec-name"},Zy={class:"sec-count"},Xy={class:"grid"},Qy=["data-list-id"],e0=["aria-label","onClick"],t0={class:"hcount"},o0={class:"main"},n0=["src","alt","title","onClick","onKeydown","onError"],a0={key:1,class:"ph"},r0={class:"ph-label"},s0={key:0,class:"ph-count"},i0={class:"tape pfs"},l0=["onClick","aria-label"],c0=["onClick","aria-label"],u0=["onClick","aria-label"],d0={class:"modal",role:"dialog","aria-live":"polite"},p0={class:"modal-kind"},g0={class:"modal-title"},f0={class:"modal-err"},h0={class:"modal-soon"},m0={class:"bar"},b0={class:"modal-phase"},y0=Object.freeze(Object.defineProperty({__proto__:null,default:{__name:"poster-wall",setup(e){const t={lists:Nu,asia_lists:Iu,uncovered_lists:Ru},o=Te("profileConfig",ce(null)),n=Z(()=>{var I;return((I=o.value)==null?void 0:I.instanceId)||"upg-100-wall"}),a=Z(()=>{var I;return((I=o.value)==null?void 0:I.isDark)===!0}),r=Z(()=>Es(o.value)),s=I=>`${r.value}/posters/${I}.webp`,i=typeof window<"u"&&window.MAP_APP_API_URL||void 0||"",l={"west-africa":"Africa",sudan:"Africa","east-africa":"Africa","central-africa":"Africa","southern-africa-islands":"Africa","maghreb-egypt":"Middle East","middle-east-core":"Middle East","uncovered-nas-a":"Central Asia",laos:"Southeast Asia + Oceania","oceania-indonesia":"Southeast Asia + Oceania","mainland-se-asia-philippines":"Southeast Asia + Oceania",brazil:"Americas","andean-caribbean":"Americas","uncovered-scatter":"Americas",europe:"Europe"},c=I=>l[I]?l[I]:I.startsWith("asia-india-")?"India":I.startsWith("asia-china-")?"China + Mongolia":"Other",u=Z(()=>[...t.lists||[],...t.asia_lists||[],...t.uncovered_lists||[]].filter(I=>I&&I.id)),p=Z(()=>{const I=new Map;for(const B of u.value){const H=c(B.id);I.has(H)||I.set(H,[]),I.get(H).push(B)}return[...I.entries()].map(([B,H])=>({name:B,items:H.slice().sort((O,R)=>(R.count||0)-(O.count||0)),total:H.reduce((O,R)=>O+(R.count||0),0)})).sort((B,H)=>H.total-B.total)}),g=ce(null);function k(I){const B=g.value===I.id;g.value=B?null:I.id,window.dispatchEvent(new CustomEvent("doxa-upg-100-list:show-on-map",{detail:{instanceId:n.value,listId:B?null:I.id,label:B?null:I.label}}))}const w=I=>`${r.value}/previews/${I}.webp`,_=ce({}),d=ce(null),{scrimRef:h,scrimStyle:y}=Mu(d);function v(I,B,{autoprint:H=!1}={}){const O=document.createElement("iframe");O.setAttribute("aria-hidden","true"),O.style.cssText="position:fixed;right:0;bottom:0;width:1px;height:1px;opacity:0;border:0",document.body.appendChild(O);const R=O.contentDocument;if(!R)return O.remove(),null;R.open(),R.write(B),H&&R.write('