diff --git a/documentation/readme-images/cap1-single-element.png b/documentation/readme-images/cap1-single-element.png index d2519f1a..97d10115 100644 Binary files a/documentation/readme-images/cap1-single-element.png and b/documentation/readme-images/cap1-single-element.png differ diff --git a/documentation/readme-images/cap2-adoption.png b/documentation/readme-images/cap2-adoption.png index 261281bc..220b3d94 100644 Binary files a/documentation/readme-images/cap2-adoption.png and b/documentation/readme-images/cap2-adoption.png differ diff --git a/documentation/readme-images/cap2-engagement.png b/documentation/readme-images/cap2-engagement.png index c252d4c7..70fc4b7a 100644 Binary files a/documentation/readme-images/cap2-engagement.png and b/documentation/readme-images/cap2-engagement.png differ diff --git a/documentation/readme-images/cap2-prayer.png b/documentation/readme-images/cap2-prayer.png index 02516d9b..336b25a4 100644 Binary files a/documentation/readme-images/cap2-prayer.png and b/documentation/readme-images/cap2-prayer.png differ diff --git a/documentation/readme-images/cap3-monolithic-research.png b/documentation/readme-images/cap3-monolithic-research.png index b7484841..5603a02d 100644 Binary files a/documentation/readme-images/cap3-monolithic-research.png and b/documentation/readme-images/cap3-monolithic-research.png differ diff --git a/documentation/readme-images/cap4-upg100-mfe.png b/documentation/readme-images/cap4-upg100-mfe.png index 798b1c4e..32608022 100644 Binary files a/documentation/readme-images/cap4-upg100-mfe.png and b/documentation/readme-images/cap4-upg100-mfe.png differ diff --git a/documentation/readme-images/cap5-doxa-maps-spa.png b/documentation/readme-images/cap5-doxa-maps-spa.png index de0c0ab1..28148e5c 100644 Binary files a/documentation/readme-images/cap5-doxa-maps-spa.png and b/documentation/readme-images/cap5-doxa-maps-spa.png differ diff --git a/documentation/readme-images/cap5-plugin-studio.png b/documentation/readme-images/cap5-plugin-studio.png index cb04353c..5ee7a914 100644 Binary files a/documentation/readme-images/cap5-plugin-studio.png and b/documentation/readme-images/cap5-plugin-studio.png differ diff --git a/documentation/readme-images/deploy2-mobile-upg100.png b/documentation/readme-images/deploy2-mobile-upg100.png index ac1090e7..7f61bc9b 100644 Binary files a/documentation/readme-images/deploy2-mobile-upg100.png and b/documentation/readme-images/deploy2-mobile-upg100.png differ diff --git a/documentation/readme-images/exp-prayer-walk-planner.png b/documentation/readme-images/exp-prayer-walk-planner.png index 6ec620ca..cf06bdcb 100644 Binary files a/documentation/readme-images/exp-prayer-walk-planner.png and b/documentation/readme-images/exp-prayer-walk-planner.png differ diff --git a/documentation/readme-images/exp-wall-of-people-groups.png b/documentation/readme-images/exp-wall-of-people-groups.png index 0fd14ce9..0b5e9212 100644 Binary files a/documentation/readme-images/exp-wall-of-people-groups.png and b/documentation/readme-images/exp-wall-of-people-groups.png differ diff --git a/documentation/readme-images/lang-arabic-upg100.png b/documentation/readme-images/lang-arabic-upg100.png index 08b64b34..1d3616a3 100644 Binary files a/documentation/readme-images/lang-arabic-upg100.png and b/documentation/readme-images/lang-arabic-upg100.png differ diff --git a/documentation/readme-images/prod-big-picture.png b/documentation/readme-images/prod-big-picture.png index 8028ab78..9d5e09d9 100644 Binary files a/documentation/readme-images/prod-big-picture.png and b/documentation/readme-images/prod-big-picture.png differ diff --git a/documentation/readme-images/prod-cities-internet-phone.png b/documentation/readme-images/prod-cities-internet-phone.png index e4816b88..a5fc467d 100644 Binary files a/documentation/readme-images/prod-cities-internet-phone.png and b/documentation/readme-images/prod-cities-internet-phone.png differ diff --git a/documentation/readme-images/prod-cities-internet.png b/documentation/readme-images/prod-cities-internet.png index 435e55df..f9841225 100644 Binary files a/documentation/readme-images/prod-cities-internet.png and b/documentation/readme-images/prod-cities-internet.png differ diff --git a/documentation/readme-images/prod-gospel-resources-phone.png b/documentation/readme-images/prod-gospel-resources-phone.png index a2e74089..e92916db 100644 Binary files a/documentation/readme-images/prod-gospel-resources-phone.png and b/documentation/readme-images/prod-gospel-resources-phone.png differ diff --git a/documentation/readme-images/prod-gospel-resources.png b/documentation/readme-images/prod-gospel-resources.png index 476756ff..4ede0ebf 100644 Binary files a/documentation/readme-images/prod-gospel-resources.png and b/documentation/readme-images/prod-gospel-resources.png differ diff --git a/documentation/readme-images/prod-prayer-phone.png b/documentation/readme-images/prod-prayer-phone.png index 03475eb0..6cd5e6e4 100644 Binary files a/documentation/readme-images/prod-prayer-phone.png and b/documentation/readme-images/prod-prayer-phone.png differ diff --git a/documentation/readme-images/prod-regions-phone.png b/documentation/readme-images/prod-regions-phone.png index 5dc5f05a..ea04a893 100644 Binary files a/documentation/readme-images/prod-regions-phone.png and b/documentation/readme-images/prod-regions-phone.png differ diff --git a/documentation/readme-images/prod-regions.png b/documentation/readme-images/prod-regions.png index 491f32d3..c167ec05 100644 Binary files a/documentation/readme-images/prod-regions.png and b/documentation/readme-images/prod-regions.png differ diff --git a/documentation/readme-images/prod-research-gallery-phone.png b/documentation/readme-images/prod-research-gallery-phone.png index c452ba02..647e8a9f 100644 Binary files a/documentation/readme-images/prod-research-gallery-phone.png and b/documentation/readme-images/prod-research-gallery-phone.png differ diff --git a/documentation/readme-images/prod-simple-research-phone.png b/documentation/readme-images/prod-simple-research-phone.png index 8449ebf8..a1394f27 100644 Binary files a/documentation/readme-images/prod-simple-research-phone.png and b/documentation/readme-images/prod-simple-research-phone.png differ diff --git a/documentation/readme-images/prod-simple-research.png b/documentation/readme-images/prod-simple-research.png index 90c65fad..ebbe91d4 100644 Binary files a/documentation/readme-images/prod-simple-research.png and b/documentation/readme-images/prod-simple-research.png differ diff --git a/documentation/readme-images/shot-bundles.json b/documentation/readme-images/shot-bundles.json index c9d9f8e7..c15da198 100644 --- a/documentation/readme-images/shot-bundles.json +++ b/documentation/readme-images/shot-bundles.json @@ -1,23 +1,23 @@ { "cap1-single-element": { "bundle": "all-people-groups", - "sha256": "483a04b2ae46e00b0e0530c9291070b30c9baeaddf2940cd61e04cdffb382095" + "sha256": "9e94ebdea30cb458a3bf6d28342ecbe7c4f403157b27b3b0bde9543a1882ac53" }, "cap2-adoption": { "bundle": "doxa-simple-map", - "sha256": "646efc14670963e1d3e1b1982ff2130562f28183a5908ef3c0c5dbd8d7f9597a" + "sha256": "e429739d0fe8ca87943f8e7c1192193d0979a6a7be9d3aada3229833d722a9ec" }, "cap2-engagement": { "bundle": "doxa-simple-map", - "sha256": "646efc14670963e1d3e1b1982ff2130562f28183a5908ef3c0c5dbd8d7f9597a" + "sha256": "e429739d0fe8ca87943f8e7c1192193d0979a6a7be9d3aada3229833d722a9ec" }, "cap2-prayer": { "bundle": "doxa-simple-map", - "sha256": "646efc14670963e1d3e1b1982ff2130562f28183a5908ef3c0c5dbd8d7f9597a" + "sha256": "e429739d0fe8ca87943f8e7c1192193d0979a6a7be9d3aada3229833d722a9ec" }, "cap3-monolithic-research": { "bundle": "doxa-research-map", - "sha256": "9a7161f8337ff9efffcf4c8092157b5a8932de91c69fb541672f92c040033716" + "sha256": "11ea5ecc91ecdbfd16e0638cfceecf9c835e0a88f3de2a2aea4fb282828c287f" }, "cap4-upg100-list": { "bundle": "my-upg-100-list", @@ -25,78 +25,78 @@ }, "cap4-upg100-mfe": { "bundle": "my-upg-100-list", - "sha256": "eca013c97650809080806967337b54bbdf5c5817dc318554ccffc00fc66c601f" + "sha256": "a7bbbab52d5418e2745215ef204ac548daa551335859b5f58ed81fd611ed850b" }, "cap4-upg100-poster-wall": { "bundle": "my-upg-100-list", - "sha256": "eca013c97650809080806967337b54bbdf5c5817dc318554ccffc00fc66c601f" + "sha256": "a7bbbab52d5418e2745215ef204ac548daa551335859b5f58ed81fd611ed850b" }, "cap5-doxa-maps-spa": { "bundle": "doxa-maps-spa", - "sha256": "9093c700a38d42a9444650690d99ce3b8b66f0c73e03e00ac49780c3833807c5" + "sha256": "a8b01a95f0362c7a97fa510eb41e668abe0b13671abc3bb174ae2b97dda8280d" }, "cap5-plugin-studio": { "bundle": "plugin-studio", - "sha256": "0034c901862e25c575966dd48f78d2fa739834db401cf37f1de9653e3034ae05" + "sha256": "9108858e3f055a0b09a56206d7f0354e2f1f2b8a5d80d5f6f9fe12eea54ed484" }, "deploy2-mobile-upg100": { "bundle": "my-upg-100-list", - "sha256": "eca013c97650809080806967337b54bbdf5c5817dc318554ccffc00fc66c601f" + "sha256": "a7bbbab52d5418e2745215ef204ac548daa551335859b5f58ed81fd611ed850b" }, "exp-prayer-walk-planner": { "bundle": "prayer-walk-planner", - "sha256": "0042dda28574e86cb29543b53ece4abab835bccb995316470e138479e42de2b3" + "sha256": "5f0e799cf04331c65e7724820ae34b96ee5a4c0583dd66b5a40c7ea106822acf" }, "exp-wall-of-people-groups": { "bundle": "wall-of-people-groups", - "sha256": "1ce6d49a495aa794200b97005e620db37fca3ade59325fa359d3a59d200cbcba" + "sha256": "9a8fc9c4a39c7113590a9dab8e9e3f5f4ecaa274467ab1d095fb717e60ac5765" }, "lang-arabic-upg100": { "bundle": "my-upg-100-list", - "sha256": "eca013c97650809080806967337b54bbdf5c5817dc318554ccffc00fc66c601f" + "sha256": "a7bbbab52d5418e2745215ef204ac548daa551335859b5f58ed81fd611ed850b" }, "prod-big-picture": { "bundle": "dashboard-plus-grid", - "sha256": "e8e78401cbc35ab285d6906f7f9ccbe4bc9db7a41c37dd1cde301addda7cd745" + "sha256": "fb9da1169851cc2ab49c4c1f289935367841f2367fe071d74c01849f45337ffa" }, "prod-cities-internet": { "bundle": "cities-internet", - "sha256": "236a1a98ec06562224f77af8ca8290e4381b4df8e81aa143ecb886f5f14f7113" + "sha256": "35d8936e0164f94a41d5330f53105dcabf41aefc356090743144c0fce4847bd1" }, "prod-cities-internet-phone": { "bundle": "cities-internet", - "sha256": "236a1a98ec06562224f77af8ca8290e4381b4df8e81aa143ecb886f5f14f7113" + "sha256": "35d8936e0164f94a41d5330f53105dcabf41aefc356090743144c0fce4847bd1" }, "prod-gospel-resources": { "bundle": "gospel-resources", - "sha256": "88d7705148ff7f48862ef5be164b8dfc5b8d71afa04a9e86bb0fdb499d830109" + "sha256": "44e9f631ec66d74b50f142811424583cb4df946c725c3264a02f8306db35096d" }, "prod-gospel-resources-phone": { "bundle": "gospel-resources", - "sha256": "88d7705148ff7f48862ef5be164b8dfc5b8d71afa04a9e86bb0fdb499d830109" + "sha256": "44e9f631ec66d74b50f142811424583cb4df946c725c3264a02f8306db35096d" }, "prod-prayer-phone": { "bundle": "doxa-simple-map", - "sha256": "646efc14670963e1d3e1b1982ff2130562f28183a5908ef3c0c5dbd8d7f9597a" + "sha256": "e429739d0fe8ca87943f8e7c1192193d0979a6a7be9d3aada3229833d722a9ec" }, "prod-regions": { "bundle": "regions-dashboard", - "sha256": "85a9367643be850d554fbcc704ab57f850e30388ef6cfe5e001032bc3f323f0c" + "sha256": "b036622f55012b6917bf691d87f738d9f64c1705c5ee78db2127f57c315e41d1" }, "prod-regions-phone": { "bundle": "regions-dashboard", - "sha256": "85a9367643be850d554fbcc704ab57f850e30388ef6cfe5e001032bc3f323f0c" + "sha256": "b036622f55012b6917bf691d87f738d9f64c1705c5ee78db2127f57c315e41d1" }, "prod-research-gallery-phone": { "bundle": "doxa-maps-spa", - "sha256": "9093c700a38d42a9444650690d99ce3b8b66f0c73e03e00ac49780c3833807c5" + "sha256": "a8b01a95f0362c7a97fa510eb41e668abe0b13671abc3bb174ae2b97dda8280d" }, "prod-simple-research": { "bundle": "research-map-plus-grid", - "sha256": "e1f8190ed14f461801753c2743d32537fde1094e9a26555b3b40d1e22863bfae" + "sha256": "a393659aa63df90410b93cfb1625fcc50cb9fe2b639c4ac286faedbaf658a078" }, "prod-simple-research-phone": { "bundle": "research-map-plus-grid", - "sha256": "e1f8190ed14f461801753c2743d32537fde1094e9a26555b3b40d1e22863bfae" + "sha256": "a393659aa63df90410b93cfb1625fcc50cb9fe2b639c4ac286faedbaf658a078" } } diff --git a/internal/check-composite-interop.mjs b/internal/check-composite-interop.mjs index 9432a952..72445a62 100644 --- a/internal/check-composite-interop.mjs +++ b/internal/check-composite-interop.mjs @@ -130,8 +130,6 @@ const NO_LINKS = { // ── D: late getCurrentInstance() sites already routed to an owner ───────────────────────────── const LATE_KNOWN = { - // emitFilterState runs from a watcher, so `map-filtered` is never dispatched (map -> grid dead). - [`${PD}/doxa-research-map/research-map.vue#emitFilterState`]: 'doxa-research-map owner, routed via dx-shepherd 2026-09-26', // reflectDir runs from watch(textDir): a host switching lang to ar AFTER mount gets no dir=rtl. [`${PD}/dashboard-plus-grid/dashboard-plus-grid.vue#reflectDir`]: 'composite owner, routed via dx-shepherd 2026-09-26', [`${PD}/research-map-plus-grid/research-map-plus-grid.vue#reflectDir`]: 'composite owner, routed via dx-shepherd 2026-09-26', diff --git a/internal/check-one-palette.mjs b/internal/check-one-palette.mjs index f0edc87b..3c736690 100644 --- a/internal/check-one-palette.mjs +++ b/internal/check-one-palette.mjs @@ -63,17 +63,61 @@ if (!existsSync(BUILT)) { process.exit(0) } +/** + * The hexes of the PALETTE export ONLY: from `export const PALETTE` to its matching closing brace, and + * only inside string literals. It used to match every hex from the export to the END OF THE FILE, + * comments included, so a later note such as "REJECTED #AF7AC5, scored 2.95, under the 3.0 floor" + * (affinity-block.js) obliged every consumer to ship a colour rejected on WCAG grounds. + * Returns null when the module has no PALETTE export. + */ +export function paletteHexes(src) { + const at = src.indexOf('export const PALETTE') + if (at < 0) return null + const open = src.indexOf('{', at), openArr = src.indexOf('[', at) + const start = [open, openArr].filter((i) => i >= 0).sort((a, b) => a - b)[0] + if (start === undefined) return [] + const close = { '{': '}', '[': ']' }[src[start]] + let depth = 0, i = start, quote = null + const strings = [] + let cur = '' + for (; i < src.length; i++) { + const c = src[i], n = src[i + 1] + if (quote) { + if (c === '\\') { cur += c + n; i++; continue } + if (c === quote) { strings.push(cur); cur = ''; quote = null; continue } + cur += c; continue + } + if (c === '/' && n === '/') { i = src.indexOf('\n', i); if (i < 0) break; continue } + if (c === '/' && n === '*') { i = src.indexOf('*/', i + 2) + 1; if (i <= 0) break; continue } + if (c === "'" || c === '"' || c === '`') { quote = c; continue } + if (c === src[start]) depth++ + else if (c === close && --depth === 0) break + } + return [...new Set(strings.flatMap((t) => [...t.matchAll(/#[0-9a-fA-F]{6}\b/g)].map((m) => m[0].toLowerCase())))] +} + +if (process.argv.includes('--self-test')) { + const src = [ + "export const PALETTE = {", + " a: '#112233', // not #445566 (a comment inside the export)", + " /* nor #778899 */ b: \"#aabbcc\",", + "}", + "// REJECTED #af7ac5, scored 2.95, under the 3.0 floor", + "export const OTHER = { c: '#ddeeff' }", + ].join('\n') + const got = paletteHexes(src).join(',') + if (got !== '#112233,#aabbcc') { console.error(`ONE-PALETTE: SELF-TEST FAIL — read ${got}, want #112233,#aabbcc`); process.exit(1) } + console.log('ONE-PALETTE: SELF-TEST PASS — only the PALETTE export\'s string values are read; comments and later code are not.') + process.exit(0) +} + // ── the expected palettes, read from the strategy modules the MAP uses ──────────────────────── const strategies = {} for (const f of readdirSync(COLORS)) { if (!f.endsWith('.js') || f.startsWith('_') || f.startsWith('.')) continue const src = readFileSync(join(COLORS, f), 'utf8') - // Only the PALETTE export — a module may also contain incidental hexes (a default, a comment) - // that no consumer is obliged to ship. - const at = src.indexOf('export const PALETTE') - if (at < 0) continue - const hexes = [...new Set([...src.slice(at).matchAll(/#[0-9a-fA-F]{6}/g)].map((m) => m[0].toLowerCase()))] - if (hexes.length) strategies[f.replace(/\.js$/, '')] = hexes + const hexes = paletteHexes(src) + if (hexes && hexes.length) strategies[f.replace(/\.js$/, '')] = hexes } // ── the consumers that must agree ───────────────────────────────────────────────────────────── diff --git a/internal/landing-preconditions.mjs b/internal/landing-preconditions.mjs index 969d8d07..7dcc0ebb 100644 --- a/internal/landing-preconditions.mjs +++ b/internal/landing-preconditions.mjs @@ -11,6 +11,9 @@ * Every one of those landings passed its own checks. Nothing refused them. * * PRECONDITIONS, in order (cheap first): + * 0. NO MERGE MARKERS no file in the COMMIT (public/ included) holds a conflict marker. d6bf410a put them + * into 10 built files under public/ and every other precondition passed; a built bundle with + * markers throws on load while its SRI still matches. --markers-self-test proves the scan refuses. * 1. CLEAN the working tree equals HEAD for everything the checks read — otherwise they would judge * files that are not in the commit. * 2. ONE FOLDER public/ holds exactly the configured tree (vite.doxa-maps-build-config.json "name") and @@ -20,6 +23,7 @@ * 4. FRESH every composite rebuilds to exactly its committed bytes (check:composite-freshness). * * USAGE node internal/landing-preconditions.mjs exit 0 = may land · 1 = refused + * node internal/landing-preconditions.mjs --markers-self-test proves step 0 refuses a conflict * DOXA_SKIP_FRESHNESS=1 skips (4) — for a DRY check only; the merge-queue check never sets it. */ import { spawnSync } from 'node:child_process' @@ -36,6 +40,30 @@ const refuse = (why, detail = '') => { } const run = (cmd, args) => spawnSync(cmd, args, { cwd: ROOT, encoding: 'utf8', env: process.env }) +// 0. NO MERGE MARKERS — scanned in the COMMIT's tree (git grep), so public/ and every file is covered, +// whatever the working tree holds. Markers are built from char codes so this file never contains one. +const OPEN = String.fromCharCode(60).repeat(7), MID = String.fromCharCode(61).repeat(7), CLOSE = String.fromCharCode(62).repeat(7) +function markerFiles(ref) { + const g = run('git', ['grep', '-I', '-l', '-E', '-e', `^(${OPEN}( |$)|${MID}$|${CLOSE}( |$))`, ref, '--']) + if (g.status > 1) refuse('could not scan the commit for merge markers', g.stderr.trim()) + return g.stdout.split('\n').filter(Boolean).map((l) => l.replace(new RegExp('^' + ref + ':'), '')) +} +if (process.argv.includes('--markers-self-test')) { + // A throwaway commit object (no branch, no working-tree change) holding one built file with a textbook + // conflict; the scan must name it. + const blob = spawnSync('git', ['hash-object', '-w', '--stdin'], { cwd: ROOT, encoding: 'utf8', input: `a\n${OPEN} HEAD\nmine\n${MID}\ntheirs\n${CLOSE} other\n` }).stdout.trim() + const tree = spawnSync('git', ['mktree'], { cwd: ROOT, encoding: 'utf8', input: `100644 blob ${blob}\tpoison.js\n` }).stdout.trim() + const pub = spawnSync('git', ['mktree'], { cwd: ROOT, encoding: 'utf8', input: `040000 tree ${tree}\tpublic\n` }).stdout.trim() + const commit = spawnSync('git', ['commit-tree', pub, '-m', 'marker self-test'], { cwd: ROOT, encoding: 'utf8' }).stdout.trim() + const hits = markerFiles(commit) + if (hits.includes('public/poison.js')) { console.log('LANDING-PRECONDITIONS: markers self-test PASS — a conflict in a public/ file is refused.'); process.exit(0) } + console.error('LANDING-PRECONDITIONS: markers self-test FAIL — a textbook conflict under public/ was not found.'); process.exit(1) +} +const markers = markerFiles('HEAD') +if (markers.length) refuse(`${markers.length} file(s) in this commit hold merge-conflict markers`, + markers.slice(0, 10).join('\n') + '\nFor a BUILT file: take either side, REBUILD it, commit the rebuild. Never `git add -A public` mid-merge.') +console.log('LANDING-PRECONDITIONS: 0 markers — no file in the commit holds a merge-conflict marker') + // 1. CLEAN const dirty = run('git', ['status', '--porcelain', '--', 'public', 'plugin-designs', 'library', 'internal', 'vite.config.js', 'vite.doxa-maps-build-config.json', 'package.json']) if (dirty.status !== 0) refuse('could not read git status') diff --git a/package.json b/package.json index 401d87b4..8676f20b 100644 --- a/package.json +++ b/package.json @@ -132,6 +132,7 @@ "check:no-orphan-gates": "node internal/check-no-orphan-gates.mjs", "check:no-public-binds": "node internal/check-no-public-binds.mjs", "check:one-palette": "node internal/check-one-palette.mjs", + "check:one-palette:self-test": "node internal/check-one-palette.mjs --self-test", "check:packet-browser": "node internal/check-packet-browser.mjs", "check:packet-fixture": "node internal/generate-packet-fixture.mjs --check", "check:packet-render": "node internal/check-packet-render.mjs", @@ -199,7 +200,7 @@ "dev": "bun x vite", "fix:sri": "node internal/fix-sri.mjs", "gallery": "node internal/generate-gallery.mjs", - "gates:post": "node internal/run-parallel.mjs --label=post -- check:drop check:parse verify check:sri check:public-hygiene check:label-joins check:facet-cascade check:facet-one-field check:heartbeat check:kpi-unit check:composite-reg check:descriptions check:no-abs-paths check:no-codename check:dep-names check:composite-srcs check:embed-targets check:nested-token check:i18n-parity check:tabs-localized check:packets-all check:packet-strings-parity check:zone-census check:share-policy check:library-index check:csv-shape check:capability-citations check:catalog-identity check:no-orphan-gates check:quoted-scripts check:done-evidence check:script-flags check:backlog-status check:capability-exemplars check:packet-fixture check:packet-browser check:provider-switch check:locale-reachable check:url-resolver check:manifest-covers check:one-palette check:pin-dim-slider check:legend-source check:backlog-refs check:clustering-modes check:composite-embed-knobs check:composite-locale-leaks check:linked-vocabulary check:wp-embed check:dashboard-geocoder-provider check:leaf-engine-per-provider check:map-props-unit check:composites-mount check:composite-interop check:no-free-identifiers check:map-fly-reduced-motion check:mst-clustering check:list-prop-unit check:profiles-mount check:cdn-pins check:no-eval check:popup-escaping check:i18n-treeshake check:pinned-umd", + "gates:post": "node internal/run-parallel.mjs --label=post -- check:drop check:parse verify check:sri check:public-hygiene check:label-joins check:facet-cascade check:facet-one-field check:heartbeat check:kpi-unit check:composite-reg check:descriptions check:no-abs-paths check:no-codename check:dep-names check:composite-srcs check:embed-targets check:nested-token check:i18n-parity check:tabs-localized check:packets-all check:packet-strings-parity check:zone-census check:share-policy check:library-index check:csv-shape check:capability-citations check:catalog-identity check:no-orphan-gates check:quoted-scripts check:done-evidence check:script-flags check:backlog-status check:capability-exemplars check:packet-fixture check:packet-browser check:provider-switch check:locale-reachable check:url-resolver check:manifest-covers check:one-palette check:pin-dim-slider check:legend-source check:backlog-refs check:clustering-modes check:composite-embed-knobs check:composite-locale-leaks check:linked-vocabulary check:wp-embed check:dashboard-geocoder-provider check:leaf-engine-per-provider check:map-props-unit check:composites-mount check:composite-interop check:no-free-identifiers check:map-fly-reduced-motion check:mst-clustering check:list-prop-unit check:profiles-mount check:cdn-pins check:no-eval check:popup-escaping check:i18n-treeshake check:pinned-umd check:one-palette:self-test", "gates:pre": "node internal/run-parallel.mjs --label=pre -- check:template-literal check:mjs-parse check:sfc-parse check:tab-radius check:synced-css check:doc-scripts", "library-index": "node internal/generate-library-index.mjs", "lists": "node library/scripts/people-groups/build-lists.mjs", diff --git a/plugin-designs/big-picture/big-picture.vue b/plugin-designs/big-picture/big-picture.vue index eeadd6b7..d19b9afb 100644 --- a/plugin-designs/big-picture/big-picture.vue +++ b/plugin-designs/big-picture/big-picture.vue @@ -49,6 +49,7 @@ * Becomes tab-1 of the Cat-5 SPA. */ import { computed, reactive, ref, watchEffect } from 'vue' +import { tStatic } from '@map/i18n/index.js' import { SUPPORTED_LOCALES, setRuntimeLocale } from '@map/i18n/index.js' import BpResearchHeader from './src/components/BpResearchHeader.vue' // The REAL cap-2 grid — same component the standalone ships (no fork). @@ -152,7 +153,7 @@ function onGroupsFiltered(payload) { architecture note (header↔grid via props/events, no shared bus, tab-1 of the SPA) lives in this file's header block, not in the UI where an end user reads it. --> diff --git a/plugin-designs/doxa-research-map/research-map.vue b/plugin-designs/doxa-research-map/research-map.vue index 48e59ccd..5f571c64 100644 --- a/plugin-designs/doxa-research-map/research-map.vue +++ b/plugin-designs/doxa-research-map/research-map.vue @@ -154,6 +154,11 @@ import { useLegendData } from '@map/composables/legends/useLegendData.js' import { mapDefaults } from '@map/constants/mapDefaults.js' import { getColorStrategy } from '@map/colors/_registry.js' import { RELIGION_FAMILIES } from '@map/colors/religion.js' +import { tStatic } from '@map/i18n/index.js' + +// This map's own chrome, read out of the catalogue. tStatic and not useI18n: this component is the +// root of a custom element, where useI18n() cannot resolve its injection and throws. +const T = (key, en) => tStatic(key) || en import { DataSourceManager } from '@map/utils/DataSourceManager.js' import sourcesConfig from '@map/api/sources.json' @@ -2136,10 +2141,29 @@ if (typeof window !== 'undefined') { } } +// ★ THE INSTANCE IS CAPTURED IN SETUP, BECAUSE A WATCHER IS NOT SETUP. +// This read getCurrentInstance() INSIDE the function, and the function is only ever called from a +// watcher callback (just below). Vue only returns an instance during setup — from a watcher it is +// null — so `host` was null on every call, emitFilterState returned at the guard, and the +// `map-filtered` event this map owes its composite was NEVER dispatched. The whole map -> grid +// direction was dead. +// +// It looked verified because the check that "proved" it DISPATCHED THE EVENT ITSELF and then +// asserted the grid reacted. That tested the composite's listener and the grid, which do work; it +// never tested the one line that emits. A synthetic event cannot prove an emitter fires — it +// replaces it. +// +// Captured here, at setup top level, and resolved to the host lazily so it also survives being +// called before mount. +const _selfInstance = getCurrentInstance() +function selfHostElement() { + try { return _selfInstance?.proxy?.$el?.getRootNode?.()?.host || null } catch (_) { return null } +} + // Report OUR filter state upward, so a composite can drive its other half with it. function emitFilterState() { if (applyingExternal || typeof window === 'undefined') return - const host = getCurrentInstance()?.proxy?.$el?.getRootNode?.()?.host + const host = selfHostElement() if (!host) return // Report in the vocabulary a HOST speaks: the family NAME, not the legend's letter key. Same // shared RELIGION_FAMILIES table the inbound direction reads, used the other way round. @@ -2250,18 +2274,36 @@ function applyFitSlugs(slugs) { } if (!n) return // nothing this map holds — say nothing rather than fly nowhere - const duration = prefersReducedMotion() ? 0 : FLY_DURATION_MS const spanLng = maxLng - minLng const spanLat = maxLat - minLat - if (spanLng > WIDE_SPAN_DEG) { - mapFly.flyToCoords?.({ longitude: (minLng + maxLng) / 2, latitude: (minLat + maxLat) / 2 }, WORLD_ZOOM, { duration }) - return + const centre = { longitude: (minLng + maxLng) / 2, latitude: (minLat + maxLat) / 2 } + const point = spanLng > WIDE_SPAN_DEG ? { c: centre, z: WORLD_ZOOM } + : (n === 1 || (spanLng < DEGENERATE_SPAN_DEG && spanLat < DEGENERATE_SPAN_DEG)) + ? { c: { longitude: minLng, latitude: minLat }, z: SINGLE_ROW_ZOOM } + : null + + // ★ REDUCED MOTION DRIVES THE MAP DIRECTLY, and that is not belt-and-braces. + // MEASURED by rega with the browser's prefers-reduced-motion: reduce set: the framing move still + // animated for ~5s on MapLibre and ~6.7s on Mapbox — essentially the same as without it, where a + // jump is ~0ms. So the preference was being honoured in THIS file and thrown away downstream: + // useMapFly's flyToCoords(coords, zoom) takes NO options argument at all, so the `{ duration: 0 }` + // I was passing it went nowhere. (fitBounds does accept one; flyToCoords does not — a difference + // between two neighbours in one file, invisible at the call site.) + // + // A photosensitive reader is the whole reason this branch exists, so it no longer depends on + // whether a helper happens to forward an option: it calls the engine's own jump. The eased paths + // are unchanged and still go through mapFly, so ordinary motion keeps one owner. + const m = map.value + if (prefersReducedMotion() && m) { + try { + if (point) m.jumpTo({ center: [point.c.longitude, point.c.latitude], zoom: point.z }) + else m.fitBounds([[minLng, minLat], [maxLng, maxLat]], { padding: FIT_PADDING_PX, maxZoom: FIT_MAX_ZOOM, duration: 0 }) + return + } catch (_) { /* fall through to the eased path rather than not moving at all */ } } - if (n === 1 || (spanLng < DEGENERATE_SPAN_DEG && spanLat < DEGENERATE_SPAN_DEG)) { - mapFly.flyToCoords?.({ longitude: minLng, latitude: minLat }, SINGLE_ROW_ZOOM, { duration }) - return - } - mapFly.fitBounds?.([[minLng, minLat], [maxLng, maxLat]], FIT_PADDING_PX, { maxZoom: FIT_MAX_ZOOM, duration }) + + if (point) { mapFly.flyToCoords?.(point.c, point.z); return } + mapFly.fitBounds?.([[minLng, minLat], [maxLng, maxLat]], FIT_PADDING_PX, { maxZoom: FIT_MAX_ZOOM, duration: FLY_DURATION_MS }) } // ─── Clusters wiring: TWO CONTROLS, ONE STATE ──────────────────────────────── @@ -2538,8 +2580,8 @@ onBeforeUnmount(() => {
-
Research map loading…
-
The map could not be loaded. {{ mapError }}
+
{{ T('dashboard.map_loading', 'Research map loading…') }}
+
{{ T('allPeopleGroups.loadError', 'The map could not be loaded.') }} {{ mapError }}
diff --git a/plugin-designs/doxa-research-map/scripts/check-reduced-motion-jumps.mjs b/plugin-designs/doxa-research-map/scripts/check-reduced-motion-jumps.mjs new file mode 100644 index 00000000..6e5d4a91 --- /dev/null +++ b/plugin-designs/doxa-research-map/scripts/check-reduced-motion-jumps.mjs @@ -0,0 +1,122 @@ +#!/usr/bin/env node +/** + * check-reduced-motion-jumps.mjs — with prefers-reduced-motion, the grid→map framing must JUMP. + * + * ★ THE DRIVER IS PHOTOSENSITIVE. This is not a polish item: a camera that sweeps the globe every + * time a list is filtered is the strobe class this repo has already paid for once. + * + * THE DEFECT, measured by rega in a real browser with the preference set: the framing move still + * animated for ~5.0s on MapLibre and ~6.7s on Mapbox — indistinguishable from no preference at all, + * where a jump is ~0ms. The preference WAS being read correctly in research-map.vue and then thrown + * away one layer down: useMapFly's `flyToCoords(coords, zoom)` takes NO options argument, so the + * `{ duration: 0 }` being passed to it went nowhere. Its neighbour `fitBounds(bounds, padding, + * options)` does accept one — two functions in one file, different signatures, and nothing at the + * call site to show it. + * + * ★ WHY THIS RUNS WITHOUT A BROWSER, WHICH IS THE POINT. rega found it by watching movestart → + * moveend for six seconds; only rega can do that, and only occasionally. What can be checked any + * time, in milliseconds, is the DECISION: given the preference, which camera call does the code + * make? So this lifts the real camera block out of the SFC, runs it against a mocked matchMedia and + * a recording map, and asserts the call that comes out. + * + * It cannot prove the engine honours duration 0 — that is rega's half. It proves we ASK for a jump, + * which is the half that was wrong. + * + * ASSERTIONS: + * reduced motion ON the engine's own jumpTo / fitBounds(duration:0) is called, and the eased + * helper (mapFly) is NOT — a single eased call is the whole bug. + * reduced motion OFF the eased path is used, so ordinary motion is unchanged. + * one row / a tight cluster / a globe-spanning set all take their own branch under both. + * + * Exit: 0 pass · 1 fail · 2 the camera block could not be found (reported, never silently skipped). + */ +import { readFileSync } from 'node:fs' +import { resolve, dirname, join } from 'node:path' +import { fileURLToPath } from 'node:url' +import { parse as parseSFC } from '@vue/compiler-sfc' + +const TAG = 'REDUCED-MOTION-JUMPS' +const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..', '..', '..') +const FILE = join(ROOT, 'plugin-designs', 'doxa-research-map', 'research-map.vue') + +const src = readFileSync(FILE, 'utf8') +const { descriptor } = parseSFC(src, { filename: FILE }) +const script = (descriptor.scriptSetup || descriptor.script || {}).content || '' + +// The block is delimited by its own banner comments, so a refactor that moves it renames the +// markers with it rather than leaving this gate quietly reading the wrong lines. +const START = 'const FIT_PADDING_PX' +const END = '// ─── Clusters wiring: TWO CONTROLS, ONE STATE' +// indexOf from the START, not from 0: an identical-looking line can appear earlier in a file this +// size, and a block that runs from the right start to the wrong end parses into nonsense. +const a = script.indexOf(START) +const b = a >= 0 ? script.indexOf(END, a) : -1 +if (a < 0 || b < 0 || b < a) { + console.log(`${TAG}: FAIL — could not find the camera block in research-map.vue (markers moved?).`) + process.exit(2) +} +const block = script.slice(a, b) +if (!/function applyFitSlugs/.test(block) || !/function prefersReducedMotion/.test(block)) { + console.log(`${TAG}: FAIL — the block found does not contain applyFitSlugs and prefersReducedMotion.`) + process.exit(2) +} + +/** Build the block with its collaborators injected, so the REAL code runs against fakes. */ +function makeCamera({ reduce }) { + const calls = [] + const rec = (name) => (...args) => calls.push({ name, args }) + const map = { value: { jumpTo: rec('map.jumpTo'), fitBounds: rec('map.fitBounds'), easeTo: rec('map.easeTo'), flyTo: rec('map.flyTo') } } + const mapFly = { flyToCoords: rec('mapFly.flyToCoords'), fitBounds: rec('mapFly.fitBounds'), flyTo: rec('mapFly.flyTo') } + const rows = [] + const mapData = { normalizedPeopleGroups: { value: rows } } + const win = { matchMedia: (q) => ({ matches: reduce && /prefers-reduced-motion/.test(q) }) } + // eslint-disable-next-line no-new-func + const factory = new Function('map', 'mapData', 'mapFly', 'window', `${block}\n;return { applyFitSlugs, prefersReducedMotion }`) + const api = factory(map, mapData, mapFly, win) + return { ...api, calls, rows } +} + +const cases = [ + { name: 'several peoples', rows: [ + { slug: 'a', longitude: 10, latitude: 5 }, { slug: 'b', longitude: 14, latitude: 9 }, { slug: 'c', longitude: 12, latitude: 7 }, + ], slugs: ['a', 'b', 'c'] }, + { name: 'one people', rows: [{ slug: 'a', longitude: 10, latitude: 5 }], slugs: ['a'] }, + { name: 'tight cluster', rows: [ + { slug: 'a', longitude: 10, latitude: 5 }, { slug: 'b', longitude: 10.001, latitude: 5.001 }, + ], slugs: ['a', 'b'] }, + { name: 'globe-spanning', rows: [ + { slug: 'a', longitude: -170, latitude: -40 }, { slug: 'b', longitude: 170, latitude: 60 }, + ], slugs: ['a', 'b'] }, +] + +const fails = [] +const lines = [] +for (const c of cases) { + for (const reduce of [true, false]) { + const cam = makeCamera({ reduce }) + cam.rows.push(...c.rows) + cam.applyFitSlugs(c.slugs) + const names = cam.calls.map((k) => k.name) + const easedUsed = names.some((n) => n.startsWith('mapFly.')) + const jumped = names.some((n) => n === 'map.jumpTo') + || cam.calls.some((k) => k.name === 'map.fitBounds' && k.args[1] && k.args[1].duration === 0) + lines.push(` · ${c.name.padEnd(16)} reduce=${String(reduce).padEnd(5)} → ${names.join(', ') || '(no camera call)'}`) + + if (!names.length) { fails.push(`${c.name} (reduce=${reduce}) made no camera call at all.`); continue } + if (reduce) { + if (!jumped) fails.push(`${c.name}: with reduced motion the code did not ask for a jump — it called ${names.join(', ')}.`) + if (easedUsed) fails.push(`${c.name}: with reduced motion it still used the EASED helper (${names.filter((n) => n.startsWith('mapFly.')).join(', ')}) — a single eased call is the whole defect.`) + } else { + if (!easedUsed) fails.push(`${c.name}: without the preference the eased path should be used, got ${names.join(', ')} — ordinary motion must be unchanged.`) + } + } +} + +for (const l of lines) console.log(l) +if (fails.length) { + console.log(`\n${TAG}: FAIL`) + for (const f of fails) console.log(` ✗ ${f}`) + console.log('\n The agent is photosensitive. A camera that sweeps on every filter is the defect.') + process.exit(1) +} +console.log(`${TAG}: PASS — reduced motion asks the engine to jump on every branch, and ordinary motion is untouched.`) diff --git a/plugin-designs/research-dashboard/research-dashboard.vue b/plugin-designs/research-dashboard/research-dashboard.vue index 2a149546..88a9de70 100644 --- a/plugin-designs/research-dashboard/research-dashboard.vue +++ b/plugin-designs/research-dashboard/research-dashboard.vue @@ -23,6 +23,13 @@ * DashboardSearchHeader (DOXA-LIB-3) remains available in the kit but is not mounted here. */ import { computed, watch, inject, ref, unref, onMounted } from 'vue' +import { tStatic } from '@map/i18n/index.js' + +// This component's chrome, read out of the catalogue. tStatic and not useI18n: these mount inside +// custom elements that install no i18n plugin, and an unguarded useI18n() throws on the way in and +// takes the subtree with it. The English stays as the fallback, so a missing key degrades to what +// shipped rather than to a key name. +const T = (key, en) => tStatic(key) || en import { useShadowStyles } from '@map/composables/useShadowStyles.js' import { useDashboardShell, fmt } from './src/composables/useDashboardShell.js' import { useDashboardLayout } from './src/composables/useDashboardLayout.js' @@ -732,12 +739,12 @@ onMounted(() => { owns, so the two input methods can never disagree about the current value. -->
@@ -771,8 +778,10 @@ onMounted(() => {
{{ selCount }} selected - - + + +
diff --git a/plugin-designs/research-dashboard/src/components/dashboards/DashboardBreadcrumb.vue b/plugin-designs/research-dashboard/src/components/dashboards/DashboardBreadcrumb.vue index e4dc54ae..2fe98107 100644 --- a/plugin-designs/research-dashboard/src/components/dashboards/DashboardBreadcrumb.vue +++ b/plugin-designs/research-dashboard/src/components/dashboards/DashboardBreadcrumb.vue @@ -43,7 +43,7 @@ useShadowStyles(` diff --git a/plugin-designs/research-dashboard/src/components/dashboards/DashboardMapPanel.vue b/plugin-designs/research-dashboard/src/components/dashboards/DashboardMapPanel.vue index 11aa60af..ce098287 100644 --- a/plugin-designs/research-dashboard/src/components/dashboards/DashboardMapPanel.vue +++ b/plugin-designs/research-dashboard/src/components/dashboards/DashboardMapPanel.vue @@ -1679,7 +1679,7 @@ useShadowStyles(` {{ projection === 'globe' ? '🌐 Globe' : '▭ Flat' }} -
+
- + - + - + - + - + \n\n" + "script": "\n\n" }, "instances": [ { @@ -214,7 +214,7 @@ "bundle": "dashboard-plus-grid", "scriptUrl": "./dashboard-plus-grid/dashboard-plus-grid.js", "output": "dx-maps/dashboard-plus-grid/dashboard-plus-grid.js", - "integrity": "sha384-X3RgGbiXGIZfp85WQ5H4/NyF3soIpCRnU4vsNH3+TNJSrBcUMSMn2E3QEAYBBtXN", + "integrity": "sha384-dmlUkR/A54stQ9oHUOIrUbiGInFwp/pn8O6fJhlPKG7gfreqLjIQFTP8xkB1FOz9", "elements": [ "dashboard-plus-grid" ], @@ -234,7 +234,7 @@ "scriptUrl": "./dashboard-plus-grid/dashboard-plus-grid.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" }, "instances": [ { @@ -353,7 +353,7 @@ "bundle": "doxa-research-map", "scriptUrl": "./doxa-research-map/doxa-research-map.js", "output": "dx-maps/doxa-research-map/doxa-research-map.js", - "integrity": "sha384-rScvP3yQFMFvEQ6SCPE/w1biJ3gJrzsWExhpaJ/L9O9e+9m5OUxUHYKvD45Cy/Z+", + "integrity": "sha384-IE7GadcBdYFEn58dO/atf9zTDaFcWkpRWY242m9noDv/Hqh2OiAEZvib3AyvpUbA", "elements": [ "doxa-research-map" ], @@ -369,7 +369,7 @@ "scriptUrl": "./doxa-research-map/doxa-research-map.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" }, "instances": [ { @@ -944,7 +944,7 @@ "bundle": "research-dashboard", "scriptUrl": "./research-dashboard/research-dashboard.js", "output": "dx-maps/research-dashboard/research-dashboard.js", - "integrity": "sha384-iJTJdnn7mwnqLrA6sXQ5QoTx91XkqclHfElKkd7crsKd9WsNjy1or5vnOqWU5LQ+", + "integrity": "sha384-ZRsuN2LD7TXf/n/k1P+ivab365wtEfj7NLV2ImVfEW8fmCN++ui1VTXx+qBiulyG", "elements": [ "research-dashboard-map" ], @@ -960,7 +960,7 @@ "scriptUrl": "./research-dashboard/research-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" }, "bundle": "research-dashboard" } diff --git a/public/dx-maps/doxa-research-map/doxa-research-map.js b/public/dx-maps/doxa-research-map/doxa-research-map.js index 7c6e7d33..84f7be55 100644 --- a/public/dx-maps/doxa-research-map/doxa-research-map.js +++ b/public/dx-maps/doxa-research-map/doxa-research-map.js @@ -1,46 +1,46 @@ -(function(){"use strict";var sf;var Mn=typeof document<"u"?document.currentScript:null;const mL="modulepreload",bL=function(e){return"/"+e},yL={},no=function(t,o,n){let a=Promise.resolve();function s(r){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=r,window.dispatchEvent(i),!i.defaultPrevented)throw r}return a.then(r=>{for(const i of r||[])i.status==="rejected"&&s(i.reason);return t().catch(s)})},Sr="affinityBlock",Fn="#95a5a6",Ro={A001:"Arab World",A002:"East Asian Peoples",A003:"Eurasian Peoples",A004:"Horn of Africa Peoples",A005:"Jewish",A006:"Malay Peoples",A007:"Persian-Median Peoples",A008:"South Asian Peoples",A009:"North American Peoples",A010:"Pacific Islanders",A011:"Southeast Asian Peoples",A012:"Sub-Saharan Peoples",A013:"Tibetan-Himalayan Peoples",A014:"Turkic Peoples",A015:"Latin-Caribbean Americans",A017:"Deaf",A018:"Tibetan Peoples",A019:"Himalayan Peoples"},rs={A001:"#E74C3C",A002:"#3498DB",A003:"#2ECC71",A004:"#F39C12",A005:"#9B59B6",A006:"#1ABC9C",A007:"#E67E22",A008:"#34495E",A009:"#95A5A6",A010:"#5DADE2",A011:"#16A085",A012:"#C0392B",A013:"#8E44AD",A014:"#D35400",A015:"#27AE60",A017:"#000000",A018:"#6C3483",A019:"#A569BD"},Yo=rs,Vl=Object.entries(Ro).reduce((e,[t,o])=>(e[o]=t,e),{}),Pr=Object.entries(Ro).reduce((e,[t,o])=>(e[o]=Yo[t],e),{}),Wl=Ro;function Lr(e){return Ro[e]||"Unknown"}function Cr(e){return Yo[e]||Fn}function ql(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?Yo[e]||Fn:Pr[e]||Fn:Fn}function Yl(){return Object.entries(Ro).map(([e,t])=>({code:e,name:t,color:Yo[e]}))}function Zl(e){return{code:e,name:Ro[e]||"Unknown",color:Yo[e]||Fn}}function Xl(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Cr(t)}function Jl(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Lr(t)}function Tr(){const e=["match",["get",Sr]];return Object.entries(Yo).forEach(([t,o])=>{e.push(t,o)}),e.push(Fn),e}const Ql=Tr,Af=Object.freeze(Object.defineProperty({__proto__:null,AFFINITY_BLOCK_COLORS:Yo,AFFINITY_BLOCK_COLORS_BY_NAME:Pr,AFFINITY_BLOCK_NAMES:Ro,AFFINITY_BLOCK_NAME_TO_CODE:Vl,NAMES:Wl,PALETTE:rs,PROPERTY_KEY:Sr,affinityBlockCodeLookup:Ro,affinityBlockCodeToColor:Yo,affinityBlockCodeToName:Ro,affinityBlockColors:Pr,affinityBlockNameToCode:Vl,applyColor:Tr,buildColorExpression:Ql,default:{name:"Affinity Block",propertyKey:Sr,palette:rs,colors:rs,names:Wl,getColor:Xl,applyColor:Tr,buildColorExpression:Ql,getName:Jl,getAffinityBlockName:Lr,getAffinityBlockColor:ql,getAffinityBlockColorByCode:Cr,getAffinityBlocksArray:Yl,getAffinityBlockData:Zl},getAffinityBlockColor:ql,getAffinityBlockColorByCode:Cr,getAffinityBlockData:Zl,getAffinityBlockName:Lr,getAffinityBlocksArray:Yl,getColor:Xl,getName:Jl},Symbol.toStringTag,{value:"Module"}));function Sf(e){if(!e)return"hsl(0, 60%, 50%)";let t=0;for(let n=0;n{e.push(t,o)}),e.push(Rr),e}const nc=Fr,Lf=Object.freeze(Object.defineProperty({__proto__:null,DOXA_REGION_COLORS:Pf,PALETTE:is,PROPERTY_KEY:Er,REGION_COLOR_ALIASES:Mr,SLUG_PALETTE:ls,applyColor:Fr,buildColorExpression:nc,default:{name:"DOXA Region",propertyKey:Er,palette:is,colors:is,slugColors:ls,aliases:Mr,fallback:Rr,getColor:oc,applyColor:Fr,buildColorExpression:nc,getRegionColor:tc,getRegionColorBySlug:Nr},getColor:oc,getRegionColor:tc,getRegionColorBySlug:Nr},Symbol.toStringTag,{value:"Module"})),ac="resourceType",Zo={bible:"#3498db",jesusFilm:"#20c997",radio:"#9b59b6",gospel:"#f39c12",audio:"#1abc9c",stories:"#e74c3c",hasResources:"#27ae60",noResources:"#2c3e50"},Cf=Zo,pa=["bible","jesusFilm","radio","gospel","audio","stories"],Ir={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},Tf=Ir;function da(e){return{bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories"}[e]}function sc(e){var t;for(const o of pa)if((e[o]||((t=e._raw)==null?void 0:t[da(o)]))==="Available")return Zo.hasResources;return Zo.noResources}function rc(e){var t;for(const o of pa)if((e[o]||((t=e._raw)==null?void 0:t[da(o)]))==="Available")return!0;return!1}function ic(e){var t;for(const o of pa)if((e[o]||((t=e._raw)==null?void 0:t[da(o)]))==="Available")return o;return"noResources"}function Or(){return["case",["any",["==",["get","bible"],"Available"],["==",["get","jesusFilm"],"Available"],["==",["get","radio"],"Available"],["==",["get","gospel"],"Available"],["==",["get","audio"],"Available"],["==",["get","stories"],"Available"]],Zo.hasResources,Zo.noResources]}const lc=Or,Ef=Object.freeze(Object.defineProperty({__proto__:null,NAMES:Ir,PALETTE:Zo,PROPERTY_KEY:ac,RESOURCE_COLORS:Cf,RESOURCE_NAMES:Tf,RESOURCE_PRIORITY:pa,applyColor:Or,buildColorExpression:lc,default:{name:"Gospel Resources",propertyKey:ac,palette:Zo,colors:Zo,names:Ir,priority:pa,getColor:sc,applyColor:Or,buildColorExpression:lc,hasAnyResource:rc,getResourceType:ic,getCSVColumn:da},getCSVColumn:da,getColor:sc,getResourceType:ic,hasAnyResource:rc},Symbol.toStringTag,{value:"Module"}));/** +(function(){"use strict";var uf;var Mn=typeof document<"u"?document.currentScript:null;const TL="modulepreload",RL=function(e){return"/"+e},NL={},no=function(t,o,n){let a=Promise.resolve();function s(r){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=r,window.dispatchEvent(i),!i.defaultPrevented)throw r}return a.then(r=>{for(const i of r||[])i.status==="rejected"&&s(i.reason);return t().catch(s)})},Pr="affinityBlock",Fn="#95a5a6",Ro={A001:"Arab World",A002:"East Asian Peoples",A003:"Eurasian Peoples",A004:"Horn of Africa Peoples",A005:"Jewish",A006:"Malay Peoples",A007:"Persian-Median Peoples",A008:"South Asian Peoples",A009:"North American Peoples",A010:"Pacific Islanders",A011:"Southeast Asian Peoples",A012:"Sub-Saharan Peoples",A013:"Tibetan-Himalayan Peoples",A014:"Turkic Peoples",A015:"Latin-Caribbean Americans",A017:"Deaf",A018:"Tibetan Peoples",A019:"Himalayan Peoples"},is={A001:"#E74C3C",A002:"#3498DB",A003:"#2ECC71",A004:"#F39C12",A005:"#9B59B6",A006:"#1ABC9C",A007:"#E67E22",A008:"#34495E",A009:"#95A5A6",A010:"#5DADE2",A011:"#16A085",A012:"#C0392B",A013:"#8E44AD",A014:"#D35400",A015:"#27AE60",A017:"#000000",A018:"#6C3483",A019:"#A569BD"},Yo=is,ql=Object.entries(Ro).reduce((e,[t,o])=>(e[o]=t,e),{}),Lr=Object.entries(Ro).reduce((e,[t,o])=>(e[o]=Yo[t],e),{}),Yl=Ro;function Cr(e){return Ro[e]||"Unknown"}function Er(e){return Yo[e]||Fn}function Zl(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?Yo[e]||Fn:Lr[e]||Fn:Fn}function Xl(){return Object.entries(Ro).map(([e,t])=>({code:e,name:t,color:Yo[e]}))}function Jl(e){return{code:e,name:Ro[e]||"Unknown",color:Yo[e]||Fn}}function Ql(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Er(t)}function ec(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Cr(t)}function Tr(){const e=["match",["get",Pr]];return Object.entries(Yo).forEach(([t,o])=>{e.push(t,o)}),e.push(Fn),e}const tc=Tr,Cf=Object.freeze(Object.defineProperty({__proto__:null,AFFINITY_BLOCK_COLORS:Yo,AFFINITY_BLOCK_COLORS_BY_NAME:Lr,AFFINITY_BLOCK_NAMES:Ro,AFFINITY_BLOCK_NAME_TO_CODE:ql,NAMES:Yl,PALETTE:is,PROPERTY_KEY:Pr,affinityBlockCodeLookup:Ro,affinityBlockCodeToColor:Yo,affinityBlockCodeToName:Ro,affinityBlockColors:Lr,affinityBlockNameToCode:ql,applyColor:Tr,buildColorExpression:tc,default:{name:"Affinity Block",propertyKey:Pr,palette:is,colors:is,names:Yl,getColor:Ql,applyColor:Tr,buildColorExpression:tc,getName:ec,getAffinityBlockName:Cr,getAffinityBlockColor:Zl,getAffinityBlockColorByCode:Er,getAffinityBlocksArray:Xl,getAffinityBlockData:Jl},getAffinityBlockColor:Zl,getAffinityBlockColorByCode:Er,getAffinityBlockData:Jl,getAffinityBlockName:Cr,getAffinityBlocksArray:Xl,getColor:Ql,getName:ec},Symbol.toStringTag,{value:"Module"}));function Ef(e){if(!e)return"hsl(0, 60%, 50%)";let t=0;for(let n=0;n{e.push(t,o)}),e.push(Nr),e}const sc=Ir,Rf=Object.freeze(Object.defineProperty({__proto__:null,DOXA_REGION_COLORS:Tf,PALETTE:ls,PROPERTY_KEY:Rr,REGION_COLOR_ALIASES:Fr,SLUG_PALETTE:cs,applyColor:Ir,buildColorExpression:sc,default:{name:"DOXA Region",propertyKey:Rr,palette:ls,colors:ls,slugColors:cs,aliases:Fr,fallback:Nr,getColor:ac,applyColor:Ir,buildColorExpression:sc,getRegionColor:nc,getRegionColorBySlug:Mr},getColor:ac,getRegionColor:nc,getRegionColorBySlug:Mr},Symbol.toStringTag,{value:"Module"})),rc="resourceType",Zo={bible:"#3498db",jesusFilm:"#20c997",radio:"#9b59b6",gospel:"#f39c12",audio:"#1abc9c",stories:"#e74c3c",hasResources:"#27ae60",noResources:"#2c3e50"},Nf=Zo,da=["bible","jesusFilm","radio","gospel","audio","stories"],Or={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},Mf=Or;function ga(e){return{bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories"}[e]}function ic(e){var t;for(const o of da)if((e[o]||((t=e._raw)==null?void 0:t[ga(o)]))==="Available")return Zo.hasResources;return Zo.noResources}function lc(e){var t;for(const o of da)if((e[o]||((t=e._raw)==null?void 0:t[ga(o)]))==="Available")return!0;return!1}function cc(e){var t;for(const o of da)if((e[o]||((t=e._raw)==null?void 0:t[ga(o)]))==="Available")return o;return"noResources"}function Dr(){return["case",["any",["==",["get","bible"],"Available"],["==",["get","jesusFilm"],"Available"],["==",["get","radio"],"Available"],["==",["get","gospel"],"Available"],["==",["get","audio"],"Available"],["==",["get","stories"],"Available"]],Zo.hasResources,Zo.noResources]}const uc=Dr,Ff=Object.freeze(Object.defineProperty({__proto__:null,NAMES:Or,PALETTE:Zo,PROPERTY_KEY:rc,RESOURCE_COLORS:Nf,RESOURCE_NAMES:Mf,RESOURCE_PRIORITY:da,applyColor:Dr,buildColorExpression:uc,default:{name:"Gospel Resources",propertyKey:rc,palette:Zo,colors:Zo,names:Or,priority:da,getColor:ic,applyColor:Dr,buildColorExpression:uc,hasAnyResource:lc,getResourceType:cc,getCSVColumn:ga},getCSVColumn:ga,getColor:ic,getResourceType:cc,hasAnyResource:lc},Symbol.toStringTag,{value:"Module"}));/** * @vue/shared v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function Dr(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const rt={},In=[],go=()=>{},cc=()=>!1,cs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),us=e=>e.startsWith("onUpdate:"),bt=Object.assign,Br=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},Rf=Object.prototype.hasOwnProperty,Je=(e,t)=>Rf.call(e,t),Ie=Array.isArray,Xo=e=>ga(e)==="[object Map]",ps=e=>ga(e)==="[object Set]",uc=e=>ga(e)==="[object Date]",De=e=>typeof e=="function",lt=e=>typeof e=="string",Vt=e=>typeof e=="symbol",Qe=e=>e!==null&&typeof e=="object",pc=e=>(Qe(e)||De(e))&&De(e.then)&&De(e.catch),dc=Object.prototype.toString,ga=e=>dc.call(e),Nf=e=>ga(e).slice(8,-1),ds=e=>ga(e)==="[object Object]",gs=e=>lt(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,fa=Dr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),fs=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},Mf=/-\w/g,St=fs(e=>e.replace(Mf,t=>t.slice(1).toUpperCase())),Ff=/\B([A-Z])/g,Xt=fs(e=>e.replace(Ff,"-$1").toLowerCase()),hs=fs(e=>e.charAt(0).toUpperCase()+e.slice(1)),Gr=fs(e=>e?`on${hs(e)}`:""),fo=(e,t)=>!Object.is(e,t),ms=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},jr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},fc=e=>{const t=lt(e)?Number(e):NaN;return isNaN(t)?e:t};let hc;const bs=()=>hc||(hc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function gt(e){if(Ie(e)){const t={};for(let o=0;o{if(o){const n=o.split(Of);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Me(e){let t="";if(lt(e))t=e;else if(Ie(e))for(let o=0;o!!(e&&e.__v_isRef===!0),ye=e=>lt(e)?e:e==null?"":Ie(e)||Qe(e)&&(e.toString===dc||!De(e.toString))?yc(e)?ye(e.value):JSON.stringify(e,_c,2):String(e),_c=(e,t)=>yc(t)?_c(e,t.value):Xo(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,a],s)=>(o[zr(n,s)+" =>"]=a,o),{})}:ps(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>zr(o))}:Vt(t)?zr(t):Qe(t)&&!Ie(t)&&!ds(t)?String(t):t,zr=(e,t="")=>{var o;return Vt(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};/** +**/function Gr(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const st={},In=[],po=()=>{},pc=()=>!1,us=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),ps=e=>e.startsWith("onUpdate:"),bt=Object.assign,Br=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},If=Object.prototype.hasOwnProperty,Je=(e,t)=>If.call(e,t),Ie=Array.isArray,Xo=e=>fa(e)==="[object Map]",ds=e=>fa(e)==="[object Set]",dc=e=>fa(e)==="[object Date]",De=e=>typeof e=="function",it=e=>typeof e=="string",Wt=e=>typeof e=="symbol",Qe=e=>e!==null&&typeof e=="object",gc=e=>(Qe(e)||De(e))&&De(e.then)&&De(e.catch),fc=Object.prototype.toString,fa=e=>fc.call(e),Of=e=>fa(e).slice(8,-1),gs=e=>fa(e)==="[object Object]",fs=e=>it(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,ha=Gr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),hs=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},Df=/-\w/g,St=hs(e=>e.replace(Df,t=>t.slice(1).toUpperCase())),Gf=/\B([A-Z])/g,Jt=hs(e=>e.replace(Gf,"-$1").toLowerCase()),ms=hs(e=>e.charAt(0).toUpperCase()+e.slice(1)),jr=hs(e=>e?`on${ms(e)}`:""),go=(e,t)=>!Object.is(e,t),bs=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},zr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},mc=e=>{const t=it(e)?Number(e):NaN;return isNaN(t)?e:t};let bc;const ys=()=>bc||(bc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ft(e){if(Ie(e)){const t={};for(let o=0;o{if(o){const n=o.split(jf);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Me(e){let t="";if(it(e))t=e;else if(Ie(e))for(let o=0;o!!(e&&e.__v_isRef===!0),ye=e=>it(e)?e:e==null?"":Ie(e)||Qe(e)&&(e.toString===fc||!De(e.toString))?$c(e)?ye(e.value):JSON.stringify(e,vc,2):String(e),vc=(e,t)=>$c(t)?vc(e,t.value):Xo(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,a],s)=>(o[Ur(n,s)+" =>"]=a,o),{})}:ds(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>Ur(o))}:Wt(t)?Ur(t):Qe(t)&&!Ie(t)&&!gs(t)?String(t):t,Ur=(e,t="")=>{var o;return Wt(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 wt;class $c{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&&wt&&(wt.active?(this.parent=wt,this.index=(wt.scopes||(wt.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(wt===this)wt=this.prevScope;else{let t=wt;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(ma){let t=ma;for(ma=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;ha;){let t=ha;for(ha=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 Ac(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Sc(e){let t,o=e.depsTail,n=o;for(;n;){const a=n.prevDep;n.version===-1?(n===o&&(o=a),qr(n),Uf(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=t,e.depsTail=o}function Wr(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Pc(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Pc(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===ba)||(e.globalVersion=ba,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Wr(e))))return;e.flags|=2;const t=e.dep,o=ct,n=ao;ct=e,ao=!0;try{Ac(e);const a=e.fn(e._value);(t.version===0||fo(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{ct=o,ao=n,Sc(e),e.flags&=-3}}function qr(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 s=o.computed.deps;s;s=s.nextDep)qr(s,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function Uf(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let ao=!0;const Lc=[];function ho(){Lc.push(ao),ao=!1}function mo(){const e=Lc.pop();ao=e===void 0?!0:e}function Cc(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=ct;ct=void 0;try{t()}finally{ct=o}}}let ba=0;class Kf{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 Yr{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(!ct||!ao||ct===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==ct)o=this.activeLink=new Kf(ct,this),ct.deps?(o.prevDep=ct.depsTail,ct.depsTail.nextDep=o,ct.depsTail=o):ct.deps=ct.depsTail=o,Tc(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=ct.depsTail,o.nextDep=void 0,ct.depsTail.nextDep=o,ct.depsTail=o,ct.deps===o&&(ct.deps=n)}return o}trigger(t){this.version++,ba++,this.notify(t)}notify(t){Hr();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{Vr()}}}function Tc(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)Tc(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const _s=new WeakMap,fn=Symbol(""),Zr=Symbol(""),ya=Symbol("");function Nt(e,t,o){if(ao&&ct){let n=_s.get(e);n||_s.set(e,n=new Map);let a=n.get(o);a||(n.set(o,a=new Yr),a.map=n,a.key=o),a.track()}}function No(e,t,o,n,a,s){const r=_s.get(e);if(!r){ba++;return}const i=l=>{l&&l.trigger()};if(Hr(),t==="clear")r.forEach(i);else{const l=Ie(e),c=l&&gs(o);if(l&&o==="length"){const u=Number(n);r.forEach((h,f)=>{(f==="length"||f===ya||!Vt(f)&&f>=u)&&i(h)})}else switch((o!==void 0||r.has(void 0))&&i(r.get(o)),c&&i(r.get(ya)),t){case"add":l?c&&i(r.get("length")):(i(r.get(fn)),Xo(e)&&i(r.get(Zr)));break;case"delete":l||(i(r.get(fn)),Xo(e)&&i(r.get(Zr)));break;case"set":Xo(e)&&i(r.get(fn));break}}Vr()}function Hf(e,t){const o=_s.get(e);return o&&o.get(t)}function On(e){const t=Ve(e);return t===e?t:(Nt(t,"iterate",ya),Wt(e)?t:t.map(so))}function $s(e){return Nt(e=Ve(e),"iterate",ya),e}function bo(e,t){return Io(e)?Gn(Fo(e)?so(t):t):so(t)}const Vf={__proto__:null,[Symbol.iterator](){return Xr(this,Symbol.iterator,e=>bo(this,e))},concat(...e){return On(this).concat(...e.map(t=>Ie(t)?On(t):t))},entries(){return Xr(this,"entries",e=>(e[1]=bo(this,e[1]),e))},every(e,t){return Mo(this,"every",e,t,void 0,arguments)},filter(e,t){return Mo(this,"filter",e,t,o=>o.map(n=>bo(this,n)),arguments)},find(e,t){return Mo(this,"find",e,t,o=>bo(this,o),arguments)},findIndex(e,t){return Mo(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Mo(this,"findLast",e,t,o=>bo(this,o),arguments)},findLastIndex(e,t){return Mo(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Mo(this,"forEach",e,t,void 0,arguments)},includes(...e){return Jr(this,"includes",e)},indexOf(...e){return Jr(this,"indexOf",e)},join(e){return On(this).join(e)},lastIndexOf(...e){return Jr(this,"lastIndexOf",e)},map(e,t){return Mo(this,"map",e,t,void 0,arguments)},pop(){return _a(this,"pop")},push(...e){return _a(this,"push",e)},reduce(e,...t){return Ec(this,"reduce",e,t)},reduceRight(e,...t){return Ec(this,"reduceRight",e,t)},shift(){return _a(this,"shift")},some(e,t){return Mo(this,"some",e,t,void 0,arguments)},splice(...e){return _a(this,"splice",e)},toReversed(){return On(this).toReversed()},toSorted(e){return On(this).toSorted(e)},toSpliced(...e){return On(this).toSpliced(...e)},unshift(...e){return _a(this,"unshift",e)},values(){return Xr(this,"values",e=>bo(this,e))}};function Xr(e,t,o){const n=$s(e),a=n[t]();return n!==e&&!Wt(e)&&(a._next=a.next,a.next=()=>{const s=a._next();return s.done||(s.value=o(s.value)),s}),a}const Wf=Array.prototype;function Mo(e,t,o,n,a,s){const r=$s(e),i=r!==e&&!Wt(e),l=r[t];if(l!==Wf[t]){const h=l.apply(e,s);return i?so(h):h}let c=o;r!==e&&(i?c=function(h,f){return o.call(this,bo(e,h),f,e)}:o.length>2&&(c=function(h,f){return o.call(this,h,f,e)}));const u=l.call(r,c,n);return i&&a?a(u):u}function Ec(e,t,o,n){const a=$s(e),s=a!==e&&!Wt(e);let r=o,i=!1;a!==e&&(s?(i=n.length===0,r=function(c,u,h){return i&&(i=!1,c=bo(e,c)),o.call(this,c,bo(e,u),h,e)}):o.length>3&&(r=function(c,u,h){return o.call(this,c,u,h,e)}));const l=a[t](r,...n);return i?bo(e,l):l}function Jr(e,t,o){const n=Ve(e);Nt(n,"iterate",ya);const a=n[t](...o);return(a===-1||a===!1)&&As(o[0])?(o[0]=Ve(o[0]),n[t](...o)):a}function _a(e,t,o=[]){ho(),Hr();const n=Ve(e)[t].apply(e,o);return Vr(),mo(),n}const qf=Dr("__proto__,__v_isRef,__isVue"),Rc=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Vt));function Yf(e){Vt(e)||(e=String(e));const t=Ve(this);return Nt(t,"has",e),t.hasOwnProperty(e)}class Nc{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,s=this._isShallow;if(o==="__v_isReactive")return!a;if(o==="__v_isReadonly")return a;if(o==="__v_isShallow")return s;if(o==="__v_raw")return n===(a?s?Bc:Dc:s?Oc:Ic).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const r=Ie(t);if(!a){let l;if(r&&(l=Vf[o]))return l;if(o==="hasOwnProperty")return Yf}const i=Reflect.get(t,o,pt(t)?t:n);if((Vt(o)?Rc.has(o):qf(o))||(a||Nt(t,"get",o),s))return i;if(pt(i)){const l=r&&gs(o)?i:i.value;return a&&Qe(l)?hn(l):l}return Qe(i)?a?hn(i):Dn(i):i}}class Mc extends Nc{constructor(t=!1){super(!1,t)}set(t,o,n,a){let s=t[o];const r=Ie(t)&&gs(o);if(!this._isShallow){const c=Io(s);if(!Wt(n)&&!Io(n)&&(s=Ve(s),n=Ve(n)),!r&&pt(s)&&!pt(n))return c||(s.value=n),!0}const i=r?Number(o)e,vs=e=>Reflect.getPrototypeOf(e);function eh(e,t,o){return function(...n){const a=this.__v_raw,s=Ve(a),r=Xo(s),i=e==="entries"||e===Symbol.iterator&&r,l=e==="keys"&&r,c=a[e](...n),u=o?Qr:t?Gn:so;return!t&&Nt(s,"iterate",l?Zr:fn),bt(Object.create(c),{next(){const{value:h,done:f}=c.next();return f?{value:h,done:f}:{value:i?[u(h[0]),u(h[1])]:u(h),done:f}}})}}function ws(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function th(e,t){const o={get(a){const s=this.__v_raw,r=Ve(s),i=Ve(a);e||(fo(a,i)&&Nt(r,"get",a),Nt(r,"get",i));const{has:l}=vs(r),c=t?Qr:e?Gn:so;if(l.call(r,a))return c(s.get(a));if(l.call(r,i))return c(s.get(i));s!==r&&s.get(a)},get size(){const a=this.__v_raw;return!e&&Nt(Ve(a),"iterate",fn),a.size},has(a){const s=this.__v_raw,r=Ve(s),i=Ve(a);return e||(fo(a,i)&&Nt(r,"has",a),Nt(r,"has",i)),a===i?s.has(a):s.has(a)||s.has(i)},forEach(a,s){const r=this,i=r.__v_raw,l=Ve(i),c=t?Qr:e?Gn:so;return!e&&Nt(l,"iterate",fn),i.forEach((u,h)=>a.call(s,c(u),c(h),r))}};return bt(o,e?{add:ws("add"),set:ws("set"),delete:ws("delete"),clear:ws("clear")}:{add(a){const s=Ve(this),r=vs(s),i=Ve(a),l=!t&&!Wt(a)&&!Io(a)?i:a;return r.has.call(s,l)||fo(a,l)&&r.has.call(s,a)||fo(i,l)&&r.has.call(s,i)||(s.add(l),No(s,"add",l,l)),this},set(a,s){!t&&!Wt(s)&&!Io(s)&&(s=Ve(s));const r=Ve(this),{has:i,get:l}=vs(r);let c=i.call(r,a);c||(a=Ve(a),c=i.call(r,a));const u=l.call(r,a);return r.set(a,s),c?fo(s,u)&&No(r,"set",a,s):No(r,"add",a,s),this},delete(a){const s=Ve(this),{has:r,get:i}=vs(s);let l=r.call(s,a);l||(a=Ve(a),l=r.call(s,a)),i&&i.call(s,a);const c=s.delete(a);return l&&No(s,"delete",a,void 0),c},clear(){const a=Ve(this),s=a.size!==0,r=a.clear();return s&&No(a,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(a=>{o[a]=eh(a,e,t)}),o}function ks(e,t){const o=th(e,t);return(n,a,s)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?n:Reflect.get(Je(o,a)&&a in n?o:n,a,s)}const oh={get:ks(!1,!1)},nh={get:ks(!1,!0)},ah={get:ks(!0,!1)},sh={get:ks(!0,!0)},Ic=new WeakMap,Oc=new WeakMap,Dc=new WeakMap,Bc=new WeakMap;function rh(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 Io(e)?e:xs(e,!1,Zf,oh,Ic)}function ih(e){return xs(e,!1,Jf,nh,Oc)}function hn(e){return xs(e,!0,Xf,ah,Dc)}function LL(e){return xs(e,!0,Qf,sh,Bc)}function xs(e,t,o,n,a){if(!Qe(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const s=a.get(e);if(s)return s;const r=rh(Nf(e));if(r===0)return e;const i=new Proxy(e,r===2?n:o);return a.set(e,i),i}function Fo(e){return Io(e)?Fo(e.__v_raw):!!(e&&e.__v_isReactive)}function Io(e){return!!(e&&e.__v_isReadonly)}function Wt(e){return!!(e&&e.__v_isShallow)}function As(e){return e?!!e.__v_raw:!1}function Ve(e){const t=e&&e.__v_raw;return t?Ve(t):e}function Bn(e){return!Je(e,"__v_skip")&&Object.isExtensible(e)&&gc(e,"__v_skip",!0),e}const so=e=>Qe(e)?Dn(e):e,Gn=e=>Qe(e)?hn(e):e;function pt(e){return e?e.__v_isRef===!0:!1}function me(e){return Gc(e,!1)}function $a(e){return Gc(e,!0)}function Gc(e,t){return pt(e)?e:new lh(e,t)}class lh{constructor(t,o){this.dep=new Yr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:Ve(t),this._value=o?t:so(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||Wt(t)||Io(t);t=n?t:Ve(t),fo(t,o)&&(this._rawValue=t,this._value=n?t:so(t),this.dep.trigger())}}function ge(e){return pt(e)?e.value:e}const ch={get:(e,t,o)=>t==="__v_raw"?e:ge(Reflect.get(e,t,o)),set:(e,t,o,n)=>{const a=e[t];return pt(a)&&!pt(o)?(a.value=o,!0):Reflect.set(e,t,o,n)}};function jc(e){return Fo(e)?e:new Proxy(e,ch)}function uh(e){const t=Ie(e)?new Array(e.length):{};for(const o in e)t[o]=zc(e,o);return t}class ph{constructor(t,o,n){this._object=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=Vt(o)?o:String(o),this._raw=Ve(t);let a=!0,s=t;if(!Ie(t)||Vt(this._key)||!gs(this._key))do a=!As(s)||Wt(s);while(a&&(s=s.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=ge(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&pt(this._raw[this._key])){const o=this._object[this._key];if(pt(o)){o.value=t;return}}this._object[this._key]=t}get dep(){return Hf(this._raw,this._key)}}class dh{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 Ss(e,t,o){return pt(e)?e:De(e)?new dh(e):Qe(e)&&arguments.length>1?zc(e,t,o):me(e)}function zc(e,t,o){return new ph(e,t,o)}class gh{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new Yr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ba-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&ct!==this)return xc(this,!0),!0}get value(){const t=this.dep.track();return Pc(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function fh(e,t,o=!1){let n,a;return De(e)?n=e:(n=e.get,a=e.set),new gh(n,a,o)}const Ps={},Ls=new WeakMap;let mn;function hh(e,t=!1,o=mn){if(o){let n=Ls.get(o);n||Ls.set(o,n=[]),n.push(e)}}function mh(e,t,o=rt){const{immediate:n,deep:a,once:s,scheduler:r,augmentJob:i,call:l}=o,c=x=>a?x:Wt(x)||a===!1||a===0?Oo(x,1):Oo(x);let u,h,f,S,$=!1,b=!1;if(pt(e)?(h=()=>e.value,$=Wt(e)):Fo(e)?(h=()=>c(e),$=!0):Ie(e)?(b=!0,$=e.some(x=>Fo(x)||Wt(x)),h=()=>e.map(x=>{if(pt(x))return x.value;if(Fo(x))return c(x);if(De(x))return l?l(x,2):x()})):De(e)?t?h=l?()=>l(e,2):e:h=()=>{if(f){ho();try{f()}finally{mo()}}const x=mn;mn=u;try{return l?l(e,3,[S]):e(S)}finally{mn=x}}:h=go,t&&a){const x=h,d=a===!0?1/0:a;h=()=>Oo(x(),d)}const _=vc(),y=()=>{u.stop(),_&&_.active&&Br(_.effects,u)};if(s&&t){const x=t;t=(...d)=>{const P=x(...d);return y(),P}}let p=b?new Array(e.length).fill(Ps):Ps;const m=x=>{if(!(!(u.flags&1)||!u.dirty&&!x))if(t){const d=u.run();if(x||a||$||(b?d.some((P,g)=>fo(P,p[g])):fo(d,p))){f&&f();const P=mn;mn=u;try{const g=[d,p===Ps?void 0:b&&p[0]===Ps?[]:p,S];p=d,l?l(t,3,g):t(...g)}finally{mn=P}}}else u.run()};return i&&i(m),u=new wc(h),u.scheduler=r?()=>r(m,!1):m,S=x=>hh(x,!1,u),f=u.onStop=()=>{const x=Ls.get(u);if(x){if(l)l(x,4);else for(const d of x)d();Ls.delete(u)}},t?n?m(!0):p=u.run():r?r(m.bind(null,!0),!0):u.run(),y.pause=u.pause.bind(u),y.resume=u.resume.bind(u),y.stop=y,y}function Oo(e,t=1/0,o){if(t<=0||!Qe(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,pt(e))Oo(e.value,t,o);else if(Ie(e))for(let n=0;n{Oo(n,t,o)});else if(ds(e)){for(const n in e)Oo(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Oo(e[n],t,o)}return e}/** +**/let vt;class wc{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&&vt&&(vt.active?(this.parent=vt,this.index=(vt.scopes||(vt.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(vt===this)vt=this.prevScope;else{let t=vt;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(ba){let t=ba;for(ba=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;ma;){let t=ma;for(ma=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 Pc(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Lc(e){let t,o=e.depsTail,n=o;for(;n;){const a=n.prevDep;n.version===-1?(n===o&&(o=a),Yr(n),Wf(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=t,e.depsTail=o}function qr(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Cc(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Cc(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===ya)||(e.globalVersion=ya,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!qr(e))))return;e.flags|=2;const t=e.dep,o=lt,n=ao;lt=e,ao=!0;try{Pc(e);const a=e.fn(e._value);(t.version===0||go(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{lt=o,ao=n,Lc(e),e.flags&=-3}}function Yr(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 s=o.computed.deps;s;s=s.nextDep)Yr(s,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function Wf(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let ao=!0;const Ec=[];function fo(){Ec.push(ao),ao=!1}function ho(){const e=Ec.pop();ao=e===void 0?!0:e}function Tc(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=lt;lt=void 0;try{t()}finally{lt=o}}}let ya=0;class qf{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 Zr{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(!lt||!ao||lt===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==lt)o=this.activeLink=new qf(lt,this),lt.deps?(o.prevDep=lt.depsTail,lt.depsTail.nextDep=o,lt.depsTail=o):lt.deps=lt.depsTail=o,Rc(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=lt.depsTail,o.nextDep=void 0,lt.depsTail.nextDep=o,lt.depsTail=o,lt.deps===o&&(lt.deps=n)}return o}trigger(t){this.version++,ya++,this.notify(t)}notify(t){Vr();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{Wr()}}}function Rc(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)Rc(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const $s=new WeakMap,fn=Symbol(""),Xr=Symbol(""),_a=Symbol("");function Mt(e,t,o){if(ao&<){let n=$s.get(e);n||$s.set(e,n=new Map);let a=n.get(o);a||(n.set(o,a=new Zr),a.map=n,a.key=o),a.track()}}function No(e,t,o,n,a,s){const r=$s.get(e);if(!r){ya++;return}const i=l=>{l&&l.trigger()};if(Vr(),t==="clear")r.forEach(i);else{const l=Ie(e),c=l&&fs(o);if(l&&o==="length"){const u=Number(n);r.forEach((h,f)=>{(f==="length"||f===_a||!Wt(f)&&f>=u)&&i(h)})}else switch((o!==void 0||r.has(void 0))&&i(r.get(o)),c&&i(r.get(_a)),t){case"add":l?c&&i(r.get("length")):(i(r.get(fn)),Xo(e)&&i(r.get(Xr)));break;case"delete":l||(i(r.get(fn)),Xo(e)&&i(r.get(Xr)));break;case"set":Xo(e)&&i(r.get(fn));break}}Wr()}function Yf(e,t){const o=$s.get(e);return o&&o.get(t)}function On(e){const t=We(e);return t===e?t:(Mt(t,"iterate",_a),qt(e)?t:t.map(so))}function vs(e){return Mt(e=We(e),"iterate",_a),e}function mo(e,t){return Io(e)?Bn(Fo(e)?so(t):t):so(t)}const Zf={__proto__:null,[Symbol.iterator](){return Jr(this,Symbol.iterator,e=>mo(this,e))},concat(...e){return On(this).concat(...e.map(t=>Ie(t)?On(t):t))},entries(){return Jr(this,"entries",e=>(e[1]=mo(this,e[1]),e))},every(e,t){return Mo(this,"every",e,t,void 0,arguments)},filter(e,t){return Mo(this,"filter",e,t,o=>o.map(n=>mo(this,n)),arguments)},find(e,t){return Mo(this,"find",e,t,o=>mo(this,o),arguments)},findIndex(e,t){return Mo(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Mo(this,"findLast",e,t,o=>mo(this,o),arguments)},findLastIndex(e,t){return Mo(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Mo(this,"forEach",e,t,void 0,arguments)},includes(...e){return Qr(this,"includes",e)},indexOf(...e){return Qr(this,"indexOf",e)},join(e){return On(this).join(e)},lastIndexOf(...e){return Qr(this,"lastIndexOf",e)},map(e,t){return Mo(this,"map",e,t,void 0,arguments)},pop(){return $a(this,"pop")},push(...e){return $a(this,"push",e)},reduce(e,...t){return Nc(this,"reduce",e,t)},reduceRight(e,...t){return Nc(this,"reduceRight",e,t)},shift(){return $a(this,"shift")},some(e,t){return Mo(this,"some",e,t,void 0,arguments)},splice(...e){return $a(this,"splice",e)},toReversed(){return On(this).toReversed()},toSorted(e){return On(this).toSorted(e)},toSpliced(...e){return On(this).toSpliced(...e)},unshift(...e){return $a(this,"unshift",e)},values(){return Jr(this,"values",e=>mo(this,e))}};function Jr(e,t,o){const n=vs(e),a=n[t]();return n!==e&&!qt(e)&&(a._next=a.next,a.next=()=>{const s=a._next();return s.done||(s.value=o(s.value)),s}),a}const Xf=Array.prototype;function Mo(e,t,o,n,a,s){const r=vs(e),i=r!==e&&!qt(e),l=r[t];if(l!==Xf[t]){const h=l.apply(e,s);return i?so(h):h}let c=o;r!==e&&(i?c=function(h,f){return o.call(this,mo(e,h),f,e)}:o.length>2&&(c=function(h,f){return o.call(this,h,f,e)}));const u=l.call(r,c,n);return i&&a?a(u):u}function Nc(e,t,o,n){const a=vs(e),s=a!==e&&!qt(e);let r=o,i=!1;a!==e&&(s?(i=n.length===0,r=function(c,u,h){return i&&(i=!1,c=mo(e,c)),o.call(this,c,mo(e,u),h,e)}):o.length>3&&(r=function(c,u,h){return o.call(this,c,u,h,e)}));const l=a[t](r,...n);return i?mo(e,l):l}function Qr(e,t,o){const n=We(e);Mt(n,"iterate",_a);const a=n[t](...o);return(a===-1||a===!1)&&Ss(o[0])?(o[0]=We(o[0]),n[t](...o)):a}function $a(e,t,o=[]){fo(),Vr();const n=We(e)[t].apply(e,o);return Wr(),ho(),n}const Jf=Gr("__proto__,__v_isRef,__isVue"),Mc=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Wt));function Qf(e){Wt(e)||(e=String(e));const t=We(this);return Mt(t,"has",e),t.hasOwnProperty(e)}class Fc{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,s=this._isShallow;if(o==="__v_isReactive")return!a;if(o==="__v_isReadonly")return a;if(o==="__v_isShallow")return s;if(o==="__v_raw")return n===(a?s?jc:Bc:s?Gc:Dc).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const r=Ie(t);if(!a){let l;if(r&&(l=Zf[o]))return l;if(o==="hasOwnProperty")return Qf}const i=Reflect.get(t,o,dt(t)?t:n);if((Wt(o)?Mc.has(o):Jf(o))||(a||Mt(t,"get",o),s))return i;if(dt(i)){const l=r&&fs(o)?i:i.value;return a&&Qe(l)?hn(l):l}return Qe(i)?a?hn(i):Dn(i):i}}class Ic extends Fc{constructor(t=!1){super(!1,t)}set(t,o,n,a){let s=t[o];const r=Ie(t)&&fs(o);if(!this._isShallow){const c=Io(s);if(!qt(n)&&!Io(n)&&(s=We(s),n=We(n)),!r&&dt(s)&&!dt(n))return c||(s.value=n),!0}const i=r?Number(o)e,ws=e=>Reflect.getPrototypeOf(e);function ah(e,t,o){return function(...n){const a=this.__v_raw,s=We(a),r=Xo(s),i=e==="entries"||e===Symbol.iterator&&r,l=e==="keys"&&r,c=a[e](...n),u=o?ei:t?Bn:so;return!t&&Mt(s,"iterate",l?Xr:fn),bt(Object.create(c),{next(){const{value:h,done:f}=c.next();return f?{value:h,done:f}:{value:i?[u(h[0]),u(h[1])]:u(h),done:f}}})}}function ks(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function sh(e,t){const o={get(a){const s=this.__v_raw,r=We(s),i=We(a);e||(go(a,i)&&Mt(r,"get",a),Mt(r,"get",i));const{has:l}=ws(r),c=t?ei:e?Bn:so;if(l.call(r,a))return c(s.get(a));if(l.call(r,i))return c(s.get(i));s!==r&&s.get(a)},get size(){const a=this.__v_raw;return!e&&Mt(We(a),"iterate",fn),a.size},has(a){const s=this.__v_raw,r=We(s),i=We(a);return e||(go(a,i)&&Mt(r,"has",a),Mt(r,"has",i)),a===i?s.has(a):s.has(a)||s.has(i)},forEach(a,s){const r=this,i=r.__v_raw,l=We(i),c=t?ei:e?Bn:so;return!e&&Mt(l,"iterate",fn),i.forEach((u,h)=>a.call(s,c(u),c(h),r))}};return bt(o,e?{add:ks("add"),set:ks("set"),delete:ks("delete"),clear:ks("clear")}:{add(a){const s=We(this),r=ws(s),i=We(a),l=!t&&!qt(a)&&!Io(a)?i:a;return r.has.call(s,l)||go(a,l)&&r.has.call(s,a)||go(i,l)&&r.has.call(s,i)||(s.add(l),No(s,"add",l,l)),this},set(a,s){!t&&!qt(s)&&!Io(s)&&(s=We(s));const r=We(this),{has:i,get:l}=ws(r);let c=i.call(r,a);c||(a=We(a),c=i.call(r,a));const u=l.call(r,a);return r.set(a,s),c?go(s,u)&&No(r,"set",a,s):No(r,"add",a,s),this},delete(a){const s=We(this),{has:r,get:i}=ws(s);let l=r.call(s,a);l||(a=We(a),l=r.call(s,a)),i&&i.call(s,a);const c=s.delete(a);return l&&No(s,"delete",a,void 0),c},clear(){const a=We(this),s=a.size!==0,r=a.clear();return s&&No(a,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(a=>{o[a]=ah(a,e,t)}),o}function xs(e,t){const o=sh(e,t);return(n,a,s)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?n:Reflect.get(Je(o,a)&&a in n?o:n,a,s)}const rh={get:xs(!1,!1)},ih={get:xs(!1,!0)},lh={get:xs(!0,!1)},ch={get:xs(!0,!0)},Dc=new WeakMap,Gc=new WeakMap,Bc=new WeakMap,jc=new WeakMap;function uh(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 Io(e)?e:As(e,!1,eh,rh,Dc)}function ph(e){return As(e,!1,oh,ih,Gc)}function hn(e){return As(e,!0,th,lh,Bc)}function UL(e){return As(e,!0,nh,ch,jc)}function As(e,t,o,n,a){if(!Qe(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const s=a.get(e);if(s)return s;const r=uh(Of(e));if(r===0)return e;const i=new Proxy(e,r===2?n:o);return a.set(e,i),i}function Fo(e){return Io(e)?Fo(e.__v_raw):!!(e&&e.__v_isReactive)}function Io(e){return!!(e&&e.__v_isReadonly)}function qt(e){return!!(e&&e.__v_isShallow)}function Ss(e){return e?!!e.__v_raw:!1}function We(e){const t=e&&e.__v_raw;return t?We(t):e}function Gn(e){return!Je(e,"__v_skip")&&Object.isExtensible(e)&&hc(e,"__v_skip",!0),e}const so=e=>Qe(e)?Dn(e):e,Bn=e=>Qe(e)?hn(e):e;function dt(e){return e?e.__v_isRef===!0:!1}function be(e){return zc(e,!1)}function va(e){return zc(e,!0)}function zc(e,t){return dt(e)?e:new dh(e,t)}class dh{constructor(t,o){this.dep=new Zr,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:We(t),this._value=o?t:so(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||qt(t)||Io(t);t=n?t:We(t),go(t,o)&&(this._rawValue=t,this._value=n?t:so(t),this.dep.trigger())}}function de(e){return dt(e)?e.value:e}const gh={get:(e,t,o)=>t==="__v_raw"?e:de(Reflect.get(e,t,o)),set:(e,t,o,n)=>{const a=e[t];return dt(a)&&!dt(o)?(a.value=o,!0):Reflect.set(e,t,o,n)}};function Uc(e){return Fo(e)?e:new Proxy(e,gh)}function fh(e){const t=Ie(e)?new Array(e.length):{};for(const o in e)t[o]=Hc(e,o);return t}class hh{constructor(t,o,n){this._object=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=Wt(o)?o:String(o),this._raw=We(t);let a=!0,s=t;if(!Ie(t)||Wt(this._key)||!fs(this._key))do a=!Ss(s)||qt(s);while(a&&(s=s.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=de(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&dt(this._raw[this._key])){const o=this._object[this._key];if(dt(o)){o.value=t;return}}this._object[this._key]=t}get dep(){return Yf(this._raw,this._key)}}class mh{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 Ps(e,t,o){return dt(e)?e:De(e)?new mh(e):Qe(e)&&arguments.length>1?Hc(e,t,o):be(e)}function Hc(e,t,o){return new hh(e,t,o)}class bh{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new Zr(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=ya-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&<!==this)return Sc(this,!0),!0}get value(){const t=this.dep.track();return Cc(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function yh(e,t,o=!1){let n,a;return De(e)?n=e:(n=e.get,a=e.set),new bh(n,a,o)}const Ls={},Cs=new WeakMap;let mn;function _h(e,t=!1,o=mn){if(o){let n=Cs.get(o);n||Cs.set(o,n=[]),n.push(e)}}function $h(e,t,o=st){const{immediate:n,deep:a,once:s,scheduler:r,augmentJob:i,call:l}=o,c=S=>a?S:qt(S)||a===!1||a===0?Oo(S,1):Oo(S);let u,h,f,P,w=!1,m=!1;if(dt(e)?(h=()=>e.value,w=qt(e)):Fo(e)?(h=()=>c(e),w=!0):Ie(e)?(m=!0,w=e.some(S=>Fo(S)||qt(S)),h=()=>e.map(S=>{if(dt(S))return S.value;if(Fo(S))return c(S);if(De(S))return l?l(S,2):S()})):De(e)?t?h=l?()=>l(e,2):e:h=()=>{if(f){fo();try{f()}finally{ho()}}const S=mn;mn=u;try{return l?l(e,3,[P]):e(P)}finally{mn=S}}:h=po,t&&a){const S=h,C=a===!0?1/0:a;h=()=>Oo(S(),C)}const y=kc(),b=()=>{u.stop(),y&&y.active&&Br(y.effects,u)};if(s&&t){const S=t;t=(...C)=>{const p=S(...C);return b(),p}}let d=m?new Array(e.length).fill(Ls):Ls;const g=S=>{if(!(!(u.flags&1)||!u.dirty&&!S))if(t){const C=u.run();if(S||a||w||(m?C.some((p,v)=>go(p,d[v])):go(C,d))){f&&f();const p=mn;mn=u;try{const v=[C,d===Ls?void 0:m&&d[0]===Ls?[]:d,P];d=C,l?l(t,3,v):t(...v)}finally{mn=p}}}else u.run()};return i&&i(g),u=new xc(h),u.scheduler=r?()=>r(g,!1):g,P=S=>_h(S,!1,u),f=u.onStop=()=>{const S=Cs.get(u);if(S){if(l)l(S,4);else for(const C of S)C();Cs.delete(u)}},t?n?g(!0):d=u.run():r?r(g.bind(null,!0),!0):u.run(),b.pause=u.pause.bind(u),b.resume=u.resume.bind(u),b.stop=b,b}function Oo(e,t=1/0,o){if(t<=0||!Qe(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,dt(e))Oo(e.value,t,o);else if(Ie(e))for(let n=0;n{Oo(n,t,o)});else if(gs(e)){for(const n in e)Oo(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Oo(e[n],t,o)}return e}/** * @vue/runtime-core v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const va=[];let ei=!1;function CL(e,...t){if(ei)return;ei=!0,ho();const o=va.length?va[va.length-1].component:null,n=o&&o.appContext.config.warnHandler,a=bh();if(n)jn(n,o,11,[e+t.map(s=>{var r,i;return(i=(r=s.toString)==null?void 0:r.call(s))!=null?i:JSON.stringify(s)}).join(""),o&&o.proxy,a.map(({vnode:s})=>`at <${ju(o,s.type)}>`).join(` +**/const wa=[];let ti=!1;function HL(e,...t){if(ti)return;ti=!0,fo();const o=wa.length?wa[wa.length-1].component:null,n=o&&o.appContext.config.warnHandler,a=vh();if(n)jn(n,o,11,[e+t.map(s=>{var r,i;return(i=(r=s.toString)==null?void 0:r.call(s))!=null?i:JSON.stringify(s)}).join(""),o&&o.proxy,a.map(({vnode:s})=>`at <${Uu(o,s.type)}>`).join(` `),a]);else{const s=[`[Vue warn]: ${e}`,...t];a.length&&s.push(` -`,...yh(a)),console.warn(...s)}mo(),ei=!1}function bh(){let e=va[va.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 yh(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[` -`],..._h(o))}),t}function _h({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${ju(e.component,e.type,n)}`,s=">"+o;return e.props?[a,...$h(e.props),s]:[a+s]}function $h(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...Uc(n,e[n]))}),o.length>3&&t.push(" ..."),t}function Uc(e,t,o){return lt(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:pt(t)?(t=Uc(e,Ve(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):De(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=Ve(t),o?t:[`${e}=`,t])}function jn(e,t,o,n){try{return n?e(...n):e()}catch(a){wa(a,t,o)}}function ro(e,t,o,n){if(De(e)){const a=jn(e,t,o,n);return a&&pc(a)&&a.catch(s=>{wa(s,t,o)}),a}if(Ie(e)){const a=[];for(let s=0;s>>1,a=Ot[n],s=ka(a);s=ka(o)?Ot.push(e):Ot.splice(wh(t),0,e),e.flags|=1,Hc()}}function Hc(){Cs||(Cs=Kc.then(qc))}function kh(e){if(!Ie(e))Jo&&e.id===-1?Jo.splice(Un+1,0,e):e.flags&1||(zn.push(e),e.flags|=1);else for(let t=0;tka(o)-ka(n));if(zn.length=0,Jo){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function qc(e){try{for(yo=0;yo{n._d&&Gs(-1);const s=Ts(t),r=Bo.length;let i;try{i=e(...a)}finally{for(let l=Bo.length;l>r;l--)_i();Ts(s),n._d&&Gs(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function oi(e,t){if(Lt===null)return e;const o=Ks(Lt),n=e.dirs||(e.dirs=[]);for(let a=0;a1)return o&&De(t)?t.call(n&&n.proxy):t}}function xh(){return!!(ko()||$n)}const Ah=Symbol.for("v-scx"),Sh=()=>Re(Ah);function Ph(e,t){return ni(e,null,t)}function Fe(e,t,o){return ni(e,t,o)}function ni(e,t,o=rt){const{immediate:n,deep:a,flush:s,once:r}=o,i=bt({},o),l=t&&n||!t&&s!=="post";let c;if(Vn){if(s==="sync"){const S=Sh();c=S.__watcherHandles||(S.__watcherHandles=[])}else if(!l){const S=()=>{};return S.stop=go,S.resume=go,S.pause=go,S}}const u=Tt;i.call=(S,$,b)=>ro(S,u,$,b);let h=!1;s==="post"?i.scheduler=S=>{Gt(S,u&&u.suspense)}:s!=="sync"&&(h=!0,i.scheduler=(S,$)=>{$?S():ti(S)}),i.augmentJob=S=>{t&&(S.flags|=4),h&&(S.flags|=2,u&&(S.id=u.uid,S.i=u))};const f=mh(e,t,i);return Vn&&(c?c.push(f):l&&f()),f}function Lh(e,t,o){const n=this.proxy,a=lt(e)?e.includes(".")?Zc(n,e):()=>n[e]:e.bind(n,n);let s;De(t)?s=t:(s=t.handler,o=t);const r=Ma(this),i=ni(a,s.bind(n),o);return r(),i}function Zc(e,t){const o=t.split(".");return()=>{let n=e;for(let a=0;ae.__isTeleport,yn=e=>e&&(e.disabled||e.disabled===""),Ch=e=>e&&(e.defer||e.defer===""),Jc=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Qc=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,ai=(e,t)=>{const o=e&&e.to;return lt(o)?t?t(o):null:o},Th={name:"Teleport",__isTeleport:!0,process(e,t,o,n,a,s,r,i,l,c){const{mc:u,pc:h,pbc:f,o:{insert:S,querySelector:$,createText:b,createComment:_,parentNode:y}}=c,p=yn(t.props);let{dynamicChildren:m}=t;const x=(g,C,A)=>{g.shapeFlag&16&&u(g.children,C,A,a,s,r,i,l)},d=(g=t)=>{const C=yn(g.props),A=g.target=ai(g.props,$),U=si(A,g,b,S);A&&(r!=="svg"&&Jc(A)?r="svg":r!=="mathml"&&Qc(A)&&(r="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(A),C||(x(g,A,U),xa(g,!1)))},P=g=>{const C=()=>{if(Qo.get(g)===C){if(Qo.delete(g),yn(g.props)){const A=y(g.el)||o;x(g,A,g.anchor),xa(g,!0)}d(g)}};Qo.set(g,C),Gt(C,s)};if(e==null){const g=t.el=b(""),C=t.anchor=b("");if(S(g,o,n),S(C,o,n),Ch(t.props)||s&&s.pendingBranch){P(t);return}p&&(x(t,o,C),xa(t,!0)),d()}else{t.el=e.el;const g=t.anchor=e.anchor,C=Qo.get(e);if(C){C.flags|=8,Qo.delete(e),P(t);return}t.targetStart=e.targetStart;const A=t.target=e.target,U=t.targetAnchor=e.targetAnchor,H=yn(e.props),Y=H?o:A,K=H?g:U;if(r==="svg"||Jc(A)?r="svg":(r==="mathml"||Qc(A))&&(r="mathml"),m?(f(e.dynamicChildren,m,Y,a,s,r,i),bi(e,t,!0)):l||h(e,t,Y,K,a,s,r,i,!1),p)H?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Rs(t,o,g,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const le=ai(t.props,$);le&&(t.target=le,Rs(t,le,null,c,0))}else H&&Rs(t,A,U,c,1);xa(t,p)}},remove(e,t,o,{um:n,o:{remove:a}},s){const{shapeFlag:r,children:i,anchor:l,targetStart:c,targetAnchor:u,target:h,props:f}=e,S=yn(f),$=s||!S,b=Qo.get(e);if(b&&(b.flags|=8,Qo.delete(e)),h&&(a(c),a(u)),s&&a(l),!b&&(S||h)&&r&16)for(let _=0;_1){for(const o of e)if(o.type!==$o){t=o;break}}return t}function eu(e){if(!Fs(e))return Es(e.type)&&e.children?Nh(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&&De(o.default))return o.default()}}function ii(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;ii(Es(o.type)&&eu(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 Aa(e,t){return De(e)?bt({name:e.name},t,{setup:e}):e}function li(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function tu(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}const Ns=new WeakMap;function Sa(e,t,o,n,a=!1){if(Ie(e)){e.forEach((b,_)=>Sa(b,t&&(Ie(t)?t[_]:t),o,n,a));return}if(Kn(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Sa(e,t,o,n.component.subTree);return}const s=n.shapeFlag&4?Ks(n.component):n.el,r=a?null:s,{i,r:l}=e,c=t&&t.r,u=i.refs===rt?i.refs={}:i.refs,h=i.setupState,f=Ve(h),S=h===rt?cc:b=>tu(u,b)?!1:Je(f,b),$=(b,_)=>!(_&&tu(u,_));if(c!=null&&c!==l){if(ou(t),lt(c))u[c]=null,S(c)&&(h[c]=null);else if(pt(c)){const b=t;$(c,b.k)&&(c.value=null),b.k&&(u[b.k]=null)}}if(De(l))jn(l,i,12,[r,u]);else{const b=lt(l),_=pt(l);if(b||_){const y=()=>{if(e.f){const p=b?S(l)?h[l]:u[l]:$()||!e.k?l.value:u[e.k];if(a)Ie(p)&&Br(p,s);else if(Ie(p))p.includes(s)||p.push(s);else if(b)u[l]=[s],S(l)&&(h[l]=u[l]);else{const m=[s];$(l,e.k)&&(l.value=m),e.k&&(u[e.k]=m)}}else b?(u[l]=r,S(l)&&(h[l]=r)):_&&($(l,e.k)&&(l.value=r),e.k&&(u[e.k]=r))};if(r){const p=()=>{y(),Ns.delete(e)};p.id=-1,Ns.set(e,p),Gt(p,o)}else ou(e),y()}}}function ou(e){const t=Ns.get(e);t&&(t.flags|=8,Ns.delete(e))}const nu=e=>e.nodeType===8;bs().requestIdleCallback,bs().cancelIdleCallback;function Mh(e,t){if(nu(e)&&e.data==="["){let o=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(t(n)===!1)break}else if(nu(n))if(n.data==="]"){if(--o===0)break}else n.data==="["&&o++;n=n.nextSibling}}else t(e)}const Kn=e=>!!e.type.__asyncLoader;function Fh(e){De(e)&&(e={loader:e});const{loader:t,loadingComponent:o,errorComponent:n,delay:a=200,hydrate:s,timeout:r,suspensible:i=!0,onError:l}=e;let c=null,u,h=0;const f=()=>(h++,c=null,S()),S=()=>{let $;return c||($=c=t().catch(b=>{if(b=b instanceof Error?b:new Error(String(b)),l)return new Promise((_,y)=>{l(b,()=>_(f()),()=>y(b),h+1)});throw b}).then(b=>$!==c&&c?c:(b&&(b.__esModule||b[Symbol.toStringTag]==="Module")&&(b=b.default),u=b,b)))};return Aa({name:"AsyncComponentWrapper",__asyncLoader:S,__asyncHydrate($,b,_){const y=$.isConnected;let p=!1;(b.bu||(b.bu=[])).push(()=>p=!0);const m=()=>{p||!$.parentNode||y&&!$.isConnected||_()},x=s?()=>{const d=s(m,P=>Mh($,P));d&&(b.bum||(b.bum=[])).push(d)}:m;u?x():S().then(()=>!b.isUnmounted&&x())},get __asyncResolved(){return u},setup(){const $=Tt;if(li($),u)return()=>Ms(u,$);const b=d=>{c=null,wa(d,$,13,!n)};if(i&&$.suspense||Vn)return S().then(d=>()=>Ms(d,$)).catch(d=>(b(d),()=>n?nt(n,{error:d}):null));const _=me(!1),y=me(),p=me(!!a);let m,x;return Os(()=>{m!=null&&clearTimeout(m),x!=null&&clearTimeout(x)}),a&&(x=setTimeout(()=>{$.isUnmounted||(p.value=!1)},a)),r!=null&&(m=setTimeout(()=>{if(!$.isUnmounted&&!_.value&&!y.value){const d=new Error(`Async component timed out after ${r}ms.`);b(d),y.value=d}},r)),S().then(()=>{$.isUnmounted||(_.value=!0,$.parent&&Fs($.parent.vnode)&&$.parent.update())}).catch(d=>{if($.isUnmounted){c=null;return}b(d),y.value=d}),()=>{if(_.value&&u)return Ms(u,$);if(y.value&&n)return nt(n,{error:y.value});if(o&&!p.value)return Ms(o,$)}}})}function Ms(e,t){const{ref:o,props:n,children:a,ce:s}=t.vnode,r=nt(e,n,a);return r.ref=o,r.ce=s,delete t.vnode.ce,r}const Fs=e=>e.type.__isKeepAlive;function Ih(e,t){au(e,"a",t)}function Oh(e,t){au(e,"da",t)}function au(e,t,o=Tt){const n=e.__wdc||(e.__wdc=()=>{let a=o;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Is(t,n,o),o){let a=o.parent;for(;a&&a.parent;)Fs(a.parent.vnode)&&Dh(n,t,o,a),a=a.parent}}function Dh(e,t,o,n){const a=Is(t,e,n,!0);Os(()=>{Br(n[t],a)},o)}function Is(e,t,o=Tt,n=!1){if(o){const a=o[e]||(o[e]=[]),s=t.__weh||(t.__weh=(...r)=>{ho();const i=Ma(o),l=ro(t,o,e,r);return i(),mo(),l});return n?a.unshift(s):a.push(s),s}}const Do=e=>(t,o=Tt)=>{(!Vn||e==="sp")&&Is(e,(...n)=>t(...n),o)},su=Do("bm"),_o=Do("m"),Bh=Do("bu"),Gh=Do("u"),Jt=Do("bum"),Os=Do("um"),jh=Do("sp"),zh=Do("rtg"),Uh=Do("rtc");function Kh(e,t=Tt){Is("ec",e,t)}const Hh="components",ru=Symbol.for("v-ndc");function iu(e){return lt(e)?Vh(Hh,e,!1)||e:e||ru}function Vh(e,t,o=!0,n=!1){const a=Lt||Tt;if(a){const s=a.type;{const i=Gu(s,!1);if(i&&(i===t||i===St(t)||i===hs(St(t))))return s}const r=lu(a[e]||s[e],t)||lu(a.appContext[e],t);return!r&&n?s:r}}function lu(e,t){return e&&(e[t]||e[St(t)]||e[hs(St(t))])}function Mt(e,t,o,n){let a;const s=o,r=Ie(e);if(r||lt(e)){const i=r&&Fo(e);let l=!1,c=!1;i&&(l=!Wt(e),c=Io(e),e=$s(e)),a=new Array(e.length);for(let u=0,h=e.length;ut(i,l,void 0,s));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),ae(),ot(Ke,null,[nt("slot",c,n)],u?-2:64)}let r=e[t];r&&r._c&&(r._d=!1);const i=Bo.length;ae();let l;try{const c=r&&cu(r(o)),u=o.key||s||c&&c.key;l=ot(Ke,{key:(u&&!Vt(u)?u:`_${t}`)+(!c&&n?"_fb":"")},c||(n?n():[]),c&&e._===1?64:-2)}catch(c){for(let u=Bo.length;u>i;u--)_i();throw c}finally{r&&r._c&&(r._d=!0)}return!a&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function cu(e){return e.some(t=>Ea(t)?!(t.type===$o||t.type===Ke&&!cu(t.children)):!0)?e:null}const ci=e=>e?Ou(e)?Ks(e):ci(e.parent):null,Pa=bt(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=>ci(e.parent),$root:e=>ci(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>gu(e),$forceUpdate:e=>e.f||(e.f=()=>{ti(e.update)}),$nextTick:e=>e.n||(e.n=Dt.bind(e.proxy)),$watch:e=>Lh.bind(e)}),ui=(e,t)=>e!==rt&&!e.__isScriptSetup&&Je(e,t),Wh={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:o,setupState:n,data:a,props:s,accessCache:r,type:i,appContext:l}=e;if(t[0]!=="$"){const f=r[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 s[t]}else{if(ui(n,t))return r[t]=1,n[t];if(a!==rt&&Je(a,t))return r[t]=2,a[t];if(Je(s,t))return r[t]=3,s[t];if(o!==rt&&Je(o,t))return r[t]=4,o[t];pi&&(r[t]=0)}}const c=Pa[t];let u,h;if(c)return t==="$attrs"&&Nt(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(o!==rt&&Je(o,t))return r[t]=4,o[t];if(h=l.config.globalProperties,Je(h,t))return h[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:s}=e;return ui(a,t)?(a[t]=o,!0):n!==rt&&Je(n,t)?(n[t]=o,!0):Je(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:n,appContext:a,props:s,type:r}},i){let l;return!!(o[i]||e!==rt&&i[0]!=="$"&&Je(e,i)||ui(t,i)||Je(s,i)||Je(n,i)||Je(Pa,i)||Je(a.config.globalProperties,i)||(l=r.__cssModules)&&l[i])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:Je(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function uu(e){return Ie(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let pi=!0;function qh(e){const t=gu(e),o=e.proxy,n=e.ctx;pi=!1,t.beforeCreate&&pu(t.beforeCreate,e,"bc");const{data:a,computed:s,methods:r,watch:i,provide:l,inject:c,created:u,beforeMount:h,mounted:f,beforeUpdate:S,updated:$,activated:b,deactivated:_,beforeDestroy:y,beforeUnmount:p,destroyed:m,unmounted:x,render:d,renderTracked:P,renderTriggered:g,errorCaptured:C,serverPrefetch:A,expose:U,inheritAttrs:H,components:Y,directives:K,filters:le}=t;if(c&&Yh(c,n,null),r)for(const z in r){const M=r[z];De(M)&&(n[z]=M.bind(o))}if(a){const z=a.call(o,o);Qe(z)&&(e.data=Dn(z))}if(pi=!0,s)for(const z in s){const M=s[z],R=De(M)?M.bind(o,o):De(M.get)?M.get.bind(o,o):go,j=!De(M)&&De(M.set)?M.set.bind(o):go,J=ne({get:R,set:j});Object.defineProperty(n,z,{enumerable:!0,configurable:!0,get:()=>J.value,set:D=>J.value=D})}if(i)for(const z in i)du(i[z],n,o,z);if(l){const z=De(l)?l.call(o):l;Reflect.ownKeys(z).forEach(M=>{kt(M,z[M])})}u&&pu(u,e,"c");function k(z,M){Ie(M)?M.forEach(R=>z(R.bind(o))):M&&z(M.bind(o))}if(k(su,h),k(_o,f),k(Bh,S),k(Gh,$),k(Ih,b),k(Oh,_),k(Kh,C),k(Uh,P),k(zh,g),k(Jt,p),k(Os,x),k(jh,A),Ie(U))if(U.length){const z=e.exposed||(e.exposed={});U.forEach(M=>{Object.defineProperty(z,M,{get:()=>o[M],set:R=>o[M]=R,enumerable:!0})})}else e.exposed||(e.exposed={});d&&e.render===go&&(e.render=d),H!=null&&(e.inheritAttrs=H),Y&&(e.components=Y),K&&(e.directives=K),A&&li(e)}function Yh(e,t,o=go){Ie(e)&&(e=di(e));for(const n in e){const a=e[n];let s;Qe(a)?"default"in a?s=Re(a.from||n,a.default,!0):s=Re(a.from||n):s=Re(a),pt(s)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:r=>s.value=r}):t[n]=s}}function pu(e,t,o){ro(Ie(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function du(e,t,o,n){let a=n.includes(".")?Zc(o,n):()=>o[n];if(lt(e)){const s=t[e];De(s)&&Fe(a,s)}else if(De(e))Fe(a,e.bind(o));else if(Qe(e))if(Ie(e))e.forEach(s=>du(s,t,o,n));else{const s=De(e.handler)?e.handler.bind(o):t[e.handler];De(s)&&Fe(a,s,e)}}function gu(e){const t=e.type,{mixins:o,extends:n}=t,{mixins:a,optionsCache:s,config:{optionMergeStrategies:r}}=e.appContext,i=s.get(t);let l;return i?l=i:!a.length&&!o&&!n?l=t:(l={},a.length&&a.forEach(c=>Ds(l,c,r,!0)),Ds(l,t,r)),Qe(t)&&s.set(t,l),l}function Ds(e,t,o,n=!1){const{mixins:a,extends:s}=t;s&&Ds(e,s,o,!0),a&&a.forEach(r=>Ds(e,r,o,!0));for(const r in t)if(!(n&&r==="expose")){const i=Zh[r]||o&&o[r];e[r]=i?i(e[r],t[r]):t[r]}return e}const Zh={data:fu,props:hu,emits:hu,methods:La,computed:La,beforeCreate:Bt,created:Bt,beforeMount:Bt,mounted:Bt,beforeUpdate:Bt,updated:Bt,beforeDestroy:Bt,beforeUnmount:Bt,destroyed:Bt,unmounted:Bt,activated:Bt,deactivated:Bt,errorCaptured:Bt,serverPrefetch:Bt,components:La,directives:La,watch:Jh,provide:fu,inject:Xh};function fu(e,t){return t?e?function(){return bt(De(e)?e.call(this,this):e,De(t)?t.call(this,this):t)}:t:e}function Xh(e,t){return La(di(e),di(t))}function di(e){if(Ie(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${St(t)}Modifiers`]||e[`${Xt(t)}Modifiers`];function om(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||rt;let a=o;const s=t.startsWith("update:"),r=s&&tm(n,t.slice(7));r&&(r.trim&&(a=o.map(u=>lt(u)?u.trim():u)),r.number&&(a=a.map(jr)));let i,l=n[i=Gr(t)]||n[i=Gr(St(t))];!l&&s&&(l=n[i=Gr(Xt(t))]),l&&ro(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,ro(c,e,6,a)}}const nm=new WeakMap;function bu(e,t,o=!1){const n=o?nm:t.emitsCache,a=n.get(e);if(a!==void 0)return a;const s=e.emits;let r={},i=!1;if(!De(e)){const l=c=>{const u=bu(c,t,!0);u&&(i=!0,bt(r,u))};!o&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!s&&!i?(Qe(e)&&n.set(e,null),null):(Ie(s)?s.forEach(l=>r[l]=null):bt(r,s),Qe(e)&&n.set(e,r),r)}function Bs(e,t){return!e||!cs(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Je(e,t[0].toLowerCase()+t.slice(1))||Je(e,Xt(t))||Je(e,t))}function TL(){}function yu(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[s],slots:r,attrs:i,emit:l,render:c,renderCache:u,props:h,data:f,setupState:S,ctx:$,inheritAttrs:b}=e,_=Ts(e);let y,p;try{if(o.shapeFlag&4){const x=a||n,d=x;y=vo(c.call(d,x,u,h,S,f,$)),p=i}else{const x=t;y=vo(x.length>1?x(h,{attrs:i,slots:r,emit:l}):x(h,null)),p=t.props?i:am(i)}}catch(x){Bo.length=0,wa(x,e,1),y=nt($o)}let m=y;if(p&&b!==!1){const x=Object.keys(p),{shapeFlag:d}=m;x.length&&d&7&&(s&&x.some(us)&&(p=sm(p,s)),m=Hn(m,p,!1,!0))}if(o.dirs&&(m=Hn(m,null,!1,!0),m.dirs=m.dirs?m.dirs.concat(o.dirs):o.dirs),o.transition){const x=Es(m.type)&&eu(m)||m;ii(x,o.transition)}return y=m,Ts(_),y}const am=e=>{let t;for(const o in e)(o==="class"||o==="style"||cs(o))&&((t||(t={}))[o]=e[o]);return t},sm=(e,t)=>{const o={};for(const n in e)(!us(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function rm(e,t,o){const{props:n,children:a,component:s}=e,{props:r,children:i,patchFlag:l}=t,c=s.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&l>=0){if(l&1024)return!0;if(l&16)return n?_u(n,r,c):!!r;if(l&8){const u=t.dynamicProps;for(let h=0;hObject.create(vu),ku=e=>Object.getPrototypeOf(e)===vu;function lm(e,t,o,n=!1){const a={},s=wu();e.propsDefaults=Object.create(null),xu(e,t,a,s);for(const r in e.propsOptions[0])r in a||(a[r]=void 0);o?e.props=n?a:ih(a):e.type.props?e.props=a:e.props=s,e.attrs=s}function cm(e,t,o,n){const{props:a,attrs:s,vnode:{patchFlag:r}}=e,i=Ve(a),[l]=e.propsOptions;let c=!1;if((n||r>0)&&!(r&16)){if(r&8){const u=e.vnode.dynamicProps;for(let h=0;h{l=!0;const[f,S]=Au(h,t,!0);bt(r,f),S&&i.push(...S)};!o&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!s&&!l)return Qe(e)&&n.set(e,In),In;if(Ie(s))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",hi=e=>Ie(e)?e.map(vo):[vo(e)],pm=(e,t,o)=>{if(t._n)return t;const n=Ut((...a)=>hi(t(...a)),o);return n._c=!1,n},Pu=(e,t,o)=>{const n=e._ctx;for(const a in e){if(fi(a))continue;const s=e[a];if(De(s))t[a]=pm(a,s,n);else if(s!=null){const r=hi(s);t[a]=()=>r}}},Lu=(e,t)=>{const o=hi(t);e.slots.default=()=>o},Cu=(e,t,o)=>{for(const n in t)(o||!fi(n))&&(e[n]=t[n])},dm=(e,t,o)=>{const n=e.slots=wu();if(e.vnode.shapeFlag&32){const a=t._;a?(Cu(n,t,o),o&&gc(n,"_",a,!0)):Pu(t,n)}else t&&Lu(e,t)},gm=(e,t,o)=>{const{vnode:n,slots:a}=e;let s=!0,r=rt;if(n.shapeFlag&32){const i=t._;i?o&&i===1?s=!1:Cu(a,t,o):(s=!t.$stable,Pu(t,a)),r=t}else t&&(Lu(e,t),r={default:1});if(s)for(const i in a)!fi(i)&&r[i]==null&&delete a[i]},Gt=ym;function fm(e){return hm(e)}function hm(e,t){const o=bs();o.__VUE__=!0;const{insert:n,remove:a,patchProp:s,createElement:r,createText:i,createComment:l,setText:c,setElementText:u,parentNode:h,nextSibling:f,setScopeId:S=go,insertStaticContent:$}=e,b=(E,O,N,q=null,Q=null,F=null,ue=void 0,oe=null,w=!!O.dynamicChildren)=>{if(E===O)return;E&&!Ra(E,O)&&(q=fe(E),D(E,Q,F,!0),E=null),O.patchFlag===-2&&(w=!1,O.dynamicChildren=null);const{type:v,ref:B,shapeFlag:ee}=O;switch(v){case Ca:_(E,O,N,q);break;case $o:y(E,O,N,q);break;case yi:E==null&&p(O,N,q,ue);break;case Ke:Y(E,O,N,q,Q,F,ue,oe,w);break;default:ee&1?d(E,O,N,q,Q,F,ue,oe,w):ee&6?K(E,O,N,q,Q,F,ue,oe,w):(ee&64||ee&128)&&v.process(E,O,N,q,Q,F,ue,oe,w,ie)}B!=null&&Q?Sa(B,E&&E.ref,F,O||E,!O):B==null&&E&&E.ref!=null&&Sa(E.ref,null,F,E,!0)},_=(E,O,N,q)=>{if(E==null)n(O.el=i(O.children),N,q);else{const Q=O.el=E.el;O.children!==E.children&&c(Q,O.children)}},y=(E,O,N,q)=>{E==null?n(O.el=l(O.children||""),N,q):O.el=E.el},p=(E,O,N,q)=>{[E.el,E.anchor]=$(E.children,O,N,q,E.el,E.anchor)},m=({el:E,anchor:O},N,q)=>{let Q;for(;E&&E!==O;)Q=f(E),n(E,N,q),E=Q;n(O,N,q)},x=({el:E,anchor:O})=>{let N;for(;E&&E!==O;)N=f(E),a(E),E=N;a(O)},d=(E,O,N,q,Q,F,ue,oe,w)=>{if(O.type==="svg"?ue="svg":O.type==="math"&&(ue="mathml"),E==null)P(O,N,q,Q,F,ue,oe,w);else{const v=E.el&&E.el._isVueCE?E.el:null;try{v&&v._beginPatch(),A(E,O,Q,F,ue,oe,w)}finally{v&&v._endPatch()}}},P=(E,O,N,q,Q,F,ue,oe)=>{let w,v;const{props:B,shapeFlag:ee,transition:be,dirs:pe}=E;if(w=E.el=r(E.type,F,B&&B.is,B),ee&8?u(w,E.children):ee&16&&C(E.children,w,null,q,Q,mi(E,F),ue,oe),pe&&bn(E,null,q,"created"),g(w,E,E.scopeId,ue,q),B){for(const ce in B)ce!=="value"&&!fa(ce)&&s(w,ce,null,B[ce],F,q);"value"in B&&s(w,"value",null,B.value,F),(v=B.onVnodeBeforeMount)&&wo(v,q,E)}pe&&bn(E,null,q,"beforeMount");const te=mm(Q,be);te&&be.beforeEnter(w),n(w,O,N),((v=B&&B.onVnodeMounted)||te||pe)&&Gt(()=>{try{v&&wo(v,q,E),te&&be.enter(w),pe&&bn(E,null,q,"mounted")}finally{}},Q)},g=(E,O,N,q,Q)=>{if(N&&S(E,N),q)for(let F=0;F{for(let v=w;v{const oe=O.el=E.el;let{patchFlag:w,dynamicChildren:v,dirs:B}=O;w|=E.patchFlag&16;const ee=E.props||rt,be=O.props||rt;let pe;if(N&&vn(N,!1),(pe=be.onVnodeBeforeUpdate)&&wo(pe,N,O,E),B&&bn(O,E,N,"beforeUpdate"),N&&vn(N,!0),v&&(!E.dynamicChildren||E.dynamicChildren.length!==v.length)&&(w=0,ue=!1,v=null),(ee.innerHTML&&be.innerHTML==null||ee.textContent&&be.textContent==null)&&u(oe,""),v?U(E.dynamicChildren,v,oe,N,q,mi(O,Q),F):ue||M(E,O,oe,null,N,q,mi(O,Q),F,!1),w>0){if(w&16)H(oe,ee,be,N,Q);else if(w&2&&ee.class!==be.class&&s(oe,"class",null,be.class,Q),w&4&&s(oe,"style",ee.style,be.style,Q),w&8){const te=O.dynamicProps;for(let ce=0;ce{pe&&wo(pe,N,O,E),B&&bn(O,E,N,"updated")},q)},U=(E,O,N,q,Q,F,ue)=>{for(let oe=0;oe{if(O!==N){if(O!==rt)for(const F in O)!fa(F)&&!(F in N)&&s(E,F,O[F],null,Q,q);for(const F in N){if(fa(F))continue;const ue=N[F],oe=O[F];ue!==oe&&F!=="value"&&s(E,F,oe,ue,Q,q)}"value"in N&&s(E,"value",O.value,N.value,Q)}},Y=(E,O,N,q,Q,F,ue,oe,w)=>{const v=O.el=E?E.el:i(""),B=O.anchor=E?E.anchor:i("");let{patchFlag:ee,dynamicChildren:be,slotScopeIds:pe}=O;pe&&(oe=oe?oe.concat(pe):pe),E==null?(n(v,N,q),n(B,N,q),C(O.children||[],N,B,Q,F,ue,oe,w)):ee>0&&ee&64&&be&&E.dynamicChildren&&E.dynamicChildren.length===be.length?(U(E.dynamicChildren,be,N,Q,F,ue,oe),(O.key!=null||Q&&O===Q.subTree)&&bi(E,O,!0)):M(E,O,N,B,Q,F,ue,oe,w)},K=(E,O,N,q,Q,F,ue,oe,w)=>{O.slotScopeIds=oe,E==null?O.shapeFlag&512?Q.ctx.activate(O,N,q,ue,w):le(O,N,q,Q,F,ue,w):G(E,O,w)},le=(E,O,N,q,Q,F,ue)=>{const oe=E.component=xm(E,q,Q);if(Fs(E)&&(oe.ctx.renderer=ie),Am(oe,!1,ue),oe.asyncDep){if(Q&&Q.registerDep(oe,k,ue),!E.el){const w=oe.subTree=nt($o);y(null,w,O,N),E.placeholder=w.el}}else k(oe,E,O,N,Q,F,ue)},G=(E,O,N)=>{const q=O.component=E.component;if(rm(E,O,N))if(q.asyncDep&&!q.asyncResolved){z(q,O,N);return}else q.next=O,q.update();else O.el=E.el,q.vnode=O},k=(E,O,N,q,Q,F,ue)=>{const oe=()=>{if(E.isMounted){let{next:ee,bu:be,u:pe,parent:te,vnode:ce}=E;{const et=Tu(E);if(et){ee&&(ee.el=ce.el,z(E,ee,ue)),et.asyncDep.then(()=>{Gt(()=>{E.isUnmounted||v()},Q)});return}}let Te=ee,Ee;vn(E,!1),ee?(ee.el=ce.el,z(E,ee,ue)):ee=ce,be&&ms(be),(Ee=ee.props&&ee.props.onVnodeBeforeUpdate)&&wo(Ee,te,ee,ce),vn(E,!0);const We=yu(E),st=E.subTree;E.subTree=We,b(st,We,h(st.el),fe(st),E,Q,F),ee.el=We.el,Te===null&&im(E,We.el),pe&&Gt(pe,Q),(Ee=ee.props&&ee.props.onVnodeUpdated)&&Gt(()=>wo(Ee,te,ee,ce),Q)}else{let ee;const{el:be,props:pe}=O,{bm:te,m:ce,parent:Te,root:Ee,type:We}=E,st=Kn(O);vn(E,!1),te&&ms(te),!st&&(ee=pe&&pe.onVnodeBeforeMount)&&wo(ee,Te,O),vn(E,!0);{Ee.ce&&Ee.ce._hasShadowRoot()&&Ee.ce._injectChildStyle(We,E.parent?E.parent.type:void 0);const et=E.subTree=yu(E);b(null,et,N,q,E,Q,F),O.el=et.el}if(ce&&Gt(ce,Q),!st&&(ee=pe&&pe.onVnodeMounted)){const et=O;Gt(()=>wo(ee,Te,et),Q)}(O.shapeFlag&256||Te&&Kn(Te.vnode)&&Te.vnode.shapeFlag&256)&&E.a&&Gt(E.a,Q),E.isMounted=!0,O=N=q=null}};E.scope.on();const w=E.effect=new wc(oe);E.scope.off();const v=E.update=w.run.bind(w),B=E.job=w.runIfDirty.bind(w);B.i=E,B.id=E.uid,w.scheduler=()=>ti(B),vn(E,!0),v()},z=(E,O,N)=>{O.component=E;const q=E.vnode.props;E.vnode=O,E.next=null,cm(E,O.props,q,N),gm(E,O.children,N),ho(),Vc(E),mo()},M=(E,O,N,q,Q,F,ue,oe,w=!1)=>{const v=E&&E.children,B=E?E.shapeFlag:0,ee=O.children,{patchFlag:be,shapeFlag:pe}=O;if(be>0){if(be&128){j(v,ee,N,q,Q,F,ue,oe,w);return}else if(be&256){R(v,ee,N,q,Q,F,ue,oe,w);return}}pe&8?(B&16&&ke(v,Q,F),ee!==v&&u(N,ee)):B&16?pe&16?j(v,ee,N,q,Q,F,ue,oe,w):ke(v,Q,F,!0):(B&8&&u(N,""),pe&16&&C(ee,N,q,Q,F,ue,oe,w))},R=(E,O,N,q,Q,F,ue,oe,w)=>{E=E||In,O=O||In;const v=E.length,B=O.length,ee=Math.min(v,B);let be;for(be=0;beB?ke(E,Q,F,!0,!1,ee):C(O,N,q,Q,F,ue,oe,w,ee)},j=(E,O,N,q,Q,F,ue,oe,w)=>{let v=0;const B=O.length;let ee=E.length-1,be=B-1;for(;v<=ee&&v<=be;){const pe=E[v],te=O[v]=w?Go(O[v]):vo(O[v]);if(Ra(pe,te))b(pe,te,N,null,Q,F,ue,oe,w);else break;v++}for(;v<=ee&&v<=be;){const pe=E[ee],te=O[be]=w?Go(O[be]):vo(O[be]);if(Ra(pe,te))b(pe,te,N,null,Q,F,ue,oe,w);else break;ee--,be--}if(v>ee){if(v<=be){const pe=be+1,te=pebe)for(;v<=ee;)D(E[v],Q,F,!0),v++;else{const pe=v,te=v,ce=new Map;for(v=te;v<=be;v++){const ve=O[v]=w?Go(O[v]):vo(O[v]);ve.key!=null&&ce.set(ve.key,v)}let Te,Ee=0;const We=be-te+1;let st=!1,et=0;const V=new Array(We);for(v=0;v=We){D(ve,Q,F,!0);continue}let Ae;if(ve.key!=null)Ae=ce.get(ve.key);else for(Te=te;Te<=be;Te++)if(V[Te-te]===0&&Ra(ve,O[Te])){Ae=Te;break}Ae===void 0?D(ve,Q,F,!0):(V[Ae-te]=v+1,Ae>=et?et=Ae:st=!0,b(ve,O[Ae],N,null,Q,F,ue,oe,w),Ee++)}const re=st?bm(V):In;for(Te=re.length-1,v=We-1;v>=0;v--){const ve=te+v,Ae=O[ve],Ne=O[ve+1],tt=ve+1{const{el:F,type:ue,transition:oe,children:w,shapeFlag:v}=E;if(v&6){J(E.component.subTree,O,N,q);return}if(v&128){E.suspense.move(O,N,q);return}if(v&64){ue.move(E,O,N,ie);return}if(ue===Ke){n(F,O,N);for(let ee=0;eeoe.enter(F),Q));else{const{leave:ee,delayLeave:be,afterLeave:pe}=oe,te=()=>{E.ctx.isUnmounted?a(F):n(F,O,N)},ce=()=>{const Te=F._isLeaving||!!F[ri];F._isLeaving&&F[ri](!0),oe.persisted&&!Te?te():ee(F,()=>{te(),pe&&pe()})};be?be(F,te,ce):ce()}else n(F,O,N)},D=(E,O,N,q=!1,Q=!1)=>{const{type:F,props:ue,ref:oe,children:w,dynamicChildren:v,shapeFlag:B,patchFlag:ee,dirs:be,cacheIndex:pe,memo:te}=E;if(ee===-2&&(Q=!1),oe!=null&&(ho(),Sa(oe,null,N,E,!0),mo()),pe!=null&&(O.renderCache[pe]=void 0),B&256){O.ctx.deactivate(E);return}const ce=B&1&&be,Te=!Kn(E);let Ee;if(Te&&(Ee=ue&&ue.onVnodeBeforeUnmount)&&wo(Ee,O,E),B&6)Le(E.component,N,q);else{if(B&128){E.suspense.unmount(N,q);return}ce&&bn(E,null,O,"beforeUnmount"),B&64?E.type.remove(E,O,N,ie,q):v&&!v.hasOnce&&(F!==Ke||ee>0&&ee&64)?ke(v,O,N,!1,!0):(F===Ke&&ee&384||!Q&&B&16)&&ke(w,O,N),q&&he(E)}const We=te!=null&&pe==null;(Te&&(Ee=ue&&ue.onVnodeUnmounted)||ce||We)&&Gt(()=>{Ee&&wo(Ee,O,E),ce&&bn(E,null,O,"unmounted"),We&&(E.el=null)},N)},he=E=>{const{type:O,el:N,anchor:q,transition:Q}=E;if(O===Ke){$e(N,q);return}if(O===yi){x(E);return}const F=()=>{a(N),Q&&!Q.persisted&&Q.afterLeave&&Q.afterLeave()};if(E.shapeFlag&1&&Q&&!Q.persisted){const{leave:ue,delayLeave:oe}=Q,w=()=>ue(N,F);oe?oe(E.el,F,w):w()}else F()},$e=(E,O)=>{let N;for(;E!==O;)N=f(E),a(E),E=N;a(O)},Le=(E,O,N)=>{const{bum:q,scope:Q,job:F,subTree:ue,um:oe,m:w,a:v}=E;Eu(w),Eu(v),q&&ms(q),Q.stop(),F&&(F.flags|=8,D(ue,E,O,N)),oe&&Gt(oe,O),Gt(()=>{E.isUnmounted=!0},O)},ke=(E,O,N,q=!1,Q=!1,F=0)=>{for(let ue=F;ue{if(E.shapeFlag&6)return fe(E.component.subTree);if(E.shapeFlag&128)return E.suspense.next();const O=f(E.anchor||E.el),N=O&&O[Xc];return N?f(N):O};let Z=!1;const X=(E,O,N)=>{let q;E==null?O._vnode&&(D(O._vnode,null,null,!0),q=O._vnode.component):b(O._vnode||null,E,O,null,null,null,N),O._vnode=E,Z||(Z=!0,Vc(q),Wc(),Z=!1)},ie={p:b,um:D,m:J,r:he,mt:le,mc:C,pc:M,pbc:U,n:fe,o:e};return{render:X,hydrate:void 0,createApp:em(X)}}function mi({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 vn({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function mm(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function bi(e,t,o=!1){const n=e.children,a=t.children;if(Ie(n)&&Ie(a))for(let s=0;s>1,e[o[i]]0&&(t[n]=o[s-1]),o[s]=n)}}for(s=o.length,r=o[s-1];s-- >0;)o[s]=r,r=t[r];return o}function Tu(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Tu(t)}function Eu(e){if(e)for(let t=0;te.__isSuspense;function ym(e,t){t&&t.pendingBranch?Ie(e)?t.effects.push(...e):t.effects.push(e):kh(e)}const Ke=Symbol.for("v-fgt"),Ca=Symbol.for("v-txt"),$o=Symbol.for("v-cmt"),yi=Symbol.for("v-stc"),Bo=[];let qt=null;function ae(e=!1){Bo.push(qt=e?null:[])}function _i(){Bo.pop(),qt=Bo[Bo.length-1]||null}let Ta=1;function Gs(e,t=!1){Ta+=e,e<0&&qt&&t&&(qt.hasOnce=!0)}function Mu(e){return e.dynamicChildren=Ta>0?qt||In:null,_i(),Ta>0&&qt&&qt.push(e),e}function de(e,t,o,n,a,s){return Mu(I(e,t,o,n,a,s,!0))}function ot(e,t,o,n,a){return Mu(nt(e,t,o,n,a,!0))}function Ea(e){return e?e.__v_isVNode===!0:!1}function Ra(e,t){return e.type===t.type&&e.key===t.key}const Fu=({key:e})=>e??null,js=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?lt(e)||pt(e)||De(e)?{i:Lt,r:e,k:t,f:!!o}:e:null);function I(e,t=null,o=null,n=0,a=null,s=e===Ke?0:1,r=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Fu(t),ref:t&&js(t),scopeId:Yc,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:s,patchFlag:n,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:Lt};return i?(zs(l,o),s&128&&e.normalize(l)):o&&(l.shapeFlag|=lt(o)?8:16),Ta>0&&!r&&qt&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&qt.push(l),l}const nt=_m;function _m(e,t=null,o=null,n=0,a=null,s=!1){if((!e||e===ru)&&(e=$o),Ea(e)){const i=Hn(e,t,!0);return o&&zs(i,o),Ta>0&&!s&&qt&&(i.shapeFlag&6?qt[qt.indexOf(e)]=i:qt.push(i)),i.patchFlag=-2,i}if(Em(e)&&(e=e.__vccOpts),t){t=$m(t);let{class:i,style:l}=t;i&&!lt(i)&&(t.class=Me(i)),Qe(l)&&(As(l)&&!Ie(l)&&(l=bt({},l)),t.style=gt(l))}const r=lt(e)?1:Nu(e)?128:Es(e)?64:Qe(e)?4:De(e)?2:0;return I(e,t,o,n,a,r,s,!0)}function $m(e){return e?As(e)||ku(e)?bt({},e):e:null}function Hn(e,t,o=!1,n=!1){const{props:a,ref:s,patchFlag:r,children:i,transition:l}=e,c=t?vm(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Fu(c),ref:t&&t.ref?o&&s?Ie(s)?s.concat(js(t)):[s,js(t)]:js(t):s,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!==Ke?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Hn(e.ssContent),ssFallback:e.ssFallback&&Hn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&ii(u,l.clone(u)),u}function Ct(e=" ",t=0){return nt(Ca,null,e,t)}function Pe(e="",t=!1){return t?(ae(),ot($o,null,e)):nt($o,null,e)}function vo(e){return e==null||typeof e=="boolean"?nt($o):Ie(e)?nt(Ke,null,e.slice()):Ea(e)?Go(e):nt(Ca,null,String(e))}function Go(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Hn(e)}function zs(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(Ie(t))o=16;else if(typeof t=="object")if(n&65){const a=t.default;a&&(a._c&&(a._d=!1),zs(e,a()),a._c&&(a._d=!0));return}else{o=32;const a=t._;!a&&!ku(t)?t._ctx=Lt:a===3&&Lt&&(Lt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(De(t)){if(n&65){zs(e,{default:t});return}t={default:t,_ctx:Lt},o=32}else t=String(t),n&64?(o=16,t=[Ct(t)]):o=8;e.children=t,e.shapeFlag|=o}function vm(...e){const t={};for(let o=0;oTt||Lt;let Us,Na;{const e=bs(),t=(o,n)=>{let a;return(a=e[o])||(a=e[o]=[]),a.push(n),s=>{a.length>1?a.forEach(r=>r(s)):a[0](s)}};Us=t("__VUE_INSTANCE_SETTERS__",o=>Tt=o),Na=t("__VUE_SSR_SETTERS__",o=>Vn=o)}const Ma=e=>{const t=Tt;return Us(e),e.scope.on(),()=>{e.scope.off(),Us(t)}},Iu=()=>{Tt&&Tt.scope.off(),Us(null)};function Ou(e){return e.vnode.shapeFlag&4}let Vn=!1;function Am(e,t=!1,o=!1){t&&Na(t);const{props:n,children:a}=e.vnode,s=Ou(e);lm(e,n,s,t),dm(e,a,o||t);const r=s?Sm(e,t):void 0;return t&&Na(!1),r}function Sm(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Wh);const{setup:n}=o;if(n){ho();const a=e.setupContext=n.length>1?Lm(e):null,s=Ma(e),r=jn(n,e,0,[e.props,a]),i=pc(r);if(mo(),s(),(i||e.sp)&&!Kn(e)&&li(e),i){if(r.then(Iu,Iu),t)return r.then(l=>{Na(!0);try{Du(e,l,t)}finally{Na(!1)}}).catch(l=>{wa(l,e,0)});e.asyncDep=r}else Du(e,r)}else Bu(e)}function Du(e,t,o){De(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Qe(t)&&(e.setupState=jc(t)),Bu(e)}function Bu(e,t,o){const n=e.type;e.render||(e.render=n.render||go);{const a=Ma(e);ho();try{qh(e)}finally{mo(),a()}}}const Pm={get(e,t){return Nt(e,"get",""),e[t]}};function Lm(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,Pm),slots:e.slots,emit:e.emit,expose:t}}function Ks(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(jc(Bn(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in Pa)return Pa[o](e)},has(t,o){return o in t||o in Pa}})):e.proxy}const Cm=/(?:^|[-_])\w/g,Tm=e=>e.replace(Cm,t=>t.toUpperCase()).replace(/[-_]/g,"");function Gu(e,t=!0){return De(e)?e.displayName||e.name:e.name||t&&e.__name}function ju(e,t,o=!1){let n=Gu(t);if(!n&&t.__file){const a=t.__file.match(/([^/\\]+)\.\w+$/);a&&(n=a[1])}if(!n&&e){const a=s=>{for(const r in s)if(s[r]===t)return r};n=a(e.components)||e.parent&&a(e.parent.type.components)||a(e.appContext.components)}return n?Tm(n):o?"App":"Anonymous"}function Em(e){return De(e)&&"__vccOpts"in e}const ne=(e,t)=>fh(e,t,Vn);function zu(e,t,o){try{Gs(-1);const n=arguments.length;return n===2?Qe(t)&&!Ie(t)?Ea(t)?nt(e,null,[t]):nt(e,t):nt(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&Ea(o)&&(o=[o]),nt(e,t,o))}finally{Gs(1)}}const Rm="3.5.42";/** +`,...wh(a)),console.warn(...s)}ho(),ti=!1}function vh(){let e=wa[wa.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 wh(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[` +`],...kh(o))}),t}function kh({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${Uu(e.component,e.type,n)}`,s=">"+o;return e.props?[a,...xh(e.props),s]:[a+s]}function xh(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...Kc(n,e[n]))}),o.length>3&&t.push(" ..."),t}function Kc(e,t,o){return it(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:dt(t)?(t=Kc(e,We(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):De(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=We(t),o?t:[`${e}=`,t])}function jn(e,t,o,n){try{return n?e(...n):e()}catch(a){ka(a,t,o)}}function ro(e,t,o,n){if(De(e)){const a=jn(e,t,o,n);return a&&gc(a)&&a.catch(s=>{ka(s,t,o)}),a}if(Ie(e)){const a=[];for(let s=0;s>>1,a=Dt[n],s=xa(a);s=xa(o)?Dt.push(e):Dt.splice(Sh(t),0,e),e.flags|=1,Wc()}}function Wc(){Es||(Es=Vc.then(Zc))}function Ph(e){if(!Ie(e))Jo&&e.id===-1?Jo.splice(Un+1,0,e):e.flags&1||(zn.push(e),e.flags|=1);else for(let t=0;txa(o)-xa(n));if(zn.length=0,Jo){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function Zc(e){try{for(bo=0;bo{n._d&&js(-1);const s=Ts(t),r=Go.length;let i;try{i=e(...a)}finally{for(let l=Go.length;l>r;l--)$i();Ts(s),n._d&&js(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function ni(e,t){if(Lt===null)return e;const o=Ks(Lt),n=e.dirs||(e.dirs=[]);for(let a=0;a1)return o&&De(t)?t.call(n&&n.proxy):t}}function Lh(){return!!(wo()||$n)}const Ch=Symbol.for("v-scx"),Eh=()=>Re(Ch);function Th(e,t){return ai(e,null,t)}function Fe(e,t,o){return ai(e,t,o)}function ai(e,t,o=st){const{immediate:n,deep:a,flush:s,once:r}=o,i=bt({},o),l=t&&n||!t&&s!=="post";let c;if(Vn){if(s==="sync"){const P=Eh();c=P.__watcherHandles||(P.__watcherHandles=[])}else if(!l){const P=()=>{};return P.stop=po,P.resume=po,P.pause=po,P}}const u=Et;i.call=(P,w,m)=>ro(P,u,w,m);let h=!1;s==="post"?i.scheduler=P=>{jt(P,u&&u.suspense)}:s!=="sync"&&(h=!0,i.scheduler=(P,w)=>{w?P():oi(P)}),i.augmentJob=P=>{t&&(P.flags|=4),h&&(P.flags|=2,u&&(P.id=u.uid,P.i=u))};const f=$h(e,t,i);return Vn&&(c?c.push(f):l&&f()),f}function Rh(e,t,o){const n=this.proxy,a=it(e)?e.includes(".")?Jc(n,e):()=>n[e]:e.bind(n,n);let s;De(t)?s=t:(s=t.handler,o=t);const r=Fa(this),i=ai(a,s.bind(n),o);return r(),i}function Jc(e,t){const o=t.split(".");return()=>{let n=e;for(let a=0;ae.__isTeleport,yn=e=>e&&(e.disabled||e.disabled===""),Nh=e=>e&&(e.defer||e.defer===""),eu=e=>typeof SVGElement<"u"&&e instanceof SVGElement,tu=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,si=(e,t)=>{const o=e&&e.to;return it(o)?t?t(o):null:o},Mh={name:"Teleport",__isTeleport:!0,process(e,t,o,n,a,s,r,i,l,c){const{mc:u,pc:h,pbc:f,o:{insert:P,querySelector:w,createText:m,createComment:y,parentNode:b}}=c,d=yn(t.props);let{dynamicChildren:g}=t;const S=(v,$,A)=>{v.shapeFlag&16&&u(v.children,$,A,a,s,r,i,l)},C=(v=t)=>{const $=yn(v.props),A=v.target=si(v.props,w),j=ri(A,v,m,P);A&&(r!=="svg"&&eu(A)?r="svg":r!=="mathml"&&tu(A)&&(r="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(A),$||(S(v,A,j),Aa(v,!1)))},p=v=>{const $=()=>{if(Qo.get(v)===$){if(Qo.delete(v),yn(v.props)){const A=b(v.el)||o;S(v,A,v.anchor),Aa(v,!0)}C(v)}};Qo.set(v,$),jt($,s)};if(e==null){const v=t.el=m(""),$=t.anchor=m("");if(P(v,o,n),P($,o,n),Nh(t.props)||s&&s.pendingBranch){p(t);return}d&&(S(t,o,$),Aa(t,!0)),C()}else{t.el=e.el;const v=t.anchor=e.anchor,$=Qo.get(e);if($){$.flags|=8,Qo.delete(e),p(t);return}t.targetStart=e.targetStart;const A=t.target=e.target,j=t.targetAnchor=e.targetAnchor,K=yn(e.props),Q=K?o:A,H=K?v:j;if(r==="svg"||eu(A)?r="svg":(r==="mathml"||tu(A))&&(r="mathml"),g?(f(e.dynamicChildren,g,Q,a,s,r,i),yi(e,t,!0)):l||h(e,t,Q,H,a,s,r,i,!1),d)K?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Ns(t,o,v,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ce=si(t.props,w);ce&&(t.target=ce,Ns(t,ce,null,c,0))}else K&&Ns(t,A,j,c,1);Aa(t,d)}},remove(e,t,o,{um:n,o:{remove:a}},s){const{shapeFlag:r,children:i,anchor:l,targetStart:c,targetAnchor:u,target:h,props:f}=e,P=yn(f),w=s||!P,m=Qo.get(e);if(m&&(m.flags|=8,Qo.delete(e)),h&&(a(c),a(u)),s&&a(l),!m&&(P||h)&&r&16)for(let y=0;y1){for(const o of e)if(o.type!==_o){t=o;break}}return t}function ou(e){if(!Is(e))return Rs(e.type)&&e.children?Oh(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&&De(o.default))return o.default()}}function li(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;li(Rs(o.type)&&ou(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 Sa(e,t){return De(e)?bt({name:e.name},t,{setup:e}):e}function ci(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function nu(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}const Ms=new WeakMap;function Pa(e,t,o,n,a=!1){if(Ie(e)){e.forEach((m,y)=>Pa(m,t&&(Ie(t)?t[y]:t),o,n,a));return}if(Hn(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Pa(e,t,o,n.component.subTree);return}const s=n.shapeFlag&4?Ks(n.component):n.el,r=a?null:s,{i,r:l}=e,c=t&&t.r,u=i.refs===st?i.refs={}:i.refs,h=i.setupState,f=We(h),P=h===st?pc:m=>nu(u,m)?!1:Je(f,m),w=(m,y)=>!(y&&nu(u,y));if(c!=null&&c!==l){if(au(t),it(c))u[c]=null,P(c)&&(h[c]=null);else if(dt(c)){const m=t;w(c,m.k)&&(c.value=null),m.k&&(u[m.k]=null)}}if(De(l))jn(l,i,12,[r,u]);else{const m=it(l),y=dt(l);if(m||y){const b=()=>{if(e.f){const d=m?P(l)?h[l]:u[l]:w()||!e.k?l.value:u[e.k];if(a)Ie(d)&&Br(d,s);else if(Ie(d))d.includes(s)||d.push(s);else if(m)u[l]=[s],P(l)&&(h[l]=u[l]);else{const g=[s];w(l,e.k)&&(l.value=g),e.k&&(u[e.k]=g)}}else m?(u[l]=r,P(l)&&(h[l]=r)):y&&(w(l,e.k)&&(l.value=r),e.k&&(u[e.k]=r))};if(r){const d=()=>{b(),Ms.delete(e)};d.id=-1,Ms.set(e,d),jt(d,o)}else au(e),b()}}}function au(e){const t=Ms.get(e);t&&(t.flags|=8,Ms.delete(e))}const su=e=>e.nodeType===8;ys().requestIdleCallback,ys().cancelIdleCallback;function Dh(e,t){if(su(e)&&e.data==="["){let o=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(t(n)===!1)break}else if(su(n))if(n.data==="]"){if(--o===0)break}else n.data==="["&&o++;n=n.nextSibling}}else t(e)}const Hn=e=>!!e.type.__asyncLoader;function Gh(e){De(e)&&(e={loader:e});const{loader:t,loadingComponent:o,errorComponent:n,delay:a=200,hydrate:s,timeout:r,suspensible:i=!0,onError:l}=e;let c=null,u,h=0;const f=()=>(h++,c=null,P()),P=()=>{let w;return c||(w=c=t().catch(m=>{if(m=m instanceof Error?m:new Error(String(m)),l)return new Promise((y,b)=>{l(m,()=>y(f()),()=>b(m),h+1)});throw m}).then(m=>w!==c&&c?c:(m&&(m.__esModule||m[Symbol.toStringTag]==="Module")&&(m=m.default),u=m,m)))};return Sa({name:"AsyncComponentWrapper",__asyncLoader:P,__asyncHydrate(w,m,y){const b=w.isConnected;let d=!1;(m.bu||(m.bu=[])).push(()=>d=!0);const g=()=>{d||!w.parentNode||b&&!w.isConnected||y()},S=s?()=>{const C=s(g,p=>Dh(w,p));C&&(m.bum||(m.bum=[])).push(C)}:g;u?S():P().then(()=>!m.isUnmounted&&S())},get __asyncResolved(){return u},setup(){const w=Et;if(ci(w),u)return()=>Fs(u,w);const m=C=>{c=null,ka(C,w,13,!n)};if(i&&w.suspense||Vn)return P().then(C=>()=>Fs(C,w)).catch(C=>(m(C),()=>n?ot(n,{error:C}):null));const y=be(!1),b=be(),d=be(!!a);let g,S;return Ds(()=>{g!=null&&clearTimeout(g),S!=null&&clearTimeout(S)}),a&&(S=setTimeout(()=>{w.isUnmounted||(d.value=!1)},a)),r!=null&&(g=setTimeout(()=>{if(!w.isUnmounted&&!y.value&&!b.value){const C=new Error(`Async component timed out after ${r}ms.`);m(C),b.value=C}},r)),P().then(()=>{w.isUnmounted||(y.value=!0,w.parent&&Is(w.parent.vnode)&&w.parent.update())}).catch(C=>{if(w.isUnmounted){c=null;return}m(C),b.value=C}),()=>{if(y.value&&u)return Fs(u,w);if(b.value&&n)return ot(n,{error:b.value});if(o&&!d.value)return Fs(o,w)}}})}function Fs(e,t){const{ref:o,props:n,children:a,ce:s}=t.vnode,r=ot(e,n,a);return r.ref=o,r.ce=s,delete t.vnode.ce,r}const Is=e=>e.type.__isKeepAlive;function Bh(e,t){ru(e,"a",t)}function jh(e,t){ru(e,"da",t)}function ru(e,t,o=Et){const n=e.__wdc||(e.__wdc=()=>{let a=o;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Os(t,n,o),o){let a=o.parent;for(;a&&a.parent;)Is(a.parent.vnode)&&zh(n,t,o,a),a=a.parent}}function zh(e,t,o,n){const a=Os(t,e,n,!0);Ds(()=>{Br(n[t],a)},o)}function Os(e,t,o=Et,n=!1){if(o){const a=o[e]||(o[e]=[]),s=t.__weh||(t.__weh=(...r)=>{fo();const i=Fa(o),l=ro(t,o,e,r);return i(),ho(),l});return n?a.unshift(s):a.push(s),s}}const Do=e=>(t,o=Et)=>{(!Vn||e==="sp")&&Os(e,(...n)=>t(...n),o)},iu=Do("bm"),yo=Do("m"),Uh=Do("bu"),Hh=Do("u"),Qt=Do("bum"),Ds=Do("um"),Kh=Do("sp"),Vh=Do("rtg"),Wh=Do("rtc");function qh(e,t=Et){Os("ec",e,t)}const Yh="components",lu=Symbol.for("v-ndc");function cu(e){return it(e)?Zh(Yh,e,!1)||e:e||lu}function Zh(e,t,o=!0,n=!1){const a=Lt||Et;if(a){const s=a.type;{const i=zu(s,!1);if(i&&(i===t||i===St(t)||i===ms(St(t))))return s}const r=uu(a[e]||s[e],t)||uu(a.appContext[e],t);return!r&&n?s:r}}function uu(e,t){return e&&(e[t]||e[St(t)]||e[ms(St(t))])}function Ft(e,t,o,n){let a;const s=o,r=Ie(e);if(r||it(e)){const i=r&&Fo(e);let l=!1,c=!1;i&&(l=!qt(e),c=Io(e),e=vs(e)),a=new Array(e.length);for(let u=0,h=e.length;ut(i,l,void 0,s));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),ae(),et(He,null,[ot("slot",c,n)],u?-2:64)}let r=e[t];r&&r._c&&(r._d=!1);const i=Go.length;ae();let l;try{const c=r&&pu(r(o)),u=o.key||s||c&&c.key;l=et(He,{key:(u&&!Wt(u)?u:`_${t}`)+(!c&&n?"_fb":"")},c||(n?n():[]),c&&e._===1?64:-2)}catch(c){for(let u=Go.length;u>i;u--)$i();throw c}finally{r&&r._c&&(r._d=!0)}return!a&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function pu(e){return e.some(t=>Ra(t)?!(t.type===_o||t.type===He&&!pu(t.children)):!0)?e:null}const ui=e=>e?Gu(e)?Ks(e):ui(e.parent):null,La=bt(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=>ui(e.parent),$root:e=>ui(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>hu(e),$forceUpdate:e=>e.f||(e.f=()=>{oi(e.update)}),$nextTick:e=>e.n||(e.n=Gt.bind(e.proxy)),$watch:e=>Rh.bind(e)}),pi=(e,t)=>e!==st&&!e.__isScriptSetup&&Je(e,t),Xh={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:o,setupState:n,data:a,props:s,accessCache:r,type:i,appContext:l}=e;if(t[0]!=="$"){const f=r[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 s[t]}else{if(pi(n,t))return r[t]=1,n[t];if(a!==st&&Je(a,t))return r[t]=2,a[t];if(Je(s,t))return r[t]=3,s[t];if(o!==st&&Je(o,t))return r[t]=4,o[t];di&&(r[t]=0)}}const c=La[t];let u,h;if(c)return t==="$attrs"&&Mt(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(o!==st&&Je(o,t))return r[t]=4,o[t];if(h=l.config.globalProperties,Je(h,t))return h[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:s}=e;return pi(a,t)?(a[t]=o,!0):n!==st&&Je(n,t)?(n[t]=o,!0):Je(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=o,!0)},has({_:{data:e,setupState:t,accessCache:o,ctx:n,appContext:a,props:s,type:r}},i){let l;return!!(o[i]||e!==st&&i[0]!=="$"&&Je(e,i)||pi(t,i)||Je(s,i)||Je(n,i)||Je(La,i)||Je(a.config.globalProperties,i)||(l=r.__cssModules)&&l[i])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:Je(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function du(e){return Ie(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let di=!0;function Jh(e){const t=hu(e),o=e.proxy,n=e.ctx;di=!1,t.beforeCreate&&gu(t.beforeCreate,e,"bc");const{data:a,computed:s,methods:r,watch:i,provide:l,inject:c,created:u,beforeMount:h,mounted:f,beforeUpdate:P,updated:w,activated:m,deactivated:y,beforeDestroy:b,beforeUnmount:d,destroyed:g,unmounted:S,render:C,renderTracked:p,renderTriggered:v,errorCaptured:$,serverPrefetch:A,expose:j,inheritAttrs:K,components:Q,directives:H,filters:ce}=t;if(c&&Qh(c,n,null),r)for(const D in r){const M=r[D];De(M)&&(n[D]=M.bind(o))}if(a){const D=a.call(o,o);Qe(D)&&(e.data=Dn(D))}if(di=!0,s)for(const D in s){const M=s[D],N=De(M)?M.bind(o,o):De(M.get)?M.get.bind(o,o):po,G=!De(M)&&De(M.set)?M.set.bind(o):po,ee=te({get:N,set:G});Object.defineProperty(n,D,{enumerable:!0,configurable:!0,get:()=>ee.value,set:O=>ee.value=O})}if(i)for(const D in i)fu(i[D],n,o,D);if(l){const D=De(l)?l.call(o):l;Reflect.ownKeys(D).forEach(M=>{wt(M,D[M])})}u&&gu(u,e,"c");function x(D,M){Ie(M)?M.forEach(N=>D(N.bind(o))):M&&D(M.bind(o))}if(x(iu,h),x(yo,f),x(Uh,P),x(Hh,w),x(Bh,m),x(jh,y),x(qh,$),x(Wh,p),x(Vh,v),x(Qt,d),x(Ds,S),x(Kh,A),Ie(j))if(j.length){const D=e.exposed||(e.exposed={});j.forEach(M=>{Object.defineProperty(D,M,{get:()=>o[M],set:N=>o[M]=N,enumerable:!0})})}else e.exposed||(e.exposed={});C&&e.render===po&&(e.render=C),K!=null&&(e.inheritAttrs=K),Q&&(e.components=Q),H&&(e.directives=H),A&&ci(e)}function Qh(e,t,o=po){Ie(e)&&(e=gi(e));for(const n in e){const a=e[n];let s;Qe(a)?"default"in a?s=Re(a.from||n,a.default,!0):s=Re(a.from||n):s=Re(a),dt(s)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:r=>s.value=r}):t[n]=s}}function gu(e,t,o){ro(Ie(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function fu(e,t,o,n){let a=n.includes(".")?Jc(o,n):()=>o[n];if(it(e)){const s=t[e];De(s)&&Fe(a,s)}else if(De(e))Fe(a,e.bind(o));else if(Qe(e))if(Ie(e))e.forEach(s=>fu(s,t,o,n));else{const s=De(e.handler)?e.handler.bind(o):t[e.handler];De(s)&&Fe(a,s,e)}}function hu(e){const t=e.type,{mixins:o,extends:n}=t,{mixins:a,optionsCache:s,config:{optionMergeStrategies:r}}=e.appContext,i=s.get(t);let l;return i?l=i:!a.length&&!o&&!n?l=t:(l={},a.length&&a.forEach(c=>Gs(l,c,r,!0)),Gs(l,t,r)),Qe(t)&&s.set(t,l),l}function Gs(e,t,o,n=!1){const{mixins:a,extends:s}=t;s&&Gs(e,s,o,!0),a&&a.forEach(r=>Gs(e,r,o,!0));for(const r in t)if(!(n&&r==="expose")){const i=em[r]||o&&o[r];e[r]=i?i(e[r],t[r]):t[r]}return e}const em={data:mu,props:bu,emits:bu,methods:Ca,computed:Ca,beforeCreate:Bt,created:Bt,beforeMount:Bt,mounted:Bt,beforeUpdate:Bt,updated:Bt,beforeDestroy:Bt,beforeUnmount:Bt,destroyed:Bt,unmounted:Bt,activated:Bt,deactivated:Bt,errorCaptured:Bt,serverPrefetch:Bt,components:Ca,directives:Ca,watch:om,provide:mu,inject:tm};function mu(e,t){return t?e?function(){return bt(De(e)?e.call(this,this):e,De(t)?t.call(this,this):t)}:t:e}function tm(e,t){return Ca(gi(e),gi(t))}function gi(e){if(Ie(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${St(t)}Modifiers`]||e[`${Jt(t)}Modifiers`];function rm(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||st;let a=o;const s=t.startsWith("update:"),r=s&&sm(n,t.slice(7));r&&(r.trim&&(a=o.map(u=>it(u)?u.trim():u)),r.number&&(a=a.map(zr)));let i,l=n[i=jr(t)]||n[i=jr(St(t))];!l&&s&&(l=n[i=jr(Jt(t))]),l&&ro(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,ro(c,e,6,a)}}const im=new WeakMap;function _u(e,t,o=!1){const n=o?im:t.emitsCache,a=n.get(e);if(a!==void 0)return a;const s=e.emits;let r={},i=!1;if(!De(e)){const l=c=>{const u=_u(c,t,!0);u&&(i=!0,bt(r,u))};!o&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!s&&!i?(Qe(e)&&n.set(e,null),null):(Ie(s)?s.forEach(l=>r[l]=null):bt(r,s),Qe(e)&&n.set(e,r),r)}function Bs(e,t){return!e||!us(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Je(e,t[0].toLowerCase()+t.slice(1))||Je(e,Jt(t))||Je(e,t))}function KL(){}function $u(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[s],slots:r,attrs:i,emit:l,render:c,renderCache:u,props:h,data:f,setupState:P,ctx:w,inheritAttrs:m}=e,y=Ts(e);let b,d;try{if(o.shapeFlag&4){const S=a||n,C=S;b=$o(c.call(C,S,u,h,P,f,w)),d=i}else{const S=t;b=$o(S.length>1?S(h,{attrs:i,slots:r,emit:l}):S(h,null)),d=t.props?i:lm(i)}}catch(S){Go.length=0,ka(S,e,1),b=ot(_o)}let g=b;if(d&&m!==!1){const S=Object.keys(d),{shapeFlag:C}=g;S.length&&C&7&&(s&&S.some(ps)&&(d=cm(d,s)),g=Kn(g,d,!1,!0))}if(o.dirs&&(g=Kn(g,null,!1,!0),g.dirs=g.dirs?g.dirs.concat(o.dirs):o.dirs),o.transition){const S=Rs(g.type)&&ou(g)||g;li(S,o.transition)}return b=g,Ts(y),b}const lm=e=>{let t;for(const o in e)(o==="class"||o==="style"||us(o))&&((t||(t={}))[o]=e[o]);return t},cm=(e,t)=>{const o={};for(const n in e)(!ps(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function um(e,t,o){const{props:n,children:a,component:s}=e,{props:r,children:i,patchFlag:l}=t,c=s.emitsOptions;if(t.dirs||t.transition)return!0;if(o&&l>=0){if(l&1024)return!0;if(l&16)return n?vu(n,r,c):!!r;if(l&8){const u=t.dynamicProps;for(let h=0;hObject.create(ku),Au=e=>Object.getPrototypeOf(e)===ku;function dm(e,t,o,n=!1){const a={},s=xu();e.propsDefaults=Object.create(null),Su(e,t,a,s);for(const r in e.propsOptions[0])r in a||(a[r]=void 0);o?e.props=n?a:ph(a):e.type.props?e.props=a:e.props=s,e.attrs=s}function gm(e,t,o,n){const{props:a,attrs:s,vnode:{patchFlag:r}}=e,i=We(a),[l]=e.propsOptions;let c=!1;if((n||r>0)&&!(r&16)){if(r&8){const u=e.vnode.dynamicProps;for(let h=0;h{l=!0;const[f,P]=Pu(h,t,!0);bt(r,f),P&&i.push(...P)};!o&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!s&&!l)return Qe(e)&&n.set(e,In),In;if(Ie(s))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",mi=e=>Ie(e)?e.map($o):[$o(e)],hm=(e,t,o)=>{if(t._n)return t;const n=Ht((...a)=>mi(t(...a)),o);return n._c=!1,n},Cu=(e,t,o)=>{const n=e._ctx;for(const a in e){if(hi(a))continue;const s=e[a];if(De(s))t[a]=hm(a,s,n);else if(s!=null){const r=mi(s);t[a]=()=>r}}},Eu=(e,t)=>{const o=mi(t);e.slots.default=()=>o},Tu=(e,t,o)=>{for(const n in t)(o||!hi(n))&&(e[n]=t[n])},mm=(e,t,o)=>{const n=e.slots=xu();if(e.vnode.shapeFlag&32){const a=t._;a?(Tu(n,t,o),o&&hc(n,"_",a,!0)):Cu(t,n)}else t&&Eu(e,t)},bm=(e,t,o)=>{const{vnode:n,slots:a}=e;let s=!0,r=st;if(n.shapeFlag&32){const i=t._;i?o&&i===1?s=!1:Tu(a,t,o):(s=!t.$stable,Cu(t,a)),r=t}else t&&(Eu(e,t),r={default:1});if(s)for(const i in a)!hi(i)&&r[i]==null&&delete a[i]},jt=wm;function ym(e){return _m(e)}function _m(e,t){const o=ys();o.__VUE__=!0;const{insert:n,remove:a,patchProp:s,createElement:r,createText:i,createComment:l,setText:c,setElementText:u,parentNode:h,nextSibling:f,setScopeId:P=po,insertStaticContent:w}=e,m=(R,B,T,J=null,ne=null,I=null,oe=void 0,le=null,_=!!B.dynamicChildren)=>{if(R===B)return;R&&!Na(R,B)&&(J=me(R),O(R,ne,I,!0),R=null),B.patchFlag===-2&&(_=!1,B.dynamicChildren=null);const{type:k,ref:U,shapeFlag:Z}=B;switch(k){case Ea:y(R,B,T,J);break;case _o:b(R,B,T,J);break;case _i:R==null&&d(B,T,J,oe);break;case He:Q(R,B,T,J,ne,I,oe,le,_);break;default:Z&1?C(R,B,T,J,ne,I,oe,le,_):Z&6?H(R,B,T,J,ne,I,oe,le,_):(Z&64||Z&128)&&k.process(R,B,T,J,ne,I,oe,le,_,q)}U!=null&&ne?Pa(U,R&&R.ref,I,B||R,!B):U==null&&R&&R.ref!=null&&Pa(R.ref,null,I,R,!0)},y=(R,B,T,J)=>{if(R==null)n(B.el=i(B.children),T,J);else{const ne=B.el=R.el;B.children!==R.children&&c(ne,B.children)}},b=(R,B,T,J)=>{R==null?n(B.el=l(B.children||""),T,J):B.el=R.el},d=(R,B,T,J)=>{[R.el,R.anchor]=w(R.children,B,T,J,R.el,R.anchor)},g=({el:R,anchor:B},T,J)=>{let ne;for(;R&&R!==B;)ne=f(R),n(R,T,J),R=ne;n(B,T,J)},S=({el:R,anchor:B})=>{let T;for(;R&&R!==B;)T=f(R),a(R),R=T;a(B)},C=(R,B,T,J,ne,I,oe,le,_)=>{if(B.type==="svg"?oe="svg":B.type==="math"&&(oe="mathml"),R==null)p(B,T,J,ne,I,oe,le,_);else{const k=R.el&&R.el._isVueCE?R.el:null;try{k&&k._beginPatch(),A(R,B,ne,I,oe,le,_)}finally{k&&k._endPatch()}}},p=(R,B,T,J,ne,I,oe,le)=>{let _,k;const{props:U,shapeFlag:Z,transition:fe,dirs:he}=R;if(_=R.el=r(R.type,I,U&&U.is,U),Z&8?u(_,R.children):Z&16&&$(R.children,_,null,J,ne,bi(R,I),oe,le),he&&bn(R,null,J,"created"),v(_,R,R.scopeId,oe,J),U){for(const ie in U)ie!=="value"&&!ha(ie)&&s(_,ie,null,U[ie],I,J);"value"in U&&s(_,"value",null,U.value,I),(k=U.onVnodeBeforeMount)&&vo(k,J,R)}he&&bn(R,null,J,"beforeMount");const Y=$m(ne,fe);Y&&fe.beforeEnter(_),n(_,B,T),((k=U&&U.onVnodeMounted)||Y||he)&&jt(()=>{try{k&&vo(k,J,R),Y&&fe.enter(_),he&&bn(R,null,J,"mounted")}finally{}},ne)},v=(R,B,T,J,ne)=>{if(T&&P(R,T),J)for(let I=0;I{for(let k=_;k{const le=B.el=R.el;let{patchFlag:_,dynamicChildren:k,dirs:U}=B;_|=R.patchFlag&16;const Z=R.props||st,fe=B.props||st;let he;if(T&&vn(T,!1),(he=fe.onVnodeBeforeUpdate)&&vo(he,T,B,R),U&&bn(B,R,T,"beforeUpdate"),T&&vn(T,!0),k&&(!R.dynamicChildren||R.dynamicChildren.length!==k.length)&&(_=0,oe=!1,k=null),(Z.innerHTML&&fe.innerHTML==null||Z.textContent&&fe.textContent==null)&&u(le,""),k?j(R.dynamicChildren,k,le,T,J,bi(B,ne),I):oe||M(R,B,le,null,T,J,bi(B,ne),I,!1),_>0){if(_&16)K(le,Z,fe,T,ne);else if(_&2&&Z.class!==fe.class&&s(le,"class",null,fe.class,ne),_&4&&s(le,"style",Z.style,fe.style,ne),_&8){const Y=B.dynamicProps;for(let ie=0;ie{he&&vo(he,T,B,R),U&&bn(B,R,T,"updated")},J)},j=(R,B,T,J,ne,I,oe)=>{for(let le=0;le{if(B!==T){if(B!==st)for(const I in B)!ha(I)&&!(I in T)&&s(R,I,B[I],null,ne,J);for(const I in T){if(ha(I))continue;const oe=T[I],le=B[I];oe!==le&&I!=="value"&&s(R,I,le,oe,ne,J)}"value"in T&&s(R,"value",B.value,T.value,ne)}},Q=(R,B,T,J,ne,I,oe,le,_)=>{const k=B.el=R?R.el:i(""),U=B.anchor=R?R.anchor:i("");let{patchFlag:Z,dynamicChildren:fe,slotScopeIds:he}=B;he&&(le=le?le.concat(he):he),R==null?(n(k,T,J),n(U,T,J),$(B.children||[],T,U,ne,I,oe,le,_)):Z>0&&Z&64&&fe&&R.dynamicChildren&&R.dynamicChildren.length===fe.length?(j(R.dynamicChildren,fe,T,ne,I,oe,le),(B.key!=null||ne&&B===ne.subTree)&&yi(R,B,!0)):M(R,B,T,U,ne,I,oe,le,_)},H=(R,B,T,J,ne,I,oe,le,_)=>{B.slotScopeIds=le,R==null?B.shapeFlag&512?ne.ctx.activate(B,T,J,oe,_):ce(B,T,J,ne,I,oe,_):z(R,B,_)},ce=(R,B,T,J,ne,I,oe)=>{const le=R.component=Lm(R,J,ne);if(Is(R)&&(le.ctx.renderer=q),Cm(le,!1,oe),le.asyncDep){if(ne&&ne.registerDep(le,x,oe),!R.el){const _=le.subTree=ot(_o);b(null,_,B,T),R.placeholder=_.el}}else x(le,R,B,T,ne,I,oe)},z=(R,B,T)=>{const J=B.component=R.component;if(um(R,B,T))if(J.asyncDep&&!J.asyncResolved){D(J,B,T);return}else J.next=B,J.update();else B.el=R.el,J.vnode=B},x=(R,B,T,J,ne,I,oe)=>{const le=()=>{if(R.isMounted){let{next:Z,bu:fe,u:he,parent:Y,vnode:ie}=R;{const tt=Ru(R);if(tt){Z&&(Z.el=ie.el,D(R,Z,oe)),tt.asyncDep.then(()=>{jt(()=>{R.isUnmounted||k()},ne)});return}}let Ee=Z,Ne;vn(R,!1),Z?(Z.el=ie.el,D(R,Z,oe)):Z=ie,fe&&bs(fe),(Ne=Z.props&&Z.props.onVnodeBeforeUpdate)&&vo(Ne,Y,Z,ie),vn(R,!0);const Ke=$u(R),ut=R.subTree;R.subTree=Ke,m(ut,Ke,h(ut.el),me(ut),R,ne,I),Z.el=Ke.el,Ee===null&&pm(R,Ke.el),he&&jt(he,ne),(Ne=Z.props&&Z.props.onVnodeUpdated)&&jt(()=>vo(Ne,Y,Z,ie),ne)}else{let Z;const{el:fe,props:he}=B,{bm:Y,m:ie,parent:Ee,root:Ne,type:Ke}=R,ut=Hn(B);vn(R,!1),Y&&bs(Y),!ut&&(Z=he&&he.onVnodeBeforeMount)&&vo(Z,Ee,B),vn(R,!0);{Ne.ce&&Ne.ce._hasShadowRoot()&&Ne.ce._injectChildStyle(Ke,R.parent?R.parent.type:void 0);const tt=R.subTree=$u(R);m(null,tt,T,J,R,ne,I),B.el=tt.el}if(ie&&jt(ie,ne),!ut&&(Z=he&&he.onVnodeMounted)){const tt=B;jt(()=>vo(Z,Ee,tt),ne)}(B.shapeFlag&256||Ee&&Hn(Ee.vnode)&&Ee.vnode.shapeFlag&256)&&R.a&&jt(R.a,ne),R.isMounted=!0,B=T=J=null}};R.scope.on();const _=R.effect=new xc(le);R.scope.off();const k=R.update=_.run.bind(_),U=R.job=_.runIfDirty.bind(_);U.i=R,U.id=R.uid,_.scheduler=()=>oi(U),vn(R,!0),k()},D=(R,B,T)=>{B.component=R;const J=R.vnode.props;R.vnode=B,R.next=null,gm(R,B.props,J,T),bm(R,B.children,T),fo(),qc(R),ho()},M=(R,B,T,J,ne,I,oe,le,_=!1)=>{const k=R&&R.children,U=R?R.shapeFlag:0,Z=B.children,{patchFlag:fe,shapeFlag:he}=B;if(fe>0){if(fe&128){G(k,Z,T,J,ne,I,oe,le,_);return}else if(fe&256){N(k,Z,T,J,ne,I,oe,le,_);return}}he&8?(U&16&&ke(k,ne,I),Z!==k&&u(T,Z)):U&16?he&16?G(k,Z,T,J,ne,I,oe,le,_):ke(k,ne,I,!0):(U&8&&u(T,""),he&16&&$(Z,T,J,ne,I,oe,le,_))},N=(R,B,T,J,ne,I,oe,le,_)=>{R=R||In,B=B||In;const k=R.length,U=B.length,Z=Math.min(k,U);let fe;for(fe=0;feU?ke(R,ne,I,!0,!1,Z):$(B,T,J,ne,I,oe,le,_,Z)},G=(R,B,T,J,ne,I,oe,le,_)=>{let k=0;const U=B.length;let Z=R.length-1,fe=U-1;for(;k<=Z&&k<=fe;){const he=R[k],Y=B[k]=_?Bo(B[k]):$o(B[k]);if(Na(he,Y))m(he,Y,T,null,ne,I,oe,le,_);else break;k++}for(;k<=Z&&k<=fe;){const he=R[Z],Y=B[fe]=_?Bo(B[fe]):$o(B[fe]);if(Na(he,Y))m(he,Y,T,null,ne,I,oe,le,_);else break;Z--,fe--}if(k>Z){if(k<=fe){const he=fe+1,Y=hefe)for(;k<=Z;)O(R[k],ne,I,!0),k++;else{const he=k,Y=k,ie=new Map;for(k=Y;k<=fe;k++){const ve=B[k]=_?Bo(B[k]):$o(B[k]);ve.key!=null&&ie.set(ve.key,k)}let Ee,Ne=0;const Ke=fe-Y+1;let ut=!1,tt=0;const V=new Array(Ke);for(k=0;k=Ke){O(ve,ne,I,!0);continue}let Le;if(ve.key!=null)Le=ie.get(ve.key);else for(Ee=Y;Ee<=fe;Ee++)if(V[Ee-Y]===0&&Na(ve,B[Ee])){Le=Ee;break}Le===void 0?O(ve,ne,I,!0):(V[Le-Y]=k+1,Le>=tt?tt=Le:ut=!0,m(ve,B[Le],T,null,ne,I,oe,le,_),Ne++)}const re=ut?vm(V):In;for(Ee=re.length-1,k=Ke-1;k>=0;k--){const ve=Y+k,Le=B[ve],Te=B[ve+1],at=ve+1{const{el:I,type:oe,transition:le,children:_,shapeFlag:k}=R;if(k&6){ee(R.component.subTree,B,T,J);return}if(k&128){R.suspense.move(B,T,J);return}if(k&64){oe.move(R,B,T,q);return}if(oe===He){n(I,B,T);for(let Z=0;Z<_.length;Z++)ee(_[Z],B,T,J);n(R.anchor,B,T);return}if(oe===_i){g(R,B,T);return}if(J!==2&&k&1&&le)if(J===0)le.persisted&&!I[ii]?n(I,B,T):(le.beforeEnter(I),n(I,B,T),jt(()=>le.enter(I),ne));else{const{leave:Z,delayLeave:fe,afterLeave:he}=le,Y=()=>{R.ctx.isUnmounted?a(I):n(I,B,T)},ie=()=>{const Ee=I._isLeaving||!!I[ii];I._isLeaving&&I[ii](!0),le.persisted&&!Ee?Y():Z(I,()=>{Y(),he&&he()})};fe?fe(I,Y,ie):ie()}else n(I,B,T)},O=(R,B,T,J=!1,ne=!1)=>{const{type:I,props:oe,ref:le,children:_,dynamicChildren:k,shapeFlag:U,patchFlag:Z,dirs:fe,cacheIndex:he,memo:Y}=R;if(Z===-2&&(ne=!1),le!=null&&(fo(),Pa(le,null,T,R,!0),ho()),he!=null&&(B.renderCache[he]=void 0),U&256){B.ctx.deactivate(R);return}const ie=U&1&&fe,Ee=!Hn(R);let Ne;if(Ee&&(Ne=oe&&oe.onVnodeBeforeUnmount)&&vo(Ne,B,R),U&6)Se(R.component,T,J);else{if(U&128){R.suspense.unmount(T,J);return}ie&&bn(R,null,B,"beforeUnmount"),U&64?R.type.remove(R,B,T,q,J):k&&!k.hasOnce&&(I!==He||Z>0&&Z&64)?ke(k,B,T,!1,!0):(I===He&&Z&384||!ne&&U&16)&&ke(_,B,T),J&&ge(R)}const Ke=Y!=null&&he==null;(Ee&&(Ne=oe&&oe.onVnodeUnmounted)||ie||Ke)&&jt(()=>{Ne&&vo(Ne,B,R),ie&&bn(R,null,B,"unmounted"),Ke&&(R.el=null)},T)},ge=R=>{const{type:B,el:T,anchor:J,transition:ne}=R;if(B===He){$e(T,J);return}if(B===_i){S(R);return}const I=()=>{a(T),ne&&!ne.persisted&&ne.afterLeave&&ne.afterLeave()};if(R.shapeFlag&1&&ne&&!ne.persisted){const{leave:oe,delayLeave:le}=ne,_=()=>oe(T,I);le?le(R.el,I,_):_()}else I()},$e=(R,B)=>{let T;for(;R!==B;)T=f(R),a(R),R=T;a(B)},Se=(R,B,T)=>{const{bum:J,scope:ne,job:I,subTree:oe,um:le,m:_,a:k}=R;Nu(_),Nu(k),J&&bs(J),ne.stop(),I&&(I.flags|=8,O(oe,R,B,T)),le&&jt(le,B),jt(()=>{R.isUnmounted=!0},B)},ke=(R,B,T,J=!1,ne=!1,I=0)=>{for(let oe=I;oe{if(R.shapeFlag&6)return me(R.component.subTree);if(R.shapeFlag&128)return R.suspense.next();const B=f(R.anchor||R.el),T=B&&B[Qc];return T?f(T):B};let X=!1;const pe=(R,B,T)=>{let J;R==null?B._vnode&&(O(B._vnode,null,null,!0),J=B._vnode.component):m(B._vnode||null,R,B,null,null,null,T),B._vnode=R,X||(X=!0,qc(J),Yc(),X=!1)},q={p:m,um:O,m:ee,r:ge,mt:ce,mc:$,pc:M,pbc:j,n:me,o:e};return{render:pe,hydrate:void 0,createApp:am(pe)}}function bi({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 vn({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function $m(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function yi(e,t,o=!1){const n=e.children,a=t.children;if(Ie(n)&&Ie(a))for(let s=0;s>1,e[o[i]]0&&(t[n]=o[s-1]),o[s]=n)}}for(s=o.length,r=o[s-1];s-- >0;)o[s]=r,r=t[r];return o}function Ru(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ru(t)}function Nu(e){if(e)for(let t=0;te.__isSuspense;function wm(e,t){t&&t.pendingBranch?Ie(e)?t.effects.push(...e):t.effects.push(e):Ph(e)}const He=Symbol.for("v-fgt"),Ea=Symbol.for("v-txt"),_o=Symbol.for("v-cmt"),_i=Symbol.for("v-stc"),Go=[];let Yt=null;function ae(e=!1){Go.push(Yt=e?null:[])}function $i(){Go.pop(),Yt=Go[Go.length-1]||null}let Ta=1;function js(e,t=!1){Ta+=e,e<0&&Yt&&t&&(Yt.hasOnce=!0)}function Iu(e){return e.dynamicChildren=Ta>0?Yt||In:null,$i(),Ta>0&&Yt&&Yt.push(e),e}function ue(e,t,o,n,a,s){return Iu(F(e,t,o,n,a,s,!0))}function et(e,t,o,n,a){return Iu(ot(e,t,o,n,a,!0))}function Ra(e){return e?e.__v_isVNode===!0:!1}function Na(e,t){return e.type===t.type&&e.key===t.key}const Ou=({key:e})=>e??null,zs=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?it(e)||dt(e)||De(e)?{i:Lt,r:e,k:t,f:!!o}:e:null);function F(e,t=null,o=null,n=0,a=null,s=e===He?0:1,r=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ou(t),ref:t&&zs(t),scopeId:Xc,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:s,patchFlag:n,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:Lt};return i?(Us(l,o),s&128&&e.normalize(l)):o&&(l.shapeFlag|=it(o)?8:16),Ta>0&&!r&&Yt&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&Yt.push(l),l}const ot=km;function km(e,t=null,o=null,n=0,a=null,s=!1){if((!e||e===lu)&&(e=_o),Ra(e)){const i=Kn(e,t,!0);return o&&Us(i,o),Ta>0&&!s&&Yt&&(i.shapeFlag&6?Yt[Yt.indexOf(e)]=i:Yt.push(i)),i.patchFlag=-2,i}if(Fm(e)&&(e=e.__vccOpts),t){t=xm(t);let{class:i,style:l}=t;i&&!it(i)&&(t.class=Me(i)),Qe(l)&&(Ss(l)&&!Ie(l)&&(l=bt({},l)),t.style=ft(l))}const r=it(e)?1:Fu(e)?128:Rs(e)?64:Qe(e)?4:De(e)?2:0;return F(e,t,o,n,a,r,s,!0)}function xm(e){return e?Ss(e)||Au(e)?bt({},e):e:null}function Kn(e,t,o=!1,n=!1){const{props:a,ref:s,patchFlag:r,children:i,transition:l}=e,c=t?Am(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Ou(c),ref:t&&t.ref?o&&s?Ie(s)?s.concat(zs(t)):[s,zs(t)]:zs(t):s,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!==He?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Kn(e.ssContent),ssFallback:e.ssFallback&&Kn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&li(u,l.clone(u)),u}function Ct(e=" ",t=0){return ot(Ea,null,e,t)}function Ae(e="",t=!1){return t?(ae(),et(_o,null,e)):ot(_o,null,e)}function $o(e){return e==null||typeof e=="boolean"?ot(_o):Ie(e)?ot(He,null,e.slice()):Ra(e)?Bo(e):ot(Ea,null,String(e))}function Bo(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Kn(e)}function Us(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(Ie(t))o=16;else if(typeof t=="object")if(n&65){const a=t.default;a&&(a._c&&(a._d=!1),Us(e,a()),a._c&&(a._d=!0));return}else{o=32;const a=t._;!a&&!Au(t)?t._ctx=Lt:a===3&&Lt&&(Lt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(De(t)){if(n&65){Us(e,{default:t});return}t={default:t,_ctx:Lt},o=32}else t=String(t),n&64?(o=16,t=[Ct(t)]):o=8;e.children=t,e.shapeFlag|=o}function Am(...e){const t={};for(let o=0;oEt||Lt;let Hs,Ma;{const e=ys(),t=(o,n)=>{let a;return(a=e[o])||(a=e[o]=[]),a.push(n),s=>{a.length>1?a.forEach(r=>r(s)):a[0](s)}};Hs=t("__VUE_INSTANCE_SETTERS__",o=>Et=o),Ma=t("__VUE_SSR_SETTERS__",o=>Vn=o)}const Fa=e=>{const t=Et;return Hs(e),e.scope.on(),()=>{e.scope.off(),Hs(t)}},Du=()=>{Et&&Et.scope.off(),Hs(null)};function Gu(e){return e.vnode.shapeFlag&4}let Vn=!1;function Cm(e,t=!1,o=!1){t&&Ma(t);const{props:n,children:a}=e.vnode,s=Gu(e);dm(e,n,s,t),mm(e,a,o||t);const r=s?Em(e,t):void 0;return t&&Ma(!1),r}function Em(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Xh);const{setup:n}=o;if(n){fo();const a=e.setupContext=n.length>1?Rm(e):null,s=Fa(e),r=jn(n,e,0,[e.props,a]),i=gc(r);if(ho(),s(),(i||e.sp)&&!Hn(e)&&ci(e),i){if(r.then(Du,Du),t)return r.then(l=>{Ma(!0);try{Bu(e,l,t)}finally{Ma(!1)}}).catch(l=>{ka(l,e,0)});e.asyncDep=r}else Bu(e,r)}else ju(e)}function Bu(e,t,o){De(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Qe(t)&&(e.setupState=Uc(t)),ju(e)}function ju(e,t,o){const n=e.type;e.render||(e.render=n.render||po);{const a=Fa(e);fo();try{Jh(e)}finally{ho(),a()}}}const Tm={get(e,t){return Mt(e,"get",""),e[t]}};function Rm(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,Tm),slots:e.slots,emit:e.emit,expose:t}}function Ks(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Uc(Gn(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in La)return La[o](e)},has(t,o){return o in t||o in La}})):e.proxy}const Nm=/(?:^|[-_])\w/g,Mm=e=>e.replace(Nm,t=>t.toUpperCase()).replace(/[-_]/g,"");function zu(e,t=!0){return De(e)?e.displayName||e.name:e.name||t&&e.__name}function Uu(e,t,o=!1){let n=zu(t);if(!n&&t.__file){const a=t.__file.match(/([^/\\]+)\.\w+$/);a&&(n=a[1])}if(!n&&e){const a=s=>{for(const r in s)if(s[r]===t)return r};n=a(e.components)||e.parent&&a(e.parent.type.components)||a(e.appContext.components)}return n?Mm(n):o?"App":"Anonymous"}function Fm(e){return De(e)&&"__vccOpts"in e}const te=(e,t)=>yh(e,t,Vn);function Hu(e,t,o){try{js(-1);const n=arguments.length;return n===2?Qe(t)&&!Ie(t)?Ra(t)?ot(e,null,[t]):ot(e,t):ot(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&Ra(o)&&(o=[o]),ot(e,t,o))}finally{js(1)}}const Im="3.5.42";/** * @vue/runtime-dom v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let $i;const Uu=typeof window<"u"&&window.trustedTypes;if(Uu)try{$i=Uu.createPolicy("vue",{createHTML:e=>e})}catch{}const Ku=$i?e=>$i.createHTML(e):e=>e,Nm="http://www.w3.org/2000/svg",Mm="http://www.w3.org/1998/Math/MathML",jo=typeof document<"u"?document:null,Hu=jo&&jo.createElement("template"),Fm={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"?jo.createElementNS(Nm,e):t==="mathml"?jo.createElementNS(Mm,e):o?jo.createElement(e,{is:o}):jo.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>jo.createTextNode(e),createComment:e=>jo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>jo.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,n,a,s){const r=o?o.previousSibling:t.lastChild;if(a&&(a===s||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),o),!(a===s||!(a=a.nextSibling)););else{Hu.innerHTML=Ku(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=Hu.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[r?r.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}},Im=Symbol("_vtc");function Om(e,t,o){const n=e[Im];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const Hs=Symbol("_vod"),Vu=Symbol("_vsh"),Dm={name:"show",beforeMount(e,{value:t},{transition:o}){e[Hs]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):Fa(e,t)},mounted(e,{value:t},{transition:o}){o&&t&&o.enter(e)},updated(e,{value:t,oldValue:o},{transition:n}){!t!=!o&&(n?t?(n.beforeEnter(e),Fa(e,!0),n.enter(e)):n.leave(e,()=>{Fa(e,!1)}):Fa(e,t))},beforeUnmount(e,{value:t}){Fa(e,t)}};function Fa(e,t){e.style.display=t?e[Hs]:"none",e[Vu]=!t}const Bm=Symbol(""),Gm=/(?:^|;)\s*display\s*:/;function jm(e,t,o){const n=e.style,a=lt(o);let s=!1;if(o&&!a){if(t)if(lt(t))for(const r of t.split(";")){const i=r.slice(0,r.indexOf(":")).trim();o[i]==null&&Ia(n,i,"")}else for(const r in t)o[r]==null&&Ia(n,r,"");for(const r in o){r==="display"&&(s=!0);const i=o[r];i!=null?Um(e,r,!lt(t)&&t?t[r]:void 0,i)||Ia(n,r,i):Ia(n,r,"")}}else if(a){if(t!==o){const r=n[Bm];r&&(o+=";"+r),n.cssText=o,s=Gm.test(o)}}else t&&e.removeAttribute("style");Hs in e&&(e[Hs]=s?n.display:"",e[Vu]&&(n.display="none"))}const Vs=/\s*!important$/;function Ia(e,t,o){if(Ie(o))o.forEach(n=>Ia(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))Vs.test(o)?e.setProperty(t,o.replace(Vs,""),"important"):e.setProperty(t,o);else{const n=zm(e,t);Vs.test(o)?e.setProperty(Xt(n),o.replace(Vs,""),"important"):e[n]=o}}const Wu=["Webkit","Moz","ms"],vi={};function zm(e,t){const o=vi[t];if(o)return o;let n=St(t);if(n!=="filter"&&n in e)return vi[t]=n;n=hs(n);for(let a=0;awi||(Ym.then(()=>wi=0),wi=Date.now());function Xm(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if(Ie(a)){const s=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{s.call(n),n._stopped=!0};const r=a.slice(),i=[n];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Jm=(e,t,o,n,a,s)=>{const r=a==="svg";t==="class"?Om(e,n,r):t==="style"?jm(e,o,n):cs(t)?us(t)||Hm(e,t,o,n,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Qm(e,t,n,r))?(Zu(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Yu(e,t,n,r,s,t!=="value")):e._isVueCE&&(eb(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!lt(n)))?Zu(e,St(t),n,s,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Yu(e,t,n,r))};function Qm(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Ju(t)&&De(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 Ju(t)&<(o)?!1:t in e}function eb(e,t){const o=e._def.props;if(!o)return!1;const n=St(t);return Array.isArray(o)?o.some(a=>St(a)===n):Object.keys(o).some(a=>St(a)===n)}const Qu={};function tb(e,t,o){let n=Aa(e,t);ds(n)&&(n=bt({},n,t));class a extends ki{constructor(r){super(n,r,o)}}return a.def=n,a}const ob=typeof HTMLElement<"u"?HTMLElement:class{};class ki extends ob{constructor(t,o={},n=sp){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!==sp?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(bt({},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 ki){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,Dt(()=>{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:s,styles:r}=n;let i;if(s&&!Ie(s))for(const l in s){const c=s[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=fc(this._props[l])),(i||(i=Object.create(null)))[St(l)]=!0)}this._numberProps=i,this._resolveProps(n),this.shadowRoot&&this._applyStyles(r),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)Je(this,n)||Object.defineProperty(this,n,{get:()=>ge(o[n])})}_resolveProps(t){const{props:o}=t,n=Ie(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(St))Object.defineProperty(this,a,{get(){return this._getProp(a)},set(s){this._setProp(a,s,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const o=this.hasAttribute(t);let n=o?this.getAttribute(t):Qu;const a=St(t);o&&this._numberProps&&this._numberProps[a]&&(n=fc(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===Qu?delete this._props[t]:(this._props[t]=o,t==="key"&&this._app&&(this._app._ceVNode.key=o)),a&&this._instance&&this._update(),n)){const s=this._ob;s&&(this._processMutations(s.takeRecords()),s.disconnect()),o===!0?this.setAttribute(Xt(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(Xt(t),o+""):o||this.removeAttribute(Xt(t)),s&&s.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),ib(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=nt(this._def,bt(t,this._props));return this._instance||(o.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const a=(s,r)=>{this.dispatchEvent(new CustomEvent(s,ds(r[0])?bt({detail:r},r[0]):{detail:r}))};n.emit=(s,...r)=>{a(s,r),Xt(s)!==s&&a(Xt(s),r)},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,s=this.shadowRoot,r=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(s);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],s.insertBefore(c,i||r),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 Ie(t)?o=>ms(t,o):t};function nb(e){e.target.composing=!0}function tp(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ws=Symbol("_assign"),qs=Symbol("_initialValue");function xi(e,t,o){return t&&(e=e.trim()),o&&(e=jr(e)),e}const op={created(e,{modifiers:{lazy:t,trim:o,number:n}},a){e.parentNode&&(e.type==="text"?e[qs]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[qs]=e.defaultValue.replace(/\r\n?/g,` -`))),e[Ws]=ep(a);const s=n||a.props&&a.props.type==="number";Wn(e,t?"change":"input",r=>{r.target.composing||e[Ws](xi(e.value,o,s))}),(o||s)&&Wn(e,"change",()=>{e.value=xi(e.value,o,s)}),t||(Wn(e,"compositionstart",nb),Wn(e,"compositionend",tp),Wn(e,"change",tp))},mounted(e,{value:t,modifiers:{trim:o,number:n}}){const a=t??"",s=e[qs];delete e[qs],s!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==s?e[Ws](xi(e.value,o,n)):e.value=a},beforeUpdate(e,{value:t,oldValue:o,modifiers:{lazy:n,trim:a,number:s}},r){if(e[Ws]=ep(r),e.composing)return;const i=(s||e.type==="number")&&!/^0\d/.test(e.value)?jr(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)}},ab=["ctrl","shift","alt","meta"],sb={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)=>ab.some(o=>e[`${o}Key`]&&!t.includes(o))},ft=(e,t)=>{if(!e)return e;const o=e._withMods||(e._withMods={}),n=t.join(".");return o[n]||(o[n]=(a,...s)=>{for(let r=0;r{ap().render(...e)},sp=(...e)=>{const t=ap().createApp(...e),{mount:o}=t;return t.mount=n=>{const a=cb(n);if(!a)return;const s=t._component;!De(s)&&!s.render&&!s.template&&(s.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const r=o(a,!1,lb(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),r},t};function lb(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function cb(e){return lt(e)?document.querySelector(e):e}/*! +**/let vi;const Ku=typeof window<"u"&&window.trustedTypes;if(Ku)try{vi=Ku.createPolicy("vue",{createHTML:e=>e})}catch{}const Vu=vi?e=>vi.createHTML(e):e=>e,Om="http://www.w3.org/2000/svg",Dm="http://www.w3.org/1998/Math/MathML",jo=typeof document<"u"?document:null,Wu=jo&&jo.createElement("template"),Gm={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"?jo.createElementNS(Om,e):t==="mathml"?jo.createElementNS(Dm,e):o?jo.createElement(e,{is:o}):jo.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>jo.createTextNode(e),createComment:e=>jo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>jo.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,n,a,s){const r=o?o.previousSibling:t.lastChild;if(a&&(a===s||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),o),!(a===s||!(a=a.nextSibling)););else{Wu.innerHTML=Vu(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=Wu.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[r?r.nextSibling:t.firstChild,o?o.previousSibling:t.lastChild]}},Bm=Symbol("_vtc");function jm(e,t,o){const n=e[Bm];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const Vs=Symbol("_vod"),qu=Symbol("_vsh"),zm={name:"show",beforeMount(e,{value:t},{transition:o}){e[Vs]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):Ia(e,t)},mounted(e,{value:t},{transition:o}){o&&t&&o.enter(e)},updated(e,{value:t,oldValue:o},{transition:n}){!t!=!o&&(n?t?(n.beforeEnter(e),Ia(e,!0),n.enter(e)):n.leave(e,()=>{Ia(e,!1)}):Ia(e,t))},beforeUnmount(e,{value:t}){Ia(e,t)}};function Ia(e,t){e.style.display=t?e[Vs]:"none",e[qu]=!t}const Um=Symbol(""),Hm=/(?:^|;)\s*display\s*:/;function Km(e,t,o){const n=e.style,a=it(o);let s=!1;if(o&&!a){if(t)if(it(t))for(const r of t.split(";")){const i=r.slice(0,r.indexOf(":")).trim();o[i]==null&&Oa(n,i,"")}else for(const r in t)o[r]==null&&Oa(n,r,"");for(const r in o){r==="display"&&(s=!0);const i=o[r];i!=null?Wm(e,r,!it(t)&&t?t[r]:void 0,i)||Oa(n,r,i):Oa(n,r,"")}}else if(a){if(t!==o){const r=n[Um];r&&(o+=";"+r),n.cssText=o,s=Hm.test(o)}}else t&&e.removeAttribute("style");Vs in e&&(e[Vs]=s?n.display:"",e[qu]&&(n.display="none"))}const Ws=/\s*!important$/;function Oa(e,t,o){if(Ie(o))o.forEach(n=>Oa(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))Ws.test(o)?e.setProperty(t,o.replace(Ws,""),"important"):e.setProperty(t,o);else{const n=Vm(e,t);Ws.test(o)?e.setProperty(Jt(n),o.replace(Ws,""),"important"):e[n]=o}}const Yu=["Webkit","Moz","ms"],wi={};function Vm(e,t){const o=wi[t];if(o)return o;let n=St(t);if(n!=="filter"&&n in e)return wi[t]=n;n=ms(n);for(let a=0;aki||(Qm.then(()=>ki=0),ki=Date.now());function tb(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if(Ie(a)){const s=n.stopImmediatePropagation;n.stopImmediatePropagation=()=>{s.call(n),n._stopped=!0};const r=a.slice(),i=[n];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,ob=(e,t,o,n,a,s)=>{const r=a==="svg";t==="class"?jm(e,n,r):t==="style"?Km(e,o,n):us(t)?ps(t)||Ym(e,t,o,n,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):nb(e,t,n,r))?(Ju(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Xu(e,t,n,r,s,t!=="value")):e._isVueCE&&(ab(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!it(n)))?Ju(e,St(t),n,s,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Xu(e,t,n,r))};function nb(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&ep(t)&&De(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 ep(t)&&it(o)?!1:t in e}function ab(e,t){const o=e._def.props;if(!o)return!1;const n=St(t);return Array.isArray(o)?o.some(a=>St(a)===n):Object.keys(o).some(a=>St(a)===n)}const tp={};function sb(e,t,o){let n=Sa(e,t);gs(n)&&(n=bt({},n,t));class a extends xi{constructor(r){super(n,r,o)}}return a.def=n,a}const rb=typeof HTMLElement<"u"?HTMLElement:class{};class xi extends rb{constructor(t,o={},n=ip){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!==ip?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(bt({},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 xi){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,Gt(()=>{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:s,styles:r}=n;let i;if(s&&!Ie(s))for(const l in s){const c=s[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=mc(this._props[l])),(i||(i=Object.create(null)))[St(l)]=!0)}this._numberProps=i,this._resolveProps(n),this.shadowRoot&&this._applyStyles(r),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)Je(this,n)||Object.defineProperty(this,n,{get:()=>de(o[n])})}_resolveProps(t){const{props:o}=t,n=Ie(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(St))Object.defineProperty(this,a,{get(){return this._getProp(a)},set(s){this._setProp(a,s,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const o=this.hasAttribute(t);let n=o?this.getAttribute(t):tp;const a=St(t);o&&this._numberProps&&this._numberProps[a]&&(n=mc(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===tp?delete this._props[t]:(this._props[t]=o,t==="key"&&this._app&&(this._app._ceVNode.key=o)),a&&this._instance&&this._update(),n)){const s=this._ob;s&&(this._processMutations(s.takeRecords()),s.disconnect()),o===!0?this.setAttribute(Jt(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(Jt(t),o+""):o||this.removeAttribute(Jt(t)),s&&s.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),pb(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=ot(this._def,bt(t,this._props));return this._instance||(o.ce=n=>{this._instance=n,n.ce=this,n.isCE=!0;const a=(s,r)=>{this.dispatchEvent(new CustomEvent(s,gs(r[0])?bt({detail:r},r[0]):{detail:r}))};n.emit=(s,...r)=>{a(s,r),Jt(s)!==s&&a(Jt(s),r)},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,s=this.shadowRoot,r=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(s);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],s.insertBefore(c,i||r),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 Ie(t)?o=>bs(t,o):t};function ib(e){e.target.composing=!0}function np(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const qs=Symbol("_assign"),Ys=Symbol("_initialValue");function Ai(e,t,o){return t&&(e=e.trim()),o&&(e=zr(e)),e}const ap={created(e,{modifiers:{lazy:t,trim:o,number:n}},a){e.parentNode&&(e.type==="text"?e[Ys]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Ys]=e.defaultValue.replace(/\r\n?/g,` +`))),e[qs]=op(a);const s=n||a.props&&a.props.type==="number";Wn(e,t?"change":"input",r=>{r.target.composing||e[qs](Ai(e.value,o,s))}),(o||s)&&Wn(e,"change",()=>{e.value=Ai(e.value,o,s)}),t||(Wn(e,"compositionstart",ib),Wn(e,"compositionend",np),Wn(e,"change",np))},mounted(e,{value:t,modifiers:{trim:o,number:n}}){const a=t??"",s=e[Ys];delete e[Ys],s!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==s?e[qs](Ai(e.value,o,n)):e.value=a},beforeUpdate(e,{value:t,oldValue:o,modifiers:{lazy:n,trim:a,number:s}},r){if(e[qs]=op(r),e.composing)return;const i=(s||e.type==="number")&&!/^0\d/.test(e.value)?zr(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)}},lb=["ctrl","shift","alt","meta"],cb={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)=>lb.some(o=>e[`${o}Key`]&&!t.includes(o))},ht=(e,t)=>{if(!e)return e;const o=e._withMods||(e._withMods={}),n=t.join(".");return o[n]||(o[n]=(a,...s)=>{for(let r=0;r{rp().render(...e)},ip=(...e)=>{const t=rp().createApp(...e),{mount:o}=t;return t.mount=n=>{const a=gb(n);if(!a)return;const s=t._component;!De(s)&&!s.render&&!s.template&&(s.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const r=o(a,!1,db(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),r},t};function db(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function gb(e){return it(e)?document.querySelector(e):e}/*! * pinia v2.3.1 * (c) 2025 Eduardo San Martin Morote * @license MIT - */let rp;const Ys=e=>rp=e,ip=Symbol();function Ai(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Oa;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Oa||(Oa={}));function ub(){const e=Ur(!0),t=e.run(()=>me({}));let o=[],n=[];const a=Bn({install(s){Ys(a),a._a=s,s.provide(ip,a),s.config.globalProperties.$pinia=a,n.forEach(r=>o.push(r)),n=[]},use(s){return this._a?o.push(s):n.push(s),this},_p:o,_a:null,_e:e,_s:new Map,state:t});return a}const lp=()=>{};function cp(e,t,o,n=lp){e.push(t);const a=()=>{const s=e.indexOf(t);s>-1&&(e.splice(s,1),n())};return!o&&vc()&&zf(a),a}function qn(e,...t){e.slice().forEach(o=>{o(...t)})}const pb=e=>e(),up=Symbol(),Si=Symbol();function Pi(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];Ai(a)&&Ai(n)&&e.hasOwnProperty(o)&&!pt(n)&&!Fo(n)?e[o]=Pi(a,n):e[o]=n}return e}const db=Symbol();function gb(e){return!Ai(e)||!e.hasOwnProperty(db)}const{assign:en}=Object;function fb(e){return!!(pt(e)&&e.effect)}function hb(e,t,o,n){const{state:a,actions:s,getters:r}=t,i=o.state.value[e];let l;function c(){i||(o.state.value[e]=a?a():{});const u=uh(o.state.value[e]);return en(u,s,Object.keys(r||{}).reduce((h,f)=>(h[f]=Bn(ne(()=>{Ys(o);const S=o._s.get(e);return r[f].call(S,S)})),h),{}))}return l=pp(e,c,t,o,n,!0),l}function pp(e,t,o={},n,a,s){let r;const i=en({actions:{}},o),l={deep:!0};let c,u,h=[],f=[],S;const $=n.state.value[e];!s&&!$&&(n.state.value[e]={});let b;function _(C){let A;c=u=!1,typeof C=="function"?(C(n.state.value[e]),A={type:Oa.patchFunction,storeId:e,events:S}):(Pi(n.state.value[e],C),A={type:Oa.patchObject,payload:C,storeId:e,events:S});const U=b=Symbol();Dt().then(()=>{b===U&&(c=!0)}),u=!0,qn(h,A,n.state.value[e])}const y=s?function(){const{state:A}=o,U=A?A():{};this.$patch(H=>{en(H,U)})}:lp;function p(){r.stop(),h=[],f=[],n._s.delete(e)}const m=(C,A="")=>{if(up in C)return C[Si]=A,C;const U=function(){Ys(n);const H=Array.from(arguments),Y=[],K=[];function le(z){Y.push(z)}function G(z){K.push(z)}qn(f,{args:H,name:U[Si],store:d,after:le,onError:G});let k;try{k=C.apply(this&&this.$id===e?this:d,H)}catch(z){throw qn(K,z),z}return k instanceof Promise?k.then(z=>(qn(Y,z),z)).catch(z=>(qn(K,z),Promise.reject(z))):(qn(Y,k),k)};return U[up]=!0,U[Si]=A,U},x={_p:n,$id:e,$onAction:cp.bind(null,f),$patch:_,$reset:y,$subscribe(C,A={}){const U=cp(h,C,A.detached,()=>H()),H=r.run(()=>Fe(()=>n.state.value[e],Y=>{(A.flush==="sync"?u:c)&&C({storeId:e,type:Oa.direct,events:S},Y)},en({},l,A)));return U},$dispose:p},d=Dn(x);n._s.set(e,d);const g=(n._a&&n._a.runWithContext||pb)(()=>n._e.run(()=>(r=Ur()).run(()=>t({action:m}))));for(const C in g){const A=g[C];if(pt(A)&&!fb(A)||Fo(A))s||($&&gb(A)&&(pt(A)?A.value=$[C]:Pi(A,$[C])),n.state.value[e][C]=A);else if(typeof A=="function"){const U=m(A,C);g[C]=U,i.actions[C]=A}}return en(d,g),en(Ve(d),g),Object.defineProperty(d,"$state",{get:()=>n.state.value[e],set:C=>{_(A=>{en(A,C)})}}),n._p.forEach(C=>{en(d,r.run(()=>C({store:d,app:n._a,pinia:n,options:i})))}),$&&s&&o.hydrate&&o.hydrate(d.$state,$),c=!0,u=!0,d}/*! #__NO_SIDE_EFFECTS__ */function Li(e,t,o){let n,a;const s=typeof t=="function";typeof e=="string"?(n=e,a=s?o:t):(a=e,n=e.id);function r(i,l){const c=xh();return i=i||(c?Re(ip,null):null),i&&Ys(i),i=rp,i._s.has(n)||(s?pp(n,t,a,i):hb(n,a,i)),i._s.get(n)}return r.$id=n,r}const Ci="__doxaMapToken",Ti="doxa:map-token",dp="__doxaMapTokenBridge",Yn=()=>{if(typeof window>"u")return"";const e=window[Ci];return typeof e=="string"?e:""};function Ei(e){if(typeof window>"u")return"";gp();const t=typeof e=="string"?e.trim():"";if(!t||t===Yn())return Yn();window[Ci]=t;try{window.dispatchEvent(new CustomEvent(Ti,{detail:t}))}catch{}return t}function gp(){var t;if(typeof window>"u"||window[dp]&&((t=Object.getOwnPropertyDescriptor(window,"MAP_TOKEN"))!=null&&t.get))return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!Yn()&&(window[Ci]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return Yn()},set(o){Ei(o)}}),window[dp]=!0}catch{}}function mb(){gp();const e=me(Yn());if(typeof window<"u"){const t=()=>{e.value=Yn()};window.addEventListener(Ti,t);try{Jt(()=>window.removeEventListener(Ti,t))}catch{}}return e}function bb(e){if(typeof window>"u"||!/^https?:\/\//i.test(String(e||"")))return Promise.resolve("");const t=window.__doxaMapTokenFetches=window.__doxaMapTokenFetches||{};if(t[e])return t[e];const o=fetch(e).then(n=>{if(!n.ok)throw new Error("HTTP "+n.status);return(n.headers.get("content-type")||"").includes("json")?n.json():n.text()}).then(n=>{const a=String((typeof n=="string"?n:n&&(n.token||n.tk||n.accessToken))||"").trim();return a.startsWith("pk.")?(Ei(a),a):""}).catch(n=>(console.warn(`[map token] ${e}: ${n&&n.message?n.message:n}`),"")).finally(()=>{window.__doxaMapTokenPending===o&&(window.__doxaMapTokenPending=null)});return window.__doxaMapTokenPending=o,t[e]=o,o}function Zs(e){return Fh({loader:e,onError(t,o,n,a){a<=3?setTimeout(o,a*500):n()}})}const yb={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها",searchPeopleGroups:"ابحث عن الشعوب",resetAllFilters:"إعادة تعيين كل عوامل التصفية والبحث",selectAllRows:"تحديد كل الصفوف",deselectAllRows:"إلغاء تحديد كل الصفوف"},_b={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين",posterMap:"خريطة الملصق",prayerList:"قائمة الصلاة",cardDeck:"مجموعة البطاقات",printOptions:"خيارات الطباعة",showOnMap:"أظهر على الخريطة",close:"إغلاق",showOnMapAria:"أظهر {label} على الخريطة",cardStockAria:"حجم بطاقة الصلاة",previewPrintPoster:"معاينة وطباعة ملصق {label}",share:"مشاركة",shareSteps:["ضع هذه الخريطة على موقعك","أعدّ قائمة بمواقع الويب في مدينتك","علّمهم أن يضعوها أيضًا","علّمهم أن يعلّموا غيرهم وضعها","لنكثر الخرائط في كل مكان ليسوع!"],clearSelection:"إلغاء التحديد",noOptions:"لا توجد نتائج",renderingLocal:"يتم إنشاء صورة بجودة الطباعة في متصفحك — لا يتم تحميل أي شيء.",postersPerRow:"الملصقات في كل صف"},$b={research_controls:"أدوات البحث",clustering:"التجميع",filters:"عوامل التصفية",pin_dim:"خفوت النقاط",export_poster:"تصدير ملصق…",reload_data:"إعادة تحميل البيانات",off:"إيقاف",native:"أصلي",mst:"الشجرة الممتدة",network:"شبكة",off_desc:"إظهار كل نقطة على حدة",native_desc:"تجميع دوائر Mapbox (الأسرع)",mst_desc:"شبكات تقارب بالشجرة الممتدة الصغرى",network_desc:"خطوط ربط بأقرب جار",search_languages:"ابحث عن اللغات…",search_religions:"ابحث عن الأديان…",reset_all:"إعادة تعيين الكل",no_languages:"لم تُحمَّل أي لغات بعد",no_religions:"لم تُحمَّل أي أديان بعد",unadopted:"غير متبنّى",min:"الأدنى",max:"الأعلى",adopted:"متبنَّاة",adoption:"التبني",engaged:"مُخْدُومَة",engagement:"المشاركة",unengaged:"يحتاج إلى انخراط",language:"اللغة",religion:"الدين",population:"السكان",any:"الكل",active_count:"{n} نشط",prayer_status:"حالة الصلاة",close:"إغلاق",clear:"مسح",map_controls:"أدوات التحكم بالخريطة"},vb={bloc:"كتلة التقارب",gospel_access:"الوصول إلى الإنجيل",people:"الشعوب",people_name:"الشعب (الاسم)",praying:"يصلّون",religion_family:"عائلة الأديان",search_language:"ابحث عن لغة",search_people:"ابحث عن شعب",search_place:"ابحث عن مكان",search_religion:"ابحث عن دين",upgs_in_scope:"الشعوب ضمن النطاق",countries_touched:"الدول المشمولة",unreached:"غير موصولين",sum_population:"مجموع السكان",sum_praying:"مجموع المصلّين",charts:"الرسوم البيانية",table:"الجدول",cluster:"المجموعة",country:"الدولة",engagement:"المشاركة",language:"اللغة",language_family:"عائلة اللغة",people_group:"الشعب",population:"السكان",prayer:"الصلاة",region:"المنطقة",religion:"الدين",status:"الحالة",adopted:"متبنَّاة",filters:"عوامل التصفية",gospel_resources:"موارد الإنجيل",map:"الخريطة",search_placeholder:"ابحث عن الشعوب والأماكن واللغات والأديان…",any:"الكل",active_count:"{n} نشط",prayer_status:"حالة الصلاة",map_controls:"أدوات التحكم بالخريطة",close:"إغلاق",clear:"مسح",dashboard_title:"لوحة البحث الشاملة",align_dashboard:"محاذاة اللوحة",align_dashboard_tip:"إعادة تخطيط اللوحة إلى المحاذاة الافتراضية",selected:"المحدد",world:"العالم",vertical_legend:"مفتاح عمودي",groups_in_scope:"مجموعة ضمن النطاق",filter_by:"تصفية حسب",remove_filter:"إزالة التصفية",groups:"مجموعة",expand:"توسيع",collapse:"طيّ",place:"المكان",export_csv:"تصدير CSV",detail:"التفاصيل",detail_empty:"اختر شعبًا لعرض التفاصيل",heartbeat_zone:"منطقة نبض القلب",top_countries:"أبرز الدول",select_all:"تحديد الكل",expand_table:"توسيع الجدول",collapse_table:"طيّ الجدول — توسيع الخريطة",group:"مجموعة",deselect_all:"إلغاء تحديد الكل"},wb={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},kb={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"الملاحظات التوضيحية أدناه باللغة الإنجليزية."},mode:{gap:"الفجوة",coverage:"الموارد المتوفرة"},search:{placeholder:"ابحث عن شعب أو لغة أو رمز ISO",clear:"مسح البحث",none:"لا شيء يطابق هذا الاسم أو اللغة أو الرمز.",placeholderShort:"شعب أو لغة أو رمز ISO"},legend:{title:"شعوب غير مبلَّغة ولا يوجد لها أي مورد إنجيلي",band60:"⁦60%+⁩ بلا أي مورد",band30:"⁦30–59%⁩",bandSome:"بعض الشعوب",bandAll:"كل الشعوب لديها شيء",tier2:"الكتاب المقدس والفيلم",tier1:"وُجد بعض الموارد",tier0:"لا شيء",hnr:"يمكنهم السماع، ولا يوجد نص",showAll:"عرض كل الشعوب",titleCoverage:"شعوب غير مبلَّغة ويوجد لها بعض الموارد الإنجيلية",cov80:"⁦80%+⁩ لديهم شيء",cov50:"⁦50–79%⁩",cov1:"⁦1–49%⁩",cov0:"لا شيء لأي منهم",tallyEach:"كل",tallyIs:"هو شعب واحد —",tallyOf:"منها،",tallyLink:"لديها رابط",doxa0:"لدى الجميع شيء",doxa1:"‪1–4‬ بلا شيء",doxa5:"‪5–14‬",doxa15:"‪15–39‬",doxa40:"‪40+‬",cvd1:"‪1–4‬ لديهم موارد",cvd5:"‪5–14‬",cvd15:"‪15–39‬",cvd40:"‪40+‬",onMap:"شعوب دوكسا على هذه الخريطة",notPlaced:"ضمن القائمة، بلا موقع بعد",outOfScope:"لا توجد شعوب دوكسا — غير ملوَّنة"},tabs:{groups:"أكبر الشعوب",countries:"حسب البلد",regions:"حسب المنطقة",noprayer:"لا أحد يصلّي",hnr:"يسمعون، بلا نص"},stat:{language:"اللغة",population:"عدد السكان",countries:"البلدان",peopleGroups:"الشعوب",noResource:"لا يوجد أي مورد",peopleAffected:"الأشخاص المتأثرون",haveScripture:"لديهم الكتاب المقدس",haveFilm:"لديهم الفيلم",haveAudio:"لديهم كتاب مقدس مسموع",signLanguages:"لغات الإشارة",growingUnreached:"متزايدون وغير مبلَّغين",deathsDay:"الوفيات المقدَّرة يوميًا"},sheet:{ownLanguage:"بلغتهم الأم",close:"إغلاق",loading:"جارٍ تحميل الموارد…",pray:"صلِّ من أجل",everyResource:"كل الموارد بـ",alsoSpeak:"يتحدثون أيضًا"},res:{scripture:"الكتاب المقدس",film:"الفيلم",audio:"صوتي",bibleVideo:"فيديو كتابي",bibleStories:"Open Bible Stories",gospelAudio:"صوتيات الإنجيل",gospelPresentation:"عرض للإنجيل",scriptureEarth:"Scripture Earth",training:"تدريب على التلمذة",jesusFilm:"فيلم يسوع",audioScripture:"الكتاب المقدس الصوتي",bibleStoriesPlain:"قصص الكتاب المقدس"},state:{noneFound:"لا شيء",noneAtFcbh:"لا شيء في FCBH",noneAtGrn:"لا شيء في GRN",notInZume:"ليست ضمن لغات Zume الـ54",linkChecked:"تم التحقق من الرابط",unchecked:"لم يُتحقق منه",linkDead:"رابط معطّل",wrongLanguage:"لغة غير صحيحة",varietyNotStated:"(اللهجة غير محددة)",inLanguage:"بـ"},guide:{dotVsCountry:"كل نقطة هي شعب واحد من شعوب دوكسا ولغته؛ أما لون البلد فهو عدد تلك الشعوب.",noneFoundShort:"«لا شيء» تعني غير موجود في المصادر التي بحثنا فيها — وليست دليلًا على عدم وجوده.",tapCountry:"اضغط على بلد لترى الموارد الفعلية، شعبًا شعبًا."},tables:{title:"موارد الإنجيل — البيانات",showing:"عرض",of:"من",for:"لـ",filteredTo:"مصفّى حسب",showAll:"عرض كل الموارد",t_doxa:"دوكسا — الوصول إلى الإنجيل",t_links:"كل مورد ورابطه",t_nothing:"حيث لا يوجد شيء",t_countrygap:"الفجوة حسب البلد",t_translation:"يسمعون ولا نص لديهم",t_translationcountry:"أين نترجم",t_province:"الوصول إلى الإنجيل حسب المقاطعة — الهند والصين",t_gaps:"الفجوات والفرص",t_bridges:"جسور المدن",t_deaf:"فجوة الصم",t_resources:"الموارد حسب الشعب",t_languages:"اللغات حسب البلد",t_growth:"الوصول مقابل نمو السكان"},pages:{listTitle:"موارد الإنجيل حسب اللغة",chartsTitle:"موارد الإنجيل — حسب اللغة",loadingTables:"جارٍ تحميل جداول الموارد…"},list:{noText:"بلا نص مقدس",hasScripture:"لديها الكتاب المقدس",allLanguages:"كل اللغات",peopleGroup:"شعب",peopleGroups:"شعوب",scriptureHere:"الكتاب المقدس بهذه اللغة"},columns:{"People group":"الشعب",Country:"البلد",Region:"المنطقة",Language:"اللغة",Population:"عدد السكان",Religion:"الديانة","Gospel access":"الوصول إلى الإنجيل",Resources:"الموارد",Scripture:"الكتاب المقدس","Bible video":"فيديو كتابي","Gospel presentation":"عرض للإنجيل",Countries:"البلدان","People groups":"الشعوب"},charts:{scriptureAny:"الكتاب المقدس (أي نوع)",fullBible:"الكتاب المقدس كاملاً",newTestament:"العهد الجديد",filmAny:"الفيلم (أي نوع)",nothingInPools:"لا شيء في المصادر التي جرى البحث فيها",nothingInPoolsLower:"لا شيء في المصادر التي جرى البحث فيها",noResourceInPools:"لم يُعثر على أي مورد في المصادر التي جرى البحث فيها",aResourceFound:"وُجد مورد",tabCoverage:"تغطية الموارد",tabGap:"أكبر الفجوات",keyScripture:"الكتاب المقدس",keyFilmStories:"الفيلم / القصص",keyAudioEtc:"صوتيات / عرض / تدريب",unresolvedCode:"رمز خارج ISO 639-3 — غير محسوم، لم يُقَس",c1Title:"ما الذي وُجد، بحسب نوع المورد",c1Sub:"عبر جميع اللغات البالغة {n} في مجموعة البيانات. كل عمود يَعُدّ اللغات، لا الشعوب.",c1Unit:"لغات وُجد فيها المورد ضمن المصادر التي جرى البحث فيها",c2Title:"أكبر التجمعات السكانية التي لم يُعثر لها على شيء",c2Sub:"اللغات الـ{n} التي لا يوجد لها كتاب مقدس ولا فيلم في المصادر التي جرى البحث فيها، مرتَّبة بحسب عدد سكان الشعوب التي تتحدثها.",c2Unit:"أشخاص في الشعوب التي هذه لغتها الأساسية — لا المتحدثين بها عمومًا",c3Title:"البلدان الأكثر لغاتٍ غير مخدومة",c3Sub:"البلدان الـ{n} الأكثر لغاتٍ لم يُعثر لها على شيء. طول العمود هو كل لغة موجودة في ذلك البلد.",c3Unit:"لغات موجودة في البلد (اللغة العابرة للحدود تُحتسب في كل بلد)"}},xb={search:"ابحث عن الشعوب…",hide_filters:"إخفاء عوامل التصفية",show_filters:"إظهار عوامل التصفية",total:"الإجمالي",showing:"المعروض",load_more:"عرض المزيد",full_profile:"الملف الكامل",wagf_region:"المنطقة",wagf_block:"كتلة التقارب",rop1:"الشعب",religion:"الدين",exact_filter:"تطابق تام",clear_all:"مسح الكل",loading:"جارٍ التحميل…",no_results:"لا توجد شعوب مطابقة لهذا التصفية.",type_to_search:"اكتب للبحث...",load_failed:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية.",search_people_or_countries:"ابحث عن الشعوب أو الدول…"},Ab={title:{adoption:"تقدم التبني",affinityBlocs:"كتل القرابة",doxaRegions:"مناطق Doxa",engagement:"تقدم الانخراط",gospelResources:"موارد الإنجيل",languageFamilies:"العائلات اللغوية",prayer:"تقدم الصلاة",upg100List:"قائمة UPG 100 الخاصة بي"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب",default:"مفتاح الخريطة"},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:"اللغات"},tabInfo:{upg100Region:"المنطقة — ترتّب قوائم UPG-100 حسب منطقة العالم (أفريقيا، الهند، الشرق الأوسط، الصمّ، …). الأعداد هي مجموع UUPG والسكان لكل قائمة تحتها.",upg100Zone:"قوائم UPG-100 — كل واحدة هي قائمة صلاة للشعوب غير الموصول إليها في منطقة ما، وهي ما ترسمه الخريطة وتلوّنه. تُطبع كل قائمة ككُتيّب خاص بها.",upg100Group:"مجموعة شعبية — المجموعات غير الموصول إليها داخل القائمة، الأكثر حاجة للصلاة أولاً. كل نقطة على الخريطة هي واحدة منها."},a11y:{expandRow:"توسيع {label}",collapseRow:"طي {label}",clearSelection:"إلغاء التحديد"},export:{poster:"ملصق",packet:"كُتيّب"},noDataAtThisLevel:"لا توجد بيانات في هذا المستوى",exportButton:"تصدير",exportSelection:"تصدير التحديد"},Sb={menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم الصلاة والملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntro:"وزّع مهمة الصلاة في مجموعات من خمسين ومئة — كما أطعم يسوع الخمسة آلاف (لوقا ٩:١٤). كل ملصق هو قائمة من 100 يمكنك أن تصلي بها وتطبعها وتعلّقها على الحائط — مصلّيًا لأجلهم باسم شعبهم."},Pb={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Lb={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},Cb={"%count% people groups in %countries% countries":"%count% مجموعة شعبية في %countries% دولة","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"تضم %region% %count% مجموعة شعبية في %countries% دولة. يشير لون كل نقطة إلى عدد الأشخاص الذين يصلّون من أجل تلك المجموعة الشعبية.","1+ People Praying":"شخص واحد أو أكثر يصلّي","100+ People Praying":"أكثر من 100 شخص يصلّون",Adopted:"متبنَّاة","Adoption Progress":"تقدُّم التبنّي","All Regions":"جميع المناطق","Alternate Names":"الأسماء البديلة","Choose a region":"اختر منطقة","Clear All":"مسح الكل",Countries:"الدول","Countries in this region":"الدول في هذه المنطقة",Country:"الدولة",Engaged:"مَخْدُومَة","Engagement Progress":"تقدُّم الانخراط","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"كل مجموعة شعبية غير مَخْدُومَة تتبنّاها كنيسة ملتزمة بالصلاة والعطاء والإرسال","Exact Search":"بحث دقيق","Find unreached people groups by region and country.":"ابحث عن المجموعات الشعبية غير المبلَّغة حسب المنطقة والدولة.","Full Profile":"الملف الكامل",Goal:"الهدف","Hide Filters":"إخفاء المرشحات","Hide country posters":"إخفاء ملصقات الدولة",Intercessors:"المتشفعين","Load More":"تحميل المزيد","Loading results...":"النتائج قيد التحميل...",Map:"الخريطة","Mobilize 100+ people praying daily for each DOXA people group":"حشد أكثر من 100 شخص للصلاة يوميًا من أجل كل مجموعة شعبية من مجموعات دوكسا","No One Praying":"لا أحد يصلّي","No options found":"لم يتم العثور على أي خيارات","No poster has been generated for this country yet.":"لم يُنشأ أي ملصق لهذه الدولة بعد.","No unengaged people groups by 2033":"لا مجموعات شعبية غير مَخْدُومَة بحلول عام 2033","Not Adopted":"لم يتم انتماؤه",Other:"أخرى","Page Not Found":"الصفحة غير موجودة","People Group":"مجموعة شعبية","People Groups":"مجموعات شعبية","People committed to praying":"الأشخاص الذين التزموا بالصلاة","Pick a region above, or click any dot to open that people group's country.":"اختر منطقة أعلاه، أو انقر على أي نقطة لفتح دولة تلك المجموعة الشعبية.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"اختر منطقة أو دولة من تبويب قائمة المناطق لتضييق نطاق لوحة المعلومات هذه.",Population:"عدد السكان","Prayer Coverage":"تغطية الصلاة","Prayer coverage progress":"تقدم تغطية الصلاة","Region Dashboards":"لوحات معلومات المناطق","Region dashboard":"لوحة معلومات المنطقة",Regions:"المناطق","Regions List":"قائمة المناطق",Religion:"الدين","Search names, country/continent, religions...":"ابحث عن الأسماء، الدولة/القارة، الأديان...","See %region% dashboard":"عرض لوحة معلومات %region%","See All":"عرض جميع العناصر",Select:"اختر","Select View":"اختر العرض","Show Filters":"إظهار عوامل التصفية","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"توجد %count% مجموعة شعبية في %country%. تحقق من الخريطة لمعرفة المجموعات الشعبية الواقعة على حدود هذه الدولة أيضًا.",Total:"المجموع","Type to search...":"اكتب ما تريد البحث عنه...","Unengaged people groups":"المجموعات الشعبية غير المَخْدُومَة","View country posters":"عرض ملصقات الدولة",Views:"العروض","WAGF Block":"كتلة WAGF","WAGF Region":"منطقة WAGF","people groups adopted":"مجموعات شعبية متبنَّاة","people groups engaged":"مجموعات شعبية مَخْدُومَة","Outside this region":"خارج هذه المنطقة",Pray:"صلّي","Loading region dashboards…":"جارٍ تحميل لوحات المناطق…","No regions found.":"لم يتم العثور على مناطق.","Region data could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل بيانات المناطق. هذه مشكلة في الاتصال، وليست تصفية.","People groups could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل الشعوب. هذه مشكلة في الاتصال، وليست تصفية.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},Tb={placeholder:"شعب، مكان، لغة، ديانة",placeholderNoPlaces:"شعب، لغة، ديانة (البحث عن الأماكن يتطلب رمز Mapbox)",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"},upg100Placeholder:"ابحث عن شعب أو قائمة UPG-100 أو منطقة…"},Eb={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة",upg100Region:"المنطقة",upg100Zone:"قوائم UPG-100",upg100Group:"مجموعة شعبية",selectView:"اختر العرض",views:"العروض",prayerResources:"موارد الصلاة",map:"الخريطة",countryPosters:"ملصقات الدول"},Rb={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden",searchPeopleGroups:"Volksgruppen suchen",resetAllFilters:"Alle Filter und die Suche zurücksetzen",selectAllRows:"Alle Zeilen auswählen",deselectAllRows:"Auswahl aller Zeilen aufheben"},Nb={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",posterMap:"Posterkarte",prayerList:"Gebetsliste",cardDeck:"Kartenset",printOptions:"Druckoptionen",showOnMap:"Auf der Karte zeigen",close:"Schließen",showOnMapAria:"{label} auf der Karte zeigen",cardStockAria:"Größe der Gebetskarte",previewPrintPoster:"Vorschau und Druck des Posters {label}",share:"Teilen",shareSteps:["Binde diese Karte auf deiner Website ein","Erstelle eine Liste der Websites in deiner Stadt","Zeige ihnen, wie sie sie ebenfalls einbinden","Zeige ihnen, wie sie es anderen beibringen","Lasst uns Karten überall vermehren – für Jesus!"],clearSelection:"Auswahl aufheben",noOptions:"Keine Optionen gefunden",renderingLocal:"Ein druckfähiges Bild wird in deinem Browser erzeugt — es wird nichts hochgeladen.",postersPerRow:"Poster pro Zeile"},Mb={research_controls:"Forschungssteuerung",clustering:"Clustering",filters:"Filter",pin_dim:"Pin-Transparenz",export_poster:"Poster exportieren…",reload_data:"Daten neu laden",off:"Aus",native:"Nativ",mst:"MST",network:"Netzwerk",off_desc:"Jeden Pin einzeln anzeigen",native_desc:"Mapbox-Kreiscluster (am schnellsten)",mst_desc:"Affinitätsnetze über minimalen Spannbaum",network_desc:"Verbindungslinien zum nächsten Nachbarn",search_languages:"Sprachen suchen…",search_religions:"Religionen suchen…",reset_all:"Alles zurücksetzen",no_languages:"Noch keine Sprachen geladen",no_religions:"Noch keine Religionen geladen",unadopted:"Nicht adoptiert",min:"min",max:"max",adopted:"Adoptiert",adoption:"Adoption",engaged:"Engagiert",engagement:"Engagement",unengaged:"Braucht Engagement",language:"Sprache",religion:"Religion",population:"Bevölkerung",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",close:"Schließen",clear:"Zurücksetzen",map_controls:"Kartensteuerung"},Fb={bloc:"Affinitätsblock",gospel_access:"Zugang zum Evangelium",people:"Völker",people_name:"Volk (Name)",praying:"Betend",religion_family:"Religionsfamilie",search_language:"Sprache suchen",search_people:"Volk suchen",search_place:"Ort suchen",search_religion:"Religion suchen",upgs_in_scope:"UPGs im Bereich",countries_touched:"berührte Länder",unreached:"unerreicht",sum_population:"Σ Bevölkerung",sum_praying:"Σ Betende",charts:"Diagramme",table:"Tabelle",cluster:"Cluster",country:"Land",engagement:"Engagement",language:"Sprache",language_family:"Sprachfamilie",people_group:"Volk",population:"Bevölkerung",prayer:"Gebet",region:"Region",religion:"Religion",status:"Status",adopted:"Adoptiert",filters:"Filter",gospel_resources:"Evangeliumsressourcen",map:"Karte",search_placeholder:"Volksgruppen, Orte, Sprachen, Religionen suchen…",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",map_controls:"Kartensteuerung",close:"Schließen",clear:"Zurücksetzen",dashboard_title:"Big-Picture-Forschungsdashboard",align_dashboard:"Layout ausrichten",align_dashboard_tip:"Das Dashboard-Layout auf die Standardausrichtung zurücksetzen",selected:"Ausgewählt",world:"Welt",vertical_legend:"Vertikale Legende",groups_in_scope:"Volksgruppen im Bereich",filter_by:"Filtern nach",remove_filter:"Filter entfernen",groups:"Volksgruppen",expand:"Aufklappen",collapse:"Zuklappen",place:"Ort",export_csv:"CSV exportieren",detail:"Details",detail_empty:"Wählen Sie eine Volksgruppe, um Details zu sehen",heartbeat_zone:"Herzschlag-Zone",top_countries:"Top-Länder",select_all:"Alle auswählen",expand_table:"Tabelle ausklappen",collapse_table:"Tabelle einklappen – Karte vergrößern",group:"Volksgruppe",deselect_all:"Auswahl aufheben"},Ib={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Ob={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Die erläuternden Hinweise unten sind auf Englisch."},mode:{gap:"Lücke",coverage:"Gefundene Ressourcen"},search:{placeholder:"Volksgruppe, Sprache oder ISO-Code suchen",clear:"Suche löschen",none:"Nichts passt zu diesem Namen, dieser Sprache oder diesem Code.",placeholderShort:"Gruppe, Sprache oder ISO-Code"},legend:{title:"Unerreichte Volksgruppen ohne gefundene Evangeliums-Ressource",band60:"60 %+ ohne jede Ressource",band30:"30–59 %",bandSome:"einige Gruppen",bandAll:"alle Gruppen haben etwas",tier2:"Bibeltext und Film",tier1:"etwas gefunden",tier0:"nichts gefunden",hnr:"können hören, kein Text",showAll:"Alle Gruppen anzeigen",titleCoverage:"Unerreichte Volksgruppen mit einer gefundenen Evangeliums-Ressource",cov80:"80 %+ haben etwas",cov50:"50–79 %",cov1:"1–49 %",cov0:"für keinen etwas gefunden",tallyEach:"Jeder",tallyIs:"ist EINE Volksgruppe —",tallyOf:"davon,",tallyLink:"mit einem Link",doxa0:"alle haben etwas",doxa1:"1–4 ohne",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 erreicht",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa-Volksgruppen auf dieser Karte",notPlaced:"auf der Liste, noch nicht verortet",outOfScope:"keine Doxa-Volksgruppen — nicht eingefärbt"},tabs:{groups:"Größte Gruppen",countries:"Nach Land",regions:"Nach Region",noprayer:"Niemand betet",hnr:"Hören ja, Text nein"},stat:{language:"Sprache",population:"Bevölkerung",countries:"Länder",peopleGroups:"Volksgruppen",noResource:"Keine Ressource gefunden",peopleAffected:"Betroffene Menschen",haveScripture:"Haben Bibeltext",haveFilm:"Haben Film",haveAudio:"Haben Hörbibel",signLanguages:"Gebärdensprachen",growingUnreached:"Wachsend & unerreicht",deathsDay:"Geschätzte Todesfälle/Tag"},sheet:{ownLanguage:"In ihrer eigenen Sprache",close:"Schließen",loading:"Ressourcen werden geladen…",pray:"Betet für",everyResource:"Alle Ressourcen auf",alsoSpeak:"Sprechen ebenfalls"},res:{scripture:"Bibeltext",film:"Film",audio:"Audio",bibleVideo:"Bibelvideo",bibleStories:"Open Bible Stories",gospelAudio:"Evangeliums-Audio",gospelPresentation:"Evangeliums-Darstellung",scriptureEarth:"Scripture Earth",training:"Jüngerschaftstraining",jesusFilm:"JESUS Film",audioScripture:"Audio-Bibeltext",bibleStoriesPlain:"Bibelgeschichten"},state:{noneFound:"nichts gefunden",noneAtFcbh:"nichts bei FCBH",noneAtGrn:"nichts bei GRN",notInZume:"nicht in Zumes 54",linkChecked:"Link geprüft",unchecked:"ungeprüft",linkDead:"Link tot",wrongLanguage:"falsche Sprache",varietyNotStated:"(Varietät nicht angegeben)",inLanguage:"auf"},guide:{dotVsCountry:"Ein Punkt ist EINE Volksgruppe von Doxa mit ihrer eigenen Sprache; ein Land ist die ANZAHL dieser Gruppen.",noneFoundShort:"„Nichts gefunden“ heißt: nicht in den geprüften Quellen — nie ein Beweis, dass es nichts gibt.",tapCountry:"Tippen Sie auf ein Land, um die Ressourcen Gruppe für Gruppe zu sehen."},tables:{title:"Evangeliums-Ressourcen — Daten",showing:"Zeige",of:"von",for:"für",filteredTo:"Gefiltert nach",showAll:"Alle Ressourcen zeigen",t_doxa:"Doxa — Zugang zum Evangelium",t_links:"Jede Ressource + Link",t_nothing:"Wo nichts gefunden wurde",t_countrygap:"Die Lücke nach Land",t_translation:"Hören ja, Text nein",t_translationcountry:"Wo übersetzen",t_province:"Zugang zum Evangelium nach Provinz — Indien und China",t_gaps:"Lücken & Chancen",t_bridges:"Stadt-Brücken",t_deaf:"Die Gehörlosen-Lücke",t_resources:"Ressourcen nach Volksgruppe",t_languages:"Sprachen nach Land",t_growth:"Zugang vs. Bevölkerungswachstum"},pages:{listTitle:"Evangeliums-Ressourcen nach Sprache",chartsTitle:"Evangeliums-Ressourcen — nach Sprache",loadingTables:"Ressourcentabellen werden geladen…"},list:{noText:"Kein Bibeltext",hasScripture:"Hat Bibeltext",allLanguages:"Alle Sprachen",peopleGroup:"Volksgruppe",peopleGroups:"Volksgruppen",scriptureHere:"Bibeltext in dieser Sprache"},columns:{"People group":"Volksgruppe",Country:"Land",Region:"Region",Language:"Sprache",Population:"Bevölkerung",Religion:"Religion","Gospel access":"Zugang zum Evangelium",Resources:"Ressourcen",Scripture:"Bibeltext","Bible video":"Bibelvideo","Gospel presentation":"Evangeliums-Darstellung",Countries:"Länder","People groups":"Volksgruppen"},charts:{scriptureAny:"Bibeltext (beliebig)",fullBible:"Vollbibel",newTestament:"Neues Testament",filmAny:"Film (beliebig)",nothingInPools:"Nichts in den geprüften Quellen gefunden",nothingInPoolsLower:"nichts in den geprüften Quellen gefunden",noResourceInPools:"keine Ressource in den geprüften Quellen gefunden",aResourceFound:"eine Ressource gefunden",tabCoverage:"Ressourcenabdeckung",tabGap:"Größte Lücken",keyScripture:"Bibeltext",keyFilmStories:"Film / Geschichten",keyAudioEtc:"Audio / Präsentation / Schulung",unresolvedCode:"Code außerhalb ISO 639-3 — ungeklärt, nicht gemessen",c1Title:"Was GEFUNDEN wurde, nach Ressourcentyp",c1Sub:"Über alle {n} Sprachen im Datenbestand. Jeder Balken zählt SPRACHEN, nicht Volksgruppen.",c1Unit:"Sprachen, in denen die Ressource in den geprüften Quellen gefunden wurde",c2Title:"Größte Bevölkerungen ohne jeden Fund",c2Sub:"Die {n} Sprachen ohne Bibeltext und ohne Film in den geprüften Quellen, sortiert nach der Bevölkerung der Volksgruppen, die sie sprechen.",c2Unit:"Menschen in den Volksgruppen, deren PRIMÄRE Sprache dies ist — nicht Sprecher der Sprache",c3Title:"Länder mit den meisten unversorgten Sprachen",c3Sub:"Die {n} Länder mit den meisten Sprachen, für die nichts gefunden wurde. Die Balkenlänge ist jede im Land vorhandene Sprache.",c3Unit:"im Land vorhandene Sprachen (eine grenzüberschreitende Sprache zählt in jedem Land)"}},Db={search:"Volksgruppen suchen…",hide_filters:"Filter ausblenden",show_filters:"Filter anzeigen",total:"Gesamt",showing:"Angezeigt",load_more:"Mehr laden",full_profile:"Vollständiges Profil",wagf_region:"Region",wagf_block:"Affinitätsblock",rop1:"Volk",religion:"Religion",exact_filter:"Exakt",clear_all:"Alle löschen",loading:"Wird geladen…",no_results:"Keine Volksgruppen entsprechen diesem Filter.",type_to_search:"Zum Suchen tippen...",load_failed:"Die Daten konnten nicht geladen werden. Das ist ein Verbindungsproblem, nicht Ihr Filter.",search_people_or_countries:"Volksgruppen oder Länder suchen…"},Bb={title:{adoption:"Adoptionsfortschritt",affinityBlocs:"Affinitätsblöcke",doxaRegions:"Doxa-Regionen",engagement:"Engagement-Fortschritt",gospelResources:"Evangeliumsressourcen",languageFamilies:"Sprachfamilien",prayer:"Gebetsfortschritt",upg100List:"Meine UPG-100-Liste"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe",default:"Legende"},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",name:"Name"},footer:{total:"Gesamt"},sortByUpgs:"Nach UUPGs sortieren",sortByPop:"Nach Bevölkerung sortieren",colLabel:{religion:"UUPG-Religionen",prayer:"Gebetsstatus",engagement:"Engagement-Status",adoption:"Adoptionsstatus",status:"Status"},titleBar:{legend:"Legende",peopleGroups:"Völker",wagfRegions:"WAGF-Regionen",languages:"Sprachen"},tabInfo:{upg100Region:"Region — sortiert die UPG-100-Listen nach Weltgegend (Afrika, Indien, Naher Osten, Gehörlose, …). Die Zahlen sind die UUPGs und die Bevölkerung aller darunterliegenden Listen zusammen.",upg100Zone:"UPG-100-Listen — jede ist eine Gebetsliste der unerreichten Volksgruppen eines Gebiets und das, was die Karte zeichnet und einfärbt. Jede Liste wird als eigenes Heft gedruckt.",upg100Group:"Volksgruppe — die einzelnen unerreichten Gruppen innerhalb einer Liste, größter Gebetsbedarf zuerst. Jeder Kartenpunkt ist eine davon."},a11y:{expandRow:"{label} ausklappen",collapseRow:"{label} einklappen",clearSelection:"Auswahl aufheben"},export:{poster:"Plakat",packet:"Heft"},noDataAtThisLevel:"Keine Daten auf dieser Ebene",exportButton:"Exportieren",exportSelection:"Auswahl exportieren"},Gb={menuComingSoon:"Menü folgt in Kürze",pinHint:{tapDot:"Tippe auf einen farbigen Punkt — jemand braucht noch Gebet"},upg100WallHeading:"Meine UPG-100-Liste — Gebetslisten und Poster",upg100WallTag:"Gebetsmobilisierung",upg100WallIntro:"Teilen Sie die Gebetsaufgabe in Gruppen zu fünfzig und hundert auf — so wie Jesus die 5.000 speiste (Lukas 9,14). Jedes Poster ist eine 100er-Liste, die Sie beten, drucken und an die Wand hängen können — und für sie mit dem Namen ihrer Volksgruppe beten."},jb={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},zb={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},Ub={"%count% people groups in %countries% countries":"%count% Volksgruppen in %countries% Ländern","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% hat %count% Volksgruppen in %countries% Ländern. Die Farbe jedes Punktes zeigt, wie viele Menschen für diese Volksgruppe beten.","1+ People Praying":"1+ Menschen beten","100+ People Praying":"100+ Menschen beten",Adopted:"Adoptiert","Adoption Progress":"Adoptionsfortschritt","All Regions":"Alle Regionen","Alternate Names":"Alternative Namen","Choose a region":"Region auswählen","Clear All":"Alle löschen",Countries:"Länder","Countries in this region":"Länder in dieser Region",Country:"Land",Engaged:"Engagiert","Engagement Progress":"Fortschritt der Arbeit vor Ort","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Jede einzelne der völlig unerreichten Volksgruppen soll von einer Ortsgemeinde adoptiert werden, durch Beten, Geben und Senden","Exact Search":"Exakte Suche","Find unreached people groups by region and country.":"Finde unerreichte Volksgruppen nach Region und Land.","Full Profile":"Vollständiges Profil",Goal:"Ziel","Hide Filters":"Filter ausblenden","Hide country posters":"Länderposter ausblenden",Intercessors:"Fürbitter","Load More":"Mehr laden","Loading results...":"Ergebnisse werden geladen...",Map:"Karte","Mobilize 100+ people praying daily for each DOXA people group":"Mobilisiere 100+ Menschen, die täglich für jede DOXA-Volksgruppe beten","No One Praying":"Niemand betet","No options found":"Keine Standorte gefunden","No poster has been generated for this country yet.":"Für dieses Land wurde noch kein Poster erstellt.","No unengaged people groups by 2033":"Dass es bis 2033 keine völlig unerreichte Volksgruppe mehr gibt","Not Adopted":"noch nicht adoptiert",Other:"Andere","Page Not Found":"Seite nicht gefunden","People Group":"Personengruppe","People Groups":"Volksgruppen","People committed to praying":"Menschen, die sich dem Beten verpflichtet haben","Pick a region above, or click any dot to open that people group's country.":"Wählen Sie oben eine Region aus oder klicken Sie auf einen Punkt, um das Land dieser Volksgruppe zu öffnen.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Wählen Sie im Tab „Regionenliste“ eine Region oder ein Land aus, um dieses Dashboard einzugrenzen.",Population:"Bevölkerung","Prayer Coverage":"Gebetsabdeckung","Prayer coverage progress":"Fortschritt der Gebetsabdeckung","Region Dashboards":"Regionen-Dashboards","Region dashboard":"Regions-Dashboard",Regions:"Regionen","Regions List":"Regionenliste",Religion:"Primäre Religion","Search names, country/continent, religions...":"Suche nach Namen, Land/Kontinent, Religionen...","See %region% dashboard":"Dashboard anzeigen: %region%","See All":"Alle anzeigen",Select:"Auswählen","Select View":"Ansicht auswählen","Show Filters":"Filter anzeigen","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% gibt es %count% Volksgruppen. Sieh auch auf der Karte nach den Volksgruppen an der Grenze dieses Landes.",Total:"Gesamt","Type to search...":"Geben Sie etwas ein, um danach zu suchen","Unengaged people groups":"Unberührte Volksgruppen","View country posters":"Länderposter ansehen",Views:"Ansichten","WAGF Block":"WAGF-Block","WAGF Region":"WAGF-Region","people groups adopted":"adoptierte Volksgruppen","people groups engaged":"engagierte Volksgruppen","Outside this region":"Außerhalb dieser Region",Pray:"Ich bete","Loading region dashboards…":"Regions-Dashboards werden geladen…","No regions found.":"Keine Regionen gefunden.","Region data could not be loaded. This is a connection problem, not a filter.":"Regionsdaten konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","People groups could not be loaded. This is a connection problem, not a filter.":"Volksgruppen konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Die Karte konnte nicht starten. Das ist ein Karten-Token- oder Verbindungsproblem, kein Filter — die Zahlen oben sind davon nicht betroffen."},Kb={placeholder:"Volk, Ort, Sprache, Religion",placeholderNoPlaces:"Volk, Sprache, Religion (Ortssuche braucht ein Mapbox-Token)",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"},kinds:{people:"Volk + Land",peopleGroup:"Volk",bloc:"Affinitätsblock",cluster:"Völkercluster",country:"Land",region:"Region",family:"Sprachfamilie",languageKind:"Sprache",dialect:"Dialekt",religionKind:"Religion"},upg100Placeholder:"Volksgruppe, UPG-100-Liste oder Region suchen…"},Hb={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",upg100Region:"Region",upg100Zone:"UPG-100-Listen",upg100Group:"Volksgruppe",selectView:"Ansicht wählen",views:"Ansichten",prayerResources:"Gebetsressourcen",map:"Karte",countryPosters:"Länderposter"},Vb={backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend",searchPeopleGroups:"Search people groups",resetAllFilters:"Reset all filters and search",selectAllRows:"Select all rows",deselectAllRows:"Deselect all rows"},Wb={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",posterMap:"Poster Map",prayerList:"Prayer List",cardDeck:"Card Deck",printOptions:"Print Options",showOnMap:"Show on map",close:"Close",showOnMapAria:"Show {label} on the map",cardStockAria:"Prayer card size",previewPrintPoster:"Preview & print the {label} poster",clearSelection:"Clear selection",noOptions:"No options found",renderingLocal:"Rendering a print-quality image in your browser — nothing is uploaded.",postersPerRow:"Posters per row"},qb={research_controls:"Research controls",clustering:"Clustering",filters:"Filters",pin_dim:"Pin dim",export_poster:"Export poster…",reload_data:"Reload data",off:"Off",native:"Native",mst:"MST",network:"Network",off_desc:"Show every pin individually",native_desc:"Mapbox circle clusters (fastest)",mst_desc:"Minimum-spanning-tree affinity webs",network_desc:"Nearest-neighbor connection lines",search_languages:"Search languages…",search_religions:"Search religions…",reset_all:"Reset all",no_languages:"No languages loaded yet",no_religions:"No religions loaded yet",unadopted:"Unadopted",min:"min",max:"max",adopted:"Adopted",adoption:"Adoption",engaged:"Engaged",engagement:"Engagement",unengaged:"Unengaged",language:"Language",religion:"Religion",population:"Population",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",close:"Close",clear:"Clear",map_controls:"Research map controls"},Yb={bloc:"Bloc",gospel_access:"Gospel Access",people:"People",people_name:"People (name)",praying:"Praying",religion_family:"Religion Family",search_language:"Search language",search_people:"Search people",search_place:"Search place",search_religion:"Search religion",upgs_in_scope:"UPGs in scope",countries_touched:"countries touched",unreached:"unreached",sum_population:"Σ population",sum_praying:"Σ praying",charts:"Charts",table:"Table",cluster:"Cluster",country:"Country",engagement:"Engagement",language:"Language",language_family:"Language Family",people_group:"People Group",population:"Population",prayer:"Prayer",region:"Region",religion:"Religion",status:"Status",adopted:"Adopted",filters:"Filters",gospel_resources:"Gospel Resources",map:"Map",search_placeholder:"Search people groups, place, language, religion…",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",map_controls:"Research map controls",close:"Close",clear:"Clear",dashboard_title:"Big Picture Research Dashboard",align_dashboard:"Align Dashboard",align_dashboard_tip:"Reset the dashboard layout to its default alignment",selected:"Selected",world:"World",vertical_legend:"Vertical Legend",groups_in_scope:"groups in scope",filter_by:"Filter by",remove_filter:"Remove filter",groups:"groups",expand:"Expand",collapse:"Collapse",place:"Place",export_csv:"Export CSV",detail:"Detail",detail_empty:"Select a people group to see detail",heartbeat_zone:"heartbeat zone",top_countries:"Top countries",select_all:"Select all",expand_table:"Expand table",collapse_table:"Collapse table — grow the map",group:"group",deselect_all:"Deselect all"},Zb={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},Xb={_note:'SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file: it carries doctrinal and statistical precision — which pools were searched, what "nothing found" does and does not claim, why Open Bible Stories is not Scripture — and a mistranslated caveat there would read as authoritative. `prose.english` is the one translated line that says so. When a human-reviewed translation of the prose exists, it gets its own area file and that line comes out.',prose:{english:"Explanatory notes below are in English."},mode:{gap:"Gap",coverage:"Resources found"},search:{placeholder:"Find a people group, language or ISO code",clear:"Clear search",none:"Nothing matches that name, language or code.",placeholderShort:"Group, language or ISO code"},legend:{title:"Unengaged groups with no gospel resource found",band60:"60%+ with nothing found",band30:"30–59%",bandSome:"some groups",bandAll:"all groups have some",tier2:"Scripture and film",tier1:"some resource found",tier0:"nothing found",hnr:"can hear it, no text found",showAll:"Show all groups",titleCoverage:"Unengaged groups with some gospel resource found",cov80:"80%+ have something found",cov50:"50–79%",cov1:"1–49%",cov0:"nothing found for any",tallyEach:"Each",tallyIs:"is ONE people group —",tallyOf:"of them,",tallyLink:"with a link",doxa0:"all have something",doxa1:"1–4 with nothing",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 reached",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa people groups on this map",notPlaced:"on the roster, not yet placed",outOfScope:"no Doxa people groups — not coloured"},tabs:{groups:"Largest groups",countries:"By country",regions:"By region",noprayer:"Nobody praying",hnr:"Can hear, no text"},stat:{language:"Language",population:"Population",countries:"Countries",peopleGroups:"People groups",noResource:"No resource found",peopleAffected:"People affected",haveScripture:"Have scripture",haveFilm:"Have film",haveAudio:"Have audio Scripture",signLanguages:"Sign languages",growingUnreached:"Growing & unreached",deathsDay:"Est. deaths/day"},sheet:{ownLanguage:"In their own language",close:"Close",loading:"Loading resources…",pray:"Pray for",everyResource:"Every resource in",alsoSpeak:"Also speak"},res:{scripture:"Scripture",film:"Film",audio:"Audio",bibleVideo:"Bible video",bibleStories:"Open Bible Stories",gospelAudio:"Gospel audio",gospelPresentation:"Gospel presentation",scriptureEarth:"Scripture Earth",training:"Discipleship training",jesusFilm:"JESUS Film",audioScripture:"Audio Scripture",bibleStoriesPlain:"Bible Stories"},state:{noneFound:"none found",noneAtFcbh:"none found at FCBH",noneAtGrn:"none found at GRN",notInZume:"not in Zume's 54",linkChecked:"link checked",unchecked:"unchecked",linkDead:"link dead",wrongLanguage:"wrong language",varietyNotStated:"(variety not stated)",inLanguage:"in"},guide:{dotVsCountry:"A dot is ONE of Doxa's people groups and its own language; a country is a COUNT of those groups.",noneFoundShort:"“None found” means not present in the pools this build checked — never proof that nothing exists.",tapCountry:"Tap a country to see the actual resources, group by group."},tables:{title:"Gospel Resources — Data",showing:"Showing",of:"of",for:"for",filteredTo:"Filtered to",showAll:"Show all resources",t_doxa:"Doxa — Gospel Access",t_links:"Every Resource + Link",t_nothing:"Where Nothing Was Found",t_countrygap:"The Gap by Country",t_translation:"Can Hear It, No Text",t_translationcountry:"Where to Translate",t_province:"Gospel access by province — India and China",t_gaps:"Gaps & Opportunities",t_bridges:"City Bridges",t_deaf:"The Deaf Gap",t_resources:"Resources by People Group",t_languages:"Languages by Country",t_growth:"Access vs Population Growth"},pages:{listTitle:"Gospel Resources by Language",chartsTitle:"Gospel Resources — by Language",loadingTables:"Loading resource tables…"},list:{noText:"No text Scripture",hasScripture:"Has scripture",allLanguages:"All languages",peopleGroup:"people group",peopleGroups:"people groups",scriptureHere:"Scripture in this language"},columns:{"People group":"People group",Country:"Country",Region:"Region",Language:"Language",Population:"Population",Religion:"Religion","Gospel access":"Gospel access",Resources:"Resources",Scripture:"Scripture","Bible video":"Bible video","Gospel presentation":"Gospel presentation",Countries:"Countries","People groups":"People groups"},charts:{scriptureAny:"Scripture (any)",fullBible:"Full Bible",newTestament:"New Testament",filmAny:"Film (any)",nothingInPools:"Nothing found in pools checked",nothingInPoolsLower:"nothing found in pools checked",noResourceInPools:"no resource found in pools checked",aResourceFound:"a resource found",tabCoverage:"Resource coverage",tabGap:"Largest gaps",keyScripture:"scripture",keyFilmStories:"film / stories",keyAudioEtc:"audio / presentation / training",unresolvedCode:"code outside ISO 639-3 — unresolved, not measured",c1Title:"What was FOUND, by resource type",c1Sub:"Across all {n} languages in the corpus. Each bar counts LANGUAGES, not people groups.",c1Unit:"languages where the resource was found in the pools checked",c2Title:"Largest populations with nothing found",c2Sub:"The {n} languages with no scripture and no film in the pools checked, ranked by the population of the people groups who speak them.",c2Unit:"people in the people groups whose PRIMARY language this is — not speakers of the language",c3Title:"Countries with the most unserved languages",c3Sub:"The {n} countries with the most languages that have nothing found. Bar length is every language present in that country.",c3Unit:"languages present in the country (a cross-border language counts in each)"}},Jb={search:"Search people groups…",hide_filters:"Hide Filters",show_filters:"Show Filters",total:"Total",showing:"Showing",load_more:"Load More",full_profile:"Full Profile",wagf_region:"Region",wagf_block:"Affinity Block",rop1:"People Group",religion:"Religion",exact_filter:"Exact",clear_all:"Clear All",loading:"Loading…",no_results:"No people groups match this filter.",type_to_search:"Type to search...",load_failed:"People-group data could not be loaded. This is a connection problem, not your filter.",search_people_or_countries:"Search people groups or countries…"},Qb={title:{adoption:"Adoption Progress",affinityBlocs:"Affinity Blocks",doxaRegions:"Doxa Regions",engagement:"Engagement Progress",gospelResources:"Gospel Resources",languageFamilies:"Language Families",prayer:"Prayer Progress",upg100List:"My UPG 100 List"},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"},tabInfo:{upg100Region:"Region — sort the UPG-100 lists by world area (Africa, India, Middle East, Deaf, …). Counts are the UUPGs and population summed across every list beneath it.",upg100Zone:"UPG-100 Lists — each one is a prayer list of the unreached people groups in an area, and is what the map paints and colours. Every list prints as its own packet.",upg100Group:"People Group — the individual unreached groups inside a list, largest prayer need first. Each map dot is one of these."},a11y:{expandRow:"Expand {label}",collapseRow:"Collapse {label}",clearSelection:"Clear selection"},export:{poster:"Poster",packet:"Packet"},noDataAtThisLevel:"No data at this level",exportButton:"Export",exportSelection:"Export selection"},ey={menuComingSoon:"Menu coming soon",pinHint:{tapDot:"Tap a coloured dot — someone still needs prayer"},upg100WallHeading:"My UPG 100 List — Prayer Lists & Posters",upg100WallTag:"Prayer Mobilization",upg100WallIntro:"Hand away the prayer task in clusters of fifties and hundreds — the way Jesus fed the 5,000 (Luke 9:14). Each poster is a 100-list you can pray, print, and put on a wall — praying for them by their people group name."},ty={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},oy={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},ny={"%count% people groups in %countries% countries":"%count% people groups in %countries% countries","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.","1+ People Praying":"1+ People Praying","100+ People Praying":"100+ People Praying",Adopted:"Adopted","Adoption Progress":"Adoption Progress","All Regions":"All Regions","Alternate Names":"Alternate Names","Choose a region":"Choose a region","Clear All":"Clear All",Countries:"Countries","Countries in this region":"Countries in this region",Country:"Country",Engaged:"Engaged","Engagement Progress":"Engagement Progress","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Every unengaged people group adopted by a church committed to prayer, giving, and sending","Exact Search":"Exact Search","Find unreached people groups by region and country.":"Find unreached people groups by region and country.","Full Profile":"Full Profile",Goal:"Goal","Hide Filters":"Hide Filters","Hide country posters":"Hide country posters",Intercessors:"Intercessors","Load More":"Load More","Loading results...":"Loading results...",Map:"Map","Mobilize 100+ people praying daily for each DOXA people group":"Mobilize 100+ people praying daily for each DOXA people group","No One Praying":"No One Praying","No options found":"No options found","No poster has been generated for this country yet.":"No poster has been generated for this country yet.","No unengaged people groups by 2033":"No unengaged people groups by 2033","Not Adopted":"Not Adopted",Other:"Other","Page Not Found":"Page Not Found","People Group":"People Group","People Groups":"People Groups","People committed to praying":"People committed to praying","Pick a region above, or click any dot to open that people group's country.":"Pick a region above, or click any dot to open that people group's country.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Pick a region or a country on the Regions List tab to narrow this dashboard.",Population:"Population","Prayer Coverage":"Prayer Coverage","Prayer coverage progress":"Prayer coverage progress","Region Dashboards":"Region Dashboards","Region dashboard":"Region dashboard",Regions:"Regions","Regions List":"Regions List",Religion:"Religion","Search names, country/continent, religions...":"Search names, country/continent, religions...","See %region% dashboard":"See %region% dashboard","See All":"See All",Select:"Select","Select View":"Select View","Show Filters":"Show Filters","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.",Total:"Total","Type to search...":"Type to search...","Unengaged people groups":"Unengaged people groups","View country posters":"View country posters",Views:"Views","WAGF Block":"WAGF Block","WAGF Region":"WAGF Region","people groups adopted":"people groups adopted","people groups engaged":"people groups engaged","Outside this region":"Outside this region",Pray:"Pray","Loading region dashboards…":"Loading region dashboards…","No regions found.":"No regions found.","Region data could not be loaded. This is a connection problem, not a filter.":"Region data could not be loaded. This is a connection problem, not a filter.","People groups could not be loaded. This is a connection problem, not a filter.":"People groups could not be loaded. This is a connection problem, not a filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected."},ay={placeholder:"People, place, language, religion",placeholderNoPlaces:"People, language, religion (place search needs a Mapbox token)",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"},upg100Placeholder:"Search people group, UPG-100 list, or region…"},sy={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",upg100Region:"Region",upg100Zone:"UPG-100 Lists",upg100Group:"People Group",selectView:"Select View",views:"Views",prayerResources:"Prayer Resources",map:"Map",countryPosters:"Country Posters"},ry={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda",searchPeopleGroups:"Buscar pueblos",resetAllFilters:"Restablecer todos los filtros y la búsqueda",selectAllRows:"Seleccionar todas las filas",deselectAllRows:"Deseleccionar todas las filas"},iy={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",posterMap:"Mapa del cartel",prayerList:"Lista de oración",cardDeck:"Baraja de tarjetas",printOptions:"Opciones de impresión",showOnMap:"Ver en el mapa",close:"Cerrar",showOnMapAria:"Ver {label} en el mapa",cardStockAria:"Tamaño de la tarjeta de oración",previewPrintPoster:"Previsualizar e imprimir el cartel de {label}",share:"Compartir",shareSteps:["Inserta este mapa en tu sitio","Haz una lista de los sitios web de tu ciudad","Enséñales a insertarlo también","Enséñales a enseñar a otros a insertarlo","¡Multiplica los mapas por todas partes para Jesús!"],clearSelection:"Borrar la selección",noOptions:"No se encontraron opciones",renderingLocal:"Se está generando una imagen con calidad de impresión en tu navegador: no se sube nada.",postersPerRow:"Pósteres por fila"},ly={research_controls:"Controles de investigación",clustering:"Agrupación",filters:"Filtros",pin_dim:"Atenuar puntos",export_poster:"Exportar póster…",reload_data:"Recargar datos",off:"Desactivado",native:"Nativo",mst:"MST",network:"Red",off_desc:"Mostrar cada punto por separado",native_desc:"Grupos circulares de Mapbox (lo más rápido)",mst_desc:"Redes de afinidad por árbol de expansión mínima",network_desc:"Líneas de conexión al vecino más cercano",search_languages:"Buscar idiomas…",search_religions:"Buscar religiones…",reset_all:"Restablecer todo",no_languages:"Aún no se han cargado idiomas",no_religions:"Aún no se han cargado religiones",unadopted:"No adoptado",min:"mín",max:"máx",adopted:"Adoptado",adoption:"Adopción",engaged:"Comprometido",engagement:"Compromiso",unengaged:"Necesita implicación",language:"Idioma",religion:"Religión",population:"Población",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",close:"Cerrar",clear:"Borrar",map_controls:"Controles del mapa"},cy={bloc:"Bloque de afinidad",gospel_access:"Acceso al evangelio",people:"Pueblos",people_name:"Pueblo (nombre)",praying:"Orando",religion_family:"Familia religiosa",search_language:"Buscar idioma",search_people:"Buscar pueblo",search_place:"Buscar lugar",search_religion:"Buscar religión",upgs_in_scope:"UPG en el ámbito",countries_touched:"países alcanzados",unreached:"no alcanzados",sum_population:"Σ población",sum_praying:"Σ orando",charts:"Gráficos",table:"Tabla",cluster:"Clúster",country:"País",engagement:"Compromiso",language:"Idioma",language_family:"Familia lingüística",people_group:"Pueblo",population:"Población",prayer:"Oración",region:"Región",religion:"Religión",status:"Estado",adopted:"Adoptado",filters:"Filtros",gospel_resources:"Recursos del Evangelio",map:"Mapa",search_placeholder:"Buscar pueblos, lugares, idiomas, religiones…",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",map_controls:"Controles del mapa",close:"Cerrar",clear:"Borrar",dashboard_title:"Panel de investigación general",align_dashboard:"Alinear panel",align_dashboard_tip:"Restablecer la disposición del panel a su alineación predeterminada",selected:"Seleccionado",world:"Mundo",vertical_legend:"Leyenda vertical",groups_in_scope:"pueblos en el ámbito",filter_by:"Filtrar por",remove_filter:"Quitar filtro",groups:"pueblos",expand:"Expandir",collapse:"Contraer",place:"Lugar",export_csv:"Exportar CSV",detail:"Detalle",detail_empty:"Selecciona un pueblo para ver el detalle",heartbeat_zone:"zona del latido",top_countries:"Países principales",select_all:"Seleccionar todo",expand_table:"Expandir tabla",collapse_table:"Contraer tabla — ampliar el mapa",group:"pueblo",deselect_all:"Deseleccionar todo"},uy={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."}},py={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Las notas explicativas siguientes están en inglés."},mode:{gap:"Brecha",coverage:"Recursos encontrados"},search:{placeholder:"Busca un pueblo, idioma o código ISO",clear:"Borrar búsqueda",none:"Nada coincide con ese nombre, idioma o código.",placeholderShort:"Pueblo, idioma o código ISO"},legend:{title:"Pueblos no alcanzados sin ningún recurso del evangelio",band60:"60 %+ sin nada encontrado",band30:"30–59 %",bandSome:"algunos pueblos",bandAll:"todos los pueblos tienen algo",tier2:"Escrituras y película",tier1:"se encontró algún recurso",tier0:"no se encontró nada",hnr:"pueden oírlo, sin texto",showAll:"Mostrar todos los pueblos",titleCoverage:"Pueblos no alcanzados con algún recurso del evangelio",cov80:"80 %+ tienen algo",cov50:"50–79 %",cov1:"1–49 %",cov0:"nada para ninguno",tallyEach:"Cada",tallyIs:"es UN pueblo —",tallyOf:"de ellos,",tallyLink:"con un enlace",doxa0:"todos tienen algo",doxa1:"1–4 sin nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcanzados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Pueblos de Doxa en este mapa",notPlaced:"en la lista, aún sin ubicar",outOfScope:"sin pueblos de Doxa — sin color"},tabs:{groups:"Pueblos más grandes",countries:"Por país",regions:"Por región",noprayer:"Nadie ora",hnr:"Oyen, sin texto"},stat:{language:"Idioma",population:"Población",countries:"Países",peopleGroups:"Pueblos",noResource:"Ningún recurso encontrado",peopleAffected:"Personas afectadas",haveScripture:"Tienen Escrituras",haveFilm:"Tienen película",haveAudio:"Tienen Escrituras en audio",signLanguages:"Lenguas de señas",growingUnreached:"En crecimiento y no alcanzados",deathsDay:"Muertes estimadas/día"},sheet:{ownLanguage:"En su propio idioma",close:"Cerrar",loading:"Cargando recursos…",pray:"Ora por",everyResource:"Todos los recursos en",alsoSpeak:"También hablan"},res:{scripture:"Escrituras",film:"Película",audio:"Audio",bibleVideo:"Video bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del evangelio",gospelPresentation:"Presentación del evangelio",scriptureEarth:"Scripture Earth",training:"Formación de discipulado",jesusFilm:"Película JESÚS",audioScripture:"Escrituras en audio",bibleStoriesPlain:"Historias bíblicas"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada en FCBH",noneAtGrn:"nada en GRN",notInZume:"no está entre los 54 de Zume",linkChecked:"enlace verificado",unchecked:"sin verificar",linkDead:"enlace roto",wrongLanguage:"idioma incorrecto",varietyNotStated:"(variedad no indicada)",inLanguage:"en"},guide:{dotVsCountry:"Cada punto es UN pueblo de Doxa y su propio idioma; un país es el NÚMERO de esos pueblos.",noneFoundShort:"«Nada encontrado» significa ausente de las fuentes consultadas, nunca prueba de que no exista.",tapCountry:"Toca un país para ver los recursos, pueblo por pueblo."},tables:{title:"Recursos del evangelio — Datos",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos los recursos",t_doxa:"Doxa — Acceso al evangelio",t_links:"Cada recurso + enlace",t_nothing:"Donde no se encontró nada",t_countrygap:"La brecha por país",t_translation:"Pueden oírlo, sin texto",t_translationcountry:"Dónde traducir",t_province:"Acceso al Evangelio por provincia — India y China",t_gaps:"Brechas y oportunidades",t_bridges:"Puentes urbanos",t_deaf:"La brecha sorda",t_resources:"Recursos por pueblo",t_languages:"Idiomas por país",t_growth:"Acceso vs crecimiento"},pages:{listTitle:"Recursos del evangelio por idioma",chartsTitle:"Recursos del evangelio — por idioma",loadingTables:"Cargando tablas de recursos…"},list:{noText:"Sin texto bíblico",hasScripture:"Tiene Escrituras",allLanguages:"Todos los idiomas",peopleGroup:"pueblo",peopleGroups:"pueblos",scriptureHere:"Escrituras en este idioma"},columns:{"People group":"Pueblo",Country:"País",Region:"Región",Language:"Idioma",Population:"Población",Religion:"Religión","Gospel access":"Acceso al evangelio",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Video bíblico","Gospel presentation":"Presentación del evangelio",Countries:"Países","People groups":"Pueblos"},charts:{scriptureAny:"Escrituras (cualquiera)",fullBible:"Biblia completa",newTestament:"Nuevo Testamento",filmAny:"Película (cualquiera)",nothingInPools:"No se encontró nada en las fuentes consultadas",nothingInPoolsLower:"no se encontró nada en las fuentes consultadas",noResourceInPools:"no se encontró ningún recurso en las fuentes consultadas",aResourceFound:"se encontró un recurso",tabCoverage:"Cobertura de recursos",tabGap:"Mayores brechas",keyScripture:"escrituras",keyFilmStories:"película / historias",keyAudioEtc:"audio / presentación / formación",unresolvedCode:"código fuera de ISO 639-3 — sin resolver, no medido",c1Title:"Qué se ENCONTRÓ, por tipo de recurso",c1Sub:"En las {n} lenguas del conjunto de datos. Cada barra cuenta LENGUAS, no etnias.",c1Unit:"lenguas en las que se encontró el recurso en las fuentes consultadas",c2Title:"Mayores poblaciones sin nada encontrado",c2Sub:"Las {n} lenguas sin escrituras ni película en las fuentes consultadas, ordenadas por la población de las etnias que las hablan.",c2Unit:"personas en las etnias cuya lengua PRINCIPAL es esta — no hablantes de la lengua",c3Title:"Países con más lenguas desatendidas",c3Sub:"Los {n} países con más lenguas sin nada encontrado. La longitud de la barra es cada lengua presente en ese país.",c3Unit:"lenguas presentes en el país (una lengua transfronteriza cuenta en cada uno)"}},dy={search:"Buscar pueblos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Cargar más",full_profile:"Perfil completo",wagf_region:"Región",wagf_block:"Bloque de afinidad",rop1:"Pueblo",religion:"Religión",exact_filter:"Exacto",clear_all:"Borrar todo",loading:"Cargando…",no_results:"Ningún pueblo coincide con este filtro.",type_to_search:"Escribe para buscar...",load_failed:"No se pudieron cargar los datos de pueblos. Es un problema de conexión, no de tu filtro.",search_people_or_countries:"Buscar pueblos o países…"},gy={title:{adoption:"Progreso de adopción",affinityBlocs:"Bloques de afinidad",doxaRegions:"Regiones Doxa",engagement:"Progreso de implicación",gospelResources:"Recursos del Evangelio",languageFamilies:"Familias lingüísticas",prayer:"Progreso de oración",upg100List:"Mi lista UPG 100"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas",default:"Leyenda"},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"},tabInfo:{upg100Region:"Región — ordena las listas UPG-100 por área mundial (África, India, Oriente Medio, Sordos, …). Los totales son los UUPG y la población sumados de todas las listas que contiene.",upg100Zone:"Listas UPG-100 — cada una es una lista de oración de los grupos étnicos no alcanzados de un área, y es lo que el mapa pinta y colorea. Cada lista se imprime como su propio paquete.",upg100Group:"Grupo étnico — los grupos no alcanzados dentro de una lista, primero los de mayor necesidad de oración. Cada punto del mapa es uno de ellos."},a11y:{expandRow:"Expandir {label}",collapseRow:"Contraer {label}",clearSelection:"Borrar la selección"},export:{poster:"Cartel",packet:"Cuadernillo"},noDataAtThisLevel:"No hay datos en este nivel",exportButton:"Exportar",exportSelection:"Exportar la selección"},fy={menuComingSoon:"Menú próximamente",pinHint:{tapDot:"Toca un punto de color: alguien todavía necesita oración"},upg100WallHeading:"Mi lista UPG 100 — Listas de oración y carteles",upg100WallTag:"Movilización de oración",upg100WallIntro:"Reparte la tarea de la oración en grupos de cincuenta y de cien, como Jesús alimentó a los 5.000 (Lucas 9:14). Cada cartel es una lista de 100 que puedes orar, imprimir y poner en la pared — orando por ellos por el nombre de su pueblo."},hy={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},my={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},by={"%count% people groups in %countries% countries":"%count% grupos étnicos en %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tiene %count% grupos étnicos en %countries% países. El color de cada punto indica cuántas personas oran por ese grupo étnico.","1+ People Praying":"1+ personas orando","100+ People Praying":"100+ personas orando",Adopted:"Adoptado","Adoption Progress":"Progreso de la adopción","All Regions":"Todas las regiones","Alternate Names":"Nombres alternativos","Choose a region":"Elige una región","Clear All":"Borrar todo",Countries:"Países","Countries in this region":"Países de esta región",Country:"País",Engaged:"Comprometido","Engagement Progress":"Progreso del compromiso","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico no evangelizado adoptado por una iglesia comprometida con la oración, la ofrenda y el envío.","Exact Search":"Búsqueda exacta","Find unreached people groups by region and country.":"Encuentra grupos étnicos no alcanzados por región y país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar los carteles del país",Intercessors:"Intercesores","Load More":"Cargar más","Loading results...":"Cargando resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Movilizar a más de 100 personas que oren diariamente por cada grupo étnico DOXA.","No One Praying":"Nadie orando","No options found":"No se han encontrado opciones","No poster has been generated for this country yet.":"Todavía no se ha generado ningún cartel para este país.","No unengaged people groups by 2033":"No habrá grupos étnicos sin evangelizar para 2033","Not Adopted":"No adoptado",Other:"Otros","Page Not Found":"Página no encontrada","People Group":"Grupo Étnico","People Groups":"Grupos Étnicos","People committed to praying":"Personas comprometidas con la oración","Pick a region above, or click any dot to open that people group's country.":"Elige una región arriba, o haz clic en cualquier punto para abrir el país de ese pueblo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Elige una región o un país en la pestaña Lista de regiones para acotar este panel.",Population:"Población","Prayer Coverage":"Cobertura de oración","Prayer coverage progress":"Progreso de la cobertura de oración","Region Dashboards":"Paneles de regiones","Region dashboard":"Panel de la región",Regions:"Regiones","Regions List":"Lista de regiones",Religion:"Religión","Search names, country/continent, religions...":"Buscar nombres, país/continente, religiones...","See %region% dashboard":"Ver el panel de %region%","See All":"Ver todo",Select:"Seleccionar","Select View":"Seleccionar vista","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Hay %count% grupos étnicos en %country%. Consulta también el mapa para ver los grupos étnicos en la frontera de este país.",Total:"Total","Type to search...":"Escribe para buscar...","Unengaged people groups":"Grupos étnicos no comprometidos","View country posters":"Ver los carteles del país",Views:"Vistas","WAGF Block":"Bloque WAGF","WAGF Region":"Región de la WAGF","people groups adopted":"grupos étnicos adoptados","people groups engaged":"grupos étnicos comprometidos","Outside this region":"Fuera de esta región",Pray:"Oración","Loading region dashboards…":"Cargando los paneles de regiones…","No regions found.":"No se encontraron regiones.","Region data could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los datos de las regiones. Es un problema de conexión, no un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los pueblos. Es un problema de conexión, no un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"El mapa no pudo iniciarse. Es un problema del token del mapa o de conexión, no un filtro: las cifras de arriba no se ven afectadas."},yy={placeholder:"Pueblo, lugar, idioma, religión",placeholderNoPlaces:"Pueblo, idioma, religión (buscar lugares requiere un token de Mapbox)",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"},sections:{within:"Dentro de {selection}",allData:"Todos los datos DOXA"},upg100Placeholder:"Buscar pueblo, lista UPG-100 o región…"},_y={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",upg100Region:"Región",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico",selectView:"Seleccionar vista",views:"Vistas",prayerResources:"Recursos de oración",map:"Mapa",countryPosters:"Carteles por país"},$y={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée",collapseLegend:"Réduire la légende",expandLegend:"Développer la légende",toggleLegend:"Afficher ou masquer la légende",searchPeopleGroups:"Rechercher des peuples",resetAllFilters:"Réinitialiser tous les filtres et la recherche",selectAllRows:"Sélectionner toutes les lignes",deselectAllRows:"Désélectionner toutes les lignes"},vy={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",posterMap:"Carte de l'affiche",prayerList:"Liste de prière",cardDeck:"Jeu de cartes",printOptions:"Options d'impression",showOnMap:"Voir sur la carte",close:"Fermer",showOnMapAria:"Voir {label} sur la carte",cardStockAria:"Taille de la carte de prière",previewPrintPoster:"Aperçu et impression de l’affiche {label}",share:"Partager",shareSteps:["Intégrez cette carte à votre site","Dressez la liste des sites web de votre ville","Apprenez-leur à l’intégrer aussi","Apprenez-leur à former d’autres personnes à l’intégrer","Multiplions les cartes partout pour Jésus !"],clearSelection:"Effacer la sélection",noOptions:"Aucune option trouvée",renderingLocal:"Une image de qualité impression est générée dans votre navigateur — rien n’est envoyé.",postersPerRow:"Affiches par ligne"},wy={research_controls:"Commandes de recherche",clustering:"Regroupement",filters:"Filtres",pin_dim:"Atténuation des points",export_poster:"Exporter l’affiche…",reload_data:"Recharger les données",off:"Désactivé",native:"Natif",mst:"MST",network:"Réseau",off_desc:"Afficher chaque point séparément",native_desc:"Groupes circulaires Mapbox (le plus rapide)",mst_desc:"Réseaux d’affinité par arbre couvrant minimal",network_desc:"Lignes vers le plus proche voisin",search_languages:"Rechercher des langues…",search_religions:"Rechercher des religions…",reset_all:"Tout réinitialiser",no_languages:"Aucune langue chargée pour l’instant",no_religions:"Aucune religion chargée pour l’instant",unadopted:"Non adopté",min:"min",max:"max",adopted:"Adopté",adoption:"Adoption",engaged:"Engagé",engagement:"Engagement",unengaged:"Besoin d'engagement",language:"Langue",religion:"Religion",population:"Population",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",close:"Fermer",clear:"Effacer",map_controls:"Commandes de la carte"},ky={bloc:"Bloc d’affinité",gospel_access:"Accès à l’Évangile",people:"Peuples",people_name:"Peuple (nom)",praying:"En prière",religion_family:"Famille religieuse",search_language:"Rechercher une langue",search_people:"Rechercher un peuple",search_place:"Rechercher un lieu",search_religion:"Rechercher une religion",upgs_in_scope:"UPG dans le périmètre",countries_touched:"pays touchés",unreached:"non atteints",sum_population:"Σ population",sum_praying:"Σ en prière",charts:"Graphiques",table:"Tableau",cluster:"Grappe",country:"Pays",engagement:"Engagement",language:"Langue",language_family:"Famille linguistique",people_group:"Peuple",population:"Population",prayer:"Prière",region:"Région",religion:"Religion",status:"Statut",adopted:"Adopté",filters:"Filtres",gospel_resources:"Ressources de l'Évangile",map:"Carte",search_placeholder:"Rechercher peuples, lieux, langues, religions…",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",map_controls:"Commandes de la carte",close:"Fermer",clear:"Effacer",dashboard_title:"Tableau de bord de recherche global",align_dashboard:"Aligner le tableau",align_dashboard_tip:"Rétablir la disposition par défaut du tableau de bord",selected:"Sélectionné",world:"Monde",vertical_legend:"Légende verticale",groups_in_scope:"peuples dans le périmètre",filter_by:"Filtrer par",remove_filter:"Retirer le filtre",groups:"peuples",expand:"Développer",collapse:"Replier",place:"Lieu",export_csv:"Exporter en CSV",detail:"Détail",detail_empty:"Sélectionnez un peuple pour voir le détail",heartbeat_zone:"zone du battement de cœur",top_countries:"Principaux pays",select_all:"Tout sélectionner",expand_table:"Développer le tableau",collapse_table:"Réduire le tableau — agrandir la carte",group:"peuple",deselect_all:"Tout désélectionner"},xy={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},Ay={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Les notes explicatives ci-dessous sont en anglais."},mode:{gap:"Écart",coverage:"Ressources trouvées"},search:{placeholder:"Chercher un peuple, une langue ou un code ISO",clear:"Effacer la recherche",none:"Rien ne correspond à ce nom, cette langue ou ce code.",placeholderShort:"Peuple, langue ou code ISO"},legend:{title:"Peuples non atteints sans aucune ressource de l'Évangile",band60:"60 %+ sans rien trouvé",band30:"30–59 %",bandSome:"quelques peuples",bandAll:"tous les peuples ont quelque chose",tier2:"Écritures et film",tier1:"une ressource trouvée",tier0:"rien trouvé",hnr:"peuvent l'entendre, aucun texte",showAll:"Afficher tous les peuples",titleCoverage:"Peuples non atteints avec une ressource de l'Évangile",cov80:"80 %+ ont quelque chose",cov50:"50–79 %",cov1:"1–49 %",cov0:"rien pour aucun",tallyEach:"Chaque",tallyIs:"est UN peuple —",tallyOf:"d'entre eux,",tallyLink:"avec un lien",doxa0:"tous ont quelque chose",doxa1:"1–4 sans rien",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atteints",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Peuples Doxa sur cette carte",notPlaced:"sur la liste, pas encore localisés",outOfScope:"aucun peuple Doxa — non coloré"},tabs:{groups:"Peuples les plus nombreux",countries:"Par pays",regions:"Par région",noprayer:"Personne ne prie",hnr:"Entendent, sans texte"},stat:{language:"Langue",population:"Population",countries:"Pays",peopleGroups:"Peuples",noResource:"Aucune ressource trouvée",peopleAffected:"Personnes concernées",haveScripture:"Ont les Écritures",haveFilm:"Ont le film",haveAudio:"Ont les Écritures en audio",signLanguages:"Langues des signes",growingUnreached:"En croissance et non atteints",deathsDay:"Décès estimés/jour"},sheet:{ownLanguage:"Dans leur propre langue",close:"Fermer",loading:"Chargement des ressources…",pray:"Priez pour",everyResource:"Toutes les ressources en",alsoSpeak:"Parlent aussi"},res:{scripture:"Écritures",film:"Film",audio:"Audio",bibleVideo:"Vidéo biblique",bibleStories:"Open Bible Stories",gospelAudio:"Audio de l'Évangile",gospelPresentation:"Présentation de l'Évangile",scriptureEarth:"Scripture Earth",training:"Formation au discipulat",jesusFilm:"Film JÉSUS",audioScripture:"Écritures en audio",bibleStoriesPlain:"Histoires bibliques"},state:{noneFound:"rien trouvé",noneAtFcbh:"rien chez FCBH",noneAtGrn:"rien chez GRN",notInZume:"pas dans les 54 de Zume",linkChecked:"lien vérifié",unchecked:"non vérifié",linkDead:"lien mort",wrongLanguage:"mauvaise langue",varietyNotStated:"(variété non précisée)",inLanguage:"en"},guide:{dotVsCountry:"Un point est UN peuple de Doxa et sa propre langue ; un pays est le NOMBRE de ces peuples.",noneFoundShort:"« Rien trouvé » signifie absent des sources consultées, jamais la preuve que rien n'existe.",tapCountry:"Touchez un pays pour voir les ressources, peuple par peuple."},tables:{title:"Ressources de l'Évangile — Données",showing:"Affichage de",of:"sur",for:"pour",filteredTo:"Filtré sur",showAll:"Afficher toutes les ressources",t_doxa:"Doxa — Accès à l'Évangile",t_links:"Chaque ressource + lien",t_nothing:"Où rien n'a été trouvé",t_countrygap:"L'écart par pays",t_translation:"Entendent, sans texte",t_translationcountry:"Où traduire",t_province:"Accès à l'Évangile par province — Inde et Chine",t_gaps:"Écarts et opportunités",t_bridges:"Ponts urbains",t_deaf:"L'écart sourd",t_resources:"Ressources par peuple",t_languages:"Langues par pays",t_growth:"Accès vs croissance"},pages:{listTitle:"Ressources de l'Évangile par langue",chartsTitle:"Ressources de l'Évangile — par langue",loadingTables:"Chargement des tableaux…"},list:{noText:"Pas de texte biblique",hasScripture:"A les Écritures",allLanguages:"Toutes les langues",peopleGroup:"peuple",peopleGroups:"peuples",scriptureHere:"Écritures dans cette langue"},columns:{"People group":"Peuple",Country:"Pays",Region:"Région",Language:"Langue",Population:"Population",Religion:"Religion","Gospel access":"Accès à l'Évangile",Resources:"Ressources",Scripture:"Écritures","Bible video":"Vidéo biblique","Gospel presentation":"Présentation de l'Évangile",Countries:"Pays","People groups":"Peuples"},charts:{scriptureAny:"Écritures (toutes)",fullBible:"Bible complète",newTestament:"Nouveau Testament",filmAny:"Film (tous)",nothingInPools:"Rien trouvé dans les sources consultées",nothingInPoolsLower:"rien trouvé dans les sources consultées",noResourceInPools:"aucune ressource trouvée dans les sources consultées",aResourceFound:"une ressource trouvée",tabCoverage:"Couverture des ressources",tabGap:"Plus grands écarts",keyScripture:"écritures",keyFilmStories:"film / histoires",keyAudioEtc:"audio / présentation / formation",unresolvedCode:"code hors ISO 639-3 — non résolu, non mesuré",c1Title:"Ce qui a été TROUVÉ, par type de ressource",c1Sub:"Sur l'ensemble des {n} langues du corpus. Chaque barre compte des LANGUES, pas des peuples.",c1Unit:"langues où la ressource a été trouvée dans les sources consultées",c2Title:"Populations les plus nombreuses sans rien de trouvé",c2Sub:"Les {n} langues sans Écritures ni film dans les sources consultées, classées selon la population des peuples qui les parlent.",c2Unit:"personnes dans les peuples dont c'est la langue PRINCIPALE — non les locuteurs de la langue",c3Title:"Pays comptant le plus de langues non desservies",c3Sub:"Les {n} pays comptant le plus de langues sans rien de trouvé. La longueur de la barre correspond à chaque langue présente dans ce pays.",c3Unit:"langues présentes dans le pays (une langue transfrontalière compte dans chacun)"}},Sy={search:"Rechercher des peuples…",hide_filters:"Masquer les filtres",show_filters:"Afficher les filtres",total:"Total",showing:"Affichage",load_more:"Charger plus",full_profile:"Profil complet",wagf_region:"Région",wagf_block:"Bloc d'affinité",rop1:"Peuple",religion:"Religion",exact_filter:"Exact",clear_all:"Tout effacer",loading:"Chargement…",no_results:"Aucun peuple ne correspond à ce filtre.",type_to_search:"Tapez pour rechercher...",load_failed:"Les données n’ont pas pu être chargées. C’est un problème de connexion, pas votre filtre.",search_people_or_countries:"Rechercher des peuples ou des pays…"},Py={title:{adoption:"Progression de l'adoption",affinityBlocs:"Blocs d'affinité",doxaRegions:"Régions Doxa",engagement:"Progression de l'engagement",gospelResources:"Ressources de l'Évangile",languageFamilies:"Familles de langues",prayer:"Progression de la prière",upg100List:"Ma liste UPG 100"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes",default:"Légende"},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"},tabInfo:{upg100Region:"Région — trie les listes UPG-100 par zone du monde (Afrique, Inde, Moyen-Orient, Sourds, …). Les totaux sont les UUPG et la population additionnés sur toutes les listes qu’elle contient.",upg100Zone:"Listes UPG-100 — chacune est une liste de prière des groupes de peuples non atteints d’une zone, et c’est ce que la carte dessine et colore. Chaque liste s’imprime comme son propre livret.",upg100Group:"Groupe de peuples — les groupes non atteints au sein d’une liste, les plus grands besoins de prière en premier. Chaque point de la carte en est un."},a11y:{expandRow:"Développer {label}",collapseRow:"Réduire {label}",clearSelection:"Effacer la sélection"},export:{poster:"Affiche",packet:"Livret"},noDataAtThisLevel:"Aucune donnée à ce niveau",exportButton:"Exporter",exportSelection:"Exporter la sélection"},Ly={menuComingSoon:"Menu bientôt disponible",pinHint:{tapDot:"Touchez un point coloré — quelqu’un a encore besoin de prière"},upg100WallHeading:"Ma liste UPG 100 — Listes de prière et affiches",upg100WallTag:"Mobilisation pour la prière",upg100WallIntro:"Répartissez la tâche de la prière par groupes de cinquante et de cent — comme Jésus a nourri les 5 000 (Luc 9:14). Chaque affiche est une liste de 100 que vous pouvez prier, imprimer et afficher au mur — en priant pour eux par le nom de leur peuple."},Cy={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},Ty={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},Ey={"%count% people groups in %countries% countries":"%count% peuples dans %countries% pays","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% compte %count% peuples répartis dans %countries% pays. La couleur de chaque point indique combien de personnes prient pour ce peuple.","1+ People Praying":"1+ personnes en prière","100+ People Praying":"100+ personnes en prière",Adopted:"Adopté","Adoption Progress":"Progrès de l'adoption","All Regions":"Toutes les régions","Alternate Names":"Autres noms","Choose a region":"Choisissez une région","Clear All":"Tout effacer",Countries:"Pays","Countries in this region":"Pays de cette région",Country:"Pays",Engaged:"Engagé","Engagement Progress":"Progrès de l'engagement","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Chaque peuple non engagé adopté par une église locale engagée dans la prière, le don et l'envoi","Exact Search":"Recherche exacte","Find unreached people groups by region and country.":"Trouvez des peuples non atteints par région et par pays.","Full Profile":"Profil complet",Goal:"Objectif","Hide Filters":"Masquer les filtres","Hide country posters":"Masquer les affiches du pays",Intercessors:"Intercesseurs","Load More":"Afficher plus","Loading results...":"Chargement des résultats...",Map:"Carte","Mobilize 100+ people praying daily for each DOXA people group":"Mobiliser plus de 100 personnes priant chaque jour pour chaque peuple DOXA","No One Praying":"Personne ne prie","No options found":"Aucun lieu trouvé","No poster has been generated for this country yet.":"Aucune affiche n'a encore été générée pour ce pays.","No unengaged people groups by 2033":"Plus aucun peuple non engagé d'ici 2033","Not Adopted":"Non adopté",Other:"Autre","Page Not Found":"Page introuvable","People Group":"Peuple","People Groups":"Peuples","People committed to praying":"Personnes engagées dans la prière","Pick a region above, or click any dot to open that people group's country.":"Choisissez une région ci-dessus, ou cliquez sur un point pour ouvrir le pays de ce peuple.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Choisissez une région ou un pays dans l’onglet Liste des régions pour affiner ce tableau de bord.",Population:"Population","Prayer Coverage":"Couverture de prière","Prayer coverage progress":"Progression de la couverture de prière","Region Dashboards":"Tableaux de bord des régions","Region dashboard":"Tableau de bord de la région",Regions:"Régions","Regions List":"Liste des régions",Religion:"Religion","Search names, country/continent, religions...":"Rechercher des noms, pays/continent, religions...","See %region% dashboard":"Voir le tableau de bord : %region%","See All":"Tout afficher",Select:"Sélectionner","Select View":"Sélectionner la vue","Show Filters":"Afficher les filtres","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Il y a %count% peuples en %country%. Consultez la carte pour découvrir également les peuples situés à la frontière de ce pays.",Total:"Total","Type to search...":"Entrer votre recherche","Unengaged people groups":"Peuples non engagés","View country posters":"Voir les affiches du pays",Views:"Vues","WAGF Block":"Bloc WAGF","WAGF Region":"Région WAGF","people groups adopted":"peuples adoptés","people groups engaged":"peuples engagés","Outside this region":"Hors de cette région",Pray:"Prier","Loading region dashboards…":"Chargement des tableaux de bord des régions…","No regions found.":"Aucune région trouvée.","Region data could not be loaded. This is a connection problem, not a filter.":"Les données des régions n'ont pas pu être chargées. Il s'agit d'un problème de connexion, pas d'un filtre.","People groups could not be loaded. This is a connection problem, not a filter.":"Les peuples n'ont pas pu être chargés. Il s'agit d'un problème de connexion, pas d'un filtre.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La carte n'a pas pu démarrer. Il s'agit d'un problème de jeton de carte ou de connexion, pas d'un filtre — les chiffres ci-dessus ne sont pas affectés."},Ry={placeholder:"Peuple, lieu, langue, religion",placeholderNoPlaces:"Peuple, langue, religion (la recherche de lieux requiert un jeton Mapbox)",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"},sections:{within:"Dans {selection}",allData:"Toutes les données DOXA"},upg100Placeholder:"Rechercher un peuple, une liste UPG-100 ou une région…"},Ny={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",upg100Region:"Région",upg100Zone:"Listes UPG-100",upg100Group:"Groupe de peuples",selectView:"Choisir la vue",views:"Vues",prayerResources:"Ressources de prière",map:"Carte",countryPosters:"Affiches par pays"},My={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ",searchPeopleGroups:"जनसमूह खोजें",resetAllFilters:"सभी फ़िल्टर और खोज रीसेट करें",selectAllRows:"सभी पंक्तियाँ चुनें",deselectAllRows:"सभी पंक्तियाँ अचयनित करें"},Fy={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें",posterMap:"पोस्टर मानचित्र",prayerList:"प्रार्थना सूची",cardDeck:"कार्ड सेट",printOptions:"छपाई विकल्प",showOnMap:"मानचित्र पर देखें",close:"बंद करें",showOnMapAria:"{label} को मानचित्र पर देखें",cardStockAria:"प्रार्थना कार्ड का आकार",previewPrintPoster:"{label} पोस्टर देखें और प्रिंट करें",share:"साझा करें",shareSteps:["इस मानचित्र को अपनी वेबसाइट पर लगाएँ","अपने शहर की वेबसाइटों की सूची बनाएँ","उन्हें भी इसे लगाना सिखाएँ","उन्हें सिखाएँ कि वे औरों को लगाना सिखाएँ","यीशु के लिए हर जगह मानचित्र बढ़ाएँ!"],clearSelection:"चयन हटाएँ",noOptions:"कोई विकल्प नहीं मिला",renderingLocal:"आपके ब्राउज़र में प्रिंट-गुणवत्ता वाली छवि बन रही है — कुछ भी अपलोड नहीं किया जाता।",postersPerRow:"प्रति पंक्ति पोस्टर"},Iy={research_controls:"शोध नियंत्रण",clustering:"क्लस्टरिंग",filters:"फ़िल्टर",pin_dim:"पिन धुंधलापन",export_poster:"पोस्टर निर्यात करें…",reload_data:"डेटा फिर से लोड करें",off:"बंद",native:"नेटिव",mst:"MST",network:"नेटवर्क",off_desc:"हर पिन अलग-अलग दिखाएँ",native_desc:"Mapbox वृत्त क्लस्टर (सबसे तेज़)",mst_desc:"न्यूनतम स्पैनिंग ट्री आधारित जाल",network_desc:"निकटतम पड़ोसी को जोड़ने वाली रेखाएँ",search_languages:"भाषाएँ खोजें…",search_religions:"धर्म खोजें…",reset_all:"सब रीसेट करें",no_languages:"अभी कोई भाषा लोड नहीं हुई",no_religions:"अभी कोई धर्म लोड नहीं हुआ",unadopted:"अ-गोद लिया",min:"न्यून",max:"अधि",adopted:"गोद लिया गया",adoption:"गोद लेना",engaged:"संपर्कित",engagement:"सहभागिता",unengaged:"सहभागिता चाहिए",language:"भाषा",religion:"धर्म",population:"जनसंख्या",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",close:"बंद करें",clear:"साफ़ करें",map_controls:"मानचित्र नियंत्रण"},Oy={bloc:"समानता समूह",gospel_access:"सुसमाचार पहुँच",people:"जनसमूह",people_name:"जनसमूह (नाम)",praying:"प्रार्थना कर रहे",religion_family:"धर्म परिवार",search_language:"भाषा खोजें",search_people:"जनसमूह खोजें",search_place:"स्थान खोजें",search_religion:"धर्म खोजें",upgs_in_scope:"दायरे में UPG",countries_touched:"छुए गए देश",unreached:"अनपहुँचे",sum_population:"Σ जनसंख्या",sum_praying:"Σ प्रार्थना",charts:"चार्ट",table:"तालिका",cluster:"क्लस्टर",country:"देश",engagement:"सहभागिता",language:"भाषा",language_family:"भाषा परिवार",people_group:"जनसमूह",population:"जनसंख्या",prayer:"प्रार्थना",region:"क्षेत्र",religion:"धर्म",status:"स्थिति",adopted:"गोद लिया गया",filters:"फ़िल्टर",gospel_resources:"सुसमाचार संसाधन",map:"नक्शा",search_placeholder:"जनसमूह, स्थान, भाषा, धर्म खोजें…",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",map_controls:"मानचित्र नियंत्रण",close:"बंद करें",clear:"साफ़ करें",dashboard_title:"बिग पिक्चर शोध डैशबोर्ड",align_dashboard:"डैशबोर्ड संरेखित करें",align_dashboard_tip:"डैशबोर्ड लेआउट को डिफ़ॉल्ट संरेखण पर लौटाएँ",selected:"चयनित",world:"विश्व",vertical_legend:"लंबवत लेजेंड",groups_in_scope:"दायरे में जनसमूह",filter_by:"इससे फ़िल्टर करें",remove_filter:"फ़िल्टर हटाएँ",groups:"जनसमूह",expand:"विस्तार करें",collapse:"संक्षिप्त करें",place:"स्थान",export_csv:"CSV निर्यात करें",detail:"विवरण",detail_empty:"विवरण देखने के लिए एक जनसमूह चुनें",heartbeat_zone:"हृदयगति क्षेत्र",top_countries:"शीर्ष देश",select_all:"सभी चुनें",expand_table:"तालिका विस्तृत करें",collapse_table:"तालिका संक्षिप्त करें — मानचित्र बड़ा करें",group:"जनसमूह",deselect_all:"सभी अचयनित करें"},Dy={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},By={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"नीचे दी गई व्याख्यात्मक टिप्पणियाँ अंग्रेज़ी में हैं।"},mode:{gap:"कमी",coverage:"उपलब्ध संसाधन"},search:{placeholder:"जनसमूह, भाषा या ISO कोड खोजें",clear:"खोज साफ़ करें",none:"इस नाम, भाषा या कोड से कुछ भी मेल नहीं खाता।",placeholderShort:"जनसमूह, भाषा या ISO कोड"},legend:{title:"ऐसे जनसमूह जिन तक सुसमाचार नहीं पहुँचा और कोई संसाधन नहीं मिला",band60:"60%+ के पास कुछ नहीं",band30:"30–59%",bandSome:"कुछ जनसमूह",bandAll:"सभी जनसमूहों के पास कुछ है",tier2:"पवित्र शास्त्र और फ़िल्म",tier1:"कुछ संसाधन मिला",tier0:"कुछ नहीं मिला",hnr:"सुन सकते हैं, पाठ नहीं",showAll:"सभी जनसमूह दिखाएँ",titleCoverage:"ऐसे अनपहुँचे जनसमूह जिनके लिए कुछ सुसमाचार संसाधन मिला",cov80:"80%+ के पास कुछ है",cov50:"50–79%",cov1:"1–49%",cov0:"किसी के लिए कुछ नहीं",tallyEach:"हर",tallyIs:"एक जनसमूह है —",tallyOf:"में से,",tallyLink:"के पास लिंक है",doxa0:"सभी के पास कुछ है",doxa1:"1–4 के पास कुछ नहीं",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 तक पहुँच",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"इस मानचित्र पर दोक्सा जनसमूह",notPlaced:"सूची में, अभी स्थान नहीं",outOfScope:"कोई दोक्सा जनसमूह नहीं — रंग नहीं"},tabs:{groups:"सबसे बड़े जनसमूह",countries:"देश के अनुसार",regions:"क्षेत्र के अनुसार",noprayer:"कोई प्रार्थना नहीं कर रहा",hnr:"सुन सकते हैं, पाठ नहीं"},stat:{language:"भाषा",population:"जनसंख्या",countries:"देश",peopleGroups:"जनसमूह",noResource:"कोई संसाधन नहीं मिला",peopleAffected:"प्रभावित लोग",haveScripture:"पवित्र शास्त्र उपलब्ध",haveFilm:"फ़िल्म उपलब्ध",haveAudio:"ऑडियो शास्त्र उपलब्ध",signLanguages:"सांकेतिक भाषाएँ",growingUnreached:"बढ़ते और अनपहुँचे",deathsDay:"अनुमानित मृत्यु/दिन"},sheet:{ownLanguage:"उनकी अपनी भाषा में",close:"बंद करें",loading:"संसाधन लोड हो रहे हैं…",pray:"के लिए प्रार्थना करें",everyResource:"में सभी संसाधन",alsoSpeak:"यह भी बोलते हैं"},res:{scripture:"पवित्र शास्त्र",film:"फ़िल्म",audio:"ऑडियो",bibleVideo:"बाइबल वीडियो",bibleStories:"Open Bible Stories",gospelAudio:"सुसमाचार ऑडियो",gospelPresentation:"सुसमाचार प्रस्तुति",scriptureEarth:"Scripture Earth",training:"शिष्यत्व प्रशिक्षण",jesusFilm:"यीशु फ़िल्म",audioScripture:"ऑडियो पवित्र शास्त्र",bibleStoriesPlain:"बाइबल की कहानियाँ"},state:{noneFound:"कुछ नहीं मिला",noneAtFcbh:"FCBH में कुछ नहीं",noneAtGrn:"GRN में कुछ नहीं",notInZume:"Zume की 54 भाषाओं में नहीं",linkChecked:"लिंक जाँचा गया",unchecked:"अनजाँचा",linkDead:"लिंक निष्क्रिय",wrongLanguage:"ग़लत भाषा",varietyNotStated:"(उपभाषा नहीं बताई गई)",inLanguage:"में"},guide:{dotVsCountry:"हर बिंदु दोक्सा का एक जनसमूह और उसकी अपनी भाषा है; देश का रंग उन जनसमूहों की संख्या है।",noneFoundShort:"“कुछ नहीं मिला” का अर्थ है जाँचे गए स्रोतों में नहीं — यह प्रमाण नहीं कि कुछ है ही नहीं।",tapCountry:"संसाधन देखने के लिए किसी देश पर टैप करें, जनसमूह दर जनसमूह।"},tables:{title:"सुसमाचार संसाधन — डेटा",showing:"दिखा रहे हैं",of:"में से",for:"के लिए",filteredTo:"फ़िल्टर:",showAll:"सभी संसाधन दिखाएँ",t_doxa:"दोक्सा — सुसमाचार पहुँच",t_links:"हर संसाधन + लिंक",t_nothing:"जहाँ कुछ नहीं मिला",t_countrygap:"देश अनुसार कमी",t_translation:"सुन सकते हैं, पाठ नहीं",t_translationcountry:"अनुवाद कहाँ करें",t_province:"प्रांत के अनुसार सुसमाचार तक पहुँच — भारत और चीन",t_gaps:"कमियाँ और अवसर",t_bridges:"नगर सेतु",t_deaf:"बधिर कमी",t_resources:"जनसमूह अनुसार संसाधन",t_languages:"देश अनुसार भाषाएँ",t_growth:"पहुँच बनाम जनसंख्या वृद्धि"},pages:{listTitle:"भाषा अनुसार सुसमाचार संसाधन",chartsTitle:"सुसमाचार संसाधन — भाषा अनुसार",loadingTables:"संसाधन तालिकाएँ लोड हो रही हैं…"},list:{noText:"कोई लिखित शास्त्र नहीं",hasScripture:"शास्त्र उपलब्ध",allLanguages:"सभी भाषाएँ",peopleGroup:"जनसमूह",peopleGroups:"जनसमूह",scriptureHere:"इस भाषा में पवित्र शास्त्र"},columns:{"People group":"जनसमूह",Country:"देश",Region:"क्षेत्र",Language:"भाषा",Population:"जनसंख्या",Religion:"धर्म","Gospel access":"सुसमाचार पहुँच",Resources:"संसाधन",Scripture:"पवित्र शास्त्र","Bible video":"बाइबल वीडियो","Gospel presentation":"सुसमाचार प्रस्तुति",Countries:"देश","People groups":"जनसमूह"},charts:{scriptureAny:"पवित्र शास्त्र (कोई भी)",fullBible:"पूरी बाइबल",newTestament:"नया नियम",filmAny:"फ़िल्म (कोई भी)",nothingInPools:"जाँचे गए स्रोतों में कुछ नहीं मिला",nothingInPoolsLower:"जाँचे गए स्रोतों में कुछ नहीं मिला",noResourceInPools:"जाँचे गए स्रोतों में कोई संसाधन नहीं मिला",aResourceFound:"एक संसाधन मिला",tabCoverage:"संसाधन कवरेज",tabGap:"सबसे बड़े अंतराल",keyScripture:"पवित्र शास्त्र",keyFilmStories:"फ़िल्म / कहानियाँ",keyAudioEtc:"ऑडियो / प्रस्तुति / प्रशिक्षण",unresolvedCode:"ISO 639-3 से बाहर कोड — अनसुलझा, मापा नहीं गया",c1Title:"क्या मिला, संसाधन के प्रकार के अनुसार",c1Sub:"डेटा की सभी {n} भाषाओं में। हर बार भाषाओं की गिनती करता है, जनसमूहों की नहीं।",c1Unit:"भाषाएँ जिनमें जाँचे गए स्रोतों में संसाधन मिला",c2Title:"सबसे बड़ी आबादी जिनके लिए कुछ नहीं मिला",c2Sub:"{n} भाषाएँ जिनके लिए जाँचे गए स्रोतों में न पवित्र शास्त्र है न फ़िल्म, उन्हें बोलने वाले जनसमूहों की आबादी के क्रम में।",c2Unit:"उन जनसमूहों के लोग जिनकी मुख्य भाषा यही है — भाषा के सभी वक्ता नहीं",c3Title:"सबसे अधिक असेवित भाषाओं वाले देश",c3Sub:"{n} देश जिनमें सबसे अधिक भाषाओं के लिए कुछ नहीं मिला। बार की लंबाई उस देश में मौजूद हर भाषा है।",c3Unit:"देश में मौजूद भाषाएँ (सीमा-पार भाषा हर देश में गिनी जाती है)"}},Gy={search:"जनसमूह खोजें…",hide_filters:"फ़िल्टर छिपाएँ",show_filters:"फ़िल्टर दिखाएँ",total:"कुल",showing:"दिखा रहे हैं",load_more:"और देखें",full_profile:"पूरी प्रोफ़ाइल",wagf_region:"क्षेत्र",wagf_block:"समानता समूह",rop1:"जनसमूह",religion:"धर्म",exact_filter:"सटीक",clear_all:"सब हटाएँ",loading:"लोड हो रहा है…",no_results:"इस फ़िल्टर से कोई जनसमूह मेल नहीं खाता।",type_to_search:"खोजने के लिए लिखें...",load_failed:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।",search_people_or_countries:"जनसमूह या देश खोजें…"},jy={title:{adoption:"गोद लेने की प्रगति",affinityBlocs:"समानता समूह",doxaRegions:"Doxa क्षेत्र",engagement:"सहभागिता प्रगति",gospelResources:"सुसमाचार संसाधन",languageFamilies:"भाषा परिवार",prayer:"प्रार्थना प्रगति",upg100List:"मेरी UPG 100 सूची"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह",default:"सूचकांक"},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:"जनसंख्या",name:"नाम"},footer:{total:"कुल"},sortByUpgs:"UUPG के अनुसार क्रमबद्ध करें",sortByPop:"जनसंख्या के अनुसार क्रमबद्ध करें",colLabel:{religion:"UUPG धर्म",prayer:"प्रार्थना स्थिति",engagement:"सहभागिता स्थिति",adoption:"गोद लेने की स्थिति",status:"स्थिति"},titleBar:{legend:"सूचकांक",peopleGroups:"जनसमूह",wagfRegions:"WAGF क्षेत्र",languages:"भाषाएँ"},tabInfo:{upg100Region:"क्षेत्र — UPG-100 सूचियों को विश्व क्षेत्र के अनुसार क्रमित करता है (अफ़्रीका, भारत, मध्य पूर्व, बधिर, …)। संख्याएँ उसके नीचे की हर सूची के UUPG और जनसंख्या का योग हैं।",upg100Zone:"UPG-100 सूचियाँ — हर एक किसी क्षेत्र के अनपहुँचे जनसमूहों की प्रार्थना सूची है, और यही मानचित्र बनाता और रंगता है। हर सूची अपने अलग पैकेट के रूप में छपती है।",upg100Group:"जनसमूह — किसी सूची के भीतर के अलग-अलग अनपहुँचे समूह, सबसे बड़ी प्रार्थना आवश्यकता पहले। मानचित्र का हर बिंदु इनमें से एक है।"},a11y:{expandRow:"{label} का विस्तार करें",collapseRow:"{label} को छोटा करें",clearSelection:"चयन हटाएँ"},export:{poster:"पोस्टर",packet:"पुस्तिका"},noDataAtThisLevel:"इस स्तर पर कोई डेटा नहीं",exportButton:"निर्यात",exportSelection:"चयन निर्यात करें"},zy={menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना लामबंदी",upg100WallIntro:"प्रार्थना के काम को पचास-पचास और सौ-सौ के समूहों में बाँटें — जैसे यीशु ने 5,000 लोगों को खिलाया (लूका 9:14)। हर पोस्टर 100 की एक सूची है जिसके लिए आप प्रार्थना कर सकते हैं, छाप सकते हैं और दीवार पर लगा सकते हैं — उनके लिए उनके जनसमूह के नाम से प्रार्थना करते हुए।"},Uy={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},Ky={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},Hy={"%count% people groups in %countries% countries":"%countries% देशों में %count% जनसमूह","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% में %countries% देशों में %count% लोगों के समूह हैं। प्रत्येक बिंदु का रंग दर्शाता है कि उस लोगों के समूह के लिए कितने लोग प्रार्थना कर रहे हैं।","1+ People Praying":"1+ लोग प्रार्थना कर रहे हैं","100+ People Praying":"100+ लोग प्रार्थना कर रहे हैं",Adopted:"गोद लिया गया","Adoption Progress":"गोद लेने की प्रगति","All Regions":"सभी क्षेत्र","Alternate Names":"वैकल्पिक नाम","Choose a region":"क्षेत्र चुनें","Clear All":"सभी साफ़ करें",Countries:"देश","Countries in this region":"इस क्षेत्र के देश",Country:"देश",Engaged:"संपर्कित","Engagement Progress":"संलग्नता की प्रगति","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"प्रत्येक असंलग्न जनसमूह जिसे प्रार्थना, दान और भेजने के लिए प्रतिबद्ध एक चर्च ने अपनाया है।","Exact Search":"सटीक खोज","Find unreached people groups by region and country.":"क्षेत्र और देश के अनुसार अगम्य लोगों के समूह खोजें।","Full Profile":"पूरी प्रोफ़ाइल",Goal:"लक्ष्य","Hide Filters":"फ़िल्टर छिपाएँ","Hide country posters":"देश के पोस्टर छिपाएँ",Intercessors:"मध्यस्थ","Load More":"और लोड करें","Loading results...":"परिणाम लोड हो रहे हैं..।",Map:"नक्शा","Mobilize 100+ people praying daily for each DOXA people group":"प्रत्येक DOXA जनसमूह के लिए प्रतिदिन प्रार्थना करने हेतु 100+ लोगों को सक्रिय करें।","No One Praying":"कोई प्रार्थना नहीं कर रहा","No options found":"कोई विकल्प नहीं मिला","No poster has been generated for this country yet.":"इस देश के लिए अभी तक कोई पोस्टर नहीं बना है।","No unengaged people groups by 2033":"2033 तक कोई भी संलग्न न किया गया जनसमूह नहीं रहेगा।","Not Adopted":"दत्तक नहीं लिया गया",Other:"अन्य","Page Not Found":"पृष्ठ नहीं मिला","People Group":"लोगों का समूह","People Groups":"जनसमूह","People committed to praying":"प्रार्थना के लिए प्रतिबद्ध लोग","Pick a region above, or click any dot to open that people group's country.":"ऊपर कोई क्षेत्र चुनें, या उस लोगों के समूह का देश खोलने के लिए किसी बिंदु पर क्लिक करें।","Pick a region or a country on the Regions List tab to narrow this dashboard.":"इस डैशबोर्ड को सीमित करने के लिए क्षेत्रों की सूची टैब में कोई क्षेत्र या देश चुनें।",Population:"जनसंख्या","Prayer Coverage":"प्रार्थना कवरेज","Prayer coverage progress":"प्रार्थना कवरेज की प्रगति","Region Dashboards":"क्षेत्र डैशबोर्ड","Region dashboard":"क्षेत्र डैशबोर्ड",Regions:"क्षेत्र","Regions List":"क्षेत्रों की सूची",Religion:"धर्म","Search names, country/continent, religions...":"नाम, देश/महाद्वीप, धर्म खोजें…","See %region% dashboard":"%region% डैशबोर्ड देखें","See All":"सभी देखें",Select:"चयन/छंटनी","Select View":"दृश्य चुनें","Show Filters":"फ़िल्टर दिखाएँ","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% में %count% लोगों के समूह हैं। इस देश की सीमा पर स्थित लोगों के समूहों के लिए मानचित्र भी देखें।",Total:"संपूर्ण","Type to search...":"खोजने के लिए टाइप करें..।","Unengaged people groups":"अनसंपर्कित जनसमूह","View country posters":"देश के पोस्टर देखें",Views:"दृश्य","WAGF Block":"WAGF ब्लॉक","WAGF Region":"डब्ल्यूएजीएफ क्षेत्र","people groups adopted":"जनसमूह गोद लिए गए","people groups engaged":"संपर्कित जनसमूह","Outside this region":"इस क्षेत्र के बाहर",Pray:"प्रार्थना करें","Loading region dashboards…":"क्षेत्र डैशबोर्ड लोड हो रहे हैं…","No regions found.":"कोई क्षेत्र नहीं मिला।","Region data could not be loaded. This is a connection problem, not a filter.":"क्षेत्र डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","People groups could not be loaded. This is a connection problem, not a filter.":"लोकसमूह लोड नहीं हो सके। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"},Vy={placeholder:"लोग, स्थान, भाषा, धर्म",placeholderNoPlaces:"लोग, भाषा, धर्म (स्थान खोज के लिए Mapbox टोकन चाहिए)",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"},upg100Placeholder:"जनसमूह, UPG-100 सूची या क्षेत्र खोजें…"},Wy={prayer:"प्रार्थना",adoption:"गोद लेना",engagement:"सहभागिता","affinity-blocks":"जनसमूह",regions:"क्षेत्र",countries:"देश","language-families":"भाषाएँ",religion:"धर्म",family:"भाषा परिवार",language:"भाषा",dialect:"बोली/रूप",bloc:"समानता समूह",cluster:"क्लस्टर",group:"जनसमूह",pgic:"देश में जनसमूह",region:"WAGF क्षेत्र",block:"WAGF ब्लॉक",country:"देश",upg100Region:"क्षेत्र",upg100Zone:"UPG-100 सूचियाँ",upg100Group:"जनसमूह",selectView:"दृश्य चुनें",views:"दृश्य",prayerResources:"प्रार्थना संसाधन",map:"मानचित्र",countryPosters:"देश पोस्टर"},qy={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio",collapseLegend:"Comprimi la legenda",expandLegend:"Espandi la legenda",toggleLegend:"Mostra o nascondi la legenda",searchPeopleGroups:"Cerca popoli",resetAllFilters:"Reimposta tutti i filtri e la ricerca",selectAllRows:"Seleziona tutte le righe",deselectAllRows:"Deseleziona tutte le righe"},Yy={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",posterMap:"Mappa del poster",prayerList:"Lista di preghiera",cardDeck:"Mazzo di carte",printOptions:"Opzioni di stampa",showOnMap:"Mostra sulla mappa",close:"Chiudi",showOnMapAria:"Mostra {label} sulla mappa",cardStockAria:"Formato della scheda di preghiera",previewPrintPoster:"Anteprima e stampa del poster {label}",share:"Condividi",shareSteps:["Incorpora questa mappa nel tuo sito","Fai un elenco dei siti web della tua città","Insegna loro a incorporarla a loro volta","Insegna loro a formare altri a incorporarla","Moltiplichiamo le mappe ovunque per Gesù!"],clearSelection:"Cancella la selezione",noOptions:"Nessuna opzione trovata",renderingLocal:"Un’immagine con qualità di stampa viene generata nel tuo browser: nulla viene caricato.",postersPerRow:"Poster per riga"},Zy={research_controls:"Controlli di ricerca",clustering:"Raggruppamento",filters:"Filtri",pin_dim:"Opacità dei punti",export_poster:"Esporta poster…",reload_data:"Ricarica i dati",off:"Disattivato",native:"Nativo",mst:"MST",network:"Rete",off_desc:"Mostra ogni punto singolarmente",native_desc:"Cluster circolari Mapbox (il più veloce)",mst_desc:"Reti di affinità ad albero ricoprente minimo",network_desc:"Linee verso il vicino più prossimo",search_languages:"Cerca lingue…",search_religions:"Cerca religioni…",reset_all:"Reimposta tutto",no_languages:"Nessuna lingua ancora caricata",no_religions:"Nessuna religione ancora caricata",unadopted:"Non adottato",min:"min",max:"max",adopted:"Adottato",adoption:"Adozione",engaged:"Coinvolto",engagement:"Impegno",unengaged:"Necessita impegno",language:"Lingua",religion:"Religione",population:"Popolazione",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",close:"Chiudi",clear:"Cancella",map_controls:"Controlli della mappa"},Xy={bloc:"Blocco di affinità",gospel_access:"Accesso al vangelo",people:"Popoli",people_name:"Popolo (nome)",praying:"In preghiera",religion_family:"Famiglia religiosa",search_language:"Cerca lingua",search_people:"Cerca popolo",search_place:"Cerca luogo",search_religion:"Cerca religione",upgs_in_scope:"UPG nell’ambito",countries_touched:"paesi toccati",unreached:"non raggiunti",sum_population:"Σ popolazione",sum_praying:"Σ in preghiera",charts:"Grafici",table:"Tabella",cluster:"Cluster",country:"Paese",engagement:"Impegno",language:"Lingua",language_family:"Famiglia linguistica",people_group:"Popolo",population:"Popolazione",prayer:"Preghiera",region:"Regione",religion:"Religione",status:"Stato",adopted:"Adottato",filters:"Filtri",gospel_resources:"Risorse del Vangelo",map:"Mappa",search_placeholder:"Cerca popoli, luoghi, lingue, religioni…",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",map_controls:"Controlli della mappa",close:"Chiudi",clear:"Cancella",dashboard_title:"Cruscotto di ricerca generale",align_dashboard:"Allinea cruscotto",align_dashboard_tip:"Ripristina la disposizione predefinita del cruscotto",selected:"Selezionato",world:"Mondo",vertical_legend:"Legenda verticale",groups_in_scope:"popoli nell’ambito",filter_by:"Filtra per",remove_filter:"Rimuovi filtro",groups:"popoli",expand:"Espandi",collapse:"Comprimi",place:"Luogo",export_csv:"Esporta CSV",detail:"Dettaglio",detail_empty:"Seleziona un popolo per vedere il dettaglio",heartbeat_zone:"zona del battito",top_countries:"Paesi principali",select_all:"Seleziona tutto",expand_table:"Espandi tabella",collapse_table:"Comprimi tabella — ingrandisci la mappa",group:"popolo",deselect_all:"Deseleziona tutto"},Jy={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},Qy={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Le note esplicative qui sotto sono in inglese."},mode:{gap:"Divario",coverage:"Risorse trovate"},search:{placeholder:"Cerca un popolo, una lingua o un codice ISO",clear:"Cancella ricerca",none:"Nessuna corrispondenza per quel nome, lingua o codice.",placeholderShort:"Popolo, lingua o codice ISO"},legend:{title:"Popoli non raggiunti senza alcuna risorsa del vangelo",band60:"60%+ senza nulla",band30:"30–59%",bandSome:"alcuni popoli",bandAll:"tutti i popoli hanno qualcosa",tier2:"Scritture e film",tier1:"qualche risorsa trovata",tier0:"nulla trovato",hnr:"possono ascoltarlo, nessun testo",showAll:"Mostra tutti i popoli",titleCoverage:"Popoli non raggiunti con qualche risorsa del vangelo",cov80:"80%+ hanno qualcosa",cov50:"50–79%",cov1:"1–49%",cov0:"nulla per nessuno",tallyEach:"Ogni",tallyIs:"è UN popolo —",tallyOf:"di questi,",tallyLink:"con un link",doxa0:"tutti hanno qualcosa",doxa1:"1–4 senza nulla",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 raggiunti",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoli Doxa su questa mappa",notPlaced:"in elenco, non ancora collocati",outOfScope:"nessun popolo Doxa — non colorato"},tabs:{groups:"Popoli più numerosi",countries:"Per paese",regions:"Per regione",noprayer:"Nessuno prega",hnr:"Ascoltano, senza testo"},stat:{language:"Lingua",population:"Popolazione",countries:"Paesi",peopleGroups:"Popoli",noResource:"Nessuna risorsa trovata",peopleAffected:"Persone coinvolte",haveScripture:"Hanno le Scritture",haveFilm:"Hanno il film",haveAudio:"Hanno le Scritture in audio",signLanguages:"Lingue dei segni",growingUnreached:"In crescita e non raggiunti",deathsDay:"Decessi stimati/giorno"},sheet:{ownLanguage:"Nella loro lingua",close:"Chiudi",loading:"Caricamento risorse…",pray:"Prega per",everyResource:"Tutte le risorse in",alsoSpeak:"Parlano anche"},res:{scripture:"Scritture",film:"Film",audio:"Audio",bibleVideo:"Video biblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del Vangelo",gospelPresentation:"Presentazione del Vangelo",scriptureEarth:"Scripture Earth",training:"Formazione al discepolato",jesusFilm:"Film GESÙ",audioScripture:"Scritture in audio",bibleStoriesPlain:"Storie bibliche"},state:{noneFound:"nulla trovato",noneAtFcbh:"nulla presso FCBH",noneAtGrn:"nulla presso GRN",notInZume:"non tra le 54 di Zume",linkChecked:"link verificato",unchecked:"non verificato",linkDead:"link non attivo",wrongLanguage:"lingua errata",varietyNotStated:"(varietà non indicata)",inLanguage:"in"},guide:{dotVsCountry:"Ogni punto è UN popolo di Doxa con la sua lingua; un paese è il NUMERO di quei popoli.",noneFoundShort:"«Nulla trovato» significa assente dalle fonti controllate, mai la prova che non esista.",tapCountry:"Tocca un paese per vedere le risorse, popolo per popolo."},tables:{title:"Risorse del Vangelo — Dati",showing:"Mostrando",of:"di",for:"per",filteredTo:"Filtrato per",showAll:"Mostra tutte le risorse",t_doxa:"Doxa — Accesso al Vangelo",t_links:"Ogni risorsa + link",t_nothing:"Dove non si è trovato nulla",t_countrygap:"Il divario per paese",t_translation:"Ascoltano, senza testo",t_translationcountry:"Dove tradurre",t_province:"Accesso al Vangelo per provincia — India e Cina",t_gaps:"Divari e opportunità",t_bridges:"Ponti urbani",t_deaf:"Il divario sordo",t_resources:"Risorse per popolo",t_languages:"Lingue per paese",t_growth:"Accesso vs crescita"},pages:{listTitle:"Risorse del Vangelo per lingua",chartsTitle:"Risorse del Vangelo — per lingua",loadingTables:"Caricamento delle tabelle…"},list:{noText:"Nessun testo biblico",hasScripture:"Ha le Scritture",allLanguages:"Tutte le lingue",peopleGroup:"popolo",peopleGroups:"popoli",scriptureHere:"Scritture in questa lingua"},columns:{"People group":"Popolo",Country:"Paese",Region:"Regione",Language:"Lingua",Population:"Popolazione",Religion:"Religione","Gospel access":"Accesso al Vangelo",Resources:"Risorse",Scripture:"Scritture","Bible video":"Video biblico","Gospel presentation":"Presentazione del Vangelo",Countries:"Paesi","People groups":"Popoli"},charts:{scriptureAny:"Scritture (qualsiasi)",fullBible:"Bibbia completa",newTestament:"Nuovo Testamento",filmAny:"Film (qualsiasi)",nothingInPools:"Nulla trovato nelle fonti controllate",nothingInPoolsLower:"nulla trovato nelle fonti controllate",noResourceInPools:"nessuna risorsa trovata nelle fonti controllate",aResourceFound:"una risorsa trovata",tabCoverage:"Copertura delle risorse",tabGap:"Lacune maggiori",keyScripture:"scritture",keyFilmStories:"film / storie",keyAudioEtc:"audio / presentazione / formazione",unresolvedCode:"codice fuori ISO 639-3 — non risolto, non misurato",c1Title:"Che cosa è stato TROVATO, per tipo di risorsa",c1Sub:"Su tutte le {n} lingue del corpus. Ogni barra conta LINGUE, non gruppi etnici.",c1Unit:"lingue in cui la risorsa è stata trovata nelle fonti controllate",c2Title:"Popolazioni più numerose senza nulla trovato",c2Sub:"Le {n} lingue senza Scritture né film nelle fonti controllate, ordinate per la popolazione dei gruppi che le parlano.",c2Unit:"persone nei gruppi la cui lingua PRINCIPALE è questa — non i parlanti della lingua",c3Title:"Paesi con più lingue non servite",c3Sub:"I {n} paesi con più lingue per cui non è stato trovato nulla. La lunghezza della barra è ogni lingua presente in quel paese.",c3Unit:"lingue presenti nel paese (una lingua transfrontaliera conta in ciascuno)"}},e_={search:"Cerca popoli…",hide_filters:"Nascondi filtri",show_filters:"Mostra filtri",total:"Totale",showing:"Mostrati",load_more:"Carica altro",full_profile:"Profilo completo",wagf_region:"Regione",wagf_block:"Blocco di affinità",rop1:"Popolo",religion:"Religione",exact_filter:"Esatto",clear_all:"Cancella tutto",loading:"Caricamento…",no_results:"Nessun popolo corrisponde a questo filtro.",type_to_search:"Digita per cercare...",load_failed:"Impossibile caricare i dati dei popoli. È un problema di connessione, non del filtro.",search_people_or_countries:"Cerca popoli o paesi…"},t_={title:{adoption:"Avanzamento dell'adozione",affinityBlocs:"Blocchi di affinità",doxaRegions:"Regioni Doxa",engagement:"Avanzamento dell'impegno",gospelResources:"Risorse del Vangelo",languageFamilies:"Famiglie linguistiche",prayer:"Avanzamento della preghiera",upg100List:"La mia lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone",default:"Legenda"},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",name:"Nome"},footer:{total:"Totale"},sortByUpgs:"Ordina per UUPG",sortByPop:"Ordina per popolazione",colLabel:{religion:"Religioni UUPG",prayer:"Stato della preghiera",engagement:"Stato dell'impegno",adoption:"Stato dell'adozione",status:"Stato"},titleBar:{legend:"Legenda",peopleGroups:"Popoli",wagfRegions:"Regioni WAGF",languages:"Lingue"},tabInfo:{upg100Region:"Regione — ordina le liste UPG-100 per area del mondo (Africa, India, Medio Oriente, Sordi, …). I totali sono gli UUPG e la popolazione sommati di ogni lista sottostante.",upg100Zone:"Liste UPG-100 — ognuna è una lista di preghiera dei gruppi etnici non raggiunti di un’area, ed è ciò che la mappa disegna e colora. Ogni lista si stampa come il proprio fascicolo.",upg100Group:"Gruppo etnico — i singoli gruppi non raggiunti dentro una lista, prima quelli con maggiore bisogno di preghiera. Ogni punto della mappa è uno di questi."},a11y:{expandRow:"Espandi {label}",collapseRow:"Comprimi {label}",clearSelection:"Cancella la selezione"},export:{poster:"Manifesto",packet:"Libretto"},noDataAtThisLevel:"Nessun dato a questo livello",exportButton:"Esporta",exportSelection:"Esporta la selezione"},o_={menuComingSoon:"Menu in arrivo",pinHint:{tapDot:"Tocca un punto colorato — qualcuno ha ancora bisogno di preghiera"},upg100WallHeading:"La mia lista UPG 100 — Liste di preghiera e poster",upg100WallTag:"Mobilitazione alla preghiera",upg100WallIntro:"Distribuisci il compito della preghiera in gruppi di cinquanta e di cento — come Gesù sfamò i 5.000 (Luca 9:14). Ogni poster è una lista di 100 che puoi pregare, stampare e appendere al muro — pregando per loro con il nome del loro popolo."},n_={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},a_={country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},s_={"%count% people groups in %countries% countries":"%count% popoli in %countries% paesi","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% conta %count% popoli in %countries% paesi. Il colore di ogni punto indica quante persone pregano per quel popolo.","1+ People Praying":"1+ persone in preghiera","100+ People Praying":"100+ persone in preghiera",Adopted:"Adottato","Adoption Progress":"Avanzamento dell'adozione","All Regions":"Tutte le regioni","Alternate Names":"Nomi alternativi","Choose a region":"Scegli una regione","Clear All":"Cancella tutto",Countries:"Paesi","Countries in this region":"Paesi di questa regione",Country:"Paese",Engaged:"Coinvolto","Engagement Progress":"Avanzamento dell'impegno","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Ogni popolo non ancora raggiunto adottato da una chiesa impegnata nella preghiera, nel dare e nell'inviare","Exact Search":"Ricerca esatta","Find unreached people groups by region and country.":"Trova i popoli non raggiunti per regione e paese.","Full Profile":"Profilo completo",Goal:"Obiettivo","Hide Filters":"Nascondi i filtri","Hide country posters":"Nascondi i poster del paese",Intercessors:"Intercessori","Load More":"Carica altri","Loading results...":"Caricamento dei risultati…",Map:"Mappa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilitare oltre 100 persone che pregano ogni giorno per ciascun popolo DOXA","No One Praying":"Nessuno prega","No options found":"Nessuna opzione trovata","No poster has been generated for this country yet.":"Per questo paese non è ancora stato generato alcun poster.","No unengaged people groups by 2033":"Nessun popolo senza impegno entro il 2033","Not Adopted":"Non adottato",Other:"Altro","Page Not Found":"Pagina non trovata","People Group":"Popolo","People Groups":"Popoli","People committed to praying":"Persone impegnate a pregare","Pick a region above, or click any dot to open that people group's country.":"Scegli una regione qui sopra, oppure clicca su un punto per aprire il paese di quel gruppo etnico.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Scegli una regione o un paese nella scheda Elenco delle regioni per restringere questo cruscotto.",Population:"Popolazione","Prayer Coverage":"Copertura della preghiera","Prayer coverage progress":"Avanzamento della copertura di preghiera","Region Dashboards":"Cruscotti delle regioni","Region dashboard":"Cruscotto della regione",Regions:"Regioni","Regions List":"Elenco delle regioni",Religion:"Religione","Search names, country/continent, religions...":"Cerca nomi, paese/continente, religioni…","See %region% dashboard":"Vedi il cruscotto di %region%","See All":"Vedi tutto",Select:"Seleziona","Select View":"Seleziona vista","Show Filters":"Mostra i filtri","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% ci sono %count% popoli. Controlla sulla mappa anche i popoli ai confini di questo paese.",Total:"Totale","Type to search...":"Digita per cercare…","Unengaged people groups":"Popoli senza impegno","View country posters":"Vedi i poster del paese",Views:"Viste","WAGF Block":"Blocco WAGF","WAGF Region":"Regione WAGF","people groups adopted":"popoli adottati","people groups engaged":"popoli coinvolti","Outside this region":"Fuori da questa regione",Pray:"Prega","Loading region dashboards…":"Caricamento delle dashboard delle regioni…","No regions found.":"Nessuna regione trovata.","Region data could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i dati delle regioni. È un problema di connessione, non un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i gruppi di popolazione. È un problema di connessione, non un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La mappa non è potuta avviare. È un problema di token della mappa o di connessione, non un filtro: i dati sopra non sono interessati."},r_={placeholder:"Popolo, luogo, lingua, religione",placeholderNoPlaces:"Popolo, lingua, religione (la ricerca di luoghi richiede un token Mapbox)",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"},sections:{within:"In {selection}",allData:"Tutti i dati DOXA"},kinds:{people:"Popolo + paese",peopleGroup:"Popolo",bloc:"Blocco di affinità",cluster:"Cluster di popoli",country:"Paese",region:"Regione",family:"Famiglia linguistica",languageKind:"Lingua",dialect:"Dialetto",religionKind:"Religione"},upg100Placeholder:"Cerca popolo, elenco UPG-100 o regione…"},i_={prayer:"Preghiera",adoption:"Adozione",engagement:"Impegno","affinity-blocks":"Popoli",regions:"Regioni",countries:"Paesi","language-families":"Lingue",religion:"Religioni",family:"Famiglia ling.",language:"Lingua",dialect:"Dialetto/Variante",bloc:"Blocco di affinità",cluster:"Cluster",group:"Popolo",pgic:"Popolo nel paese",region:"Regione WAGF",block:"Blocco WAGF",country:"Paese",upg100Region:"Regione",upg100Zone:"Liste UPG-100",upg100Group:"Gruppo etnico",selectView:"Seleziona vista",views:"Viste",prayerResources:"Risorse di preghiera",map:"Mappa",countryPosters:"Poster per paese"},l_={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe",collapseLegend:"Recolher a legenda",expandLegend:"Expandir a legenda",toggleLegend:"Mostrar ou ocultar a legenda",searchPeopleGroups:"Pesquisar povos",resetAllFilters:"Redefinir todos os filtros e a pesquisa",selectAllRows:"Selecionar todas as linhas",deselectAllRows:"Desmarcar todas as linhas"},c_={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",posterMap:"Mapa do cartaz",prayerList:"Lista de oração",cardDeck:"Baralho de cartões",printOptions:"Opções de impressão",showOnMap:"Ver no mapa",close:"Fechar",showOnMapAria:"Ver {label} no mapa",cardStockAria:"Tamanho do cartão de oração",previewPrintPoster:"Pré-visualizar e imprimir o cartaz de {label}",share:"Partilhar",shareSteps:["Incorpore este mapa no seu site","Faça uma lista dos sites da sua cidade","Ensine-os a incorporá-lo também","Ensine-os a ensinar outros a incorporá-lo","Multipliquemos mapas por toda a parte para Jesus!"],clearSelection:"Limpar a seleção",noOptions:"Nenhuma opção encontrada",renderingLocal:"Uma imagem com qualidade de impressão está a ser gerada no seu navegador — nada é enviado.",postersPerRow:"Cartazes por linha"},u_={research_controls:"Controlos de pesquisa",clustering:"Agrupamento",filters:"Filtros",pin_dim:"Esbater pontos",export_poster:"Exportar cartaz…",reload_data:"Recarregar dados",off:"Desligado",native:"Nativo",mst:"MST",network:"Rede",off_desc:"Mostrar cada ponto individualmente",native_desc:"Grupos circulares Mapbox (mais rápido)",mst_desc:"Redes de afinidade por árvore geradora mínima",network_desc:"Linhas para o vizinho mais próximo",search_languages:"Pesquisar idiomas…",search_religions:"Pesquisar religiões…",reset_all:"Repor tudo",no_languages:"Ainda não há idiomas carregados",no_religions:"Ainda não há religiões carregadas",unadopted:"Não adotado",min:"mín",max:"máx",adopted:"Adotado",adoption:"Adoção",engaged:"Engajado",engagement:"Engajamento",unengaged:"Precisa de envolvimento",language:"Idioma",religion:"Religião",population:"População",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",close:"Fechar",clear:"Limpar",map_controls:"Controlos do mapa"},p_={bloc:"Bloco de afinidade",gospel_access:"Acesso ao evangelho",people:"Povos",people_name:"Povo (nome)",praying:"A orar",religion_family:"Família religiosa",search_language:"Pesquisar idioma",search_people:"Pesquisar povo",search_place:"Pesquisar lugar",search_religion:"Pesquisar religião",upgs_in_scope:"UPG no âmbito",countries_touched:"países alcançados",unreached:"não alcançados",sum_population:"Σ população",sum_praying:"Σ a orar",charts:"Gráficos",table:"Tabela",cluster:"Agrupamento",country:"País",engagement:"Engajamento",language:"Idioma",language_family:"Família linguística",people_group:"Povo",population:"População",prayer:"Oração",region:"Região",religion:"Religião",status:"Status",adopted:"Adotado",filters:"Filtros",gospel_resources:"Recursos do Evangelho",map:"Mapa",search_placeholder:"Pesquisar povos, lugares, idiomas, religiões…",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",map_controls:"Controlos do mapa",close:"Fechar",clear:"Limpar",dashboard_title:"Painel de pesquisa geral",align_dashboard:"Alinhar painel",align_dashboard_tip:"Repor a disposição do painel para o alinhamento predefinido",selected:"Selecionado",world:"Mundo",vertical_legend:"Legenda vertical",groups_in_scope:"povos no âmbito",filter_by:"Filtrar por",remove_filter:"Remover filtro",groups:"povos",expand:"Expandir",collapse:"Recolher",place:"Lugar",export_csv:"Exportar CSV",detail:"Detalhe",detail_empty:"Selecione um povo para ver o detalhe",heartbeat_zone:"zona do batimento",top_countries:"Principais países",select_all:"Selecionar tudo",expand_table:"Expandir tabela",collapse_table:"Recolher tabela — ampliar o mapa",group:"povo",deselect_all:"Desmarcar tudo"},d_={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."}},g_={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"As notas explicativas abaixo estão em inglês."},mode:{gap:"Lacuna",coverage:"Recursos encontrados"},search:{placeholder:"Procure um povo, idioma ou código ISO",clear:"Limpar busca",none:"Nada corresponde a esse nome, idioma ou código.",placeholderShort:"Povo, idioma ou código ISO"},legend:{title:"Povos não alcançados sem nenhum recurso do evangelho",band60:"60%+ sem nada encontrado",band30:"30–59%",bandSome:"alguns povos",bandAll:"todos os povos têm algo",tier2:"Escrituras e filme",tier1:"algum recurso encontrado",tier0:"nada encontrado",hnr:"podem ouvir, sem texto",showAll:"Mostrar todos os povos",titleCoverage:"Povos não alcançados com algum recurso do evangelho",cov80:"80%+ têm algo",cov50:"50–79%",cov1:"1–49%",cov0:"nada para ninguém",tallyEach:"Cada",tallyIs:"é UM povo —",tallyOf:"deles,",tallyLink:"com um link",doxa0:"todos têm algo",doxa1:"1–4 sem nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcançados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Povos Doxa neste mapa",notPlaced:"na lista, ainda sem localização",outOfScope:"sem povos Doxa — sem cor"},tabs:{groups:"Maiores povos",countries:"Por país",regions:"Por região",noprayer:"Ninguém orando",hnr:"Ouvem, sem texto"},stat:{language:"Idioma",population:"População",countries:"Países",peopleGroups:"Povos",noResource:"Nenhum recurso encontrado",peopleAffected:"Pessoas afetadas",haveScripture:"Têm Escrituras",haveFilm:"Têm filme",haveAudio:"Têm Escrituras em áudio",signLanguages:"Línguas de sinais",growingUnreached:"Em crescimento e não alcançados",deathsDay:"Mortes estimadas/dia"},sheet:{ownLanguage:"No próprio idioma",close:"Fechar",loading:"Carregando recursos…",pray:"Ore por",everyResource:"Todos os recursos em",alsoSpeak:"Também falam"},res:{scripture:"Escrituras",film:"Filme",audio:"Áudio",bibleVideo:"Vídeo bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Áudio do evangelho",gospelPresentation:"Apresentação do evangelho",scriptureEarth:"Scripture Earth",training:"Treinamento de discipulado",jesusFilm:"Filme JESUS",audioScripture:"Escrituras em áudio",bibleStoriesPlain:"Histórias bíblicas"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada na FCBH",noneAtGrn:"nada na GRN",notInZume:"não está entre as 54 da Zume",linkChecked:"link verificado",unchecked:"não verificado",linkDead:"link inativo",wrongLanguage:"idioma incorreto",varietyNotStated:"(variedade não indicada)",inLanguage:"em"},guide:{dotVsCountry:"Cada ponto é UM povo da Doxa e o seu próprio idioma; um país é o NÚMERO desses povos.",noneFoundShort:"«Nada encontrado» significa ausente das fontes verificadas, nunca prova de que não exista.",tapCountry:"Toque num país para ver os recursos, povo a povo."},tables:{title:"Recursos do evangelho — Dados",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos os recursos",t_doxa:"Doxa — Acesso ao evangelho",t_links:"Cada recurso + link",t_nothing:"Onde nada foi encontrado",t_countrygap:"A lacuna por país",t_translation:"Ouvem, sem texto",t_translationcountry:"Onde traduzir",t_province:"Acesso ao Evangelho por província — Índia e China",t_gaps:"Lacunas e oportunidades",t_bridges:"Pontes urbanas",t_deaf:"A lacuna surda",t_resources:"Recursos por povo",t_languages:"Idiomas por país",t_growth:"Acesso vs crescimento"},pages:{listTitle:"Recursos do evangelho por idioma",chartsTitle:"Recursos do evangelho — por idioma",loadingTables:"Carregando tabelas de recursos…"},list:{noText:"Sem texto bíblico",hasScripture:"Tem Escrituras",allLanguages:"Todos os idiomas",peopleGroup:"povo",peopleGroups:"povos",scriptureHere:"Escrituras neste idioma"},columns:{"People group":"Povo",Country:"País",Region:"Região",Language:"Idioma",Population:"População",Religion:"Religião","Gospel access":"Acesso ao evangelho",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Vídeo bíblico","Gospel presentation":"Apresentação do evangelho",Countries:"Países","People groups":"Povos"},charts:{scriptureAny:"Escrituras (qualquer)",fullBible:"Bíblia completa",newTestament:"Novo Testamento",filmAny:"Filme (qualquer)",nothingInPools:"Nada encontrado nas fontes consultadas",nothingInPoolsLower:"nada encontrado nas fontes consultadas",noResourceInPools:"nenhum recurso encontrado nas fontes consultadas",aResourceFound:"um recurso encontrado",tabCoverage:"Cobertura de recursos",tabGap:"Maiores lacunas",keyScripture:"escrituras",keyFilmStories:"filme / histórias",keyAudioEtc:"áudio / apresentação / treinamento",unresolvedCode:"código fora da ISO 639-3 — não resolvido, não medido",c1Title:"O que foi ENCONTRADO, por tipo de recurso",c1Sub:"Em todas as {n} línguas do conjunto de dados. Cada barra conta LÍNGUAS, não etnias.",c1Unit:"línguas em que o recurso foi encontrado nas fontes consultadas",c2Title:"Maiores populações sem nada encontrado",c2Sub:"As {n} línguas sem Escrituras e sem filme nas fontes consultadas, ordenadas pela população das etnias que as falam.",c2Unit:"pessoas nas etnias cuja língua PRINCIPAL é esta — não falantes da língua",c3Title:"Países com mais línguas desatendidas",c3Sub:"Os {n} países com mais línguas sem nada encontrado. O comprimento da barra é cada língua presente nesse país.",c3Unit:"línguas presentes no país (uma língua transfronteiriça conta em cada um)"}},f_={search:"Pesquisar povos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Carregar mais",full_profile:"Perfil completo",wagf_region:"Região",wagf_block:"Bloco de afinidade",rop1:"Povo",religion:"Religião",exact_filter:"Exato",clear_all:"Limpar tudo",loading:"A carregar…",no_results:"Nenhum povo corresponde a este filtro.",type_to_search:"Escreva para pesquisar...",load_failed:"Não foi possível carregar os dados dos povos. É um problema de ligação, não do seu filtro.",search_people_or_countries:"Pesquisar povos ou países…"},h_={title:{adoption:"Progresso da adoção",affinityBlocs:"Blocos de afinidade",doxaRegions:"Regiões Doxa",engagement:"Progresso do envolvimento",gospelResources:"Recursos do Evangelho",languageFamilies:"Famílias linguísticas",prayer:"Progresso da oração",upg100List:"A minha lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas",default:"Legenda"},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"},tabInfo:{upg100Region:"Região — ordena as listas UPG-100 por área do mundo (África, Índia, Oriente Médio, Surdos, …). Os totais são os UUPG e a população somados de todas as listas abaixo dela.",upg100Zone:"Listas UPG-100 — cada uma é uma lista de oração dos grupos étnicos não alcançados de uma área, e é o que o mapa pinta e colore. Cada lista é impressa como seu próprio pacote.",upg100Group:"Grupo étnico — os grupos não alcançados dentro de uma lista, primeiro os de maior necessidade de oração. Cada ponto do mapa é um deles."},a11y:{expandRow:"Expandir {label}",collapseRow:"Recolher {label}",clearSelection:"Limpar a seleção"},export:{poster:"Cartaz",packet:"Caderno"},noDataAtThisLevel:"Sem dados neste nível",exportButton:"Exportar",exportSelection:"Exportar a seleção"},m_={menuComingSoon:"Menu em breve",pinHint:{tapDot:"Toque num ponto colorido — alguém ainda precisa de oração"},upg100WallHeading:"A minha lista UPG 100 — Listas de oração e cartazes",upg100WallTag:"Mobilização de oração",upg100WallIntro:"Reparta a tarefa da oração em grupos de cinquenta e de cem — como Jesus alimentou os 5.000 (Lucas 9:14). Cada cartaz é uma lista de 100 que pode orar, imprimir e pôr na parede — orando por eles pelo nome do seu povo."},b_={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},y_={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},__={"%count% people groups in %countries% countries":"%count% grupos étnicos em %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tem %count% grupos étnicos em %countries% países. A cor de cada ponto indica quantas pessoas oram por esse grupo étnico.","1+ People Praying":"1+ pessoas orando","100+ People Praying":"100+ pessoas orando",Adopted:"Adotado","Adoption Progress":"Progresso da adoção","All Regions":"Todas as regiões","Alternate Names":"Nomes alternativos","Choose a region":"Escolha uma região","Clear All":"Limpar tudo",Countries:"Países","Countries in this region":"Países desta região",Country:"País",Engaged:"Engajado","Engagement Progress":"Progresso do engajamento","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico não engajado adotado por uma igreja comprometida com a oração, contribuição e o envio","Exact Search":"Pesquisa exata","Find unreached people groups by region and country.":"Encontre grupos étnicos não alcançados por região e país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar os cartazes do país",Intercessors:"Intercessores","Load More":"Carregar mais","Loading results...":"A carregar resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizar mais de 100 pessoas para orar diariamente por cada grupo étnico DOXA","No One Praying":"Ninguém orando","No options found":"Não foram encontradas opções","No poster has been generated for this country yet.":"Ainda não foi gerado nenhum cartaz para este país.","No unengaged people groups by 2033":"Nenhum grupo étnico não engajado até 2033","Not Adopted":"Não adotado",Other:"Outros","Page Not Found":"Página não encontrada","People Group":"Grupo étnico","People Groups":"Grupos étnicos","People committed to praying":"Pessoas comprometidas com a oração","Pick a region above, or click any dot to open that people group's country.":"Escolha uma região acima, ou clique em qualquer ponto para abrir o país desse povo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Escolha uma região ou um país na aba Lista de regiões para restringir este painel.",Population:"População","Prayer Coverage":"Cobertura de oração","Prayer coverage progress":"Progresso da cobertura de oração","Region Dashboards":"Painéis das regiões","Region dashboard":"Painel da região",Regions:"Regiões","Regions List":"Lista de regiões",Religion:"Religião","Search names, country/continent, religions...":"Busque nomes, país/continente, religiões...","See %region% dashboard":"Ver o painel: %region%","See All":"Ver tudo",Select:"Selecionar","Select View":"Selecionar visualização","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Existem %count% grupos étnicos em %country%. Verifique no mapa também os grupos étnicos na fronteira deste país.",Total:"Total","Type to search...":"Digite para pesquisar...","Unengaged people groups":"Grupos étnicos não engajados","View country posters":"Ver os cartazes do país",Views:"Visualizações","WAGF Block":"Bloco WAGF","WAGF Region":"Região da WAGF","people groups adopted":"grupos étnicos adotados","people groups engaged":"grupos étnicos engajados","Outside this region":"Fora desta região",Pray:"Ore","Loading region dashboards…":"Carregando os painéis das regiões…","No regions found.":"Nenhuma região encontrada.","Region data could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os dados das regiões. É um problema de conexão, não um filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os povos. É um problema de conexão, não um filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"O mapa não pôde iniciar. É um problema do token do mapa ou de conexão, não um filtro — os números acima não são afetados."},$_={placeholder:"Povo, local, língua, religião",placeholderNoPlaces:"Povo, língua, religião (a busca de locais requer um token do Mapbox)",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"},sections:{within:"Dentro de {selection}",allData:"Todos os dados DOXA"},upg100Placeholder:"Procurar povo, lista UPG-100 ou região…"},v_={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",upg100Region:"Região",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico",selectView:"Selecionar vista",views:"Vistas",prayerResources:"Recursos de oração",map:"Mapa",countryPosters:"Cartazes por país"},w_={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda",searchPeopleGroups:"Caută popoare",resetAllFilters:"Resetează toate filtrele și căutarea",selectAllRows:"Selectează toate rândurile",deselectAllRows:"Deselectează toate rândurile"},k_={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ă",posterMap:"Harta afișului",prayerList:"Listă de rugăciune",cardDeck:"Pachet de cartonașe",printOptions:"Opțiuni de tipărire",showOnMap:"Arată pe hartă",close:"Închide",showOnMapAria:"Arată {label} pe hartă",cardStockAria:"Dimensiunea cardului de rugăciune",previewPrintPoster:"Previzualizează și tipărește posterul {label}",share:"Distribuie",shareSteps:["Încorporează această hartă pe site-ul tău","Fă o listă cu site-urile din orașul tău","Învață-i să o încorporeze și ei","Învață-i să îi formeze pe alții să o încorporeze","Să multiplicăm hărți pretutindeni pentru Isus!"],clearSelection:"Șterge selecția",noOptions:"Nicio opțiune găsită",renderingLocal:"O imagine de calitate pentru tipar este generată în browserul tău — nimic nu este încărcat.",postersPerRow:"Postere pe rând"},x_={research_controls:"Comenzi de cercetare",clustering:"Grupare",filters:"Filtre",pin_dim:"Estompare puncte",export_poster:"Exportă posterul…",reload_data:"Reîncarcă datele",off:"Oprit",native:"Nativ",mst:"MST",network:"Rețea",off_desc:"Arată fiecare punct separat",native_desc:"Grupuri circulare Mapbox (cel mai rapid)",mst_desc:"Rețele de afinitate prin arbore minim de acoperire",network_desc:"Linii către cel mai apropiat vecin",search_languages:"Caută limbi…",search_religions:"Caută religii…",reset_all:"Resetează tot",no_languages:"Nicio limbă încărcată încă",no_religions:"Nicio religie încărcată încă",unadopted:"Neadoptat",min:"min",max:"max",adopted:"Adoptat",adoption:"Adopție",engaged:"Implicat",engagement:"Implicare",unengaged:"Necesită implicare",language:"Limbă",religion:"Religie",population:"Populație",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",close:"Închide",clear:"Șterge",map_controls:"Comenzile hărții"},A_={bloc:"Bloc de afinitate",gospel_access:"Acces la Evanghelie",people:"Popoare",people_name:"Popor (nume)",praying:"Se roagă",religion_family:"Familie religioasă",search_language:"Caută limbă",search_people:"Caută popor",search_place:"Caută loc",search_religion:"Caută religie",upgs_in_scope:"UPG în domeniu",countries_touched:"țări atinse",unreached:"neatinși",sum_population:"Σ populație",sum_praying:"Σ se roagă",charts:"Grafice",table:"Tabel",cluster:"Grup",country:"Țară",engagement:"Implicare",language:"Limbă",language_family:"Familie de limbi",people_group:"Popor",population:"Populație",prayer:"Rugăciune",region:"Regiune",religion:"Religie",status:"Stare",adopted:"Adoptat",filters:"Filtre",gospel_resources:"Resurse ale Evangheliei",map:"Hartă",search_placeholder:"Caută popoare, locuri, limbi, religii…",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",map_controls:"Comenzile hărții",close:"Închide",clear:"Șterge",dashboard_title:"Tablou de bord de cercetare general",align_dashboard:"Aliniază tabloul",align_dashboard_tip:"Readu aranjarea tabloului la alinierea implicită",selected:"Selectat",world:"Lume",vertical_legend:"Legendă verticală",groups_in_scope:"popoare în domeniu",filter_by:"Filtrează după",remove_filter:"Elimină filtrul",groups:"popoare",expand:"Extinde",collapse:"Restrânge",place:"Loc",export_csv:"Exportă CSV",detail:"Detaliu",detail_empty:"Selectează un popor pentru a vedea detaliile",heartbeat_zone:"zona bătăilor inimii",top_countries:"Țări de top",select_all:"Selectează tot",expand_table:"Extinde tabelul",collapse_table:"Restrânge tabelul — mărește harta",group:"popor",deselect_all:"Deselectează tot"},S_={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ă."}},P_={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Notele explicative de mai jos sunt în limba engleză."},mode:{gap:"Golul",coverage:"Resurse găsite"},search:{placeholder:"Caută un popor, o limbă sau un cod ISO",clear:"Șterge căutarea",none:"Nimic nu se potrivește cu acel nume, limbă sau cod.",placeholderShort:"Popor, limbă sau cod ISO"},legend:{title:"Popoare neatinse, fără nicio resursă a Evangheliei",band60:"60%+ fără nimic găsit",band30:"30–59%",bandSome:"unele popoare",bandAll:"toate popoarele au ceva",tier2:"Scripturi și film",tier1:"s-a găsit o resursă",tier0:"nimic găsit",hnr:"pot auzi, fără text",showAll:"Arată toate popoarele",titleCoverage:"Popoare neatinse cu o resursă a Evangheliei",cov80:"80%+ au ceva",cov50:"50–79%",cov1:"1–49%",cov0:"nimic pentru niciunul",tallyEach:"Fiecare",tallyIs:"este UN popor —",tallyOf:"dintre ele,",tallyLink:"cu un link",doxa0:"toate au ceva",doxa1:"1–4 fără nimic",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atinse",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoare Doxa pe această hartă",notPlaced:"pe listă, încă nelocalizate",outOfScope:"niciun popor Doxa — necolorat"},tabs:{groups:"Cele mai mari popoare",countries:"După țară",regions:"După regiune",noprayer:"Nimeni nu se roagă",hnr:"Aud, fără text"},stat:{language:"Limba",population:"Populație",countries:"Țări",peopleGroups:"Popoare",noResource:"Nicio resursă găsită",peopleAffected:"Persoane afectate",haveScripture:"Au Scripturile",haveFilm:"Au filmul",haveAudio:"Au Scripturi audio",signLanguages:"Limbaje semne",growingUnreached:"În creștere și neatinse",deathsDay:"Decese estimate/zi"},sheet:{ownLanguage:"În limba lor",close:"Închide",loading:"Se încarcă resursele…",pray:"Roagă-te pentru",everyResource:"Toate resursele în",alsoSpeak:"Vorbesc și"},res:{scripture:"Scripturi",film:"Film",audio:"Audio",bibleVideo:"Video biblic",bibleStories:"Open Bible Stories",gospelAudio:"Audio cu Evanghelia",gospelPresentation:"Prezentarea Evangheliei",scriptureEarth:"Scripture Earth",training:"Instruire în ucenicie",jesusFilm:"Filmul ISUS",audioScripture:"Scripturi audio",bibleStoriesPlain:"Povestiri biblice"},state:{noneFound:"nimic găsit",noneAtFcbh:"nimic la FCBH",noneAtGrn:"nimic la GRN",notInZume:"nu este între cele 54 Zume",linkChecked:"link verificat",unchecked:"neverificat",linkDead:"link mort",wrongLanguage:"limbă greșită",varietyNotStated:"(varietate nespecificată)",inLanguage:"în"},guide:{dotVsCountry:"Fiecare punct este UN popor Doxa și limba lui; o țară este NUMĂRUL acelor popoare.",noneFoundShort:"„Nimic găsit” înseamnă absent din sursele verificate, niciodată dovada că nu există.",tapCountry:"Atinge o țară pentru a vedea resursele, popor cu popor."},tables:{title:"Resurse ale Evangheliei — Date",showing:"Se afișează",of:"din",for:"pentru",filteredTo:"Filtrat după",showAll:"Arată toate resursele",t_doxa:"Doxa — Acces la Evanghelie",t_links:"Fiecare resursă + link",t_nothing:"Unde nu s-a găsit nimic",t_countrygap:"Golul pe țări",t_translation:"Aud, fără text",t_translationcountry:"Unde să traducem",t_province:"Accesul la Evanghelie pe provincii — India și China",t_gaps:"Goluri și oportunități",t_bridges:"Punți urbane",t_deaf:"Golul surd",t_resources:"Resurse pe popoare",t_languages:"Limbi pe țări",t_growth:"Acces vs creștere"},pages:{listTitle:"Resurse ale Evangheliei pe limbi",chartsTitle:"Resurse ale Evangheliei — pe limbi",loadingTables:"Se încarcă tabelele…"},list:{noText:"Fără text biblic",hasScripture:"Are Scripturi",allLanguages:"Toate limbile",peopleGroup:"popor",peopleGroups:"popoare",scriptureHere:"Scripturi în această limbă"},columns:{"People group":"Popor",Country:"Țară",Region:"Regiune",Language:"Limbă",Population:"Populație",Religion:"Religie","Gospel access":"Acces la Evanghelie",Resources:"Resurse",Scripture:"Scripturi","Bible video":"Video biblic","Gospel presentation":"Prezentarea Evangheliei",Countries:"Țări","People groups":"Popoare"},charts:{scriptureAny:"Scripturi (oricare)",fullBible:"Biblia completă",newTestament:"Noul Testament",filmAny:"Film (oricare)",nothingInPools:"Nimic găsit în sursele verificate",nothingInPoolsLower:"nimic găsit în sursele verificate",noResourceInPools:"nicio resursă găsită în sursele verificate",aResourceFound:"o resursă găsită",tabCoverage:"Acoperirea resurselor",tabGap:"Cele mai mari lacune",keyScripture:"scripturi",keyFilmStories:"film / povestiri",keyAudioEtc:"audio / prezentare / instruire",unresolvedCode:"cod în afara ISO 639-3 — nerezolvat, nemăsurat",c1Title:"Ce s-a GĂSIT, după tipul resursei",c1Sub:"Pe toate cele {n} limbi din setul de date. Fiecare bară numără LIMBI, nu grupuri etnice.",c1Unit:"limbi în care resursa a fost găsită în sursele verificate",c2Title:"Cele mai mari populații fără nimic găsit",c2Sub:"Cele {n} limbi fără Scripturi și fără film în sursele verificate, ordonate după populația grupurilor care le vorbesc.",c2Unit:"persoane din grupurile a căror limbă PRINCIPALĂ este aceasta — nu vorbitorii limbii",c3Title:"Țări cu cele mai multe limbi neservite",c3Sub:"Cele {n} țări cu cele mai multe limbi pentru care nu s-a găsit nimic. Lungimea barei este fiecare limbă prezentă în acea țară.",c3Unit:"limbi prezente în țară (o limbă transfrontalieră se numără în fiecare)"}},L_={search:"Caută popoare…",hide_filters:"Ascunde filtrele",show_filters:"Arată filtrele",total:"Total",showing:"Se afișează",load_more:"Încarcă mai mult",full_profile:"Profil complet",wagf_region:"Regiune",wagf_block:"Bloc de afinitate",rop1:"Popor",religion:"Religie",exact_filter:"Exact",clear_all:"Șterge tot",loading:"Se încarcă…",no_results:"Niciun popor nu corespunde acestui filtru.",type_to_search:"Scrie pentru a căuta...",load_failed:"Datele despre popoare nu au putut fi încărcate. Este o problemă de conexiune, nu a filtrului.",search_people_or_countries:"Caută popoare sau țări…"},C_={title:{adoption:"Progresul adopției",affinityBlocs:"Blocuri de afinitate",doxaRegions:"Regiuni Doxa",engagement:"Progresul implicării",gospelResources:"Resurse ale Evangheliei",languageFamilies:"Familii de limbi",prayer:"Progresul rugăciunii",upg100List:"Lista mea UPG 100"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare",default:"Legendă"},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",name:"Nume"},footer:{total:"Total"},sortByUpgs:"Sortează după UUPG",sortByPop:"Sortează după populație",colLabel:{religion:"Religii UUPG",prayer:"Starea rugăciunii",engagement:"Starea implicării",adoption:"Starea adopției",status:"Stare"},titleBar:{legend:"Legendă",peopleGroups:"Popoare",wagfRegions:"Regiuni WAGF",languages:"Limbi"},tabInfo:{upg100Region:"Regiune — sortează listele UPG-100 după zona lumii (Africa, India, Orientul Mijlociu, Surzi, …). Totalurile sunt UUPG-urile și populația însumate din fiecare listă de dedesubt.",upg100Zone:"Liste UPG-100 — fiecare este o listă de rugăciune a grupurilor etnice neatinse dintr-o zonă și este ceea ce harta desenează și colorează. Fiecare listă se tipărește ca propriul pachet.",upg100Group:"Grup etnic — grupurile neatinse dintr-o listă, mai întâi cele cu cea mai mare nevoie de rugăciune. Fiecare punct de pe hartă este unul dintre ele."},a11y:{expandRow:"Extinde {label}",collapseRow:"Restrânge {label}",clearSelection:"Șterge selecția"},export:{poster:"Afiș",packet:"Broșură"},noDataAtThisLevel:"Nu există date la acest nivel",exportButton:"Exportă",exportSelection:"Exportă selecția"},T_={menuComingSoon:"Meniu în curând",pinHint:{tapDot:"Atinge un punct colorat — cineva are încă nevoie de rugăciune"},upg100WallHeading:"Lista mea UPG 100 — Liste de rugăciune și afișe",upg100WallTag:"Mobilizare pentru rugăciune",upg100WallIntro:"Împarte sarcina rugăciunii în grupuri de câte cincizeci și o sută — așa cum Isus a hrănit cei 5.000 (Luca 9:14). Fiecare afiș este o listă de 100 pe care o poți ruga, tipări și pune pe perete — rugându-te pentru ei pe numele poporului lor."},E_={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},R_={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},N_={"%count% people groups in %countries% countries":"%count% popoare în %countries% țări","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% are %count% popoare în %countries% țări. Culoarea fiecărui punct arată câți oameni se roagă pentru acel popor.","1+ People Praying":"1+ persoane se roagă","100+ People Praying":"100+ persoane se roagă",Adopted:"Adoptat","Adoption Progress":"Progresul adopției","All Regions":"Toate regiunile","Alternate Names":"Denumiri alternative","Choose a region":"Alege o regiune","Clear All":"Șterge tot",Countries:"Țări","Countries in this region":"Țările din această regiune",Country:"Țară",Engaged:"Implicat","Engagement Progress":"Progresul implicării","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Fiecare popor neimplicat adoptat de o biserică dedicată rugăciunii, dăruirii și trimiterii","Exact Search":"Căutare exactă","Find unreached people groups by region and country.":"Găsește popoarele neatinse după regiune și țară.","Full Profile":"Profil complet",Goal:"Obiectiv","Hide Filters":"Ascunde filtrele","Hide country posters":"Ascunde posterele țării",Intercessors:"Mijlocitori","Load More":"Încarcă mai multe","Loading results...":"Se încarcă rezultatele…",Map:"Hartă","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizarea a peste 100 de persoane care se roagă zilnic pentru fiecare popor DOXA","No One Praying":"Nimeni nu se roagă","No options found":"Nu s-a găsit nicio opțiune","No poster has been generated for this country yet.":"Pentru această țară nu a fost generat încă niciun poster.","No unengaged people groups by 2033":"Niciun popor neimplicat până în 2033","Not Adopted":"Neadoptat",Other:"Altele","Page Not Found":"Pagina nu a fost găsită","People Group":"Popor","People Groups":"Popoare","People committed to praying":"Persoane dedicate rugăciunii","Pick a region above, or click any dot to open that people group's country.":"Alege o regiune mai sus sau dă clic pe orice punct pentru a deschide țara acelui grup etnic.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Alege o regiune sau o țară din fila Lista regiunilor pentru a restrânge acest panou.",Population:"Populație","Prayer Coverage":"Acoperirea prin rugăciune","Prayer coverage progress":"Progresul acoperirii prin rugăciune","Region Dashboards":"Panouri ale regiunilor","Region dashboard":"Panoul regiunii",Regions:"Regiuni","Regions List":"Lista regiunilor",Religion:"Religie","Search names, country/continent, religions...":"Caută nume, țară/continent, religii…","See %region% dashboard":"Vezi panoul %region%","See All":"Vezi tot",Select:"Selectează","Select View":"Selectează vizualizarea","Show Filters":"Arată filtrele","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"În %country% există %count% popoare. Verifică pe hartă și popoarele de la granițele acestei țări.",Total:"Total","Type to search...":"Scrie pentru a căuta…","Unengaged people groups":"Popoare neimplicate","View country posters":"Vezi posterele țării",Views:"Vizualizări","WAGF Block":"Bloc WAGF","WAGF Region":"Regiune WAGF","people groups adopted":"popoare adoptate","people groups engaged":"popoare implicate","Outside this region":"În afara acestei regiuni",Pray:"Roagă-te","Loading region dashboards…":"Se încarcă panourile regiunilor…","No regions found.":"Nu au fost găsite regiuni.","Region data could not be loaded. This is a connection problem, not a filter.":"Datele regiunilor nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","People groups could not be loaded. This is a connection problem, not a filter.":"Grupurile de popoare nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Harta nu a putut porni. Este o problemă de token al hărții sau de conexiune, nu un filtru — cifrele de mai sus nu sunt afectate."},M_={placeholder:"Popor, loc, limbă, religie",placeholderNoPlaces:"Popor, limbă, religie (căutarea locurilor necesită un token Mapbox)",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"},sections:{within:"În {selection}",allData:"Toate datele DOXA"},kinds:{people:"Popor + țară",peopleGroup:"Popor",bloc:"Bloc de afinitate",cluster:"Grup de popoare",country:"Țară",region:"Regiune",family:"Familie de limbi",languageKind:"Limbă",dialect:"Dialect",religionKind:"Religie"},upg100Placeholder:"Caută popor, listă UPG-100 sau regiune…"},F_={prayer:"Rugăciune",adoption:"Adopție",engagement:"Implicare","affinity-blocks":"Popoare",regions:"Regiuni",countries:"Țări","language-families":"Limbi",religion:"Religii",family:"Familie de limbi",language:"Limbă",dialect:"Dialect/Variantă",bloc:"Bloc de afinitate",cluster:"Grup",group:"Popor",pgic:"Popor în țară",region:"Regiune WAGF",block:"Bloc WAGF",country:"Țară",upg100Region:"Regiune",upg100Zone:"Liste UPG-100",upg100Group:"Grup etnic",selectView:"Alege vizualizarea",views:"Vizualizări",prayerResources:"Resurse de rugăciune",map:"Hartă",countryPosters:"Afișe pe țări"},I_={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду",searchPeopleGroups:"Поиск народов",resetAllFilters:"Сбросить все фильтры и поиск",selectAllRows:"Выбрать все строки",deselectAllRows:"Снять выделение со всех строк"},O_={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить",posterMap:"Карта плаката",prayerList:"Молитвенный список",cardDeck:"Набор карточек",printOptions:"Параметры печати",showOnMap:"Показать на карте",close:"Закрыть",showOnMapAria:"Показать {label} на карте",cardStockAria:"Размер молитвенной карточки",previewPrintPoster:"Просмотр и печать плаката {label}",share:"Поделиться",shareSteps:["Разместите эту карту на своём сайте","Составьте список сайтов вашего города","Научите их тоже размещать её","Научите их учить других размещать её","Умножим карты повсюду для Иисуса!"],clearSelection:"Снять выделение",noOptions:"Ничего не найдено",renderingLocal:"Изображение типографского качества создаётся в вашем браузере — ничего не загружается на сервер.",postersPerRow:"Плакатов в ряду"},D_={research_controls:"Инструменты исследования",clustering:"Кластеризация",filters:"Фильтры",pin_dim:"Прозрачность точек",export_poster:"Экспорт постера…",reload_data:"Обновить данные",off:"Выкл.",native:"Встроенная",mst:"MST",network:"Сеть",off_desc:"Показывать каждую точку отдельно",native_desc:"Круговые кластеры Mapbox (быстрее всего)",mst_desc:"Сети родства по минимальному остовному дереву",network_desc:"Линии до ближайшего соседа",search_languages:"Поиск языков…",search_religions:"Поиск религий…",reset_all:"Сбросить всё",no_languages:"Языки ещё не загружены",no_religions:"Религии ещё не загружены",unadopted:"Не усыновлён",min:"мин",max:"макс",adopted:"Ответственность взята",adoption:"Усыновление",engaged:"Вовлечён",engagement:"Вовлечённость",unengaged:"Нуждается в вовлечённости",language:"Язык",religion:"Религия",population:"Население",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",close:"Закрыть",clear:"Очистить",map_controls:"Элементы управления картой"},B_={bloc:"Блок родства",gospel_access:"Доступ к Евангелию",people:"Народы",people_name:"Народ (название)",praying:"Молятся",religion_family:"Семья религий",search_language:"Поиск языка",search_people:"Поиск народа",search_place:"Поиск места",search_religion:"Поиск религии",upgs_in_scope:"UPG в выборке",countries_touched:"затронутых стран",unreached:"неохваченные",sum_population:"Σ население",sum_praying:"Σ молящихся",charts:"Графики",table:"Таблица",cluster:"Кластер",country:"Страна",engagement:"Вовлечённость",language:"Язык",language_family:"Языковая семья",people_group:"Народ",population:"Население",prayer:"Молитва",region:"Регион",religion:"Религия",status:"Статус",adopted:"Ответственность взята",filters:"Фильтры",gospel_resources:"Евангельские ресурсы",map:"Карта",search_placeholder:"Поиск народов, мест, языков, религий…",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",map_controls:"Элементы управления картой",close:"Закрыть",clear:"Очистить",dashboard_title:"Обзорная исследовательская панель",align_dashboard:"Выровнять панель",align_dashboard_tip:"Вернуть расположение панели к виду по умолчанию",selected:"Выбрано",world:"Мир",vertical_legend:"Вертикальная легенда",groups_in_scope:"народов в выборке",filter_by:"Фильтровать по",remove_filter:"Убрать фильтр",groups:"народов",expand:"Развернуть",collapse:"Свернуть",place:"Место",export_csv:"Экспорт CSV",detail:"Подробности",detail_empty:"Выберите народ, чтобы увидеть подробности",heartbeat_zone:"зона сердцебиения",top_countries:"Основные страны",select_all:"Выбрать все",expand_table:"Развернуть таблицу",collapse_table:"Свернуть таблицу — увеличить карту",group:"народ",deselect_all:"Снять выделение"},G_={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},j_={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Пояснительные примечания ниже — на английском языке."},mode:{gap:"Пробел",coverage:"Найденные ресурсы"},search:{placeholder:"Найдите народ, язык или код ISO",clear:"Очистить поиск",none:"Ничего не найдено по этому названию, языку или коду.",placeholderShort:"Народ, язык или код ISO"},legend:{title:"Недостигнутые народы, для которых не найдено ни одного ресурса",band60:"60%+ без единого ресурса",band30:"30–59%",bandSome:"часть народов",bandAll:"у всех народов что-то есть",tier2:"Писание и фильм",tier1:"что-то найдено",tier0:"ничего не найдено",hnr:"могут услышать, текста нет",showAll:"Показать все народы",titleCoverage:"Недостигнутые народы, для которых найдены ресурсы",cov80:"у 80%+ что-то есть",cov50:"50–79%",cov1:"1–49%",cov0:"ни для кого ничего",tallyEach:"Каждая",tallyIs:"— это ОДИН народ,",tallyOf:"из них",tallyLink:"со ссылкой",doxa0:"у всех что-то есть",doxa1:"1–4 без ресурсов",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 достигнуты",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Народы Doxa на этой карте",notPlaced:"в списке, пока без координат",outOfScope:"нет народов Doxa — не окрашено"},tabs:{groups:"Крупнейшие народы",countries:"По странам",regions:"По регионам",noprayer:"Никто не молится",hnr:"Слышат, но не читают"},stat:{language:"Язык",population:"Численность",countries:"Страны",peopleGroups:"Народы",noResource:"Ресурсов не найдено",peopleAffected:"Затронутые люди",haveScripture:"Есть Писание",haveFilm:"Есть фильм",haveAudio:"Есть аудио-Писание",signLanguages:"Жестовые языки",growingUnreached:"Растущие и недостигнутые",deathsDay:"Оценка смертей в день"},sheet:{ownLanguage:"На их родном языке",close:"Закрыть",loading:"Загрузка ресурсов…",pray:"Молитесь о",everyResource:"Все ресурсы на",alsoSpeak:"Также говорят на"},res:{scripture:"Писание",film:"Фильм",audio:"Аудио",bibleVideo:"Библейское видео",bibleStories:"Open Bible Stories",gospelAudio:"Аудио с Евангелием",gospelPresentation:"Изложение Евангелия",scriptureEarth:"Scripture Earth",training:"Обучение ученичеству",jesusFilm:"Фильм «Иисус»",audioScripture:"Аудио с Писанием",bibleStoriesPlain:"Библейские истории"},state:{noneFound:"ничего не найдено",noneAtFcbh:"нет в FCBH",noneAtGrn:"нет в GRN",notInZume:"нет среди 54 языков Zume",linkChecked:"ссылка проверена",unchecked:"не проверено",linkDead:"ссылка не работает",wrongLanguage:"не тот язык",varietyNotStated:"(вариант не указан)",inLanguage:"на"},guide:{dotVsCountry:"Точка — это ОДИН народ Doxa и его родной язык; цвет страны — это ЧИСЛО таких народов.",noneFoundShort:"«Ничего не найдено» значит: нет в проверенных источниках — но не доказательство отсутствия.",tapCountry:"Нажмите на страну, чтобы увидеть ресурсы по каждому народу."},tables:{title:"Ресурсы Евангелия — данные",showing:"Показано",of:"из",for:"для",filteredTo:"Фильтр:",showAll:"Показать все ресурсы",t_doxa:"Doxa — доступ к Евангелию",t_links:"Каждый ресурс и ссылка",t_nothing:"Где ничего не найдено",t_countrygap:"Пробел по странам",t_translation:"Слышат, но не читают",t_translationcountry:"Где переводить",t_province:"Доступ к Евангелию по провинциям — Индия и Китай",t_gaps:"Пробелы и возможности",t_bridges:"Городские мосты",t_deaf:"Пробел у глухих",t_resources:"Ресурсы по народам",t_languages:"Языки по странам",t_growth:"Доступ и рост населения"},pages:{listTitle:"Ресурсы Евангелия по языкам",chartsTitle:"Ресурсы Евангелия — по языкам",loadingTables:"Загрузка таблиц ресурсов…"},list:{noText:"Нет текста Писания",hasScripture:"Есть Писание",allLanguages:"Все языки",peopleGroup:"народ",peopleGroups:"народов",scriptureHere:"Писание на этом языке"},columns:{"People group":"Народ",Country:"Страна",Region:"Регион",Language:"Язык",Population:"Численность",Religion:"Религия","Gospel access":"Доступ к Евангелию",Resources:"Ресурсы",Scripture:"Писание","Bible video":"Библейское видео","Gospel presentation":"Изложение Евангелия",Countries:"Страны","People groups":"Народы"},charts:{scriptureAny:"Писание (любое)",fullBible:"Полная Библия",newTestament:"Новый Завет",filmAny:"Фильм (любой)",nothingInPools:"Ничего не найдено в проверенных источниках",nothingInPoolsLower:"ничего не найдено в проверенных источниках",noResourceInPools:"ни одного ресурса не найдено в проверенных источниках",aResourceFound:"ресурс найден",tabCoverage:"Охват ресурсами",tabGap:"Наибольшие пробелы",keyScripture:"писание",keyFilmStories:"фильм / истории",keyAudioEtc:"аудио / презентация / обучение",unresolvedCode:"код вне ISO 639-3 — не определён, не измерен",c1Title:"Что НАЙДЕНО, по типу ресурса",c1Sub:"По всем {n} языкам в наборе данных. Каждый столбец считает ЯЗЫКИ, а не народы.",c1Unit:"языки, в которых ресурс найден в проверенных источниках",c2Title:"Самые многочисленные народы, для которых ничего не найдено",c2Sub:"{n} языков, для которых в проверенных источниках нет ни Писания, ни фильма, упорядоченные по численности говорящих на них народов.",c2Unit:"люди в народах, для которых это ОСНОВНОЙ язык, — не все говорящие на нём",c3Title:"Страны с наибольшим числом неохваченных языков",c3Sub:"{n} стран с наибольшим числом языков, для которых ничего не найдено. Длина столбца — каждый язык, присутствующий в этой стране.",c3Unit:"языки, присутствующие в стране (трансграничный язык считается в каждой)"}},z_={search:"Поиск народов…",hide_filters:"Скрыть фильтры",show_filters:"Показать фильтры",total:"Всего",showing:"Показано",load_more:"Показать ещё",full_profile:"Полный профиль",wagf_region:"Регион",wagf_block:"Блок родства",rop1:"Народ",religion:"Религия",exact_filter:"Точное совпадение",clear_all:"Очистить всё",loading:"Загрузка…",no_results:"Нет народов, соответствующих этому фильтру.",type_to_search:"Введите для поиска...",load_failed:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра.",search_people_or_countries:"Поиск народов или стран…"},U_={title:{adoption:"Прогресс усыновления",affinityBlocs:"Блоки родства",doxaRegions:"Регионы Doxa",engagement:"Прогресс вовлечённости",gospelResources:"Евангельские ресурсы",languageFamilies:"Языковые семьи",prayer:"Прогресс молитвы",upg100List:"Мой список UPG 100"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа",default:"Легенда"},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:"Языки"},tabInfo:{upg100Region:"Регион — сортирует списки UPG-100 по частям света (Африка, Индия, Ближний Восток, Глухие, …). Числа — это UUPG и население, просуммированные по всем спискам внутри.",upg100Zone:"Списки UPG-100 — каждый представляет собой молитвенный список непросвещённых народов области и именно он отображается и раскрашивается на карте. Каждый список печатается отдельным буклетом.",upg100Group:"Народ — отдельные непросвещённые народы внутри списка, сначала с наибольшей нуждой в молитве. Каждая точка на карте — один из них."},a11y:{expandRow:"Развернуть {label}",collapseRow:"Свернуть {label}",clearSelection:"Снять выделение"},export:{poster:"Плакат",packet:"Буклет"},noDataAtThisLevel:"На этом уровне нет данных",exportButton:"Экспорт",exportSelection:"Экспортировать выбранное"},K_={menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntro:"Разделите молитвенный труд на группы по пятьдесят и по сто — так Иисус накормил 5000 (Луки 9:14). Каждый плакат — это список из 100, о котором можно молиться, распечатать и повесить на стену, молясь о них по имени их народа."},H_={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},V_={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},W_={"%count% people groups in %countries% countries":"%count% народов в %countries% странах","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"В регионе %region% — %count% групп людей в %countries% странах. Цвет каждой точки показывает, сколько человек молится за эту группу людей.","1+ People Praying":"1+ человек молится","100+ People Praying":"100+ человек молятся",Adopted:"Ответственность взята","Adoption Progress":"Прогресс принятия ответственности","All Regions":"Все регионы","Alternate Names":"Альтернативные названия","Choose a region":"Выберите регион","Clear All":"Очистить всё",Countries:"Страны","Countries in this region":"Страны этого региона",Country:"Страна",Engaged:"Вовлечён","Engagement Progress":"Прогресс вовлечения","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Каждая незадействованная народность принята церковью, приверженной молитве, пожертвованиям и посылке миссионеров","Exact Search":"Точный поиск","Find unreached people groups by region and country.":"Найдите недостигнутые группы людей по регионам и странам.","Full Profile":"Полный профиль",Goal:"Цель","Hide Filters":"Скрыть фильтры","Hide country posters":"Скрыть плакаты страны",Intercessors:"Ходатаи","Load More":"Загрузить ещё","Loading results...":"Загрузка результатов...",Map:"Карта","Mobilize 100+ people praying daily for each DOXA people group":"Мобилизуйте 100+ человек для ежедневной молитвы за каждую народность DOXA","No One Praying":"Никто не молится","No options found":"Вариантов не найдено","No poster has been generated for this country yet.":"Для этой страны плакат ещё не создан.","No unengaged people groups by 2033":"К 2033 году не останется незадействованных народов","Not Adopted":"Не принято",Other:"Другое","Page Not Found":"Страница не найдена","People Group":"Группа людей","People Groups":"Народы","People committed to praying":"Люди, посвятившие себя молитве","Pick a region above, or click any dot to open that people group's country.":"Выберите регион выше или нажмите на любую точку, чтобы открыть страну этой группы народа.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Выберите регион или страну на вкладке «Список регионов», чтобы сузить эту панель.",Population:"Население","Prayer Coverage":"Молитвенный охват","Prayer coverage progress":"Прогресс молитвенного покрытия","Region Dashboards":"Панели регионов","Region dashboard":"Панель региона",Regions:"Регионы","Regions List":"Список регионов",Religion:"Религия","Search names, country/continent, religions...":"Поиск по названиям, странам/континентам, религиям...","See %region% dashboard":"Открыть панель: %region%","See All":"Смотреть все",Select:"Выбрать","Select View":"Выберите вид","Show Filters":"Показать фильтры","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Страна %country% насчитывает %count% групп людей. Проверьте также на карте группы людей, расположенные вдоль границ этой страны.",Total:"Итого","Type to search...":"Введите текст для поиска...","Unengaged people groups":"Невовлечённые народы","View country posters":"Показать плакаты страны",Views:"Виды","WAGF Block":"Блок WAGF","WAGF Region":"Регион WAGF","people groups adopted":"народов, за которые взята ответственность","people groups engaged":"вовлечённые народы","Outside this region":"За пределами этого региона",Pray:"Молиться","Loading region dashboards…":"Загрузка панелей по регионам…","No regions found.":"Регионы не найдены.","Region data could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить данные по регионам. Это проблема соединения, а не фильтра.","People groups could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить народы. Это проблема соединения, а не фильтра.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},q_={placeholder:"Народ, место, язык, религия",placeholderNoPlaces:"Народ, язык, религия (для поиска мест нужен токен Mapbox)",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"},upg100Placeholder:"Поиск народа, списка UPG-100 или региона…"},Y_={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна",upg100Region:"Регион",upg100Zone:"Списки UPG-100",upg100Group:"Народ",selectView:"Выбрать вид",views:"Виды",prayerResources:"Молитвенные ресурсы",map:"Карта",countryPosters:"Плакаты по странам"},Z_={backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例",searchPeopleGroups:"搜索民族",resetAllFilters:"重置所有筛选和搜索",selectAllRows:"选择所有行",deselectAllRows:"取消选择所有行"},X_={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入",posterMap:"海报地图",prayerList:"禱告名單",cardDeck:"禱告卡組",printOptions:"列印選項",showOnMap:"在地圖上顯示",close:"關閉",showOnMapAria:"在地圖上顯示 {label}",cardStockAria:"祷告卡片尺寸",previewPrintPoster:"预览并打印 {label} 海报",share:"分享",shareSteps:["把這張地圖嵌入你的網站","列出你城市裡的網站","教他們也嵌入這張地圖","教他們去教別人嵌入","為耶穌讓地圖遍地繁增!"],clearSelection:"清除选择",noOptions:"未找到选项",renderingLocal:"正在您的浏览器中生成可打印质量的图片——不会上传任何内容。",postersPerRow:"每行海报数"},J_={research_controls:"研究控件",clustering:"聚类",filters:"筛选",pin_dim:"圆点淡化",export_poster:"导出海报…",reload_data:"重新加载数据",off:"关闭",native:"原生",mst:"MST",network:"网络",off_desc:"逐个显示每个圆点",native_desc:"Mapbox 圆形聚类(最快)",mst_desc:"最小生成树亲缘网络",network_desc:"最近邻连接线",search_languages:"搜索语言…",search_religions:"搜索宗教…",reset_all:"全部重置",no_languages:"尚未加载语言",no_religions:"尚未加载宗教",unadopted:"未认领",min:"最小",max:"最大",adopted:"已认领",adoption:"认领",engaged:"已参与",engagement:"参与",unengaged:"需要参与",language:"语言",religion:"宗教",population:"人口",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",close:"关闭",clear:"清除",map_controls:"地图控件"},Q_={bloc:"亲缘板块",gospel_access:"福音可及性",people:"民族",people_name:"民族(名称)",praying:"正在代祷",religion_family:"宗教族系",search_language:"搜索语言",search_people:"搜索民族",search_place:"搜索地点",search_religion:"搜索宗教",upgs_in_scope:"范围内的 UPG",countries_touched:"涉及国家",unreached:"未得之民",sum_population:"Σ 人口",sum_praying:"Σ 代祷",charts:"图表",table:"表格",cluster:"民族群",country:"國家",engagement:"参与",language:"语言",language_family:"语系",people_group:"民族",population:"人口",prayer:"祷告",region:"区域",religion:"宗教",status:"状态",adopted:"已认领",filters:"筛选",gospel_resources:"福音资源",map:"地图",search_placeholder:"搜索民族、地点、语言、宗教…",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",map_controls:"地图控件",close:"关闭",clear:"清除",dashboard_title:"全局研究仪表板",align_dashboard:"对齐仪表板",align_dashboard_tip:"将仪表板布局恢复为默认对齐",selected:"已选择",world:"世界",vertical_legend:"垂直图例",groups_in_scope:"个民族在范围内",filter_by:"筛选",remove_filter:"移除筛选",groups:"个民族",expand:"展开",collapse:"收起",place:"地点",export_csv:"导出 CSV",detail:"详情",detail_empty:"选择一个民族以查看详情",heartbeat_zone:"心跳区",top_countries:"主要国家",select_all:"全选",expand_table:"展开表格",collapse_table:"收起表格 — 放大地图",group:"个民族",deselect_all:"取消全选"},e$={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},t$={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"以下说明性文字为英文。"},mode:{gap:"缺口",coverage:"已找到的资源"},search:{placeholder:"搜索族群、语言或 ISO 代码",clear:"清除搜索",none:"没有符合该名称、语言或代码的结果。",placeholderShort:"族群、语言或 ISO 代码"},legend:{title:"尚未接触且未找到任何福音资源的族群",band60:"60% 以上一无所有",band30:"30–59%",bandSome:"部分族群",bandAll:"所有族群都有一些",tier2:"圣经与影片",tier1:"找到部分资源",tier0:"一无所获",hnr:"能听,但没有文字",showAll:"显示所有族群",titleCoverage:"尚未接触但已找到部分福音资源的族群",cov80:"80% 以上有资源",cov50:"50–79%",cov1:"1–49%",cov0:"无人拥有",tallyEach:"每个",tallyIs:"代表一个族群 —",tallyOf:"个族群中,",tallyLink:"个有链接",doxa0:"全部都有资源",doxa1:"1–4 个一无所有",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 个已触及",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"本地图上的 Doxa 族群",notPlaced:"在名单上,尚未定位",outOfScope:"没有 Doxa 族群 — 不着色"},tabs:{groups:"最大的族群",countries:"按国家",regions:"按地区",noprayer:"无人代祷",hnr:"能听,无文字"},stat:{language:"语言",population:"人口",countries:"国家",peopleGroups:"族群",noResource:"未找到资源",peopleAffected:"受影响人数",haveScripture:"有圣经",haveFilm:"有影片",haveAudio:"有有声圣经",signLanguages:"手语",growingUnreached:"增长中且未接触",deathsDay:"每日估计死亡人数"},sheet:{ownLanguage:"以他们自己的语言",close:"关闭",loading:"正在加载资源…",pray:"为其代祷:",everyResource:"所有资源 —",alsoSpeak:"同样使用"},res:{scripture:"圣经",film:"影片",audio:"音频",bibleVideo:"圣经视频",bibleStories:"Open Bible Stories",gospelAudio:"福音音频",gospelPresentation:"福音简介",scriptureEarth:"Scripture Earth",training:"门徒训练",jesusFilm:"《耶稣传》",audioScripture:"音频圣经",bibleStoriesPlain:"圣经故事"},state:{noneFound:"一无所获",noneAtFcbh:"FCBH 没有",noneAtGrn:"GRN 没有",notInZume:"不在 Zume 的 54 种语言内",linkChecked:"链接已核实",unchecked:"未核实",linkDead:"链接失效",wrongLanguage:"语言不符",varietyNotStated:"(未注明变体)",inLanguage:"—"},guide:{dotVsCountry:"每个圆点代表 Doxa 的一个族群及其语言;国家的颜色代表这类族群的数量。",noneFoundShort:"“一无所获”指未见于本次查询的资源库,并不证明其不存在。",tapCountry:"点按国家,逐个族群查看实际资源。"},tables:{title:"福音资源 — 数据",showing:"显示",of:"/共",for:"—",filteredTo:"筛选:",showAll:"显示全部资源",t_doxa:"Doxa — 福音可及性",t_links:"每项资源与链接",t_nothing:"一无所获之处",t_countrygap:"各国缺口",t_translation:"能听,无文字",t_translationcountry:"何处需要翻译",t_province:"按省份划分的福音可及性 — 印度和中国",t_gaps:"缺口与机会",t_bridges:"城市桥梁",t_deaf:"聋人缺口",t_resources:"按族群列出资源",t_languages:"各国语言",t_growth:"可及性与人口增长"},pages:{listTitle:"按语言列出的福音资源",chartsTitle:"福音资源 — 按语言",loadingTables:"正在加载资源表…"},list:{noText:"没有文字圣经",hasScripture:"有圣经",allLanguages:"全部语言",peopleGroup:"个族群",peopleGroups:"个族群",scriptureHere:"本语言的圣经"},columns:{"People group":"族群",Country:"国家",Region:"地区",Language:"语言",Population:"人口",Religion:"宗教","Gospel access":"福音可及性",Resources:"资源",Scripture:"圣经","Bible video":"圣经视频","Gospel presentation":"福音简介",Countries:"国家","People groups":"族群"},charts:{scriptureAny:"圣经(任意)",fullBible:"全本圣经",newTestament:"新约",filmAny:"影片(任意)",nothingInPools:"在已检索的资源库中一无所获",nothingInPoolsLower:"在已检索的资源库中一无所获",noResourceInPools:"在已检索的资源库中未找到资源",aResourceFound:"找到资源",tabCoverage:"资源覆盖",tabGap:"最大缺口",keyScripture:"圣经",keyFilmStories:"影片 / 故事",keyAudioEtc:"音频 / 简介 / 训练",unresolvedCode:"ISO 639-3 之外的代码 — 未确定,未测量",c1Title:"按资源类型统计已找到的内容",c1Sub:"涵盖数据中全部 {n} 种语言。每个条形统计的是语言,不是族群。",c1Unit:"在已检索的资源库中找到该资源的语言",c2Title:"一无所获的最大人口",c2Sub:"在已检索的资源库中既无圣经也无影片的 {n} 种语言,按使用这些语言的族群人口排序。",c2Unit:"以该语言为主要语言的族群人口 — 不是该语言的全部使用者",c3Title:"未得服事语言最多的国家",c3Sub:"一无所获语言最多的 {n} 个国家。条形长度为该国存在的全部语言。",c3Unit:"该国存在的语言(跨境语言在每个国家各计一次)"}},o$={search:"搜索民族…",hide_filters:"隐藏筛选",show_filters:"显示筛选",total:"总计",showing:"显示",load_more:"加载更多",full_profile:"完整档案",wagf_region:"区域",wagf_block:"亲缘板块",rop1:"民族",religion:"宗教",exact_filter:"精确",clear_all:"全部清除",loading:"加载中…",no_results:"没有符合此筛选条件的民族。",type_to_search:"输入以搜索...",load_failed:"无法加载民族数据。这是连接问题,而不是筛选问题。",search_people_or_countries:"搜索民族或国家…"},n$={title:{adoption:"认领进度",affinityBlocs:"亲缘板块",doxaRegions:"Doxa 区域",engagement:"参与进度",gospelResources:"福音资源",languageFamilies:"语系",prayer:"祷告进度",upg100List:"我的 UPG 100 名单"},header:{collapsed:"图例",peopleGroupFallback:"民族群体",default:"圖例"},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:"人口",name:"名称"},footer:{total:"总计"},sortByUpgs:"按 UUPG 排序",sortByPop:"按人口排序",colLabel:{religion:"UUPG 宗教",prayer:"祷告状态",engagement:"参与状态",adoption:"认领状态",status:"状态"},titleBar:{legend:"图例",peopleGroups:"民族",wagfRegions:"WAGF 区域",languages:"语言"},tabInfo:{upg100Region:"区域 — 按世界区域排列 UPG-100 名单(非洲、印度、中东、聋人……)。数字是其下每份名单的 UUPG 与人口总和。",upg100Zone:"UPG-100 名单 — 每一份都是某地区未得之民的祷告名单,也是地图所绘制和上色的内容。每份名单印成独立的祷告册。",upg100Group:"族群 — 名单内各个未得之民群体,祷告需要最大的排在前面。地图上每个点就是其中之一。"},a11y:{expandRow:"展开{label}",collapseRow:"折叠{label}",clearSelection:"清除选择"},export:{poster:"海报",packet:"祷告册"},noDataAtThisLevel:"此层级没有数据",exportButton:"导出",exportSelection:"导出所选内容"},a$={menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名單 — 禱告名單與海報",upg100WallTag:"禱告動員",upg100WallIntro:"將禱告的工作分成五十人、一百人一組 — 就像耶穌餵飽五千人那樣(路加福音 9:14)。每一張海報都是一份 100 人名單,你可以為他們禱告、列印出來、貼在牆上 — 按著他們族群的名字為他們禱告。"},s$={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},r$={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},i$={"%count% people groups in %countries% countries":"%countries% 个国家中的 %count% 个民族","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% 在 %countries% 个国家中有 %count% 个民族。每个标记的颜色表示有多少人在为该民族祷告。","1+ People Praying":"1 人以上祷告","100+ People Praying":"100 人以上祷告",Adopted:"已认领","Adoption Progress":"认领进度","All Regions":"所有区域","Alternate Names":"其他名称","Choose a region":"选择区域","Clear All":"全部清除",Countries:"国家","Countries in this region":"本区域的国家",Country:"国家",Engaged:"已参与","Engagement Progress":"参与进度","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"每一个尚无人参与的民族,都由一间委身于祷告、奉献与差派的教会认领","Exact Search":"精确搜索","Find unreached people groups by region and country.":"按区域和国家查找未得之民。","Full Profile":"完整档案",Goal:"目标","Hide Filters":"隐藏筛选","Hide country posters":"隐藏国家海报",Intercessors:"代祷者","Load More":"加载更多","Loading results...":"正在加载结果…",Map:"地图","Mobilize 100+ people praying daily for each DOXA people group":"为每个 DOXA 民族动员 100 人以上每日祷告","No One Praying":"无人祷告","No options found":"未找到选项","No poster has been generated for this country yet.":"尚未为该国家生成海报。","No unengaged people groups by 2033":"到 2033 年不再有无人参与的民族","Not Adopted":"未认领",Other:"其他","Page Not Found":"未找到页面","People Group":"民族","People Groups":"民族","People committed to praying":"委身祷告的人数","Pick a region above, or click any dot to open that people group's country.":"在上方选择一个区域,或点击任意圆点以打开该民族所在的国家。","Pick a region or a country on the Regions List tab to narrow this dashboard.":"在“区域列表”标签中选择一个区域或国家,以缩小此仪表板的范围。",Population:"人口","Prayer Coverage":"祷告覆盖","Prayer coverage progress":"祷告覆盖进度","Region Dashboards":"区域仪表板","Region dashboard":"区域仪表板",Regions:"区域","Regions List":"区域列表",Religion:"宗教","Search names, country/continent, religions...":"搜索名称、国家/大洲、宗教…","See %region% dashboard":"查看 %region% 仪表板","See All":"查看全部",Select:"选择","Select View":"选择视图","Show Filters":"显示筛选","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% 有 %count% 个民族。也请在地图上查看该国边境地区的民族。",Total:"总计","Type to search...":"输入以搜索…","Unengaged people groups":"无人参与的民族","View country posters":"查看国家海报",Views:"视图","WAGF Block":"WAGF 板块","WAGF Region":"WAGF 区域","people groups adopted":"已认领的民族","people groups engaged":"已参与的民族","Outside this region":"在此区域之外",Pray:"祷告","Loading region dashboards…":"正在加载区域面板…","No regions found.":"未找到区域。","Region data could not be loaded. This is a connection problem, not a filter.":"无法加载区域数据。这是连接问题,不是筛选问题。","People groups could not be loaded. This is a connection problem, not a filter.":"无法加载民族群体。这是连接问题,不是筛选问题。","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},l$={placeholder:"民族、地点、语言、宗教",placeholderNoPlaces:"民族、语言、宗教(地点搜索需要 Mapbox 令牌)",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"},upg100Placeholder:"搜索民族、UPG-100 名单或区域…"},c$={prayer:"祷告",adoption:"认领",engagement:"参与","affinity-blocks":"民族",regions:"区域",countries:"国家","language-families":"语言",religion:"宗教",family:"语系",language:"语言",dialect:"方言/变体",bloc:"亲缘板块",cluster:"民族群",group:"民族",pgic:"国内民族",region:"WAGF 区域",block:"WAGF 板块",country:"国家",upg100Region:"区域",upg100Zone:"UPG-100 名单",upg100Group:"族群",selectView:"選擇檢視",views:"檢視",prayerResources:"禱告資源",map:"地圖",countryPosters:"国家海报"};/*! + */let lp;const Zs=e=>lp=e,cp=Symbol();function Si(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Da;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Da||(Da={}));function fb(){const e=Hr(!0),t=e.run(()=>be({}));let o=[],n=[];const a=Gn({install(s){Zs(a),a._a=s,s.provide(cp,a),s.config.globalProperties.$pinia=a,n.forEach(r=>o.push(r)),n=[]},use(s){return this._a?o.push(s):n.push(s),this},_p:o,_a:null,_e:e,_s:new Map,state:t});return a}const up=()=>{};function pp(e,t,o,n=up){e.push(t);const a=()=>{const s=e.indexOf(t);s>-1&&(e.splice(s,1),n())};return!o&&kc()&&Vf(a),a}function qn(e,...t){e.slice().forEach(o=>{o(...t)})}const hb=e=>e(),dp=Symbol(),Pi=Symbol();function Li(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];Si(a)&&Si(n)&&e.hasOwnProperty(o)&&!dt(n)&&!Fo(n)?e[o]=Li(a,n):e[o]=n}return e}const mb=Symbol();function bb(e){return!Si(e)||!e.hasOwnProperty(mb)}const{assign:en}=Object;function yb(e){return!!(dt(e)&&e.effect)}function _b(e,t,o,n){const{state:a,actions:s,getters:r}=t,i=o.state.value[e];let l;function c(){i||(o.state.value[e]=a?a():{});const u=fh(o.state.value[e]);return en(u,s,Object.keys(r||{}).reduce((h,f)=>(h[f]=Gn(te(()=>{Zs(o);const P=o._s.get(e);return r[f].call(P,P)})),h),{}))}return l=gp(e,c,t,o,n,!0),l}function gp(e,t,o={},n,a,s){let r;const i=en({actions:{}},o),l={deep:!0};let c,u,h=[],f=[],P;const w=n.state.value[e];!s&&!w&&(n.state.value[e]={});let m;function y($){let A;c=u=!1,typeof $=="function"?($(n.state.value[e]),A={type:Da.patchFunction,storeId:e,events:P}):(Li(n.state.value[e],$),A={type:Da.patchObject,payload:$,storeId:e,events:P});const j=m=Symbol();Gt().then(()=>{m===j&&(c=!0)}),u=!0,qn(h,A,n.state.value[e])}const b=s?function(){const{state:A}=o,j=A?A():{};this.$patch(K=>{en(K,j)})}:up;function d(){r.stop(),h=[],f=[],n._s.delete(e)}const g=($,A="")=>{if(dp in $)return $[Pi]=A,$;const j=function(){Zs(n);const K=Array.from(arguments),Q=[],H=[];function ce(D){Q.push(D)}function z(D){H.push(D)}qn(f,{args:K,name:j[Pi],store:C,after:ce,onError:z});let x;try{x=$.apply(this&&this.$id===e?this:C,K)}catch(D){throw qn(H,D),D}return x instanceof Promise?x.then(D=>(qn(Q,D),D)).catch(D=>(qn(H,D),Promise.reject(D))):(qn(Q,x),x)};return j[dp]=!0,j[Pi]=A,j},S={_p:n,$id:e,$onAction:pp.bind(null,f),$patch:y,$reset:b,$subscribe($,A={}){const j=pp(h,$,A.detached,()=>K()),K=r.run(()=>Fe(()=>n.state.value[e],Q=>{(A.flush==="sync"?u:c)&&$({storeId:e,type:Da.direct,events:P},Q)},en({},l,A)));return j},$dispose:d},C=Dn(S);n._s.set(e,C);const v=(n._a&&n._a.runWithContext||hb)(()=>n._e.run(()=>(r=Hr()).run(()=>t({action:g}))));for(const $ in v){const A=v[$];if(dt(A)&&!yb(A)||Fo(A))s||(w&&bb(A)&&(dt(A)?A.value=w[$]:Li(A,w[$])),n.state.value[e][$]=A);else if(typeof A=="function"){const j=g(A,$);v[$]=j,i.actions[$]=A}}return en(C,v),en(We(C),v),Object.defineProperty(C,"$state",{get:()=>n.state.value[e],set:$=>{y(A=>{en(A,$)})}}),n._p.forEach($=>{en(C,r.run(()=>$({store:C,app:n._a,pinia:n,options:i})))}),w&&s&&o.hydrate&&o.hydrate(C.$state,w),c=!0,u=!0,C}/*! #__NO_SIDE_EFFECTS__ */function Ci(e,t,o){let n,a;const s=typeof t=="function";typeof e=="string"?(n=e,a=s?o:t):(a=e,n=e.id);function r(i,l){const c=Lh();return i=i||(c?Re(cp,null):null),i&&Zs(i),i=lp,i._s.has(n)||(s?gp(n,t,a,i):_b(n,a,i)),i._s.get(n)}return r.$id=n,r}const Ei="__doxaMapToken",Ti="doxa:map-token",fp="__doxaMapTokenBridge",Yn=()=>{if(typeof window>"u")return"";const e=window[Ei];return typeof e=="string"?e:""};function Ri(e){if(typeof window>"u")return"";hp();const t=typeof e=="string"?e.trim():"";if(!t||t===Yn())return Yn();window[Ei]=t;try{window.dispatchEvent(new CustomEvent(Ti,{detail:t}))}catch{}return t}function hp(){var t;if(typeof window>"u"||window[fp]&&((t=Object.getOwnPropertyDescriptor(window,"MAP_TOKEN"))!=null&&t.get))return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!Yn()&&(window[Ei]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return Yn()},set(o){Ri(o)}}),window[fp]=!0}catch{}}function $b(){hp();const e=be(Yn());if(typeof window<"u"){const t=()=>{e.value=Yn()};window.addEventListener(Ti,t);try{Qt(()=>window.removeEventListener(Ti,t))}catch{}}return e}function vb(e){if(typeof window>"u"||!/^https?:\/\//i.test(String(e||"")))return Promise.resolve("");const t=window.__doxaMapTokenFetches=window.__doxaMapTokenFetches||{};if(t[e])return t[e];const o=fetch(e).then(n=>{if(!n.ok)throw new Error("HTTP "+n.status);return(n.headers.get("content-type")||"").includes("json")?n.json():n.text()}).then(n=>{const a=String((typeof n=="string"?n:n&&(n.token||n.tk||n.accessToken))||"").trim();return a.startsWith("pk.")?(Ri(a),a):""}).catch(n=>(console.warn(`[map token] ${e}: ${n&&n.message?n.message:n}`),"")).finally(()=>{window.__doxaMapTokenPending===o&&(window.__doxaMapTokenPending=null)});return window.__doxaMapTokenPending=o,t[e]=o,o}function Xs(e){return Gh({loader:e,onError(t,o,n,a){a<=3?setTimeout(o,a*500):n()}})}const wb={title:"كل مجموعات الشعوب",locations:"{n} موقعًا (مجموعة × بلد)",doxa:"مجموعات شعوب DOXA",frontier:"حدودية — لم يبدأ شيء",unreached:"غير مُبشَّرة — العمل يبدأ",reached:"مُبشَّرة — الكنيسة موجودة",hint:"انقر على صف لعرضها كلها · انقر مرة أخرى لعرض الكل",loading:"جارٍ تحميل كل مجموعات الشعوب…",loadError:"تعذّر تحميل الخريطة.",pray:"صلِّ لأجلهم ←",population:"السكان {n}"},kb={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها",searchPeopleGroups:"ابحث عن الشعوب",resetAllFilters:"إعادة تعيين كل عوامل التصفية والبحث",selectAllRows:"تحديد كل الصفوف",deselectAllRows:"إلغاء تحديد كل الصفوف"},xb={prayForThem:"صلِّ من أجلهم",adoptThem:"تبنَّهم",moreInfo:"مزيد من المعلومات",zoomIn:"تكبير",zoomOut:"تصغير",switchToLightMode:"التبديل إلى الوضع الفاتح",switchToDarkMode:"التبديل إلى الوضع الداكن",resetView:"إعادة تعيين العرض",toggleFullscreen:"تبديل ملء الشاشة",aboutThisMap:"حول هذه الخريطة",closeMenu:"إغلاق القائمة",reloadMap:"إعادة تحميل الخريطة",showClusters:"إظهار المجموعات",clusterSettings:"إعدادات المجموعات",startAutoFly:"بدء الطيران التلقائي",stopFlight:"إيقاف الطيران",speedLabel:"السرعة:",speedOption:{slow:"بطيء",normal:"عادي",fast:"سريع"},shareEmbed:"مشاركة وتضمين",posterMap:"خريطة الملصق",prayerList:"قائمة الصلاة",cardDeck:"مجموعة البطاقات",printOptions:"خيارات الطباعة",showOnMap:"أظهر على الخريطة",close:"إغلاق",showOnMapAria:"أظهر {label} على الخريطة",cardStockAria:"حجم بطاقة الصلاة",previewPrintPoster:"معاينة وطباعة ملصق {label}",share:"مشاركة",shareSteps:["ضع هذه الخريطة على موقعك","أعدّ قائمة بمواقع الويب في مدينتك","علّمهم أن يضعوها أيضًا","علّمهم أن يعلّموا غيرهم وضعها","لنكثر الخرائط في كل مكان ليسوع!"],clearSelection:"إلغاء التحديد",noOptions:"لا توجد نتائج",renderingLocal:"يتم إنشاء صورة بجودة الطباعة في متصفحك — لا يتم تحميل أي شيء.",postersPerRow:"الملصقات في كل صف"},Ab={research_controls:"أدوات البحث",clustering:"التجميع",filters:"عوامل التصفية",pin_dim:"خفوت النقاط",export_poster:"تصدير ملصق…",reload_data:"إعادة تحميل البيانات",off:"إيقاف",native:"أصلي",mst:"الشجرة الممتدة",network:"شبكة",off_desc:"إظهار كل نقطة على حدة",native_desc:"تجميع دوائر Mapbox (الأسرع)",mst_desc:"شبكات تقارب بالشجرة الممتدة الصغرى",network_desc:"خطوط ربط بأقرب جار",search_languages:"ابحث عن اللغات…",search_religions:"ابحث عن الأديان…",reset_all:"إعادة تعيين الكل",no_languages:"لم تُحمَّل أي لغات بعد",no_religions:"لم تُحمَّل أي أديان بعد",unadopted:"غير متبنّى",min:"الأدنى",max:"الأعلى",adopted:"متبنَّاة",adoption:"التبني",engaged:"مُخْدُومَة",engagement:"المشاركة",unengaged:"يحتاج إلى انخراط",language:"اللغة",religion:"الدين",population:"السكان",any:"الكل",active_count:"{n} نشط",prayer_status:"حالة الصلاة",close:"إغلاق",clear:"مسح",map_controls:"أدوات التحكم بالخريطة"},Sb={bloc:"كتلة التقارب",gospel_access:"الوصول إلى الإنجيل",people:"الشعوب",people_name:"الشعب (الاسم)",praying:"يصلّون",religion_family:"عائلة الأديان",search_language:"ابحث عن لغة",search_people:"ابحث عن شعب",search_place:"ابحث عن مكان",search_religion:"ابحث عن دين",upgs_in_scope:"الشعوب ضمن النطاق",countries_touched:"الدول المشمولة",unreached:"غير موصولين",sum_population:"مجموع السكان",sum_praying:"مجموع المصلّين",charts:"الرسوم البيانية",table:"الجدول",cluster:"المجموعة",country:"الدولة",engagement:"المشاركة",language:"اللغة",language_family:"عائلة اللغة",people_group:"الشعب",population:"السكان",prayer:"الصلاة",region:"المنطقة",religion:"الدين",status:"الحالة",adopted:"متبنَّاة",filters:"عوامل التصفية",gospel_resources:"موارد الإنجيل",map:"الخريطة",search_placeholder:"ابحث عن الشعوب والأماكن واللغات والأديان…",any:"الكل",active_count:"{n} نشط",prayer_status:"حالة الصلاة",map_controls:"أدوات التحكم بالخريطة",close:"إغلاق",clear:"مسح",dashboard_title:"لوحة البحث الشاملة",align_dashboard:"محاذاة اللوحة",align_dashboard_tip:"إعادة تخطيط اللوحة إلى المحاذاة الافتراضية",selected:"المحدد",world:"العالم",vertical_legend:"مفتاح عمودي",groups_in_scope:"مجموعة ضمن النطاق",filter_by:"تصفية حسب",remove_filter:"إزالة التصفية",groups:"مجموعة",expand:"توسيع",collapse:"طيّ",place:"المكان",export_csv:"تصدير CSV",detail:"التفاصيل",detail_empty:"اختر شعبًا لعرض التفاصيل",heartbeat_zone:"منطقة نبض القلب",top_countries:"أبرز الدول",select_all:"تحديد الكل",expand_table:"توسيع الجدول",collapse_table:"طيّ الجدول — توسيع الخريطة",group:"مجموعة",deselect_all:"إلغاء تحديد الكل"},Pb={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},Lb={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"الملاحظات التوضيحية أدناه باللغة الإنجليزية."},mode:{gap:"الفجوة",coverage:"الموارد المتوفرة"},search:{placeholder:"ابحث عن شعب أو لغة أو رمز ISO",clear:"مسح البحث",none:"لا شيء يطابق هذا الاسم أو اللغة أو الرمز.",placeholderShort:"شعب أو لغة أو رمز ISO"},legend:{title:"شعوب غير مبلَّغة ولا يوجد لها أي مورد إنجيلي",band60:"⁦60%+⁩ بلا أي مورد",band30:"⁦30–59%⁩",bandSome:"بعض الشعوب",bandAll:"كل الشعوب لديها شيء",tier2:"الكتاب المقدس والفيلم",tier1:"وُجد بعض الموارد",tier0:"لا شيء",hnr:"يمكنهم السماع، ولا يوجد نص",showAll:"عرض كل الشعوب",titleCoverage:"شعوب غير مبلَّغة ويوجد لها بعض الموارد الإنجيلية",cov80:"⁦80%+⁩ لديهم شيء",cov50:"⁦50–79%⁩",cov1:"⁦1–49%⁩",cov0:"لا شيء لأي منهم",tallyEach:"كل",tallyIs:"هو شعب واحد —",tallyOf:"منها،",tallyLink:"لديها رابط",doxa0:"لدى الجميع شيء",doxa1:"‪1–4‬ بلا شيء",doxa5:"‪5–14‬",doxa15:"‪15–39‬",doxa40:"‪40+‬",cvd1:"‪1–4‬ لديهم موارد",cvd5:"‪5–14‬",cvd15:"‪15–39‬",cvd40:"‪40+‬",onMap:"شعوب دوكسا على هذه الخريطة",notPlaced:"ضمن القائمة، بلا موقع بعد",outOfScope:"لا توجد شعوب دوكسا — غير ملوَّنة"},tabs:{groups:"أكبر الشعوب",countries:"حسب البلد",regions:"حسب المنطقة",noprayer:"لا أحد يصلّي",hnr:"يسمعون، بلا نص"},stat:{language:"اللغة",population:"عدد السكان",countries:"البلدان",peopleGroups:"الشعوب",noResource:"لا يوجد أي مورد",peopleAffected:"الأشخاص المتأثرون",haveScripture:"لديهم الكتاب المقدس",haveFilm:"لديهم الفيلم",haveAudio:"لديهم كتاب مقدس مسموع",signLanguages:"لغات الإشارة",growingUnreached:"متزايدون وغير مبلَّغين",deathsDay:"الوفيات المقدَّرة يوميًا"},sheet:{ownLanguage:"بلغتهم الأم",close:"إغلاق",loading:"جارٍ تحميل الموارد…",pray:"صلِّ من أجل",everyResource:"كل الموارد بـ",alsoSpeak:"يتحدثون أيضًا"},res:{scripture:"الكتاب المقدس",film:"الفيلم",audio:"صوتي",bibleVideo:"فيديو كتابي",bibleStories:"Open Bible Stories",gospelAudio:"صوتيات الإنجيل",gospelPresentation:"عرض للإنجيل",scriptureEarth:"Scripture Earth",training:"تدريب على التلمذة",jesusFilm:"فيلم يسوع",audioScripture:"الكتاب المقدس الصوتي",bibleStoriesPlain:"قصص الكتاب المقدس"},state:{noneFound:"لا شيء",noneAtFcbh:"لا شيء في FCBH",noneAtGrn:"لا شيء في GRN",notInZume:"ليست ضمن لغات Zume الـ54",linkChecked:"تم التحقق من الرابط",unchecked:"لم يُتحقق منه",linkDead:"رابط معطّل",wrongLanguage:"لغة غير صحيحة",varietyNotStated:"(اللهجة غير محددة)",inLanguage:"بـ"},guide:{dotVsCountry:"كل نقطة هي شعب واحد من شعوب دوكسا ولغته؛ أما لون البلد فهو عدد تلك الشعوب.",noneFoundShort:"«لا شيء» تعني غير موجود في المصادر التي بحثنا فيها — وليست دليلًا على عدم وجوده.",tapCountry:"اضغط على بلد لترى الموارد الفعلية، شعبًا شعبًا."},tables:{title:"موارد الإنجيل — البيانات",showing:"عرض",of:"من",for:"لـ",filteredTo:"مصفّى حسب",showAll:"عرض كل الموارد",t_doxa:"دوكسا — الوصول إلى الإنجيل",t_links:"كل مورد ورابطه",t_nothing:"حيث لا يوجد شيء",t_countrygap:"الفجوة حسب البلد",t_translation:"يسمعون ولا نص لديهم",t_translationcountry:"أين نترجم",t_province:"الوصول إلى الإنجيل حسب المقاطعة — الهند والصين",t_gaps:"الفجوات والفرص",t_bridges:"جسور المدن",t_deaf:"فجوة الصم",t_resources:"الموارد حسب الشعب",t_languages:"اللغات حسب البلد",t_growth:"الوصول مقابل نمو السكان"},pages:{listTitle:"موارد الإنجيل حسب اللغة",chartsTitle:"موارد الإنجيل — حسب اللغة",loadingTables:"جارٍ تحميل جداول الموارد…"},list:{noText:"بلا نص مقدس",hasScripture:"لديها الكتاب المقدس",allLanguages:"كل اللغات",peopleGroup:"شعب",peopleGroups:"شعوب",scriptureHere:"الكتاب المقدس بهذه اللغة"},columns:{"People group":"الشعب",Country:"البلد",Region:"المنطقة",Language:"اللغة",Population:"عدد السكان",Religion:"الديانة","Gospel access":"الوصول إلى الإنجيل",Resources:"الموارد",Scripture:"الكتاب المقدس","Bible video":"فيديو كتابي","Gospel presentation":"عرض للإنجيل",Countries:"البلدان","People groups":"الشعوب"},charts:{scriptureAny:"الكتاب المقدس (أي نوع)",fullBible:"الكتاب المقدس كاملاً",newTestament:"العهد الجديد",filmAny:"الفيلم (أي نوع)",nothingInPools:"لا شيء في المصادر التي جرى البحث فيها",nothingInPoolsLower:"لا شيء في المصادر التي جرى البحث فيها",noResourceInPools:"لم يُعثر على أي مورد في المصادر التي جرى البحث فيها",aResourceFound:"وُجد مورد",tabCoverage:"تغطية الموارد",tabGap:"أكبر الفجوات",keyScripture:"الكتاب المقدس",keyFilmStories:"الفيلم / القصص",keyAudioEtc:"صوتيات / عرض / تدريب",unresolvedCode:"رمز خارج ISO 639-3 — غير محسوم، لم يُقَس",c1Title:"ما الذي وُجد، بحسب نوع المورد",c1Sub:"عبر جميع اللغات البالغة {n} في مجموعة البيانات. كل عمود يَعُدّ اللغات، لا الشعوب.",c1Unit:"لغات وُجد فيها المورد ضمن المصادر التي جرى البحث فيها",c2Title:"أكبر التجمعات السكانية التي لم يُعثر لها على شيء",c2Sub:"اللغات الـ{n} التي لا يوجد لها كتاب مقدس ولا فيلم في المصادر التي جرى البحث فيها، مرتَّبة بحسب عدد سكان الشعوب التي تتحدثها.",c2Unit:"أشخاص في الشعوب التي هذه لغتها الأساسية — لا المتحدثين بها عمومًا",c3Title:"البلدان الأكثر لغاتٍ غير مخدومة",c3Sub:"البلدان الـ{n} الأكثر لغاتٍ لم يُعثر لها على شيء. طول العمود هو كل لغة موجودة في ذلك البلد.",c3Unit:"لغات موجودة في البلد (اللغة العابرة للحدود تُحتسب في كل بلد)"}},Cb={search:"ابحث عن الشعوب…",hide_filters:"إخفاء عوامل التصفية",show_filters:"إظهار عوامل التصفية",total:"الإجمالي",showing:"المعروض",load_more:"عرض المزيد",full_profile:"الملف الكامل",wagf_region:"المنطقة",wagf_block:"كتلة التقارب",rop1:"الشعب",religion:"الدين",exact_filter:"تطابق تام",clear_all:"مسح الكل",loading:"جارٍ التحميل…",no_results:"لا توجد شعوب مطابقة لهذا التصفية.",type_to_search:"اكتب للبحث...",load_failed:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية.",search_people_or_countries:"ابحث عن الشعوب أو الدول…"},Eb={title:{adoption:"تقدم التبني",affinityBlocs:"كتل القرابة",doxaRegions:"مناطق Doxa",engagement:"تقدم الانخراط",gospelResources:"موارد الإنجيل",languageFamilies:"العائلات اللغوية",prayer:"تقدم الصلاة",upg100List:"قائمة UPG 100 الخاصة بي"},header:{collapsed:"وسيلة الإيضاح",peopleGroupFallback:"مجموعة الشعب",default:"مفتاح الخريطة"},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:"اللغات"},tabInfo:{upg100Region:"المنطقة — ترتّب قوائم UPG-100 حسب منطقة العالم (أفريقيا، الهند، الشرق الأوسط، الصمّ، …). الأعداد هي مجموع UUPG والسكان لكل قائمة تحتها.",upg100Zone:"قوائم UPG-100 — كل واحدة هي قائمة صلاة للشعوب غير الموصول إليها في منطقة ما، وهي ما ترسمه الخريطة وتلوّنه. تُطبع كل قائمة ككُتيّب خاص بها.",upg100Group:"مجموعة شعبية — المجموعات غير الموصول إليها داخل القائمة، الأكثر حاجة للصلاة أولاً. كل نقطة على الخريطة هي واحدة منها."},a11y:{expandRow:"توسيع {label}",collapseRow:"طي {label}",clearSelection:"إلغاء التحديد"},export:{poster:"ملصق",packet:"كُتيّب"},noDataAtThisLevel:"لا توجد بيانات في هذا المستوى",exportButton:"تصدير",exportSelection:"تصدير التحديد"},Tb={menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم الصلاة والملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntro:"وزّع مهمة الصلاة في مجموعات من خمسين ومئة — كما أطعم يسوع الخمسة آلاف (لوقا ٩:١٤). كل ملصق هو قائمة من 100 يمكنك أن تصلي بها وتطبعها وتعلّقها على الحائط — مصلّيًا لأجلهم باسم شعبهم."},Rb={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Nb={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},Mb={"%count% people groups in %countries% countries":"%count% مجموعة شعبية في %countries% دولة","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"تضم %region% %count% مجموعة شعبية في %countries% دولة. يشير لون كل نقطة إلى عدد الأشخاص الذين يصلّون من أجل تلك المجموعة الشعبية.","1+ People Praying":"شخص واحد أو أكثر يصلّي","100+ People Praying":"أكثر من 100 شخص يصلّون",Adopted:"متبنَّاة","Adoption Progress":"تقدُّم التبنّي","All Regions":"جميع المناطق","Alternate Names":"الأسماء البديلة","Choose a region":"اختر منطقة","Clear All":"مسح الكل",Countries:"الدول","Countries in this region":"الدول في هذه المنطقة",Country:"الدولة",Engaged:"مَخْدُومَة","Engagement Progress":"تقدُّم الانخراط","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"كل مجموعة شعبية غير مَخْدُومَة تتبنّاها كنيسة ملتزمة بالصلاة والعطاء والإرسال","Exact Search":"بحث دقيق","Find unreached people groups by region and country.":"ابحث عن المجموعات الشعبية غير المبلَّغة حسب المنطقة والدولة.","Full Profile":"الملف الكامل",Goal:"الهدف","Hide Filters":"إخفاء المرشحات","Hide country posters":"إخفاء ملصقات الدولة",Intercessors:"المتشفعين","Load More":"تحميل المزيد","Loading results...":"النتائج قيد التحميل...",Map:"الخريطة","Mobilize 100+ people praying daily for each DOXA people group":"حشد أكثر من 100 شخص للصلاة يوميًا من أجل كل مجموعة شعبية من مجموعات دوكسا","No One Praying":"لا أحد يصلّي","No options found":"لم يتم العثور على أي خيارات","No poster has been generated for this country yet.":"لم يُنشأ أي ملصق لهذه الدولة بعد.","No unengaged people groups by 2033":"لا مجموعات شعبية غير مَخْدُومَة بحلول عام 2033","Not Adopted":"لم يتم انتماؤه",Other:"أخرى","Page Not Found":"الصفحة غير موجودة","People Group":"مجموعة شعبية","People Groups":"مجموعات شعبية","People committed to praying":"الأشخاص الذين التزموا بالصلاة","Pick a region above, or click any dot to open that people group's country.":"اختر منطقة أعلاه، أو انقر على أي نقطة لفتح دولة تلك المجموعة الشعبية.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"اختر منطقة أو دولة من تبويب قائمة المناطق لتضييق نطاق لوحة المعلومات هذه.",Population:"عدد السكان","Prayer Coverage":"تغطية الصلاة","Prayer coverage progress":"تقدم تغطية الصلاة","Region Dashboards":"لوحات معلومات المناطق","Region dashboard":"لوحة معلومات المنطقة",Regions:"المناطق","Regions List":"قائمة المناطق",Religion:"الدين","Search names, country/continent, religions...":"ابحث عن الأسماء، الدولة/القارة، الأديان...","See %region% dashboard":"عرض لوحة معلومات %region%","See All":"عرض جميع العناصر",Select:"اختر","Select View":"اختر العرض","Show Filters":"إظهار عوامل التصفية","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"توجد %count% مجموعة شعبية في %country%. تحقق من الخريطة لمعرفة المجموعات الشعبية الواقعة على حدود هذه الدولة أيضًا.",Total:"المجموع","Type to search...":"اكتب ما تريد البحث عنه...","Unengaged people groups":"المجموعات الشعبية غير المَخْدُومَة","View country posters":"عرض ملصقات الدولة",Views:"العروض","WAGF Block":"كتلة WAGF","WAGF Region":"منطقة WAGF","people groups adopted":"مجموعات شعبية متبنَّاة","people groups engaged":"مجموعات شعبية مَخْدُومَة","Outside this region":"خارج هذه المنطقة",Pray:"صلّي","Loading region dashboards…":"جارٍ تحميل لوحات المناطق…","No regions found.":"لم يتم العثور على مناطق.","Region data could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل بيانات المناطق. هذه مشكلة في الاتصال، وليست تصفية.","People groups could not be loaded. This is a connection problem, not a filter.":"تعذّر تحميل الشعوب. هذه مشكلة في الاتصال، وليست تصفية.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},Fb={placeholder:"شعب، مكان، لغة، ديانة",placeholderNoPlaces:"شعب، لغة، ديانة (البحث عن الأماكن يتطلب رمز Mapbox)",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"},upg100Placeholder:"ابحث عن شعب أو قائمة UPG-100 أو منطقة…"},Ib={prayer:"الصلاة",adoption:"التبني",engagement:"المشاركة","affinity-blocks":"الشعوب",regions:"المناطق",countries:"الدول","language-families":"اللغات",religion:"الأديان",family:"عائلة اللغة",language:"اللغة",dialect:"اللهجة/التنوع",bloc:"كتلة التقارب",cluster:"المجموعة",group:"الشعب",pgic:"الشعب في الدولة",region:"منطقة WAGF",block:"كتلة WAGF",country:"الدولة",upg100Region:"المنطقة",upg100Zone:"قوائم UPG-100",upg100Group:"مجموعة شعبية",selectView:"اختر العرض",views:"العروض",prayerResources:"موارد الصلاة",map:"الخريطة",countryPosters:"ملصقات الدول"},Ob={title:"Alle Volksgruppen",locations:"{n} Standorte (Gruppe × Land)",doxa:"DOXA-Volksgruppen",frontier:"Frontier — noch nichts begonnen",unreached:"Unerreicht — Arbeit beginnt",reached:"Erreicht — Gemeinde ist da",hint:"Zeile anklicken, um alle zu sehen · erneut klicken für alle",loading:"Alle Volksgruppen werden geladen…",loadError:"Die Karte konnte nicht geladen werden.",pray:"Für sie beten →",population:"Einw. {n}"},Db={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden",searchPeopleGroups:"Volksgruppen suchen",resetAllFilters:"Alle Filter und die Suche zurücksetzen",selectAllRows:"Alle Zeilen auswählen",deselectAllRows:"Auswahl aller Zeilen aufheben"},Gb={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",posterMap:"Posterkarte",prayerList:"Gebetsliste",cardDeck:"Kartenset",printOptions:"Druckoptionen",showOnMap:"Auf der Karte zeigen",close:"Schließen",showOnMapAria:"{label} auf der Karte zeigen",cardStockAria:"Größe der Gebetskarte",previewPrintPoster:"Vorschau und Druck des Posters {label}",share:"Teilen",shareSteps:["Binde diese Karte auf deiner Website ein","Erstelle eine Liste der Websites in deiner Stadt","Zeige ihnen, wie sie sie ebenfalls einbinden","Zeige ihnen, wie sie es anderen beibringen","Lasst uns Karten überall vermehren – für Jesus!"],clearSelection:"Auswahl aufheben",noOptions:"Keine Optionen gefunden",renderingLocal:"Ein druckfähiges Bild wird in deinem Browser erzeugt — es wird nichts hochgeladen.",postersPerRow:"Poster pro Zeile"},Bb={research_controls:"Forschungssteuerung",clustering:"Clustering",filters:"Filter",pin_dim:"Pin-Transparenz",export_poster:"Poster exportieren…",reload_data:"Daten neu laden",off:"Aus",native:"Nativ",mst:"MST",network:"Netzwerk",off_desc:"Jeden Pin einzeln anzeigen",native_desc:"Mapbox-Kreiscluster (am schnellsten)",mst_desc:"Affinitätsnetze über minimalen Spannbaum",network_desc:"Verbindungslinien zum nächsten Nachbarn",search_languages:"Sprachen suchen…",search_religions:"Religionen suchen…",reset_all:"Alles zurücksetzen",no_languages:"Noch keine Sprachen geladen",no_religions:"Noch keine Religionen geladen",unadopted:"Nicht adoptiert",min:"min",max:"max",adopted:"Adoptiert",adoption:"Adoption",engaged:"Engagiert",engagement:"Engagement",unengaged:"Braucht Engagement",language:"Sprache",religion:"Religion",population:"Bevölkerung",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",close:"Schließen",clear:"Zurücksetzen",map_controls:"Kartensteuerung"},jb={bloc:"Affinitätsblock",gospel_access:"Zugang zum Evangelium",people:"Völker",people_name:"Volk (Name)",praying:"Betend",religion_family:"Religionsfamilie",search_language:"Sprache suchen",search_people:"Volk suchen",search_place:"Ort suchen",search_religion:"Religion suchen",upgs_in_scope:"UPGs im Bereich",countries_touched:"berührte Länder",unreached:"unerreicht",sum_population:"Σ Bevölkerung",sum_praying:"Σ Betende",charts:"Diagramme",table:"Tabelle",cluster:"Cluster",country:"Land",engagement:"Engagement",language:"Sprache",language_family:"Sprachfamilie",people_group:"Volk",population:"Bevölkerung",prayer:"Gebet",region:"Region",religion:"Religion",status:"Status",adopted:"Adoptiert",filters:"Filter",gospel_resources:"Evangeliumsressourcen",map:"Karte",search_placeholder:"Volksgruppen, Orte, Sprachen, Religionen suchen…",any:"Alle",active_count:"{n} aktiv",prayer_status:"Gebetsstatus",map_controls:"Kartensteuerung",close:"Schließen",clear:"Zurücksetzen",dashboard_title:"Big-Picture-Forschungsdashboard",align_dashboard:"Layout ausrichten",align_dashboard_tip:"Das Dashboard-Layout auf die Standardausrichtung zurücksetzen",selected:"Ausgewählt",world:"Welt",vertical_legend:"Vertikale Legende",groups_in_scope:"Volksgruppen im Bereich",filter_by:"Filtern nach",remove_filter:"Filter entfernen",groups:"Volksgruppen",expand:"Aufklappen",collapse:"Zuklappen",place:"Ort",export_csv:"CSV exportieren",detail:"Details",detail_empty:"Wählen Sie eine Volksgruppe, um Details zu sehen",heartbeat_zone:"Herzschlag-Zone",top_countries:"Top-Länder",select_all:"Alle auswählen",expand_table:"Tabelle ausklappen",collapse_table:"Tabelle einklappen – Karte vergrößern",group:"Volksgruppe",deselect_all:"Auswahl aufheben"},zb={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},Ub={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Die erläuternden Hinweise unten sind auf Englisch."},mode:{gap:"Lücke",coverage:"Gefundene Ressourcen"},search:{placeholder:"Volksgruppe, Sprache oder ISO-Code suchen",clear:"Suche löschen",none:"Nichts passt zu diesem Namen, dieser Sprache oder diesem Code.",placeholderShort:"Gruppe, Sprache oder ISO-Code"},legend:{title:"Unerreichte Volksgruppen ohne gefundene Evangeliums-Ressource",band60:"60 %+ ohne jede Ressource",band30:"30–59 %",bandSome:"einige Gruppen",bandAll:"alle Gruppen haben etwas",tier2:"Bibeltext und Film",tier1:"etwas gefunden",tier0:"nichts gefunden",hnr:"können hören, kein Text",showAll:"Alle Gruppen anzeigen",titleCoverage:"Unerreichte Volksgruppen mit einer gefundenen Evangeliums-Ressource",cov80:"80 %+ haben etwas",cov50:"50–79 %",cov1:"1–49 %",cov0:"für keinen etwas gefunden",tallyEach:"Jeder",tallyIs:"ist EINE Volksgruppe —",tallyOf:"davon,",tallyLink:"mit einem Link",doxa0:"alle haben etwas",doxa1:"1–4 ohne",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 erreicht",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa-Volksgruppen auf dieser Karte",notPlaced:"auf der Liste, noch nicht verortet",outOfScope:"keine Doxa-Volksgruppen — nicht eingefärbt"},tabs:{groups:"Größte Gruppen",countries:"Nach Land",regions:"Nach Region",noprayer:"Niemand betet",hnr:"Hören ja, Text nein"},stat:{language:"Sprache",population:"Bevölkerung",countries:"Länder",peopleGroups:"Volksgruppen",noResource:"Keine Ressource gefunden",peopleAffected:"Betroffene Menschen",haveScripture:"Haben Bibeltext",haveFilm:"Haben Film",haveAudio:"Haben Hörbibel",signLanguages:"Gebärdensprachen",growingUnreached:"Wachsend & unerreicht",deathsDay:"Geschätzte Todesfälle/Tag"},sheet:{ownLanguage:"In ihrer eigenen Sprache",close:"Schließen",loading:"Ressourcen werden geladen…",pray:"Betet für",everyResource:"Alle Ressourcen auf",alsoSpeak:"Sprechen ebenfalls"},res:{scripture:"Bibeltext",film:"Film",audio:"Audio",bibleVideo:"Bibelvideo",bibleStories:"Open Bible Stories",gospelAudio:"Evangeliums-Audio",gospelPresentation:"Evangeliums-Darstellung",scriptureEarth:"Scripture Earth",training:"Jüngerschaftstraining",jesusFilm:"JESUS Film",audioScripture:"Audio-Bibeltext",bibleStoriesPlain:"Bibelgeschichten"},state:{noneFound:"nichts gefunden",noneAtFcbh:"nichts bei FCBH",noneAtGrn:"nichts bei GRN",notInZume:"nicht in Zumes 54",linkChecked:"Link geprüft",unchecked:"ungeprüft",linkDead:"Link tot",wrongLanguage:"falsche Sprache",varietyNotStated:"(Varietät nicht angegeben)",inLanguage:"auf"},guide:{dotVsCountry:"Ein Punkt ist EINE Volksgruppe von Doxa mit ihrer eigenen Sprache; ein Land ist die ANZAHL dieser Gruppen.",noneFoundShort:"„Nichts gefunden“ heißt: nicht in den geprüften Quellen — nie ein Beweis, dass es nichts gibt.",tapCountry:"Tippen Sie auf ein Land, um die Ressourcen Gruppe für Gruppe zu sehen."},tables:{title:"Evangeliums-Ressourcen — Daten",showing:"Zeige",of:"von",for:"für",filteredTo:"Gefiltert nach",showAll:"Alle Ressourcen zeigen",t_doxa:"Doxa — Zugang zum Evangelium",t_links:"Jede Ressource + Link",t_nothing:"Wo nichts gefunden wurde",t_countrygap:"Die Lücke nach Land",t_translation:"Hören ja, Text nein",t_translationcountry:"Wo übersetzen",t_province:"Zugang zum Evangelium nach Provinz — Indien und China",t_gaps:"Lücken & Chancen",t_bridges:"Stadt-Brücken",t_deaf:"Die Gehörlosen-Lücke",t_resources:"Ressourcen nach Volksgruppe",t_languages:"Sprachen nach Land",t_growth:"Zugang vs. Bevölkerungswachstum"},pages:{listTitle:"Evangeliums-Ressourcen nach Sprache",chartsTitle:"Evangeliums-Ressourcen — nach Sprache",loadingTables:"Ressourcentabellen werden geladen…"},list:{noText:"Kein Bibeltext",hasScripture:"Hat Bibeltext",allLanguages:"Alle Sprachen",peopleGroup:"Volksgruppe",peopleGroups:"Volksgruppen",scriptureHere:"Bibeltext in dieser Sprache"},columns:{"People group":"Volksgruppe",Country:"Land",Region:"Region",Language:"Sprache",Population:"Bevölkerung",Religion:"Religion","Gospel access":"Zugang zum Evangelium",Resources:"Ressourcen",Scripture:"Bibeltext","Bible video":"Bibelvideo","Gospel presentation":"Evangeliums-Darstellung",Countries:"Länder","People groups":"Volksgruppen"},charts:{scriptureAny:"Bibeltext (beliebig)",fullBible:"Vollbibel",newTestament:"Neues Testament",filmAny:"Film (beliebig)",nothingInPools:"Nichts in den geprüften Quellen gefunden",nothingInPoolsLower:"nichts in den geprüften Quellen gefunden",noResourceInPools:"keine Ressource in den geprüften Quellen gefunden",aResourceFound:"eine Ressource gefunden",tabCoverage:"Ressourcenabdeckung",tabGap:"Größte Lücken",keyScripture:"Bibeltext",keyFilmStories:"Film / Geschichten",keyAudioEtc:"Audio / Präsentation / Schulung",unresolvedCode:"Code außerhalb ISO 639-3 — ungeklärt, nicht gemessen",c1Title:"Was GEFUNDEN wurde, nach Ressourcentyp",c1Sub:"Über alle {n} Sprachen im Datenbestand. Jeder Balken zählt SPRACHEN, nicht Volksgruppen.",c1Unit:"Sprachen, in denen die Ressource in den geprüften Quellen gefunden wurde",c2Title:"Größte Bevölkerungen ohne jeden Fund",c2Sub:"Die {n} Sprachen ohne Bibeltext und ohne Film in den geprüften Quellen, sortiert nach der Bevölkerung der Volksgruppen, die sie sprechen.",c2Unit:"Menschen in den Volksgruppen, deren PRIMÄRE Sprache dies ist — nicht Sprecher der Sprache",c3Title:"Länder mit den meisten unversorgten Sprachen",c3Sub:"Die {n} Länder mit den meisten Sprachen, für die nichts gefunden wurde. Die Balkenlänge ist jede im Land vorhandene Sprache.",c3Unit:"im Land vorhandene Sprachen (eine grenzüberschreitende Sprache zählt in jedem Land)"}},Hb={search:"Volksgruppen suchen…",hide_filters:"Filter ausblenden",show_filters:"Filter anzeigen",total:"Gesamt",showing:"Angezeigt",load_more:"Mehr laden",full_profile:"Vollständiges Profil",wagf_region:"Region",wagf_block:"Affinitätsblock",rop1:"Volk",religion:"Religion",exact_filter:"Exakt",clear_all:"Alle löschen",loading:"Wird geladen…",no_results:"Keine Volksgruppen entsprechen diesem Filter.",type_to_search:"Zum Suchen tippen...",load_failed:"Die Daten konnten nicht geladen werden. Das ist ein Verbindungsproblem, nicht Ihr Filter.",search_people_or_countries:"Volksgruppen oder Länder suchen…"},Kb={title:{adoption:"Adoptionsfortschritt",affinityBlocs:"Affinitätsblöcke",doxaRegions:"Doxa-Regionen",engagement:"Engagement-Fortschritt",gospelResources:"Evangeliumsressourcen",languageFamilies:"Sprachfamilien",prayer:"Gebetsfortschritt",upg100List:"Meine UPG-100-Liste"},header:{collapsed:"Legende",peopleGroupFallback:"Volksgruppe",default:"Legende"},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",name:"Name"},footer:{total:"Gesamt"},sortByUpgs:"Nach UUPGs sortieren",sortByPop:"Nach Bevölkerung sortieren",colLabel:{religion:"UUPG-Religionen",prayer:"Gebetsstatus",engagement:"Engagement-Status",adoption:"Adoptionsstatus",status:"Status"},titleBar:{legend:"Legende",peopleGroups:"Völker",wagfRegions:"WAGF-Regionen",languages:"Sprachen"},tabInfo:{upg100Region:"Region — sortiert die UPG-100-Listen nach Weltgegend (Afrika, Indien, Naher Osten, Gehörlose, …). Die Zahlen sind die UUPGs und die Bevölkerung aller darunterliegenden Listen zusammen.",upg100Zone:"UPG-100-Listen — jede ist eine Gebetsliste der unerreichten Volksgruppen eines Gebiets und das, was die Karte zeichnet und einfärbt. Jede Liste wird als eigenes Heft gedruckt.",upg100Group:"Volksgruppe — die einzelnen unerreichten Gruppen innerhalb einer Liste, größter Gebetsbedarf zuerst. Jeder Kartenpunkt ist eine davon."},a11y:{expandRow:"{label} ausklappen",collapseRow:"{label} einklappen",clearSelection:"Auswahl aufheben"},export:{poster:"Plakat",packet:"Heft"},noDataAtThisLevel:"Keine Daten auf dieser Ebene",exportButton:"Exportieren",exportSelection:"Auswahl exportieren"},Vb={menuComingSoon:"Menü folgt in Kürze",pinHint:{tapDot:"Tippe auf einen farbigen Punkt — jemand braucht noch Gebet"},upg100WallHeading:"Meine UPG-100-Liste — Gebetslisten und Poster",upg100WallTag:"Gebetsmobilisierung",upg100WallIntro:"Teilen Sie die Gebetsaufgabe in Gruppen zu fünfzig und hundert auf — so wie Jesus die 5.000 speiste (Lukas 9,14). Jedes Poster ist eine 100er-Liste, die Sie beten, drucken und an die Wand hängen können — und für sie mit dem Namen ihrer Volksgruppe beten."},Wb={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},qb={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},Yb={"%count% people groups in %countries% countries":"%count% Volksgruppen in %countries% Ländern","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% hat %count% Volksgruppen in %countries% Ländern. Die Farbe jedes Punktes zeigt, wie viele Menschen für diese Volksgruppe beten.","1+ People Praying":"1+ Menschen beten","100+ People Praying":"100+ Menschen beten",Adopted:"Adoptiert","Adoption Progress":"Adoptionsfortschritt","All Regions":"Alle Regionen","Alternate Names":"Alternative Namen","Choose a region":"Region auswählen","Clear All":"Alle löschen",Countries:"Länder","Countries in this region":"Länder in dieser Region",Country:"Land",Engaged:"Engagiert","Engagement Progress":"Fortschritt der Arbeit vor Ort","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Jede einzelne der völlig unerreichten Volksgruppen soll von einer Ortsgemeinde adoptiert werden, durch Beten, Geben und Senden","Exact Search":"Exakte Suche","Find unreached people groups by region and country.":"Finde unerreichte Volksgruppen nach Region und Land.","Full Profile":"Vollständiges Profil",Goal:"Ziel","Hide Filters":"Filter ausblenden","Hide country posters":"Länderposter ausblenden",Intercessors:"Fürbitter","Load More":"Mehr laden","Loading results...":"Ergebnisse werden geladen...",Map:"Karte","Mobilize 100+ people praying daily for each DOXA people group":"Mobilisiere 100+ Menschen, die täglich für jede DOXA-Volksgruppe beten","No One Praying":"Niemand betet","No options found":"Keine Standorte gefunden","No poster has been generated for this country yet.":"Für dieses Land wurde noch kein Poster erstellt.","No unengaged people groups by 2033":"Dass es bis 2033 keine völlig unerreichte Volksgruppe mehr gibt","Not Adopted":"noch nicht adoptiert",Other:"Andere","Page Not Found":"Seite nicht gefunden","People Group":"Personengruppe","People Groups":"Volksgruppen","People committed to praying":"Menschen, die sich dem Beten verpflichtet haben","Pick a region above, or click any dot to open that people group's country.":"Wählen Sie oben eine Region aus oder klicken Sie auf einen Punkt, um das Land dieser Volksgruppe zu öffnen.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Wählen Sie im Tab „Regionenliste“ eine Region oder ein Land aus, um dieses Dashboard einzugrenzen.",Population:"Bevölkerung","Prayer Coverage":"Gebetsabdeckung","Prayer coverage progress":"Fortschritt der Gebetsabdeckung","Region Dashboards":"Regionen-Dashboards","Region dashboard":"Regions-Dashboard",Regions:"Regionen","Regions List":"Regionenliste",Religion:"Primäre Religion","Search names, country/continent, religions...":"Suche nach Namen, Land/Kontinent, Religionen...","See %region% dashboard":"Dashboard anzeigen: %region%","See All":"Alle anzeigen",Select:"Auswählen","Select View":"Ansicht auswählen","Show Filters":"Filter anzeigen","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% gibt es %count% Volksgruppen. Sieh auch auf der Karte nach den Volksgruppen an der Grenze dieses Landes.",Total:"Gesamt","Type to search...":"Geben Sie etwas ein, um danach zu suchen","Unengaged people groups":"Unberührte Volksgruppen","View country posters":"Länderposter ansehen",Views:"Ansichten","WAGF Block":"WAGF-Block","WAGF Region":"WAGF-Region","people groups adopted":"adoptierte Volksgruppen","people groups engaged":"engagierte Volksgruppen","Outside this region":"Außerhalb dieser Region",Pray:"Ich bete","Loading region dashboards…":"Regions-Dashboards werden geladen…","No regions found.":"Keine Regionen gefunden.","Region data could not be loaded. This is a connection problem, not a filter.":"Regionsdaten konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","People groups could not be loaded. This is a connection problem, not a filter.":"Volksgruppen konnten nicht geladen werden. Das ist ein Verbindungsproblem, kein Filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Die Karte konnte nicht starten. Das ist ein Karten-Token- oder Verbindungsproblem, kein Filter — die Zahlen oben sind davon nicht betroffen."},Zb={placeholder:"Volk, Ort, Sprache, Religion",placeholderNoPlaces:"Volk, Sprache, Religion (Ortssuche braucht ein Mapbox-Token)",labels:{people:"Volk:",place:"Ort:",language:"Sprache:",religion:"Religion:"},sections:{within:"Innerhalb {selection}",allData:"Alle DOXA-Daten"},kinds:{people:"Volk + Land",peopleGroup:"Volk",bloc:"Affinitätsblock",cluster:"Völkercluster",country:"Land",region:"Region",family:"Sprachfamilie",languageKind:"Sprache",dialect:"Dialekt",religionKind:"Religion"},upg100Placeholder:"Volksgruppe, UPG-100-Liste oder Region suchen…"},Xb={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",upg100Region:"Region",upg100Zone:"UPG-100-Listen",upg100Group:"Volksgruppe",selectView:"Ansicht wählen",views:"Ansichten",prayerResources:"Gebetsressourcen",map:"Karte",countryPosters:"Länderposter"},Jb={title:"All People Groups",locations:"{n} group–country locations",doxa:"DOXA people groups",frontier:"Frontier — nothing started",unreached:"Unreached — work beginning",reached:"Reached — church is there",hint:"Click a row to see all of them · click again for everything",loading:"Loading every people group…",loadError:"The map could not be loaded.",pray:"Pray for them →",population:"pop {n}"},Qb={backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend",searchPeopleGroups:"Search people groups",resetAllFilters:"Reset all filters and search",selectAllRows:"Select all rows",deselectAllRows:"Deselect all rows"},ey={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",posterMap:"Poster Map",prayerList:"Prayer List",cardDeck:"Card Deck",printOptions:"Print Options",showOnMap:"Show on map",close:"Close",showOnMapAria:"Show {label} on the map",cardStockAria:"Prayer card size",previewPrintPoster:"Preview & print the {label} poster",clearSelection:"Clear selection",noOptions:"No options found",renderingLocal:"Rendering a print-quality image in your browser — nothing is uploaded.",postersPerRow:"Posters per row"},ty={research_controls:"Research controls",clustering:"Clustering",filters:"Filters",pin_dim:"Pin dim",export_poster:"Export poster…",reload_data:"Reload data",off:"Off",native:"Native",mst:"MST",network:"Network",off_desc:"Show every pin individually",native_desc:"Mapbox circle clusters (fastest)",mst_desc:"Minimum-spanning-tree affinity webs",network_desc:"Nearest-neighbor connection lines",search_languages:"Search languages…",search_religions:"Search religions…",reset_all:"Reset all",no_languages:"No languages loaded yet",no_religions:"No religions loaded yet",unadopted:"Unadopted",min:"min",max:"max",adopted:"Adopted",adoption:"Adoption",engaged:"Engaged",engagement:"Engagement",unengaged:"Unengaged",language:"Language",religion:"Religion",population:"Population",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",close:"Close",clear:"Clear",map_controls:"Research map controls"},oy={bloc:"Bloc",gospel_access:"Gospel Access",people:"People",people_name:"People (name)",praying:"Praying",religion_family:"Religion Family",search_language:"Search language",search_people:"Search people",search_place:"Search place",search_religion:"Search religion",upgs_in_scope:"UPGs in scope",countries_touched:"countries touched",unreached:"unreached",sum_population:"Σ population",sum_praying:"Σ praying",charts:"Charts",table:"Table",cluster:"Cluster",country:"Country",engagement:"Engagement",language:"Language",language_family:"Language Family",people_group:"People Group",population:"Population",prayer:"Prayer",region:"Region",religion:"Religion",status:"Status",adopted:"Adopted",filters:"Filters",gospel_resources:"Gospel Resources",map:"Map",search_placeholder:"Search people groups, place, language, religion…",any:"Any",active_count:"{n} active",prayer_status:"Prayer Status",map_controls:"Research map controls",close:"Close",clear:"Clear",dashboard_title:"Big Picture Research Dashboard",align_dashboard:"Align Dashboard",align_dashboard_tip:"Reset the dashboard layout to its default alignment",selected:"Selected",world:"World",vertical_legend:"Vertical Legend",groups_in_scope:"groups in scope",filter_by:"Filter by",remove_filter:"Remove filter",groups:"groups",expand:"Expand",collapse:"Collapse",place:"Place",export_csv:"Export CSV",detail:"Detail",detail_empty:"Select a people group to see detail",heartbeat_zone:"heartbeat zone",top_countries:"Top countries",select_all:"Select all",expand_table:"Expand table",collapse_table:"Collapse table — grow the map",group:"group",deselect_all:"Deselect all"},ny={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},ay={_note:'SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file: it carries doctrinal and statistical precision — which pools were searched, what "nothing found" does and does not claim, why Open Bible Stories is not Scripture — and a mistranslated caveat there would read as authoritative. `prose.english` is the one translated line that says so. When a human-reviewed translation of the prose exists, it gets its own area file and that line comes out.',prose:{english:"Explanatory notes below are in English."},mode:{gap:"Gap",coverage:"Resources found"},search:{placeholder:"Find a people group, language or ISO code",clear:"Clear search",none:"Nothing matches that name, language or code.",placeholderShort:"Group, language or ISO code"},legend:{title:"Unengaged groups with no gospel resource found",band60:"60%+ with nothing found",band30:"30–59%",bandSome:"some groups",bandAll:"all groups have some",tier2:"Scripture and film",tier1:"some resource found",tier0:"nothing found",hnr:"can hear it, no text found",showAll:"Show all groups",titleCoverage:"Unengaged groups with some gospel resource found",cov80:"80%+ have something found",cov50:"50–79%",cov1:"1–49%",cov0:"nothing found for any",tallyEach:"Each",tallyIs:"is ONE people group —",tallyOf:"of them,",tallyLink:"with a link",doxa0:"all have something",doxa1:"1–4 with nothing",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 reached",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Doxa people groups on this map",notPlaced:"on the roster, not yet placed",outOfScope:"no Doxa people groups — not coloured"},tabs:{groups:"Largest groups",countries:"By country",regions:"By region",noprayer:"Nobody praying",hnr:"Can hear, no text"},stat:{language:"Language",population:"Population",countries:"Countries",peopleGroups:"People groups",noResource:"No resource found",peopleAffected:"People affected",haveScripture:"Have scripture",haveFilm:"Have film",haveAudio:"Have audio Scripture",signLanguages:"Sign languages",growingUnreached:"Growing & unreached",deathsDay:"Est. deaths/day"},sheet:{ownLanguage:"In their own language",close:"Close",loading:"Loading resources…",pray:"Pray for",everyResource:"Every resource in",alsoSpeak:"Also speak"},res:{scripture:"Scripture",film:"Film",audio:"Audio",bibleVideo:"Bible video",bibleStories:"Open Bible Stories",gospelAudio:"Gospel audio",gospelPresentation:"Gospel presentation",scriptureEarth:"Scripture Earth",training:"Discipleship training",jesusFilm:"JESUS Film",audioScripture:"Audio Scripture",bibleStoriesPlain:"Bible Stories"},state:{noneFound:"none found",noneAtFcbh:"none found at FCBH",noneAtGrn:"none found at GRN",notInZume:"not in Zume's 54",linkChecked:"link checked",unchecked:"unchecked",linkDead:"link dead",wrongLanguage:"wrong language",varietyNotStated:"(variety not stated)",inLanguage:"in"},guide:{dotVsCountry:"A dot is ONE of Doxa's people groups and its own language; a country is a COUNT of those groups.",noneFoundShort:"“None found” means not present in the pools this build checked — never proof that nothing exists.",tapCountry:"Tap a country to see the actual resources, group by group."},tables:{title:"Gospel Resources — Data",showing:"Showing",of:"of",for:"for",filteredTo:"Filtered to",showAll:"Show all resources",t_doxa:"Doxa — Gospel Access",t_links:"Every Resource + Link",t_nothing:"Where Nothing Was Found",t_countrygap:"The Gap by Country",t_translation:"Can Hear It, No Text",t_translationcountry:"Where to Translate",t_province:"Gospel access by province — India and China",t_gaps:"Gaps & Opportunities",t_bridges:"City Bridges",t_deaf:"The Deaf Gap",t_resources:"Resources by People Group",t_languages:"Languages by Country",t_growth:"Access vs Population Growth"},pages:{listTitle:"Gospel Resources by Language",chartsTitle:"Gospel Resources — by Language",loadingTables:"Loading resource tables…"},list:{noText:"No text Scripture",hasScripture:"Has scripture",allLanguages:"All languages",peopleGroup:"people group",peopleGroups:"people groups",scriptureHere:"Scripture in this language"},columns:{"People group":"People group",Country:"Country",Region:"Region",Language:"Language",Population:"Population",Religion:"Religion","Gospel access":"Gospel access",Resources:"Resources",Scripture:"Scripture","Bible video":"Bible video","Gospel presentation":"Gospel presentation",Countries:"Countries","People groups":"People groups"},charts:{scriptureAny:"Scripture (any)",fullBible:"Full Bible",newTestament:"New Testament",filmAny:"Film (any)",nothingInPools:"Nothing found in pools checked",nothingInPoolsLower:"nothing found in pools checked",noResourceInPools:"no resource found in pools checked",aResourceFound:"a resource found",tabCoverage:"Resource coverage",tabGap:"Largest gaps",keyScripture:"scripture",keyFilmStories:"film / stories",keyAudioEtc:"audio / presentation / training",unresolvedCode:"code outside ISO 639-3 — unresolved, not measured",c1Title:"What was FOUND, by resource type",c1Sub:"Across all {n} languages in the corpus. Each bar counts LANGUAGES, not people groups.",c1Unit:"languages where the resource was found in the pools checked",c2Title:"Largest populations with nothing found",c2Sub:"The {n} languages with no scripture and no film in the pools checked, ranked by the population of the people groups who speak them.",c2Unit:"people in the people groups whose PRIMARY language this is — not speakers of the language",c3Title:"Countries with the most unserved languages",c3Sub:"The {n} countries with the most languages that have nothing found. Bar length is every language present in that country.",c3Unit:"languages present in the country (a cross-border language counts in each)"}},sy={search:"Search people groups…",hide_filters:"Hide Filters",show_filters:"Show Filters",total:"Total",showing:"Showing",load_more:"Load More",full_profile:"Full Profile",wagf_region:"Region",wagf_block:"Affinity Block",rop1:"People Group",religion:"Religion",exact_filter:"Exact",clear_all:"Clear All",loading:"Loading…",no_results:"No people groups match this filter.",type_to_search:"Type to search...",load_failed:"People-group data could not be loaded. This is a connection problem, not your filter.",search_people_or_countries:"Search people groups or countries…"},ry={title:{adoption:"Adoption Progress",affinityBlocs:"Affinity Blocks",doxaRegions:"Doxa Regions",engagement:"Engagement Progress",gospelResources:"Gospel Resources",languageFamilies:"Language Families",prayer:"Prayer Progress",upg100List:"My UPG 100 List"},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"},tabInfo:{upg100Region:"Region — sort the UPG-100 lists by world area (Africa, India, Middle East, Deaf, …). Counts are the UUPGs and population summed across every list beneath it.",upg100Zone:"UPG-100 Lists — each one is a prayer list of the unreached people groups in an area, and is what the map paints and colours. Every list prints as its own packet.",upg100Group:"People Group — the individual unreached groups inside a list, largest prayer need first. Each map dot is one of these."},a11y:{expandRow:"Expand {label}",collapseRow:"Collapse {label}",clearSelection:"Clear selection"},export:{poster:"Poster",packet:"Packet"},noDataAtThisLevel:"No data at this level",exportButton:"Export",exportSelection:"Export selection"},iy={menuComingSoon:"Menu coming soon",pinHint:{tapDot:"Tap a coloured dot — someone still needs prayer"},upg100WallHeading:"My UPG 100 List — Prayer Lists & Posters",upg100WallTag:"Prayer Mobilization",upg100WallIntro:"Hand away the prayer task in clusters of fifties and hundreds — the way Jesus fed the 5,000 (Luke 9:14). Each poster is a 100-list you can pray, print, and put on a wall — praying for them by their people group name."},ly={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},cy={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},uy={"%count% people groups in %countries% countries":"%count% people groups in %countries% countries","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.","1+ People Praying":"1+ People Praying","100+ People Praying":"100+ People Praying",Adopted:"Adopted","Adoption Progress":"Adoption Progress","All Regions":"All Regions","Alternate Names":"Alternate Names","Choose a region":"Choose a region","Clear All":"Clear All",Countries:"Countries","Countries in this region":"Countries in this region",Country:"Country",Engaged:"Engaged","Engagement Progress":"Engagement Progress","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Every unengaged people group adopted by a church committed to prayer, giving, and sending","Exact Search":"Exact Search","Find unreached people groups by region and country.":"Find unreached people groups by region and country.","Full Profile":"Full Profile",Goal:"Goal","Hide Filters":"Hide Filters","Hide country posters":"Hide country posters",Intercessors:"Intercessors","Load More":"Load More","Loading results...":"Loading results...",Map:"Map","Mobilize 100+ people praying daily for each DOXA people group":"Mobilize 100+ people praying daily for each DOXA people group","No One Praying":"No One Praying","No options found":"No options found","No poster has been generated for this country yet.":"No poster has been generated for this country yet.","No unengaged people groups by 2033":"No unengaged people groups by 2033","Not Adopted":"Not Adopted",Other:"Other","Page Not Found":"Page Not Found","People Group":"People Group","People Groups":"People Groups","People committed to praying":"People committed to praying","Pick a region above, or click any dot to open that people group's country.":"Pick a region above, or click any dot to open that people group's country.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Pick a region or a country on the Regions List tab to narrow this dashboard.",Population:"Population","Prayer Coverage":"Prayer Coverage","Prayer coverage progress":"Prayer coverage progress","Region Dashboards":"Region Dashboards","Region dashboard":"Region dashboard",Regions:"Regions","Regions List":"Regions List",Religion:"Religion","Search names, country/continent, religions...":"Search names, country/continent, religions...","See %region% dashboard":"See %region% dashboard","See All":"See All",Select:"Select","Select View":"Select View","Show Filters":"Show Filters","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.",Total:"Total","Type to search...":"Type to search...","Unengaged people groups":"Unengaged people groups","View country posters":"View country posters",Views:"Views","WAGF Block":"WAGF Block","WAGF Region":"WAGF Region","people groups adopted":"people groups adopted","people groups engaged":"people groups engaged","Outside this region":"Outside this region",Pray:"Pray","Loading region dashboards…":"Loading region dashboards…","No regions found.":"No regions found.","Region data could not be loaded. This is a connection problem, not a filter.":"Region data could not be loaded. This is a connection problem, not a filter.","People groups could not be loaded. This is a connection problem, not a filter.":"People groups could not be loaded. This is a connection problem, not a filter.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected."},py={placeholder:"People, place, language, religion",placeholderNoPlaces:"People, language, religion (place search needs a Mapbox token)",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"},upg100Placeholder:"Search people group, UPG-100 list, or region…"},dy={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",upg100Region:"Region",upg100Zone:"UPG-100 Lists",upg100Group:"People Group",selectView:"Select View",views:"Views",prayerResources:"Prayer Resources",map:"Map",countryPosters:"Country Posters"},gy={title:"Todos los grupos étnicos",locations:"{n} ubicaciones (grupo × país)",doxa:"Grupos étnicos de DOXA",frontier:"Frontera — nada iniciado",unreached:"No alcanzados — el trabajo comienza",reached:"Alcanzados — la iglesia está ahí",hint:"Haga clic en una fila para verlos todos · de nuevo para ver todo",loading:"Cargando todos los grupos étnicos…",loadError:"No se pudo cargar el mapa.",pray:"Ore por ellos →",population:"pobl. {n}"},fy={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda",searchPeopleGroups:"Buscar pueblos",resetAllFilters:"Restablecer todos los filtros y la búsqueda",selectAllRows:"Seleccionar todas las filas",deselectAllRows:"Deseleccionar todas las filas"},hy={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",posterMap:"Mapa del cartel",prayerList:"Lista de oración",cardDeck:"Baraja de tarjetas",printOptions:"Opciones de impresión",showOnMap:"Ver en el mapa",close:"Cerrar",showOnMapAria:"Ver {label} en el mapa",cardStockAria:"Tamaño de la tarjeta de oración",previewPrintPoster:"Previsualizar e imprimir el cartel de {label}",share:"Compartir",shareSteps:["Inserta este mapa en tu sitio","Haz una lista de los sitios web de tu ciudad","Enséñales a insertarlo también","Enséñales a enseñar a otros a insertarlo","¡Multiplica los mapas por todas partes para Jesús!"],clearSelection:"Borrar la selección",noOptions:"No se encontraron opciones",renderingLocal:"Se está generando una imagen con calidad de impresión en tu navegador: no se sube nada.",postersPerRow:"Pósteres por fila"},my={research_controls:"Controles de investigación",clustering:"Agrupación",filters:"Filtros",pin_dim:"Atenuar puntos",export_poster:"Exportar póster…",reload_data:"Recargar datos",off:"Desactivado",native:"Nativo",mst:"MST",network:"Red",off_desc:"Mostrar cada punto por separado",native_desc:"Grupos circulares de Mapbox (lo más rápido)",mst_desc:"Redes de afinidad por árbol de expansión mínima",network_desc:"Líneas de conexión al vecino más cercano",search_languages:"Buscar idiomas…",search_religions:"Buscar religiones…",reset_all:"Restablecer todo",no_languages:"Aún no se han cargado idiomas",no_religions:"Aún no se han cargado religiones",unadopted:"No adoptado",min:"mín",max:"máx",adopted:"Adoptado",adoption:"Adopción",engaged:"Comprometido",engagement:"Compromiso",unengaged:"Necesita implicación",language:"Idioma",religion:"Religión",population:"Población",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",close:"Cerrar",clear:"Borrar",map_controls:"Controles del mapa"},by={bloc:"Bloque de afinidad",gospel_access:"Acceso al evangelio",people:"Pueblos",people_name:"Pueblo (nombre)",praying:"Orando",religion_family:"Familia religiosa",search_language:"Buscar idioma",search_people:"Buscar pueblo",search_place:"Buscar lugar",search_religion:"Buscar religión",upgs_in_scope:"UPG en el ámbito",countries_touched:"países alcanzados",unreached:"no alcanzados",sum_population:"Σ población",sum_praying:"Σ orando",charts:"Gráficos",table:"Tabla",cluster:"Clúster",country:"País",engagement:"Compromiso",language:"Idioma",language_family:"Familia lingüística",people_group:"Pueblo",population:"Población",prayer:"Oración",region:"Región",religion:"Religión",status:"Estado",adopted:"Adoptado",filters:"Filtros",gospel_resources:"Recursos del Evangelio",map:"Mapa",search_placeholder:"Buscar pueblos, lugares, idiomas, religiones…",any:"Cualquiera",active_count:"{n} activos",prayer_status:"Estado de oración",map_controls:"Controles del mapa",close:"Cerrar",clear:"Borrar",dashboard_title:"Panel de investigación general",align_dashboard:"Alinear panel",align_dashboard_tip:"Restablecer la disposición del panel a su alineación predeterminada",selected:"Seleccionado",world:"Mundo",vertical_legend:"Leyenda vertical",groups_in_scope:"pueblos en el ámbito",filter_by:"Filtrar por",remove_filter:"Quitar filtro",groups:"pueblos",expand:"Expandir",collapse:"Contraer",place:"Lugar",export_csv:"Exportar CSV",detail:"Detalle",detail_empty:"Selecciona un pueblo para ver el detalle",heartbeat_zone:"zona del latido",top_countries:"Países principales",select_all:"Seleccionar todo",expand_table:"Expandir tabla",collapse_table:"Contraer tabla — ampliar el mapa",group:"pueblo",deselect_all:"Deseleccionar todo"},yy={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."}},_y={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Las notas explicativas siguientes están en inglés."},mode:{gap:"Brecha",coverage:"Recursos encontrados"},search:{placeholder:"Busca un pueblo, idioma o código ISO",clear:"Borrar búsqueda",none:"Nada coincide con ese nombre, idioma o código.",placeholderShort:"Pueblo, idioma o código ISO"},legend:{title:"Pueblos no alcanzados sin ningún recurso del evangelio",band60:"60 %+ sin nada encontrado",band30:"30–59 %",bandSome:"algunos pueblos",bandAll:"todos los pueblos tienen algo",tier2:"Escrituras y película",tier1:"se encontró algún recurso",tier0:"no se encontró nada",hnr:"pueden oírlo, sin texto",showAll:"Mostrar todos los pueblos",titleCoverage:"Pueblos no alcanzados con algún recurso del evangelio",cov80:"80 %+ tienen algo",cov50:"50–79 %",cov1:"1–49 %",cov0:"nada para ninguno",tallyEach:"Cada",tallyIs:"es UN pueblo —",tallyOf:"de ellos,",tallyLink:"con un enlace",doxa0:"todos tienen algo",doxa1:"1–4 sin nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcanzados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Pueblos de Doxa en este mapa",notPlaced:"en la lista, aún sin ubicar",outOfScope:"sin pueblos de Doxa — sin color"},tabs:{groups:"Pueblos más grandes",countries:"Por país",regions:"Por región",noprayer:"Nadie ora",hnr:"Oyen, sin texto"},stat:{language:"Idioma",population:"Población",countries:"Países",peopleGroups:"Pueblos",noResource:"Ningún recurso encontrado",peopleAffected:"Personas afectadas",haveScripture:"Tienen Escrituras",haveFilm:"Tienen película",haveAudio:"Tienen Escrituras en audio",signLanguages:"Lenguas de señas",growingUnreached:"En crecimiento y no alcanzados",deathsDay:"Muertes estimadas/día"},sheet:{ownLanguage:"En su propio idioma",close:"Cerrar",loading:"Cargando recursos…",pray:"Ora por",everyResource:"Todos los recursos en",alsoSpeak:"También hablan"},res:{scripture:"Escrituras",film:"Película",audio:"Audio",bibleVideo:"Video bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del evangelio",gospelPresentation:"Presentación del evangelio",scriptureEarth:"Scripture Earth",training:"Formación de discipulado",jesusFilm:"Película JESÚS",audioScripture:"Escrituras en audio",bibleStoriesPlain:"Historias bíblicas"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada en FCBH",noneAtGrn:"nada en GRN",notInZume:"no está entre los 54 de Zume",linkChecked:"enlace verificado",unchecked:"sin verificar",linkDead:"enlace roto",wrongLanguage:"idioma incorrecto",varietyNotStated:"(variedad no indicada)",inLanguage:"en"},guide:{dotVsCountry:"Cada punto es UN pueblo de Doxa y su propio idioma; un país es el NÚMERO de esos pueblos.",noneFoundShort:"«Nada encontrado» significa ausente de las fuentes consultadas, nunca prueba de que no exista.",tapCountry:"Toca un país para ver los recursos, pueblo por pueblo."},tables:{title:"Recursos del evangelio — Datos",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos los recursos",t_doxa:"Doxa — Acceso al evangelio",t_links:"Cada recurso + enlace",t_nothing:"Donde no se encontró nada",t_countrygap:"La brecha por país",t_translation:"Pueden oírlo, sin texto",t_translationcountry:"Dónde traducir",t_province:"Acceso al Evangelio por provincia — India y China",t_gaps:"Brechas y oportunidades",t_bridges:"Puentes urbanos",t_deaf:"La brecha sorda",t_resources:"Recursos por pueblo",t_languages:"Idiomas por país",t_growth:"Acceso vs crecimiento"},pages:{listTitle:"Recursos del evangelio por idioma",chartsTitle:"Recursos del evangelio — por idioma",loadingTables:"Cargando tablas de recursos…"},list:{noText:"Sin texto bíblico",hasScripture:"Tiene Escrituras",allLanguages:"Todos los idiomas",peopleGroup:"pueblo",peopleGroups:"pueblos",scriptureHere:"Escrituras en este idioma"},columns:{"People group":"Pueblo",Country:"País",Region:"Región",Language:"Idioma",Population:"Población",Religion:"Religión","Gospel access":"Acceso al evangelio",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Video bíblico","Gospel presentation":"Presentación del evangelio",Countries:"Países","People groups":"Pueblos"},charts:{scriptureAny:"Escrituras (cualquiera)",fullBible:"Biblia completa",newTestament:"Nuevo Testamento",filmAny:"Película (cualquiera)",nothingInPools:"No se encontró nada en las fuentes consultadas",nothingInPoolsLower:"no se encontró nada en las fuentes consultadas",noResourceInPools:"no se encontró ningún recurso en las fuentes consultadas",aResourceFound:"se encontró un recurso",tabCoverage:"Cobertura de recursos",tabGap:"Mayores brechas",keyScripture:"escrituras",keyFilmStories:"película / historias",keyAudioEtc:"audio / presentación / formación",unresolvedCode:"código fuera de ISO 639-3 — sin resolver, no medido",c1Title:"Qué se ENCONTRÓ, por tipo de recurso",c1Sub:"En las {n} lenguas del conjunto de datos. Cada barra cuenta LENGUAS, no etnias.",c1Unit:"lenguas en las que se encontró el recurso en las fuentes consultadas",c2Title:"Mayores poblaciones sin nada encontrado",c2Sub:"Las {n} lenguas sin escrituras ni película en las fuentes consultadas, ordenadas por la población de las etnias que las hablan.",c2Unit:"personas en las etnias cuya lengua PRINCIPAL es esta — no hablantes de la lengua",c3Title:"Países con más lenguas desatendidas",c3Sub:"Los {n} países con más lenguas sin nada encontrado. La longitud de la barra es cada lengua presente en ese país.",c3Unit:"lenguas presentes en el país (una lengua transfronteriza cuenta en cada uno)"}},$y={search:"Buscar pueblos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Cargar más",full_profile:"Perfil completo",wagf_region:"Región",wagf_block:"Bloque de afinidad",rop1:"Pueblo",religion:"Religión",exact_filter:"Exacto",clear_all:"Borrar todo",loading:"Cargando…",no_results:"Ningún pueblo coincide con este filtro.",type_to_search:"Escribe para buscar...",load_failed:"No se pudieron cargar los datos de pueblos. Es un problema de conexión, no de tu filtro.",search_people_or_countries:"Buscar pueblos o países…"},vy={title:{adoption:"Progreso de adopción",affinityBlocs:"Bloques de afinidad",doxaRegions:"Regiones Doxa",engagement:"Progreso de implicación",gospelResources:"Recursos del Evangelio",languageFamilies:"Familias lingüísticas",prayer:"Progreso de oración",upg100List:"Mi lista UPG 100"},header:{collapsed:"Leyenda",peopleGroupFallback:"Grupo de personas",default:"Leyenda"},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"},tabInfo:{upg100Region:"Región — ordena las listas UPG-100 por área mundial (África, India, Oriente Medio, Sordos, …). Los totales son los UUPG y la población sumados de todas las listas que contiene.",upg100Zone:"Listas UPG-100 — cada una es una lista de oración de los grupos étnicos no alcanzados de un área, y es lo que el mapa pinta y colorea. Cada lista se imprime como su propio paquete.",upg100Group:"Grupo étnico — los grupos no alcanzados dentro de una lista, primero los de mayor necesidad de oración. Cada punto del mapa es uno de ellos."},a11y:{expandRow:"Expandir {label}",collapseRow:"Contraer {label}",clearSelection:"Borrar la selección"},export:{poster:"Cartel",packet:"Cuadernillo"},noDataAtThisLevel:"No hay datos en este nivel",exportButton:"Exportar",exportSelection:"Exportar la selección"},wy={menuComingSoon:"Menú próximamente",pinHint:{tapDot:"Toca un punto de color: alguien todavía necesita oración"},upg100WallHeading:"Mi lista UPG 100 — Listas de oración y carteles",upg100WallTag:"Movilización de oración",upg100WallIntro:"Reparte la tarea de la oración en grupos de cincuenta y de cien, como Jesús alimentó a los 5.000 (Lucas 9:14). Cada cartel es una lista de 100 que puedes orar, imprimir y poner en la pared — orando por ellos por el nombre de su pueblo."},ky={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},xy={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},Ay={"%count% people groups in %countries% countries":"%count% grupos étnicos en %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tiene %count% grupos étnicos en %countries% países. El color de cada punto indica cuántas personas oran por ese grupo étnico.","1+ People Praying":"1+ personas orando","100+ People Praying":"100+ personas orando",Adopted:"Adoptado","Adoption Progress":"Progreso de la adopción","All Regions":"Todas las regiones","Alternate Names":"Nombres alternativos","Choose a region":"Elige una región","Clear All":"Borrar todo",Countries:"Países","Countries in this region":"Países de esta región",Country:"País",Engaged:"Comprometido","Engagement Progress":"Progreso del compromiso","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico no evangelizado adoptado por una iglesia comprometida con la oración, la ofrenda y el envío.","Exact Search":"Búsqueda exacta","Find unreached people groups by region and country.":"Encuentra grupos étnicos no alcanzados por región y país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar los carteles del país",Intercessors:"Intercesores","Load More":"Cargar más","Loading results...":"Cargando resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Movilizar a más de 100 personas que oren diariamente por cada grupo étnico DOXA.","No One Praying":"Nadie orando","No options found":"No se han encontrado opciones","No poster has been generated for this country yet.":"Todavía no se ha generado ningún cartel para este país.","No unengaged people groups by 2033":"No habrá grupos étnicos sin evangelizar para 2033","Not Adopted":"No adoptado",Other:"Otros","Page Not Found":"Página no encontrada","People Group":"Grupo Étnico","People Groups":"Grupos Étnicos","People committed to praying":"Personas comprometidas con la oración","Pick a region above, or click any dot to open that people group's country.":"Elige una región arriba, o haz clic en cualquier punto para abrir el país de ese pueblo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Elige una región o un país en la pestaña Lista de regiones para acotar este panel.",Population:"Población","Prayer Coverage":"Cobertura de oración","Prayer coverage progress":"Progreso de la cobertura de oración","Region Dashboards":"Paneles de regiones","Region dashboard":"Panel de la región",Regions:"Regiones","Regions List":"Lista de regiones",Religion:"Religión","Search names, country/continent, religions...":"Buscar nombres, país/continente, religiones...","See %region% dashboard":"Ver el panel de %region%","See All":"Ver todo",Select:"Seleccionar","Select View":"Seleccionar vista","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Hay %count% grupos étnicos en %country%. Consulta también el mapa para ver los grupos étnicos en la frontera de este país.",Total:"Total","Type to search...":"Escribe para buscar...","Unengaged people groups":"Grupos étnicos no comprometidos","View country posters":"Ver los carteles del país",Views:"Vistas","WAGF Block":"Bloque WAGF","WAGF Region":"Región de la WAGF","people groups adopted":"grupos étnicos adoptados","people groups engaged":"grupos étnicos comprometidos","Outside this region":"Fuera de esta región",Pray:"Oración","Loading region dashboards…":"Cargando los paneles de regiones…","No regions found.":"No se encontraron regiones.","Region data could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los datos de las regiones. Es un problema de conexión, no un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"No se pudieron cargar los pueblos. Es un problema de conexión, no un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"El mapa no pudo iniciarse. Es un problema del token del mapa o de conexión, no un filtro: las cifras de arriba no se ven afectadas."},Sy={placeholder:"Pueblo, lugar, idioma, religión",placeholderNoPlaces:"Pueblo, idioma, religión (buscar lugares requiere un token de Mapbox)",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"},sections:{within:"Dentro de {selection}",allData:"Todos los datos DOXA"},upg100Placeholder:"Buscar pueblo, lista UPG-100 o región…"},Py={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",upg100Region:"Región",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico",selectView:"Seleccionar vista",views:"Vistas",prayerResources:"Recursos de oración",map:"Mapa",countryPosters:"Carteles por país"},Ly={title:"Tous les groupes ethniques",locations:"{n} emplacements (groupe × pays)",doxa:"Groupes ethniques DOXA",frontier:"Frontière — rien n’a commencé",unreached:"Non atteints — le travail commence",reached:"Atteints — l’Église est là",hint:"Cliquez sur une ligne pour les voir tous · recliquez pour tout voir",loading:"Chargement de tous les groupes ethniques…",loadError:"La carte n’a pas pu être chargée.",pray:"Priez pour eux →",population:"pop. {n}"},Cy={backToLegend:"Retour à la légende",closeDetailView:"Fermer la vue détaillée",collapseLegend:"Réduire la légende",expandLegend:"Développer la légende",toggleLegend:"Afficher ou masquer la légende",searchPeopleGroups:"Rechercher des peuples",resetAllFilters:"Réinitialiser tous les filtres et la recherche",selectAllRows:"Sélectionner toutes les lignes",deselectAllRows:"Désélectionner toutes les lignes"},Ey={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",posterMap:"Carte de l'affiche",prayerList:"Liste de prière",cardDeck:"Jeu de cartes",printOptions:"Options d'impression",showOnMap:"Voir sur la carte",close:"Fermer",showOnMapAria:"Voir {label} sur la carte",cardStockAria:"Taille de la carte de prière",previewPrintPoster:"Aperçu et impression de l’affiche {label}",share:"Partager",shareSteps:["Intégrez cette carte à votre site","Dressez la liste des sites web de votre ville","Apprenez-leur à l’intégrer aussi","Apprenez-leur à former d’autres personnes à l’intégrer","Multiplions les cartes partout pour Jésus !"],clearSelection:"Effacer la sélection",noOptions:"Aucune option trouvée",renderingLocal:"Une image de qualité impression est générée dans votre navigateur — rien n’est envoyé.",postersPerRow:"Affiches par ligne"},Ty={research_controls:"Commandes de recherche",clustering:"Regroupement",filters:"Filtres",pin_dim:"Atténuation des points",export_poster:"Exporter l’affiche…",reload_data:"Recharger les données",off:"Désactivé",native:"Natif",mst:"MST",network:"Réseau",off_desc:"Afficher chaque point séparément",native_desc:"Groupes circulaires Mapbox (le plus rapide)",mst_desc:"Réseaux d’affinité par arbre couvrant minimal",network_desc:"Lignes vers le plus proche voisin",search_languages:"Rechercher des langues…",search_religions:"Rechercher des religions…",reset_all:"Tout réinitialiser",no_languages:"Aucune langue chargée pour l’instant",no_religions:"Aucune religion chargée pour l’instant",unadopted:"Non adopté",min:"min",max:"max",adopted:"Adopté",adoption:"Adoption",engaged:"Engagé",engagement:"Engagement",unengaged:"Besoin d'engagement",language:"Langue",religion:"Religion",population:"Population",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",close:"Fermer",clear:"Effacer",map_controls:"Commandes de la carte"},Ry={bloc:"Bloc d’affinité",gospel_access:"Accès à l’Évangile",people:"Peuples",people_name:"Peuple (nom)",praying:"En prière",religion_family:"Famille religieuse",search_language:"Rechercher une langue",search_people:"Rechercher un peuple",search_place:"Rechercher un lieu",search_religion:"Rechercher une religion",upgs_in_scope:"UPG dans le périmètre",countries_touched:"pays touchés",unreached:"non atteints",sum_population:"Σ population",sum_praying:"Σ en prière",charts:"Graphiques",table:"Tableau",cluster:"Grappe",country:"Pays",engagement:"Engagement",language:"Langue",language_family:"Famille linguistique",people_group:"Peuple",population:"Population",prayer:"Prière",region:"Région",religion:"Religion",status:"Statut",adopted:"Adopté",filters:"Filtres",gospel_resources:"Ressources de l'Évangile",map:"Carte",search_placeholder:"Rechercher peuples, lieux, langues, religions…",any:"Tous",active_count:"{n} actifs",prayer_status:"État de prière",map_controls:"Commandes de la carte",close:"Fermer",clear:"Effacer",dashboard_title:"Tableau de bord de recherche global",align_dashboard:"Aligner le tableau",align_dashboard_tip:"Rétablir la disposition par défaut du tableau de bord",selected:"Sélectionné",world:"Monde",vertical_legend:"Légende verticale",groups_in_scope:"peuples dans le périmètre",filter_by:"Filtrer par",remove_filter:"Retirer le filtre",groups:"peuples",expand:"Développer",collapse:"Replier",place:"Lieu",export_csv:"Exporter en CSV",detail:"Détail",detail_empty:"Sélectionnez un peuple pour voir le détail",heartbeat_zone:"zone du battement de cœur",top_countries:"Principaux pays",select_all:"Tout sélectionner",expand_table:"Développer le tableau",collapse_table:"Réduire le tableau — agrandir la carte",group:"peuple",deselect_all:"Tout désélectionner"},Ny={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},My={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Les notes explicatives ci-dessous sont en anglais."},mode:{gap:"Écart",coverage:"Ressources trouvées"},search:{placeholder:"Chercher un peuple, une langue ou un code ISO",clear:"Effacer la recherche",none:"Rien ne correspond à ce nom, cette langue ou ce code.",placeholderShort:"Peuple, langue ou code ISO"},legend:{title:"Peuples non atteints sans aucune ressource de l'Évangile",band60:"60 %+ sans rien trouvé",band30:"30–59 %",bandSome:"quelques peuples",bandAll:"tous les peuples ont quelque chose",tier2:"Écritures et film",tier1:"une ressource trouvée",tier0:"rien trouvé",hnr:"peuvent l'entendre, aucun texte",showAll:"Afficher tous les peuples",titleCoverage:"Peuples non atteints avec une ressource de l'Évangile",cov80:"80 %+ ont quelque chose",cov50:"50–79 %",cov1:"1–49 %",cov0:"rien pour aucun",tallyEach:"Chaque",tallyIs:"est UN peuple —",tallyOf:"d'entre eux,",tallyLink:"avec un lien",doxa0:"tous ont quelque chose",doxa1:"1–4 sans rien",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atteints",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Peuples Doxa sur cette carte",notPlaced:"sur la liste, pas encore localisés",outOfScope:"aucun peuple Doxa — non coloré"},tabs:{groups:"Peuples les plus nombreux",countries:"Par pays",regions:"Par région",noprayer:"Personne ne prie",hnr:"Entendent, sans texte"},stat:{language:"Langue",population:"Population",countries:"Pays",peopleGroups:"Peuples",noResource:"Aucune ressource trouvée",peopleAffected:"Personnes concernées",haveScripture:"Ont les Écritures",haveFilm:"Ont le film",haveAudio:"Ont les Écritures en audio",signLanguages:"Langues des signes",growingUnreached:"En croissance et non atteints",deathsDay:"Décès estimés/jour"},sheet:{ownLanguage:"Dans leur propre langue",close:"Fermer",loading:"Chargement des ressources…",pray:"Priez pour",everyResource:"Toutes les ressources en",alsoSpeak:"Parlent aussi"},res:{scripture:"Écritures",film:"Film",audio:"Audio",bibleVideo:"Vidéo biblique",bibleStories:"Open Bible Stories",gospelAudio:"Audio de l'Évangile",gospelPresentation:"Présentation de l'Évangile",scriptureEarth:"Scripture Earth",training:"Formation au discipulat",jesusFilm:"Film JÉSUS",audioScripture:"Écritures en audio",bibleStoriesPlain:"Histoires bibliques"},state:{noneFound:"rien trouvé",noneAtFcbh:"rien chez FCBH",noneAtGrn:"rien chez GRN",notInZume:"pas dans les 54 de Zume",linkChecked:"lien vérifié",unchecked:"non vérifié",linkDead:"lien mort",wrongLanguage:"mauvaise langue",varietyNotStated:"(variété non précisée)",inLanguage:"en"},guide:{dotVsCountry:"Un point est UN peuple de Doxa et sa propre langue ; un pays est le NOMBRE de ces peuples.",noneFoundShort:"« Rien trouvé » signifie absent des sources consultées, jamais la preuve que rien n'existe.",tapCountry:"Touchez un pays pour voir les ressources, peuple par peuple."},tables:{title:"Ressources de l'Évangile — Données",showing:"Affichage de",of:"sur",for:"pour",filteredTo:"Filtré sur",showAll:"Afficher toutes les ressources",t_doxa:"Doxa — Accès à l'Évangile",t_links:"Chaque ressource + lien",t_nothing:"Où rien n'a été trouvé",t_countrygap:"L'écart par pays",t_translation:"Entendent, sans texte",t_translationcountry:"Où traduire",t_province:"Accès à l'Évangile par province — Inde et Chine",t_gaps:"Écarts et opportunités",t_bridges:"Ponts urbains",t_deaf:"L'écart sourd",t_resources:"Ressources par peuple",t_languages:"Langues par pays",t_growth:"Accès vs croissance"},pages:{listTitle:"Ressources de l'Évangile par langue",chartsTitle:"Ressources de l'Évangile — par langue",loadingTables:"Chargement des tableaux…"},list:{noText:"Pas de texte biblique",hasScripture:"A les Écritures",allLanguages:"Toutes les langues",peopleGroup:"peuple",peopleGroups:"peuples",scriptureHere:"Écritures dans cette langue"},columns:{"People group":"Peuple",Country:"Pays",Region:"Région",Language:"Langue",Population:"Population",Religion:"Religion","Gospel access":"Accès à l'Évangile",Resources:"Ressources",Scripture:"Écritures","Bible video":"Vidéo biblique","Gospel presentation":"Présentation de l'Évangile",Countries:"Pays","People groups":"Peuples"},charts:{scriptureAny:"Écritures (toutes)",fullBible:"Bible complète",newTestament:"Nouveau Testament",filmAny:"Film (tous)",nothingInPools:"Rien trouvé dans les sources consultées",nothingInPoolsLower:"rien trouvé dans les sources consultées",noResourceInPools:"aucune ressource trouvée dans les sources consultées",aResourceFound:"une ressource trouvée",tabCoverage:"Couverture des ressources",tabGap:"Plus grands écarts",keyScripture:"écritures",keyFilmStories:"film / histoires",keyAudioEtc:"audio / présentation / formation",unresolvedCode:"code hors ISO 639-3 — non résolu, non mesuré",c1Title:"Ce qui a été TROUVÉ, par type de ressource",c1Sub:"Sur l'ensemble des {n} langues du corpus. Chaque barre compte des LANGUES, pas des peuples.",c1Unit:"langues où la ressource a été trouvée dans les sources consultées",c2Title:"Populations les plus nombreuses sans rien de trouvé",c2Sub:"Les {n} langues sans Écritures ni film dans les sources consultées, classées selon la population des peuples qui les parlent.",c2Unit:"personnes dans les peuples dont c'est la langue PRINCIPALE — non les locuteurs de la langue",c3Title:"Pays comptant le plus de langues non desservies",c3Sub:"Les {n} pays comptant le plus de langues sans rien de trouvé. La longueur de la barre correspond à chaque langue présente dans ce pays.",c3Unit:"langues présentes dans le pays (une langue transfrontalière compte dans chacun)"}},Fy={search:"Rechercher des peuples…",hide_filters:"Masquer les filtres",show_filters:"Afficher les filtres",total:"Total",showing:"Affichage",load_more:"Charger plus",full_profile:"Profil complet",wagf_region:"Région",wagf_block:"Bloc d'affinité",rop1:"Peuple",religion:"Religion",exact_filter:"Exact",clear_all:"Tout effacer",loading:"Chargement…",no_results:"Aucun peuple ne correspond à ce filtre.",type_to_search:"Tapez pour rechercher...",load_failed:"Les données n’ont pas pu être chargées. C’est un problème de connexion, pas votre filtre.",search_people_or_countries:"Rechercher des peuples ou des pays…"},Iy={title:{adoption:"Progression de l'adoption",affinityBlocs:"Blocs d'affinité",doxaRegions:"Régions Doxa",engagement:"Progression de l'engagement",gospelResources:"Ressources de l'Évangile",languageFamilies:"Familles de langues",prayer:"Progression de la prière",upg100List:"Ma liste UPG 100"},header:{collapsed:"Légende",peopleGroupFallback:"Groupe de personnes",default:"Légende"},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"},tabInfo:{upg100Region:"Région — trie les listes UPG-100 par zone du monde (Afrique, Inde, Moyen-Orient, Sourds, …). Les totaux sont les UUPG et la population additionnés sur toutes les listes qu’elle contient.",upg100Zone:"Listes UPG-100 — chacune est une liste de prière des groupes de peuples non atteints d’une zone, et c’est ce que la carte dessine et colore. Chaque liste s’imprime comme son propre livret.",upg100Group:"Groupe de peuples — les groupes non atteints au sein d’une liste, les plus grands besoins de prière en premier. Chaque point de la carte en est un."},a11y:{expandRow:"Développer {label}",collapseRow:"Réduire {label}",clearSelection:"Effacer la sélection"},export:{poster:"Affiche",packet:"Livret"},noDataAtThisLevel:"Aucune donnée à ce niveau",exportButton:"Exporter",exportSelection:"Exporter la sélection"},Oy={menuComingSoon:"Menu bientôt disponible",pinHint:{tapDot:"Touchez un point coloré — quelqu’un a encore besoin de prière"},upg100WallHeading:"Ma liste UPG 100 — Listes de prière et affiches",upg100WallTag:"Mobilisation pour la prière",upg100WallIntro:"Répartissez la tâche de la prière par groupes de cinquante et de cent — comme Jésus a nourri les 5 000 (Luc 9:14). Chaque affiche est une liste de 100 que vous pouvez prier, imprimer et afficher au mur — en priant pour eux par le nom de leur peuple."},Dy={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},Gy={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},By={"%count% people groups in %countries% countries":"%count% peuples dans %countries% pays","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% compte %count% peuples répartis dans %countries% pays. La couleur de chaque point indique combien de personnes prient pour ce peuple.","1+ People Praying":"1+ personnes en prière","100+ People Praying":"100+ personnes en prière",Adopted:"Adopté","Adoption Progress":"Progrès de l'adoption","All Regions":"Toutes les régions","Alternate Names":"Autres noms","Choose a region":"Choisissez une région","Clear All":"Tout effacer",Countries:"Pays","Countries in this region":"Pays de cette région",Country:"Pays",Engaged:"Engagé","Engagement Progress":"Progrès de l'engagement","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Chaque peuple non engagé adopté par une église locale engagée dans la prière, le don et l'envoi","Exact Search":"Recherche exacte","Find unreached people groups by region and country.":"Trouvez des peuples non atteints par région et par pays.","Full Profile":"Profil complet",Goal:"Objectif","Hide Filters":"Masquer les filtres","Hide country posters":"Masquer les affiches du pays",Intercessors:"Intercesseurs","Load More":"Afficher plus","Loading results...":"Chargement des résultats...",Map:"Carte","Mobilize 100+ people praying daily for each DOXA people group":"Mobiliser plus de 100 personnes priant chaque jour pour chaque peuple DOXA","No One Praying":"Personne ne prie","No options found":"Aucun lieu trouvé","No poster has been generated for this country yet.":"Aucune affiche n'a encore été générée pour ce pays.","No unengaged people groups by 2033":"Plus aucun peuple non engagé d'ici 2033","Not Adopted":"Non adopté",Other:"Autre","Page Not Found":"Page introuvable","People Group":"Peuple","People Groups":"Peuples","People committed to praying":"Personnes engagées dans la prière","Pick a region above, or click any dot to open that people group's country.":"Choisissez une région ci-dessus, ou cliquez sur un point pour ouvrir le pays de ce peuple.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Choisissez une région ou un pays dans l’onglet Liste des régions pour affiner ce tableau de bord.",Population:"Population","Prayer Coverage":"Couverture de prière","Prayer coverage progress":"Progression de la couverture de prière","Region Dashboards":"Tableaux de bord des régions","Region dashboard":"Tableau de bord de la région",Regions:"Régions","Regions List":"Liste des régions",Religion:"Religion","Search names, country/continent, religions...":"Rechercher des noms, pays/continent, religions...","See %region% dashboard":"Voir le tableau de bord : %region%","See All":"Tout afficher",Select:"Sélectionner","Select View":"Sélectionner la vue","Show Filters":"Afficher les filtres","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Il y a %count% peuples en %country%. Consultez la carte pour découvrir également les peuples situés à la frontière de ce pays.",Total:"Total","Type to search...":"Entrer votre recherche","Unengaged people groups":"Peuples non engagés","View country posters":"Voir les affiches du pays",Views:"Vues","WAGF Block":"Bloc WAGF","WAGF Region":"Région WAGF","people groups adopted":"peuples adoptés","people groups engaged":"peuples engagés","Outside this region":"Hors de cette région",Pray:"Prier","Loading region dashboards…":"Chargement des tableaux de bord des régions…","No regions found.":"Aucune région trouvée.","Region data could not be loaded. This is a connection problem, not a filter.":"Les données des régions n'ont pas pu être chargées. Il s'agit d'un problème de connexion, pas d'un filtre.","People groups could not be loaded. This is a connection problem, not a filter.":"Les peuples n'ont pas pu être chargés. Il s'agit d'un problème de connexion, pas d'un filtre.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La carte n'a pas pu démarrer. Il s'agit d'un problème de jeton de carte ou de connexion, pas d'un filtre — les chiffres ci-dessus ne sont pas affectés."},jy={placeholder:"Peuple, lieu, langue, religion",placeholderNoPlaces:"Peuple, langue, religion (la recherche de lieux requiert un jeton Mapbox)",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"},sections:{within:"Dans {selection}",allData:"Toutes les données DOXA"},upg100Placeholder:"Rechercher un peuple, une liste UPG-100 ou une région…"},zy={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",upg100Region:"Région",upg100Zone:"Listes UPG-100",upg100Group:"Groupe de peuples",selectView:"Choisir la vue",views:"Vues",prayerResources:"Ressources de prière",map:"Carte",countryPosters:"Affiches par pays"},Uy={title:"सभी जनसमूह",locations:"{n} स्थान (समूह × देश)",doxa:"DOXA जनसमूह",frontier:"सीमांत — कुछ शुरू नहीं हुआ",unreached:"अप्रचारित — काम शुरू हो रहा है",reached:"प्रचारित — कलीसिया मौजूद है",hint:"सभी देखने के लिए पंक्ति पर क्लिक करें · सब कुछ देखने के लिए फिर क्लिक करें",loading:"सभी जनसमूह लोड हो रहे हैं…",loadError:"मानचित्र लोड नहीं हो सका।",pray:"उनके लिए प्रार्थना करें →",population:"जनसंख्या {n}"},Hy={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ",searchPeopleGroups:"जनसमूह खोजें",resetAllFilters:"सभी फ़िल्टर और खोज रीसेट करें",selectAllRows:"सभी पंक्तियाँ चुनें",deselectAllRows:"सभी पंक्तियाँ अचयनित करें"},Ky={prayForThem:"उनके लिए प्रार्थना करें",adoptThem:"उन्हें गोद लें",moreInfo:"अधिक जानकारी",zoomIn:"ज़ूम इन",zoomOut:"ज़ूम आउट",switchToLightMode:"लाइट मोड पर जाएं",switchToDarkMode:"डार्क मोड पर जाएं",resetView:"दृश्य रीसेट करें",toggleFullscreen:"फ़ुलस्क्रीन टॉगल करें",aboutThisMap:"इस मानचित्र के बारे में",closeMenu:"मेनू बंद करें",reloadMap:"मानचित्र पुनः लोड करें",showClusters:"क्लस्टर दिखाएं",clusterSettings:"क्लस्टर सेटिंग्स",startAutoFly:"ऑटो फ्लाई शुरू करें",stopFlight:"उड़ान रोकें",speedLabel:"गति:",speedOption:{slow:"धीमी",normal:"सामान्य",fast:"तेज़"},shareEmbed:"साझा करें और एम्बेड करें",posterMap:"पोस्टर मानचित्र",prayerList:"प्रार्थना सूची",cardDeck:"कार्ड सेट",printOptions:"छपाई विकल्प",showOnMap:"मानचित्र पर देखें",close:"बंद करें",showOnMapAria:"{label} को मानचित्र पर देखें",cardStockAria:"प्रार्थना कार्ड का आकार",previewPrintPoster:"{label} पोस्टर देखें और प्रिंट करें",share:"साझा करें",shareSteps:["इस मानचित्र को अपनी वेबसाइट पर लगाएँ","अपने शहर की वेबसाइटों की सूची बनाएँ","उन्हें भी इसे लगाना सिखाएँ","उन्हें सिखाएँ कि वे औरों को लगाना सिखाएँ","यीशु के लिए हर जगह मानचित्र बढ़ाएँ!"],clearSelection:"चयन हटाएँ",noOptions:"कोई विकल्प नहीं मिला",renderingLocal:"आपके ब्राउज़र में प्रिंट-गुणवत्ता वाली छवि बन रही है — कुछ भी अपलोड नहीं किया जाता।",postersPerRow:"प्रति पंक्ति पोस्टर"},Vy={research_controls:"शोध नियंत्रण",clustering:"क्लस्टरिंग",filters:"फ़िल्टर",pin_dim:"पिन धुंधलापन",export_poster:"पोस्टर निर्यात करें…",reload_data:"डेटा फिर से लोड करें",off:"बंद",native:"नेटिव",mst:"MST",network:"नेटवर्क",off_desc:"हर पिन अलग-अलग दिखाएँ",native_desc:"Mapbox वृत्त क्लस्टर (सबसे तेज़)",mst_desc:"न्यूनतम स्पैनिंग ट्री आधारित जाल",network_desc:"निकटतम पड़ोसी को जोड़ने वाली रेखाएँ",search_languages:"भाषाएँ खोजें…",search_religions:"धर्म खोजें…",reset_all:"सब रीसेट करें",no_languages:"अभी कोई भाषा लोड नहीं हुई",no_religions:"अभी कोई धर्म लोड नहीं हुआ",unadopted:"अ-गोद लिया",min:"न्यून",max:"अधि",adopted:"गोद लिया गया",adoption:"गोद लेना",engaged:"संपर्कित",engagement:"सहभागिता",unengaged:"सहभागिता चाहिए",language:"भाषा",religion:"धर्म",population:"जनसंख्या",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",close:"बंद करें",clear:"साफ़ करें",map_controls:"मानचित्र नियंत्रण"},Wy={bloc:"समानता समूह",gospel_access:"सुसमाचार पहुँच",people:"जनसमूह",people_name:"जनसमूह (नाम)",praying:"प्रार्थना कर रहे",religion_family:"धर्म परिवार",search_language:"भाषा खोजें",search_people:"जनसमूह खोजें",search_place:"स्थान खोजें",search_religion:"धर्म खोजें",upgs_in_scope:"दायरे में UPG",countries_touched:"छुए गए देश",unreached:"अनपहुँचे",sum_population:"Σ जनसंख्या",sum_praying:"Σ प्रार्थना",charts:"चार्ट",table:"तालिका",cluster:"क्लस्टर",country:"देश",engagement:"सहभागिता",language:"भाषा",language_family:"भाषा परिवार",people_group:"जनसमूह",population:"जनसंख्या",prayer:"प्रार्थना",region:"क्षेत्र",religion:"धर्म",status:"स्थिति",adopted:"गोद लिया गया",filters:"फ़िल्टर",gospel_resources:"सुसमाचार संसाधन",map:"नक्शा",search_placeholder:"जनसमूह, स्थान, भाषा, धर्म खोजें…",any:"कोई भी",active_count:"{n} सक्रिय",prayer_status:"प्रार्थना स्थिति",map_controls:"मानचित्र नियंत्रण",close:"बंद करें",clear:"साफ़ करें",dashboard_title:"बिग पिक्चर शोध डैशबोर्ड",align_dashboard:"डैशबोर्ड संरेखित करें",align_dashboard_tip:"डैशबोर्ड लेआउट को डिफ़ॉल्ट संरेखण पर लौटाएँ",selected:"चयनित",world:"विश्व",vertical_legend:"लंबवत लेजेंड",groups_in_scope:"दायरे में जनसमूह",filter_by:"इससे फ़िल्टर करें",remove_filter:"फ़िल्टर हटाएँ",groups:"जनसमूह",expand:"विस्तार करें",collapse:"संक्षिप्त करें",place:"स्थान",export_csv:"CSV निर्यात करें",detail:"विवरण",detail_empty:"विवरण देखने के लिए एक जनसमूह चुनें",heartbeat_zone:"हृदयगति क्षेत्र",top_countries:"शीर्ष देश",select_all:"सभी चुनें",expand_table:"तालिका विस्तृत करें",collapse_table:"तालिका संक्षिप्त करें — मानचित्र बड़ा करें",group:"जनसमूह",deselect_all:"सभी अचयनित करें"},qy={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},Yy={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"नीचे दी गई व्याख्यात्मक टिप्पणियाँ अंग्रेज़ी में हैं।"},mode:{gap:"कमी",coverage:"उपलब्ध संसाधन"},search:{placeholder:"जनसमूह, भाषा या ISO कोड खोजें",clear:"खोज साफ़ करें",none:"इस नाम, भाषा या कोड से कुछ भी मेल नहीं खाता।",placeholderShort:"जनसमूह, भाषा या ISO कोड"},legend:{title:"ऐसे जनसमूह जिन तक सुसमाचार नहीं पहुँचा और कोई संसाधन नहीं मिला",band60:"60%+ के पास कुछ नहीं",band30:"30–59%",bandSome:"कुछ जनसमूह",bandAll:"सभी जनसमूहों के पास कुछ है",tier2:"पवित्र शास्त्र और फ़िल्म",tier1:"कुछ संसाधन मिला",tier0:"कुछ नहीं मिला",hnr:"सुन सकते हैं, पाठ नहीं",showAll:"सभी जनसमूह दिखाएँ",titleCoverage:"ऐसे अनपहुँचे जनसमूह जिनके लिए कुछ सुसमाचार संसाधन मिला",cov80:"80%+ के पास कुछ है",cov50:"50–79%",cov1:"1–49%",cov0:"किसी के लिए कुछ नहीं",tallyEach:"हर",tallyIs:"एक जनसमूह है —",tallyOf:"में से,",tallyLink:"के पास लिंक है",doxa0:"सभी के पास कुछ है",doxa1:"1–4 के पास कुछ नहीं",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 तक पहुँच",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"इस मानचित्र पर दोक्सा जनसमूह",notPlaced:"सूची में, अभी स्थान नहीं",outOfScope:"कोई दोक्सा जनसमूह नहीं — रंग नहीं"},tabs:{groups:"सबसे बड़े जनसमूह",countries:"देश के अनुसार",regions:"क्षेत्र के अनुसार",noprayer:"कोई प्रार्थना नहीं कर रहा",hnr:"सुन सकते हैं, पाठ नहीं"},stat:{language:"भाषा",population:"जनसंख्या",countries:"देश",peopleGroups:"जनसमूह",noResource:"कोई संसाधन नहीं मिला",peopleAffected:"प्रभावित लोग",haveScripture:"पवित्र शास्त्र उपलब्ध",haveFilm:"फ़िल्म उपलब्ध",haveAudio:"ऑडियो शास्त्र उपलब्ध",signLanguages:"सांकेतिक भाषाएँ",growingUnreached:"बढ़ते और अनपहुँचे",deathsDay:"अनुमानित मृत्यु/दिन"},sheet:{ownLanguage:"उनकी अपनी भाषा में",close:"बंद करें",loading:"संसाधन लोड हो रहे हैं…",pray:"के लिए प्रार्थना करें",everyResource:"में सभी संसाधन",alsoSpeak:"यह भी बोलते हैं"},res:{scripture:"पवित्र शास्त्र",film:"फ़िल्म",audio:"ऑडियो",bibleVideo:"बाइबल वीडियो",bibleStories:"Open Bible Stories",gospelAudio:"सुसमाचार ऑडियो",gospelPresentation:"सुसमाचार प्रस्तुति",scriptureEarth:"Scripture Earth",training:"शिष्यत्व प्रशिक्षण",jesusFilm:"यीशु फ़िल्म",audioScripture:"ऑडियो पवित्र शास्त्र",bibleStoriesPlain:"बाइबल की कहानियाँ"},state:{noneFound:"कुछ नहीं मिला",noneAtFcbh:"FCBH में कुछ नहीं",noneAtGrn:"GRN में कुछ नहीं",notInZume:"Zume की 54 भाषाओं में नहीं",linkChecked:"लिंक जाँचा गया",unchecked:"अनजाँचा",linkDead:"लिंक निष्क्रिय",wrongLanguage:"ग़लत भाषा",varietyNotStated:"(उपभाषा नहीं बताई गई)",inLanguage:"में"},guide:{dotVsCountry:"हर बिंदु दोक्सा का एक जनसमूह और उसकी अपनी भाषा है; देश का रंग उन जनसमूहों की संख्या है।",noneFoundShort:"“कुछ नहीं मिला” का अर्थ है जाँचे गए स्रोतों में नहीं — यह प्रमाण नहीं कि कुछ है ही नहीं।",tapCountry:"संसाधन देखने के लिए किसी देश पर टैप करें, जनसमूह दर जनसमूह।"},tables:{title:"सुसमाचार संसाधन — डेटा",showing:"दिखा रहे हैं",of:"में से",for:"के लिए",filteredTo:"फ़िल्टर:",showAll:"सभी संसाधन दिखाएँ",t_doxa:"दोक्सा — सुसमाचार पहुँच",t_links:"हर संसाधन + लिंक",t_nothing:"जहाँ कुछ नहीं मिला",t_countrygap:"देश अनुसार कमी",t_translation:"सुन सकते हैं, पाठ नहीं",t_translationcountry:"अनुवाद कहाँ करें",t_province:"प्रांत के अनुसार सुसमाचार तक पहुँच — भारत और चीन",t_gaps:"कमियाँ और अवसर",t_bridges:"नगर सेतु",t_deaf:"बधिर कमी",t_resources:"जनसमूह अनुसार संसाधन",t_languages:"देश अनुसार भाषाएँ",t_growth:"पहुँच बनाम जनसंख्या वृद्धि"},pages:{listTitle:"भाषा अनुसार सुसमाचार संसाधन",chartsTitle:"सुसमाचार संसाधन — भाषा अनुसार",loadingTables:"संसाधन तालिकाएँ लोड हो रही हैं…"},list:{noText:"कोई लिखित शास्त्र नहीं",hasScripture:"शास्त्र उपलब्ध",allLanguages:"सभी भाषाएँ",peopleGroup:"जनसमूह",peopleGroups:"जनसमूह",scriptureHere:"इस भाषा में पवित्र शास्त्र"},columns:{"People group":"जनसमूह",Country:"देश",Region:"क्षेत्र",Language:"भाषा",Population:"जनसंख्या",Religion:"धर्म","Gospel access":"सुसमाचार पहुँच",Resources:"संसाधन",Scripture:"पवित्र शास्त्र","Bible video":"बाइबल वीडियो","Gospel presentation":"सुसमाचार प्रस्तुति",Countries:"देश","People groups":"जनसमूह"},charts:{scriptureAny:"पवित्र शास्त्र (कोई भी)",fullBible:"पूरी बाइबल",newTestament:"नया नियम",filmAny:"फ़िल्म (कोई भी)",nothingInPools:"जाँचे गए स्रोतों में कुछ नहीं मिला",nothingInPoolsLower:"जाँचे गए स्रोतों में कुछ नहीं मिला",noResourceInPools:"जाँचे गए स्रोतों में कोई संसाधन नहीं मिला",aResourceFound:"एक संसाधन मिला",tabCoverage:"संसाधन कवरेज",tabGap:"सबसे बड़े अंतराल",keyScripture:"पवित्र शास्त्र",keyFilmStories:"फ़िल्म / कहानियाँ",keyAudioEtc:"ऑडियो / प्रस्तुति / प्रशिक्षण",unresolvedCode:"ISO 639-3 से बाहर कोड — अनसुलझा, मापा नहीं गया",c1Title:"क्या मिला, संसाधन के प्रकार के अनुसार",c1Sub:"डेटा की सभी {n} भाषाओं में। हर बार भाषाओं की गिनती करता है, जनसमूहों की नहीं।",c1Unit:"भाषाएँ जिनमें जाँचे गए स्रोतों में संसाधन मिला",c2Title:"सबसे बड़ी आबादी जिनके लिए कुछ नहीं मिला",c2Sub:"{n} भाषाएँ जिनके लिए जाँचे गए स्रोतों में न पवित्र शास्त्र है न फ़िल्म, उन्हें बोलने वाले जनसमूहों की आबादी के क्रम में।",c2Unit:"उन जनसमूहों के लोग जिनकी मुख्य भाषा यही है — भाषा के सभी वक्ता नहीं",c3Title:"सबसे अधिक असेवित भाषाओं वाले देश",c3Sub:"{n} देश जिनमें सबसे अधिक भाषाओं के लिए कुछ नहीं मिला। बार की लंबाई उस देश में मौजूद हर भाषा है।",c3Unit:"देश में मौजूद भाषाएँ (सीमा-पार भाषा हर देश में गिनी जाती है)"}},Zy={search:"जनसमूह खोजें…",hide_filters:"फ़िल्टर छिपाएँ",show_filters:"फ़िल्टर दिखाएँ",total:"कुल",showing:"दिखा रहे हैं",load_more:"और देखें",full_profile:"पूरी प्रोफ़ाइल",wagf_region:"क्षेत्र",wagf_block:"समानता समूह",rop1:"जनसमूह",religion:"धर्म",exact_filter:"सटीक",clear_all:"सब हटाएँ",loading:"लोड हो रहा है…",no_results:"इस फ़िल्टर से कोई जनसमूह मेल नहीं खाता।",type_to_search:"खोजने के लिए लिखें...",load_failed:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।",search_people_or_countries:"जनसमूह या देश खोजें…"},Xy={title:{adoption:"गोद लेने की प्रगति",affinityBlocs:"समानता समूह",doxaRegions:"Doxa क्षेत्र",engagement:"सहभागिता प्रगति",gospelResources:"सुसमाचार संसाधन",languageFamilies:"भाषा परिवार",prayer:"प्रार्थना प्रगति",upg100List:"मेरी UPG 100 सूची"},header:{collapsed:"किंवदंती",peopleGroupFallback:"जनजाति समूह",default:"सूचकांक"},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:"जनसंख्या",name:"नाम"},footer:{total:"कुल"},sortByUpgs:"UUPG के अनुसार क्रमबद्ध करें",sortByPop:"जनसंख्या के अनुसार क्रमबद्ध करें",colLabel:{religion:"UUPG धर्म",prayer:"प्रार्थना स्थिति",engagement:"सहभागिता स्थिति",adoption:"गोद लेने की स्थिति",status:"स्थिति"},titleBar:{legend:"सूचकांक",peopleGroups:"जनसमूह",wagfRegions:"WAGF क्षेत्र",languages:"भाषाएँ"},tabInfo:{upg100Region:"क्षेत्र — UPG-100 सूचियों को विश्व क्षेत्र के अनुसार क्रमित करता है (अफ़्रीका, भारत, मध्य पूर्व, बधिर, …)। संख्याएँ उसके नीचे की हर सूची के UUPG और जनसंख्या का योग हैं।",upg100Zone:"UPG-100 सूचियाँ — हर एक किसी क्षेत्र के अनपहुँचे जनसमूहों की प्रार्थना सूची है, और यही मानचित्र बनाता और रंगता है। हर सूची अपने अलग पैकेट के रूप में छपती है।",upg100Group:"जनसमूह — किसी सूची के भीतर के अलग-अलग अनपहुँचे समूह, सबसे बड़ी प्रार्थना आवश्यकता पहले। मानचित्र का हर बिंदु इनमें से एक है।"},a11y:{expandRow:"{label} का विस्तार करें",collapseRow:"{label} को छोटा करें",clearSelection:"चयन हटाएँ"},export:{poster:"पोस्टर",packet:"पुस्तिका"},noDataAtThisLevel:"इस स्तर पर कोई डेटा नहीं",exportButton:"निर्यात",exportSelection:"चयन निर्यात करें"},Jy={menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना लामबंदी",upg100WallIntro:"प्रार्थना के काम को पचास-पचास और सौ-सौ के समूहों में बाँटें — जैसे यीशु ने 5,000 लोगों को खिलाया (लूका 9:14)। हर पोस्टर 100 की एक सूची है जिसके लिए आप प्रार्थना कर सकते हैं, छाप सकते हैं और दीवार पर लगा सकते हैं — उनके लिए उनके जनसमूह के नाम से प्रार्थना करते हुए।"},Qy={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},e_={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},t_={"%count% people groups in %countries% countries":"%countries% देशों में %count% जनसमूह","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% में %countries% देशों में %count% लोगों के समूह हैं। प्रत्येक बिंदु का रंग दर्शाता है कि उस लोगों के समूह के लिए कितने लोग प्रार्थना कर रहे हैं।","1+ People Praying":"1+ लोग प्रार्थना कर रहे हैं","100+ People Praying":"100+ लोग प्रार्थना कर रहे हैं",Adopted:"गोद लिया गया","Adoption Progress":"गोद लेने की प्रगति","All Regions":"सभी क्षेत्र","Alternate Names":"वैकल्पिक नाम","Choose a region":"क्षेत्र चुनें","Clear All":"सभी साफ़ करें",Countries:"देश","Countries in this region":"इस क्षेत्र के देश",Country:"देश",Engaged:"संपर्कित","Engagement Progress":"संलग्नता की प्रगति","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"प्रत्येक असंलग्न जनसमूह जिसे प्रार्थना, दान और भेजने के लिए प्रतिबद्ध एक चर्च ने अपनाया है।","Exact Search":"सटीक खोज","Find unreached people groups by region and country.":"क्षेत्र और देश के अनुसार अगम्य लोगों के समूह खोजें।","Full Profile":"पूरी प्रोफ़ाइल",Goal:"लक्ष्य","Hide Filters":"फ़िल्टर छिपाएँ","Hide country posters":"देश के पोस्टर छिपाएँ",Intercessors:"मध्यस्थ","Load More":"और लोड करें","Loading results...":"परिणाम लोड हो रहे हैं..।",Map:"नक्शा","Mobilize 100+ people praying daily for each DOXA people group":"प्रत्येक DOXA जनसमूह के लिए प्रतिदिन प्रार्थना करने हेतु 100+ लोगों को सक्रिय करें।","No One Praying":"कोई प्रार्थना नहीं कर रहा","No options found":"कोई विकल्प नहीं मिला","No poster has been generated for this country yet.":"इस देश के लिए अभी तक कोई पोस्टर नहीं बना है।","No unengaged people groups by 2033":"2033 तक कोई भी संलग्न न किया गया जनसमूह नहीं रहेगा।","Not Adopted":"दत्तक नहीं लिया गया",Other:"अन्य","Page Not Found":"पृष्ठ नहीं मिला","People Group":"लोगों का समूह","People Groups":"जनसमूह","People committed to praying":"प्रार्थना के लिए प्रतिबद्ध लोग","Pick a region above, or click any dot to open that people group's country.":"ऊपर कोई क्षेत्र चुनें, या उस लोगों के समूह का देश खोलने के लिए किसी बिंदु पर क्लिक करें।","Pick a region or a country on the Regions List tab to narrow this dashboard.":"इस डैशबोर्ड को सीमित करने के लिए क्षेत्रों की सूची टैब में कोई क्षेत्र या देश चुनें।",Population:"जनसंख्या","Prayer Coverage":"प्रार्थना कवरेज","Prayer coverage progress":"प्रार्थना कवरेज की प्रगति","Region Dashboards":"क्षेत्र डैशबोर्ड","Region dashboard":"क्षेत्र डैशबोर्ड",Regions:"क्षेत्र","Regions List":"क्षेत्रों की सूची",Religion:"धर्म","Search names, country/continent, religions...":"नाम, देश/महाद्वीप, धर्म खोजें…","See %region% dashboard":"%region% डैशबोर्ड देखें","See All":"सभी देखें",Select:"चयन/छंटनी","Select View":"दृश्य चुनें","Show Filters":"फ़िल्टर दिखाएँ","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% में %count% लोगों के समूह हैं। इस देश की सीमा पर स्थित लोगों के समूहों के लिए मानचित्र भी देखें।",Total:"संपूर्ण","Type to search...":"खोजने के लिए टाइप करें..।","Unengaged people groups":"अनसंपर्कित जनसमूह","View country posters":"देश के पोस्टर देखें",Views:"दृश्य","WAGF Block":"WAGF ब्लॉक","WAGF Region":"डब्ल्यूएजीएफ क्षेत्र","people groups adopted":"जनसमूह गोद लिए गए","people groups engaged":"संपर्कित जनसमूह","Outside this region":"इस क्षेत्र के बाहर",Pray:"प्रार्थना करें","Loading region dashboards…":"क्षेत्र डैशबोर्ड लोड हो रहे हैं…","No regions found.":"कोई क्षेत्र नहीं मिला।","Region data could not be loaded. This is a connection problem, not a filter.":"क्षेत्र डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","People groups could not be loaded. This is a connection problem, not a filter.":"लोकसमूह लोड नहीं हो सके। यह कनेक्शन की समस्या है, फ़िल्टर की नहीं।","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"},o_={placeholder:"लोग, स्थान, भाषा, धर्म",placeholderNoPlaces:"लोग, भाषा, धर्म (स्थान खोज के लिए Mapbox टोकन चाहिए)",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"},upg100Placeholder:"जनसमूह, UPG-100 सूची या क्षेत्र खोजें…"},n_={prayer:"प्रार्थना",adoption:"गोद लेना",engagement:"सहभागिता","affinity-blocks":"जनसमूह",regions:"क्षेत्र",countries:"देश","language-families":"भाषाएँ",religion:"धर्म",family:"भाषा परिवार",language:"भाषा",dialect:"बोली/रूप",bloc:"समानता समूह",cluster:"क्लस्टर",group:"जनसमूह",pgic:"देश में जनसमूह",region:"WAGF क्षेत्र",block:"WAGF ब्लॉक",country:"देश",upg100Region:"क्षेत्र",upg100Zone:"UPG-100 सूचियाँ",upg100Group:"जनसमूह",selectView:"दृश्य चुनें",views:"दृश्य",prayerResources:"प्रार्थना संसाधन",map:"मानचित्र",countryPosters:"देश पोस्टर"},a_={title:"Tutti i gruppi etnici",locations:"{n} località (gruppo × paese)",doxa:"Gruppi etnici DOXA",frontier:"Frontiera — non è iniziato nulla",unreached:"Non raggiunti — il lavoro inizia",reached:"Raggiunti — la chiesa c’è",hint:"Fai clic su una riga per vederli tutti · di nuovo per vedere tutto",loading:"Caricamento di tutti i gruppi etnici…",loadError:"Impossibile caricare la mappa.",pray:"Prega per loro →",population:"pop. {n}"},s_={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio",collapseLegend:"Comprimi la legenda",expandLegend:"Espandi la legenda",toggleLegend:"Mostra o nascondi la legenda",searchPeopleGroups:"Cerca popoli",resetAllFilters:"Reimposta tutti i filtri e la ricerca",selectAllRows:"Seleziona tutte le righe",deselectAllRows:"Deseleziona tutte le righe"},r_={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",posterMap:"Mappa del poster",prayerList:"Lista di preghiera",cardDeck:"Mazzo di carte",printOptions:"Opzioni di stampa",showOnMap:"Mostra sulla mappa",close:"Chiudi",showOnMapAria:"Mostra {label} sulla mappa",cardStockAria:"Formato della scheda di preghiera",previewPrintPoster:"Anteprima e stampa del poster {label}",share:"Condividi",shareSteps:["Incorpora questa mappa nel tuo sito","Fai un elenco dei siti web della tua città","Insegna loro a incorporarla a loro volta","Insegna loro a formare altri a incorporarla","Moltiplichiamo le mappe ovunque per Gesù!"],clearSelection:"Cancella la selezione",noOptions:"Nessuna opzione trovata",renderingLocal:"Un’immagine con qualità di stampa viene generata nel tuo browser: nulla viene caricato.",postersPerRow:"Poster per riga"},i_={research_controls:"Controlli di ricerca",clustering:"Raggruppamento",filters:"Filtri",pin_dim:"Opacità dei punti",export_poster:"Esporta poster…",reload_data:"Ricarica i dati",off:"Disattivato",native:"Nativo",mst:"MST",network:"Rete",off_desc:"Mostra ogni punto singolarmente",native_desc:"Cluster circolari Mapbox (il più veloce)",mst_desc:"Reti di affinità ad albero ricoprente minimo",network_desc:"Linee verso il vicino più prossimo",search_languages:"Cerca lingue…",search_religions:"Cerca religioni…",reset_all:"Reimposta tutto",no_languages:"Nessuna lingua ancora caricata",no_religions:"Nessuna religione ancora caricata",unadopted:"Non adottato",min:"min",max:"max",adopted:"Adottato",adoption:"Adozione",engaged:"Coinvolto",engagement:"Impegno",unengaged:"Necessita impegno",language:"Lingua",religion:"Religione",population:"Popolazione",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",close:"Chiudi",clear:"Cancella",map_controls:"Controlli della mappa"},l_={bloc:"Blocco di affinità",gospel_access:"Accesso al vangelo",people:"Popoli",people_name:"Popolo (nome)",praying:"In preghiera",religion_family:"Famiglia religiosa",search_language:"Cerca lingua",search_people:"Cerca popolo",search_place:"Cerca luogo",search_religion:"Cerca religione",upgs_in_scope:"UPG nell’ambito",countries_touched:"paesi toccati",unreached:"non raggiunti",sum_population:"Σ popolazione",sum_praying:"Σ in preghiera",charts:"Grafici",table:"Tabella",cluster:"Cluster",country:"Paese",engagement:"Impegno",language:"Lingua",language_family:"Famiglia linguistica",people_group:"Popolo",population:"Popolazione",prayer:"Preghiera",region:"Regione",religion:"Religione",status:"Stato",adopted:"Adottato",filters:"Filtri",gospel_resources:"Risorse del Vangelo",map:"Mappa",search_placeholder:"Cerca popoli, luoghi, lingue, religioni…",any:"Tutti",active_count:"{n} attivi",prayer_status:"Stato di preghiera",map_controls:"Controlli della mappa",close:"Chiudi",clear:"Cancella",dashboard_title:"Cruscotto di ricerca generale",align_dashboard:"Allinea cruscotto",align_dashboard_tip:"Ripristina la disposizione predefinita del cruscotto",selected:"Selezionato",world:"Mondo",vertical_legend:"Legenda verticale",groups_in_scope:"popoli nell’ambito",filter_by:"Filtra per",remove_filter:"Rimuovi filtro",groups:"popoli",expand:"Espandi",collapse:"Comprimi",place:"Luogo",export_csv:"Esporta CSV",detail:"Dettaglio",detail_empty:"Seleziona un popolo per vedere il dettaglio",heartbeat_zone:"zona del battito",top_countries:"Paesi principali",select_all:"Seleziona tutto",expand_table:"Espandi tabella",collapse_table:"Comprimi tabella — ingrandisci la mappa",group:"popolo",deselect_all:"Deseleziona tutto"},c_={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},u_={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Le note esplicative qui sotto sono in inglese."},mode:{gap:"Divario",coverage:"Risorse trovate"},search:{placeholder:"Cerca un popolo, una lingua o un codice ISO",clear:"Cancella ricerca",none:"Nessuna corrispondenza per quel nome, lingua o codice.",placeholderShort:"Popolo, lingua o codice ISO"},legend:{title:"Popoli non raggiunti senza alcuna risorsa del vangelo",band60:"60%+ senza nulla",band30:"30–59%",bandSome:"alcuni popoli",bandAll:"tutti i popoli hanno qualcosa",tier2:"Scritture e film",tier1:"qualche risorsa trovata",tier0:"nulla trovato",hnr:"possono ascoltarlo, nessun testo",showAll:"Mostra tutti i popoli",titleCoverage:"Popoli non raggiunti con qualche risorsa del vangelo",cov80:"80%+ hanno qualcosa",cov50:"50–79%",cov1:"1–49%",cov0:"nulla per nessuno",tallyEach:"Ogni",tallyIs:"è UN popolo —",tallyOf:"di questi,",tallyLink:"con un link",doxa0:"tutti hanno qualcosa",doxa1:"1–4 senza nulla",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 raggiunti",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoli Doxa su questa mappa",notPlaced:"in elenco, non ancora collocati",outOfScope:"nessun popolo Doxa — non colorato"},tabs:{groups:"Popoli più numerosi",countries:"Per paese",regions:"Per regione",noprayer:"Nessuno prega",hnr:"Ascoltano, senza testo"},stat:{language:"Lingua",population:"Popolazione",countries:"Paesi",peopleGroups:"Popoli",noResource:"Nessuna risorsa trovata",peopleAffected:"Persone coinvolte",haveScripture:"Hanno le Scritture",haveFilm:"Hanno il film",haveAudio:"Hanno le Scritture in audio",signLanguages:"Lingue dei segni",growingUnreached:"In crescita e non raggiunti",deathsDay:"Decessi stimati/giorno"},sheet:{ownLanguage:"Nella loro lingua",close:"Chiudi",loading:"Caricamento risorse…",pray:"Prega per",everyResource:"Tutte le risorse in",alsoSpeak:"Parlano anche"},res:{scripture:"Scritture",film:"Film",audio:"Audio",bibleVideo:"Video biblico",bibleStories:"Open Bible Stories",gospelAudio:"Audio del Vangelo",gospelPresentation:"Presentazione del Vangelo",scriptureEarth:"Scripture Earth",training:"Formazione al discepolato",jesusFilm:"Film GESÙ",audioScripture:"Scritture in audio",bibleStoriesPlain:"Storie bibliche"},state:{noneFound:"nulla trovato",noneAtFcbh:"nulla presso FCBH",noneAtGrn:"nulla presso GRN",notInZume:"non tra le 54 di Zume",linkChecked:"link verificato",unchecked:"non verificato",linkDead:"link non attivo",wrongLanguage:"lingua errata",varietyNotStated:"(varietà non indicata)",inLanguage:"in"},guide:{dotVsCountry:"Ogni punto è UN popolo di Doxa con la sua lingua; un paese è il NUMERO di quei popoli.",noneFoundShort:"«Nulla trovato» significa assente dalle fonti controllate, mai la prova che non esista.",tapCountry:"Tocca un paese per vedere le risorse, popolo per popolo."},tables:{title:"Risorse del Vangelo — Dati",showing:"Mostrando",of:"di",for:"per",filteredTo:"Filtrato per",showAll:"Mostra tutte le risorse",t_doxa:"Doxa — Accesso al Vangelo",t_links:"Ogni risorsa + link",t_nothing:"Dove non si è trovato nulla",t_countrygap:"Il divario per paese",t_translation:"Ascoltano, senza testo",t_translationcountry:"Dove tradurre",t_province:"Accesso al Vangelo per provincia — India e Cina",t_gaps:"Divari e opportunità",t_bridges:"Ponti urbani",t_deaf:"Il divario sordo",t_resources:"Risorse per popolo",t_languages:"Lingue per paese",t_growth:"Accesso vs crescita"},pages:{listTitle:"Risorse del Vangelo per lingua",chartsTitle:"Risorse del Vangelo — per lingua",loadingTables:"Caricamento delle tabelle…"},list:{noText:"Nessun testo biblico",hasScripture:"Ha le Scritture",allLanguages:"Tutte le lingue",peopleGroup:"popolo",peopleGroups:"popoli",scriptureHere:"Scritture in questa lingua"},columns:{"People group":"Popolo",Country:"Paese",Region:"Regione",Language:"Lingua",Population:"Popolazione",Religion:"Religione","Gospel access":"Accesso al Vangelo",Resources:"Risorse",Scripture:"Scritture","Bible video":"Video biblico","Gospel presentation":"Presentazione del Vangelo",Countries:"Paesi","People groups":"Popoli"},charts:{scriptureAny:"Scritture (qualsiasi)",fullBible:"Bibbia completa",newTestament:"Nuovo Testamento",filmAny:"Film (qualsiasi)",nothingInPools:"Nulla trovato nelle fonti controllate",nothingInPoolsLower:"nulla trovato nelle fonti controllate",noResourceInPools:"nessuna risorsa trovata nelle fonti controllate",aResourceFound:"una risorsa trovata",tabCoverage:"Copertura delle risorse",tabGap:"Lacune maggiori",keyScripture:"scritture",keyFilmStories:"film / storie",keyAudioEtc:"audio / presentazione / formazione",unresolvedCode:"codice fuori ISO 639-3 — non risolto, non misurato",c1Title:"Che cosa è stato TROVATO, per tipo di risorsa",c1Sub:"Su tutte le {n} lingue del corpus. Ogni barra conta LINGUE, non gruppi etnici.",c1Unit:"lingue in cui la risorsa è stata trovata nelle fonti controllate",c2Title:"Popolazioni più numerose senza nulla trovato",c2Sub:"Le {n} lingue senza Scritture né film nelle fonti controllate, ordinate per la popolazione dei gruppi che le parlano.",c2Unit:"persone nei gruppi la cui lingua PRINCIPALE è questa — non i parlanti della lingua",c3Title:"Paesi con più lingue non servite",c3Sub:"I {n} paesi con più lingue per cui non è stato trovato nulla. La lunghezza della barra è ogni lingua presente in quel paese.",c3Unit:"lingue presenti nel paese (una lingua transfrontaliera conta in ciascuno)"}},p_={search:"Cerca popoli…",hide_filters:"Nascondi filtri",show_filters:"Mostra filtri",total:"Totale",showing:"Mostrati",load_more:"Carica altro",full_profile:"Profilo completo",wagf_region:"Regione",wagf_block:"Blocco di affinità",rop1:"Popolo",religion:"Religione",exact_filter:"Esatto",clear_all:"Cancella tutto",loading:"Caricamento…",no_results:"Nessun popolo corrisponde a questo filtro.",type_to_search:"Digita per cercare...",load_failed:"Impossibile caricare i dati dei popoli. È un problema di connessione, non del filtro.",search_people_or_countries:"Cerca popoli o paesi…"},d_={title:{adoption:"Avanzamento dell'adozione",affinityBlocs:"Blocchi di affinità",doxaRegions:"Regioni Doxa",engagement:"Avanzamento dell'impegno",gospelResources:"Risorse del Vangelo",languageFamilies:"Famiglie linguistiche",prayer:"Avanzamento della preghiera",upg100List:"La mia lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Gruppo di persone",default:"Legenda"},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",name:"Nome"},footer:{total:"Totale"},sortByUpgs:"Ordina per UUPG",sortByPop:"Ordina per popolazione",colLabel:{religion:"Religioni UUPG",prayer:"Stato della preghiera",engagement:"Stato dell'impegno",adoption:"Stato dell'adozione",status:"Stato"},titleBar:{legend:"Legenda",peopleGroups:"Popoli",wagfRegions:"Regioni WAGF",languages:"Lingue"},tabInfo:{upg100Region:"Regione — ordina le liste UPG-100 per area del mondo (Africa, India, Medio Oriente, Sordi, …). I totali sono gli UUPG e la popolazione sommati di ogni lista sottostante.",upg100Zone:"Liste UPG-100 — ognuna è una lista di preghiera dei gruppi etnici non raggiunti di un’area, ed è ciò che la mappa disegna e colora. Ogni lista si stampa come il proprio fascicolo.",upg100Group:"Gruppo etnico — i singoli gruppi non raggiunti dentro una lista, prima quelli con maggiore bisogno di preghiera. Ogni punto della mappa è uno di questi."},a11y:{expandRow:"Espandi {label}",collapseRow:"Comprimi {label}",clearSelection:"Cancella la selezione"},export:{poster:"Manifesto",packet:"Libretto"},noDataAtThisLevel:"Nessun dato a questo livello",exportButton:"Esporta",exportSelection:"Esporta la selezione"},g_={menuComingSoon:"Menu in arrivo",pinHint:{tapDot:"Tocca un punto colorato — qualcuno ha ancora bisogno di preghiera"},upg100WallHeading:"La mia lista UPG 100 — Liste di preghiera e poster",upg100WallTag:"Mobilitazione alla preghiera",upg100WallIntro:"Distribuisci il compito della preghiera in gruppi di cinquanta e di cento — come Gesù sfamò i 5.000 (Luca 9:14). Ogni poster è una lista di 100 che puoi pregare, stampare e appendere al muro — pregando per loro con il nome del loro popolo."},f_={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},h_={country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},m_={"%count% people groups in %countries% countries":"%count% popoli in %countries% paesi","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% conta %count% popoli in %countries% paesi. Il colore di ogni punto indica quante persone pregano per quel popolo.","1+ People Praying":"1+ persone in preghiera","100+ People Praying":"100+ persone in preghiera",Adopted:"Adottato","Adoption Progress":"Avanzamento dell'adozione","All Regions":"Tutte le regioni","Alternate Names":"Nomi alternativi","Choose a region":"Scegli una regione","Clear All":"Cancella tutto",Countries:"Paesi","Countries in this region":"Paesi di questa regione",Country:"Paese",Engaged:"Coinvolto","Engagement Progress":"Avanzamento dell'impegno","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Ogni popolo non ancora raggiunto adottato da una chiesa impegnata nella preghiera, nel dare e nell'inviare","Exact Search":"Ricerca esatta","Find unreached people groups by region and country.":"Trova i popoli non raggiunti per regione e paese.","Full Profile":"Profilo completo",Goal:"Obiettivo","Hide Filters":"Nascondi i filtri","Hide country posters":"Nascondi i poster del paese",Intercessors:"Intercessori","Load More":"Carica altri","Loading results...":"Caricamento dei risultati…",Map:"Mappa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilitare oltre 100 persone che pregano ogni giorno per ciascun popolo DOXA","No One Praying":"Nessuno prega","No options found":"Nessuna opzione trovata","No poster has been generated for this country yet.":"Per questo paese non è ancora stato generato alcun poster.","No unengaged people groups by 2033":"Nessun popolo senza impegno entro il 2033","Not Adopted":"Non adottato",Other:"Altro","Page Not Found":"Pagina non trovata","People Group":"Popolo","People Groups":"Popoli","People committed to praying":"Persone impegnate a pregare","Pick a region above, or click any dot to open that people group's country.":"Scegli una regione qui sopra, oppure clicca su un punto per aprire il paese di quel gruppo etnico.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Scegli una regione o un paese nella scheda Elenco delle regioni per restringere questo cruscotto.",Population:"Popolazione","Prayer Coverage":"Copertura della preghiera","Prayer coverage progress":"Avanzamento della copertura di preghiera","Region Dashboards":"Cruscotti delle regioni","Region dashboard":"Cruscotto della regione",Regions:"Regioni","Regions List":"Elenco delle regioni",Religion:"Religione","Search names, country/continent, religions...":"Cerca nomi, paese/continente, religioni…","See %region% dashboard":"Vedi il cruscotto di %region%","See All":"Vedi tutto",Select:"Seleziona","Select View":"Seleziona vista","Show Filters":"Mostra i filtri","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"In %country% ci sono %count% popoli. Controlla sulla mappa anche i popoli ai confini di questo paese.",Total:"Totale","Type to search...":"Digita per cercare…","Unengaged people groups":"Popoli senza impegno","View country posters":"Vedi i poster del paese",Views:"Viste","WAGF Block":"Blocco WAGF","WAGF Region":"Regione WAGF","people groups adopted":"popoli adottati","people groups engaged":"popoli coinvolti","Outside this region":"Fuori da questa regione",Pray:"Prega","Loading region dashboards…":"Caricamento delle dashboard delle regioni…","No regions found.":"Nessuna regione trovata.","Region data could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i dati delle regioni. È un problema di connessione, non un filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Non è stato possibile caricare i gruppi di popolazione. È un problema di connessione, non un filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"La mappa non è potuta avviare. È un problema di token della mappa o di connessione, non un filtro: i dati sopra non sono interessati."},b_={placeholder:"Popolo, luogo, lingua, religione",placeholderNoPlaces:"Popolo, lingua, religione (la ricerca di luoghi richiede un token Mapbox)",labels:{people:"Popolo:",place:"Luogo:",language:"Lingua:",religion:"Religione:"},sections:{within:"In {selection}",allData:"Tutti i dati DOXA"},kinds:{people:"Popolo + paese",peopleGroup:"Popolo",bloc:"Blocco di affinità",cluster:"Cluster di popoli",country:"Paese",region:"Regione",family:"Famiglia linguistica",languageKind:"Lingua",dialect:"Dialetto",religionKind:"Religione"},upg100Placeholder:"Cerca popolo, elenco UPG-100 o regione…"},y_={prayer:"Preghiera",adoption:"Adozione",engagement:"Impegno","affinity-blocks":"Popoli",regions:"Regioni",countries:"Paesi","language-families":"Lingue",religion:"Religioni",family:"Famiglia ling.",language:"Lingua",dialect:"Dialetto/Variante",bloc:"Blocco di affinità",cluster:"Cluster",group:"Popolo",pgic:"Popolo nel paese",region:"Regione WAGF",block:"Blocco WAGF",country:"Paese",upg100Region:"Regione",upg100Zone:"Liste UPG-100",upg100Group:"Gruppo etnico",selectView:"Seleziona vista",views:"Viste",prayerResources:"Risorse di preghiera",map:"Mappa",countryPosters:"Poster per paese"},__={title:"Todos os grupos étnicos",locations:"{n} locais (grupo × país)",doxa:"Grupos étnicos da DOXA",frontier:"Fronteira — nada iniciado",unreached:"Não alcançados — o trabalho começa",reached:"Alcançados — a igreja está lá",hint:"Clique em uma linha para ver todos · clique de novo para ver tudo",loading:"Carregando todos os grupos étnicos…",loadError:"Não foi possível carregar o mapa.",pray:"Ore por eles →",population:"pop. {n}"},$_={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe",collapseLegend:"Recolher a legenda",expandLegend:"Expandir a legenda",toggleLegend:"Mostrar ou ocultar a legenda",searchPeopleGroups:"Pesquisar povos",resetAllFilters:"Redefinir todos os filtros e a pesquisa",selectAllRows:"Selecionar todas as linhas",deselectAllRows:"Desmarcar todas as linhas"},v_={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",posterMap:"Mapa do cartaz",prayerList:"Lista de oração",cardDeck:"Baralho de cartões",printOptions:"Opções de impressão",showOnMap:"Ver no mapa",close:"Fechar",showOnMapAria:"Ver {label} no mapa",cardStockAria:"Tamanho do cartão de oração",previewPrintPoster:"Pré-visualizar e imprimir o cartaz de {label}",share:"Partilhar",shareSteps:["Incorpore este mapa no seu site","Faça uma lista dos sites da sua cidade","Ensine-os a incorporá-lo também","Ensine-os a ensinar outros a incorporá-lo","Multipliquemos mapas por toda a parte para Jesus!"],clearSelection:"Limpar a seleção",noOptions:"Nenhuma opção encontrada",renderingLocal:"Uma imagem com qualidade de impressão está a ser gerada no seu navegador — nada é enviado.",postersPerRow:"Cartazes por linha"},w_={research_controls:"Controlos de pesquisa",clustering:"Agrupamento",filters:"Filtros",pin_dim:"Esbater pontos",export_poster:"Exportar cartaz…",reload_data:"Recarregar dados",off:"Desligado",native:"Nativo",mst:"MST",network:"Rede",off_desc:"Mostrar cada ponto individualmente",native_desc:"Grupos circulares Mapbox (mais rápido)",mst_desc:"Redes de afinidade por árvore geradora mínima",network_desc:"Linhas para o vizinho mais próximo",search_languages:"Pesquisar idiomas…",search_religions:"Pesquisar religiões…",reset_all:"Repor tudo",no_languages:"Ainda não há idiomas carregados",no_religions:"Ainda não há religiões carregadas",unadopted:"Não adotado",min:"mín",max:"máx",adopted:"Adotado",adoption:"Adoção",engaged:"Engajado",engagement:"Engajamento",unengaged:"Precisa de envolvimento",language:"Idioma",religion:"Religião",population:"População",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",close:"Fechar",clear:"Limpar",map_controls:"Controlos do mapa"},k_={bloc:"Bloco de afinidade",gospel_access:"Acesso ao evangelho",people:"Povos",people_name:"Povo (nome)",praying:"A orar",religion_family:"Família religiosa",search_language:"Pesquisar idioma",search_people:"Pesquisar povo",search_place:"Pesquisar lugar",search_religion:"Pesquisar religião",upgs_in_scope:"UPG no âmbito",countries_touched:"países alcançados",unreached:"não alcançados",sum_population:"Σ população",sum_praying:"Σ a orar",charts:"Gráficos",table:"Tabela",cluster:"Agrupamento",country:"País",engagement:"Engajamento",language:"Idioma",language_family:"Família linguística",people_group:"Povo",population:"População",prayer:"Oração",region:"Região",religion:"Religião",status:"Status",adopted:"Adotado",filters:"Filtros",gospel_resources:"Recursos do Evangelho",map:"Mapa",search_placeholder:"Pesquisar povos, lugares, idiomas, religiões…",any:"Qualquer",active_count:"{n} ativos",prayer_status:"Estado de oração",map_controls:"Controlos do mapa",close:"Fechar",clear:"Limpar",dashboard_title:"Painel de pesquisa geral",align_dashboard:"Alinhar painel",align_dashboard_tip:"Repor a disposição do painel para o alinhamento predefinido",selected:"Selecionado",world:"Mundo",vertical_legend:"Legenda vertical",groups_in_scope:"povos no âmbito",filter_by:"Filtrar por",remove_filter:"Remover filtro",groups:"povos",expand:"Expandir",collapse:"Recolher",place:"Lugar",export_csv:"Exportar CSV",detail:"Detalhe",detail_empty:"Selecione um povo para ver o detalhe",heartbeat_zone:"zona do batimento",top_countries:"Principais países",select_all:"Selecionar tudo",expand_table:"Expandir tabela",collapse_table:"Recolher tabela — ampliar o mapa",group:"povo",deselect_all:"Desmarcar tudo"},x_={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."}},A_={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"As notas explicativas abaixo estão em inglês."},mode:{gap:"Lacuna",coverage:"Recursos encontrados"},search:{placeholder:"Procure um povo, idioma ou código ISO",clear:"Limpar busca",none:"Nada corresponde a esse nome, idioma ou código.",placeholderShort:"Povo, idioma ou código ISO"},legend:{title:"Povos não alcançados sem nenhum recurso do evangelho",band60:"60%+ sem nada encontrado",band30:"30–59%",bandSome:"alguns povos",bandAll:"todos os povos têm algo",tier2:"Escrituras e filme",tier1:"algum recurso encontrado",tier0:"nada encontrado",hnr:"podem ouvir, sem texto",showAll:"Mostrar todos os povos",titleCoverage:"Povos não alcançados com algum recurso do evangelho",cov80:"80%+ têm algo",cov50:"50–79%",cov1:"1–49%",cov0:"nada para ninguém",tallyEach:"Cada",tallyIs:"é UM povo —",tallyOf:"deles,",tallyLink:"com um link",doxa0:"todos têm algo",doxa1:"1–4 sem nada",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 alcançados",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Povos Doxa neste mapa",notPlaced:"na lista, ainda sem localização",outOfScope:"sem povos Doxa — sem cor"},tabs:{groups:"Maiores povos",countries:"Por país",regions:"Por região",noprayer:"Ninguém orando",hnr:"Ouvem, sem texto"},stat:{language:"Idioma",population:"População",countries:"Países",peopleGroups:"Povos",noResource:"Nenhum recurso encontrado",peopleAffected:"Pessoas afetadas",haveScripture:"Têm Escrituras",haveFilm:"Têm filme",haveAudio:"Têm Escrituras em áudio",signLanguages:"Línguas de sinais",growingUnreached:"Em crescimento e não alcançados",deathsDay:"Mortes estimadas/dia"},sheet:{ownLanguage:"No próprio idioma",close:"Fechar",loading:"Carregando recursos…",pray:"Ore por",everyResource:"Todos os recursos em",alsoSpeak:"Também falam"},res:{scripture:"Escrituras",film:"Filme",audio:"Áudio",bibleVideo:"Vídeo bíblico",bibleStories:"Open Bible Stories",gospelAudio:"Áudio do evangelho",gospelPresentation:"Apresentação do evangelho",scriptureEarth:"Scripture Earth",training:"Treinamento de discipulado",jesusFilm:"Filme JESUS",audioScripture:"Escrituras em áudio",bibleStoriesPlain:"Histórias bíblicas"},state:{noneFound:"nada encontrado",noneAtFcbh:"nada na FCBH",noneAtGrn:"nada na GRN",notInZume:"não está entre as 54 da Zume",linkChecked:"link verificado",unchecked:"não verificado",linkDead:"link inativo",wrongLanguage:"idioma incorreto",varietyNotStated:"(variedade não indicada)",inLanguage:"em"},guide:{dotVsCountry:"Cada ponto é UM povo da Doxa e o seu próprio idioma; um país é o NÚMERO desses povos.",noneFoundShort:"«Nada encontrado» significa ausente das fontes verificadas, nunca prova de que não exista.",tapCountry:"Toque num país para ver os recursos, povo a povo."},tables:{title:"Recursos do evangelho — Dados",showing:"Mostrando",of:"de",for:"para",filteredTo:"Filtrado por",showAll:"Mostrar todos os recursos",t_doxa:"Doxa — Acesso ao evangelho",t_links:"Cada recurso + link",t_nothing:"Onde nada foi encontrado",t_countrygap:"A lacuna por país",t_translation:"Ouvem, sem texto",t_translationcountry:"Onde traduzir",t_province:"Acesso ao Evangelho por província — Índia e China",t_gaps:"Lacunas e oportunidades",t_bridges:"Pontes urbanas",t_deaf:"A lacuna surda",t_resources:"Recursos por povo",t_languages:"Idiomas por país",t_growth:"Acesso vs crescimento"},pages:{listTitle:"Recursos do evangelho por idioma",chartsTitle:"Recursos do evangelho — por idioma",loadingTables:"Carregando tabelas de recursos…"},list:{noText:"Sem texto bíblico",hasScripture:"Tem Escrituras",allLanguages:"Todos os idiomas",peopleGroup:"povo",peopleGroups:"povos",scriptureHere:"Escrituras neste idioma"},columns:{"People group":"Povo",Country:"País",Region:"Região",Language:"Idioma",Population:"População",Religion:"Religião","Gospel access":"Acesso ao evangelho",Resources:"Recursos",Scripture:"Escrituras","Bible video":"Vídeo bíblico","Gospel presentation":"Apresentação do evangelho",Countries:"Países","People groups":"Povos"},charts:{scriptureAny:"Escrituras (qualquer)",fullBible:"Bíblia completa",newTestament:"Novo Testamento",filmAny:"Filme (qualquer)",nothingInPools:"Nada encontrado nas fontes consultadas",nothingInPoolsLower:"nada encontrado nas fontes consultadas",noResourceInPools:"nenhum recurso encontrado nas fontes consultadas",aResourceFound:"um recurso encontrado",tabCoverage:"Cobertura de recursos",tabGap:"Maiores lacunas",keyScripture:"escrituras",keyFilmStories:"filme / histórias",keyAudioEtc:"áudio / apresentação / treinamento",unresolvedCode:"código fora da ISO 639-3 — não resolvido, não medido",c1Title:"O que foi ENCONTRADO, por tipo de recurso",c1Sub:"Em todas as {n} línguas do conjunto de dados. Cada barra conta LÍNGUAS, não etnias.",c1Unit:"línguas em que o recurso foi encontrado nas fontes consultadas",c2Title:"Maiores populações sem nada encontrado",c2Sub:"As {n} línguas sem Escrituras e sem filme nas fontes consultadas, ordenadas pela população das etnias que as falam.",c2Unit:"pessoas nas etnias cuja língua PRINCIPAL é esta — não falantes da língua",c3Title:"Países com mais línguas desatendidas",c3Sub:"Os {n} países com mais línguas sem nada encontrado. O comprimento da barra é cada língua presente nesse país.",c3Unit:"línguas presentes no país (uma língua transfronteiriça conta em cada um)"}},S_={search:"Pesquisar povos…",hide_filters:"Ocultar filtros",show_filters:"Mostrar filtros",total:"Total",showing:"Mostrando",load_more:"Carregar mais",full_profile:"Perfil completo",wagf_region:"Região",wagf_block:"Bloco de afinidade",rop1:"Povo",religion:"Religião",exact_filter:"Exato",clear_all:"Limpar tudo",loading:"A carregar…",no_results:"Nenhum povo corresponde a este filtro.",type_to_search:"Escreva para pesquisar...",load_failed:"Não foi possível carregar os dados dos povos. É um problema de ligação, não do seu filtro.",search_people_or_countries:"Pesquisar povos ou países…"},P_={title:{adoption:"Progresso da adoção",affinityBlocs:"Blocos de afinidade",doxaRegions:"Regiões Doxa",engagement:"Progresso do envolvimento",gospelResources:"Recursos do Evangelho",languageFamilies:"Famílias linguísticas",prayer:"Progresso da oração",upg100List:"A minha lista UPG 100"},header:{collapsed:"Legenda",peopleGroupFallback:"Grupo de pessoas",default:"Legenda"},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"},tabInfo:{upg100Region:"Região — ordena as listas UPG-100 por área do mundo (África, Índia, Oriente Médio, Surdos, …). Os totais são os UUPG e a população somados de todas as listas abaixo dela.",upg100Zone:"Listas UPG-100 — cada uma é uma lista de oração dos grupos étnicos não alcançados de uma área, e é o que o mapa pinta e colore. Cada lista é impressa como seu próprio pacote.",upg100Group:"Grupo étnico — os grupos não alcançados dentro de uma lista, primeiro os de maior necessidade de oração. Cada ponto do mapa é um deles."},a11y:{expandRow:"Expandir {label}",collapseRow:"Recolher {label}",clearSelection:"Limpar a seleção"},export:{poster:"Cartaz",packet:"Caderno"},noDataAtThisLevel:"Sem dados neste nível",exportButton:"Exportar",exportSelection:"Exportar a seleção"},L_={menuComingSoon:"Menu em breve",pinHint:{tapDot:"Toque num ponto colorido — alguém ainda precisa de oração"},upg100WallHeading:"A minha lista UPG 100 — Listas de oração e cartazes",upg100WallTag:"Mobilização de oração",upg100WallIntro:"Reparta a tarefa da oração em grupos de cinquenta e de cem — como Jesus alimentou os 5.000 (Lucas 9:14). Cada cartaz é uma lista de 100 que pode orar, imprimir e pôr na parede — orando por eles pelo nome do seu povo."},C_={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},E_={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},T_={"%count% people groups in %countries% countries":"%count% grupos étnicos em %countries% países","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% tem %count% grupos étnicos em %countries% países. A cor de cada ponto indica quantas pessoas oram por esse grupo étnico.","1+ People Praying":"1+ pessoas orando","100+ People Praying":"100+ pessoas orando",Adopted:"Adotado","Adoption Progress":"Progresso da adoção","All Regions":"Todas as regiões","Alternate Names":"Nomes alternativos","Choose a region":"Escolha uma região","Clear All":"Limpar tudo",Countries:"Países","Countries in this region":"Países desta região",Country:"País",Engaged:"Engajado","Engagement Progress":"Progresso do engajamento","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Cada grupo étnico não engajado adotado por uma igreja comprometida com a oração, contribuição e o envio","Exact Search":"Pesquisa exata","Find unreached people groups by region and country.":"Encontre grupos étnicos não alcançados por região e país.","Full Profile":"Perfil completo",Goal:"Meta","Hide Filters":"Ocultar filtros","Hide country posters":"Ocultar os cartazes do país",Intercessors:"Intercessores","Load More":"Carregar mais","Loading results...":"A carregar resultados...",Map:"Mapa","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizar mais de 100 pessoas para orar diariamente por cada grupo étnico DOXA","No One Praying":"Ninguém orando","No options found":"Não foram encontradas opções","No poster has been generated for this country yet.":"Ainda não foi gerado nenhum cartaz para este país.","No unengaged people groups by 2033":"Nenhum grupo étnico não engajado até 2033","Not Adopted":"Não adotado",Other:"Outros","Page Not Found":"Página não encontrada","People Group":"Grupo étnico","People Groups":"Grupos étnicos","People committed to praying":"Pessoas comprometidas com a oração","Pick a region above, or click any dot to open that people group's country.":"Escolha uma região acima, ou clique em qualquer ponto para abrir o país desse povo.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Escolha uma região ou um país na aba Lista de regiões para restringir este painel.",Population:"População","Prayer Coverage":"Cobertura de oração","Prayer coverage progress":"Progresso da cobertura de oração","Region Dashboards":"Painéis das regiões","Region dashboard":"Painel da região",Regions:"Regiões","Regions List":"Lista de regiões",Religion:"Religião","Search names, country/continent, religions...":"Busque nomes, país/continente, religiões...","See %region% dashboard":"Ver o painel: %region%","See All":"Ver tudo",Select:"Selecionar","Select View":"Selecionar visualização","Show Filters":"Mostrar filtros","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Existem %count% grupos étnicos em %country%. Verifique no mapa também os grupos étnicos na fronteira deste país.",Total:"Total","Type to search...":"Digite para pesquisar...","Unengaged people groups":"Grupos étnicos não engajados","View country posters":"Ver os cartazes do país",Views:"Visualizações","WAGF Block":"Bloco WAGF","WAGF Region":"Região da WAGF","people groups adopted":"grupos étnicos adotados","people groups engaged":"grupos étnicos engajados","Outside this region":"Fora desta região",Pray:"Ore","Loading region dashboards…":"Carregando os painéis das regiões…","No regions found.":"Nenhuma região encontrada.","Region data could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os dados das regiões. É um problema de conexão, não um filtro.","People groups could not be loaded. This is a connection problem, not a filter.":"Não foi possível carregar os povos. É um problema de conexão, não um filtro.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"O mapa não pôde iniciar. É um problema do token do mapa ou de conexão, não um filtro — os números acima não são afetados."},R_={placeholder:"Povo, local, língua, religião",placeholderNoPlaces:"Povo, língua, religião (a busca de locais requer um token do Mapbox)",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"},sections:{within:"Dentro de {selection}",allData:"Todos os dados DOXA"},upg100Placeholder:"Procurar povo, lista UPG-100 ou região…"},N_={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",upg100Region:"Região",upg100Zone:"Listas UPG-100",upg100Group:"Grupo étnico",selectView:"Selecionar vista",views:"Vistas",prayerResources:"Recursos de oração",map:"Mapa",countryPosters:"Cartazes por país"},M_={title:"Toate grupurile etnice",locations:"{n} locații (grup × țară)",doxa:"Grupuri etnice DOXA",frontier:"Frontieră — nimic început",unreached:"Neatinse — lucrarea începe",reached:"Atinse — biserica este acolo",hint:"Faceți clic pe un rând pentru a le vedea pe toate · din nou pentru tot",loading:"Se încarcă toate grupurile etnice…",loadError:"Harta nu a putut fi încărcată.",pray:"Rugați-vă pentru ei →",population:"pop. {n}"},F_={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda",searchPeopleGroups:"Caută popoare",resetAllFilters:"Resetează toate filtrele și căutarea",selectAllRows:"Selectează toate rândurile",deselectAllRows:"Deselectează toate rândurile"},I_={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ă",posterMap:"Harta afișului",prayerList:"Listă de rugăciune",cardDeck:"Pachet de cartonașe",printOptions:"Opțiuni de tipărire",showOnMap:"Arată pe hartă",close:"Închide",showOnMapAria:"Arată {label} pe hartă",cardStockAria:"Dimensiunea cardului de rugăciune",previewPrintPoster:"Previzualizează și tipărește posterul {label}",share:"Distribuie",shareSteps:["Încorporează această hartă pe site-ul tău","Fă o listă cu site-urile din orașul tău","Învață-i să o încorporeze și ei","Învață-i să îi formeze pe alții să o încorporeze","Să multiplicăm hărți pretutindeni pentru Isus!"],clearSelection:"Șterge selecția",noOptions:"Nicio opțiune găsită",renderingLocal:"O imagine de calitate pentru tipar este generată în browserul tău — nimic nu este încărcat.",postersPerRow:"Postere pe rând"},O_={research_controls:"Comenzi de cercetare",clustering:"Grupare",filters:"Filtre",pin_dim:"Estompare puncte",export_poster:"Exportă posterul…",reload_data:"Reîncarcă datele",off:"Oprit",native:"Nativ",mst:"MST",network:"Rețea",off_desc:"Arată fiecare punct separat",native_desc:"Grupuri circulare Mapbox (cel mai rapid)",mst_desc:"Rețele de afinitate prin arbore minim de acoperire",network_desc:"Linii către cel mai apropiat vecin",search_languages:"Caută limbi…",search_religions:"Caută religii…",reset_all:"Resetează tot",no_languages:"Nicio limbă încărcată încă",no_religions:"Nicio religie încărcată încă",unadopted:"Neadoptat",min:"min",max:"max",adopted:"Adoptat",adoption:"Adopție",engaged:"Implicat",engagement:"Implicare",unengaged:"Necesită implicare",language:"Limbă",religion:"Religie",population:"Populație",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",close:"Închide",clear:"Șterge",map_controls:"Comenzile hărții"},D_={bloc:"Bloc de afinitate",gospel_access:"Acces la Evanghelie",people:"Popoare",people_name:"Popor (nume)",praying:"Se roagă",religion_family:"Familie religioasă",search_language:"Caută limbă",search_people:"Caută popor",search_place:"Caută loc",search_religion:"Caută religie",upgs_in_scope:"UPG în domeniu",countries_touched:"țări atinse",unreached:"neatinși",sum_population:"Σ populație",sum_praying:"Σ se roagă",charts:"Grafice",table:"Tabel",cluster:"Grup",country:"Țară",engagement:"Implicare",language:"Limbă",language_family:"Familie de limbi",people_group:"Popor",population:"Populație",prayer:"Rugăciune",region:"Regiune",religion:"Religie",status:"Stare",adopted:"Adoptat",filters:"Filtre",gospel_resources:"Resurse ale Evangheliei",map:"Hartă",search_placeholder:"Caută popoare, locuri, limbi, religii…",any:"Oricare",active_count:"{n} active",prayer_status:"Stare de rugăciune",map_controls:"Comenzile hărții",close:"Închide",clear:"Șterge",dashboard_title:"Tablou de bord de cercetare general",align_dashboard:"Aliniază tabloul",align_dashboard_tip:"Readu aranjarea tabloului la alinierea implicită",selected:"Selectat",world:"Lume",vertical_legend:"Legendă verticală",groups_in_scope:"popoare în domeniu",filter_by:"Filtrează după",remove_filter:"Elimină filtrul",groups:"popoare",expand:"Extinde",collapse:"Restrânge",place:"Loc",export_csv:"Exportă CSV",detail:"Detaliu",detail_empty:"Selectează un popor pentru a vedea detaliile",heartbeat_zone:"zona bătăilor inimii",top_countries:"Țări de top",select_all:"Selectează tot",expand_table:"Extinde tabelul",collapse_table:"Restrânge tabelul — mărește harta",group:"popor",deselect_all:"Deselectează tot"},G_={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ă."}},B_={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Notele explicative de mai jos sunt în limba engleză."},mode:{gap:"Golul",coverage:"Resurse găsite"},search:{placeholder:"Caută un popor, o limbă sau un cod ISO",clear:"Șterge căutarea",none:"Nimic nu se potrivește cu acel nume, limbă sau cod.",placeholderShort:"Popor, limbă sau cod ISO"},legend:{title:"Popoare neatinse, fără nicio resursă a Evangheliei",band60:"60%+ fără nimic găsit",band30:"30–59%",bandSome:"unele popoare",bandAll:"toate popoarele au ceva",tier2:"Scripturi și film",tier1:"s-a găsit o resursă",tier0:"nimic găsit",hnr:"pot auzi, fără text",showAll:"Arată toate popoarele",titleCoverage:"Popoare neatinse cu o resursă a Evangheliei",cov80:"80%+ au ceva",cov50:"50–79%",cov1:"1–49%",cov0:"nimic pentru niciunul",tallyEach:"Fiecare",tallyIs:"este UN popor —",tallyOf:"dintre ele,",tallyLink:"cu un link",doxa0:"toate au ceva",doxa1:"1–4 fără nimic",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 atinse",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Popoare Doxa pe această hartă",notPlaced:"pe listă, încă nelocalizate",outOfScope:"niciun popor Doxa — necolorat"},tabs:{groups:"Cele mai mari popoare",countries:"După țară",regions:"După regiune",noprayer:"Nimeni nu se roagă",hnr:"Aud, fără text"},stat:{language:"Limba",population:"Populație",countries:"Țări",peopleGroups:"Popoare",noResource:"Nicio resursă găsită",peopleAffected:"Persoane afectate",haveScripture:"Au Scripturile",haveFilm:"Au filmul",haveAudio:"Au Scripturi audio",signLanguages:"Limbaje semne",growingUnreached:"În creștere și neatinse",deathsDay:"Decese estimate/zi"},sheet:{ownLanguage:"În limba lor",close:"Închide",loading:"Se încarcă resursele…",pray:"Roagă-te pentru",everyResource:"Toate resursele în",alsoSpeak:"Vorbesc și"},res:{scripture:"Scripturi",film:"Film",audio:"Audio",bibleVideo:"Video biblic",bibleStories:"Open Bible Stories",gospelAudio:"Audio cu Evanghelia",gospelPresentation:"Prezentarea Evangheliei",scriptureEarth:"Scripture Earth",training:"Instruire în ucenicie",jesusFilm:"Filmul ISUS",audioScripture:"Scripturi audio",bibleStoriesPlain:"Povestiri biblice"},state:{noneFound:"nimic găsit",noneAtFcbh:"nimic la FCBH",noneAtGrn:"nimic la GRN",notInZume:"nu este între cele 54 Zume",linkChecked:"link verificat",unchecked:"neverificat",linkDead:"link mort",wrongLanguage:"limbă greșită",varietyNotStated:"(varietate nespecificată)",inLanguage:"în"},guide:{dotVsCountry:"Fiecare punct este UN popor Doxa și limba lui; o țară este NUMĂRUL acelor popoare.",noneFoundShort:"„Nimic găsit” înseamnă absent din sursele verificate, niciodată dovada că nu există.",tapCountry:"Atinge o țară pentru a vedea resursele, popor cu popor."},tables:{title:"Resurse ale Evangheliei — Date",showing:"Se afișează",of:"din",for:"pentru",filteredTo:"Filtrat după",showAll:"Arată toate resursele",t_doxa:"Doxa — Acces la Evanghelie",t_links:"Fiecare resursă + link",t_nothing:"Unde nu s-a găsit nimic",t_countrygap:"Golul pe țări",t_translation:"Aud, fără text",t_translationcountry:"Unde să traducem",t_province:"Accesul la Evanghelie pe provincii — India și China",t_gaps:"Goluri și oportunități",t_bridges:"Punți urbane",t_deaf:"Golul surd",t_resources:"Resurse pe popoare",t_languages:"Limbi pe țări",t_growth:"Acces vs creștere"},pages:{listTitle:"Resurse ale Evangheliei pe limbi",chartsTitle:"Resurse ale Evangheliei — pe limbi",loadingTables:"Se încarcă tabelele…"},list:{noText:"Fără text biblic",hasScripture:"Are Scripturi",allLanguages:"Toate limbile",peopleGroup:"popor",peopleGroups:"popoare",scriptureHere:"Scripturi în această limbă"},columns:{"People group":"Popor",Country:"Țară",Region:"Regiune",Language:"Limbă",Population:"Populație",Religion:"Religie","Gospel access":"Acces la Evanghelie",Resources:"Resurse",Scripture:"Scripturi","Bible video":"Video biblic","Gospel presentation":"Prezentarea Evangheliei",Countries:"Țări","People groups":"Popoare"},charts:{scriptureAny:"Scripturi (oricare)",fullBible:"Biblia completă",newTestament:"Noul Testament",filmAny:"Film (oricare)",nothingInPools:"Nimic găsit în sursele verificate",nothingInPoolsLower:"nimic găsit în sursele verificate",noResourceInPools:"nicio resursă găsită în sursele verificate",aResourceFound:"o resursă găsită",tabCoverage:"Acoperirea resurselor",tabGap:"Cele mai mari lacune",keyScripture:"scripturi",keyFilmStories:"film / povestiri",keyAudioEtc:"audio / prezentare / instruire",unresolvedCode:"cod în afara ISO 639-3 — nerezolvat, nemăsurat",c1Title:"Ce s-a GĂSIT, după tipul resursei",c1Sub:"Pe toate cele {n} limbi din setul de date. Fiecare bară numără LIMBI, nu grupuri etnice.",c1Unit:"limbi în care resursa a fost găsită în sursele verificate",c2Title:"Cele mai mari populații fără nimic găsit",c2Sub:"Cele {n} limbi fără Scripturi și fără film în sursele verificate, ordonate după populația grupurilor care le vorbesc.",c2Unit:"persoane din grupurile a căror limbă PRINCIPALĂ este aceasta — nu vorbitorii limbii",c3Title:"Țări cu cele mai multe limbi neservite",c3Sub:"Cele {n} țări cu cele mai multe limbi pentru care nu s-a găsit nimic. Lungimea barei este fiecare limbă prezentă în acea țară.",c3Unit:"limbi prezente în țară (o limbă transfrontalieră se numără în fiecare)"}},j_={search:"Caută popoare…",hide_filters:"Ascunde filtrele",show_filters:"Arată filtrele",total:"Total",showing:"Se afișează",load_more:"Încarcă mai mult",full_profile:"Profil complet",wagf_region:"Regiune",wagf_block:"Bloc de afinitate",rop1:"Popor",religion:"Religie",exact_filter:"Exact",clear_all:"Șterge tot",loading:"Se încarcă…",no_results:"Niciun popor nu corespunde acestui filtru.",type_to_search:"Scrie pentru a căuta...",load_failed:"Datele despre popoare nu au putut fi încărcate. Este o problemă de conexiune, nu a filtrului.",search_people_or_countries:"Caută popoare sau țări…"},z_={title:{adoption:"Progresul adopției",affinityBlocs:"Blocuri de afinitate",doxaRegions:"Regiuni Doxa",engagement:"Progresul implicării",gospelResources:"Resurse ale Evangheliei",languageFamilies:"Familii de limbi",prayer:"Progresul rugăciunii",upg100List:"Lista mea UPG 100"},header:{collapsed:"Legendă",peopleGroupFallback:"Grup de popoare",default:"Legendă"},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",name:"Nume"},footer:{total:"Total"},sortByUpgs:"Sortează după UUPG",sortByPop:"Sortează după populație",colLabel:{religion:"Religii UUPG",prayer:"Starea rugăciunii",engagement:"Starea implicării",adoption:"Starea adopției",status:"Stare"},titleBar:{legend:"Legendă",peopleGroups:"Popoare",wagfRegions:"Regiuni WAGF",languages:"Limbi"},tabInfo:{upg100Region:"Regiune — sortează listele UPG-100 după zona lumii (Africa, India, Orientul Mijlociu, Surzi, …). Totalurile sunt UUPG-urile și populația însumate din fiecare listă de dedesubt.",upg100Zone:"Liste UPG-100 — fiecare este o listă de rugăciune a grupurilor etnice neatinse dintr-o zonă și este ceea ce harta desenează și colorează. Fiecare listă se tipărește ca propriul pachet.",upg100Group:"Grup etnic — grupurile neatinse dintr-o listă, mai întâi cele cu cea mai mare nevoie de rugăciune. Fiecare punct de pe hartă este unul dintre ele."},a11y:{expandRow:"Extinde {label}",collapseRow:"Restrânge {label}",clearSelection:"Șterge selecția"},export:{poster:"Afiș",packet:"Broșură"},noDataAtThisLevel:"Nu există date la acest nivel",exportButton:"Exportă",exportSelection:"Exportă selecția"},U_={menuComingSoon:"Meniu în curând",pinHint:{tapDot:"Atinge un punct colorat — cineva are încă nevoie de rugăciune"},upg100WallHeading:"Lista mea UPG 100 — Liste de rugăciune și afișe",upg100WallTag:"Mobilizare pentru rugăciune",upg100WallIntro:"Împarte sarcina rugăciunii în grupuri de câte cincizeci și o sută — așa cum Isus a hrănit cei 5.000 (Luca 9:14). Fiecare afiș este o listă de 100 pe care o poți ruga, tipări și pune pe perete — rugându-te pentru ei pe numele poporului lor."},H_={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},K_={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},V_={"%count% people groups in %countries% countries":"%count% popoare în %countries% țări","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% are %count% popoare în %countries% țări. Culoarea fiecărui punct arată câți oameni se roagă pentru acel popor.","1+ People Praying":"1+ persoane se roagă","100+ People Praying":"100+ persoane se roagă",Adopted:"Adoptat","Adoption Progress":"Progresul adopției","All Regions":"Toate regiunile","Alternate Names":"Denumiri alternative","Choose a region":"Alege o regiune","Clear All":"Șterge tot",Countries:"Țări","Countries in this region":"Țările din această regiune",Country:"Țară",Engaged:"Implicat","Engagement Progress":"Progresul implicării","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Fiecare popor neimplicat adoptat de o biserică dedicată rugăciunii, dăruirii și trimiterii","Exact Search":"Căutare exactă","Find unreached people groups by region and country.":"Găsește popoarele neatinse după regiune și țară.","Full Profile":"Profil complet",Goal:"Obiectiv","Hide Filters":"Ascunde filtrele","Hide country posters":"Ascunde posterele țării",Intercessors:"Mijlocitori","Load More":"Încarcă mai multe","Loading results...":"Se încarcă rezultatele…",Map:"Hartă","Mobilize 100+ people praying daily for each DOXA people group":"Mobilizarea a peste 100 de persoane care se roagă zilnic pentru fiecare popor DOXA","No One Praying":"Nimeni nu se roagă","No options found":"Nu s-a găsit nicio opțiune","No poster has been generated for this country yet.":"Pentru această țară nu a fost generat încă niciun poster.","No unengaged people groups by 2033":"Niciun popor neimplicat până în 2033","Not Adopted":"Neadoptat",Other:"Altele","Page Not Found":"Pagina nu a fost găsită","People Group":"Popor","People Groups":"Popoare","People committed to praying":"Persoane dedicate rugăciunii","Pick a region above, or click any dot to open that people group's country.":"Alege o regiune mai sus sau dă clic pe orice punct pentru a deschide țara acelui grup etnic.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Alege o regiune sau o țară din fila Lista regiunilor pentru a restrânge acest panou.",Population:"Populație","Prayer Coverage":"Acoperirea prin rugăciune","Prayer coverage progress":"Progresul acoperirii prin rugăciune","Region Dashboards":"Panouri ale regiunilor","Region dashboard":"Panoul regiunii",Regions:"Regiuni","Regions List":"Lista regiunilor",Religion:"Religie","Search names, country/continent, religions...":"Caută nume, țară/continent, religii…","See %region% dashboard":"Vezi panoul %region%","See All":"Vezi tot",Select:"Selectează","Select View":"Selectează vizualizarea","Show Filters":"Arată filtrele","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"În %country% există %count% popoare. Verifică pe hartă și popoarele de la granițele acestei țări.",Total:"Total","Type to search...":"Scrie pentru a căuta…","Unengaged people groups":"Popoare neimplicate","View country posters":"Vezi posterele țării",Views:"Vizualizări","WAGF Block":"Bloc WAGF","WAGF Region":"Regiune WAGF","people groups adopted":"popoare adoptate","people groups engaged":"popoare implicate","Outside this region":"În afara acestei regiuni",Pray:"Roagă-te","Loading region dashboards…":"Se încarcă panourile regiunilor…","No regions found.":"Nu au fost găsite regiuni.","Region data could not be loaded. This is a connection problem, not a filter.":"Datele regiunilor nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","People groups could not be loaded. This is a connection problem, not a filter.":"Grupurile de popoare nu au putut fi încărcate. Este o problemă de conexiune, nu un filtru.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Harta nu a putut porni. Este o problemă de token al hărții sau de conexiune, nu un filtru — cifrele de mai sus nu sunt afectate."},W_={placeholder:"Popor, loc, limbă, religie",placeholderNoPlaces:"Popor, limbă, religie (căutarea locurilor necesită un token Mapbox)",labels:{people:"Popor:",place:"Loc:",language:"Limbă:",religion:"Religie:"},sections:{within:"În {selection}",allData:"Toate datele DOXA"},kinds:{people:"Popor + țară",peopleGroup:"Popor",bloc:"Bloc de afinitate",cluster:"Grup de popoare",country:"Țară",region:"Regiune",family:"Familie de limbi",languageKind:"Limbă",dialect:"Dialect",religionKind:"Religie"},upg100Placeholder:"Caută popor, listă UPG-100 sau regiune…"},q_={prayer:"Rugăciune",adoption:"Adopție",engagement:"Implicare","affinity-blocks":"Popoare",regions:"Regiuni",countries:"Țări","language-families":"Limbi",religion:"Religii",family:"Familie de limbi",language:"Limbă",dialect:"Dialect/Variantă",bloc:"Bloc de afinitate",cluster:"Grup",group:"Popor",pgic:"Popor în țară",region:"Regiune WAGF",block:"Bloc WAGF",country:"Țară",upg100Region:"Regiune",upg100Zone:"Liste UPG-100",upg100Group:"Grup etnic",selectView:"Alege vizualizarea",views:"Vizualizări",prayerResources:"Resurse de rugăciune",map:"Hartă",countryPosters:"Afișe pe țări"},Y_={title:"Все народы",locations:"{n} мест (народ × страна)",doxa:"Народы DOXA",frontier:"Рубежные — ничего не начато",unreached:"Недостигнутые — работа начинается",reached:"Достигнутые — церковь есть",hint:"Нажмите на строку, чтобы увидеть все · ещё раз — чтобы показать всё",loading:"Загрузка всех народов…",loadError:"Не удалось загрузить карту.",pray:"Молиться за них →",population:"нас. {n}"},Z_={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду",searchPeopleGroups:"Поиск народов",resetAllFilters:"Сбросить все фильтры и поиск",selectAllRows:"Выбрать все строки",deselectAllRows:"Снять выделение со всех строк"},X_={prayForThem:"Молитесь о них",adoptThem:"Усыновите их",moreInfo:"Подробнее",zoomIn:"Приблизить",zoomOut:"Отдалить",switchToLightMode:"Переключить на светлый режим",switchToDarkMode:"Переключить на тёмный режим",resetView:"Сбросить вид",toggleFullscreen:"Полноэкранный режим",aboutThisMap:"Об этой карте",closeMenu:"Закрыть меню",reloadMap:"Перезагрузить карту",showClusters:"Показать кластеры",clusterSettings:"Настройки кластеров",startAutoFly:"Начать авто-полёт",stopFlight:"Остановить полёт",speedLabel:"Скорость:",speedOption:{slow:"Медленно",normal:"Нормально",fast:"Быстро"},shareEmbed:"Поделиться и встроить",posterMap:"Карта плаката",prayerList:"Молитвенный список",cardDeck:"Набор карточек",printOptions:"Параметры печати",showOnMap:"Показать на карте",close:"Закрыть",showOnMapAria:"Показать {label} на карте",cardStockAria:"Размер молитвенной карточки",previewPrintPoster:"Просмотр и печать плаката {label}",share:"Поделиться",shareSteps:["Разместите эту карту на своём сайте","Составьте список сайтов вашего города","Научите их тоже размещать её","Научите их учить других размещать её","Умножим карты повсюду для Иисуса!"],clearSelection:"Снять выделение",noOptions:"Ничего не найдено",renderingLocal:"Изображение типографского качества создаётся в вашем браузере — ничего не загружается на сервер.",postersPerRow:"Плакатов в ряду"},J_={research_controls:"Инструменты исследования",clustering:"Кластеризация",filters:"Фильтры",pin_dim:"Прозрачность точек",export_poster:"Экспорт постера…",reload_data:"Обновить данные",off:"Выкл.",native:"Встроенная",mst:"MST",network:"Сеть",off_desc:"Показывать каждую точку отдельно",native_desc:"Круговые кластеры Mapbox (быстрее всего)",mst_desc:"Сети родства по минимальному остовному дереву",network_desc:"Линии до ближайшего соседа",search_languages:"Поиск языков…",search_religions:"Поиск религий…",reset_all:"Сбросить всё",no_languages:"Языки ещё не загружены",no_religions:"Религии ещё не загружены",unadopted:"Не усыновлён",min:"мин",max:"макс",adopted:"Ответственность взята",adoption:"Усыновление",engaged:"Вовлечён",engagement:"Вовлечённость",unengaged:"Нуждается в вовлечённости",language:"Язык",religion:"Религия",population:"Население",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",close:"Закрыть",clear:"Очистить",map_controls:"Элементы управления картой"},Q_={bloc:"Блок родства",gospel_access:"Доступ к Евангелию",people:"Народы",people_name:"Народ (название)",praying:"Молятся",religion_family:"Семья религий",search_language:"Поиск языка",search_people:"Поиск народа",search_place:"Поиск места",search_religion:"Поиск религии",upgs_in_scope:"UPG в выборке",countries_touched:"затронутых стран",unreached:"неохваченные",sum_population:"Σ население",sum_praying:"Σ молящихся",charts:"Графики",table:"Таблица",cluster:"Кластер",country:"Страна",engagement:"Вовлечённость",language:"Язык",language_family:"Языковая семья",people_group:"Народ",population:"Население",prayer:"Молитва",region:"Регион",religion:"Религия",status:"Статус",adopted:"Ответственность взята",filters:"Фильтры",gospel_resources:"Евангельские ресурсы",map:"Карта",search_placeholder:"Поиск народов, мест, языков, религий…",any:"Любой",active_count:"{n} активно",prayer_status:"Статус молитвы",map_controls:"Элементы управления картой",close:"Закрыть",clear:"Очистить",dashboard_title:"Обзорная исследовательская панель",align_dashboard:"Выровнять панель",align_dashboard_tip:"Вернуть расположение панели к виду по умолчанию",selected:"Выбрано",world:"Мир",vertical_legend:"Вертикальная легенда",groups_in_scope:"народов в выборке",filter_by:"Фильтровать по",remove_filter:"Убрать фильтр",groups:"народов",expand:"Развернуть",collapse:"Свернуть",place:"Место",export_csv:"Экспорт CSV",detail:"Подробности",detail_empty:"Выберите народ, чтобы увидеть подробности",heartbeat_zone:"зона сердцебиения",top_countries:"Основные страны",select_all:"Выбрать все",expand_table:"Развернуть таблицу",collapse_table:"Свернуть таблицу — увеличить карту",group:"народ",deselect_all:"Снять выделение"},e$={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},t$={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"Пояснительные примечания ниже — на английском языке."},mode:{gap:"Пробел",coverage:"Найденные ресурсы"},search:{placeholder:"Найдите народ, язык или код ISO",clear:"Очистить поиск",none:"Ничего не найдено по этому названию, языку или коду.",placeholderShort:"Народ, язык или код ISO"},legend:{title:"Недостигнутые народы, для которых не найдено ни одного ресурса",band60:"60%+ без единого ресурса",band30:"30–59%",bandSome:"часть народов",bandAll:"у всех народов что-то есть",tier2:"Писание и фильм",tier1:"что-то найдено",tier0:"ничего не найдено",hnr:"могут услышать, текста нет",showAll:"Показать все народы",titleCoverage:"Недостигнутые народы, для которых найдены ресурсы",cov80:"у 80%+ что-то есть",cov50:"50–79%",cov1:"1–49%",cov0:"ни для кого ничего",tallyEach:"Каждая",tallyIs:"— это ОДИН народ,",tallyOf:"из них",tallyLink:"со ссылкой",doxa0:"у всех что-то есть",doxa1:"1–4 без ресурсов",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 достигнуты",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"Народы Doxa на этой карте",notPlaced:"в списке, пока без координат",outOfScope:"нет народов Doxa — не окрашено"},tabs:{groups:"Крупнейшие народы",countries:"По странам",regions:"По регионам",noprayer:"Никто не молится",hnr:"Слышат, но не читают"},stat:{language:"Язык",population:"Численность",countries:"Страны",peopleGroups:"Народы",noResource:"Ресурсов не найдено",peopleAffected:"Затронутые люди",haveScripture:"Есть Писание",haveFilm:"Есть фильм",haveAudio:"Есть аудио-Писание",signLanguages:"Жестовые языки",growingUnreached:"Растущие и недостигнутые",deathsDay:"Оценка смертей в день"},sheet:{ownLanguage:"На их родном языке",close:"Закрыть",loading:"Загрузка ресурсов…",pray:"Молитесь о",everyResource:"Все ресурсы на",alsoSpeak:"Также говорят на"},res:{scripture:"Писание",film:"Фильм",audio:"Аудио",bibleVideo:"Библейское видео",bibleStories:"Open Bible Stories",gospelAudio:"Аудио с Евангелием",gospelPresentation:"Изложение Евангелия",scriptureEarth:"Scripture Earth",training:"Обучение ученичеству",jesusFilm:"Фильм «Иисус»",audioScripture:"Аудио с Писанием",bibleStoriesPlain:"Библейские истории"},state:{noneFound:"ничего не найдено",noneAtFcbh:"нет в FCBH",noneAtGrn:"нет в GRN",notInZume:"нет среди 54 языков Zume",linkChecked:"ссылка проверена",unchecked:"не проверено",linkDead:"ссылка не работает",wrongLanguage:"не тот язык",varietyNotStated:"(вариант не указан)",inLanguage:"на"},guide:{dotVsCountry:"Точка — это ОДИН народ Doxa и его родной язык; цвет страны — это ЧИСЛО таких народов.",noneFoundShort:"«Ничего не найдено» значит: нет в проверенных источниках — но не доказательство отсутствия.",tapCountry:"Нажмите на страну, чтобы увидеть ресурсы по каждому народу."},tables:{title:"Ресурсы Евангелия — данные",showing:"Показано",of:"из",for:"для",filteredTo:"Фильтр:",showAll:"Показать все ресурсы",t_doxa:"Doxa — доступ к Евангелию",t_links:"Каждый ресурс и ссылка",t_nothing:"Где ничего не найдено",t_countrygap:"Пробел по странам",t_translation:"Слышат, но не читают",t_translationcountry:"Где переводить",t_province:"Доступ к Евангелию по провинциям — Индия и Китай",t_gaps:"Пробелы и возможности",t_bridges:"Городские мосты",t_deaf:"Пробел у глухих",t_resources:"Ресурсы по народам",t_languages:"Языки по странам",t_growth:"Доступ и рост населения"},pages:{listTitle:"Ресурсы Евангелия по языкам",chartsTitle:"Ресурсы Евангелия — по языкам",loadingTables:"Загрузка таблиц ресурсов…"},list:{noText:"Нет текста Писания",hasScripture:"Есть Писание",allLanguages:"Все языки",peopleGroup:"народ",peopleGroups:"народов",scriptureHere:"Писание на этом языке"},columns:{"People group":"Народ",Country:"Страна",Region:"Регион",Language:"Язык",Population:"Численность",Religion:"Религия","Gospel access":"Доступ к Евангелию",Resources:"Ресурсы",Scripture:"Писание","Bible video":"Библейское видео","Gospel presentation":"Изложение Евангелия",Countries:"Страны","People groups":"Народы"},charts:{scriptureAny:"Писание (любое)",fullBible:"Полная Библия",newTestament:"Новый Завет",filmAny:"Фильм (любой)",nothingInPools:"Ничего не найдено в проверенных источниках",nothingInPoolsLower:"ничего не найдено в проверенных источниках",noResourceInPools:"ни одного ресурса не найдено в проверенных источниках",aResourceFound:"ресурс найден",tabCoverage:"Охват ресурсами",tabGap:"Наибольшие пробелы",keyScripture:"писание",keyFilmStories:"фильм / истории",keyAudioEtc:"аудио / презентация / обучение",unresolvedCode:"код вне ISO 639-3 — не определён, не измерен",c1Title:"Что НАЙДЕНО, по типу ресурса",c1Sub:"По всем {n} языкам в наборе данных. Каждый столбец считает ЯЗЫКИ, а не народы.",c1Unit:"языки, в которых ресурс найден в проверенных источниках",c2Title:"Самые многочисленные народы, для которых ничего не найдено",c2Sub:"{n} языков, для которых в проверенных источниках нет ни Писания, ни фильма, упорядоченные по численности говорящих на них народов.",c2Unit:"люди в народах, для которых это ОСНОВНОЙ язык, — не все говорящие на нём",c3Title:"Страны с наибольшим числом неохваченных языков",c3Sub:"{n} стран с наибольшим числом языков, для которых ничего не найдено. Длина столбца — каждый язык, присутствующий в этой стране.",c3Unit:"языки, присутствующие в стране (трансграничный язык считается в каждой)"}},o$={search:"Поиск народов…",hide_filters:"Скрыть фильтры",show_filters:"Показать фильтры",total:"Всего",showing:"Показано",load_more:"Показать ещё",full_profile:"Полный профиль",wagf_region:"Регион",wagf_block:"Блок родства",rop1:"Народ",religion:"Религия",exact_filter:"Точное совпадение",clear_all:"Очистить всё",loading:"Загрузка…",no_results:"Нет народов, соответствующих этому фильтру.",type_to_search:"Введите для поиска...",load_failed:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра.",search_people_or_countries:"Поиск народов или стран…"},n$={title:{adoption:"Прогресс усыновления",affinityBlocs:"Блоки родства",doxaRegions:"Регионы Doxa",engagement:"Прогресс вовлечённости",gospelResources:"Евангельские ресурсы",languageFamilies:"Языковые семьи",prayer:"Прогресс молитвы",upg100List:"Мой список UPG 100"},header:{collapsed:"Условные обозначения",peopleGroupFallback:"Народная группа",default:"Легенда"},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:"Языки"},tabInfo:{upg100Region:"Регион — сортирует списки UPG-100 по частям света (Африка, Индия, Ближний Восток, Глухие, …). Числа — это UUPG и население, просуммированные по всем спискам внутри.",upg100Zone:"Списки UPG-100 — каждый представляет собой молитвенный список непросвещённых народов области и именно он отображается и раскрашивается на карте. Каждый список печатается отдельным буклетом.",upg100Group:"Народ — отдельные непросвещённые народы внутри списка, сначала с наибольшей нуждой в молитве. Каждая точка на карте — один из них."},a11y:{expandRow:"Развернуть {label}",collapseRow:"Свернуть {label}",clearSelection:"Снять выделение"},export:{poster:"Плакат",packet:"Буклет"},noDataAtThisLevel:"На этом уровне нет данных",exportButton:"Экспорт",exportSelection:"Экспортировать выбранное"},a$={menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntro:"Разделите молитвенный труд на группы по пятьдесят и по сто — так Иисус накормил 5000 (Луки 9:14). Каждый плакат — это список из 100, о котором можно молиться, распечатать и повесить на стену, молясь о них по имени их народа."},s$={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},r$={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},i$={"%count% people groups in %countries% countries":"%count% народов в %countries% странах","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"В регионе %region% — %count% групп людей в %countries% странах. Цвет каждой точки показывает, сколько человек молится за эту группу людей.","1+ People Praying":"1+ человек молится","100+ People Praying":"100+ человек молятся",Adopted:"Ответственность взята","Adoption Progress":"Прогресс принятия ответственности","All Regions":"Все регионы","Alternate Names":"Альтернативные названия","Choose a region":"Выберите регион","Clear All":"Очистить всё",Countries:"Страны","Countries in this region":"Страны этого региона",Country:"Страна",Engaged:"Вовлечён","Engagement Progress":"Прогресс вовлечения","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"Каждая незадействованная народность принята церковью, приверженной молитве, пожертвованиям и посылке миссионеров","Exact Search":"Точный поиск","Find unreached people groups by region and country.":"Найдите недостигнутые группы людей по регионам и странам.","Full Profile":"Полный профиль",Goal:"Цель","Hide Filters":"Скрыть фильтры","Hide country posters":"Скрыть плакаты страны",Intercessors:"Ходатаи","Load More":"Загрузить ещё","Loading results...":"Загрузка результатов...",Map:"Карта","Mobilize 100+ people praying daily for each DOXA people group":"Мобилизуйте 100+ человек для ежедневной молитвы за каждую народность DOXA","No One Praying":"Никто не молится","No options found":"Вариантов не найдено","No poster has been generated for this country yet.":"Для этой страны плакат ещё не создан.","No unengaged people groups by 2033":"К 2033 году не останется незадействованных народов","Not Adopted":"Не принято",Other:"Другое","Page Not Found":"Страница не найдена","People Group":"Группа людей","People Groups":"Народы","People committed to praying":"Люди, посвятившие себя молитве","Pick a region above, or click any dot to open that people group's country.":"Выберите регион выше или нажмите на любую точку, чтобы открыть страну этой группы народа.","Pick a region or a country on the Regions List tab to narrow this dashboard.":"Выберите регион или страну на вкладке «Список регионов», чтобы сузить эту панель.",Population:"Население","Prayer Coverage":"Молитвенный охват","Prayer coverage progress":"Прогресс молитвенного покрытия","Region Dashboards":"Панели регионов","Region dashboard":"Панель региона",Regions:"Регионы","Regions List":"Список регионов",Religion:"Религия","Search names, country/continent, religions...":"Поиск по названиям, странам/континентам, религиям...","See %region% dashboard":"Открыть панель: %region%","See All":"Смотреть все",Select:"Выбрать","Select View":"Выберите вид","Show Filters":"Показать фильтры","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"Страна %country% насчитывает %count% групп людей. Проверьте также на карте группы людей, расположенные вдоль границ этой страны.",Total:"Итого","Type to search...":"Введите текст для поиска...","Unengaged people groups":"Невовлечённые народы","View country posters":"Показать плакаты страны",Views:"Виды","WAGF Block":"Блок WAGF","WAGF Region":"Регион WAGF","people groups adopted":"народов, за которые взята ответственность","people groups engaged":"вовлечённые народы","Outside this region":"За пределами этого региона",Pray:"Молиться","Loading region dashboards…":"Загрузка панелей по регионам…","No regions found.":"Регионы не найдены.","Region data could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить данные по регионам. Это проблема соединения, а не фильтра.","People groups could not be loaded. This is a connection problem, not a filter.":"Не удалось загрузить народы. Это проблема соединения, а не фильтра.","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},l$={placeholder:"Народ, место, язык, религия",placeholderNoPlaces:"Народ, язык, религия (для поиска мест нужен токен Mapbox)",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"},upg100Placeholder:"Поиск народа, списка UPG-100 или региона…"},c$={prayer:"Молитва",adoption:"Усыновление",engagement:"Вовлечённость","affinity-blocks":"Народы",regions:"Регионы",countries:"Страны","language-families":"Языки",religion:"Религии",family:"Языковая семья",language:"Язык",dialect:"Диалект/вариант",bloc:"Блок родства",cluster:"Кластер",group:"Народ",pgic:"Народ в стране",region:"Регион WAGF",block:"Блок WAGF",country:"Страна",upg100Region:"Регион",upg100Zone:"Списки UPG-100",upg100Group:"Народ",selectView:"Выбрать вид",views:"Виды",prayerResources:"Молитвенные ресурсы",map:"Карта",countryPosters:"Плакаты по странам"},u$={title:"所有族群",locations:"{n} 个族群–国家位置",doxa:"DOXA 族群",frontier:"前沿族群 — 尚未开始",unreached:"未得之民 — 事工起步",reached:"已得之民 — 教会已在",hint:"点击一行查看全部 · 再次点击显示所有",loading:"正在加载所有族群…",loadError:"无法加载地图。",pray:"为他们祷告 →",population:"人口 {n}"},p$={backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例",searchPeopleGroups:"搜索民族",resetAllFilters:"重置所有筛选和搜索",selectAllRows:"选择所有行",deselectAllRows:"取消选择所有行"},d$={prayForThem:"为他们祷告",adoptThem:"认领他们",moreInfo:"更多信息",zoomIn:"放大",zoomOut:"缩小",switchToLightMode:"切换至浅色模式",switchToDarkMode:"切换至深色模式",resetView:"重置视图",toggleFullscreen:"切换全屏",aboutThisMap:"关于此地图",closeMenu:"关闭菜单",reloadMap:"重新加载地图",showClusters:"显示聚类",clusterSettings:"聚类设置",startAutoFly:"开始自动飞行",stopFlight:"停止飞行",speedLabel:"速度:",speedOption:{slow:"慢",normal:"正常",fast:"快"},shareEmbed:"分享与嵌入",posterMap:"海报地图",prayerList:"禱告名單",cardDeck:"禱告卡組",printOptions:"列印選項",showOnMap:"在地圖上顯示",close:"關閉",showOnMapAria:"在地圖上顯示 {label}",cardStockAria:"祷告卡片尺寸",previewPrintPoster:"预览并打印 {label} 海报",share:"分享",shareSteps:["把這張地圖嵌入你的網站","列出你城市裡的網站","教他們也嵌入這張地圖","教他們去教別人嵌入","為耶穌讓地圖遍地繁增!"],clearSelection:"清除选择",noOptions:"未找到选项",renderingLocal:"正在您的浏览器中生成可打印质量的图片——不会上传任何内容。",postersPerRow:"每行海报数"},g$={research_controls:"研究控件",clustering:"聚类",filters:"筛选",pin_dim:"圆点淡化",export_poster:"导出海报…",reload_data:"重新加载数据",off:"关闭",native:"原生",mst:"MST",network:"网络",off_desc:"逐个显示每个圆点",native_desc:"Mapbox 圆形聚类(最快)",mst_desc:"最小生成树亲缘网络",network_desc:"最近邻连接线",search_languages:"搜索语言…",search_religions:"搜索宗教…",reset_all:"全部重置",no_languages:"尚未加载语言",no_religions:"尚未加载宗教",unadopted:"未认领",min:"最小",max:"最大",adopted:"已认领",adoption:"认领",engaged:"已参与",engagement:"参与",unengaged:"需要参与",language:"语言",religion:"宗教",population:"人口",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",close:"关闭",clear:"清除",map_controls:"地图控件"},f$={bloc:"亲缘板块",gospel_access:"福音可及性",people:"民族",people_name:"民族(名称)",praying:"正在代祷",religion_family:"宗教族系",search_language:"搜索语言",search_people:"搜索民族",search_place:"搜索地点",search_religion:"搜索宗教",upgs_in_scope:"范围内的 UPG",countries_touched:"涉及国家",unreached:"未得之民",sum_population:"Σ 人口",sum_praying:"Σ 代祷",charts:"图表",table:"表格",cluster:"民族群",country:"國家",engagement:"参与",language:"语言",language_family:"语系",people_group:"民族",population:"人口",prayer:"祷告",region:"区域",religion:"宗教",status:"状态",adopted:"已认领",filters:"筛选",gospel_resources:"福音资源",map:"地图",search_placeholder:"搜索民族、地点、语言、宗教…",any:"全部",active_count:"{n} 项启用",prayer_status:"代祷状态",map_controls:"地图控件",close:"关闭",clear:"清除",dashboard_title:"全局研究仪表板",align_dashboard:"对齐仪表板",align_dashboard_tip:"将仪表板布局恢复为默认对齐",selected:"已选择",world:"世界",vertical_legend:"垂直图例",groups_in_scope:"个民族在范围内",filter_by:"筛选",remove_filter:"移除筛选",groups:"个民族",expand:"展开",collapse:"收起",place:"地点",export_csv:"导出 CSV",detail:"详情",detail_empty:"选择一个民族以查看详情",heartbeat_zone:"心跳区",top_countries:"主要国家",select_all:"全选",expand_table:"展开表格",collapse_table:"收起表格 — 放大地图",group:"个民族",deselect_all:"取消全选"},h$={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},m$={_note:"SHORT UI LABELS ONLY for the gospel-resources bundle. The explanatory prose on those surfaces stays in English on purpose and is NOT in this file; prose.english is the one translated line that says so.",prose:{english:"以下说明性文字为英文。"},mode:{gap:"缺口",coverage:"已找到的资源"},search:{placeholder:"搜索族群、语言或 ISO 代码",clear:"清除搜索",none:"没有符合该名称、语言或代码的结果。",placeholderShort:"族群、语言或 ISO 代码"},legend:{title:"尚未接触且未找到任何福音资源的族群",band60:"60% 以上一无所有",band30:"30–59%",bandSome:"部分族群",bandAll:"所有族群都有一些",tier2:"圣经与影片",tier1:"找到部分资源",tier0:"一无所获",hnr:"能听,但没有文字",showAll:"显示所有族群",titleCoverage:"尚未接触但已找到部分福音资源的族群",cov80:"80% 以上有资源",cov50:"50–79%",cov1:"1–49%",cov0:"无人拥有",tallyEach:"每个",tallyIs:"代表一个族群 —",tallyOf:"个族群中,",tallyLink:"个有链接",doxa0:"全部都有资源",doxa1:"1–4 个一无所有",doxa5:"5–14",doxa15:"15–39",doxa40:"40+",cvd1:"1–4 个已触及",cvd5:"5–14",cvd15:"15–39",cvd40:"40+",onMap:"本地图上的 Doxa 族群",notPlaced:"在名单上,尚未定位",outOfScope:"没有 Doxa 族群 — 不着色"},tabs:{groups:"最大的族群",countries:"按国家",regions:"按地区",noprayer:"无人代祷",hnr:"能听,无文字"},stat:{language:"语言",population:"人口",countries:"国家",peopleGroups:"族群",noResource:"未找到资源",peopleAffected:"受影响人数",haveScripture:"有圣经",haveFilm:"有影片",haveAudio:"有有声圣经",signLanguages:"手语",growingUnreached:"增长中且未接触",deathsDay:"每日估计死亡人数"},sheet:{ownLanguage:"以他们自己的语言",close:"关闭",loading:"正在加载资源…",pray:"为其代祷:",everyResource:"所有资源 —",alsoSpeak:"同样使用"},res:{scripture:"圣经",film:"影片",audio:"音频",bibleVideo:"圣经视频",bibleStories:"Open Bible Stories",gospelAudio:"福音音频",gospelPresentation:"福音简介",scriptureEarth:"Scripture Earth",training:"门徒训练",jesusFilm:"《耶稣传》",audioScripture:"音频圣经",bibleStoriesPlain:"圣经故事"},state:{noneFound:"一无所获",noneAtFcbh:"FCBH 没有",noneAtGrn:"GRN 没有",notInZume:"不在 Zume 的 54 种语言内",linkChecked:"链接已核实",unchecked:"未核实",linkDead:"链接失效",wrongLanguage:"语言不符",varietyNotStated:"(未注明变体)",inLanguage:"—"},guide:{dotVsCountry:"每个圆点代表 Doxa 的一个族群及其语言;国家的颜色代表这类族群的数量。",noneFoundShort:"“一无所获”指未见于本次查询的资源库,并不证明其不存在。",tapCountry:"点按国家,逐个族群查看实际资源。"},tables:{title:"福音资源 — 数据",showing:"显示",of:"/共",for:"—",filteredTo:"筛选:",showAll:"显示全部资源",t_doxa:"Doxa — 福音可及性",t_links:"每项资源与链接",t_nothing:"一无所获之处",t_countrygap:"各国缺口",t_translation:"能听,无文字",t_translationcountry:"何处需要翻译",t_province:"按省份划分的福音可及性 — 印度和中国",t_gaps:"缺口与机会",t_bridges:"城市桥梁",t_deaf:"聋人缺口",t_resources:"按族群列出资源",t_languages:"各国语言",t_growth:"可及性与人口增长"},pages:{listTitle:"按语言列出的福音资源",chartsTitle:"福音资源 — 按语言",loadingTables:"正在加载资源表…"},list:{noText:"没有文字圣经",hasScripture:"有圣经",allLanguages:"全部语言",peopleGroup:"个族群",peopleGroups:"个族群",scriptureHere:"本语言的圣经"},columns:{"People group":"族群",Country:"国家",Region:"地区",Language:"语言",Population:"人口",Religion:"宗教","Gospel access":"福音可及性",Resources:"资源",Scripture:"圣经","Bible video":"圣经视频","Gospel presentation":"福音简介",Countries:"国家","People groups":"族群"},charts:{scriptureAny:"圣经(任意)",fullBible:"全本圣经",newTestament:"新约",filmAny:"影片(任意)",nothingInPools:"在已检索的资源库中一无所获",nothingInPoolsLower:"在已检索的资源库中一无所获",noResourceInPools:"在已检索的资源库中未找到资源",aResourceFound:"找到资源",tabCoverage:"资源覆盖",tabGap:"最大缺口",keyScripture:"圣经",keyFilmStories:"影片 / 故事",keyAudioEtc:"音频 / 简介 / 训练",unresolvedCode:"ISO 639-3 之外的代码 — 未确定,未测量",c1Title:"按资源类型统计已找到的内容",c1Sub:"涵盖数据中全部 {n} 种语言。每个条形统计的是语言,不是族群。",c1Unit:"在已检索的资源库中找到该资源的语言",c2Title:"一无所获的最大人口",c2Sub:"在已检索的资源库中既无圣经也无影片的 {n} 种语言,按使用这些语言的族群人口排序。",c2Unit:"以该语言为主要语言的族群人口 — 不是该语言的全部使用者",c3Title:"未得服事语言最多的国家",c3Sub:"一无所获语言最多的 {n} 个国家。条形长度为该国存在的全部语言。",c3Unit:"该国存在的语言(跨境语言在每个国家各计一次)"}},b$={search:"搜索民族…",hide_filters:"隐藏筛选",show_filters:"显示筛选",total:"总计",showing:"显示",load_more:"加载更多",full_profile:"完整档案",wagf_region:"区域",wagf_block:"亲缘板块",rop1:"民族",religion:"宗教",exact_filter:"精确",clear_all:"全部清除",loading:"加载中…",no_results:"没有符合此筛选条件的民族。",type_to_search:"输入以搜索...",load_failed:"无法加载民族数据。这是连接问题,而不是筛选问题。",search_people_or_countries:"搜索民族或国家…"},y$={title:{adoption:"认领进度",affinityBlocs:"亲缘板块",doxaRegions:"Doxa 区域",engagement:"参与进度",gospelResources:"福音资源",languageFamilies:"语系",prayer:"祷告进度",upg100List:"我的 UPG 100 名单"},header:{collapsed:"图例",peopleGroupFallback:"民族群体",default:"圖例"},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:"人口",name:"名称"},footer:{total:"总计"},sortByUpgs:"按 UUPG 排序",sortByPop:"按人口排序",colLabel:{religion:"UUPG 宗教",prayer:"祷告状态",engagement:"参与状态",adoption:"认领状态",status:"状态"},titleBar:{legend:"图例",peopleGroups:"民族",wagfRegions:"WAGF 区域",languages:"语言"},tabInfo:{upg100Region:"区域 — 按世界区域排列 UPG-100 名单(非洲、印度、中东、聋人……)。数字是其下每份名单的 UUPG 与人口总和。",upg100Zone:"UPG-100 名单 — 每一份都是某地区未得之民的祷告名单,也是地图所绘制和上色的内容。每份名单印成独立的祷告册。",upg100Group:"族群 — 名单内各个未得之民群体,祷告需要最大的排在前面。地图上每个点就是其中之一。"},a11y:{expandRow:"展开{label}",collapseRow:"折叠{label}",clearSelection:"清除选择"},export:{poster:"海报",packet:"祷告册"},noDataAtThisLevel:"此层级没有数据",exportButton:"导出",exportSelection:"导出所选内容"},_$={menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名單 — 禱告名單與海報",upg100WallTag:"禱告動員",upg100WallIntro:"將禱告的工作分成五十人、一百人一組 — 就像耶穌餵飽五千人那樣(路加福音 9:14)。每一張海報都是一份 100 人名單,你可以為他們禱告、列印出來、貼在牆上 — 按著他們族群的名字為他們禱告。"},$$={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},v$={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},w$={"%count% people groups in %countries% countries":"%countries% 个国家中的 %count% 个民族","%region% has %count% people groups across %countries% countries. Each pin is coloured by how many people are praying for that people group.":"%region% 在 %countries% 个国家中有 %count% 个民族。每个标记的颜色表示有多少人在为该民族祷告。","1+ People Praying":"1 人以上祷告","100+ People Praying":"100 人以上祷告",Adopted:"已认领","Adoption Progress":"认领进度","All Regions":"所有区域","Alternate Names":"其他名称","Choose a region":"选择区域","Clear All":"全部清除",Countries:"国家","Countries in this region":"本区域的国家",Country:"国家",Engaged:"已参与","Engagement Progress":"参与进度","Every unengaged people group adopted by a church committed to prayer, giving, and sending":"每一个尚无人参与的民族,都由一间委身于祷告、奉献与差派的教会认领","Exact Search":"精确搜索","Find unreached people groups by region and country.":"按区域和国家查找未得之民。","Full Profile":"完整档案",Goal:"目标","Hide Filters":"隐藏筛选","Hide country posters":"隐藏国家海报",Intercessors:"代祷者","Load More":"加载更多","Loading results...":"正在加载结果…",Map:"地图","Mobilize 100+ people praying daily for each DOXA people group":"为每个 DOXA 民族动员 100 人以上每日祷告","No One Praying":"无人祷告","No options found":"未找到选项","No poster has been generated for this country yet.":"尚未为该国家生成海报。","No unengaged people groups by 2033":"到 2033 年不再有无人参与的民族","Not Adopted":"未认领",Other:"其他","Page Not Found":"未找到页面","People Group":"民族","People Groups":"民族","People committed to praying":"委身祷告的人数","Pick a region above, or click any dot to open that people group's country.":"在上方选择一个区域,或点击任意圆点以打开该民族所在的国家。","Pick a region or a country on the Regions List tab to narrow this dashboard.":"在“区域列表”标签中选择一个区域或国家,以缩小此仪表板的范围。",Population:"人口","Prayer Coverage":"祷告覆盖","Prayer coverage progress":"祷告覆盖进度","Region Dashboards":"区域仪表板","Region dashboard":"区域仪表板",Regions:"区域","Regions List":"区域列表",Religion:"宗教","Search names, country/continent, religions...":"搜索名称、国家/大洲、宗教…","See %region% dashboard":"查看 %region% 仪表板","See All":"查看全部",Select:"选择","Select View":"选择视图","Show Filters":"显示筛选","There are %count% people groups in %country%. Check the map for the people groups on the border of this country as well.":"%country% 有 %count% 个民族。也请在地图上查看该国边境地区的民族。",Total:"总计","Type to search...":"输入以搜索…","Unengaged people groups":"无人参与的民族","View country posters":"查看国家海报",Views:"视图","WAGF Block":"WAGF 板块","WAGF Region":"WAGF 区域","people groups adopted":"已认领的民族","people groups engaged":"已参与的民族","Outside this region":"在此区域之外",Pray:"祷告","Loading region dashboards…":"正在加载区域面板…","No regions found.":"未找到区域。","Region data could not be loaded. This is a connection problem, not a filter.":"无法加载区域数据。这是连接问题,不是筛选问题。","People groups could not be loaded. This is a connection problem, not a filter.":"无法加载民族群体。这是连接问题,不是筛选问题。","The map could not start. This is a map-token or connection problem, not a filter — the figures above are unaffected.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},k$={placeholder:"民族、地点、语言、宗教",placeholderNoPlaces:"民族、语言、宗教(地点搜索需要 Mapbox 令牌)",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"},upg100Placeholder:"搜索民族、UPG-100 名单或区域…"},x$={prayer:"祷告",adoption:"认领",engagement:"参与","affinity-blocks":"民族",regions:"区域",countries:"国家","language-families":"语言",religion:"宗教",family:"语系",language:"语言",dialect:"方言/变体",bloc:"亲缘板块",cluster:"民族群",group:"民族",pgic:"国内民族",region:"WAGF 区域",block:"WAGF 板块",country:"国家",upg100Region:"区域",upg100Zone:"UPG-100 名单",upg100Group:"族群",selectView:"選擇檢視",views:"檢視",prayerResources:"禱告資源",map:"地圖",countryPosters:"国家海报"};/*! * shared v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function u$(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Xs=typeof window<"u",tn=(e,t=!1)=>t?Symbol.for(e):Symbol(e),p$=(e,t,o)=>d$({l:e,k:t,s:o}),d$=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),_t=e=>typeof e=="number"&&isFinite(e),g$=e=>yp(e)==="[object Date]",on=e=>yp(e)==="[object RegExp]",Js=e=>je(e)&&Object.keys(e).length===0,Et=Object.assign,f$=Object.create,at=(e=null)=>f$(e);let fp;const Da=()=>fp||(fp=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:at());function hp(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function mp(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function h$(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,s)=>`${a}="${mp(s)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,s)=>`${a}='${mp(s)}'`),/\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 m$=Object.prototype.hasOwnProperty;function io(e,t){return m$.call(e,t)}const dt=Array.isArray,ut=e=>typeof e=="function",xe=e=>typeof e=="string",He=e=>typeof e=="boolean",Ze=e=>e!==null&&typeof e=="object",b$=e=>Ze(e)&&ut(e.then)&&ut(e.catch),bp=Object.prototype.toString,yp=e=>bp.call(e),je=e=>{if(!Ze(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},y$=e=>e==null?"":dt(e)||je(e)&&e.toString===bp?JSON.stringify(e,null,2):String(e);function _$(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function Qs(e){let t=e;return()=>++t}const er=e=>!Ze(e)||dt(e);function tr(e,t){if(er(e)||er(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(s=>{s!=="__proto__"&&(Ze(n[s])&&!Ze(a[s])&&(a[s]=Array.isArray(n[s])?[]:at()),er(a[s])||er(n[s])?a[s]=n[s]:o.push({src:n[s],des:a[s]}))})}}/*! + */function A$(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Js=typeof window<"u",tn=(e,t=!1)=>t?Symbol.for(e):Symbol(e),S$=(e,t,o)=>P$({l:e,k:t,s:o}),P$=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),_t=e=>typeof e=="number"&&isFinite(e),L$=e=>$p(e)==="[object Date]",on=e=>$p(e)==="[object RegExp]",Qs=e=>je(e)&&Object.keys(e).length===0,Tt=Object.assign,C$=Object.create,nt=(e=null)=>C$(e);let mp;const Ga=()=>mp||(mp=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:nt());function bp(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function yp(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function E$(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,s)=>`${a}="${yp(s)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,s)=>`${a}='${yp(s)}'`),/\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 T$=Object.prototype.hasOwnProperty;function io(e,t){return T$.call(e,t)}const gt=Array.isArray,ct=e=>typeof e=="function",we=e=>typeof e=="string",Ve=e=>typeof e=="boolean",Ze=e=>e!==null&&typeof e=="object",R$=e=>Ze(e)&&ct(e.then)&&ct(e.catch),_p=Object.prototype.toString,$p=e=>_p.call(e),je=e=>{if(!Ze(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},N$=e=>e==null?"":gt(e)||je(e)&&e.toString===_p?JSON.stringify(e,null,2):String(e);function M$(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function er(e){let t=e;return()=>++t}const tr=e=>!Ze(e)||gt(e);function or(e,t){if(tr(e)||tr(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(s=>{s!=="__proto__"&&(Ze(n[s])&&!Ze(a[s])&&(a[s]=Array.isArray(n[s])?[]:nt()),tr(a[s])||tr(n[s])?a[s]=n[s]:o.push({src:n[s],des:a[s]}))})}}/*! * message-compiler v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function $$(e,t,o){return{line:e,column:t,offset:o}}function or(e,t,o){return{start:e,end:t}}const v$=/\{([0-9a-zA-Z]+)\}/g;function _p(e,...t){return t.length===1&&w$(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(v$,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const $p=Object.assign,vp=e=>typeof e=="string",w$=e=>e!==null&&typeof e=="object";function wp(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const Ri={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},k$={[Ri.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function x$(e,t,...o){const n=_p(k$[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const Oe={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},A$={[Oe.EXPECTED_TOKEN]:"Expected token: '{0}'",[Oe.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Oe.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Oe.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Oe.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Oe.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Oe.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Oe.EMPTY_PLACEHOLDER]:"Empty placeholder",[Oe.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Oe.INVALID_LINKED_FORMAT]:"Invalid linked format",[Oe.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Oe.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Oe.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Oe.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Oe.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Oe.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Zn(e,t,o={}){const{domain:n,messages:a,args:s}=o,r=_p((a||A$)[e]||"",...s||[]),i=new SyntaxError(String(r));return i.code=e,t&&(i.location=t),i.domain=n,i}function S$(e){throw e}const zo=" ",P$="\r",jt=` -`,L$="\u2028",C$="\u2029";function T$(e){const t=e;let o=0,n=1,a=1,s=0;const r=g=>t[g]===P$&&t[g+1]===jt,i=g=>t[g]===jt,l=g=>t[g]===C$,c=g=>t[g]===L$,u=g=>r(g)||i(g)||l(g)||c(g),h=()=>o,f=()=>n,S=()=>a,$=()=>s,b=g=>r(g)||l(g)||c(g)?jt:t[g],_=()=>b(o),y=()=>b(o+s);function p(){return s=0,u(o)&&(n++,a=0),r(o)&&o++,o++,a++,t[o]}function m(){return r(o+s)&&s++,s++,t[o+s]}function x(){o=0,n=1,a=1,s=0}function d(g=0){s=g}function P(){const g=o+s;for(;g!==o;)p();s=0}return{index:h,line:f,column:S,peekOffset:$,charAt:b,currentChar:_,currentPeek:y,next:p,peek:m,reset:x,resetPeek:d,skipToPeek:P}}const nn=void 0,E$=".",kp="'",R$="tokenizer";function N$(e,t={}){const o=t.location!==!1,n=T$(e),a=()=>n.index(),s=()=>$$(n.line(),n.column(),n.index()),r=s(),i=a(),l={currentType:14,offset:i,startLoc:r,endLoc:r,lastType:14,lastOffset:i,lastStartLoc:r,lastEndLoc:r,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function h(w,v,B,...ee){const be=c();if(v.column+=B,v.offset+=B,u){const pe=o?or(be.startLoc,v):null,te=Zn(w,pe,{domain:R$,args:ee});u(te)}}function f(w,v,B){w.endLoc=s(),w.currentType=v;const ee={type:v};return o&&(ee.loc=or(w.startLoc,w.endLoc)),B!=null&&(ee.value=B),ee}const S=w=>f(w,14);function $(w,v){return w.currentChar()===v?(w.next(),v):(h(Oe.EXPECTED_TOKEN,s(),0,v),"")}function b(w){let v="";for(;w.currentPeek()===zo||w.currentPeek()===jt;)v+=w.currentPeek(),w.peek();return v}function _(w){const v=b(w);return w.skipToPeek(),v}function y(w){if(w===nn)return!1;const v=w.charCodeAt(0);return v>=97&&v<=122||v>=65&&v<=90||v===95}function p(w){if(w===nn)return!1;const v=w.charCodeAt(0);return v>=48&&v<=57}function m(w,v){const{currentType:B}=v;if(B!==2)return!1;b(w);const ee=y(w.currentPeek());return w.resetPeek(),ee}function x(w,v){const{currentType:B}=v;if(B!==2)return!1;b(w);const ee=w.currentPeek()==="-"?w.peek():w.currentPeek(),be=p(ee);return w.resetPeek(),be}function d(w,v){const{currentType:B}=v;if(B!==2)return!1;b(w);const ee=w.currentPeek()===kp;return w.resetPeek(),ee}function P(w,v){const{currentType:B}=v;if(B!==8)return!1;b(w);const ee=w.currentPeek()===".";return w.resetPeek(),ee}function g(w,v){const{currentType:B}=v;if(B!==9)return!1;b(w);const ee=y(w.currentPeek());return w.resetPeek(),ee}function C(w,v){const{currentType:B}=v;if(!(B===8||B===12))return!1;b(w);const ee=w.currentPeek()===":";return w.resetPeek(),ee}function A(w,v){const{currentType:B}=v;if(B!==10)return!1;const ee=()=>{const pe=w.currentPeek();return pe==="{"?y(w.peek()):pe==="@"||pe==="%"||pe==="|"||pe===":"||pe==="."||pe===zo||!pe?!1:pe===jt?(w.peek(),ee()):Y(w,!1)},be=ee();return w.resetPeek(),be}function U(w){b(w);const v=w.currentPeek()==="|";return w.resetPeek(),v}function H(w){const v=b(w),B=w.currentPeek()==="%"&&w.peek()==="{";return w.resetPeek(),{isModulo:B,hasSpace:v.length>0}}function Y(w,v=!0){const B=(be=!1,pe="",te=!1)=>{const ce=w.currentPeek();return ce==="{"?pe==="%"?!1:be:ce==="@"||!ce?pe==="%"?!0:be:ce==="%"?(w.peek(),B(be,"%",!0)):ce==="|"?pe==="%"||te?!0:!(pe===zo||pe===jt):ce===zo?(w.peek(),B(!0,zo,te)):ce===jt?(w.peek(),B(!0,jt,te)):!0},ee=B();return v&&w.resetPeek(),ee}function K(w,v){const B=w.currentChar();return B===nn?nn:v(B)?(w.next(),B):null}function le(w){const v=w.charCodeAt(0);return v>=97&&v<=122||v>=65&&v<=90||v>=48&&v<=57||v===95||v===36}function G(w){return K(w,le)}function k(w){const v=w.charCodeAt(0);return v>=97&&v<=122||v>=65&&v<=90||v>=48&&v<=57||v===95||v===36||v===45}function z(w){return K(w,k)}function M(w){const v=w.charCodeAt(0);return v>=48&&v<=57}function R(w){return K(w,M)}function j(w){const v=w.charCodeAt(0);return v>=48&&v<=57||v>=65&&v<=70||v>=97&&v<=102}function J(w){return K(w,j)}function D(w){let v="",B="";for(;v=R(w);)B+=v;return B}function he(w){_(w);const v=w.currentChar();return v!=="%"&&h(Oe.EXPECTED_TOKEN,s(),0,v),w.next(),"%"}function $e(w){let v="";for(;;){const B=w.currentChar();if(B==="{"||B==="}"||B==="@"||B==="|"||!B)break;if(B==="%")if(Y(w))v+=B,w.next();else break;else if(B===zo||B===jt)if(Y(w))v+=B,w.next();else{if(U(w))break;v+=B,w.next()}else v+=B,w.next()}return v}function Le(w){_(w);let v="",B="";for(;v=z(w);)B+=v;return w.currentChar()===nn&&h(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),B}function ke(w){_(w);let v="";return w.currentChar()==="-"?(w.next(),v+=`-${D(w)}`):v+=D(w),w.currentChar()===nn&&h(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),v}function fe(w){return w!==kp&&w!==jt}function Z(w){_(w),$(w,"'");let v="",B="";for(;v=K(w,fe);)v==="\\"?B+=X(w):B+=v;const ee=w.currentChar();return ee===jt||ee===nn?(h(Oe.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,s(),0),ee===jt&&(w.next(),$(w,"'")),B):($(w,"'"),B)}function X(w){const v=w.currentChar();switch(v){case"\\":case"'":return w.next(),`\\${v}`;case"u":return ie(w,v,4);case"U":return ie(w,v,6);default:return h(Oe.UNKNOWN_ESCAPE_SEQUENCE,s(),0,v),""}}function ie(w,v,B){$(w,v);let ee="";for(let be=0;be{const ee=w.currentChar();return ee==="{"||ee==="%"||ee==="@"||ee==="|"||ee==="("||ee===")"||!ee||ee===zo?B:(B+=ee,w.next(),v(B))};return v("")}function q(w){_(w);const v=$(w,"|");return _(w),v}function Q(w,v){let B=null;switch(w.currentChar()){case"{":return v.braceNest>=1&&h(Oe.NOT_ALLOW_NEST_PLACEHOLDER,s(),0),w.next(),B=f(v,2,"{"),_(w),v.braceNest++,B;case"}":return v.braceNest>0&&v.currentType===2&&h(Oe.EMPTY_PLACEHOLDER,s(),0),w.next(),B=f(v,3,"}"),v.braceNest--,v.braceNest>0&&_(w),v.inLinked&&v.braceNest===0&&(v.inLinked=!1),B;case"@":return v.braceNest>0&&h(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),B=F(w,v)||S(v),v.braceNest=0,B;default:{let be=!0,pe=!0,te=!0;if(U(w))return v.braceNest>0&&h(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),B=f(v,1,q(w)),v.braceNest=0,v.inLinked=!1,B;if(v.braceNest>0&&(v.currentType===5||v.currentType===6||v.currentType===7))return h(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),v.braceNest=0,ue(w,v);if(be=m(w,v))return B=f(v,5,Le(w)),_(w),B;if(pe=x(w,v))return B=f(v,6,ke(w)),_(w),B;if(te=d(w,v))return B=f(v,7,Z(w)),_(w),B;if(!be&&!pe&&!te)return B=f(v,13,E(w)),h(Oe.INVALID_TOKEN_IN_PLACEHOLDER,s(),0,B.value),_(w),B;break}}return B}function F(w,v){const{currentType:B}=v;let ee=null;const be=w.currentChar();switch((B===8||B===9||B===12||B===10)&&(be===jt||be===zo)&&h(Oe.INVALID_LINKED_FORMAT,s(),0),be){case"@":return w.next(),ee=f(v,8,"@"),v.inLinked=!0,ee;case".":return _(w),w.next(),f(v,9,".");case":":return _(w),w.next(),f(v,10,":");default:return U(w)?(ee=f(v,1,q(w)),v.braceNest=0,v.inLinked=!1,ee):P(w,v)||C(w,v)?(_(w),F(w,v)):g(w,v)?(_(w),f(v,12,O(w))):A(w,v)?(_(w),be==="{"?Q(w,v)||ee:f(v,11,N(w))):(B===8&&h(Oe.INVALID_LINKED_FORMAT,s(),0),v.braceNest=0,v.inLinked=!1,ue(w,v))}}function ue(w,v){let B={type:14};if(v.braceNest>0)return Q(w,v)||S(v);if(v.inLinked)return F(w,v)||S(v);switch(w.currentChar()){case"{":return Q(w,v)||S(v);case"}":return h(Oe.UNBALANCED_CLOSING_BRACE,s(),0),w.next(),f(v,3,"}");case"@":return F(w,v)||S(v);default:{if(U(w))return B=f(v,1,q(w)),v.braceNest=0,v.inLinked=!1,B;const{isModulo:be,hasSpace:pe}=H(w);if(be)return pe?f(v,0,$e(w)):f(v,4,he(w));if(Y(w))return f(v,0,$e(w));break}}return B}function oe(){const{currentType:w,offset:v,startLoc:B,endLoc:ee}=l;return l.lastType=w,l.lastOffset=v,l.lastStartLoc=B,l.lastEndLoc=ee,l.offset=a(),l.startLoc=s(),n.currentChar()===nn?f(l,14):ue(n,l)}return{nextToken:oe,currentOffset:a,currentPosition:s,context:c}}const M$="parser",F$=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function I$(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 O$(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a(m,x,d,P,...g){const C=m.currentPosition();if(C.offset+=P,C.column+=P,o){const A=t?or(d,C):null,U=Zn(x,A,{domain:M$,args:g});o(U)}}function s(m,x,d,P,...g){const C=m.currentPosition();if(C.offset+=P,C.column+=P,n){const A=t?or(d,C):null;n(x$(x,A,g))}}function r(m,x,d){const P={type:m};return t&&(P.start=x,P.end=x,P.loc={start:d,end:d}),P}function i(m,x,d,P){t&&(m.end=x,m.loc&&(m.loc.end=d))}function l(m,x){const d=m.context(),P=r(3,d.offset,d.startLoc);return P.value=x,i(P,m.currentOffset(),m.currentPosition()),P}function c(m,x){const d=m.context(),{lastOffset:P,lastStartLoc:g}=d,C=r(5,P,g);return C.index=parseInt(x,10),m.nextToken(),i(C,m.currentOffset(),m.currentPosition()),C}function u(m,x,d){const P=m.context(),{lastOffset:g,lastStartLoc:C}=P,A=r(4,g,C);return A.key=x,d===!0&&(A.modulo=!0),m.nextToken(),i(A,m.currentOffset(),m.currentPosition()),A}function h(m,x){const d=m.context(),{lastOffset:P,lastStartLoc:g}=d,C=r(9,P,g);return C.value=x.replace(F$,I$),m.nextToken(),i(C,m.currentOffset(),m.currentPosition()),C}function f(m){const x=m.nextToken(),d=m.context(),{lastOffset:P,lastStartLoc:g}=d,C=r(8,P,g);return x.type!==12?(a(m,Oe.UNEXPECTED_EMPTY_LINKED_MODIFIER,d.lastStartLoc,0),C.value="",i(C,P,g),{nextConsumeToken:x,node:C}):(x.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,lo(x)),C.value=x.value||"",i(C,m.currentOffset(),m.currentPosition()),{node:C})}function S(m,x){const d=m.context(),P=r(7,d.offset,d.startLoc);return P.value=x,i(P,m.currentOffset(),m.currentPosition()),P}function $(m){const x=m.context(),d=r(6,x.offset,x.startLoc);let P=m.nextToken();if(P.type===9){const g=f(m);d.modifier=g.node,P=g.nextConsumeToken||m.nextToken()}switch(P.type!==10&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,lo(P)),P=m.nextToken(),P.type===2&&(P=m.nextToken()),P.type){case 11:P.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,lo(P)),d.key=S(m,P.value||"");break;case 5:P.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,lo(P)),d.key=u(m,P.value||"");break;case 6:P.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,lo(P)),d.key=c(m,P.value||"");break;case 7:P.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,lo(P)),d.key=h(m,P.value||"");break;default:{a(m,Oe.UNEXPECTED_EMPTY_LINKED_KEY,x.lastStartLoc,0);const g=m.context(),C=r(7,g.offset,g.startLoc);return C.value="",i(C,g.offset,g.startLoc),d.key=C,i(d,g.offset,g.startLoc),{nextConsumeToken:P,node:d}}}return i(d,m.currentOffset(),m.currentPosition()),{node:d}}function b(m){const x=m.context(),d=x.currentType===1?m.currentOffset():x.offset,P=x.currentType===1?x.endLoc:x.startLoc,g=r(2,d,P);g.items=[];let C=null,A=null;do{const Y=C||m.nextToken();switch(C=null,Y.type){case 0:Y.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,lo(Y)),g.items.push(l(m,Y.value||""));break;case 6:Y.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,lo(Y)),g.items.push(c(m,Y.value||""));break;case 4:A=!0;break;case 5:Y.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,lo(Y)),g.items.push(u(m,Y.value||"",!!A)),A&&(s(m,Ri.USE_MODULO_SYNTAX,x.lastStartLoc,0,lo(Y)),A=null);break;case 7:Y.value==null&&a(m,Oe.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,lo(Y)),g.items.push(h(m,Y.value||""));break;case 8:{const K=$(m);g.items.push(K.node),C=K.nextConsumeToken||null;break}}}while(x.currentType!==14&&x.currentType!==1);const U=x.currentType===1?x.lastOffset:m.currentOffset(),H=x.currentType===1?x.lastEndLoc:m.currentPosition();return i(g,U,H),g}function _(m,x,d,P){const g=m.context();let C=P.items.length===0;const A=r(1,x,d);A.cases=[],A.cases.push(P);do{const U=b(m);C||(C=U.items.length===0),A.cases.push(U)}while(g.currentType!==14);return C&&a(m,Oe.MUST_HAVE_MESSAGES_IN_PLURAL,d,0),i(A,m.currentOffset(),m.currentPosition()),A}function y(m){const x=m.context(),{offset:d,startLoc:P}=x,g=b(m);return x.currentType===14?g:_(m,d,P,g)}function p(m){const x=N$(m,$p({},e)),d=x.context(),P=r(0,d.offset,d.startLoc);return t&&P.loc&&(P.loc.source=m),P.body=y(x),e.onCacheKey&&(P.cacheKey=e.onCacheKey(m)),d.currentType!==14&&a(x,Oe.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,m[d.offset]||""),i(P,x.currentOffset(),x.currentPosition()),P}return{parse:p}}function lo(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 D$(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:s=>(o.helpers.add(s),s)}}function xp(e,t){for(let o=0;oAp(o)),e}function Ap(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;or;function l(b,_){r.code+=b}function c(b,_=!0){const y=_?n:"";l(a?y+" ".repeat(b):y)}function u(b=!0){const _=++r.indentLevel;b&&c(_)}function h(b=!0){const _=--r.indentLevel;b&&c(_)}function f(){c(r.indentLevel)}return{context:i,push:l,indent:u,deindent:h,newline:f,helper:b=>`_${b}`,needIndent:()=>r.needIndent}}function K$(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),Jn(e,t.key),t.modifier?(e.push(", "),Jn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function H$(e,t){const{helper:o,needIndent:n}=e;e.push(`${o("normalize")}([`),e.indent(n());const a=t.items.length;for(let s=0;s1){e.push(`${o("plural")}([`),e.indent(n());const a=t.cases.length;for(let s=0;s{const o=vp(t.mode)?t.mode:"normal",n=vp(t.filename)?t.filename:"message.intl";t.sourceMap;const a=t.breakLineCode!=null?t.breakLineCode:o==="arrow"?";":` -`,s=t.needIndent?t.needIndent:o!=="arrow",r=e.helpers||[],i=U$(e,{filename:n,breakLineCode:a,needIndent:s});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(s),r.length>0&&(i.push(`const { ${wp(r.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),Jn(i,e),i.deindent(s),i.push("}"),delete e.helpers;const{code:l,map:c}=i.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function Y$(e,t={}){const o=$p({},t),n=!!o.jit,a=!!o.minify,s=o.optimize==null?!0:o.optimize,i=O$(o).parse(e);return n?(s&&G$(i),a&&Xn(i),{ast:i,code:""}):(B$(i,o),q$(i,o))}/*! + */function F$(e,t,o){return{line:e,column:t,offset:o}}function nr(e,t,o){return{start:e,end:t}}const I$=/\{([0-9a-zA-Z]+)\}/g;function vp(e,...t){return t.length===1&&O$(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(I$,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const wp=Object.assign,kp=e=>typeof e=="string",O$=e=>e!==null&&typeof e=="object";function xp(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const Ni={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},D$={[Ni.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function G$(e,t,...o){const n=vp(D$[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const Oe={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},B$={[Oe.EXPECTED_TOKEN]:"Expected token: '{0}'",[Oe.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Oe.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Oe.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Oe.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Oe.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Oe.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Oe.EMPTY_PLACEHOLDER]:"Empty placeholder",[Oe.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Oe.INVALID_LINKED_FORMAT]:"Invalid linked format",[Oe.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Oe.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Oe.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Oe.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Oe.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Oe.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Zn(e,t,o={}){const{domain:n,messages:a,args:s}=o,r=vp((a||B$)[e]||"",...s||[]),i=new SyntaxError(String(r));return i.code=e,t&&(i.location=t),i.domain=n,i}function j$(e){throw e}const zo=" ",z$="\r",zt=` +`,U$="\u2028",H$="\u2029";function K$(e){const t=e;let o=0,n=1,a=1,s=0;const r=v=>t[v]===z$&&t[v+1]===zt,i=v=>t[v]===zt,l=v=>t[v]===H$,c=v=>t[v]===U$,u=v=>r(v)||i(v)||l(v)||c(v),h=()=>o,f=()=>n,P=()=>a,w=()=>s,m=v=>r(v)||l(v)||c(v)?zt:t[v],y=()=>m(o),b=()=>m(o+s);function d(){return s=0,u(o)&&(n++,a=0),r(o)&&o++,o++,a++,t[o]}function g(){return r(o+s)&&s++,s++,t[o+s]}function S(){o=0,n=1,a=1,s=0}function C(v=0){s=v}function p(){const v=o+s;for(;v!==o;)d();s=0}return{index:h,line:f,column:P,peekOffset:w,charAt:m,currentChar:y,currentPeek:b,next:d,peek:g,reset:S,resetPeek:C,skipToPeek:p}}const nn=void 0,V$=".",Ap="'",W$="tokenizer";function q$(e,t={}){const o=t.location!==!1,n=K$(e),a=()=>n.index(),s=()=>F$(n.line(),n.column(),n.index()),r=s(),i=a(),l={currentType:14,offset:i,startLoc:r,endLoc:r,lastType:14,lastOffset:i,lastStartLoc:r,lastEndLoc:r,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function h(_,k,U,...Z){const fe=c();if(k.column+=U,k.offset+=U,u){const he=o?nr(fe.startLoc,k):null,Y=Zn(_,he,{domain:W$,args:Z});u(Y)}}function f(_,k,U){_.endLoc=s(),_.currentType=k;const Z={type:k};return o&&(Z.loc=nr(_.startLoc,_.endLoc)),U!=null&&(Z.value=U),Z}const P=_=>f(_,14);function w(_,k){return _.currentChar()===k?(_.next(),k):(h(Oe.EXPECTED_TOKEN,s(),0,k),"")}function m(_){let k="";for(;_.currentPeek()===zo||_.currentPeek()===zt;)k+=_.currentPeek(),_.peek();return k}function y(_){const k=m(_);return _.skipToPeek(),k}function b(_){if(_===nn)return!1;const k=_.charCodeAt(0);return k>=97&&k<=122||k>=65&&k<=90||k===95}function d(_){if(_===nn)return!1;const k=_.charCodeAt(0);return k>=48&&k<=57}function g(_,k){const{currentType:U}=k;if(U!==2)return!1;m(_);const Z=b(_.currentPeek());return _.resetPeek(),Z}function S(_,k){const{currentType:U}=k;if(U!==2)return!1;m(_);const Z=_.currentPeek()==="-"?_.peek():_.currentPeek(),fe=d(Z);return _.resetPeek(),fe}function C(_,k){const{currentType:U}=k;if(U!==2)return!1;m(_);const Z=_.currentPeek()===Ap;return _.resetPeek(),Z}function p(_,k){const{currentType:U}=k;if(U!==8)return!1;m(_);const Z=_.currentPeek()===".";return _.resetPeek(),Z}function v(_,k){const{currentType:U}=k;if(U!==9)return!1;m(_);const Z=b(_.currentPeek());return _.resetPeek(),Z}function $(_,k){const{currentType:U}=k;if(!(U===8||U===12))return!1;m(_);const Z=_.currentPeek()===":";return _.resetPeek(),Z}function A(_,k){const{currentType:U}=k;if(U!==10)return!1;const Z=()=>{const he=_.currentPeek();return he==="{"?b(_.peek()):he==="@"||he==="%"||he==="|"||he===":"||he==="."||he===zo||!he?!1:he===zt?(_.peek(),Z()):Q(_,!1)},fe=Z();return _.resetPeek(),fe}function j(_){m(_);const k=_.currentPeek()==="|";return _.resetPeek(),k}function K(_){const k=m(_),U=_.currentPeek()==="%"&&_.peek()==="{";return _.resetPeek(),{isModulo:U,hasSpace:k.length>0}}function Q(_,k=!0){const U=(fe=!1,he="",Y=!1)=>{const ie=_.currentPeek();return ie==="{"?he==="%"?!1:fe:ie==="@"||!ie?he==="%"?!0:fe:ie==="%"?(_.peek(),U(fe,"%",!0)):ie==="|"?he==="%"||Y?!0:!(he===zo||he===zt):ie===zo?(_.peek(),U(!0,zo,Y)):ie===zt?(_.peek(),U(!0,zt,Y)):!0},Z=U();return k&&_.resetPeek(),Z}function H(_,k){const U=_.currentChar();return U===nn?nn:k(U)?(_.next(),U):null}function ce(_){const k=_.charCodeAt(0);return k>=97&&k<=122||k>=65&&k<=90||k>=48&&k<=57||k===95||k===36}function z(_){return H(_,ce)}function x(_){const k=_.charCodeAt(0);return k>=97&&k<=122||k>=65&&k<=90||k>=48&&k<=57||k===95||k===36||k===45}function D(_){return H(_,x)}function M(_){const k=_.charCodeAt(0);return k>=48&&k<=57}function N(_){return H(_,M)}function G(_){const k=_.charCodeAt(0);return k>=48&&k<=57||k>=65&&k<=70||k>=97&&k<=102}function ee(_){return H(_,G)}function O(_){let k="",U="";for(;k=N(_);)U+=k;return U}function ge(_){y(_);const k=_.currentChar();return k!=="%"&&h(Oe.EXPECTED_TOKEN,s(),0,k),_.next(),"%"}function $e(_){let k="";for(;;){const U=_.currentChar();if(U==="{"||U==="}"||U==="@"||U==="|"||!U)break;if(U==="%")if(Q(_))k+=U,_.next();else break;else if(U===zo||U===zt)if(Q(_))k+=U,_.next();else{if(j(_))break;k+=U,_.next()}else k+=U,_.next()}return k}function Se(_){y(_);let k="",U="";for(;k=D(_);)U+=k;return _.currentChar()===nn&&h(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),U}function ke(_){y(_);let k="";return _.currentChar()==="-"?(_.next(),k+=`-${O(_)}`):k+=O(_),_.currentChar()===nn&&h(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),k}function me(_){return _!==Ap&&_!==zt}function X(_){y(_),w(_,"'");let k="",U="";for(;k=H(_,me);)k==="\\"?U+=pe(_):U+=k;const Z=_.currentChar();return Z===zt||Z===nn?(h(Oe.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,s(),0),Z===zt&&(_.next(),w(_,"'")),U):(w(_,"'"),U)}function pe(_){const k=_.currentChar();switch(k){case"\\":case"'":return _.next(),`\\${k}`;case"u":return q(_,k,4);case"U":return q(_,k,6);default:return h(Oe.UNKNOWN_ESCAPE_SEQUENCE,s(),0,k),""}}function q(_,k,U){w(_,k);let Z="";for(let fe=0;fe{const Z=_.currentChar();return Z==="{"||Z==="%"||Z==="@"||Z==="|"||Z==="("||Z===")"||!Z||Z===zo?U:(U+=Z,_.next(),k(U))};return k("")}function J(_){y(_);const k=w(_,"|");return y(_),k}function ne(_,k){let U=null;switch(_.currentChar()){case"{":return k.braceNest>=1&&h(Oe.NOT_ALLOW_NEST_PLACEHOLDER,s(),0),_.next(),U=f(k,2,"{"),y(_),k.braceNest++,U;case"}":return k.braceNest>0&&k.currentType===2&&h(Oe.EMPTY_PLACEHOLDER,s(),0),_.next(),U=f(k,3,"}"),k.braceNest--,k.braceNest>0&&y(_),k.inLinked&&k.braceNest===0&&(k.inLinked=!1),U;case"@":return k.braceNest>0&&h(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),U=I(_,k)||P(k),k.braceNest=0,U;default:{let fe=!0,he=!0,Y=!0;if(j(_))return k.braceNest>0&&h(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),U=f(k,1,J(_)),k.braceNest=0,k.inLinked=!1,U;if(k.braceNest>0&&(k.currentType===5||k.currentType===6||k.currentType===7))return h(Oe.UNTERMINATED_CLOSING_BRACE,s(),0),k.braceNest=0,oe(_,k);if(fe=g(_,k))return U=f(k,5,Se(_)),y(_),U;if(he=S(_,k))return U=f(k,6,ke(_)),y(_),U;if(Y=C(_,k))return U=f(k,7,X(_)),y(_),U;if(!fe&&!he&&!Y)return U=f(k,13,R(_)),h(Oe.INVALID_TOKEN_IN_PLACEHOLDER,s(),0,U.value),y(_),U;break}}return U}function I(_,k){const{currentType:U}=k;let Z=null;const fe=_.currentChar();switch((U===8||U===9||U===12||U===10)&&(fe===zt||fe===zo)&&h(Oe.INVALID_LINKED_FORMAT,s(),0),fe){case"@":return _.next(),Z=f(k,8,"@"),k.inLinked=!0,Z;case".":return y(_),_.next(),f(k,9,".");case":":return y(_),_.next(),f(k,10,":");default:return j(_)?(Z=f(k,1,J(_)),k.braceNest=0,k.inLinked=!1,Z):p(_,k)||$(_,k)?(y(_),I(_,k)):v(_,k)?(y(_),f(k,12,B(_))):A(_,k)?(y(_),fe==="{"?ne(_,k)||Z:f(k,11,T(_))):(U===8&&h(Oe.INVALID_LINKED_FORMAT,s(),0),k.braceNest=0,k.inLinked=!1,oe(_,k))}}function oe(_,k){let U={type:14};if(k.braceNest>0)return ne(_,k)||P(k);if(k.inLinked)return I(_,k)||P(k);switch(_.currentChar()){case"{":return ne(_,k)||P(k);case"}":return h(Oe.UNBALANCED_CLOSING_BRACE,s(),0),_.next(),f(k,3,"}");case"@":return I(_,k)||P(k);default:{if(j(_))return U=f(k,1,J(_)),k.braceNest=0,k.inLinked=!1,U;const{isModulo:fe,hasSpace:he}=K(_);if(fe)return he?f(k,0,$e(_)):f(k,4,ge(_));if(Q(_))return f(k,0,$e(_));break}}return U}function le(){const{currentType:_,offset:k,startLoc:U,endLoc:Z}=l;return l.lastType=_,l.lastOffset=k,l.lastStartLoc=U,l.lastEndLoc=Z,l.offset=a(),l.startLoc=s(),n.currentChar()===nn?f(l,14):oe(n,l)}return{nextToken:le,currentOffset:a,currentPosition:s,context:c}}const Y$="parser",Z$=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function X$(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 J$(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a(g,S,C,p,...v){const $=g.currentPosition();if($.offset+=p,$.column+=p,o){const A=t?nr(C,$):null,j=Zn(S,A,{domain:Y$,args:v});o(j)}}function s(g,S,C,p,...v){const $=g.currentPosition();if($.offset+=p,$.column+=p,n){const A=t?nr(C,$):null;n(G$(S,A,v))}}function r(g,S,C){const p={type:g};return t&&(p.start=S,p.end=S,p.loc={start:C,end:C}),p}function i(g,S,C,p){t&&(g.end=S,g.loc&&(g.loc.end=C))}function l(g,S){const C=g.context(),p=r(3,C.offset,C.startLoc);return p.value=S,i(p,g.currentOffset(),g.currentPosition()),p}function c(g,S){const C=g.context(),{lastOffset:p,lastStartLoc:v}=C,$=r(5,p,v);return $.index=parseInt(S,10),g.nextToken(),i($,g.currentOffset(),g.currentPosition()),$}function u(g,S,C){const p=g.context(),{lastOffset:v,lastStartLoc:$}=p,A=r(4,v,$);return A.key=S,C===!0&&(A.modulo=!0),g.nextToken(),i(A,g.currentOffset(),g.currentPosition()),A}function h(g,S){const C=g.context(),{lastOffset:p,lastStartLoc:v}=C,$=r(9,p,v);return $.value=S.replace(Z$,X$),g.nextToken(),i($,g.currentOffset(),g.currentPosition()),$}function f(g){const S=g.nextToken(),C=g.context(),{lastOffset:p,lastStartLoc:v}=C,$=r(8,p,v);return S.type!==12?(a(g,Oe.UNEXPECTED_EMPTY_LINKED_MODIFIER,C.lastStartLoc,0),$.value="",i($,p,v),{nextConsumeToken:S,node:$}):(S.value==null&&a(g,Oe.UNEXPECTED_LEXICAL_ANALYSIS,C.lastStartLoc,0,lo(S)),$.value=S.value||"",i($,g.currentOffset(),g.currentPosition()),{node:$})}function P(g,S){const C=g.context(),p=r(7,C.offset,C.startLoc);return p.value=S,i(p,g.currentOffset(),g.currentPosition()),p}function w(g){const S=g.context(),C=r(6,S.offset,S.startLoc);let p=g.nextToken();if(p.type===9){const v=f(g);C.modifier=v.node,p=v.nextConsumeToken||g.nextToken()}switch(p.type!==10&&a(g,Oe.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,lo(p)),p=g.nextToken(),p.type===2&&(p=g.nextToken()),p.type){case 11:p.value==null&&a(g,Oe.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,lo(p)),C.key=P(g,p.value||"");break;case 5:p.value==null&&a(g,Oe.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,lo(p)),C.key=u(g,p.value||"");break;case 6:p.value==null&&a(g,Oe.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,lo(p)),C.key=c(g,p.value||"");break;case 7:p.value==null&&a(g,Oe.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,lo(p)),C.key=h(g,p.value||"");break;default:{a(g,Oe.UNEXPECTED_EMPTY_LINKED_KEY,S.lastStartLoc,0);const v=g.context(),$=r(7,v.offset,v.startLoc);return $.value="",i($,v.offset,v.startLoc),C.key=$,i(C,v.offset,v.startLoc),{nextConsumeToken:p,node:C}}}return i(C,g.currentOffset(),g.currentPosition()),{node:C}}function m(g){const S=g.context(),C=S.currentType===1?g.currentOffset():S.offset,p=S.currentType===1?S.endLoc:S.startLoc,v=r(2,C,p);v.items=[];let $=null,A=null;do{const Q=$||g.nextToken();switch($=null,Q.type){case 0:Q.value==null&&a(g,Oe.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,lo(Q)),v.items.push(l(g,Q.value||""));break;case 6:Q.value==null&&a(g,Oe.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,lo(Q)),v.items.push(c(g,Q.value||""));break;case 4:A=!0;break;case 5:Q.value==null&&a(g,Oe.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,lo(Q)),v.items.push(u(g,Q.value||"",!!A)),A&&(s(g,Ni.USE_MODULO_SYNTAX,S.lastStartLoc,0,lo(Q)),A=null);break;case 7:Q.value==null&&a(g,Oe.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,lo(Q)),v.items.push(h(g,Q.value||""));break;case 8:{const H=w(g);v.items.push(H.node),$=H.nextConsumeToken||null;break}}}while(S.currentType!==14&&S.currentType!==1);const j=S.currentType===1?S.lastOffset:g.currentOffset(),K=S.currentType===1?S.lastEndLoc:g.currentPosition();return i(v,j,K),v}function y(g,S,C,p){const v=g.context();let $=p.items.length===0;const A=r(1,S,C);A.cases=[],A.cases.push(p);do{const j=m(g);$||($=j.items.length===0),A.cases.push(j)}while(v.currentType!==14);return $&&a(g,Oe.MUST_HAVE_MESSAGES_IN_PLURAL,C,0),i(A,g.currentOffset(),g.currentPosition()),A}function b(g){const S=g.context(),{offset:C,startLoc:p}=S,v=m(g);return S.currentType===14?v:y(g,C,p,v)}function d(g){const S=q$(g,wp({},e)),C=S.context(),p=r(0,C.offset,C.startLoc);return t&&p.loc&&(p.loc.source=g),p.body=b(S),e.onCacheKey&&(p.cacheKey=e.onCacheKey(g)),C.currentType!==14&&a(S,Oe.UNEXPECTED_LEXICAL_ANALYSIS,C.lastStartLoc,0,g[C.offset]||""),i(p,S.currentOffset(),S.currentPosition()),p}return{parse:d}}function lo(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 Q$(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:s=>(o.helpers.add(s),s)}}function Sp(e,t){for(let o=0;oPp(o)),e}function Pp(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;or;function l(m,y){r.code+=m}function c(m,y=!0){const b=y?n:"";l(a?b+" ".repeat(m):b)}function u(m=!0){const y=++r.indentLevel;m&&c(y)}function h(m=!0){const y=--r.indentLevel;m&&c(y)}function f(){c(r.indentLevel)}return{context:i,push:l,indent:u,deindent:h,newline:f,helper:m=>`_${m}`,needIndent:()=>r.needIndent}}function s0(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),Jn(e,t.key),t.modifier?(e.push(", "),Jn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function r0(e,t){const{helper:o,needIndent:n}=e;e.push(`${o("normalize")}([`),e.indent(n());const a=t.items.length;for(let s=0;s1){e.push(`${o("plural")}([`),e.indent(n());const a=t.cases.length;for(let s=0;s{const o=kp(t.mode)?t.mode:"normal",n=kp(t.filename)?t.filename:"message.intl";t.sourceMap;const a=t.breakLineCode!=null?t.breakLineCode:o==="arrow"?";":` +`,s=t.needIndent?t.needIndent:o!=="arrow",r=e.helpers||[],i=a0(e,{filename:n,breakLineCode:a,needIndent:s});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(s),r.length>0&&(i.push(`const { ${xp(r.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),Jn(i,e),i.deindent(s),i.push("}"),delete e.helpers;const{code:l,map:c}=i.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function u0(e,t={}){const o=wp({},t),n=!!o.jit,a=!!o.minify,s=o.optimize==null?!0:o.optimize,i=J$(o).parse(e);return n?(s&&t0(i),a&&Xn(i),{ast:i,code:""}):(e0(i,o),c0(i,o))}/*! * core-base v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function Z$(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Da().__INTLIFY_PROD_DEVTOOLS__=!1)}function xo(e){return Ze(e)&&Mi(e)===0&&(io(e,"b")||io(e,"body"))}const Sp=["b","body"];function X$(e){return an(e,Sp)}const Pp=["c","cases"];function J$(e){return an(e,Pp,[])}const Lp=["s","static"];function Q$(e){return an(e,Lp)}const Cp=["i","items"];function e0(e){return an(e,Cp,[])}const Tp=["t","type"];function Mi(e){return an(e,Tp)}const Ep=["v","value"];function nr(e,t){const o=an(e,Ep);if(o!=null)return o;throw Ba(t)}const Rp=["m","modifier"];function t0(e){return an(e,Rp)}const Np=["k","key"];function o0(e){const t=an(e,Np);if(t)return t;throw Ba(6)}function an(e,t,o){for(let n=0;n{r===void 0?r=i:r+=i},f[1]=()=>{r!==void 0&&(t.push(r),r=void 0)},f[2]=()=>{f[0](),a++},f[3]=()=>{if(a>0)a--,n=4,f[0]();else{if(a=0,r===void 0||(r=i0(r),r===!1))return!1;f[1]()}};function S(){const $=e[o+1];if(n===5&&$==="'"||n===6&&$==='"')return o++,i="\\"+$,f[0](),!0}for(;n!==null;)if(o++,s=e[o],!(s==="\\"&&S())){if(l=r0(s),h=sn[n],c=h[l]||h.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=f[c[1]],u&&(i=s,u()===!1))))return;if(n===7)return t}}const Fp=new Map;function c0(e,t){return Ze(e)?e[t]:null}function u0(e,t){if(!Ze(e))return null;let o=Fp.get(t);if(o||(o=l0(t),o&&Fp.set(t,o)),!o)return null;const n=o.length;let a=e,s=0;for(;se,d0=e=>"",g0="text",f0=e=>e.length===0?"":_$(e),h0=y$;function Ip(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function m0(e){const t=_t(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(_t(e.named.count)||_t(e.named.n))?_t(e.named.count)?e.named.count:_t(e.named.n)?e.named.n:t:t}function b0(e,t){t.count||(t.count=e),t.n||(t.n=e)}function y0(e={}){const t=e.locale,o=m0(e),n=Ze(e.pluralRules)&&xe(t)&&ut(e.pluralRules[t])?e.pluralRules[t]:Ip,a=Ze(e.pluralRules)&&xe(t)&&ut(e.pluralRules[t])?Ip:void 0,s=y=>y[n(o,y.length,a)],r=e.list||[],i=y=>r[y],l=e.named||at();_t(e.pluralIndex)&&b0(o,l);const c=y=>l[y];function u(y){const p=ut(e.messages)?e.messages(y):Ze(e.messages)?e.messages[y]:!1;return p||(e.parent?e.parent.message(y):d0)}const h=y=>e.modifiers?e.modifiers[y]:p0,f=je(e.processor)&&ut(e.processor.normalize)?e.processor.normalize:f0,S=je(e.processor)&&ut(e.processor.interpolate)?e.processor.interpolate:h0,$=je(e.processor)&&xe(e.processor.type)?e.processor.type:g0,_={list:i,named:c,plural:s,linked:(y,...p)=>{const[m,x]=p;let d="text",P="";p.length===1?Ze(m)?(P=m.modifier||P,d=m.type||d):xe(m)&&(P=m||P):p.length===2&&(xe(m)&&(P=m||P),xe(x)&&(d=x||d));const g=u(y)(_),C=d==="vnode"&&dt(g)&&P?g[0]:g;return P?h(P)(C,d):C},message:u,type:$,interpolate:S,normalize:f,values:Et(at(),r,l)};return _}let Ga=null;function _0(e){Ga=e}function $0(e,t,o){Ga&&Ga.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const v0=w0("function:translate");function w0(e){return t=>Ga&&Ga.emit(e,t)}const k0=Ri.__EXTEND_POINT__,wn=Qs(k0),x0={FALLBACK_TO_TRANSLATE:wn(),CANNOT_FORMAT_NUMBER:wn(),FALLBACK_TO_NUMBER_FORMAT:wn(),CANNOT_FORMAT_DATE:wn(),FALLBACK_TO_DATE_FORMAT:wn(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:wn(),__EXTEND_POINT__:wn()},Op=Oe.__EXTEND_POINT__,kn=Qs(Op),Ao={INVALID_ARGUMENT:Op,INVALID_DATE_ARGUMENT:kn(),INVALID_ISO_DATE_ARGUMENT:kn(),NOT_SUPPORT_NON_STRING_MESSAGE:kn(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:kn(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:kn(),NOT_SUPPORT_LOCALE_TYPE:kn(),__EXTEND_POINT__:kn()};function Uo(e){return Zn(e,null,void 0)}function Fi(e,t){return t.locale!=null?Dp(t.locale):Dp(e.locale)}let Ii;function Dp(e){if(xe(e))return e;if(ut(e)){if(e.resolvedOnce&&Ii!=null)return Ii;if(e.constructor.name==="Function"){const t=e();if(b$(t))throw Uo(Ao.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Ii=t}else throw Uo(Ao.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Uo(Ao.NOT_SUPPORT_LOCALE_TYPE)}function A0(e,t,o){return[...new Set([o,...dt(t)?t:Ze(t)?Object.keys(t):xe(t)?[t]:[o]])]}function Bp(e,t,o){const n=xe(o)?o:Qn,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let s=a.__localeChainCache.get(n);if(!s){s=[];let r=[o];for(;dt(r);)r=Gp(s,r,t);const i=dt(t)||!je(t)?t:t.default?t.default:null;r=xe(i)?[i]:i,dt(r)&&Gp(s,r,!1),a.__localeChainCache.set(n,s)}return s}function Gp(e,t,o){let n=!0;for(let a=0;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function C0(){return{upper:(e,t)=>t==="text"&&xe(e)?e.toUpperCase():t==="vnode"&&Ze(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&xe(e)?e.toLowerCase():t==="vnode"&&Ze(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&xe(e)?zp(e):t==="vnode"&&Ze(e)&&"__v_isVNode"in e?zp(e.children):e}}let Up;function T0(e){Up=e}let Kp;function E0(e){Kp=e}let Hp;function R0(e){Hp=e}let Vp=null;const N0=e=>{Vp=e},M0=()=>Vp;let Wp=null;const qp=e=>{Wp=e},F0=()=>Wp;let Yp=0;function I0(e={}){const t=ut(e.onWarn)?e.onWarn:u$,o=xe(e.version)?e.version:L0,n=xe(e.locale)||ut(e.locale)?e.locale:Qn,a=ut(n)?Qn:n,s=dt(e.fallbackLocale)||je(e.fallbackLocale)||xe(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,r=je(e.messages)?e.messages:Oi(a),i=je(e.datetimeFormats)?e.datetimeFormats:Oi(a),l=je(e.numberFormats)?e.numberFormats:Oi(a),c=Et(at(),e.modifiers,C0()),u=e.pluralRules||at(),h=ut(e.missing)?e.missing:null,f=He(e.missingWarn)||on(e.missingWarn)?e.missingWarn:!0,S=He(e.fallbackWarn)||on(e.fallbackWarn)?e.fallbackWarn:!0,$=!!e.fallbackFormat,b=!!e.unresolving,_=ut(e.postTranslation)?e.postTranslation:null,y=je(e.processor)?e.processor:null,p=He(e.warnHtmlMessage)?e.warnHtmlMessage:!0,m=!!e.escapeParameter,x=ut(e.messageCompiler)?e.messageCompiler:Up,d=ut(e.messageResolver)?e.messageResolver:Kp||c0,P=ut(e.localeFallbacker)?e.localeFallbacker:Hp||A0,g=Ze(e.fallbackContext)?e.fallbackContext:void 0,C=e,A=Ze(C.__datetimeFormatters)?C.__datetimeFormatters:new Map,U=Ze(C.__numberFormatters)?C.__numberFormatters:new Map,H=Ze(C.__meta)?C.__meta:{};Yp++;const Y={version:o,cid:Yp,locale:n,fallbackLocale:s,messages:r,modifiers:c,pluralRules:u,missing:h,missingWarn:f,fallbackWarn:S,fallbackFormat:$,unresolving:b,postTranslation:_,processor:y,warnHtmlMessage:p,escapeParameter:m,messageCompiler:x,messageResolver:d,localeFallbacker:P,fallbackContext:g,onWarn:t,__meta:H};return Y.datetimeFormats=i,Y.numberFormats=l,Y.__datetimeFormatters=A,Y.__numberFormatters=U,__INTLIFY_PROD_DEVTOOLS__&&$0(Y,o,H),Y}const Oi=e=>({[e]:at()});function Di(e,t,o,n,a){const{missing:s,onWarn:r}=e;if(s!==null){const i=s(e,o,t,a);return xe(i)?i:t}else return t}function ja(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function O0(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function D0(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;nB0(o,e)}function B0(e,t){const o=X$(t);if(o==null)throw Ba(0);if(Mi(o)===1){const s=J$(o);return e.plural(s.reduce((r,i)=>[...r,Zp(e,i)],[]))}else return Zp(e,o)}function Zp(e,t){const o=Q$(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=e0(t).reduce((a,s)=>[...a,Gi(e,s)],[]);return e.normalize(n)}}function Gi(e,t){const o=Mi(t);switch(o){case 3:return nr(t,o);case 9:return nr(t,o);case 4:{const n=t;if(io(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(io(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw Ba(o)}case 5:{const n=t;if(io(n,"i")&&_t(n.i))return e.interpolate(e.list(n.i));if(io(n,"index")&&_t(n.index))return e.interpolate(e.list(n.index));throw Ba(o)}case 6:{const n=t,a=t0(n),s=o0(n);return e.linked(Gi(e,s),a?Gi(e,a):void 0,e.type)}case 7:return nr(t,o);case 8:return nr(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const G0=e=>e;let sr=at();function j0(e,t={}){let o=!1;const n=t.onError||S$;return t.onError=a=>{o=!0,n(a)},{...Y$(e,t),detectError:o}}function z0(e,t){if(xe(e)){He(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||G0)(e),a=sr[n];if(a)return a;const{ast:s,detectError:r}=j0(e,{...t,location:!1,jit:!0}),i=Bi(s);return r?i:sr[n]=i}else{const o=e.cacheKey;if(o){const n=sr[o];return n||(sr[o]=Bi(e))}else return Bi(e)}}const Xp=()=>"",Qt=e=>ut(e);function Jp(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:s,fallbackLocale:r,messages:i}=e,[l,c]=ji(...t),u=He(c.missingWarn)?c.missingWarn:e.missingWarn,h=He(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,f=He(c.escapeParameter)?c.escapeParameter:e.escapeParameter,S=!!c.resolvedMessage,$=xe(c.default)||He(c.default)?He(c.default)?s?l:()=>l:c.default:o?s?l:()=>l:"",b=o||$!=="",_=Fi(e,c);f&&U0(c);let[y,p,m]=S?[l,_,i[_]||at()]:Qp(e,l,_,r,h,u),x=y,d=l;if(!S&&!(xe(x)||xo(x)||Qt(x))&&b&&(x=$,d=x),!S&&(!(xe(x)||xo(x)||Qt(x))||!xe(p)))return a?ar:l;let P=!1;const g=()=>{P=!0},C=Qt(x)?x:ed(e,l,p,x,d,g);if(P)return x;const A=V0(e,p,m,c),U=y0(A),H=K0(e,C,U);let Y=n?n(H,l):H;if(f&&xe(Y)&&(Y=h$(Y)),__INTLIFY_PROD_DEVTOOLS__){const K={timestamp:Date.now(),key:xe(l)?l:Qt(x)?x.key:"",locale:p||(Qt(x)?x.locale:""),format:xe(x)?x:Qt(x)?x.source:"",message:Y};K.meta=Et({},e.__meta,M0()||{}),v0(K)}return Y}function U0(e){dt(e.list)?e.list=e.list.map(t=>xe(t)?hp(t):t):Ze(e.named)&&Object.keys(e.named).forEach(t=>{xe(e.named[t])&&(e.named[t]=hp(e.named[t]))})}function Qp(e,t,o,n,a,s){const{messages:r,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,o);let h=at(),f,S=null;const $="translate";for(let b=0;bn;return c.locale=o,c.key=t,c}const l=r(n,H0(e,o,a,n,i,s));return l.locale=o,l.key=t,l.source=n,l}function K0(e,t,o){return t(o)}function ji(...e){const[t,o,n]=e,a=at();if(!xe(t)&&!_t(t)&&!Qt(t)&&!xo(t))throw Uo(Ao.INVALID_ARGUMENT);const s=_t(t)?String(t):(Qt(t),t);return _t(o)?a.plural=o:xe(o)?a.default=o:je(o)&&!Js(o)?a.named=o:dt(o)&&(a.list=o),_t(n)?a.plural=n:xe(n)?a.default=n:je(n)&&Et(a,n),[s,a]}function H0(e,t,o,n,a,s){return{locale:t,key:o,warnHtmlMessage:a,onError:r=>{throw s&&s(r),r},onCacheKey:r=>p$(t,o,r)}}function V0(e,t,o,n){const{modifiers:a,pluralRules:s,messageResolver:r,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,f={locale:t,modifiers:a,pluralRules:s,messages:S=>{let $=r(o,S);if($==null&&u){const[,,b]=Qp(u,S,t,i,l,c);$=r(b,S)}if(xe($)||xo($)){let b=!1;const y=ed(e,S,t,$,S,()=>{b=!0});return b?Xp:y}else return Qt($)?$:Xp}};return e.processor&&(f.processor=e.processor),n.list&&(f.list=n.list),n.named&&(f.named=n.named),_t(n.plural)&&(f.pluralIndex=n.plural),f}function td(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__datetimeFormatters:i}=e,[l,c,u,h]=zi(...t),f=He(u.missingWarn)?u.missingWarn:e.missingWarn;He(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const S=!!u.part,$=Fi(e,u),b=r(e,a,$);if(!xe(l)||l==="")return new Intl.DateTimeFormat($,h).format(c);let _={},y,p=null;const m="datetime format";for(let P=0;P{od.includes(l)?r[l]=o[l]:s[l]=o[l]}),xe(n)?s.locale=n:je(n)&&(r=n),je(a)&&(r=a),[s.key||"",i,s,r]}function nd(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__datetimeFormatters.has(s)&&n.__datetimeFormatters.delete(s)}}function ad(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__numberFormatters:i}=e,[l,c,u,h]=Ui(...t),f=He(u.missingWarn)?u.missingWarn:e.missingWarn;He(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const S=!!u.part,$=Fi(e,u),b=r(e,a,$);if(!xe(l)||l==="")return new Intl.NumberFormat($,h).format(c);let _={},y,p=null;const m="number format";for(let P=0;P{sd.includes(l)?r[l]=o[l]:s[l]=o[l]}),xe(n)?s.locale=n:je(n)&&(r=n),je(a)&&(r=a),[s.key||"",i,s,r]}function rd(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__numberFormatters.has(s)&&n.__numberFormatters.delete(s)}}Z$();/*! + */function p0(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Ga().__INTLIFY_PROD_DEVTOOLS__=!1)}function ko(e){return Ze(e)&&Fi(e)===0&&(io(e,"b")||io(e,"body"))}const Lp=["b","body"];function d0(e){return an(e,Lp)}const Cp=["c","cases"];function g0(e){return an(e,Cp,[])}const Ep=["s","static"];function f0(e){return an(e,Ep)}const Tp=["i","items"];function h0(e){return an(e,Tp,[])}const Rp=["t","type"];function Fi(e){return an(e,Rp)}const Np=["v","value"];function ar(e,t){const o=an(e,Np);if(o!=null)return o;throw Ba(t)}const Mp=["m","modifier"];function m0(e){return an(e,Mp)}const Fp=["k","key"];function b0(e){const t=an(e,Fp);if(t)return t;throw Ba(6)}function an(e,t,o){for(let n=0;n{r===void 0?r=i:r+=i},f[1]=()=>{r!==void 0&&(t.push(r),r=void 0)},f[2]=()=>{f[0](),a++},f[3]=()=>{if(a>0)a--,n=4,f[0]();else{if(a=0,r===void 0||(r=w0(r),r===!1))return!1;f[1]()}};function P(){const w=e[o+1];if(n===5&&w==="'"||n===6&&w==='"')return o++,i="\\"+w,f[0](),!0}for(;n!==null;)if(o++,s=e[o],!(s==="\\"&&P())){if(l=v0(s),h=sn[n],c=h[l]||h.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=f[c[1]],u&&(i=s,u()===!1))))return;if(n===7)return t}}const Op=new Map;function x0(e,t){return Ze(e)?e[t]:null}function A0(e,t){if(!Ze(e))return null;let o=Op.get(t);if(o||(o=k0(t),o&&Op.set(t,o)),!o)return null;const n=o.length;let a=e,s=0;for(;se,P0=e=>"",L0="text",C0=e=>e.length===0?"":M$(e),E0=N$;function Dp(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function T0(e){const t=_t(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(_t(e.named.count)||_t(e.named.n))?_t(e.named.count)?e.named.count:_t(e.named.n)?e.named.n:t:t}function R0(e,t){t.count||(t.count=e),t.n||(t.n=e)}function N0(e={}){const t=e.locale,o=T0(e),n=Ze(e.pluralRules)&&we(t)&&ct(e.pluralRules[t])?e.pluralRules[t]:Dp,a=Ze(e.pluralRules)&&we(t)&&ct(e.pluralRules[t])?Dp:void 0,s=b=>b[n(o,b.length,a)],r=e.list||[],i=b=>r[b],l=e.named||nt();_t(e.pluralIndex)&&R0(o,l);const c=b=>l[b];function u(b){const d=ct(e.messages)?e.messages(b):Ze(e.messages)?e.messages[b]:!1;return d||(e.parent?e.parent.message(b):P0)}const h=b=>e.modifiers?e.modifiers[b]:S0,f=je(e.processor)&&ct(e.processor.normalize)?e.processor.normalize:C0,P=je(e.processor)&&ct(e.processor.interpolate)?e.processor.interpolate:E0,w=je(e.processor)&&we(e.processor.type)?e.processor.type:L0,y={list:i,named:c,plural:s,linked:(b,...d)=>{const[g,S]=d;let C="text",p="";d.length===1?Ze(g)?(p=g.modifier||p,C=g.type||C):we(g)&&(p=g||p):d.length===2&&(we(g)&&(p=g||p),we(S)&&(C=S||C));const v=u(b)(y),$=C==="vnode"&>(v)&&p?v[0]:v;return p?h(p)($,C):$},message:u,type:w,interpolate:P,normalize:f,values:Tt(nt(),r,l)};return y}let ja=null;function M0(e){ja=e}function F0(e,t,o){ja&&ja.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const I0=O0("function:translate");function O0(e){return t=>ja&&ja.emit(e,t)}const D0=Ni.__EXTEND_POINT__,wn=er(D0),G0={FALLBACK_TO_TRANSLATE:wn(),CANNOT_FORMAT_NUMBER:wn(),FALLBACK_TO_NUMBER_FORMAT:wn(),CANNOT_FORMAT_DATE:wn(),FALLBACK_TO_DATE_FORMAT:wn(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:wn(),__EXTEND_POINT__:wn()},Gp=Oe.__EXTEND_POINT__,kn=er(Gp),xo={INVALID_ARGUMENT:Gp,INVALID_DATE_ARGUMENT:kn(),INVALID_ISO_DATE_ARGUMENT:kn(),NOT_SUPPORT_NON_STRING_MESSAGE:kn(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:kn(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:kn(),NOT_SUPPORT_LOCALE_TYPE:kn(),__EXTEND_POINT__:kn()};function Uo(e){return Zn(e,null,void 0)}function Ii(e,t){return t.locale!=null?Bp(t.locale):Bp(e.locale)}let Oi;function Bp(e){if(we(e))return e;if(ct(e)){if(e.resolvedOnce&&Oi!=null)return Oi;if(e.constructor.name==="Function"){const t=e();if(R$(t))throw Uo(xo.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Oi=t}else throw Uo(xo.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Uo(xo.NOT_SUPPORT_LOCALE_TYPE)}function B0(e,t,o){return[...new Set([o,...gt(t)?t:Ze(t)?Object.keys(t):we(t)?[t]:[o]])]}function jp(e,t,o){const n=we(o)?o:Qn,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let s=a.__localeChainCache.get(n);if(!s){s=[];let r=[o];for(;gt(r);)r=zp(s,r,t);const i=gt(t)||!je(t)?t:t.default?t.default:null;r=we(i)?[i]:i,gt(r)&&zp(s,r,!1),a.__localeChainCache.set(n,s)}return s}function zp(e,t,o){let n=!0;for(let a=0;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function H0(){return{upper:(e,t)=>t==="text"&&we(e)?e.toUpperCase():t==="vnode"&&Ze(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&we(e)?e.toLowerCase():t==="vnode"&&Ze(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&we(e)?Hp(e):t==="vnode"&&Ze(e)&&"__v_isVNode"in e?Hp(e.children):e}}let Kp;function K0(e){Kp=e}let Vp;function V0(e){Vp=e}let Wp;function W0(e){Wp=e}let qp=null;const q0=e=>{qp=e},Y0=()=>qp;let Yp=null;const Zp=e=>{Yp=e},Z0=()=>Yp;let Xp=0;function X0(e={}){const t=ct(e.onWarn)?e.onWarn:A$,o=we(e.version)?e.version:U0,n=we(e.locale)||ct(e.locale)?e.locale:Qn,a=ct(n)?Qn:n,s=gt(e.fallbackLocale)||je(e.fallbackLocale)||we(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,r=je(e.messages)?e.messages:Di(a),i=je(e.datetimeFormats)?e.datetimeFormats:Di(a),l=je(e.numberFormats)?e.numberFormats:Di(a),c=Tt(nt(),e.modifiers,H0()),u=e.pluralRules||nt(),h=ct(e.missing)?e.missing:null,f=Ve(e.missingWarn)||on(e.missingWarn)?e.missingWarn:!0,P=Ve(e.fallbackWarn)||on(e.fallbackWarn)?e.fallbackWarn:!0,w=!!e.fallbackFormat,m=!!e.unresolving,y=ct(e.postTranslation)?e.postTranslation:null,b=je(e.processor)?e.processor:null,d=Ve(e.warnHtmlMessage)?e.warnHtmlMessage:!0,g=!!e.escapeParameter,S=ct(e.messageCompiler)?e.messageCompiler:Kp,C=ct(e.messageResolver)?e.messageResolver:Vp||x0,p=ct(e.localeFallbacker)?e.localeFallbacker:Wp||B0,v=Ze(e.fallbackContext)?e.fallbackContext:void 0,$=e,A=Ze($.__datetimeFormatters)?$.__datetimeFormatters:new Map,j=Ze($.__numberFormatters)?$.__numberFormatters:new Map,K=Ze($.__meta)?$.__meta:{};Xp++;const Q={version:o,cid:Xp,locale:n,fallbackLocale:s,messages:r,modifiers:c,pluralRules:u,missing:h,missingWarn:f,fallbackWarn:P,fallbackFormat:w,unresolving:m,postTranslation:y,processor:b,warnHtmlMessage:d,escapeParameter:g,messageCompiler:S,messageResolver:C,localeFallbacker:p,fallbackContext:v,onWarn:t,__meta:K};return Q.datetimeFormats=i,Q.numberFormats=l,Q.__datetimeFormatters=A,Q.__numberFormatters=j,__INTLIFY_PROD_DEVTOOLS__&&F0(Q,o,K),Q}const Di=e=>({[e]:nt()});function Gi(e,t,o,n,a){const{missing:s,onWarn:r}=e;if(s!==null){const i=s(e,o,t,a);return we(i)?i:t}else return t}function za(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function J0(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function Q0(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;nev(o,e)}function ev(e,t){const o=d0(t);if(o==null)throw Ba(0);if(Fi(o)===1){const s=g0(o);return e.plural(s.reduce((r,i)=>[...r,Jp(e,i)],[]))}else return Jp(e,o)}function Jp(e,t){const o=f0(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=h0(t).reduce((a,s)=>[...a,ji(e,s)],[]);return e.normalize(n)}}function ji(e,t){const o=Fi(t);switch(o){case 3:return ar(t,o);case 9:return ar(t,o);case 4:{const n=t;if(io(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(io(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw Ba(o)}case 5:{const n=t;if(io(n,"i")&&_t(n.i))return e.interpolate(e.list(n.i));if(io(n,"index")&&_t(n.index))return e.interpolate(e.list(n.index));throw Ba(o)}case 6:{const n=t,a=m0(n),s=b0(n);return e.linked(ji(e,s),a?ji(e,a):void 0,e.type)}case 7:return ar(t,o);case 8:return ar(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const tv=e=>e;let rr=nt();function ov(e,t={}){let o=!1;const n=t.onError||j$;return t.onError=a=>{o=!0,n(a)},{...u0(e,t),detectError:o}}function nv(e,t){if(we(e)){Ve(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||tv)(e),a=rr[n];if(a)return a;const{ast:s,detectError:r}=ov(e,{...t,location:!1,jit:!0}),i=Bi(s);return r?i:rr[n]=i}else{const o=e.cacheKey;if(o){const n=rr[o];return n||(rr[o]=Bi(e))}else return Bi(e)}}const Qp=()=>"",eo=e=>ct(e);function ed(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:s,fallbackLocale:r,messages:i}=e,[l,c]=zi(...t),u=Ve(c.missingWarn)?c.missingWarn:e.missingWarn,h=Ve(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,f=Ve(c.escapeParameter)?c.escapeParameter:e.escapeParameter,P=!!c.resolvedMessage,w=we(c.default)||Ve(c.default)?Ve(c.default)?s?l:()=>l:c.default:o?s?l:()=>l:"",m=o||w!=="",y=Ii(e,c);f&&av(c);let[b,d,g]=P?[l,y,i[y]||nt()]:td(e,l,y,r,h,u),S=b,C=l;if(!P&&!(we(S)||ko(S)||eo(S))&&m&&(S=w,C=S),!P&&(!(we(S)||ko(S)||eo(S))||!we(d)))return a?sr:l;let p=!1;const v=()=>{p=!0},$=eo(S)?S:od(e,l,d,S,C,v);if(p)return S;const A=iv(e,d,g,c),j=N0(A),K=sv(e,$,j);let Q=n?n(K,l):K;if(f&&we(Q)&&(Q=E$(Q)),__INTLIFY_PROD_DEVTOOLS__){const H={timestamp:Date.now(),key:we(l)?l:eo(S)?S.key:"",locale:d||(eo(S)?S.locale:""),format:we(S)?S:eo(S)?S.source:"",message:Q};H.meta=Tt({},e.__meta,Y0()||{}),I0(H)}return Q}function av(e){gt(e.list)?e.list=e.list.map(t=>we(t)?bp(t):t):Ze(e.named)&&Object.keys(e.named).forEach(t=>{we(e.named[t])&&(e.named[t]=bp(e.named[t]))})}function td(e,t,o,n,a,s){const{messages:r,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,o);let h=nt(),f,P=null;const w="translate";for(let m=0;mn;return c.locale=o,c.key=t,c}const l=r(n,rv(e,o,a,n,i,s));return l.locale=o,l.key=t,l.source=n,l}function sv(e,t,o){return t(o)}function zi(...e){const[t,o,n]=e,a=nt();if(!we(t)&&!_t(t)&&!eo(t)&&!ko(t))throw Uo(xo.INVALID_ARGUMENT);const s=_t(t)?String(t):(eo(t),t);return _t(o)?a.plural=o:we(o)?a.default=o:je(o)&&!Qs(o)?a.named=o:gt(o)&&(a.list=o),_t(n)?a.plural=n:we(n)?a.default=n:je(n)&&Tt(a,n),[s,a]}function rv(e,t,o,n,a,s){return{locale:t,key:o,warnHtmlMessage:a,onError:r=>{throw s&&s(r),r},onCacheKey:r=>S$(t,o,r)}}function iv(e,t,o,n){const{modifiers:a,pluralRules:s,messageResolver:r,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,f={locale:t,modifiers:a,pluralRules:s,messages:P=>{let w=r(o,P);if(w==null&&u){const[,,m]=td(u,P,t,i,l,c);w=r(m,P)}if(we(w)||ko(w)){let m=!1;const b=od(e,P,t,w,P,()=>{m=!0});return m?Qp:b}else return eo(w)?w:Qp}};return e.processor&&(f.processor=e.processor),n.list&&(f.list=n.list),n.named&&(f.named=n.named),_t(n.plural)&&(f.pluralIndex=n.plural),f}function nd(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__datetimeFormatters:i}=e,[l,c,u,h]=Ui(...t),f=Ve(u.missingWarn)?u.missingWarn:e.missingWarn;Ve(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const P=!!u.part,w=Ii(e,u),m=r(e,a,w);if(!we(l)||l==="")return new Intl.DateTimeFormat(w,h).format(c);let y={},b,d=null;const g="datetime format";for(let p=0;p{ad.includes(l)?r[l]=o[l]:s[l]=o[l]}),we(n)?s.locale=n:je(n)&&(r=n),je(a)&&(r=a),[s.key||"",i,s,r]}function sd(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__datetimeFormatters.has(s)&&n.__datetimeFormatters.delete(s)}}function rd(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__numberFormatters:i}=e,[l,c,u,h]=Hi(...t),f=Ve(u.missingWarn)?u.missingWarn:e.missingWarn;Ve(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const P=!!u.part,w=Ii(e,u),m=r(e,a,w);if(!we(l)||l==="")return new Intl.NumberFormat(w,h).format(c);let y={},b,d=null;const g="number format";for(let p=0;p{id.includes(l)?r[l]=o[l]:s[l]=o[l]}),we(n)?s.locale=n:je(n)&&(r=n),je(a)&&(r=a),[s.key||"",i,s,r]}function ld(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__numberFormatters.has(s)&&n.__numberFormatters.delete(s)}}p0();/*! * vue-i18n v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */const W0="9.14.5";function q0(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Da().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Da().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Da().__INTLIFY_PROD_DEVTOOLS__=!1)}const Y0=x0.__EXTEND_POINT__,Ko=Qs(Y0);Ko(),Ko(),Ko(),Ko(),Ko(),Ko(),Ko(),Ko(),Ko();const id=Ao.__EXTEND_POINT__,Kt=Qs(id),xt={UNEXPECTED_RETURN_TYPE:id,INVALID_ARGUMENT:Kt(),MUST_BE_CALL_SETUP_TOP:Kt(),NOT_INSTALLED:Kt(),NOT_AVAILABLE_IN_LEGACY_MODE:Kt(),REQUIRED_VALUE:Kt(),INVALID_VALUE:Kt(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Kt(),NOT_INSTALLED_WITH_PROVIDE:Kt(),UNEXPECTED_ERROR:Kt(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Kt(),BRIDGE_SUPPORT_VUE_2_ONLY:Kt(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Kt(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Kt(),__EXTEND_POINT__:Kt()};function Pt(e,...t){return Zn(e,null,void 0)}const Ki=tn("__translateVNode"),Hi=tn("__datetimeParts"),Vi=tn("__numberParts"),ld=tn("__setPluralRules"),cd=tn("__injectWithOption"),Wi=tn("__dispose");function za(e){if(!Ze(e)||xo(e))return e;for(const t in e)if(io(e,t))if(!t.includes("."))Ze(e[t])&&za(e[t]);else{const o=t.split("."),n=o.length-1;let a=e,s=!1;for(let r=0;r{if("locale"in i&&"resource"in i){const{locale:l,resource:c}=i;l?(r[l]=r[l]||at(),tr(c,r[l])):tr(c,r)}else xe(i)&&tr(JSON.parse(i),r)}),a==null&&s)for(const i in r)io(r,i)&&za(r[i]);return r}function ud(e){return e.type}function pd(e,t,o){let n=Ze(t.messages)?t.messages:at();"__i18nGlobal"in o&&(n=rr(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(s=>{e.mergeLocaleMessage(s,n[s])});{if(Ze(t.datetimeFormats)){const s=Object.keys(t.datetimeFormats);s.length&&s.forEach(r=>{e.mergeDateTimeFormat(r,t.datetimeFormats[r])})}if(Ze(t.numberFormats)){const s=Object.keys(t.numberFormats);s.length&&s.forEach(r=>{e.mergeNumberFormat(r,t.numberFormats[r])})}}}function dd(e){return nt(Ca,null,e,0)}const gd="__INTLIFY_META__",fd=()=>[],Z0=()=>!1;let hd=0;function md(e){return(t,o,n,a)=>e(o,n,ko()||void 0,a)}const X0=()=>{const e=ko();let t=null;return e&&(t=ud(e)[gd])?{[gd]:t}:null};function qi(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,s=e.flatJson,r=Xs?me:$a,i=!!e.translateExistCompatible;let l=He(e.inheritLocale)?e.inheritLocale:!0;const c=r(o&&l?o.locale.value:xe(e.locale)?e.locale:Qn),u=r(o&&l?o.fallbackLocale.value:xe(e.fallbackLocale)||dt(e.fallbackLocale)||je(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),h=r(rr(c.value,e)),f=r(je(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),S=r(je(e.numberFormats)?e.numberFormats:{[c.value]:{}});let $=o?o.missingWarn:He(e.missingWarn)||on(e.missingWarn)?e.missingWarn:!0,b=o?o.fallbackWarn:He(e.fallbackWarn)||on(e.fallbackWarn)?e.fallbackWarn:!0,_=o?o.fallbackRoot:He(e.fallbackRoot)?e.fallbackRoot:!0,y=!!e.fallbackFormat,p=ut(e.missing)?e.missing:null,m=ut(e.missing)?md(e.missing):null,x=ut(e.postTranslation)?e.postTranslation:null,d=o?o.warnHtmlMessage:He(e.warnHtmlMessage)?e.warnHtmlMessage:!0,P=!!e.escapeParameter;const g=o?o.modifiers:je(e.modifiers)?e.modifiers:{};let C=e.pluralRules||o&&o.pluralRules,A;A=(()=>{a&&qp(null);const te={version:W0,locale:c.value,fallbackLocale:u.value,messages:h.value,modifiers:g,pluralRules:C,missing:m===null?void 0:m,missingWarn:$,fallbackWarn:b,fallbackFormat:y,unresolving:!0,postTranslation:x===null?void 0:x,warnHtmlMessage:d,escapeParameter:P,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};te.datetimeFormats=f.value,te.numberFormats=S.value,te.__datetimeFormatters=je(A)?A.__datetimeFormatters:void 0,te.__numberFormatters=je(A)?A.__numberFormatters:void 0;const ce=I0(te);return a&&qp(ce),ce})(),ja(A,c.value,u.value);function H(){return[c.value,u.value,h.value,f.value,S.value]}const Y=ne({get:()=>c.value,set:te=>{c.value=te,A.locale=c.value}}),K=ne({get:()=>u.value,set:te=>{u.value=te,A.fallbackLocale=u.value,ja(A,c.value,te)}}),le=ne(()=>h.value),G=ne(()=>f.value),k=ne(()=>S.value);function z(){return ut(x)?x:null}function M(te){x=te,A.postTranslation=te}function R(){return p}function j(te){te!==null&&(m=md(te)),p=te,A.missing=m}const J=(te,ce,Te,Ee,We,st)=>{H();let et;try{__INTLIFY_PROD_DEVTOOLS__,a||(A.fallbackContext=o?F0():void 0),et=te(A)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(A.fallbackContext=void 0)}if(Te!=="translate exists"&&_t(et)&&et===ar||Te==="translate exists"&&!et){const[V,re]=ce();return o&&_?Ee(o):We(V)}else{if(st(et))return et;throw Pt(xt.UNEXPECTED_RETURN_TYPE)}};function D(...te){return J(ce=>Reflect.apply(Jp,null,[ce,...te]),()=>ji(...te),"translate",ce=>Reflect.apply(ce.t,ce,[...te]),ce=>ce,ce=>xe(ce))}function he(...te){const[ce,Te,Ee]=te;if(Ee&&!Ze(Ee))throw Pt(xt.INVALID_ARGUMENT);return D(ce,Te,Et({resolvedMessage:!0},Ee||{}))}function $e(...te){return J(ce=>Reflect.apply(td,null,[ce,...te]),()=>zi(...te),"datetime format",ce=>Reflect.apply(ce.d,ce,[...te]),()=>jp,ce=>xe(ce))}function Le(...te){return J(ce=>Reflect.apply(ad,null,[ce,...te]),()=>Ui(...te),"number format",ce=>Reflect.apply(ce.n,ce,[...te]),()=>jp,ce=>xe(ce))}function ke(te){return te.map(ce=>xe(ce)||_t(ce)||He(ce)?dd(String(ce)):ce)}const Z={normalize:ke,interpolate:te=>te,type:"vnode"};function X(...te){return J(ce=>{let Te;const Ee=ce;try{Ee.processor=Z,Te=Reflect.apply(Jp,null,[Ee,...te])}finally{Ee.processor=null}return Te},()=>ji(...te),"translate",ce=>ce[Ki](...te),ce=>[dd(ce)],ce=>dt(ce))}function ie(...te){return J(ce=>Reflect.apply(ad,null,[ce,...te]),()=>Ui(...te),"number format",ce=>ce[Vi](...te),fd,ce=>xe(ce)||dt(ce))}function Ce(...te){return J(ce=>Reflect.apply(td,null,[ce,...te]),()=>zi(...te),"datetime format",ce=>ce[Hi](...te),fd,ce=>xe(ce)||dt(ce))}function E(te){C=te,A.pluralRules=C}function O(te,ce){return J(()=>{if(!te)return!1;const Te=xe(ce)?ce:c.value,Ee=Q(Te),We=A.messageResolver(Ee,te);return i?We!=null:xo(We)||Qt(We)||xe(We)},()=>[te],"translate exists",Te=>Reflect.apply(Te.te,Te,[te,ce]),Z0,Te=>He(Te))}function N(te){let ce=null;const Te=Bp(A,u.value,c.value);for(let Ee=0;Ee{l&&(c.value=te,A.locale=te,ja(A,c.value,u.value))}),Fe(o.fallbackLocale,te=>{l&&(u.value=te,A.fallbackLocale=te,ja(A,c.value,u.value))}));const pe={id:hd,locale:Y,fallbackLocale:K,get inheritLocale(){return l},set inheritLocale(te){l=te,te&&o&&(c.value=o.locale.value,u.value=o.fallbackLocale.value,ja(A,c.value,u.value))},get availableLocales(){return Object.keys(h.value).sort()},messages:le,get modifiers(){return g},get pluralRules(){return C||{}},get isGlobal(){return a},get missingWarn(){return $},set missingWarn(te){$=te,A.missingWarn=$},get fallbackWarn(){return b},set fallbackWarn(te){b=te,A.fallbackWarn=b},get fallbackRoot(){return _},set fallbackRoot(te){_=te},get fallbackFormat(){return y},set fallbackFormat(te){y=te,A.fallbackFormat=y},get warnHtmlMessage(){return d},set warnHtmlMessage(te){d=te,A.warnHtmlMessage=te},get escapeParameter(){return P},set escapeParameter(te){P=te,A.escapeParameter=te},t:D,getLocaleMessage:Q,setLocaleMessage:F,mergeLocaleMessage:ue,getPostTranslationHandler:z,setPostTranslationHandler:M,getMissingHandler:R,setMissingHandler:j,[ld]:E};return pe.datetimeFormats=G,pe.numberFormats=k,pe.rt=he,pe.te=O,pe.tm=q,pe.d=$e,pe.n=Le,pe.getDateTimeFormat=oe,pe.setDateTimeFormat=w,pe.mergeDateTimeFormat=v,pe.getNumberFormat=B,pe.setNumberFormat=ee,pe.mergeNumberFormat=be,pe[cd]=n,pe[Ki]=X,pe[Hi]=Ce,pe[Vi]=ie,pe}function J0(e){const t=xe(e.locale)?e.locale:Qn,o=xe(e.fallbackLocale)||dt(e.fallbackLocale)||je(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=ut(e.missing)?e.missing:void 0,a=He(e.silentTranslationWarn)||on(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,s=He(e.silentFallbackWarn)||on(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,r=He(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=je(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=ut(e.postTranslation)?e.postTranslation:void 0,h=xe(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,f=!!e.escapeParameterHtml,S=He(e.sync)?e.sync:!0;let $=e.messages;if(je(e.sharedMessages)){const P=e.sharedMessages;$=Object.keys(P).reduce((C,A)=>{const U=C[A]||(C[A]={});return Et(U,P[A]),C},$||{})}const{__i18n:b,__root:_,__injectWithOption:y}=e,p=e.datetimeFormats,m=e.numberFormats,x=e.flatJson,d=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:$,flatJson:x,datetimeFormats:p,numberFormats:m,missing:n,missingWarn:a,fallbackWarn:s,fallbackRoot:r,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:h,escapeParameter:f,messageResolver:e.messageResolver,inheritLocale:S,translateExistCompatible:d,__i18n:b,__root:_,__injectWithOption:y}}function Yi(e={},t){{const o=qi(J0(e)),{__extender:n}=e,a={id:o.id,get locale(){return o.locale.value},set locale(s){o.locale.value=s},get fallbackLocale(){return o.fallbackLocale.value},set fallbackLocale(s){o.fallbackLocale.value=s},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(s){},get missing(){return o.getMissingHandler()},set missing(s){o.setMissingHandler(s)},get silentTranslationWarn(){return He(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(s){o.missingWarn=He(s)?!s:s},get silentFallbackWarn(){return He(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(s){o.fallbackWarn=He(s)?!s:s},get modifiers(){return o.modifiers},get formatFallbackMessages(){return o.fallbackFormat},set formatFallbackMessages(s){o.fallbackFormat=s},get postTranslation(){return o.getPostTranslationHandler()},set postTranslation(s){o.setPostTranslationHandler(s)},get sync(){return o.inheritLocale},set sync(s){o.inheritLocale=s},get warnHtmlInMessage(){return o.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(s){o.warnHtmlMessage=s!=="off"},get escapeParameterHtml(){return o.escapeParameter},set escapeParameterHtml(s){o.escapeParameter=s},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(s){},get pluralizationRules(){return o.pluralRules||{}},__composer:o,t(...s){const[r,i,l]=s,c={};let u=null,h=null;if(!xe(r))throw Pt(xt.INVALID_ARGUMENT);const f=r;return xe(i)?c.locale=i:dt(i)?u=i:je(i)&&(h=i),dt(l)?u=l:je(l)&&(h=l),Reflect.apply(o.t,o,[f,u||h||{},c])},rt(...s){return Reflect.apply(o.rt,o,[...s])},tc(...s){const[r,i,l]=s,c={plural:1};let u=null,h=null;if(!xe(r))throw Pt(xt.INVALID_ARGUMENT);const f=r;return xe(i)?c.locale=i:_t(i)?c.plural=i:dt(i)?u=i:je(i)&&(h=i),xe(l)?c.locale=l:dt(l)?u=l:je(l)&&(h=l),Reflect.apply(o.t,o,[f,u||h||{},c])},te(s,r){return o.te(s,r)},tm(s){return o.tm(s)},getLocaleMessage(s){return o.getLocaleMessage(s)},setLocaleMessage(s,r){o.setLocaleMessage(s,r)},mergeLocaleMessage(s,r){o.mergeLocaleMessage(s,r)},d(...s){return Reflect.apply(o.d,o,[...s])},getDateTimeFormat(s){return o.getDateTimeFormat(s)},setDateTimeFormat(s,r){o.setDateTimeFormat(s,r)},mergeDateTimeFormat(s,r){o.mergeDateTimeFormat(s,r)},n(...s){return Reflect.apply(o.n,o,[...s])},getNumberFormat(s){return o.getNumberFormat(s)},setNumberFormat(s,r){o.setNumberFormat(s,r)},mergeNumberFormat(s,r){o.mergeNumberFormat(s,r)},getChoiceIndex(s,r){return-1}};return a.__extender=n,a}}const Zi={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function Q0({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===Ke?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},at())}function bd(e){return Ke}const yd=Aa({name:"i18n-t",props:Et({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>_t(e)||!isNaN(e)}},Zi),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||yt({useScope:e.scope,__useComponent:!0});return()=>{const s=Object.keys(o).filter(h=>h!=="_"),r=at();e.locale&&(r.locale=e.locale),e.plural!==void 0&&(r.plural=xe(e.plural)?+e.plural:e.plural);const i=Q0(t,s),l=a[Ki](e.keypath,i,r),c=Et(at(),n),u=xe(e.tag)||Ze(e.tag)?e.tag:bd();return zu(u,c,l)}}});function ev(e){return dt(e)&&!xe(e[0])}function _d(e,t,o,n){const{slots:a,attrs:s}=t;return()=>{const r={part:!0};let i=at();e.locale&&(r.locale=e.locale),xe(e.format)?r.key=e.format:Ze(e.format)&&(xe(e.format.key)&&(r.key=e.format.key),i=Object.keys(e.format).reduce((f,S)=>o.includes(S)?Et(at(),f,{[S]:e.format[S]}):f,at()));const l=n(e.value,r,i);let c=[r.key];dt(l)?c=l.map((f,S)=>{const $=a[f.type],b=$?$({[f.type]:f.value,index:S,parts:l}):[f.value];return ev(b)&&(b[0].key=`${f.type}-${S}`),b}):xe(l)&&(c=[l]);const u=Et(at(),s),h=xe(e.tag)||Ze(e.tag)?e.tag:bd();return zu(h,u,c)}}const $d=Aa({name:"i18n-n",props:Et({value:{type:Number,required:!0},format:{type:[String,Object]}},Zi),setup(e,t){const o=e.i18n||yt({useScope:e.scope,__useComponent:!0});return _d(e,t,sd,(...n)=>o[Vi](...n))}}),vd=Aa({name:"i18n-d",props:Et({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Zi),setup(e,t){const o=e.i18n||yt({useScope:e.scope,__useComponent:!0});return _d(e,t,od,(...n)=>o[Hi](...n))}});function tv(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 ov(e){const t=r=>{const{instance:i,modifiers:l,value:c}=r;if(!i||!i.$)throw Pt(xt.UNEXPECTED_ERROR);const u=tv(e,i.$),h=wd(c);return[Reflect.apply(u.t,u,[...kd(h)]),u]};return{created:(r,i)=>{const[l,c]=t(i);Xs&&e.global===c&&(r.__i18nWatcher=Fe(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),r.__composer=c,r.textContent=l},unmounted:r=>{Xs&&r.__i18nWatcher&&(r.__i18nWatcher(),r.__i18nWatcher=void 0,delete r.__i18nWatcher),r.__composer&&(r.__composer=void 0,delete r.__composer)},beforeUpdate:(r,{value:i})=>{if(r.__composer){const l=r.__composer,c=wd(i);r.textContent=Reflect.apply(l.t,l,[...kd(c)])}},getSSRProps:r=>{const[i]=t(r);return{textContent:i}}}}function wd(e){if(xe(e))return{path:e};if(je(e)){if(!("path"in e))throw Pt(xt.REQUIRED_VALUE,"path");return e}else throw Pt(xt.INVALID_VALUE)}function kd(e){const{path:t,locale:o,args:n,choice:a,plural:s}=e,r={},i=n||{};return xe(o)&&(r.locale=o),_t(a)&&(r.plural=a),_t(s)&&(r.plural=s),[t,i,r]}function nv(e,t,...o){const n=je(o[0])?o[0]:{},a=!!n.useI18nComponentName;(He(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":yd.name,"I18nT"].forEach(r=>e.component(r,yd)),[$d.name,"I18nN"].forEach(r=>e.component(r,$d)),[vd.name,"I18nD"].forEach(r=>e.component(r,vd))),e.directive("t",ov(t))}function av(e,t,o){return{beforeCreate(){const n=ko();if(!n)throw Pt(xt.UNEXPECTED_ERROR);const a=this.$options;if(a.i18n){const s=a.i18n;if(a.__i18n&&(s.__i18n=a.__i18n),s.__root=t,this===this.$root)this.$i18n=xd(e,s);else{s.__injectWithOption=!0,s.__extender=o.__vueI18nExtend,this.$i18n=Yi(s);const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=xd(e,a);else{this.$i18n=Yi({__i18n:a.__i18n,__injectWithOption:!0,__extender:o.__vueI18nExtend,__root:t});const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}else this.$i18n=e;a.__i18nGlobal&&pd(t,a,a),this.$t=(...s)=>this.$i18n.t(...s),this.$rt=(...s)=>this.$i18n.rt(...s),this.$tc=(...s)=>this.$i18n.tc(...s),this.$te=(s,r)=>this.$i18n.te(s,r),this.$d=(...s)=>this.$i18n.d(...s),this.$n=(...s)=>this.$i18n.n(...s),this.$tm=s=>this.$i18n.tm(s),o.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=ko();if(!n)throw Pt(xt.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 xd(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[ld](t.pluralizationRules||e.pluralizationRules);const o=rr(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 sv=tn("global-vue-i18n");function rv(e={},t){const o=__VUE_I18N_LEGACY_API__&&He(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=He(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,s=new Map,[r,i]=iv(e,o),l=tn("");function c(f){return s.get(f)||null}function u(f,S){s.set(f,S)}function h(f){s.delete(f)}{const f={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(S,...$){if(S.__VUE_I18N_SYMBOL__=l,S.provide(S.__VUE_I18N_SYMBOL__,f),je($[0])){const y=$[0];f.__composerExtend=y.__composerExtend,f.__vueI18nExtend=y.__vueI18nExtend}let b=null;!o&&n&&(b=mv(S,f.global)),__VUE_I18N_FULL_INSTALL__&&nv(S,f,...$),__VUE_I18N_LEGACY_API__&&o&&S.mixin(av(i,i.__composer,f));const _=S.unmount;S.unmount=()=>{b&&b(),f.dispose(),_()}},get global(){return i},dispose(){r.stop()},__instances:s,__getInstance:c,__setInstance:u,__deleteInstance:h};return f}}function yt(e={}){const t=ko();if(t==null)throw Pt(xt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Pt(xt.NOT_INSTALLED);const o=lv(t),n=uv(o),a=ud(t),s=cv(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw Pt(xt.NOT_AVAILABLE_IN_LEGACY_MODE);return fv(t,s,n,e)}if(s==="global")return pd(n,e,a),n;if(s==="parent"){let l=pv(o,t,e.__useComponent);return l==null&&(l=n),l}const r=o;let i=r.__getInstance(t);if(i==null){const l=Et({},e);"__i18n"in a&&(l.__i18n=a.__i18n),n&&(l.__root=n),i=qi(l),r.__composerExtend&&(i[Wi]=r.__composerExtend(i)),gv(r,t,i),r.__setInstance(t,i)}return i}function iv(e,t,o){const n=Ur();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>Yi(e)):n.run(()=>qi(e));if(a==null)throw Pt(xt.UNEXPECTED_ERROR);return[n,a]}}function lv(e){{const t=Re(e.isCE?sv:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Pt(e.isCE?xt.NOT_INSTALLED_WITH_PROVIDE:xt.UNEXPECTED_ERROR);return t}}function cv(e,t){return Js(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function uv(e){return e.mode==="composition"?e.global:e.global.__composer}function pv(e,t,o=!1){let n=null;const a=t.root;let s=dv(t,o);for(;s!=null;){const r=e;if(e.mode==="composition")n=r.__getInstance(s);else if(__VUE_I18N_LEGACY_API__){const i=r.__getInstance(s);i!=null&&(n=i.__composer,o&&n&&!n[cd]&&(n=null))}if(n!=null||a===s)break;s=s.parent}return n}function dv(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function gv(e,t,o){_o(()=>{},t),Os(()=>{const n=o;e.__deleteInstance(t);const a=n[Wi];a&&(a(),delete n[Wi])},t)}function fv(e,t,o,n={}){const a=t==="local",s=$a(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw Pt(xt.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const r=He(n.inheritLocale)?n.inheritLocale:!xe(n.locale),i=me(!a||r?o.locale.value:xe(n.locale)?n.locale:Qn),l=me(!a||r?o.fallbackLocale.value:xe(n.fallbackLocale)||dt(n.fallbackLocale)||je(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),c=me(rr(i.value,n)),u=me(je(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),h=me(je(n.numberFormats)?n.numberFormats:{[i.value]:{}}),f=a?o.missingWarn:He(n.missingWarn)||on(n.missingWarn)?n.missingWarn:!0,S=a?o.fallbackWarn:He(n.fallbackWarn)||on(n.fallbackWarn)?n.fallbackWarn:!0,$=a?o.fallbackRoot:He(n.fallbackRoot)?n.fallbackRoot:!0,b=!!n.fallbackFormat,_=ut(n.missing)?n.missing:null,y=ut(n.postTranslation)?n.postTranslation:null,p=a?o.warnHtmlMessage:He(n.warnHtmlMessage)?n.warnHtmlMessage:!0,m=!!n.escapeParameter,x=a?o.modifiers:je(n.modifiers)?n.modifiers:{},d=n.pluralRules||a&&o.pluralRules;function P(){return[i.value,l.value,c.value,u.value,h.value]}const g=ne({get:()=>s.value?s.value.locale.value:i.value,set:N=>{s.value&&(s.value.locale.value=N),i.value=N}}),C=ne({get:()=>s.value?s.value.fallbackLocale.value:l.value,set:N=>{s.value&&(s.value.fallbackLocale.value=N),l.value=N}}),A=ne(()=>s.value?s.value.messages.value:c.value),U=ne(()=>u.value),H=ne(()=>h.value);function Y(){return s.value?s.value.getPostTranslationHandler():y}function K(N){s.value&&s.value.setPostTranslationHandler(N)}function le(){return s.value?s.value.getMissingHandler():_}function G(N){s.value&&s.value.setMissingHandler(N)}function k(N){return P(),N()}function z(...N){return s.value?k(()=>Reflect.apply(s.value.t,null,[...N])):k(()=>"")}function M(...N){return s.value?Reflect.apply(s.value.rt,null,[...N]):""}function R(...N){return s.value?k(()=>Reflect.apply(s.value.d,null,[...N])):k(()=>"")}function j(...N){return s.value?k(()=>Reflect.apply(s.value.n,null,[...N])):k(()=>"")}function J(N){return s.value?s.value.tm(N):{}}function D(N,q){return s.value?s.value.te(N,q):!1}function he(N){return s.value?s.value.getLocaleMessage(N):{}}function $e(N,q){s.value&&(s.value.setLocaleMessage(N,q),c.value[N]=q)}function Le(N,q){s.value&&s.value.mergeLocaleMessage(N,q)}function ke(N){return s.value?s.value.getDateTimeFormat(N):{}}function fe(N,q){s.value&&(s.value.setDateTimeFormat(N,q),u.value[N]=q)}function Z(N,q){s.value&&s.value.mergeDateTimeFormat(N,q)}function X(N){return s.value?s.value.getNumberFormat(N):{}}function ie(N,q){s.value&&(s.value.setNumberFormat(N,q),h.value[N]=q)}function Ce(N,q){s.value&&s.value.mergeNumberFormat(N,q)}const E={get id(){return s.value?s.value.id:-1},locale:g,fallbackLocale:C,messages:A,datetimeFormats:U,numberFormats:H,get inheritLocale(){return s.value?s.value.inheritLocale:r},set inheritLocale(N){s.value&&(s.value.inheritLocale=N)},get availableLocales(){return s.value?s.value.availableLocales:Object.keys(c.value)},get modifiers(){return s.value?s.value.modifiers:x},get pluralRules(){return s.value?s.value.pluralRules:d},get isGlobal(){return s.value?s.value.isGlobal:!1},get missingWarn(){return s.value?s.value.missingWarn:f},set missingWarn(N){s.value&&(s.value.missingWarn=N)},get fallbackWarn(){return s.value?s.value.fallbackWarn:S},set fallbackWarn(N){s.value&&(s.value.missingWarn=N)},get fallbackRoot(){return s.value?s.value.fallbackRoot:$},set fallbackRoot(N){s.value&&(s.value.fallbackRoot=N)},get fallbackFormat(){return s.value?s.value.fallbackFormat:b},set fallbackFormat(N){s.value&&(s.value.fallbackFormat=N)},get warnHtmlMessage(){return s.value?s.value.warnHtmlMessage:p},set warnHtmlMessage(N){s.value&&(s.value.warnHtmlMessage=N)},get escapeParameter(){return s.value?s.value.escapeParameter:m},set escapeParameter(N){s.value&&(s.value.escapeParameter=N)},t:z,getPostTranslationHandler:Y,setPostTranslationHandler:K,getMissingHandler:le,setMissingHandler:G,rt:M,d:R,n:j,tm:J,te:D,getLocaleMessage:he,setLocaleMessage:$e,mergeLocaleMessage:Le,getDateTimeFormat:ke,setDateTimeFormat:fe,mergeDateTimeFormat:Z,getNumberFormat:X,setNumberFormat:ie,mergeNumberFormat:Ce};function O(N){N.locale.value=i.value,N.fallbackLocale.value=l.value,Object.keys(c.value).forEach(q=>{N.mergeLocaleMessage(q,c.value[q])}),Object.keys(u.value).forEach(q=>{N.mergeDateTimeFormat(q,u.value[q])}),Object.keys(h.value).forEach(q=>{N.mergeNumberFormat(q,h.value[q])}),N.escapeParameter=m,N.fallbackFormat=b,N.fallbackRoot=$,N.fallbackWarn=S,N.missingWarn=f,N.warnHtmlMessage=p}return su(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw Pt(xt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const N=s.value=e.proxy.$i18n.__composer;t==="global"?(i.value=N.locale.value,l.value=N.fallbackLocale.value,c.value=N.messages.value,u.value=N.datetimeFormats.value,h.value=N.numberFormats.value):a&&O(N)}),E}const hv=["locale","fallbackLocale","availableLocales"],Ad=["t","rt","d","n","tm","te"];function mv(e,t){const o=Object.create(null);return hv.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s)throw Pt(xt.UNEXPECTED_ERROR);const r=pt(s.value)?{get(){return s.value.value},set(i){s.value.value=i}}:{get(){return s.get&&s.get()}};Object.defineProperty(o,a,r)}),e.config.globalProperties.$i18n=o,Ad.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s||!s.value)throw Pt(xt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,s)}),()=>{delete e.config.globalProperties.$i18n,Ad.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(q0(),T0(z0),E0(u0),R0(Bp),__INTLIFY_PROD_DEVTOOLS__){const e=Da();e.__INTLIFY__=!0,_0(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const bv=Object.assign({"./locales/ar/aria.json":yb,"./locales/ar/buttons.json":_b,"./locales/ar/controls.json":$b,"./locales/ar/dashboard.json":vb,"./locales/ar/detail.json":wb,"./locales/ar/gospel.json":kb,"./locales/ar/grid.json":xb,"./locales/ar/legend.json":Ab,"./locales/ar/messages.json":Sb,"./locales/ar/options.json":Pb,"./locales/ar/popup.json":Lb,"./locales/ar/regions.json":Cb,"./locales/ar/search.json":Tb,"./locales/ar/tabs.json":Eb,"./locales/de/aria.json":Rb,"./locales/de/buttons.json":Nb,"./locales/de/controls.json":Mb,"./locales/de/dashboard.json":Fb,"./locales/de/detail.json":Ib,"./locales/de/gospel.json":Ob,"./locales/de/grid.json":Db,"./locales/de/legend.json":Bb,"./locales/de/messages.json":Gb,"./locales/de/options.json":jb,"./locales/de/popup.json":zb,"./locales/de/regions.json":Ub,"./locales/de/search.json":Kb,"./locales/de/tabs.json":Hb,"./locales/en/aria.json":Vb,"./locales/en/buttons.json":Wb,"./locales/en/controls.json":qb,"./locales/en/dashboard.json":Yb,"./locales/en/detail.json":Zb,"./locales/en/gospel.json":Xb,"./locales/en/grid.json":Jb,"./locales/en/legend.json":Qb,"./locales/en/messages.json":ey,"./locales/en/options.json":ty,"./locales/en/popup.json":oy,"./locales/en/regions.json":ny,"./locales/en/search.json":ay,"./locales/en/tabs.json":sy,"./locales/es/aria.json":ry,"./locales/es/buttons.json":iy,"./locales/es/controls.json":ly,"./locales/es/dashboard.json":cy,"./locales/es/detail.json":uy,"./locales/es/gospel.json":py,"./locales/es/grid.json":dy,"./locales/es/legend.json":gy,"./locales/es/messages.json":fy,"./locales/es/options.json":hy,"./locales/es/popup.json":my,"./locales/es/regions.json":by,"./locales/es/search.json":yy,"./locales/es/tabs.json":_y,"./locales/fr/aria.json":$y,"./locales/fr/buttons.json":vy,"./locales/fr/controls.json":wy,"./locales/fr/dashboard.json":ky,"./locales/fr/detail.json":xy,"./locales/fr/gospel.json":Ay,"./locales/fr/grid.json":Sy,"./locales/fr/legend.json":Py,"./locales/fr/messages.json":Ly,"./locales/fr/options.json":Cy,"./locales/fr/popup.json":Ty,"./locales/fr/regions.json":Ey,"./locales/fr/search.json":Ry,"./locales/fr/tabs.json":Ny,"./locales/hi/aria.json":My,"./locales/hi/buttons.json":Fy,"./locales/hi/controls.json":Iy,"./locales/hi/dashboard.json":Oy,"./locales/hi/detail.json":Dy,"./locales/hi/gospel.json":By,"./locales/hi/grid.json":Gy,"./locales/hi/legend.json":jy,"./locales/hi/messages.json":zy,"./locales/hi/options.json":Uy,"./locales/hi/popup.json":Ky,"./locales/hi/regions.json":Hy,"./locales/hi/search.json":Vy,"./locales/hi/tabs.json":Wy,"./locales/it/aria.json":qy,"./locales/it/buttons.json":Yy,"./locales/it/controls.json":Zy,"./locales/it/dashboard.json":Xy,"./locales/it/detail.json":Jy,"./locales/it/gospel.json":Qy,"./locales/it/grid.json":e_,"./locales/it/legend.json":t_,"./locales/it/messages.json":o_,"./locales/it/options.json":n_,"./locales/it/popup.json":a_,"./locales/it/regions.json":s_,"./locales/it/search.json":r_,"./locales/it/tabs.json":i_,"./locales/pt/aria.json":l_,"./locales/pt/buttons.json":c_,"./locales/pt/controls.json":u_,"./locales/pt/dashboard.json":p_,"./locales/pt/detail.json":d_,"./locales/pt/gospel.json":g_,"./locales/pt/grid.json":f_,"./locales/pt/legend.json":h_,"./locales/pt/messages.json":m_,"./locales/pt/options.json":b_,"./locales/pt/popup.json":y_,"./locales/pt/regions.json":__,"./locales/pt/search.json":$_,"./locales/pt/tabs.json":v_,"./locales/ro/aria.json":w_,"./locales/ro/buttons.json":k_,"./locales/ro/controls.json":x_,"./locales/ro/dashboard.json":A_,"./locales/ro/detail.json":S_,"./locales/ro/gospel.json":P_,"./locales/ro/grid.json":L_,"./locales/ro/legend.json":C_,"./locales/ro/messages.json":T_,"./locales/ro/options.json":E_,"./locales/ro/popup.json":R_,"./locales/ro/regions.json":N_,"./locales/ro/search.json":M_,"./locales/ro/tabs.json":F_,"./locales/ru/aria.json":I_,"./locales/ru/buttons.json":O_,"./locales/ru/controls.json":D_,"./locales/ru/dashboard.json":B_,"./locales/ru/detail.json":G_,"./locales/ru/gospel.json":j_,"./locales/ru/grid.json":z_,"./locales/ru/legend.json":U_,"./locales/ru/messages.json":K_,"./locales/ru/options.json":H_,"./locales/ru/popup.json":V_,"./locales/ru/regions.json":W_,"./locales/ru/search.json":q_,"./locales/ru/tabs.json":Y_,"./locales/zh/aria.json":Z_,"./locales/zh/buttons.json":X_,"./locales/zh/controls.json":J_,"./locales/zh/dashboard.json":Q_,"./locales/zh/detail.json":e$,"./locales/zh/gospel.json":t$,"./locales/zh/grid.json":o$,"./locales/zh/legend.json":n$,"./locales/zh/messages.json":a$,"./locales/zh/options.json":s$,"./locales/zh/popup.json":r$,"./locales/zh/regions.json":i$,"./locales/zh/search.json":l$,"./locales/zh/tabs.json":c$}),xn={};for(const[e,t]of Object.entries(bv)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;xn[n]??(xn[n]={}),xn[n][a]=t}xn.en;const Ua=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],Sd=new Set(["ar"]);function yv(){try{const e=new URLSearchParams(window.location.search);return(e.get("lang")||e.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}}function Pd(){var n;const e=yv();if(Ua.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return Ua.includes(o)?o:"en"}function _v(){const e=Pd();try{typeof window<"u"&&window.MAP_OWNS_PAGE===!0&&Sd.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}const t=rv({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:xn,missingWarn:!1,fallbackWarn:!1});Fe(t.global.locale,n=>Cd(n),{immediate:!0});const o=t.install.bind(t);return t.install=(n,...a)=>{const s=o(n,...a);return n.provide("appI18n",t),s},t}const Ld="__DOXA_PAGE_LOCALE";function Cd(e){const t=String(e||"").split("-")[0].toLowerCase();if(Ua.includes(t))try{typeof window<"u"&&(window[Ld]=t)}catch{}}function $v(){try{return typeof window<"u"&&window[Ld]||""}catch{return""}}function Ka(e,t){const o=a=>{let s=xn[a];for(const r of String(e).split(".")){if(!s||typeof s!="object")return;s=s[r]}return typeof s=="string"?s:void 0},n=t||$v()||Pd();return o(n)??o("en")}function At(e,t){const o=ko(),n=t||(o&&o.type&&o.type.__hmrId?"hmr-"+o.type.__hmrId:vv(e));_o(()=>{var l;if(!o)return;const a=(l=o.proxy)==null?void 0:l.$el;if(!a)return;const s=a.getRootNode();if(!(s instanceof ShadowRoot))return;const r=s.querySelector(`style[data-shadow-styles="${n}"]`);if(r){r.textContent!==e&&(r.textContent=e);return}const i=document.createElement("style");i.setAttribute("data-shadow-styles",n),i.textContent=e,s.appendChild(i)})}function vv(e){let t=0;for(let o=0;ot[C]||C,n=()=>!1;try{const C=yt();o=C.t,n=C.te}catch{}const a=Re("uiStore",null),s=Re("profileConfig",null),r=ne(()=>(a==null?void 0:a.theme)==="dark"),i=ne(()=>{var U;const C=(U=s==null?void 0:s.value)==null?void 0:U.pinHintLabel;if(C)return C;const A="Tap a coloured dot — someone still needs prayer";try{return n("messages.pinHint.tapDot")?o("messages.pinHint.tapDot"):A}catch{return A}}),l=me(!1),c=me(null);let u=null,h=null,f=null,S=null,$=null,b=null,_=[],y=null,p=null;function m(){l.value=!1}function x(C,A){var H;let U=C==null?void 0:C.parentElement;for(let Y=0;U&&Y<12;Y++,U=U.parentElement){if(U===A||(H=U.classList)!=null&&H.contains("profile-loader"))return null;let K="";try{K=getComputedStyle(U).position}catch{}if(K&&K!=="static"){const le=U.getBoundingClientRect();if(le.height>=120&&le.width>=160)return U}}return null}function d(C){var U;const A=(U=S==null?void 0:S.querySelector)==null?void 0:U.call(S,".legend-mobile-sheet");if(!A)return 1/0;if($&&b!==A){try{$.disconnect()}catch{}$=null}if(!$&&typeof ResizeObserver<"u")try{$=new ResizeObserver(()=>P()),$.observe(A),b=A}catch{$=null}try{const H=A.getBoundingClientRect();return!(H.height>16)||!(H.width>16)||C.right<=H.left||H.right<=C.left?1/0:H.top}catch{return 1/0}}function P(){const C=c.value;if(C)try{C.style.removeProperty("--pin-hint-lift");const A=C.getBoundingClientRect();if(!A.height)return;const U=Math.min(window.innerHeight,d(A)),H=Math.round(A.bottom-U);H>0&&C.style.setProperty("--pin-hint-lift",H+8+"px")}catch{}}function g(C){const A=c.value;if(!A||!(C!=null&&C.querySelector))return;let U=0;try{const Y=C.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(Y){const K=Y.getBoundingClientRect(),le=A.parentElement,G=le?le.getBoundingClientRect():null;if(U=G?Math.max(K.height||0,G.bottom-K.top):K.height||0,p!==Y&&typeof ResizeObserver<"u"){if(f)try{f.disconnect()}catch{}p=Y,f=new ResizeObserver(()=>g(C)),f.observe(Y)}}}catch{}const H=Math.min(Math.max(Math.ceil(U)||20,20),72);A.style.setProperty("--pin-hint-attrib-clear",H+"px"),P()}return _o(()=>{var H,Y,K;const C=ko(),A=(K=(Y=(H=C==null?void 0:C.proxy)==null?void 0:H.$el)==null?void 0:Y.getRootNode)==null?void 0:K.call(Y);if(!A||typeof A.querySelector!="function")return;S=A;let U=0;u=setInterval(()=>{U++;const le=A.querySelector("canvas");le?(clearInterval(u),u=null,l.value=!0,Dt(()=>{const G=x(le,A),k=c.value;if(G&&k&&k.parentElement!==G)try{G.appendChild(k),h=G}catch{}g(A),P(),_.push(setTimeout(P,1200),setTimeout(P,3e3),setTimeout(P,6e3));try{const z=c.value&&c.value.offsetParent||null;if(z&&typeof ResizeObserver<"u"){if(y)try{y.disconnect()}catch{}y=new ResizeObserver(()=>P()),y.observe(z)}}catch{}})):U>40&&(clearInterval(u),u=null)},300)}),Jt(()=>{var C;if(u&&clearInterval(u),f){try{f.disconnect()}catch{}f=null}if(p=null,y){try{y.disconnect()}catch{}y=null}if($){try{$.disconnect()}catch{}$=null}b=null;for(const A of _)clearTimeout(A);if(_=[],S=null,h&&((C=c.value)==null?void 0:C.parentElement)===h)try{h.removeChild(c.value)}catch{}h=null}),At(` + */const lv="9.14.5";function cv(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Ga().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Ga().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Ga().__INTLIFY_PROD_DEVTOOLS__=!1)}const uv=G0.__EXTEND_POINT__,Ho=er(uv);Ho(),Ho(),Ho(),Ho(),Ho(),Ho(),Ho(),Ho(),Ho();const cd=xo.__EXTEND_POINT__,Kt=er(cd),kt={UNEXPECTED_RETURN_TYPE:cd,INVALID_ARGUMENT:Kt(),MUST_BE_CALL_SETUP_TOP:Kt(),NOT_INSTALLED:Kt(),NOT_AVAILABLE_IN_LEGACY_MODE:Kt(),REQUIRED_VALUE:Kt(),INVALID_VALUE:Kt(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Kt(),NOT_INSTALLED_WITH_PROVIDE:Kt(),UNEXPECTED_ERROR:Kt(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Kt(),BRIDGE_SUPPORT_VUE_2_ONLY:Kt(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Kt(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Kt(),__EXTEND_POINT__:Kt()};function Pt(e,...t){return Zn(e,null,void 0)}const Ki=tn("__translateVNode"),Vi=tn("__datetimeParts"),Wi=tn("__numberParts"),ud=tn("__setPluralRules"),pd=tn("__injectWithOption"),qi=tn("__dispose");function Ua(e){if(!Ze(e)||ko(e))return e;for(const t in e)if(io(e,t))if(!t.includes("."))Ze(e[t])&&Ua(e[t]);else{const o=t.split("."),n=o.length-1;let a=e,s=!1;for(let r=0;r{if("locale"in i&&"resource"in i){const{locale:l,resource:c}=i;l?(r[l]=r[l]||nt(),or(c,r[l])):or(c,r)}else we(i)&&or(JSON.parse(i),r)}),a==null&&s)for(const i in r)io(r,i)&&Ua(r[i]);return r}function dd(e){return e.type}function gd(e,t,o){let n=Ze(t.messages)?t.messages:nt();"__i18nGlobal"in o&&(n=ir(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(s=>{e.mergeLocaleMessage(s,n[s])});{if(Ze(t.datetimeFormats)){const s=Object.keys(t.datetimeFormats);s.length&&s.forEach(r=>{e.mergeDateTimeFormat(r,t.datetimeFormats[r])})}if(Ze(t.numberFormats)){const s=Object.keys(t.numberFormats);s.length&&s.forEach(r=>{e.mergeNumberFormat(r,t.numberFormats[r])})}}}function fd(e){return ot(Ea,null,e,0)}const hd="__INTLIFY_META__",md=()=>[],pv=()=>!1;let bd=0;function yd(e){return(t,o,n,a)=>e(o,n,wo()||void 0,a)}const dv=()=>{const e=wo();let t=null;return e&&(t=dd(e)[hd])?{[hd]:t}:null};function Yi(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,s=e.flatJson,r=Js?be:va,i=!!e.translateExistCompatible;let l=Ve(e.inheritLocale)?e.inheritLocale:!0;const c=r(o&&l?o.locale.value:we(e.locale)?e.locale:Qn),u=r(o&&l?o.fallbackLocale.value:we(e.fallbackLocale)||gt(e.fallbackLocale)||je(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),h=r(ir(c.value,e)),f=r(je(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),P=r(je(e.numberFormats)?e.numberFormats:{[c.value]:{}});let w=o?o.missingWarn:Ve(e.missingWarn)||on(e.missingWarn)?e.missingWarn:!0,m=o?o.fallbackWarn:Ve(e.fallbackWarn)||on(e.fallbackWarn)?e.fallbackWarn:!0,y=o?o.fallbackRoot:Ve(e.fallbackRoot)?e.fallbackRoot:!0,b=!!e.fallbackFormat,d=ct(e.missing)?e.missing:null,g=ct(e.missing)?yd(e.missing):null,S=ct(e.postTranslation)?e.postTranslation:null,C=o?o.warnHtmlMessage:Ve(e.warnHtmlMessage)?e.warnHtmlMessage:!0,p=!!e.escapeParameter;const v=o?o.modifiers:je(e.modifiers)?e.modifiers:{};let $=e.pluralRules||o&&o.pluralRules,A;A=(()=>{a&&Zp(null);const Y={version:lv,locale:c.value,fallbackLocale:u.value,messages:h.value,modifiers:v,pluralRules:$,missing:g===null?void 0:g,missingWarn:w,fallbackWarn:m,fallbackFormat:b,unresolving:!0,postTranslation:S===null?void 0:S,warnHtmlMessage:C,escapeParameter:p,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};Y.datetimeFormats=f.value,Y.numberFormats=P.value,Y.__datetimeFormatters=je(A)?A.__datetimeFormatters:void 0,Y.__numberFormatters=je(A)?A.__numberFormatters:void 0;const ie=X0(Y);return a&&Zp(ie),ie})(),za(A,c.value,u.value);function K(){return[c.value,u.value,h.value,f.value,P.value]}const Q=te({get:()=>c.value,set:Y=>{c.value=Y,A.locale=c.value}}),H=te({get:()=>u.value,set:Y=>{u.value=Y,A.fallbackLocale=u.value,za(A,c.value,Y)}}),ce=te(()=>h.value),z=te(()=>f.value),x=te(()=>P.value);function D(){return ct(S)?S:null}function M(Y){S=Y,A.postTranslation=Y}function N(){return d}function G(Y){Y!==null&&(g=yd(Y)),d=Y,A.missing=g}const ee=(Y,ie,Ee,Ne,Ke,ut)=>{K();let tt;try{__INTLIFY_PROD_DEVTOOLS__,a||(A.fallbackContext=o?Z0():void 0),tt=Y(A)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(A.fallbackContext=void 0)}if(Ee!=="translate exists"&&_t(tt)&&tt===sr||Ee==="translate exists"&&!tt){const[V,re]=ie();return o&&y?Ne(o):Ke(V)}else{if(ut(tt))return tt;throw Pt(kt.UNEXPECTED_RETURN_TYPE)}};function O(...Y){return ee(ie=>Reflect.apply(ed,null,[ie,...Y]),()=>zi(...Y),"translate",ie=>Reflect.apply(ie.t,ie,[...Y]),ie=>ie,ie=>we(ie))}function ge(...Y){const[ie,Ee,Ne]=Y;if(Ne&&!Ze(Ne))throw Pt(kt.INVALID_ARGUMENT);return O(ie,Ee,Tt({resolvedMessage:!0},Ne||{}))}function $e(...Y){return ee(ie=>Reflect.apply(nd,null,[ie,...Y]),()=>Ui(...Y),"datetime format",ie=>Reflect.apply(ie.d,ie,[...Y]),()=>Up,ie=>we(ie))}function Se(...Y){return ee(ie=>Reflect.apply(rd,null,[ie,...Y]),()=>Hi(...Y),"number format",ie=>Reflect.apply(ie.n,ie,[...Y]),()=>Up,ie=>we(ie))}function ke(Y){return Y.map(ie=>we(ie)||_t(ie)||Ve(ie)?fd(String(ie)):ie)}const X={normalize:ke,interpolate:Y=>Y,type:"vnode"};function pe(...Y){return ee(ie=>{let Ee;const Ne=ie;try{Ne.processor=X,Ee=Reflect.apply(ed,null,[Ne,...Y])}finally{Ne.processor=null}return Ee},()=>zi(...Y),"translate",ie=>ie[Ki](...Y),ie=>[fd(ie)],ie=>gt(ie))}function q(...Y){return ee(ie=>Reflect.apply(rd,null,[ie,...Y]),()=>Hi(...Y),"number format",ie=>ie[Wi](...Y),md,ie=>we(ie)||gt(ie))}function Pe(...Y){return ee(ie=>Reflect.apply(nd,null,[ie,...Y]),()=>Ui(...Y),"datetime format",ie=>ie[Vi](...Y),md,ie=>we(ie)||gt(ie))}function R(Y){$=Y,A.pluralRules=$}function B(Y,ie){return ee(()=>{if(!Y)return!1;const Ee=we(ie)?ie:c.value,Ne=ne(Ee),Ke=A.messageResolver(Ne,Y);return i?Ke!=null:ko(Ke)||eo(Ke)||we(Ke)},()=>[Y],"translate exists",Ee=>Reflect.apply(Ee.te,Ee,[Y,ie]),pv,Ee=>Ve(Ee))}function T(Y){let ie=null;const Ee=jp(A,u.value,c.value);for(let Ne=0;Ne{l&&(c.value=Y,A.locale=Y,za(A,c.value,u.value))}),Fe(o.fallbackLocale,Y=>{l&&(u.value=Y,A.fallbackLocale=Y,za(A,c.value,u.value))}));const he={id:bd,locale:Q,fallbackLocale:H,get inheritLocale(){return l},set inheritLocale(Y){l=Y,Y&&o&&(c.value=o.locale.value,u.value=o.fallbackLocale.value,za(A,c.value,u.value))},get availableLocales(){return Object.keys(h.value).sort()},messages:ce,get modifiers(){return v},get pluralRules(){return $||{}},get isGlobal(){return a},get missingWarn(){return w},set missingWarn(Y){w=Y,A.missingWarn=w},get fallbackWarn(){return m},set fallbackWarn(Y){m=Y,A.fallbackWarn=m},get fallbackRoot(){return y},set fallbackRoot(Y){y=Y},get fallbackFormat(){return b},set fallbackFormat(Y){b=Y,A.fallbackFormat=b},get warnHtmlMessage(){return C},set warnHtmlMessage(Y){C=Y,A.warnHtmlMessage=Y},get escapeParameter(){return p},set escapeParameter(Y){p=Y,A.escapeParameter=Y},t:O,getLocaleMessage:ne,setLocaleMessage:I,mergeLocaleMessage:oe,getPostTranslationHandler:D,setPostTranslationHandler:M,getMissingHandler:N,setMissingHandler:G,[ud]:R};return he.datetimeFormats=z,he.numberFormats=x,he.rt=ge,he.te=B,he.tm=J,he.d=$e,he.n=Se,he.getDateTimeFormat=le,he.setDateTimeFormat=_,he.mergeDateTimeFormat=k,he.getNumberFormat=U,he.setNumberFormat=Z,he.mergeNumberFormat=fe,he[pd]=n,he[Ki]=pe,he[Vi]=Pe,he[Wi]=q,he}function gv(e){const t=we(e.locale)?e.locale:Qn,o=we(e.fallbackLocale)||gt(e.fallbackLocale)||je(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=ct(e.missing)?e.missing:void 0,a=Ve(e.silentTranslationWarn)||on(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,s=Ve(e.silentFallbackWarn)||on(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,r=Ve(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=je(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=ct(e.postTranslation)?e.postTranslation:void 0,h=we(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,f=!!e.escapeParameterHtml,P=Ve(e.sync)?e.sync:!0;let w=e.messages;if(je(e.sharedMessages)){const p=e.sharedMessages;w=Object.keys(p).reduce(($,A)=>{const j=$[A]||($[A]={});return Tt(j,p[A]),$},w||{})}const{__i18n:m,__root:y,__injectWithOption:b}=e,d=e.datetimeFormats,g=e.numberFormats,S=e.flatJson,C=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:w,flatJson:S,datetimeFormats:d,numberFormats:g,missing:n,missingWarn:a,fallbackWarn:s,fallbackRoot:r,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:h,escapeParameter:f,messageResolver:e.messageResolver,inheritLocale:P,translateExistCompatible:C,__i18n:m,__root:y,__injectWithOption:b}}function Zi(e={},t){{const o=Yi(gv(e)),{__extender:n}=e,a={id:o.id,get locale(){return o.locale.value},set locale(s){o.locale.value=s},get fallbackLocale(){return o.fallbackLocale.value},set fallbackLocale(s){o.fallbackLocale.value=s},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(s){},get missing(){return o.getMissingHandler()},set missing(s){o.setMissingHandler(s)},get silentTranslationWarn(){return Ve(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(s){o.missingWarn=Ve(s)?!s:s},get silentFallbackWarn(){return Ve(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(s){o.fallbackWarn=Ve(s)?!s:s},get modifiers(){return o.modifiers},get formatFallbackMessages(){return o.fallbackFormat},set formatFallbackMessages(s){o.fallbackFormat=s},get postTranslation(){return o.getPostTranslationHandler()},set postTranslation(s){o.setPostTranslationHandler(s)},get sync(){return o.inheritLocale},set sync(s){o.inheritLocale=s},get warnHtmlInMessage(){return o.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(s){o.warnHtmlMessage=s!=="off"},get escapeParameterHtml(){return o.escapeParameter},set escapeParameterHtml(s){o.escapeParameter=s},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(s){},get pluralizationRules(){return o.pluralRules||{}},__composer:o,t(...s){const[r,i,l]=s,c={};let u=null,h=null;if(!we(r))throw Pt(kt.INVALID_ARGUMENT);const f=r;return we(i)?c.locale=i:gt(i)?u=i:je(i)&&(h=i),gt(l)?u=l:je(l)&&(h=l),Reflect.apply(o.t,o,[f,u||h||{},c])},rt(...s){return Reflect.apply(o.rt,o,[...s])},tc(...s){const[r,i,l]=s,c={plural:1};let u=null,h=null;if(!we(r))throw Pt(kt.INVALID_ARGUMENT);const f=r;return we(i)?c.locale=i:_t(i)?c.plural=i:gt(i)?u=i:je(i)&&(h=i),we(l)?c.locale=l:gt(l)?u=l:je(l)&&(h=l),Reflect.apply(o.t,o,[f,u||h||{},c])},te(s,r){return o.te(s,r)},tm(s){return o.tm(s)},getLocaleMessage(s){return o.getLocaleMessage(s)},setLocaleMessage(s,r){o.setLocaleMessage(s,r)},mergeLocaleMessage(s,r){o.mergeLocaleMessage(s,r)},d(...s){return Reflect.apply(o.d,o,[...s])},getDateTimeFormat(s){return o.getDateTimeFormat(s)},setDateTimeFormat(s,r){o.setDateTimeFormat(s,r)},mergeDateTimeFormat(s,r){o.mergeDateTimeFormat(s,r)},n(...s){return Reflect.apply(o.n,o,[...s])},getNumberFormat(s){return o.getNumberFormat(s)},setNumberFormat(s,r){o.setNumberFormat(s,r)},mergeNumberFormat(s,r){o.mergeNumberFormat(s,r)},getChoiceIndex(s,r){return-1}};return a.__extender=n,a}}const Xi={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function fv({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===He?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},nt())}function _d(e){return He}const $d=Sa({name:"i18n-t",props:Tt({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>_t(e)||!isNaN(e)}},Xi),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||yt({useScope:e.scope,__useComponent:!0});return()=>{const s=Object.keys(o).filter(h=>h!=="_"),r=nt();e.locale&&(r.locale=e.locale),e.plural!==void 0&&(r.plural=we(e.plural)?+e.plural:e.plural);const i=fv(t,s),l=a[Ki](e.keypath,i,r),c=Tt(nt(),n),u=we(e.tag)||Ze(e.tag)?e.tag:_d();return Hu(u,c,l)}}});function hv(e){return gt(e)&&!we(e[0])}function vd(e,t,o,n){const{slots:a,attrs:s}=t;return()=>{const r={part:!0};let i=nt();e.locale&&(r.locale=e.locale),we(e.format)?r.key=e.format:Ze(e.format)&&(we(e.format.key)&&(r.key=e.format.key),i=Object.keys(e.format).reduce((f,P)=>o.includes(P)?Tt(nt(),f,{[P]:e.format[P]}):f,nt()));const l=n(e.value,r,i);let c=[r.key];gt(l)?c=l.map((f,P)=>{const w=a[f.type],m=w?w({[f.type]:f.value,index:P,parts:l}):[f.value];return hv(m)&&(m[0].key=`${f.type}-${P}`),m}):we(l)&&(c=[l]);const u=Tt(nt(),s),h=we(e.tag)||Ze(e.tag)?e.tag:_d();return Hu(h,u,c)}}const wd=Sa({name:"i18n-n",props:Tt({value:{type:Number,required:!0},format:{type:[String,Object]}},Xi),setup(e,t){const o=e.i18n||yt({useScope:e.scope,__useComponent:!0});return vd(e,t,id,(...n)=>o[Wi](...n))}}),kd=Sa({name:"i18n-d",props:Tt({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Xi),setup(e,t){const o=e.i18n||yt({useScope:e.scope,__useComponent:!0});return vd(e,t,ad,(...n)=>o[Vi](...n))}});function mv(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 bv(e){const t=r=>{const{instance:i,modifiers:l,value:c}=r;if(!i||!i.$)throw Pt(kt.UNEXPECTED_ERROR);const u=mv(e,i.$),h=xd(c);return[Reflect.apply(u.t,u,[...Ad(h)]),u]};return{created:(r,i)=>{const[l,c]=t(i);Js&&e.global===c&&(r.__i18nWatcher=Fe(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),r.__composer=c,r.textContent=l},unmounted:r=>{Js&&r.__i18nWatcher&&(r.__i18nWatcher(),r.__i18nWatcher=void 0,delete r.__i18nWatcher),r.__composer&&(r.__composer=void 0,delete r.__composer)},beforeUpdate:(r,{value:i})=>{if(r.__composer){const l=r.__composer,c=xd(i);r.textContent=Reflect.apply(l.t,l,[...Ad(c)])}},getSSRProps:r=>{const[i]=t(r);return{textContent:i}}}}function xd(e){if(we(e))return{path:e};if(je(e)){if(!("path"in e))throw Pt(kt.REQUIRED_VALUE,"path");return e}else throw Pt(kt.INVALID_VALUE)}function Ad(e){const{path:t,locale:o,args:n,choice:a,plural:s}=e,r={},i=n||{};return we(o)&&(r.locale=o),_t(a)&&(r.plural=a),_t(s)&&(r.plural=s),[t,i,r]}function yv(e,t,...o){const n=je(o[0])?o[0]:{},a=!!n.useI18nComponentName;(Ve(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":$d.name,"I18nT"].forEach(r=>e.component(r,$d)),[wd.name,"I18nN"].forEach(r=>e.component(r,wd)),[kd.name,"I18nD"].forEach(r=>e.component(r,kd))),e.directive("t",bv(t))}function _v(e,t,o){return{beforeCreate(){const n=wo();if(!n)throw Pt(kt.UNEXPECTED_ERROR);const a=this.$options;if(a.i18n){const s=a.i18n;if(a.__i18n&&(s.__i18n=a.__i18n),s.__root=t,this===this.$root)this.$i18n=Sd(e,s);else{s.__injectWithOption=!0,s.__extender=o.__vueI18nExtend,this.$i18n=Zi(s);const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=Sd(e,a);else{this.$i18n=Zi({__i18n:a.__i18n,__injectWithOption:!0,__extender:o.__vueI18nExtend,__root:t});const s=this.$i18n;s.__extender&&(s.__disposer=s.__extender(this.$i18n))}else this.$i18n=e;a.__i18nGlobal&&gd(t,a,a),this.$t=(...s)=>this.$i18n.t(...s),this.$rt=(...s)=>this.$i18n.rt(...s),this.$tc=(...s)=>this.$i18n.tc(...s),this.$te=(s,r)=>this.$i18n.te(s,r),this.$d=(...s)=>this.$i18n.d(...s),this.$n=(...s)=>this.$i18n.n(...s),this.$tm=s=>this.$i18n.tm(s),o.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=wo();if(!n)throw Pt(kt.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 Sd(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[ud](t.pluralizationRules||e.pluralizationRules);const o=ir(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 $v=tn("global-vue-i18n");function vv(e={},t){const o=__VUE_I18N_LEGACY_API__&&Ve(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=Ve(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,s=new Map,[r,i]=wv(e,o),l=tn("");function c(f){return s.get(f)||null}function u(f,P){s.set(f,P)}function h(f){s.delete(f)}{const f={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(P,...w){if(P.__VUE_I18N_SYMBOL__=l,P.provide(P.__VUE_I18N_SYMBOL__,f),je(w[0])){const b=w[0];f.__composerExtend=b.__composerExtend,f.__vueI18nExtend=b.__vueI18nExtend}let m=null;!o&&n&&(m=Tv(P,f.global)),__VUE_I18N_FULL_INSTALL__&&yv(P,f,...w),__VUE_I18N_LEGACY_API__&&o&&P.mixin(_v(i,i.__composer,f));const y=P.unmount;P.unmount=()=>{m&&m(),f.dispose(),y()}},get global(){return i},dispose(){r.stop()},__instances:s,__getInstance:c,__setInstance:u,__deleteInstance:h};return f}}function yt(e={}){const t=wo();if(t==null)throw Pt(kt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Pt(kt.NOT_INSTALLED);const o=kv(t),n=Av(o),a=dd(t),s=xv(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw Pt(kt.NOT_AVAILABLE_IN_LEGACY_MODE);return Cv(t,s,n,e)}if(s==="global")return gd(n,e,a),n;if(s==="parent"){let l=Sv(o,t,e.__useComponent);return l==null&&(l=n),l}const r=o;let i=r.__getInstance(t);if(i==null){const l=Tt({},e);"__i18n"in a&&(l.__i18n=a.__i18n),n&&(l.__root=n),i=Yi(l),r.__composerExtend&&(i[qi]=r.__composerExtend(i)),Lv(r,t,i),r.__setInstance(t,i)}return i}function wv(e,t,o){const n=Hr();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>Zi(e)):n.run(()=>Yi(e));if(a==null)throw Pt(kt.UNEXPECTED_ERROR);return[n,a]}}function kv(e){{const t=Re(e.isCE?$v:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Pt(e.isCE?kt.NOT_INSTALLED_WITH_PROVIDE:kt.UNEXPECTED_ERROR);return t}}function xv(e,t){return Qs(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function Av(e){return e.mode==="composition"?e.global:e.global.__composer}function Sv(e,t,o=!1){let n=null;const a=t.root;let s=Pv(t,o);for(;s!=null;){const r=e;if(e.mode==="composition")n=r.__getInstance(s);else if(__VUE_I18N_LEGACY_API__){const i=r.__getInstance(s);i!=null&&(n=i.__composer,o&&n&&!n[pd]&&(n=null))}if(n!=null||a===s)break;s=s.parent}return n}function Pv(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function Lv(e,t,o){yo(()=>{},t),Ds(()=>{const n=o;e.__deleteInstance(t);const a=n[qi];a&&(a(),delete n[qi])},t)}function Cv(e,t,o,n={}){const a=t==="local",s=va(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw Pt(kt.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const r=Ve(n.inheritLocale)?n.inheritLocale:!we(n.locale),i=be(!a||r?o.locale.value:we(n.locale)?n.locale:Qn),l=be(!a||r?o.fallbackLocale.value:we(n.fallbackLocale)||gt(n.fallbackLocale)||je(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),c=be(ir(i.value,n)),u=be(je(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),h=be(je(n.numberFormats)?n.numberFormats:{[i.value]:{}}),f=a?o.missingWarn:Ve(n.missingWarn)||on(n.missingWarn)?n.missingWarn:!0,P=a?o.fallbackWarn:Ve(n.fallbackWarn)||on(n.fallbackWarn)?n.fallbackWarn:!0,w=a?o.fallbackRoot:Ve(n.fallbackRoot)?n.fallbackRoot:!0,m=!!n.fallbackFormat,y=ct(n.missing)?n.missing:null,b=ct(n.postTranslation)?n.postTranslation:null,d=a?o.warnHtmlMessage:Ve(n.warnHtmlMessage)?n.warnHtmlMessage:!0,g=!!n.escapeParameter,S=a?o.modifiers:je(n.modifiers)?n.modifiers:{},C=n.pluralRules||a&&o.pluralRules;function p(){return[i.value,l.value,c.value,u.value,h.value]}const v=te({get:()=>s.value?s.value.locale.value:i.value,set:T=>{s.value&&(s.value.locale.value=T),i.value=T}}),$=te({get:()=>s.value?s.value.fallbackLocale.value:l.value,set:T=>{s.value&&(s.value.fallbackLocale.value=T),l.value=T}}),A=te(()=>s.value?s.value.messages.value:c.value),j=te(()=>u.value),K=te(()=>h.value);function Q(){return s.value?s.value.getPostTranslationHandler():b}function H(T){s.value&&s.value.setPostTranslationHandler(T)}function ce(){return s.value?s.value.getMissingHandler():y}function z(T){s.value&&s.value.setMissingHandler(T)}function x(T){return p(),T()}function D(...T){return s.value?x(()=>Reflect.apply(s.value.t,null,[...T])):x(()=>"")}function M(...T){return s.value?Reflect.apply(s.value.rt,null,[...T]):""}function N(...T){return s.value?x(()=>Reflect.apply(s.value.d,null,[...T])):x(()=>"")}function G(...T){return s.value?x(()=>Reflect.apply(s.value.n,null,[...T])):x(()=>"")}function ee(T){return s.value?s.value.tm(T):{}}function O(T,J){return s.value?s.value.te(T,J):!1}function ge(T){return s.value?s.value.getLocaleMessage(T):{}}function $e(T,J){s.value&&(s.value.setLocaleMessage(T,J),c.value[T]=J)}function Se(T,J){s.value&&s.value.mergeLocaleMessage(T,J)}function ke(T){return s.value?s.value.getDateTimeFormat(T):{}}function me(T,J){s.value&&(s.value.setDateTimeFormat(T,J),u.value[T]=J)}function X(T,J){s.value&&s.value.mergeDateTimeFormat(T,J)}function pe(T){return s.value?s.value.getNumberFormat(T):{}}function q(T,J){s.value&&(s.value.setNumberFormat(T,J),h.value[T]=J)}function Pe(T,J){s.value&&s.value.mergeNumberFormat(T,J)}const R={get id(){return s.value?s.value.id:-1},locale:v,fallbackLocale:$,messages:A,datetimeFormats:j,numberFormats:K,get inheritLocale(){return s.value?s.value.inheritLocale:r},set inheritLocale(T){s.value&&(s.value.inheritLocale=T)},get availableLocales(){return s.value?s.value.availableLocales:Object.keys(c.value)},get modifiers(){return s.value?s.value.modifiers:S},get pluralRules(){return s.value?s.value.pluralRules:C},get isGlobal(){return s.value?s.value.isGlobal:!1},get missingWarn(){return s.value?s.value.missingWarn:f},set missingWarn(T){s.value&&(s.value.missingWarn=T)},get fallbackWarn(){return s.value?s.value.fallbackWarn:P},set fallbackWarn(T){s.value&&(s.value.missingWarn=T)},get fallbackRoot(){return s.value?s.value.fallbackRoot:w},set fallbackRoot(T){s.value&&(s.value.fallbackRoot=T)},get fallbackFormat(){return s.value?s.value.fallbackFormat:m},set fallbackFormat(T){s.value&&(s.value.fallbackFormat=T)},get warnHtmlMessage(){return s.value?s.value.warnHtmlMessage:d},set warnHtmlMessage(T){s.value&&(s.value.warnHtmlMessage=T)},get escapeParameter(){return s.value?s.value.escapeParameter:g},set escapeParameter(T){s.value&&(s.value.escapeParameter=T)},t:D,getPostTranslationHandler:Q,setPostTranslationHandler:H,getMissingHandler:ce,setMissingHandler:z,rt:M,d:N,n:G,tm:ee,te:O,getLocaleMessage:ge,setLocaleMessage:$e,mergeLocaleMessage:Se,getDateTimeFormat:ke,setDateTimeFormat:me,mergeDateTimeFormat:X,getNumberFormat:pe,setNumberFormat:q,mergeNumberFormat:Pe};function B(T){T.locale.value=i.value,T.fallbackLocale.value=l.value,Object.keys(c.value).forEach(J=>{T.mergeLocaleMessage(J,c.value[J])}),Object.keys(u.value).forEach(J=>{T.mergeDateTimeFormat(J,u.value[J])}),Object.keys(h.value).forEach(J=>{T.mergeNumberFormat(J,h.value[J])}),T.escapeParameter=g,T.fallbackFormat=m,T.fallbackRoot=w,T.fallbackWarn=P,T.missingWarn=f,T.warnHtmlMessage=d}return iu(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw Pt(kt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const T=s.value=e.proxy.$i18n.__composer;t==="global"?(i.value=T.locale.value,l.value=T.fallbackLocale.value,c.value=T.messages.value,u.value=T.datetimeFormats.value,h.value=T.numberFormats.value):a&&B(T)}),R}const Ev=["locale","fallbackLocale","availableLocales"],Pd=["t","rt","d","n","tm","te"];function Tv(e,t){const o=Object.create(null);return Ev.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s)throw Pt(kt.UNEXPECTED_ERROR);const r=dt(s.value)?{get(){return s.value.value},set(i){s.value.value=i}}:{get(){return s.get&&s.get()}};Object.defineProperty(o,a,r)}),e.config.globalProperties.$i18n=o,Pd.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s||!s.value)throw Pt(kt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,s)}),()=>{delete e.config.globalProperties.$i18n,Pd.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(cv(),K0(nv),V0(A0),W0(jp),__INTLIFY_PROD_DEVTOOLS__){const e=Ga();e.__INTLIFY__=!0,M0(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const Rv=Object.assign({"./locales/ar/allPeopleGroups.json":wb,"./locales/ar/aria.json":kb,"./locales/ar/buttons.json":xb,"./locales/ar/controls.json":Ab,"./locales/ar/dashboard.json":Sb,"./locales/ar/detail.json":Pb,"./locales/ar/gospel.json":Lb,"./locales/ar/grid.json":Cb,"./locales/ar/legend.json":Eb,"./locales/ar/messages.json":Tb,"./locales/ar/options.json":Rb,"./locales/ar/popup.json":Nb,"./locales/ar/regions.json":Mb,"./locales/ar/search.json":Fb,"./locales/ar/tabs.json":Ib,"./locales/de/allPeopleGroups.json":Ob,"./locales/de/aria.json":Db,"./locales/de/buttons.json":Gb,"./locales/de/controls.json":Bb,"./locales/de/dashboard.json":jb,"./locales/de/detail.json":zb,"./locales/de/gospel.json":Ub,"./locales/de/grid.json":Hb,"./locales/de/legend.json":Kb,"./locales/de/messages.json":Vb,"./locales/de/options.json":Wb,"./locales/de/popup.json":qb,"./locales/de/regions.json":Yb,"./locales/de/search.json":Zb,"./locales/de/tabs.json":Xb,"./locales/en/allPeopleGroups.json":Jb,"./locales/en/aria.json":Qb,"./locales/en/buttons.json":ey,"./locales/en/controls.json":ty,"./locales/en/dashboard.json":oy,"./locales/en/detail.json":ny,"./locales/en/gospel.json":ay,"./locales/en/grid.json":sy,"./locales/en/legend.json":ry,"./locales/en/messages.json":iy,"./locales/en/options.json":ly,"./locales/en/popup.json":cy,"./locales/en/regions.json":uy,"./locales/en/search.json":py,"./locales/en/tabs.json":dy,"./locales/es/allPeopleGroups.json":gy,"./locales/es/aria.json":fy,"./locales/es/buttons.json":hy,"./locales/es/controls.json":my,"./locales/es/dashboard.json":by,"./locales/es/detail.json":yy,"./locales/es/gospel.json":_y,"./locales/es/grid.json":$y,"./locales/es/legend.json":vy,"./locales/es/messages.json":wy,"./locales/es/options.json":ky,"./locales/es/popup.json":xy,"./locales/es/regions.json":Ay,"./locales/es/search.json":Sy,"./locales/es/tabs.json":Py,"./locales/fr/allPeopleGroups.json":Ly,"./locales/fr/aria.json":Cy,"./locales/fr/buttons.json":Ey,"./locales/fr/controls.json":Ty,"./locales/fr/dashboard.json":Ry,"./locales/fr/detail.json":Ny,"./locales/fr/gospel.json":My,"./locales/fr/grid.json":Fy,"./locales/fr/legend.json":Iy,"./locales/fr/messages.json":Oy,"./locales/fr/options.json":Dy,"./locales/fr/popup.json":Gy,"./locales/fr/regions.json":By,"./locales/fr/search.json":jy,"./locales/fr/tabs.json":zy,"./locales/hi/allPeopleGroups.json":Uy,"./locales/hi/aria.json":Hy,"./locales/hi/buttons.json":Ky,"./locales/hi/controls.json":Vy,"./locales/hi/dashboard.json":Wy,"./locales/hi/detail.json":qy,"./locales/hi/gospel.json":Yy,"./locales/hi/grid.json":Zy,"./locales/hi/legend.json":Xy,"./locales/hi/messages.json":Jy,"./locales/hi/options.json":Qy,"./locales/hi/popup.json":e_,"./locales/hi/regions.json":t_,"./locales/hi/search.json":o_,"./locales/hi/tabs.json":n_,"./locales/it/allPeopleGroups.json":a_,"./locales/it/aria.json":s_,"./locales/it/buttons.json":r_,"./locales/it/controls.json":i_,"./locales/it/dashboard.json":l_,"./locales/it/detail.json":c_,"./locales/it/gospel.json":u_,"./locales/it/grid.json":p_,"./locales/it/legend.json":d_,"./locales/it/messages.json":g_,"./locales/it/options.json":f_,"./locales/it/popup.json":h_,"./locales/it/regions.json":m_,"./locales/it/search.json":b_,"./locales/it/tabs.json":y_,"./locales/pt/allPeopleGroups.json":__,"./locales/pt/aria.json":$_,"./locales/pt/buttons.json":v_,"./locales/pt/controls.json":w_,"./locales/pt/dashboard.json":k_,"./locales/pt/detail.json":x_,"./locales/pt/gospel.json":A_,"./locales/pt/grid.json":S_,"./locales/pt/legend.json":P_,"./locales/pt/messages.json":L_,"./locales/pt/options.json":C_,"./locales/pt/popup.json":E_,"./locales/pt/regions.json":T_,"./locales/pt/search.json":R_,"./locales/pt/tabs.json":N_,"./locales/ro/allPeopleGroups.json":M_,"./locales/ro/aria.json":F_,"./locales/ro/buttons.json":I_,"./locales/ro/controls.json":O_,"./locales/ro/dashboard.json":D_,"./locales/ro/detail.json":G_,"./locales/ro/gospel.json":B_,"./locales/ro/grid.json":j_,"./locales/ro/legend.json":z_,"./locales/ro/messages.json":U_,"./locales/ro/options.json":H_,"./locales/ro/popup.json":K_,"./locales/ro/regions.json":V_,"./locales/ro/search.json":W_,"./locales/ro/tabs.json":q_,"./locales/ru/allPeopleGroups.json":Y_,"./locales/ru/aria.json":Z_,"./locales/ru/buttons.json":X_,"./locales/ru/controls.json":J_,"./locales/ru/dashboard.json":Q_,"./locales/ru/detail.json":e$,"./locales/ru/gospel.json":t$,"./locales/ru/grid.json":o$,"./locales/ru/legend.json":n$,"./locales/ru/messages.json":a$,"./locales/ru/options.json":s$,"./locales/ru/popup.json":r$,"./locales/ru/regions.json":i$,"./locales/ru/search.json":l$,"./locales/ru/tabs.json":c$,"./locales/zh/allPeopleGroups.json":u$,"./locales/zh/aria.json":p$,"./locales/zh/buttons.json":d$,"./locales/zh/controls.json":g$,"./locales/zh/dashboard.json":f$,"./locales/zh/detail.json":h$,"./locales/zh/gospel.json":m$,"./locales/zh/grid.json":b$,"./locales/zh/legend.json":y$,"./locales/zh/messages.json":_$,"./locales/zh/options.json":$$,"./locales/zh/popup.json":v$,"./locales/zh/regions.json":w$,"./locales/zh/search.json":k$,"./locales/zh/tabs.json":x$}),xn={};for(const[e,t]of Object.entries(Rv)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;xn[n]??(xn[n]={}),xn[n][a]=t}xn.en;const Ha=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],Ld=new Set(["ar"]);function Nv(){try{const e=new URLSearchParams(window.location.search);return(e.get("lang")||e.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}}function Cd(){var n;const e=Nv();if(Ha.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return Ha.includes(o)?o:"en"}function Mv(){const e=Cd();try{typeof window<"u"&&window.MAP_OWNS_PAGE===!0&&Ld.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}const t=vv({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:xn,missingWarn:!1,fallbackWarn:!1});Fe(t.global.locale,n=>Td(n),{immediate:!0});const o=t.install.bind(t);return t.install=(n,...a)=>{const s=o(n,...a);return n.provide("appI18n",t),s},t}const Ed="__DOXA_PAGE_LOCALE";function Td(e){const t=String(e||"").split("-")[0].toLowerCase();if(Ha.includes(t))try{typeof window<"u"&&(window[Ed]=t)}catch{}}function Fv(){try{return typeof window<"u"&&window[Ed]||""}catch{return""}}function ea(e,t){const o=a=>{let s=xn[a];for(const r of String(e).split(".")){if(!s||typeof s!="object")return;s=s[r]}return typeof s=="string"?s:void 0},n=t||Fv()||Cd();return o(n)??o("en")}function xt(e,t){const o=wo(),n=t||(o&&o.type&&o.type.__hmrId?"hmr-"+o.type.__hmrId:Iv(e));yo(()=>{var l;if(!o)return;const a=(l=o.proxy)==null?void 0:l.$el;if(!a)return;const s=a.getRootNode();if(!(s instanceof ShadowRoot))return;const r=s.querySelector(`style[data-shadow-styles="${n}"]`);if(r){r.textContent!==e&&(r.textContent=e);return}const i=document.createElement("style");i.setAttribute("data-shadow-styles",n),i.textContent=e,s.appendChild(i)})}function Iv(e){let t=0;for(let o=0;ot[$]||$,n=()=>!1;try{const $=yt();o=$.t,n=$.te}catch{}const a=Re("uiStore",null),s=Re("profileConfig",null),r=te(()=>(a==null?void 0:a.theme)==="dark"),i=te(()=>{var j;const $=(j=s==null?void 0:s.value)==null?void 0:j.pinHintLabel;if($)return $;const A="Tap a coloured dot — someone still needs prayer";try{return n("messages.pinHint.tapDot")?o("messages.pinHint.tapDot"):A}catch{return A}}),l=be(!1),c=be(null);let u=null,h=null,f=null,P=null,w=null,m=null,y=[],b=null,d=null;function g(){l.value=!1}function S($,A){var K;let j=$==null?void 0:$.parentElement;for(let Q=0;j&&Q<12;Q++,j=j.parentElement){if(j===A||(K=j.classList)!=null&&K.contains("profile-loader"))return null;let H="";try{H=getComputedStyle(j).position}catch{}if(H&&H!=="static"){const ce=j.getBoundingClientRect();if(ce.height>=120&&ce.width>=160)return j}}return null}function C($){var j;const A=(j=P==null?void 0:P.querySelector)==null?void 0:j.call(P,".legend-mobile-sheet");if(!A)return 1/0;if(w&&m!==A){try{w.disconnect()}catch{}w=null}if(!w&&typeof ResizeObserver<"u")try{w=new ResizeObserver(()=>p()),w.observe(A),m=A}catch{w=null}try{const K=A.getBoundingClientRect();return!(K.height>16)||!(K.width>16)||$.right<=K.left||K.right<=$.left?1/0:K.top}catch{return 1/0}}function p(){const $=c.value;if($)try{$.style.removeProperty("--pin-hint-lift");const A=$.getBoundingClientRect();if(!A.height)return;const j=Math.min(window.innerHeight,C(A)),K=Math.round(A.bottom-j);K>0&&$.style.setProperty("--pin-hint-lift",K+8+"px")}catch{}}function v($){const A=c.value;if(!A||!($!=null&&$.querySelector))return;let j=0;try{const Q=$.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(Q){const H=Q.getBoundingClientRect(),ce=A.parentElement,z=ce?ce.getBoundingClientRect():null;if(j=z?Math.max(H.height||0,z.bottom-H.top):H.height||0,d!==Q&&typeof ResizeObserver<"u"){if(f)try{f.disconnect()}catch{}d=Q,f=new ResizeObserver(()=>v($)),f.observe(Q)}}}catch{}const K=Math.min(Math.max(Math.ceil(j)||20,20),72);A.style.setProperty("--pin-hint-attrib-clear",K+"px"),p()}return yo(()=>{var K,Q,H;const $=wo(),A=(H=(Q=(K=$==null?void 0:$.proxy)==null?void 0:K.$el)==null?void 0:Q.getRootNode)==null?void 0:H.call(Q);if(!A||typeof A.querySelector!="function")return;P=A;let j=0;u=setInterval(()=>{j++;const ce=A.querySelector("canvas");ce?(clearInterval(u),u=null,l.value=!0,Gt(()=>{const z=S(ce,A),x=c.value;if(z&&x&&x.parentElement!==z)try{z.appendChild(x),h=z}catch{}v(A),p(),y.push(setTimeout(p,1200),setTimeout(p,3e3),setTimeout(p,6e3));try{const D=c.value&&c.value.offsetParent||null;if(D&&typeof ResizeObserver<"u"){if(b)try{b.disconnect()}catch{}b=new ResizeObserver(()=>p()),b.observe(D)}}catch{}})):j>40&&(clearInterval(u),u=null)},300)}),Qt(()=>{var $;if(u&&clearInterval(u),f){try{f.disconnect()}catch{}f=null}if(d=null,b){try{b.disconnect()}catch{}b=null}if(w){try{w.disconnect()}catch{}w=null}m=null;for(const A of y)clearTimeout(A);if(y=[],P=null,h&&(($=c.value)==null?void 0:$.parentElement)===h)try{h.removeChild(c.value)}catch{}h=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; @@ -71,7 +71,7 @@ @media (prefers-reduced-motion: reduce) { .pin-hint, .pin-hint-pill, .pin-hint-dot::after { animation: none !important; } } -`,"pin-hint"),(C,A)=>l.value?(ae(),de("div",{key:0,ref_key:"hintEl",ref:c,class:Me(["pin-hint",{dark:r.value}]),role:"status"},[I("span",wv,[A[0]||(A[0]=I("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),Ct(" "+ye(i.value)+" ",1),I("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:m},"×")])],2)):Pe("",!0)}},ir="mapbox://styles/mapbox/standard",xv=ir,Av=ir,Sv=!1,Td={lightPreset:"night",theme:"default"},Pv={lightPreset:"day",theme:"monochrome"};function Lv(e){return e?/affinity|region|language/i.test(String(e))?"light":"dark":null}function Cv(e){let t=!1;const o=new WeakSet;function n(){return!1}function a(){return n()?"night":"day"}let s="dark";function r(y){return Lv(y)}function i(y,p){y!=="light"&&y!=="dark"||(s=y,p&&b(p))}function l(){return{...s==="light"?Pv:Td}}function c(){return ir}function u(){return{basemap:l()}}function h(y,p){try{return typeof y.getConfigProperty=="function"?y.getConfigProperty("basemap",p):void 0}catch{return}}function f(y){return!!y&&typeof y.setConfigProperty=="function"&&typeof y.getConfigProperty=="function"}function S(y,p=!1){if(!f(y))return!1;const m=l();let x=!1;try{for(const[d,P]of Object.entries(m))!p&&h(y,d)===P||(y.setConfigProperty("basemap",d,P),x=!0)}catch(d){console.warn("[useMapTheme] setConfigProperty failed:",d)}return x}function $(y){if(!o.has(y)&&(o.add(y),!!f(y)))try{y.on("style.load",()=>S(y)),y.on("styledata",()=>S(y))}catch{}}function b(y){if(!y)return;if($(y),S(y)&&!t){t=!0;try{y.once("idle",()=>{t=!1,S(y,!0)})}catch{t=!1}}}function _(y){e.toggleTheme(),b(y)}return{setLook:i,lookFor:r,STANDARD_STYLE:ir,LIGHT_STYLE:xv,DARK_STYLE:Av,isDarkTheme:n,lightPreset:a,basemapConfig:l,bootStyle:c,bootConfig:u,applyTheme:b,swapTheme:_}}let Tv=0;const Ev=Li("ui",{state:()=>({_storeInstanceId:++Tv,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:s=!1}=e,r={id:this.nextToastId++,message:t,type:o,duration:n,action:a,persistent:s,createdAt:Date.now()};return this.toasts.push(r),!s&&n>0&&setTimeout(()=>{this.removeToast(r.id)},n),r.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)}))}}}),Rv=Li("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",clusteringMode:"off",clusterPinOpacity:.6,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 s=t.getCenter();s&&(a=[s.lng,s.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)},setClusteringMode(e){["off","mapbox","mst","network"].includes(e)&&(this.clusteringMode=e,this.showClusters=e!=="off")},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()}}}),Nv=Li("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]=Bn({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]=Bn({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}}}),An={_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}}},Mv=".profile-loader[data-v-975471d4]{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-975471d4]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",rn=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},Fv=["dir"],Iv={key:0,class:"profile-error"},Ov={key:1,class:"profile-error"},Dv=rn({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var P;const o=e,n=Re("profileConfig",null),a=ne(()=>{var C;if(!o.profileConfig)return null;let g;try{g=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(g&&g.assetsBase===void 0){const A=(C=n==null?void 0:n.value)==null?void 0:C.assetsBase;typeof A=="string"&&A&&(g.assetsBase=A)}return g}),s=ne(()=>{var g;return((g=a.value)==null?void 0:g.profile)||null}),r=mb(),i=ne(()=>{var C;const g=(C=a.value)==null?void 0:C.tk;return typeof g=="string"&&g?g:r.value||""});Fe(()=>{var g;return(g=a.value)==null?void 0:g.tk},g=>{typeof g=="string"&&g&&Ei(g)},{immediate:!0}),Fe(()=>{var g;return(g=a.value)==null?void 0:g.tokenUrl},g=>{var C;g&&!((C=a.value)!=null&&C.tk)&&!r.value&&bb(g)},{immediate:!0});const l=ne(()=>{var g;return((g=a.value)==null?void 0:g.dataSource)||An.activeSource||"doxa-csv"}),c=ne(()=>{var g;return((g=a.value)==null?void 0:g.colorSet)||"default"}),u=ne(()=>!1),h=ne(()=>{var g;return((g=a.value)==null?void 0:g.pinHint)!==!1}),f=ne(()=>{var C,A;const g=(((C=a.value)==null?void 0:C.locale)||((A=a.value)==null?void 0:A.lang)||"").split("-")[0].toLowerCase();return Ua.includes(g)?g:""}),S=Re("appI18n",null);Ph(()=>{f.value&&(S&&(S.global.locale.value=f.value),Cd(f.value))});const $=ne(()=>{var g,C;return f.value||((C=(g=S==null?void 0:S.global)==null?void 0:g.locale)==null?void 0:C.value)||"en"}),b=ne(()=>Sd.has($.value)?"rtl":"ltr"),_=ne(()=>{var g;return((g=a.value)==null?void 0:g.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),y=Re("profileModules",null);if(!y)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const p=ne(()=>{if(!s.value)return null;const g=`./${s.value}.vue`;return y[g]?Zs(y[g]):(console.error(`[ProfileLoader] Profile not found: "${s.value}". Available:`,Object.keys(y)),null)});kt("mapboxToken",i),kt("dataSource",l),kt("colorSet",c),kt("profileConfig",a),kt("instanceId",_),kt("lang",$);const m=Ev(),x=Rv(),d=Nv();try{const g=typeof localStorage<"u"?localStorage.getItem("theme"):null;g&&((P=m.setTheme)==null||P.call(m,g))}catch{}return kt("uiStore",m),kt("mapStore",x),kt("dataStore",d),(g,C)=>(ae(),de("div",{class:"profile-loader",dir:b.value},[a.value?p.value?(ae(),ot(iu(p.value),{key:2})):(ae(),de("div",Ov,[I("p",null,[C[1]||(C[1]=Ct("⚠️ Profile ",-1)),I("strong",null,'"'+ye(s.value)+'"',1),C[2]||(C[2]=Ct(" not found.",-1))])])):(ae(),de("div",Iv,[...C[0]||(C[0]=[I("p",null,[Ct("⚠️ "),I("strong",null,"doxa-map"),Ct(": missing or invalid "),I("code",null,"profile-config"),Ct(" prop.")],-1),I("p",null,[Ct("Example: "),I("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),p.value&&u.value?(ae(),ot(iu(ge(null)),{key:3})):Pe("",!0),p.value&&h.value?(ae(),ot(kv,{key:4})):Pe("",!0)],8,Fv))}},[["styles",[Mv]],["__scopeId","data-v-975471d4"]]),Ed="adoptionStatus",Ho={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},Xi=Ho,Ji={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},Bv=Ji;function Rd(e){var n;const t=e.adoptionStatus??((n=e._raw)==null?void 0:n.adopted_by_churches);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?Ho.hasAdoption:Ho.notAdopted}function Qi({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],Ho.hasAdoption,["==",t,1],Ho.hasAdoption,Ho.notAdopted]}const Nd=Qi,Gv=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:Xi,ADOPTION_LABELS:Bv,LABELS:Ji,PALETTE:Ho,PROPERTY_KEY:Ed,applyColor:Qi,buildColorExpression:Nd,default:{name:"Adoption Progress",propertyKey:Ed,palette:Ho,colors:Ho,labels:Ji,getColor:Rd,applyColor:Qi,buildColorExpression:Nd},getColor:Rd},Symbol.toStringTag,{value:"Module"})),Md="engagementStatus",Vo={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},el=Vo,tl={notEngaged:"Unengaged",hasEngagement:"Engaged"},jv=tl;function Fd(e){var n;const t=e.engagementStatus??((n=e._raw)==null?void 0:n.people_committed);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?Vo.hasEngagement:Vo.notEngaged}function ol({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],Vo.hasEngagement,["==",t,1],Vo.hasEngagement,Vo.notEngaged]}const Id=ol,zv=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:el,ENGAGEMENT_LABELS:jv,LABELS:tl,PALETTE:Vo,PROPERTY_KEY:Md,applyColor:ol,buildColorExpression:Id,default:{name:"Engagement Progress",propertyKey:Md,palette:Vo,colors:Vo,labels:tl,getColor:Fd,applyColor:ol,buildColorExpression:Id},getColor:Fd},Symbol.toStringTag,{value:"Module"})),nl="languageFamily",Uv="#000000",ln={"Indo-European":"#e74c3c",Dravidian:"#ff9800","Afro-Asiatic":"#27ae60","Sino-Tibetan":"#3498db","Niger-Congo":"#9b59b6",Unclassified:"#95a5a6","Nilo-Saharan":"#e91e63","Khoe-Kwadi":"#00bcd4","Austro-Asiatic":"#00bcd4","Kra-Dai":"#8e44ad",Austronesian:"#ff69b4","Hmong-Mien":"#f44336",Turkic:"#ffc107","Nakh-Daghestanian":"#009688",Mongolic:"#795548",Uralic:"#607d8b",Tungusic:"#4caf50",Japonic:"#ff5722",Cariban:"#673ab7",Tupian:"#03a9f4",Tucanoan:"#8bc34a",Maipurean:"#ffc107",Panoan:"#cddc39",Guajiboan:"#9e9e9e",Chibchan:"#ff7043",Quechuan:"#ab47bc",Jean:"#26a69a",Harákmbut:"#7e57c2",Nambikwara:"#42a5f5",Muran:"#66bb6a",Karajá:"#ffa726",Bororoan:"#ef5350",Arauan:"#5c6bc0",Yanomaman:"#26c6da",Yaguan:"#d4e157",Witotoan:"#78909c",Zamucoan:"#8d6e63",Puinavean:"#aed581",Barbacoan:"#4db6ac","Eyak-Athabaskan":"#7986cb","Trans-New Guinea":"#ba68c8",Andamanese:"#4dd0e1","Atlantic-Congo":"#7D3C98",Mande:"#B9770E","Sign Language":"#212121",Creole:"#9575cd","Mixed language":"#a1887f","Language isolate":"#90a4ae",Unknown:"#000000"},Od=ln;function co(e){return ln[e]||Uv}const Kv=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(ln))t[e(o)]=o;return t})(),Hv={"tai-kadai":"Kra-Dai",none:"Unknown"};function lr(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return Hv[o]||Kv[o]||t}function Dd(e){var t;return co(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function al(){const e=["match",["get",nl]];return Object.entries(ln).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const Bd=al,Vv=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:Od,PALETTE:ln,PROPERTY_KEY:nl,applyColor:al,buildColorExpression:Bd,canonicalFamilyName:lr,default:{name:"Language Family",propertyKey:nl,palette:ln,colors:ln,getColor:Dd,applyColor:al,buildColorExpression:Bd,getLanguageFamilyColor:co,canonicalFamilyName:lr},defaultFamilyColor:"#95a5a6",getColor:Dd,getLanguageFamilyColor:co,languageFamilyColors:ln},Symbol.toStringTag,{value:"Module"})),Gd="peoplePraying",So=144,cn={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},Sn=cn,sl={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},Wv=sl;function cr(e){var n;const t=(e==null?void 0:e.peoplePraying)??((n=e==null?void 0:e._raw)==null?void 0:n.people_praying)??null,o=Number(t)||0;return o>=So?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function rl(e){return cn[cr(e)]}function jd(e){var o;const t=(e==null?void 0:e.peoplePraying)??((o=e==null?void 0:e._raw)==null?void 0:o.people_praying)??null;return t!==null&&t>0}function zd(e){return cr(e)==="fullPrayer"}function Ud(e){return rl(e)}function il({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,So],cn.fullPrayer,[">",t,0],cn.hasPrayer,cn.noPrayer]}const Kd=il,qv=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:So,LABELS:sl,PALETTE:cn,PRAYER_COLORS:Sn,PRAYER_LABELS:Wv,PROPERTY_KEY:Gd,applyColor:il,buildColorExpression:Kd,checkHasFullPrayer:zd,checkHasPrayer:jd,default:{name:"Prayer Progress",propertyKey:Gd,palette:cn,colors:cn,labels:sl,threshold:So,getColor:Ud,applyColor:il,buildColorExpression:Kd,getPrayerLevel:cr,getPrayerColor:rl,checkHasPrayer:jd,checkHasFullPrayer:zd},getColor:Ud,getPrayerColor:rl,getPrayerLevel:cr},Symbol.toStringTag,{value:"Module"})),Hd="religion",ll="#94a3b8",eo={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},Yt={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function Ha(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return eo[t]?t:"U"}function Vd(e){var o,n,a;const t=(e==null?void 0:e.religion)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.religion)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.religion);return Yt[Ha(t)]||ll}function cl(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",Yt.C,"M",Yt.M,"H",Yt.H,"B",Yt.B,"E",Yt.E,"J",Yt.J,"S",Yt.S,"N",Yt.N,"O",Yt.O,ll]}const Wd=cl,Yv=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Yt,PROPERTY_KEY:Hd,RELIGION_FAMILIES:eo,applyColor:cl,buildColorExpression:Wd,default:{name:"Religion",propertyKey:Hd,palette:Yt,families:eo,getColor:Vd,applyColor:cl,buildColorExpression:Wd,fallback:ll},getColor:Vd,getReligionFamily:Ha},Symbol.toStringTag,{value:"Module"})),qd="region",ul="#6d766e",Yd={africa:"Africa",asia:"Asia",europe:"Europe","latin_america_&_caribbean":"Latin America & Caribbean",middle_east:"Middle East","north_america_&_non-spanish_caribbean":"North America & Non-Spanish Caribbean",oceania:"Oceania"},Va={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},pl=Object.keys(Va);function Zd(e){var o,n,a;const t=(e==null?void 0:e.region)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.wagf_region)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.wagf_region);return Va[t]||ul}function dl(){const e=["match",["coalesce",["get","region"],""]];for(const t of pl)e.push(t,Va[t]);return e.push(ul),e}const Xd=dl,Zv=Object.assign({"./adoption.js":Gv,"./engagement.js":zv,"./language-family.js":Vv,"./prayer-progress.js":qv,"./religion.js":Yv,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Va,PROPERTY_KEY:qd,REGION_ORDER:pl,WAGF_REGIONS:Yd,applyColor:dl,buildColorExpression:Xd,default:{name:"WAGF Region",propertyKey:qd,palette:Va,regions:Yd,order:pl,getColor:Zd,applyColor:dl,buildColorExpression:Xd,fallback:ul},getColor:Zd},Symbol.toStringTag,{value:"Module"}))}),Xv=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),Jv=e=>e.replace(/-/g,"_").toUpperCase(),ea={...{STATUS:"status",CUSTOM:"custom"}},gl={};function Jd(e){for(const t of Object.keys(e).sort()){const o=t.split("/").pop().replace(/\.js$/,"");if(o.startsWith("_")||o.startsWith("."))continue;const n=e[t].default;if(!n)continue;const a=Xv(o);ea[Jv(o)]=a,gl[a]=n}}Jd(Zv);function Qv(e){e&&Jd(e)}function Po(e){return gl[e]||gl[ea.LANGUAGE_FAMILY]}function e1(e,t={}){return Po(e).applyColor(t)}const t1=Object.assign({"./research-map.vue":()=>no(()=>Promise.resolve().then(()=>lP),void 0)});if(Qv(Object.assign({"./src/colors/affinity-block.js":Af,"./src/colors/doxa-region.js":Lf,"./src/colors/resource.js":Ef})),typeof window<"u"&&((sf=window.mapboxgl)!=null&&sf.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 o1(){return tb(Dv,{configureApp(e){e.use(ub());const t=_v();e.use(t),e.provide("appI18n",t),e.provide("profileModules",t1)}})}const n1=o1();typeof customElements<"u"&&(customElements.get("doxa-research-map")||customElements.define("doxa-research-map",n1));const a1="rgba(120, 128, 134, 0.28)",Qd="36px",eg=()=>{};function s1(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return eg;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return eg;const a=p=>p.classList.contains("map-scroll-edge--left");for(const p of n)p.style.background=`linear-gradient(${a(p)?"to right":"to left"}, ${a1} ${Qd}, transparent ${Qd})`,p.style.opacity="0",p.style.transition="opacity 0.16s ease",p.style.userSelect="none",p.style.webkitUserSelect="none";const s=p=>{p.style.opacity="1"},r=p=>{p.style.opacity="0"},i=()=>n.find(p=>!a(p))||null,l=new Set;let c=!1,u=null;const h=()=>{for(const p of n)l.has(p)||r(p)},f=()=>{const p=i();p&&(s(p),u&&clearTimeout(u),u=setTimeout(h,250))},S=()=>f(),$=p=>{if(!(p.touches&&p.touches.length===1))return;const m=p.target;m&&m.classList&&m.classList.contains("map-scroll-edge")||f()},b=()=>{u&&clearTimeout(u),h()};e.addEventListener("wheel",S,{passive:!0}),e.addEventListener("touchmove",$,{passive:!0}),e.addEventListener("touchend",b,{passive:!0}),e.addEventListener("touchcancel",b,{passive:!0});const _=()=>{c||f()};typeof window<"u"&&window.addEventListener("scroll",_,{passive:!0});const y=[];for(const p of n){const m=()=>{l.add(p),s(p)},x=()=>{l.delete(p),r(p)},d=()=>{c=!0,s(p)},P=()=>{c=!1,r(p)};p.addEventListener("mouseenter",m),p.addEventListener("mouseleave",x),p.addEventListener("touchstart",d,{passive:!0}),p.addEventListener("touchend",P,{passive:!0}),y.push(()=>{p.removeEventListener("mouseenter",m),p.removeEventListener("mouseleave",x),p.removeEventListener("touchstart",d),p.removeEventListener("touchend",P)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",S),e.removeEventListener("touchmove",$),e.removeEventListener("touchend",b),e.removeEventListener("touchcancel",b),typeof window<"u"&&window.removeEventListener("scroll",_);for(const m of y)m();for(const m of n)r(m)}}const r1=Object.fromEntries([{id:"midnight-glow",label:"Midnight Glow",mood:"the prayer-map dark — pins glow like embers",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"night",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["doxa-simple-map","my-upg-100-list"]},{id:"daylight",label:"Daylight",mood:"the same Standard world, lights on",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"day",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","gospel-resources"]},{id:"dawn",label:"Dawn",mood:"soft warm horizon — hopeful, quiet",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dawn",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["doxa-simple-map"]},{id:"dusk",label:"Dusk",mood:"blue hour — calm contrast for bright pins",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dusk",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["my-upg-100-list"]},{id:"paper",label:"Paper",mood:"near-white minimal — data reads like print",mapbox:"mapbox://styles/mapbox/light-v11",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["research-dashboard","cities-internet"]},{id:"ink",label:"Ink",mood:"near-black minimal — maximum pin contrast",mapbox:"mapbox://styles/mapbox/dark-v11",maplibre:"https://tiles.openfreemap.org/styles/dark",bestFor:["my-upg-100-list","cities-internet"]},{id:"streetlife",label:"Street Life",mood:"full street detail — city-scale work",mapbox:"mapbox://styles/mapbox/streets-v12",maplibre:"https://tiles.openfreemap.org/styles/bright",bestFor:["cities-internet","key-cities"]},{id:"terrain",label:"Terrain",mood:"relief + parks — where people actually live",mapbox:"mapbox://styles/mapbox/outdoors-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","country-posters"]},{id:"satellite",label:"Satellite",mood:"imagery — the real ground",mapbox:"mapbox://styles/mapbox/satellite-v9",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["country-posters"]},{id:"hybrid",label:"Hybrid",mood:"imagery + labels — orientation without losing ground truth",mapbox:"mapbox://styles/mapbox/satellite-streets-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["key-cities"]},{id:"wayfinder-day",label:"Wayfinder Day",mood:"high-legibility navigation palette",mapbox:"mapbox://styles/mapbox/navigation-day-v1",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["gospel-resources"]},{id:"wayfinder-night",label:"Wayfinder Night",mood:"dark navigation — dashboards at night",mapbox:"mapbox://styles/mapbox/navigation-night-v1",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["research-dashboard"]},{id:"galaxy",label:"Galaxy",mood:"the day side of Earth floating in space — normal land, blue oceans, black void behind the sphere",mapbox:"mapbox://styles/mapbox/standard",maplibre:"https://tiles.versatiles.org/assets/styles/colorful/style.json",bestFor:["research-dashboard","my-upg-100-list"]}].map(e=>[e.id,e]));function i1(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=r1[e];return o?t==="maplibre"?{style:o.maplibre,lightPreset:void 0,paint:o.paint}:{style:o.mapbox,lightPreset:o.lightPreset,paint:o.paint}:/^(mapbox:\/\/|https?:\/\/)/.test(e)?{style:e,lightPreset:void 0,paint:void 0}:{style:void 0,lightPreset:void 0,paint:void 0}}function l1(e,t){if(!e||!Array.isArray(t))return[];const o=[];for(const n of t)if(!(!n||!n.layer||!n.prop))try{if(!e.getLayer(n.layer))continue;e.setPaintProperty(n.layer,n.prop,n.value),o.push(n.layer+"."+n.prop)}catch{}return o}const c1=["mapbox","maplibre"],u1="auto";function tg(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function og(e){const t=o=>typeof o=="string"&&!!o.trim()&&!/^YOUR_/.test(o.trim());return t(e==null?void 0:e.tk)||/^https?:\/\//i.test(String((e==null?void 0:e.tokenUrl)||""))?!0:typeof window>"u"?!1:t(window.MAP_TOKEN)||t(window.__doxaMapToken)||!!window.__doxaMapTokenPending}function ng(e,{token:t}={}){const o=tg(e);return ag(o)||(og(o)||og({tk:t})?"mapbox":"maplibre")}function ag(e){const t=tg(e),o=t==null?void 0:t.provider,n=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,a=typeof window<"u"?window.MAP_PROVIDER:void 0,s=String(o||n||a||u1).toLowerCase().trim();return c1.includes(s)?s:""}function p1(e){return e==="maplibre"?"MapLibre":"Mapbox"}function sg(e){return typeof window<"u"&&!!window.mapboxgl&&e instanceof window.mapboxgl.Map}function ur(e){if(typeof window>"u")return;const t=window.maplibregl,o=window.mapboxgl;return t&&t.Map&&e instanceof t.Map?t:o&&o.Map&&e instanceof o.Map?o:o||t}function Lo(e,t="circle"){return sg(e)?{[`${t}-emissive-strength`]:1}:{}}const Wo={mapboxGlJs:{url:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",integrity:"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ"},mapboxGlCss:{url:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css",integrity:"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV"},maplibreGlJs:{url:"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js",integrity:"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp"},maplibreGlCss:{url:"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css",integrity:"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK"},mapboxGeocoderJs:{url:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.min.js",integrity:"sha384-Lx9WK8XhZk57czwxt6B6nyaDHB5Ayrcrsu4Fw4bCp/Ot/QLOsUZ0xYqLOpOOSXZw"},mapboxGeocoderCss:{url:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.css",integrity:"sha384-1KNhwJNCQTr0DCi/5/OnQcFytgycxTahxNZaqKbAtqmY8bUhu26qxXqvDGXXwplS"},maplibreGeocoderJs:{url:"https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1.9.4/dist/maplibre-gl-geocoder.min.js",integrity:"sha384-RGV5vfoJd7alk8HE+71IyVfu19ciH1FKA15+AuXs6OeBM2npXrmTPFqG23yMiHXi"},maplibreGeocoderCss:{url:"https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1.9.4/dist/maplibre-gl-geocoder.css",integrity:"sha384-UkDpPApjTpHJHpcJiSNAmbobh30W0/dmt0DoKm4V8CWYRYvQ/Jhd/ijFz0tFdVnH"},d3:{url:"https://cdn.jsdelivr.net/npm/d3@7.9.0/dist/d3.min.js",integrity:"sha384-CjloA8y00+1SDAUkjs099PVfnY2KmDC2BZnws9kh8D/lX1s46w6EPhpXdqMfjK6i"}};function Wa(e,t){const o=Object.values(Wo).find(n=>n.url===t);return o&&(e.integrity=o.integrity,e.crossOrigin="anonymous"),e}const rg={mapbox:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",maplibre:"https://cdn.jsdelivr.net/npm/@mapbox/mapbox-gl-rtl-text@0.3.0/dist/mapbox-gl-rtl-text.js"};function d1(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function g1(e){if(typeof window>"u")return!1;const t=e?[e]:[window.maplibregl,window.mapboxgl].filter(Boolean);let o=!1;for(const n of t)if(!(!n||!n.setRTLTextPlugin))try{if(d1(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(rg.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(rg.mapbox,null,!0);o=!0}catch{}return o}const f1=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,ig=new WeakMap;function h1(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function lg(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!h1(e))return typeof e.setLanguage=="function"&&e.setLanguage(o),0;const n=e.getStyle&&e.getStyle();if(!n||!Array.isArray(n.layers))return 0;let a=ig.get(e);a||(a=new Map,ig.set(e,a));let s=0;for(const r of n.layers){if(r.type!=="symbol"||!r.layout||r.layout["text-field"]==null)continue;const i=r.layout["text-field"],l=JSON.stringify(i);if(l.startsWith('["coalesce",["get","name:')){if(!a.has(r.id))continue}else{if(!f1.test(l))continue;a.set(r.id,i)}const c=o==="en"?a.get(r.id):["coalesce",["get","name:"+o],["get","name:latin"],["get","name"]];e.setLayoutProperty(r.id,"text-field",c),s++}return s}catch{return 0}}const ta={mapbox:{global:"mapboxgl",js:Wo.mapboxGlJs.url,css:Wo.mapboxGlCss.url},maplibre:{global:"maplibregl",js:Wo.maplibreGlJs.url,css:Wo.maplibreGlCss.url}};function cg(e){if(typeof window>"u")return;const t=window,o=()=>{try{const n=e.getContainer().querySelector(".mapboxgl-ctrl-logo, .maplibregl-ctrl-logo");n&&(n.style.display="none")}catch{}};if(t.__doxaLogoOwner&&t.__doxaLogoOwner!==e){e.once("load",o),o();return}t.__doxaLogoOwner=e,e.once("remove",()=>{t.__doxaLogoOwner===e&&(t.__doxaLogoOwner=null)})}const m1=ta.mapbox.css,b1="https://tiles.openfreemap.org/styles/liberty",y1="https://tiles.openfreemap.org/styles/fiord";function fl(e){var o;const t=((o=ta[e])==null?void 0:o.global)||ta.mapbox.global;return typeof window<"u"?window[t]:void 0}async function _1(e){const t=ta[e]||ta.mapbox;if(fl(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=t.css,Wa(n,t.css),document.head.appendChild(n)}const o=document.querySelector(`script[src="${t.js}"]`);if(o){if(fl(e))return;await new Promise(n=>{o.addEventListener("load",n,{once:!0}),o.addEventListener("error",n,{once:!0})});return}await new Promise((n,a)=>{const s=document.createElement("script");s.src=t.js,Wa(s,t.js),s.async=!1,s.addEventListener("load",n,{once:!0}),s.addEventListener("error",()=>a(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(s)})}async function $1(e,t){if(!e)return;const o=e.getRootNode();if(!(o instanceof ShadowRoot))return;const n=r=>new Promise(i=>setTimeout(i,r)),a=o.querySelector(`link[href="${t}"]`);if(a){if(a.sheet)return;await Promise.race([new Promise(r=>{a.addEventListener("load",r,{once:!0}),a.addEventListener("error",r,{once:!0})}),n(2e3)]);return}const s=document.createElement("link");s.rel="stylesheet",s.href=t,Wa(s,t),await Promise.race([new Promise(r=>{s.addEventListener("load",r,{once:!0}),s.addEventListener("error",r,{once:!0}),o.prepend(s)}),n(2e3)])}function v1(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?y1:b1}const w1=85.0511,hl=-2,k1=0,x1=-60;function ug(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function A1(e,t,o,n){if(!e||e<=0||!t||t<=0)return k1;const a=Math.log2(e/512),s=ug(n)-ug(w1),r=Math.log2(t/(512*s)),i=Math.max(a,r);return Math.max(hl,Math.min(i,(o??18)-1))}function S1({containerRef:e,accessToken:t,style:o,config:n=void 0,provider:a=void 0,center:s=[20,10],zoom:r=2,bounds:i=void 0,fitBoundsOptions:l=void 0,minZoom:c=void 0,skipWorldFloor:u=!1,maxZoom:h=18,pitch:f=0,bearing:S=0,renderWorldCopies:$=!0,showEdgeBorders:b=!0,southCutoff:_=x1,maxBounds:y=void 0}){const p=$a(null),m=me(!1);let x=null,d=null,P=null,g=null;try{g=Re("profileConfig",null)}catch{}const C=!a&&!ag(g);a=a||ng(g,{token:t});let A=a==="maplibre",U=null;try{U=Re("lang",null)}catch{}const H=()=>{const le=U&&typeof U=="object"&&"value"in U?U.value:U;if(typeof le=="string"&&le)return le;const G=g&&typeof g=="object"&&"value"in g?g.value:g;if(G&&(G.locale||G.lang))return String(G.locale||G.lang);try{const k=new URLSearchParams(location.search);return k.get("lang")||k.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function Y(){var Z;if(C&&!A&&!t&&typeof window<"u"&&window.__doxaMapTokenPending){if(await window.__doxaMapTokenPending,!e.value)return;typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN||(a="maplibre",A=!0)}const le=i1(o,a),G=le.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const k=()=>!e.value;if(await _1(a),k())return;const z=fl(a);if(!z){console.error(`[useMapInstance] ${A?"maplibregl":"mapboxgl"} is not available. Add the ${A?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(g1(z),!A){if(!t&&typeof window<"u"&&window.__doxaMapTokenPending&&(await window.__doxaMapTokenPending,k()))return;if(!t&&typeof window<"u"&&typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN&&(t=window.MAP_TOKEN),!t){console.error('No Mapbox access token provided. Pass "tk" in profile-config JSON or set window.MAP_TOKEN.');return}if(!t.startsWith("pk.")){console.error('Mapbox token looks invalid (expected "pk." prefix). Got:',t.slice(0,10)+"...");return}}if(await $1(e.value,A?ta.maplibre.css:m1),k()||(await new Promise(X=>requestAnimationFrame(X)),k()))return;const M=e.value,R=M.clientWidth,j=M.clientHeight;if(R===0||j===0){console.error(`[useMapInstance] Container has ZERO dimensions (${R}×${j}). Map will be invisible. Check that parent elements have CSS sizing.`);let X=M.parentElement,ie=0;for(;X&&ie<5;)X=X.parentElement,ie++}const J=t;A||(z.accessToken=J);const D=()=>typeof window<"u"&&window.innerWidth>=1024,he=(X,ie)=>{if(u)return typeof c=="number"?c:hl;if(!D())return hl;const Ce=A1(X,ie,h,_);return typeof c=="number"?Math.max(c,Ce):Ce},$e=he(M.clientWidth,M.clientHeight),Le=le.lightPreset||(()=>{var X;try{const ie=typeof n=="function"?n():n;return(X=ie==null?void 0:ie.basemap)==null?void 0:X.lightPreset}catch{return}})();if(A){p.value=new z.Map({container:e.value,style:v1(G,Le),center:s,zoom:r,minZoom:$e,maxZoom:h,pitch:f,bearing:S,dragRotate:!1,renderWorldCopies:$,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...y?{maxBounds:y}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),cg(p.value);try{e.value.__doxaMap=p.value}catch{}}else{const X=typeof n=="function"?n():n;p.value=new z.Map({accessToken:J,container:e.value,style:G,...X?{config:X}:{},center:s,zoom:r,minZoom:$e,maxZoom:h,pitch:f,bearing:S,dragRotate:!1,touchPitch:!1,renderWorldCopies:$,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...y?{maxBounds:y}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),cg(p.value);try{e.value.__doxaMap=p.value}catch{}}try{let X=!1;p.value.on("error",ie=>{var O,N;const Ce=((O=ie==null?void 0:ie.error)==null?void 0:O.status)??(ie==null?void 0:ie.status),E=String(((N=ie==null?void 0:ie.error)==null?void 0:N.url)||(ie==null?void 0:ie.sourceId)||"");Ce!==401&&Ce!==403||X||(X=!0,console.error(`[doxa-maps] Mapbox returned ${Ce} for a TILE request while the style loaded fine. That is a URL RESTRICTION on the access token, not a bad token and not a bug in this map. Add this page's origin (${typeof location<"u"?location.origin:"this origin"}) to the token's URL restrictions in the Mapbox account. The map will keep its data layer and stay blank underneath until then.`+(E?` First failing request: ${E.slice(0,120)}`:"")))})}catch{}try{p.value.touchZoomRotate.disableRotation()}catch{}P=s1(((Z=e.value)==null?void 0:Z.parentElement)||null,{enabled:b});let ke=$e,fe=null;x=()=>{const X=p.value;if(!X)return;const ie=he(M.clientWidth,M.clientHeight);ie!==ke&&(ke=ie,X.setMinZoom(ie)),X.getZoom(){fe=null;const Ce=p.value;if(!Ce)return;const E=he(M.clientWidth,M.clientHeight);if(Ce.getZoom(){fe&&(clearTimeout(fe),fe=null)},p.value.on("resize",x),typeof window<"u"&&(window.addEventListener("resize",x),window.addEventListener("orientationchange",x)),p.value.on("style.load",()=>{if(p.value&&lg(p.value,H()),le.paint&&p.value){const X=l1(p.value,le.paint);console.info("[useMapInstance] style paint applied ("+a+"):",X.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var X;(X=p.value)==null||X.resize(),p.value&&p.value.setMinZoom(he(M.clientWidth,M.clientHeight)),m.value=!0})})}function K(){if(p.value){if(x&&(p.value.off("resize",x),typeof window<"u"&&(window.removeEventListener("resize",x),window.removeEventListener("orientationchange",x)),x=null),d){try{d()}catch{}d=null}P&&(P(),P=null),p.value.remove(),p.value=null,m.value=!1}}if(U&&typeof U=="object"&&"value"in U)try{Fe(U,()=>{p.value&&m.value&&lg(p.value,H())})}catch{}return{map:p,isMapReady:m,initializeMap:Y,destroy:K}}const P1=Mn&&Mn.tagName.toUpperCase()==="SCRIPT"&&Mn.src||new URL("doxa-research-map.js",document.baseURI).href,un=e=>String(e||"").trim().replace(/\/+$/,"");function pg(){try{const t=String(P1||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function L1(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return un(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return un(o)}return un(pg()||"")}function ml(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const n=un(t);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const o=un((e==null?void 0:e.treeBase)||"")||un(pg()||"");if(o)try{const n=typeof document<"u"?document.baseURI:void 0;return un(new URL(o+"/assets",n).href)}catch{return un(o+"/assets")}return"./assets"}function C1({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",s=e||(n==null?void 0:n.shareUrl);if(typeof s=="string"&&s.trim())return s.trim();const r=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(r){if(/^https?:\/\//i.test(r))return r;if(r.startsWith("/"))return a?window.location.origin+r:r;const i=L1(n),l=r.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 T1={Africa:{zoom:1.3,center:[16.6512,26.3538]},Asia:{zoom:.8,center:[98.2654,49.9282]},Europe:{zoom:1.4,center:[22.7826,70.1026]},"Latin America & Caribbean":{zoom:1.8,center:[-60.4619,10.1428]},"Middle East":{zoom:1.7,center:[22.9056,39.5752]},"No WAGF Region/Bloc":{zoom:.6,center:[-8.2363,44.2392]},"North America & Non-Spanish Caribbean":{zoom:2.1,center:[-68.1935,31.4282]},Oceania:{zoom:1.5,center:[161.6257,-.668]}},dg={circleRadius:{standard:["interpolate",["linear"],["zoom"],0,3,2,3.5,4,4,5,5,6,6.5,7,8,8,10,10,14,12,18,14,22],highlighted:["interpolate",["linear"],["zoom"],0,4,4,5,8,12,12,20],faded:["interpolate",["linear"],["zoom"],0,2,4,2.5,8,5,12,8],compact:["interpolate",["linear"],["zoom"],0,2,4,3,8,6,12,10],large:["interpolate",["linear"],["zoom"],0,4,4,6,8,14,12,24],touchTarget:["interpolate",["linear"],["zoom"],0,12,2,15,4,19,6,20,8,21,10,22,12,24,14,28]}};function E1(e){return T1[e]||null}function bl(e="standard"){return dg.circleRadius[e]||dg.circleRadius.standard}const R1={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"};function ht(e){return e==null?"":String(e).replace(/[&<>"'`]/g,t=>R1[t])}function N1(e,t=""){try{const o=new URL(String(e),typeof location<"u"?location.href:"https://example.invalid/");if(o.protocol==="http:"||o.protocol==="https:")return ht(o.href)}catch{}return ht(t)}function gg(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,s=Re("uiStore"),{t:r,locale:i}=yt(),l=me([]);function c(m){const x=n(m.languageFamily),d="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg";let P=m.imageUrl;(!P||P.includes("NoImageAvailable"))&&(P=d);const g=(m.name||"U")[0].toUpperCase(),C=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"],A=g.charCodeAt(0)%C.length,U=C[A];return` +`,"pin-hint"),($,A)=>l.value?(ae(),ue("div",{key:0,ref_key:"hintEl",ref:c,class:Me(["pin-hint",{dark:r.value}]),role:"status"},[F("span",Ov,[A[0]||(A[0]=F("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),Ct(" "+ye(i.value)+" ",1),F("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:g},"×")])],2)):Ae("",!0)}},lr="mapbox://styles/mapbox/standard",Gv=lr,Bv=lr,jv=!1,Rd={lightPreset:"night",theme:"default"},zv={lightPreset:"day",theme:"monochrome"};function Uv(e){return e?/affinity|region|language/i.test(String(e))?"light":"dark":null}function Hv(e){let t=!1;const o=new WeakSet;function n(){return!1}function a(){return n()?"night":"day"}let s="dark";function r(b){return Uv(b)}function i(b,d){b!=="light"&&b!=="dark"||(s=b,d&&m(d))}function l(){return{...s==="light"?zv:Rd}}function c(){return lr}function u(){return{basemap:l()}}function h(b,d){try{return typeof b.getConfigProperty=="function"?b.getConfigProperty("basemap",d):void 0}catch{return}}function f(b){return!!b&&typeof b.setConfigProperty=="function"&&typeof b.getConfigProperty=="function"}function P(b,d=!1){if(!f(b))return!1;const g=l();let S=!1;try{for(const[C,p]of Object.entries(g))!d&&h(b,C)===p||(b.setConfigProperty("basemap",C,p),S=!0)}catch(C){console.warn("[useMapTheme] setConfigProperty failed:",C)}return S}function w(b){if(!o.has(b)&&(o.add(b),!!f(b)))try{b.on("style.load",()=>P(b)),b.on("styledata",()=>P(b))}catch{}}function m(b){if(!b)return;if(w(b),P(b)&&!t){t=!0;try{b.once("idle",()=>{t=!1,P(b,!0)})}catch{t=!1}}}function y(b){e.toggleTheme(),m(b)}return{setLook:i,lookFor:r,STANDARD_STYLE:lr,LIGHT_STYLE:Gv,DARK_STYLE:Bv,isDarkTheme:n,lightPreset:a,basemapConfig:l,bootStyle:c,bootConfig:u,applyTheme:m,swapTheme:y}}let Kv=0;const Vv=Ci("ui",{state:()=>({_storeInstanceId:++Kv,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:s=!1}=e,r={id:this.nextToastId++,message:t,type:o,duration:n,action:a,persistent:s,createdAt:Date.now()};return this.toasts.push(r),!s&&n>0&&setTimeout(()=>{this.removeToast(r.id)},n),r.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)}))}}}),Wv=Ci("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",clusteringMode:"off",clusterPinOpacity:.6,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 s=t.getCenter();s&&(a=[s.lng,s.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)},setClusteringMode(e){["off","mapbox","mst","network"].includes(e)&&(this.clusteringMode=e,this.showClusters=e!=="off")},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()}}}),qv=Ci("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]=Gn({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]=Gn({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}}}),An={_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}}},Yv=".profile-loader[data-v-975471d4]{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-975471d4]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",rn=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},Zv=["dir"],Xv={key:0,class:"profile-error"},Jv={key:1,class:"profile-error"},Qv=rn({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var p;const o=e,n=Re("profileConfig",null),a=te(()=>{var $;if(!o.profileConfig)return null;let v;try{v=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(v&&v.assetsBase===void 0){const A=($=n==null?void 0:n.value)==null?void 0:$.assetsBase;typeof A=="string"&&A&&(v.assetsBase=A)}return v}),s=te(()=>{var v;return((v=a.value)==null?void 0:v.profile)||null}),r=$b(),i=te(()=>{var $;const v=($=a.value)==null?void 0:$.tk;return typeof v=="string"&&v?v:r.value||""});Fe(()=>{var v;return(v=a.value)==null?void 0:v.tk},v=>{typeof v=="string"&&v&&Ri(v)},{immediate:!0}),Fe(()=>{var v;return(v=a.value)==null?void 0:v.tokenUrl},v=>{var $;v&&!(($=a.value)!=null&&$.tk)&&!r.value&&vb(v)},{immediate:!0});const l=te(()=>{var v;return((v=a.value)==null?void 0:v.dataSource)||An.activeSource||"doxa-csv"}),c=te(()=>{var v;return((v=a.value)==null?void 0:v.colorSet)||"default"}),u=te(()=>!1),h=te(()=>{var v;return((v=a.value)==null?void 0:v.pinHint)!==!1}),f=te(()=>{var $,A;const v=((($=a.value)==null?void 0:$.locale)||((A=a.value)==null?void 0:A.lang)||"").split("-")[0].toLowerCase();return Ha.includes(v)?v:""}),P=Re("appI18n",null);Th(()=>{f.value&&(P&&(P.global.locale.value=f.value),Td(f.value))});const w=te(()=>{var v,$;return f.value||(($=(v=P==null?void 0:P.global)==null?void 0:v.locale)==null?void 0:$.value)||"en"}),m=te(()=>Ld.has(w.value)?"rtl":"ltr"),y=te(()=>{var v;return((v=a.value)==null?void 0:v.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),b=Re("profileModules",null);if(!b)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const d=te(()=>{if(!s.value)return null;const v=`./${s.value}.vue`;return b[v]?Xs(b[v]):(console.error(`[ProfileLoader] Profile not found: "${s.value}". Available:`,Object.keys(b)),null)});wt("mapboxToken",i),wt("dataSource",l),wt("colorSet",c),wt("profileConfig",a),wt("instanceId",y),wt("lang",w);const g=Vv(),S=Wv(),C=qv();try{const v=typeof localStorage<"u"?localStorage.getItem("theme"):null;v&&((p=g.setTheme)==null||p.call(g,v))}catch{}return wt("uiStore",g),wt("mapStore",S),wt("dataStore",C),(v,$)=>(ae(),ue("div",{class:"profile-loader",dir:m.value},[a.value?d.value?(ae(),et(cu(d.value),{key:2})):(ae(),ue("div",Jv,[F("p",null,[$[1]||($[1]=Ct("⚠️ Profile ",-1)),F("strong",null,'"'+ye(s.value)+'"',1),$[2]||($[2]=Ct(" not found.",-1))])])):(ae(),ue("div",Xv,[...$[0]||($[0]=[F("p",null,[Ct("⚠️ "),F("strong",null,"doxa-map"),Ct(": missing or invalid "),F("code",null,"profile-config"),Ct(" prop.")],-1),F("p",null,[Ct("Example: "),F("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),d.value&&u.value?(ae(),et(cu(de(null)),{key:3})):Ae("",!0),d.value&&h.value?(ae(),et(Dv,{key:4})):Ae("",!0)],8,Zv))}},[["styles",[Yv]],["__scopeId","data-v-975471d4"]]),Nd="adoptionStatus",Ko={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},Ji=Ko,Qi={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},e1=Qi;function Md(e){var n;const t=e.adoptionStatus??((n=e._raw)==null?void 0:n.adopted_by_churches);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?Ko.hasAdoption:Ko.notAdopted}function el({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],Ko.hasAdoption,["==",t,1],Ko.hasAdoption,Ko.notAdopted]}const Fd=el,t1=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:Ji,ADOPTION_LABELS:e1,LABELS:Qi,PALETTE:Ko,PROPERTY_KEY:Nd,applyColor:el,buildColorExpression:Fd,default:{name:"Adoption Progress",propertyKey:Nd,palette:Ko,colors:Ko,labels:Qi,getColor:Md,applyColor:el,buildColorExpression:Fd},getColor:Md},Symbol.toStringTag,{value:"Module"})),Id="engagementStatus",Vo={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},tl=Vo,ol={notEngaged:"Unengaged",hasEngagement:"Engaged"},o1=ol;function Od(e){var n;const t=e.engagementStatus??((n=e._raw)==null?void 0:n.people_committed);return t===!0||t===1||typeof t=="number"&&t>0||typeof t=="object"&&(t==null?void 0:t.value)?Vo.hasEngagement:Vo.notEngaged}function nl({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],Vo.hasEngagement,["==",t,1],Vo.hasEngagement,Vo.notEngaged]}const Dd=nl,n1=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:tl,ENGAGEMENT_LABELS:o1,LABELS:ol,PALETTE:Vo,PROPERTY_KEY:Id,applyColor:nl,buildColorExpression:Dd,default:{name:"Engagement Progress",propertyKey:Id,palette:Vo,colors:Vo,labels:ol,getColor:Od,applyColor:nl,buildColorExpression:Dd},getColor:Od},Symbol.toStringTag,{value:"Module"})),al="languageFamily",a1="#000000",ln={"Indo-European":"#e74c3c",Dravidian:"#ff9800","Afro-Asiatic":"#27ae60","Sino-Tibetan":"#3498db","Niger-Congo":"#9b59b6",Unclassified:"#95a5a6","Nilo-Saharan":"#e91e63","Khoe-Kwadi":"#00bcd4","Austro-Asiatic":"#00bcd4","Kra-Dai":"#8e44ad",Austronesian:"#ff69b4","Hmong-Mien":"#f44336",Turkic:"#ffc107","Nakh-Daghestanian":"#009688",Mongolic:"#795548",Uralic:"#607d8b",Tungusic:"#4caf50",Japonic:"#ff5722",Cariban:"#673ab7",Tupian:"#03a9f4",Tucanoan:"#8bc34a",Maipurean:"#ffc107",Panoan:"#cddc39",Guajiboan:"#9e9e9e",Chibchan:"#ff7043",Quechuan:"#ab47bc",Jean:"#26a69a",Harákmbut:"#7e57c2",Nambikwara:"#42a5f5",Muran:"#66bb6a",Karajá:"#ffa726",Bororoan:"#ef5350",Arauan:"#5c6bc0",Yanomaman:"#26c6da",Yaguan:"#d4e157",Witotoan:"#78909c",Zamucoan:"#8d6e63",Puinavean:"#aed581",Barbacoan:"#4db6ac","Eyak-Athabaskan":"#7986cb","Trans-New Guinea":"#ba68c8",Andamanese:"#4dd0e1","Atlantic-Congo":"#7D3C98",Mande:"#B9770E","Sign Language":"#212121",Creole:"#9575cd","Mixed language":"#a1887f","Language isolate":"#90a4ae",Unknown:"#000000"},Gd=ln;function co(e){return ln[e]||a1}const s1=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(ln))t[e(o)]=o;return t})(),r1={"tai-kadai":"Kra-Dai",none:"Unknown"};function cr(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return r1[o]||s1[o]||t}function Bd(e){var t;return co(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function sl(){const e=["match",["get",al]];return Object.entries(ln).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const jd=sl,i1=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:Gd,PALETTE:ln,PROPERTY_KEY:al,applyColor:sl,buildColorExpression:jd,canonicalFamilyName:cr,default:{name:"Language Family",propertyKey:al,palette:ln,colors:ln,getColor:Bd,applyColor:sl,buildColorExpression:jd,getLanguageFamilyColor:co,canonicalFamilyName:cr},defaultFamilyColor:"#95a5a6",getColor:Bd,getLanguageFamilyColor:co,languageFamilyColors:ln},Symbol.toStringTag,{value:"Module"})),zd="peoplePraying",Ao=144,cn={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},Sn=cn,rl={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},l1=rl;function ur(e){var n;const t=(e==null?void 0:e.peoplePraying)??((n=e==null?void 0:e._raw)==null?void 0:n.people_praying)??null,o=Number(t)||0;return o>=Ao?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function il(e){return cn[ur(e)]}function Ud(e){var o;const t=(e==null?void 0:e.peoplePraying)??((o=e==null?void 0:e._raw)==null?void 0:o.people_praying)??null;return t!==null&&t>0}function Hd(e){return ur(e)==="fullPrayer"}function Kd(e){return il(e)}function ll({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,Ao],cn.fullPrayer,[">",t,0],cn.hasPrayer,cn.noPrayer]}const Vd=ll,c1=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:Ao,LABELS:rl,PALETTE:cn,PRAYER_COLORS:Sn,PRAYER_LABELS:l1,PROPERTY_KEY:zd,applyColor:ll,buildColorExpression:Vd,checkHasFullPrayer:Hd,checkHasPrayer:Ud,default:{name:"Prayer Progress",propertyKey:zd,palette:cn,colors:cn,labels:rl,threshold:Ao,getColor:Kd,applyColor:ll,buildColorExpression:Vd,getPrayerLevel:ur,getPrayerColor:il,checkHasPrayer:Ud,checkHasFullPrayer:Hd},getColor:Kd,getPrayerColor:il,getPrayerLevel:ur},Symbol.toStringTag,{value:"Module"})),Wd="religion",cl="#94a3b8",to={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},Zt={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function Ka(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return to[t]?t:"U"}function qd(e){var o,n,a;const t=(e==null?void 0:e.religion)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.religion)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.religion);return Zt[Ka(t)]||cl}function ul(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",Zt.C,"M",Zt.M,"H",Zt.H,"B",Zt.B,"E",Zt.E,"J",Zt.J,"S",Zt.S,"N",Zt.N,"O",Zt.O,cl]}const Yd=ul,u1=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Zt,PROPERTY_KEY:Wd,RELIGION_FAMILIES:to,applyColor:ul,buildColorExpression:Yd,default:{name:"Religion",propertyKey:Wd,palette:Zt,families:to,getColor:qd,applyColor:ul,buildColorExpression:Yd,fallback:cl},getColor:qd,getReligionFamily:Ka},Symbol.toStringTag,{value:"Module"})),Zd="region",pl="#6d766e",Xd={africa:"Africa",asia:"Asia",europe:"Europe","latin_america_&_caribbean":"Latin America & Caribbean",middle_east:"Middle East","north_america_&_non-spanish_caribbean":"North America & Non-Spanish Caribbean",oceania:"Oceania"},Va={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},dl=Object.keys(Va);function Jd(e){var o,n,a;const t=(e==null?void 0:e.region)||((n=(o=e==null?void 0:e._raw)==null?void 0:o.wagf_region)==null?void 0:n.value)||((a=e==null?void 0:e._raw)==null?void 0:a.wagf_region);return Va[t]||pl}function gl(){const e=["match",["coalesce",["get","region"],""]];for(const t of dl)e.push(t,Va[t]);return e.push(pl),e}const Qd=gl,p1=Object.assign({"./adoption.js":t1,"./engagement.js":n1,"./language-family.js":i1,"./prayer-progress.js":c1,"./religion.js":u1,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Va,PROPERTY_KEY:Zd,REGION_ORDER:dl,WAGF_REGIONS:Xd,applyColor:gl,buildColorExpression:Qd,default:{name:"WAGF Region",propertyKey:Zd,palette:Va,regions:Xd,order:dl,getColor:Jd,applyColor:gl,buildColorExpression:Qd,fallback:pl},getColor:Jd},Symbol.toStringTag,{value:"Module"}))}),d1=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),g1=e=>e.replace(/-/g,"_").toUpperCase(),ta={...{STATUS:"status",CUSTOM:"custom"}},fl={};function eg(e){for(const t of Object.keys(e).sort()){const o=t.split("/").pop().replace(/\.js$/,"");if(o.startsWith("_")||o.startsWith("."))continue;const n=e[t].default;if(!n)continue;const a=d1(o);ta[g1(o)]=a,fl[a]=n}}eg(p1);function f1(e){e&&eg(e)}function So(e){return fl[e]||fl[ta.LANGUAGE_FAMILY]}function h1(e,t={}){return So(e).applyColor(t)}const m1=Object.assign({"./research-map.vue":()=>no(()=>Promise.resolve().then(()=>vP),void 0)});if(f1(Object.assign({"./src/colors/affinity-block.js":Cf,"./src/colors/doxa-region.js":Rf,"./src/colors/resource.js":Ff})),typeof window<"u"&&((uf=window.mapboxgl)!=null&&uf.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 b1(){return sb(Qv,{configureApp(e){e.use(fb());const t=Mv();e.use(t),e.provide("appI18n",t),e.provide("profileModules",m1)}})}const y1=b1();typeof customElements<"u"&&(customElements.get("doxa-research-map")||customElements.define("doxa-research-map",y1));const _1="rgba(120, 128, 134, 0.28)",tg="36px",og=()=>{};function $1(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return og;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return og;const a=d=>d.classList.contains("map-scroll-edge--left");for(const d of n)d.style.background=`linear-gradient(${a(d)?"to right":"to left"}, ${_1} ${tg}, transparent ${tg})`,d.style.opacity="0",d.style.transition="opacity 0.16s ease",d.style.userSelect="none",d.style.webkitUserSelect="none";const s=d=>{d.style.opacity="1"},r=d=>{d.style.opacity="0"},i=()=>n.find(d=>!a(d))||null,l=new Set;let c=!1,u=null;const h=()=>{for(const d of n)l.has(d)||r(d)},f=()=>{const d=i();d&&(s(d),u&&clearTimeout(u),u=setTimeout(h,250))},P=()=>f(),w=d=>{if(!(d.touches&&d.touches.length===1))return;const g=d.target;g&&g.classList&&g.classList.contains("map-scroll-edge")||f()},m=()=>{u&&clearTimeout(u),h()};e.addEventListener("wheel",P,{passive:!0}),e.addEventListener("touchmove",w,{passive:!0}),e.addEventListener("touchend",m,{passive:!0}),e.addEventListener("touchcancel",m,{passive:!0});const y=()=>{c||f()};typeof window<"u"&&window.addEventListener("scroll",y,{passive:!0});const b=[];for(const d of n){const g=()=>{l.add(d),s(d)},S=()=>{l.delete(d),r(d)},C=()=>{c=!0,s(d)},p=()=>{c=!1,r(d)};d.addEventListener("mouseenter",g),d.addEventListener("mouseleave",S),d.addEventListener("touchstart",C,{passive:!0}),d.addEventListener("touchend",p,{passive:!0}),b.push(()=>{d.removeEventListener("mouseenter",g),d.removeEventListener("mouseleave",S),d.removeEventListener("touchstart",C),d.removeEventListener("touchend",p)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",P),e.removeEventListener("touchmove",w),e.removeEventListener("touchend",m),e.removeEventListener("touchcancel",m),typeof window<"u"&&window.removeEventListener("scroll",y);for(const g of b)g();for(const g of n)r(g)}}const v1=Object.fromEntries([{id:"midnight-glow",label:"Midnight Glow",mood:"the prayer-map dark — pins glow like embers",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"night",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["doxa-simple-map","my-upg-100-list"]},{id:"daylight",label:"Daylight",mood:"the same Standard world, lights on",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"day",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","gospel-resources"]},{id:"dawn",label:"Dawn",mood:"soft warm horizon — hopeful, quiet",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dawn",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["doxa-simple-map"]},{id:"dusk",label:"Dusk",mood:"blue hour — calm contrast for bright pins",mapbox:"mapbox://styles/mapbox/standard",lightPreset:"dusk",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["my-upg-100-list"]},{id:"paper",label:"Paper",mood:"near-white minimal — data reads like print",mapbox:"mapbox://styles/mapbox/light-v11",maplibre:"https://tiles.openfreemap.org/styles/positron",bestFor:["research-dashboard","cities-internet"]},{id:"ink",label:"Ink",mood:"near-black minimal — maximum pin contrast",mapbox:"mapbox://styles/mapbox/dark-v11",maplibre:"https://tiles.openfreemap.org/styles/dark",bestFor:["my-upg-100-list","cities-internet"]},{id:"streetlife",label:"Street Life",mood:"full street detail — city-scale work",mapbox:"mapbox://styles/mapbox/streets-v12",maplibre:"https://tiles.openfreemap.org/styles/bright",bestFor:["cities-internet","key-cities"]},{id:"terrain",label:"Terrain",mood:"relief + parks — where people actually live",mapbox:"mapbox://styles/mapbox/outdoors-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["doxa-research-map","country-posters"]},{id:"satellite",label:"Satellite",mood:"imagery — the real ground",mapbox:"mapbox://styles/mapbox/satellite-v9",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["country-posters"]},{id:"hybrid",label:"Hybrid",mood:"imagery + labels — orientation without losing ground truth",mapbox:"mapbox://styles/mapbox/satellite-streets-v12",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["key-cities"]},{id:"wayfinder-day",label:"Wayfinder Day",mood:"high-legibility navigation palette",mapbox:"mapbox://styles/mapbox/navigation-day-v1",maplibre:"https://tiles.openfreemap.org/styles/liberty",bestFor:["gospel-resources"]},{id:"wayfinder-night",label:"Wayfinder Night",mood:"dark navigation — dashboards at night",mapbox:"mapbox://styles/mapbox/navigation-night-v1",maplibre:"https://tiles.openfreemap.org/styles/fiord",bestFor:["research-dashboard"]},{id:"galaxy",label:"Galaxy",mood:"the day side of Earth floating in space — normal land, blue oceans, black void behind the sphere",mapbox:"mapbox://styles/mapbox/standard",maplibre:"https://tiles.versatiles.org/assets/styles/colorful/style.json",bestFor:["research-dashboard","my-upg-100-list"]}].map(e=>[e.id,e]));function w1(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=v1[e];return o?t==="maplibre"?{style:o.maplibre,lightPreset:void 0,paint:o.paint}:{style:o.mapbox,lightPreset:o.lightPreset,paint:o.paint}:/^(mapbox:\/\/|https?:\/\/)/.test(e)?{style:e,lightPreset:void 0,paint:void 0}:{style:void 0,lightPreset:void 0,paint:void 0}}function k1(e,t){if(!e||!Array.isArray(t))return[];const o=[];for(const n of t)if(!(!n||!n.layer||!n.prop))try{if(!e.getLayer(n.layer))continue;e.setPaintProperty(n.layer,n.prop,n.value),o.push(n.layer+"."+n.prop)}catch{}return o}const x1=["mapbox","maplibre"],A1="auto";function ng(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function ag(e){const t=o=>typeof o=="string"&&!!o.trim()&&!/^YOUR_/.test(o.trim());return t(e==null?void 0:e.tk)||/^https?:\/\//i.test(String((e==null?void 0:e.tokenUrl)||""))?!0:typeof window>"u"?!1:t(window.MAP_TOKEN)||t(window.__doxaMapToken)||!!window.__doxaMapTokenPending}function sg(e,{token:t}={}){const o=ng(e);return rg(o)||(ag(o)||ag({tk:t})?"mapbox":"maplibre")}function rg(e){const t=ng(e),o=t==null?void 0:t.provider,n=typeof location<"u"?new URLSearchParams(location.search).get("provider"):void 0,a=typeof window<"u"?window.MAP_PROVIDER:void 0,s=String(o||n||a||A1).toLowerCase().trim();return x1.includes(s)?s:""}function S1(e){return e==="maplibre"?"MapLibre":"Mapbox"}function ig(e){return typeof window<"u"&&!!window.mapboxgl&&e instanceof window.mapboxgl.Map}function pr(e){if(typeof window>"u")return;const t=window.maplibregl,o=window.mapboxgl;return t&&t.Map&&e instanceof t.Map?t:o&&o.Map&&e instanceof o.Map?o:o||t}function Po(e,t="circle"){return ig(e)?{[`${t}-emissive-strength`]:1}:{}}const Wo={mapboxGlJs:{url:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",integrity:"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ"},mapboxGlCss:{url:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css",integrity:"sha384-rp1X/jJ9MpWPef9OimfXhOaOc4Gzs87yQvF+ajwY6X2H4PTeHNycNlLWiWvj7ehV"},maplibreGlJs:{url:"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.js",integrity:"sha384-5+cfbwT0iiub6VsQAdn6yz16nr6sDiQoHx6tm4O8OVYXHYOxcffFmCJBL0dgdvGp"},maplibreGlCss:{url:"https://cdn.jsdelivr.net/npm/maplibre-gl@5.24.0/dist/maplibre-gl.css",integrity:"sha384-uTttxo/aOKbdE5RlD/SPzSDoDmNvGlUYPjONi2MN/b7c9HPSvW07OIuyP7uL6jxK"},mapboxGeocoderJs:{url:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.min.js",integrity:"sha384-Lx9WK8XhZk57czwxt6B6nyaDHB5Ayrcrsu4Fw4bCp/Ot/QLOsUZ0xYqLOpOOSXZw"},mapboxGeocoderCss:{url:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.css",integrity:"sha384-1KNhwJNCQTr0DCi/5/OnQcFytgycxTahxNZaqKbAtqmY8bUhu26qxXqvDGXXwplS"},maplibreGeocoderJs:{url:"https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1.9.4/dist/maplibre-gl-geocoder.min.js",integrity:"sha384-RGV5vfoJd7alk8HE+71IyVfu19ciH1FKA15+AuXs6OeBM2npXrmTPFqG23yMiHXi"},maplibreGeocoderCss:{url:"https://cdn.jsdelivr.net/npm/@maplibre/maplibre-gl-geocoder@1.9.4/dist/maplibre-gl-geocoder.css",integrity:"sha384-UkDpPApjTpHJHpcJiSNAmbobh30W0/dmt0DoKm4V8CWYRYvQ/Jhd/ijFz0tFdVnH"},d3:{url:"https://cdn.jsdelivr.net/npm/d3@7.9.0/dist/d3.min.js",integrity:"sha384-CjloA8y00+1SDAUkjs099PVfnY2KmDC2BZnws9kh8D/lX1s46w6EPhpXdqMfjK6i"}};function Wa(e,t){const o=Object.values(Wo).find(n=>n.url===t);return o&&(e.integrity=o.integrity,e.crossOrigin="anonymous"),e}const lg={mapbox:"https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.3.0/mapbox-gl-rtl-text.js",maplibre:"https://cdn.jsdelivr.net/npm/@mapbox/mapbox-gl-rtl-text@0.3.0/dist/mapbox-gl-rtl-text.js"};function P1(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function L1(e){if(typeof window>"u")return!1;const t=e?[e]:[window.maplibregl,window.mapboxgl].filter(Boolean);let o=!1;for(const n of t)if(!(!n||!n.setRTLTextPlugin))try{if(P1(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(lg.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(lg.mapbox,null,!0);o=!0}catch{}return o}const C1=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,cg=new WeakMap;function E1(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function ug(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!E1(e))return typeof e.setLanguage=="function"&&e.setLanguage(o),0;const n=e.getStyle&&e.getStyle();if(!n||!Array.isArray(n.layers))return 0;let a=cg.get(e);a||(a=new Map,cg.set(e,a));let s=0;for(const r of n.layers){if(r.type!=="symbol"||!r.layout||r.layout["text-field"]==null)continue;const i=r.layout["text-field"],l=JSON.stringify(i);if(l.startsWith('["coalesce",["get","name:')){if(!a.has(r.id))continue}else{if(!C1.test(l))continue;a.set(r.id,i)}const c=o==="en"?a.get(r.id):["coalesce",["get","name:"+o],["get","name:latin"],["get","name"]];e.setLayoutProperty(r.id,"text-field",c),s++}return s}catch{return 0}}const oa={mapbox:{global:"mapboxgl",js:Wo.mapboxGlJs.url,css:Wo.mapboxGlCss.url},maplibre:{global:"maplibregl",js:Wo.maplibreGlJs.url,css:Wo.maplibreGlCss.url}};function pg(e){if(typeof window>"u")return;const t=window,o=()=>{try{const n=e.getContainer().querySelector(".mapboxgl-ctrl-logo, .maplibregl-ctrl-logo");n&&(n.style.display="none")}catch{}};if(t.__doxaLogoOwner&&t.__doxaLogoOwner!==e){e.once("load",o),o();return}t.__doxaLogoOwner=e,e.once("remove",()=>{t.__doxaLogoOwner===e&&(t.__doxaLogoOwner=null)})}const T1=oa.mapbox.css,R1="https://tiles.openfreemap.org/styles/liberty",N1="https://tiles.openfreemap.org/styles/fiord";function hl(e){var o;const t=((o=oa[e])==null?void 0:o.global)||oa.mapbox.global;return typeof window<"u"?window[t]:void 0}async function M1(e){const t=oa[e]||oa.mapbox;if(hl(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=t.css,Wa(n,t.css),document.head.appendChild(n)}const o=document.querySelector(`script[src="${t.js}"]`);if(o){if(hl(e))return;await new Promise(n=>{o.addEventListener("load",n,{once:!0}),o.addEventListener("error",n,{once:!0})});return}await new Promise((n,a)=>{const s=document.createElement("script");s.src=t.js,Wa(s,t.js),s.async=!1,s.addEventListener("load",n,{once:!0}),s.addEventListener("error",()=>a(new Error(`[useMapInstance] Failed to load ${e} engine script`)),{once:!0}),document.head.appendChild(s)})}async function F1(e,t){if(!e)return;const o=e.getRootNode();if(!(o instanceof ShadowRoot))return;const n=r=>new Promise(i=>setTimeout(i,r)),a=o.querySelector(`link[href="${t}"]`);if(a){if(a.sheet)return;await Promise.race([new Promise(r=>{a.addEventListener("load",r,{once:!0}),a.addEventListener("error",r,{once:!0})}),n(2e3)]);return}const s=document.createElement("link");s.rel="stylesheet",s.href=t,Wa(s,t),await Promise.race([new Promise(r=>{s.addEventListener("load",r,{once:!0}),s.addEventListener("error",r,{once:!0}),o.prepend(s)}),n(2e3)])}function I1(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?N1:R1}const O1=85.0511,ml=-2,D1=0,G1=-60;function dg(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function B1(e,t,o,n){if(!e||e<=0||!t||t<=0)return D1;const a=Math.log2(e/512),s=dg(n)-dg(O1),r=Math.log2(t/(512*s)),i=Math.max(a,r);return Math.max(ml,Math.min(i,(o??18)-1))}function j1({containerRef:e,accessToken:t,style:o,config:n=void 0,provider:a=void 0,center:s=[20,10],zoom:r=2,bounds:i=void 0,fitBoundsOptions:l=void 0,minZoom:c=void 0,skipWorldFloor:u=!1,maxZoom:h=18,pitch:f=0,bearing:P=0,renderWorldCopies:w=!0,showEdgeBorders:m=!0,southCutoff:y=G1,maxBounds:b=void 0}){const d=va(null),g=be(!1);let S=null,C=null,p=null,v=null;try{v=Re("profileConfig",null)}catch{}const $=!a&&!rg(v);a=a||sg(v,{token:t});let A=a==="maplibre",j=null;try{j=Re("lang",null)}catch{}const K=()=>{const ce=j&&typeof j=="object"&&"value"in j?j.value:j;if(typeof ce=="string"&&ce)return ce;const z=v&&typeof v=="object"&&"value"in v?v.value:v;if(z&&(z.locale||z.lang))return String(z.locale||z.lang);try{const x=new URLSearchParams(location.search);return x.get("lang")||x.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function Q(){var X;if($&&!A&&!t&&typeof window<"u"&&window.__doxaMapTokenPending){if(await window.__doxaMapTokenPending,!e.value)return;typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN||(a="maplibre",A=!0)}const ce=w1(o,a),z=ce.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const x=()=>!e.value;if(await M1(a),x())return;const D=hl(a);if(!D){console.error(`[useMapInstance] ${A?"maplibregl":"mapboxgl"} is not available. Add the ${A?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(L1(D),!A){if(!t&&typeof window<"u"&&window.__doxaMapTokenPending&&(await window.__doxaMapTokenPending,x()))return;if(!t&&typeof window<"u"&&typeof window.MAP_TOKEN=="string"&&window.MAP_TOKEN&&(t=window.MAP_TOKEN),!t){console.error('No Mapbox access token provided. Pass "tk" in profile-config JSON or set window.MAP_TOKEN.');return}if(!t.startsWith("pk.")){console.error('Mapbox token looks invalid (expected "pk." prefix). Got:',t.slice(0,10)+"...");return}}if(await F1(e.value,A?oa.maplibre.css:T1),x()||(await new Promise(pe=>requestAnimationFrame(pe)),x()))return;const M=e.value,N=M.clientWidth,G=M.clientHeight;if(N===0||G===0){console.error(`[useMapInstance] Container has ZERO dimensions (${N}×${G}). Map will be invisible. Check that parent elements have CSS sizing.`);let pe=M.parentElement,q=0;for(;pe&&q<5;)pe=pe.parentElement,q++}const ee=t;A||(D.accessToken=ee);const O=()=>typeof window<"u"&&window.innerWidth>=1024,ge=(pe,q)=>{if(u)return typeof c=="number"?c:ml;if(!O())return ml;const Pe=B1(pe,q,h,y);return typeof c=="number"?Math.max(c,Pe):Pe},$e=ge(M.clientWidth,M.clientHeight),Se=ce.lightPreset||(()=>{var pe;try{const q=typeof n=="function"?n():n;return(pe=q==null?void 0:q.basemap)==null?void 0:pe.lightPreset}catch{return}})();if(A){d.value=new D.Map({container:e.value,style:I1(z,Se),center:s,zoom:r,minZoom:$e,maxZoom:h,pitch:f,bearing:P,dragRotate:!1,renderWorldCopies:w,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...b?{maxBounds:b}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),pg(d.value);try{e.value.__doxaMap=d.value}catch{}}else{const pe=typeof n=="function"?n():n;d.value=new D.Map({accessToken:ee,container:e.value,style:z,...pe?{config:pe}:{},center:s,zoom:r,minZoom:$e,maxZoom:h,pitch:f,bearing:P,dragRotate:!1,touchPitch:!1,renderWorldCopies:w,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...b?{maxBounds:b}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),pg(d.value);try{e.value.__doxaMap=d.value}catch{}}try{let pe=!1;d.value.on("error",q=>{var B,T;const Pe=((B=q==null?void 0:q.error)==null?void 0:B.status)??(q==null?void 0:q.status),R=String(((T=q==null?void 0:q.error)==null?void 0:T.url)||(q==null?void 0:q.sourceId)||"");Pe!==401&&Pe!==403||pe||(pe=!0,console.error(`[doxa-maps] Mapbox returned ${Pe} for a TILE request while the style loaded fine. That is a URL RESTRICTION on the access token, not a bad token and not a bug in this map. Add this page's origin (${typeof location<"u"?location.origin:"this origin"}) to the token's URL restrictions in the Mapbox account. The map will keep its data layer and stay blank underneath until then.`+(R?` First failing request: ${R.slice(0,120)}`:"")))})}catch{}try{d.value.touchZoomRotate.disableRotation()}catch{}p=$1(((X=e.value)==null?void 0:X.parentElement)||null,{enabled:m});let ke=$e,me=null;S=()=>{const pe=d.value;if(!pe)return;const q=ge(M.clientWidth,M.clientHeight);q!==ke&&(ke=q,pe.setMinZoom(q)),pe.getZoom(){me=null;const Pe=d.value;if(!Pe)return;const R=ge(M.clientWidth,M.clientHeight);if(Pe.getZoom(){me&&(clearTimeout(me),me=null)},d.value.on("resize",S),typeof window<"u"&&(window.addEventListener("resize",S),window.addEventListener("orientationchange",S)),d.value.on("style.load",()=>{if(d.value&&ug(d.value,K()),ce.paint&&d.value){const pe=k1(d.value,ce.paint);console.info("[useMapInstance] style paint applied ("+a+"):",pe.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var pe;(pe=d.value)==null||pe.resize(),d.value&&d.value.setMinZoom(ge(M.clientWidth,M.clientHeight)),g.value=!0})})}function H(){if(d.value){if(S&&(d.value.off("resize",S),typeof window<"u"&&(window.removeEventListener("resize",S),window.removeEventListener("orientationchange",S)),S=null),C){try{C()}catch{}C=null}p&&(p(),p=null),d.value.remove(),d.value=null,g.value=!1}}if(j&&typeof j=="object"&&"value"in j)try{Fe(j,()=>{d.value&&g.value&&ug(d.value,K())})}catch{}return{map:d,isMapReady:g,initializeMap:Q,destroy:H}}const z1=Mn&&Mn.tagName.toUpperCase()==="SCRIPT"&&Mn.src||new URL("doxa-research-map.js",document.baseURI).href,un=e=>String(e||"").trim().replace(/\/+$/,"");function gg(){try{const t=String(z1||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function U1(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return un(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return un(o)}return un(gg()||"")}function bl(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const n=un(t);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const o=un((e==null?void 0:e.treeBase)||"")||un(gg()||"");if(o)try{const n=typeof document<"u"?document.baseURI:void 0;return un(new URL(o+"/assets",n).href)}catch{return un(o+"/assets")}return"./assets"}function H1({shareUrl:e,embedPath:t,profileConfig:o}={}){const n=o||null,a=typeof window<"u",s=e||(n==null?void 0:n.shareUrl);if(typeof s=="string"&&s.trim())return s.trim();const r=String(t||(n==null?void 0:n.shareEmbedPath)||"").trim();if(r){if(/^https?:\/\//i.test(r))return r;if(r.startsWith("/"))return a?window.location.origin+r:r;const i=U1(n),l=r.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 K1={Africa:{zoom:1.3,center:[16.6512,26.3538]},Asia:{zoom:.8,center:[98.2654,49.9282]},Europe:{zoom:1.4,center:[22.7826,70.1026]},"Latin America & Caribbean":{zoom:1.8,center:[-60.4619,10.1428]},"Middle East":{zoom:1.7,center:[22.9056,39.5752]},"No WAGF Region/Bloc":{zoom:.6,center:[-8.2363,44.2392]},"North America & Non-Spanish Caribbean":{zoom:2.1,center:[-68.1935,31.4282]},Oceania:{zoom:1.5,center:[161.6257,-.668]}},fg={circleRadius:{standard:["interpolate",["linear"],["zoom"],0,3,2,3.5,4,4,5,5,6,6.5,7,8,8,10,10,14,12,18,14,22],highlighted:["interpolate",["linear"],["zoom"],0,4,4,5,8,12,12,20],faded:["interpolate",["linear"],["zoom"],0,2,4,2.5,8,5,12,8],compact:["interpolate",["linear"],["zoom"],0,2,4,3,8,6,12,10],large:["interpolate",["linear"],["zoom"],0,4,4,6,8,14,12,24],touchTarget:["interpolate",["linear"],["zoom"],0,12,2,15,4,19,6,20,8,21,10,22,12,24,14,28]}};function V1(e){return K1[e]||null}function yl(e="standard"){return fg.circleRadius[e]||fg.circleRadius.standard}const W1={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"};function mt(e){return e==null?"":String(e).replace(/[&<>"'`]/g,t=>W1[t])}function q1(e,t=""){try{const o=new URL(String(e),typeof location<"u"?location.href:"https://example.invalid/");if(o.protocol==="http:"||o.protocol==="https:")return mt(o.href)}catch{}return mt(t)}function hg(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,s=Re("uiStore"),{t:r,locale:i}=yt(),l=be([]);function c(g){const S=n(g.languageFamily),C="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg";let p=g.imageUrl;(!p||p.includes("NoImageAvailable"))&&(p=C);const v=(g.name||"U")[0].toUpperCase(),$=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"],A=v.charCodeAt(0)%$.length,j=$[A];return`
- ${ht(g)} + ${mt(v)}
@@ -112,12 +112,12 @@ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; - ">${ht(m.name)} + ">${mt(g.name)}

${ht(m.country||"Unknown")} • ${ht(m.status||"Unknown Status")}

+ ">${mt(g.country||"Unknown")} • ${mt(g.status||"Unknown Status")}

@@ -132,51 +132,51 @@ overflow: hidden; "> ${ht(m.name)}

- Language: ${ht(m.language||"Unknown")} + Language: ${mt(g.language||"Unknown")}

Family: - - ${ht(m.languageFamily||"Unknown")} + + ${mt(g.languageFamily||"Unknown")}

- ${m.population?`

Population: ${ht(m.population)}

`:""} - ${m.description?`

${ht(m.description)}

`:""} + ${g.population?`

Population: ${mt(g.population)}

`:""} + ${g.description?`

${mt(g.description)}

`:""}
- `}function u(m){const x=m.iso_3166_1_alpha_3||"",P=m["name_"+((i==null?void 0:i.value)||"en")]||m.name_en||m.name||x,g=a(),C=x.toUpperCase(),A=g.filter(le=>{const G=(le.countryIso||le.country||"").toUpperCase();return G&&G===C}),U=A.length,H=A[0],Y=(H==null?void 0:H.wagfRegionLabel)||(H==null?void 0:H.doxaRegionLabel)||(H==null?void 0:H.doxaRegion)||(H==null?void 0:H.wagfRegion)||"—",K=(H==null?void 0:H.wagfBlockLabel)||(H==null?void 0:H.wagfBlock)||"—";return` + `}function u(g){const S=g.iso_3166_1_alpha_3||"",p=g["name_"+((i==null?void 0:i.value)||"en")]||g.name_en||g.name||S,v=a(),$=S.toUpperCase(),A=v.filter(ce=>{const z=(ce.countryIso||ce.country||"").toUpperCase();return z&&z===$}),j=A.length,K=A[0],Q=(K==null?void 0:K.wagfRegionLabel)||(K==null?void 0:K.doxaRegionLabel)||(K==null?void 0:K.doxaRegion)||(K==null?void 0:K.wagfRegion)||"—",H=(K==null?void 0:K.wagfBlockLabel)||(K==null?void 0:K.wagfBlock)||"—";return`

- ${ht(P)} + ${mt(p)}

- ${ht(r("popup.country.wagfRegion"))}: ${ht(Y)} + ${mt(r("popup.country.wagfRegion"))}: ${mt(Q)}

- ${ht(r("popup.country.wagfBlock"))}: ${ht(K)} + ${mt(r("popup.country.wagfBlock"))}: ${mt(H)}

- ${ht(r("popup.country.country"))}: ${ht(P)} (${ht(x)}) + ${mt(r("popup.country.country"))}: ${mt(p)} (${mt(S)})

- ${ht(r("popup.country.uupgCount"))}: ${ht(U)} + ${mt(r("popup.country.uupgCount"))}: ${mt(j)}

- `}function h(m){const x=t();if(!x)return;const d=m||"language-family-pins";if(!x.getLayer(d))return;const P=g=>{try{const C=g.features[0],A=C.properties,U=C.geometry.coordinates.slice();for(;Math.abs(g.lngLat.lng-U[0])>180;)U[0]+=g.lngLat.lng>U[0]?360:-360;if(s&&s.legendMode!==void 0){s.selectPeopleGroup(C),s.isMobile&&s.legendState==="collapsed"&&s.setLegendState("open"),s.isMobile||window.dispatchEvent(new CustomEvent("dxm:openDesktopLegend",{detail:{mapId:o}}));return}new(ur(x)).Popup({maxWidth:"320px",className:"people-group-popup"}).setLngLat(U).setHTML(c(A)).addTo(x)}catch(C){console.error(` [${o}] Pin click handler error:`,C)}};x.on("click",d,P),l.value.push({event:"click",layer:d,handler:P})}function f(){const m=t();if(!m)return;const x="regions-fill";if(!m.getLayer(x))return;const d=P=>{const g=["language-family-pins","language-family-pins-hitbox","people-groups-pins"];for(const C of g)if(m.getLayer(C)){const A=m.queryRenderedFeatures(P.point,{layers:[C]});if(A&&A.length>0)return}if(P.features&&P.features.length>0){const C=P.features[0].properties;new(ur(m)).Popup().setLngLat(P.lngLat).setHTML(u(C)).addTo(m)}};m.on("click",x,d),l.value.push({event:"click",layer:x,handler:d})}function S(){const m=t();if(!m)return;const x="clusters";if(!m.getLayer(x))return;const d=P=>{const g=m.queryRenderedFeatures(P.point,{layers:[x]});if(!g.length)return;const C=g[0].properties.cluster_id,A=g[0].source;m.getSource(A).getClusterExpansionZoom(C,(U,H)=>{U||m.easeTo({center:g[0].geometry.coordinates,zoom:H})})};m.on("click",x,d),l.value.push({event:"click",layer:x,handler:d})}function $(m){const x=t();if(!x||!x.getLayer(m))return;const d=()=>{x.getCanvas().style.cursor="pointer"},P=()=>{x.getCanvas().style.cursor=""};x.on("mouseenter",m,d),x.on("mouseleave",m,P),l.value.push({event:"mouseenter",layer:m,handler:d}),l.value.push({event:"mouseleave",layer:m,handler:P})}function b(){h(),$("language-family-pins"),h("language-family-pins-hitbox"),$("language-family-pins-hitbox"),S(),$("clusters")}function _(){f(),$("regions-fill")}function y(){const m=t();m&&(m.getLayer("language-family-pins")&&b(),m.getLayer("regions-fill")&&_(),m.getLayer("people-groups-pins")&&(h(),$("people-groups-pins")))}function p(){const m=t();if(m){for(const{event:x,layer:d,handler:P}of l.value)try{m.off(x,d,P)}catch{}l.value=[]}}return{attachAllEventHandlers:y,attachLanguageFamilyEvents:b,attachRegionEvents:_,attachPinClickHandler:h,attachRegionClickHandler:f,attachClusterClickHandler:S,attachCursorHandlers:$,detachAllEventHandlers:p,generatePinPopupContent:c,generateRegionPopupContent:u,registeredHandlers:l}}const Xe={Chamacoco:"Zamucoan",Ninam:"Yanomaman",Yagua:"Yaguan",Muinane:"Witotoan",Finnish:"Uralic","Hill Mari":"Uralic",Mansi:"Uralic","Meadow Mari":"Uralic","North Saami":"Uralic",Carabayo:"Unclassified",Kujarge:"Unclassified",Shabo:"Unclassified",Ainu:"Turkic",Kazakh:"Turkic","Khorasani Turkish":"Turkic",Kyrgyz:"Turkic","Northern Uzbek":"Turkic","South Azerbaijani":"Turkic",Turkish:"Turkic",Tuvan:"Turkic",Uyghur:"Turkic",Amundava:"Tupian",Araweté:"Tupian","Asurini of Xingú":"Tupian","Avá-Canoeiro":"Tupian",Awetí:"Tupian",Kamayurá:"Tupian",Karo:"Tupian",Morerebi:"Tupian",Tenharim:"Tupian","Uru-Eu-Wau-Wau":"Tupian","Uru-Pa-In":"Tupian",Wayampi:"Tupian","Zo’é":"Tupian",Evenki:"Tungusic",Xibe:"Tungusic",Carapana:"Tucanoan",Cubeo:"Tucanoan",Desano:"Tucanoan",Macuna:"Tucanoan",Piratapuyo:"Tucanoan",Siona:"Tucanoan",Siriano:"Tucanoan",Tucano:"Tucanoan",Tuyuca:"Tucanoan",Waimaha:"Tucanoan",Tay:"Trans-New Guinea",Adi:"Sino-Tibetan",Akha:"Sino-Tibetan","Amdo Tibetan":"Sino-Tibetan",Axi:"Sino-Tibetan",Biyo:"Sino-Tibetan","Boro (India)":"Sino-Tibetan",Brokkat:"Sino-Tibetan",Bugun:"Sino-Tibetan",Byangsi:"Sino-Tibetan","Central Lalo":"Sino-Tibetan","Central Tibetan":"Sino-Tibetan",Chak:"Sino-Tibetan",Chalikha:"Sino-Tibetan",Chaudangsi:"Sino-Tibetan",Chocangacakha:"Sino-Tibetan",Darlong:"Sino-Tibetan",Dhimal:"Sino-Tibetan","Digaro-Mishmi":"Sino-Tibetan",Dzalakha:"Sino-Tibetan","Eastern Nisu":"Sino-Tibetan",Ersu:"Sino-Tibetan",Gahri:"Sino-Tibetan",Gongduk:"Sino-Tibetan",Gyalsumdo:"Sino-Tibetan",Hani:"Sino-Tibetan","Idu-Mishmi":"Sino-Tibetan",Kaike:"Sino-Tibetan",Kanashi:"Sino-Tibetan",Katso:"Sino-Tibetan",Khamba:"Sino-Tibetan",Koireng:"Sino-Tibetan",Kucong:"Sino-Tibetan",Kurtokha:"Sino-Tibetan",Ladakhi:"Sino-Tibetan",Lakha:"Sino-Tibetan","Lang’e":"Sino-Tibetan",Lhokpu:"Sino-Tibetan",Lolopo:"Sino-Tibetan",Lunanakha:"Sino-Tibetan","Mandarin Chinese":"Sino-Tibetan",Meitei:"Sino-Tibetan","Miju-Mishmi":"Sino-Tibetan",Mpi:"Sino-Tibetan",Na:"Sino-Tibetan",Namuyi:"Sino-Tibetan",Narua:"Sino-Tibetan",Naxi:"Sino-Tibetan","Northern Muji":"Sino-Tibetan",Nuosu:"Sino-Tibetan",Nupbikha:"Sino-Tibetan",Nyenkha:"Sino-Tibetan",Olekha:"Sino-Tibetan",Pahari:"Sino-Tibetan",Pattani:"Sino-Tibetan","Phana’":"Sino-Tibetan",Phula:"Sino-Tibetan",Phunoi:"Sino-Tibetan",Puma:"Sino-Tibetan",Puroik:"Sino-Tibetan",Raji:"Sino-Tibetan",Rawat:"Sino-Tibetan",Sani:"Sino-Tibetan",Sherdukpen:"Sino-Tibetan",Sherpa:"Sino-Tibetan",Shuhi:"Sino-Tibetan",Sila:"Sino-Tibetan",Singpho:"Sino-Tibetan",Sunwar:"Sino-Tibetan","Tawang Monpa":"Sino-Tibetan",Tseku:"Sino-Tibetan",Tshangla:"Sino-Tibetan",Usoi:"Sino-Tibetan","Western Minyag":"Sino-Tibetan","Wusa Nasu":"Sino-Tibetan","Xiang Chinese":"Sino-Tibetan",Yakkha:"Sino-Tibetan","Youle Jinuo":"Sino-Tibetan","Yue Chinese":"Sino-Tibetan",Zakhring:"Sino-Tibetan","Afghan Sign Language":"Sign Language","Albanian Sign Language":"Sign Language","Algerian Sign Language":"Sign Language","American Sign Language":"Sign Language","Armenian Sign Language":"Sign Language","British Sign Language":"Sign Language","Bulgarian Sign Language":"Sign Language","Cambodian Sign Language":"Sign language","Cuban Sign Language":"Sign Language","Egyptian Sign Language":"Sign Language","Greek Sign Language":"Sign Language","Guinean Sign Language":"Sign Language","Hong Kong Sign Language":"Sign Language","Icelandic Sign Language":"Sign Language","Iranian Sign Language":"Sign Language","Israeli Sign Language":"Sign Language","Jamaican Sign Language":"Sign Language","Jordanian Sign Language":"Sign Language","Laos Sign Language":"Sign Language","Libyan Sign Language":"Sign Language","Maltese Sign Language":"Sign Language","Mauritian Sign Language":"Sign Language","Moroccan Sign Language":"Sign Language","Mozambican Sign Language":"Sign Language","Myanmar Sign Language":"Sign language","Natural Sign Language":"Sign Language","Pakistan Sign Language":"Sign Language","Papua New Guinean Sign Language":"Sign language","Russian Sign Language":"Sign Language","Saudi Arabian Sign Language":"Sign Language","Sign Language of the Netherlands":"Sign Language","Solomon Islands Sign Language":"Sign Language","Sri Lankan Sign Language":"Sign Language","Swedish Sign Language":"Sign Language","Turkish Sign Language":"Sign Language","Northern Conchucos Ancash Quechua":"Quechuan","Northern Pastaza Quichua":"Quechuan",Hupdë:"Puinavean",Amahuaca:"Panoan",Korubo:"Panoan",Sharanahua:"Panoan","Shipibo-Conibo":"Panoan",Yaminahua:"Panoan",Yawanawa:"Panoan",Afitti:"Nilo-Saharan",Assangori:"Nilo-Saharan","Beli (South Sudan)":"Nilo-Saharan",Berta:"Nilo-Saharan",Burun:"Nilo-Saharan","Dar Daju Daju":"Nilo-Saharan","Dar Fur Daju":"Nilo-Saharan","Dar Sila Daju":"Nilo-Saharan",Dazaga:"Nilo-Saharan","Dendi (Benin)":"Nilo-Saharan",Dilling:"Nilo-Saharan",Fur:"Nilo-Saharan",Gbaya:"Nilo-Saharan",Ghulfan:"Nilo-Saharan",Gwama:"Nilo-Saharan","Humburi Senni Songhay":"Nilo-Saharan",Jopadhola:"Nilo-Saharan",Kadaru:"Nilo-Saharan",Kanga:"Nilo-Saharan",Karanga:"Nilo-Saharan",Karko:"Nilo-Saharan",Kebu:"Nilo-Saharan",Keiga:"Nilo-Saharan",Keliko:"Nilo-Saharan",Kendeje:"Nilo-Saharan",Kibet:"Nilo-Saharan","Komo (Sudan)":"Nilo-Saharan",Korandje:"Nilo-Saharan",Kulfa:"Nilo-Saharan",Kwegu:"Nilo-Saharan",Laarim:"Nilo-Saharan",Logorik:"Nilo-Saharan",Majang:"Nilo-Saharan","Manga Kanuri":"Nilo-Saharan",Mango:"Nilo-Saharan",Mararit:"Nilo-Saharan",Marfa:"Nilo-Saharan",Midob:"Nilo-Saharan","Mo’da":"Nilo-Saharan",Morom:"Nilo-Saharan",Moru:"Nilo-Saharan",Naba:"Nilo-Saharan",Nara:"Nilo-Saharan",Njalgulgule:"Nilo-Saharan",Nuer:"Nilo-Saharan","Nyamusa-Molo":"Nilo-Saharan",Nyangatom:"Nilo-Saharan","Olu’bo":"Nilo-Saharan",Opo:"Nilo-Saharan",Päri:"Nilo-Saharan","Sara Kaba Naa":"Nilo-Saharan",Surbakhal:"Nilo-Saharan",Tadaksahak:"Nilo-Saharan","Tama (Chad)":"Nilo-Saharan",Temein:"Nilo-Saharan",Thuri:"Nilo-Saharan","Tirmaga-Chai Suri":"Nilo-Saharan",Toposa:"Nilo-Saharan",Tumtum:"Nilo-Saharan","Wali (Sudan)":"Nilo-Saharan","Yerwa Kanuri":"Nilo-Saharan",Yulu:"Nilo-Saharan",Zaghawa:"Nilo-Saharan","Adamawa Fulfulde":"Niger-Congo",Akaselem:"Niger-Congo","Amba (Uganda)":"Niger-Congo",Anii:"Niger-Congo",Baangi:"Niger-Congo",Badyara:"Niger-Congo","Bago-Kusuntu":"Niger-Congo",Bai:"Niger-Congo","Bainouk-Gunyaamolo":"Niger-Congo",Bamanankan:"Niger-Congo","Banda-Mbrès":"Niger-Congo",Bandial:"Niger-Congo",Bankagooma:"Niger-Congo","Belanda Viri":"Niger-Congo",Bemba:"Niger-Congo",Bolgo:"Niger-Congo","Bon Gula":"Niger-Congo",Bua:"Niger-Congo",Chichewa:"Niger-Congo","Chung (Cameroon)":"Niger-Congo","Ci Gbe":"Niger-Congo",Degema:"Niger-Congo",Dek:"Niger-Congo",Dhimba:"Niger-Congo",Dogoso:"Niger-Congo","East Limba":"Niger-Congo",Engenni:"Niger-Congo",Epie:"Niger-Congo",Éwé:"Niger-Congo",Fania:"Niger-Congo",Foodo:"Niger-Congo",Fwe:"Niger-Congo",Gciriku:"Niger-Congo",Gwa:"Niger-Congo",Herero:"Niger-Congo",Ibuoro:"Niger-Congo","Jenaama Bozo":"Niger-Congo",Jita:"Niger-Congo",Jula:"Niger-Congo",Kabiyè:"Niger-Congo",Kadung:"Niger-Congo",Kakabe:"Niger-Congo",Kalamsé:"Niger-Congo","Kami (Tanzania)":"Niger-Congo","Kango (Bas-Uélé District)":"Niger-Congo",Kasem:"Niger-Congo","Kelengaxo Bozo":"Niger-Congo",Khe:"Niger-Congo",Khisa:"Niger-Congo",Kim:"Niger-Congo",Kinyarwanda:"Niger-Congo",Kipfokomu:"Niger-Congo",Kitharaka:"Niger-Congo",Kiyombe:"Niger-Congo",Ko:"Niger-Congo",Koalib:"Niger-Congo",Koke:"Niger-Congo",Konongo:"Niger-Congo","Koro Nulu":"Niger-Congo","Koro Zuba":"Niger-Congo",Kuhane:"Niger-Congo",Kunda:"Niger-Congo",Kuranko:"Niger-Congo",Kuria:"Niger-Congo",Kwangali:"Niger-Congo",Lame:"Niger-Congo",Laru:"Niger-Congo",Lopa:"Niger-Congo","Makhuwa-Meetto":"Niger-Congo","Makhuwa-Shirima":"Niger-Congo","Malawi Nyiha":"Niger-Congo",Mandinka:"Niger-Congo",Mankanya:"Niger-Congo",Mansoanka:"Niger-Congo",Mbukushu:"Niger-Congo","Mende (Sierra Leone)":"Niger-Congo",Miyobe:"Niger-Congo",Mushungulu:"Niger-Congo","Mwali Comorian":"Niger-Congo","Mwera (Chimwera)":"Niger-Congo",Ndemli:"Niger-Congo",Ndengereko:"Niger-Congo",Ndumu:"Niger-Congo",Ndunga:"Niger-Congo","Ndzwani Comorian":"Niger-Congo",Ngile:"Niger-Congo","Northwest Gbaya":"Niger-Congo",Notre:"Niger-Congo",Nyamwanga:"Niger-Congo",Nyankore:"Niger-Congo",Nyengo:"Niger-Congo",Okpamheri:"Niger-Congo",Osatu:"Niger-Congo","Pana (Burkina Faso)":"Niger-Congo",Pulaar:"Niger-Congo",Pular:"Niger-Congo",Rufiji:"Niger-Congo","Sankaran Maninka":"Niger-Congo",Sapo:"Niger-Congo","Senara Sénoufo":"Niger-Congo",Shanga:"Niger-Congo",Sininkere:"Niger-Congo","Southern Ngbandi":"Niger-Congo",Swahili:"Niger-Congo","Syenara Sénoufo":"Niger-Congo",Tagbu:"Niger-Congo",Tagoi:"Niger-Congo",Tegali:"Niger-Congo",Tem:"Niger-Congo","Tiéyaxo Bozo":"Niger-Congo",Tiyaa:"Niger-Congo",Tocho:"Niger-Congo","Tonga (Zambia)":"Niger-Congo",Totela:"Niger-Congo","Toura (Côte d’Ivoire)":"Niger-Congo",Tswa:"Niger-Congo",Tumbuka:"Niger-Congo",Ukaan:"Niger-Congo",Uneme:"Niger-Congo",Vai:"Niger-Congo",Vute:"Niger-Congo",Waama:"Niger-Congo",Warnang:"Niger-Congo",Wolof:"Niger-Congo",Yao:"Niger-Congo",Yauma:"Niger-Congo",Yom:"Niger-Congo","Zan Gula":"Niger-Congo",Zande:"Niger-Congo",Zigula:"Niger-Congo",Mamaindê:"Nambikwara",Aghul:"Nakh-Daghestanian",Akhvakh:"Nakh-Daghestanian",Andi:"Nakh-Daghestanian",Avar:"Nakh-Daghestanian",Bagvalal:"Nakh-Daghestanian",Botlikh:"Nakh-Daghestanian",Chamalal:"Nakh-Daghestanian",Chechen:"Nakh-Daghestanian",Dargwa:"Nakh-Daghestanian",Kaitag:"Nakh-Daghestanian",Karata:"Nakh-Daghestanian",Khvarshi:"Nakh-Daghestanian",Tindi:"Nakh-Daghestanian",Pirahã:"Muran",Bonan:"Mongolic","China Buriat":"Mongolic",Daur:"Mongolic","Kalmyk-Oirat":"Mongolic","Peripheral Mongolian":"Mongolic","Russia Buriat":"Mongolic",Tagdal:"Mixed language",Wutunhua:"Mixed language","Ashéninka Perené":"Maipurean",Baniwa:"Maipurean",Cabiyarí:"Maipurean",Curripaco:"Maipurean","Enawené-Nawé":"Maipurean",Kanamarí:"Maipurean",Mehináku:"Maipurean","Pichis Ashéninka":"Maipurean",Waurá:"Maipurean",Bangime:"Language isolate",Burushaski:"Language isolate","Ai-Cham":"Kra-Dai",Aiton:"Kra-Dai","Dai Zhuang":"Kra-Dai",Duoluo:"Kra-Dai","Green Gelao":"Kra-Dai","Guibian Zhuang":"Kra-Dai",Hlai:"Kra-Dai",Jiamao:"Kra-Dai",Kang:"Kra-Dai",Khün:"Kra-Dai",Kuan:"Kra-Dai",Lachi:"Kra-Dai","Laha (Viet Nam)":"Kra-Dai",Lao:"Kra-Dai",Lü:"Kra-Dai","Mak (China)":"Kra-Dai","Northeastern Thai":"Kra-Dai","Northern Dong":"Kra-Dai","Northern Thai":"Kra-Dai",Nyaw:"Kra-Dai",Phake:"Kra-Dai","Phu Thai":"Kra-Dai",Qabiao:"Kra-Dai",Qau:"Kra-Dai","Qiubei Zhuang":"Kra-Dai",Shan:"Kra-Dai","Southern Dong":"Kra-Dai",Sui:"Kra-Dai","T’en":"Kra-Dai","Tai Daeng":"Kra-Dai","Tai Dam":"Kra-Dai","Tai Hongjin":"Kra-Dai","Tai Nüa":"Kra-Dai","Tai Ya":"Kra-Dai","Tai Yo":"Kra-Dai","Ts’ün-Lao":"Kra-Dai","Yang Zhuang":"Kra-Dai",Yerong:"Kra-Dai",Yong:"Kra-Dai",Yoy:"Kra-Dai",Khoekhoe:"Khoe-Kwadi",Karajá:"Karajá","Pará Gavião":"Jean",Suyá:"Jean",Japanese:"Japonic","Oki-No-Erabu":"Japonic","Toku-No-Shima":"Japonic",Yaeyama:"Japonic",Yoron:"Japonic","Adivasi Oriya":"Indo-European",Afrikaans:"Indo-European","Alviri-Vidari":"Indo-European",Angika:"Indo-European",Assamese:"Indo-European",Bagheli:"Indo-European",Bagri:"Indo-European",Bashkardi:"Indo-European",Bateri:"Indo-European",Bengali:"Indo-European",Bhojpuri:"Indo-European",Bhunjia:"Indo-European",Bilaspuri:"Indo-European",Bosnian:"Indo-European","Braj Bhasha":"Indo-European",Brokskat:"Indo-European",Bundeli:"Indo-European",Catalan:"Indo-European",Chambeali:"Indo-European",Chhattisgarhi:"Indo-European",Dameli:"Indo-European",Dari:"Indo-European",Dhundari:"Indo-European",Dogri:"Indo-European",Domari:"Indo-European",Dutch:"Indo-European","Eastern Balochi":"Indo-European","Eastern Panjabi":"Indo-European","Eastern Yiddish":"Indo-European",English:"Indo-European",French:"Indo-European",Gaddi:"Indo-European",Garhwali:"Indo-European",Gawri:"Indo-European",Gowro:"Indo-European",Gujarati:"Indo-European",Gujari:"Indo-European",Halbi:"Indo-European",Haroti:"Indo-European",Haryanvi:"Indo-European",Hindi:"Indo-European","Indus Kohistani":"Indo-European","Iranian Persian":"Indo-European",Ishkashimi:"Indo-European",Kacchi:"Indo-European",Kalkoti:"Indo-European",Kanauji:"Indo-European",Kangri:"Indo-European",Karingani:"Indo-European",Kashmiri:"Indo-European",Kati:"Indo-European",Khunsari:"Indo-European",Konkani:"Indo-European",Kudmali:"Indo-European",Kumaoni:"Indo-European",Kumzari:"Indo-European",Laki:"Indo-European",Lasi:"Indo-European",Luwati:"Indo-European",Magahi:"Indo-European",Maithili:"Indo-European",Maldivian:"Indo-European",Malvi:"Indo-European",Marathi:"Indo-European","Marwari (India)":"Indo-European",Mewari:"Indo-European",Munji:"Indo-European",Nepali:"Indo-European",Nimadi:"Indo-European","Northern Kurdish":"Indo-European",Odia:"Indo-European","Pahari-Potwari":"Indo-European",Palula:"Indo-European",Panchpargania:"Indo-European",Pangwali:"Indo-European",Parachi:"Indo-European",Portuguese:"Indo-European",Russian:"Indo-European",Sadri:"Indo-European",Sanglechi:"Indo-European",Sarikoli:"Indo-European",Savi:"Indo-European",Semnani:"Indo-European",Serbian:"Indo-European",Shabak:"Indo-European",Shahrudi:"Indo-European",Shekhawati:"Indo-European",Shina:"Indo-European",Shughni:"Indo-European",Shumashti:"Indo-European",Sindhi:"Indo-European",Sivandi:"Indo-European",Soi:"Indo-European","Southern Balochi":"Indo-European",Spanish:"Indo-European",Tajik:"Indo-European",Talysh:"Indo-European",Urdu:"Indo-European",Ushojo:"Indo-European",Vaghri:"Indo-European","Vlax Romani":"Indo-European",Wagdi:"Indo-European",Wakhi:"Indo-European",Waneci:"Indo-European","Western Balochi":"Indo-European",Yadgha:"Indo-European","Bu-Nao Bunu":"Hmong-Mien","Central Mashan Miao":"Hmong-Mien","Chuanqiandian Cluster Miao":"Hmong-Mien","Eastern Xiangxi Miao":"Hmong-Mien","Iu Mien":"Hmong-Mien","Luopohe Miao":"Hmong-Mien","Northern Qiandong Miao":"Hmong-Mien","Pa-Hng":"Hmong-Mien","Southwestern Huishui Miao":"Hmong-Mien","Wunai Bunu":"Hmong-Mien","Younuo Bunu":"Hmong-Mien",Amarakaeri:"Harákmbut",Huachipaeri:"Harákmbut",Cuiba:"Guajiboan",Macaguán:"Guajiboan",Tlicho:"Eyak-Athabaskan",Kannada:"Dravidian",Kodava:"Dravidian","Korra Koraga":"Dravidian","Kota (India)":"Dravidian",Kudiya:"Dravidian",Malapandaram:"Dravidian",Malayalam:"Dravidian",Muthuvan:"Dravidian",Ravula:"Dravidian",Sholaga:"Dravidian",Tamil:"Dravidian",Telugu:"Dravidian",Tulu:"Dravidian",Vishavan:"Dravidian","Andaman Hindi Creole":"Creole","Cocos Islands Malay":"Creole","Juba Arabic":"Creole",Nubi:"Creole",Barí:"Chibchan","Barro Negro Tunebo":"Chibchan","Western Tunebo":"Chibchan",Ikpeng:"Cariban","Kuikúro-Kalapálo":"Cariban",Pemon:"Cariban",Trió:"Cariban","Waimiri-Atroarí":"Cariban",Waiwai:"Cariban",Yukpa:"Cariban",Borôro:"Bororoan",Chachi:"Barbacoan","Abai Sungai":"Austronesian",Ambelau:"Austronesian",Asilulu:"Austronesian",Balaesang:"Austronesian","Batak Alas-Kluet":"Austronesian","Batak Dairi":"Austronesian","Batak Karo":"Austronesian",Bonerate:"Austronesian",Bonggi:"Austronesian",Brunei:"Austronesian","Brunei Bisaya":"Austronesian",Buol:"Austronesian","Central Malay":"Austronesian","Central Sama":"Austronesian","Coastal Konjo":"Austronesian",Dampelas:"Austronesian","Dibabawon Manobo":"Austronesian",Dondo:"Austronesian",Gane:"Austronesian","Geser-Gorom":"Austronesian","Highland Konjo":"Austronesian",Hitu:"Austronesian",Iban:"Austronesian",Indonesian:"Austronesian","Kadazan Dusun":"Austronesian",Kiput:"Austronesian",Komodo:"Austronesian",Kompane:"Austronesian",Lahanan:"Austronesian","Lampung Nyo":"Austronesian","Larike-Wakasihu":"Austronesian",Lola:"Austronesian",Luhu:"Austronesian",Malay:"Austronesian",Mariri:"Austronesian",Moronene:"Austronesian",Rukai:"Austronesian","Sabah Bisaya":"Austronesian","Seit-Kaitetu":"Austronesian",Sula:"Austronesian","Tae’":"Austronesian",Tajio:"Austronesian",Tomini:"Austronesian",Tutong:"Austronesian",Ujir:"Austronesian",Aheu:"Austro-Asiatic",Alak:"Austro-Asiatic",Bit:"Austro-Asiatic","Bo (Laos)":"Austro-Asiatic",Bondo:"Austro-Asiatic",Brao:"Austro-Asiatic",Bugan:"Austro-Asiatic",Chong:"Austro-Asiatic",Chut:"Austro-Asiatic",Danau:"Austro-Asiatic",Halang:"Austro-Asiatic","Halang Doan":"Austro-Asiatic",Hu:"Austro-Asiatic",Hung:"Austro-Asiatic",Ir:"Austro-Asiatic",Kensiu:"Austro-Asiatic",Khmu:"Austro-Asiatic",Khua:"Austro-Asiatic",Khuen:"Austro-Asiatic",Koda:"Austro-Asiatic","Kon Keu":"Austro-Asiatic",Kriang:"Austro-Asiatic",Kuay:"Austro-Asiatic",Laven:"Austro-Asiatic",Maleng:"Austro-Asiatic","Man Met":"Austro-Asiatic",Mang:"Austro-Asiatic",Minriq:"Austro-Asiatic",Mlabri:"Austro-Asiatic",Nguôn:"Austro-Asiatic",Nyaheun:"Austro-Asiatic",Nyahkur:"Austro-Asiatic","O’du":"Austro-Asiatic",Ong:"Austro-Asiatic",Oy:"Austro-Asiatic",Pacoh:"Austro-Asiatic","Phong-Kniang":"Austro-Asiatic",Prai:"Austro-Asiatic",Puoc:"Austro-Asiatic",Rengao:"Austro-Asiatic",Rmeet:"Austro-Asiatic","Rumai Palaung":"Austro-Asiatic",Sapuan:"Austro-Asiatic","Shwe Palaung":"Austro-Asiatic","So (Laos)":"Austro-Asiatic",Sou:"Austro-Asiatic","Tai Loi":"Austro-Asiatic",Talieng:"Austro-Asiatic",Tareng:"Austro-Asiatic",Tho:"Austro-Asiatic",U:"Austro-Asiatic","Upper Ta’oih":"Austro-Asiatic",Vietnamese:"Austro-Asiatic","Western Katu":"Austro-Asiatic",Suruahá:"Arauan",Jarawa:"Andamanese",Öñge:"Andamanese",Sentinel:"Andamanese",Afar:"Afro-Asiatic","Alaba-K’abeena":"Afro-Asiatic",Alagwa:"Afro-Asiatic",Ale:"Afro-Asiatic","Algerian Arabic":"Afro-Asiatic",Amharic:"Afro-Asiatic",Arbore:"Afro-Asiatic","Baharna Arabic":"Afro-Asiatic",Barein:"Afro-Asiatic",Bedawiyet:"Afro-Asiatic",Bidiyo:"Afro-Asiatic",Bilen:"Afro-Asiatic",Birgit:"Afro-Asiatic",Boor:"Afro-Asiatic","Borana-Arsi-Guji Oromo":"Afro-Asiatic",Buduma:"Afro-Asiatic","Central Atlas Tamazight":"Afro-Asiatic","Chadian Arabic":"Afro-Asiatic",Chenoua:"Afro-Asiatic",Ciwogai:"Afro-Asiatic",Daasanach:"Afro-Asiatic",Dabarre:"Afro-Asiatic",Dangaléat:"Afro-Asiatic",Deno:"Afro-Asiatic",Diri:"Afro-Asiatic",Duwai:"Afro-Asiatic","Eastern Egyptian Bedawi Arabic":"Afro-Asiatic","Eastern Oromo":"Afro-Asiatic",Garre:"Afro-Asiatic",Geruma:"Afro-Asiatic",Giiwo:"Afro-Asiatic",Gorowa:"Afro-Asiatic","Gulf Arabic":"Afro-Asiatic","Hadrami Arabic":"Afro-Asiatic",Harsusi:"Afro-Asiatic",Hassaniyya:"Afro-Asiatic",Hausa:"Afro-Asiatic",Hebrew:"Afro-Asiatic","Hijazi Arabic":"Afro-Asiatic",Hobyót:"Afro-Asiatic",Hozo:"Afro-Asiatic",Jiiddu:"Afro-Asiatic",Jimi:"Afro-Asiatic",Jina:"Afro-Asiatic","Jonkor Bourmataguil":"Afro-Asiatic","Judeo-Iraqi Arabic":"Afro-Asiatic","Judeo-Moroccan Arabic":"Afro-Asiatic",Kabalai:"Afro-Asiatic",Kajakse:"Afro-Asiatic",Kariya:"Afro-Asiatic","Karo (Ethiopia)":"Afro-Asiatic",Kutto:"Afro-Asiatic","Levantine Arabic":"Afro-Asiatic",Libido:"Afro-Asiatic","Libyan Arabic":"Afro-Asiatic","Lishana Deni":"Afro-Asiatic",Maaka:"Afro-Asiatic",Maay:"Afro-Asiatic",Majera:"Afro-Asiatic",Male:"Afro-Asiatic",Maslam:"Afro-Asiatic",Masmaje:"Afro-Asiatic",Mburku:"Afro-Asiatic",Mehri:"Afro-Asiatic","Mesopotamian Arabic":"Afro-Asiatic",Migaama:"Afro-Asiatic",Mogum:"Afro-Asiatic","Moroccan Arabic":"Afro-Asiatic",Mositacha:"Afro-Asiatic",Mubi:"Afro-Asiatic",Mukulu:"Afro-Asiatic",Nafusi:"Afro-Asiatic","Najdi Arabic":"Afro-Asiatic",Nyam:"Afro-Asiatic","Omani Arabic":"Afro-Asiatic","Pa’a":"Afro-Asiatic",Saba:"Afro-Asiatic",Saho:"Afro-Asiatic","Sanaani Arabic":"Afro-Asiatic",Seze:"Afro-Asiatic",Shehri:"Afro-Asiatic",Shekkacho:"Afro-Asiatic",Sheko:"Afro-Asiatic","Shihhi Arabic":"Afro-Asiatic",Siwi:"Afro-Asiatic",Sokoro:"Afro-Asiatic",Soqotri:"Afro-Asiatic","South Levantine Arabic":"Afro-Asiatic","Standard Arabic":"Afro-Asiatic","Sudanese Arabic":"Afro-Asiatic","Ta’izzi-Adeni Arabic":"Afro-Asiatic","Tahaggart Tamahaq":"Afro-Asiatic",Taznatit:"Afro-Asiatic",Tigré:"Afro-Asiatic",Toram:"Afro-Asiatic",Tsamai:"Afro-Asiatic",Tumzabt:"Afro-Asiatic",Tunni:"Afro-Asiatic",Waata:"Afro-Asiatic","West Central Oromo":"Afro-Asiatic",Xamtanga:"Afro-Asiatic",Zumbun:"Afro-Asiatic"},yl=[">",["to-number",["get","peoplePraying"],0],0],_l={0:.25,8:.4,14:.5},oa={0:.1,8:.18,14:.22},na={0:1.2,8:1.6,14:2},fg=["interpolate",["linear"],["zoom"],0,["case",yl,_l[0],oa[0]],8,["case",yl,_l[8],oa[8]],14,["case",yl,_l[14],oa[14]]],M1=["interpolate",["linear"],["zoom"],0,na[0],8,na[8],14,na[14]],hg=["==",["to-number",["get","peoplePraying"],0],0],F1={prayer:[hg],prayerProgress:[hg],engagement:[["all",["!=",["get","engagementStatus"],!0],["!=",["get","engagementStatus"],1]]],adoption:[["all",["!=",["get","adoptionStatus"],!0],["!=",["get","adoptionStatus"],1]]]};function I1(e){const t=F1[e]||[];if(!t.length)return M1;const o=t.length===1?t[0]:["any",...t];return["interpolate",["linear"],["zoom"],0,["case",o,oa[0],na[0]],8,["case",o,oa[8],na[8]],14,["case",o,oa[14],na[14]]]}const O1=[[/ sign language$/i,"Sign Language"]];function D1(e){if(!e||typeof e!="string")return null;const t=e.trim(),o=t.split(",").map(a=>a.trim()).filter(Boolean);if(o.length>=2){const a=[...o].reverse().join(" ");if(Xe[a])return Xe[a];if(o.length>=3){const s=[o[1],o[0]].join(" ");if(Xe[s])return Xe[s]}}if(Xe[t])return Xe[t];const n=t.replace(/\s*\(.*?\)\s*$/,"").trim();if(n!==t&&Xe[n])return Xe[n];for(const[a,s]of O1)if(a.test(t))return s;return null}function B1(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,s=()=>{const Z=t();return Z?Ve(Z):null},r=gg({getMap:s,mapId:o,getLanguageFamilyColor:n,getNormalizedPeopleGroups:a}),i=me({languageFamilyPins:!1,regions:!1,peopleGroups:!1,familyConnections:!1}),l=me({});function c(Z,X="languageFamily"){const ie=s();if(!ie||!(Z!=null&&Z.length))return;const Ce=e1(X),E=Z.map(F=>{var ue,oe,w,v,B,ee,be,pe,te,ce,Te,Ee,We,st,et,V,re,ve,Ae;return{type:"Feature",properties:{uniqueId:F.id||F.uniqueId,slug:F.slug||((ue=F._normalized)==null?void 0:ue.slug)||"",rop3:F.rop3||F.peopleGroupId,peopleId3:F.peopleId3||"",name:F.name,language:F.language,languageFamily:F.languageFamily||((oe=F._normalized)==null?void 0:oe.languageFamily)||D1(F.language)||"Unknown",affinityBlock:F.affinityBlock||F.affbloc||F.Affbloc||((w=F._normalized)==null?void 0:w.affinityBlock)||"Unknown",affinityBlockLabel:F.affinityBlockLabel||((v=F._normalized)==null?void 0:v.affinityBlockLabel)||"",cluster:F.cluster||((B=F._normalized)==null?void 0:B.cluster)||"",clusterLabel:F.clusterLabel||((ee=F._normalized)==null?void 0:ee.clusterLabel)||"",peopleGroup:F.peopleGroup||((be=F._normalized)==null?void 0:be.peopleGroup)||"",peopleGroupLabel:F.peopleGroupLabel||((pe=F._normalized)==null?void 0:pe.peopleGroupLabel)||"",doxaRegion:F.doxaRegion||((te=F._normalized)==null?void 0:te.doxaRegion)||"Unknown",wagfBlock:F.wagfBlock||((ce=F._normalized)==null?void 0:ce.wagfBlock)||"",wagfBlockLabel:F.wagfBlockLabel||((Te=F._normalized)==null?void 0:Te.wagfBlockLabel)||"",wagfRegionLabel:F.wagfRegionLabel||((Ee=F._normalized)==null?void 0:Ee.wagfRegionLabel)||"",country:F.country,countryIso:F.countryIso,countryIsoLabel:F.countryIsoLabel,countryName:F.countryName,religion:F.religion,religionCode:F.religionCode,religionLabel:F.religionLabel,religionName:F.religionName,population:F.population,status:F.status,description:F.description||"",imageUrl:F.imageUrl||"",peoplePraying:Number(F.peoplePraying??((We=F._normalized)==null?void 0:We.peoplePraying)??0),engagementStatus:F.engagementStatus===!0||F.engagementStatus===1||!1,adoptionStatus:F.adoptionStatus===!0||F.adoptionStatus===1||!1,bible:F.bible||((st=F._normalized)==null?void 0:st.bible)||"Not Available",jesusFilm:F.jesusFilm||((et=F._normalized)==null?void 0:et.jesusFilm)||"Not Available",radio:F.radio||((V=F._normalized)==null?void 0:V.radio)||"Not Available",gospel:F.gospel||((re=F._normalized)==null?void 0:re.gospel)||"Not Available",audio:F.audio||((ve=F._normalized)==null?void 0:ve.audio)||"Not Available",stories:F.stories||((Ae=F._normalized)==null?void 0:Ae.stories)||"Not Available",lng:parseFloat(F.longitude||F.lng)||0},geometry:{type:"Point",coordinates:[parseFloat(F.longitude||F.lng),parseFloat(F.latitude||F.lat)]}}}).filter(F=>!isNaN(F.geometry.coordinates[0])&&!isNaN(F.geometry.coordinates[1])),O=.04,N=F=>`${F.geometry.coordinates[0]},${F.geometry.coordinates[1]}`,q=new Map;for(const F of E){const ue=N(F);q.has(ue)||q.set(ue,[]),q.get(ue).push(F)}for(const F of q.values()){if(F.length<2)continue;const[ue,oe]=F[0].geometry.coordinates,w=F.length;for(let v=0;v",["to-number",["get","peoplePraying"],0],0],"#ffffff","#1f2937"],"circle-opacity":1,"circle-stroke-opacity":1,"circle-opacity-transition":{duration:250}}}),ie.addLayer({id:"language-family-pins-hitbox",type:"circle",source:"language-families",paint:{"circle-radius":bl("touchTarget"),"circle-color":"rgba(0,0,0,0)","circle-stroke-width":0,"circle-opacity":0}}),i.value.languageFamilyPins=!0,r.attachLanguageFamilyEvents()}function u(Z,X="doxa-regions"){const ie=s();if(!ie)return;ie.getLayer("regions-fill")&&ie.removeLayer("regions-fill"),ie.getLayer("regions-border")&&ie.removeLayer("regions-border"),ie.getSource("regions")&&ie.removeSource("regions");const Ce={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},E="#cccccc",O=Z&&Z.isoToRegion?Z.isoToRegion:{},N=[],q={};for(const[oe,w]of Object.entries(O)){const v=Ce[String(w).toLowerCase()];v&&N.push(oe,v),q[w]||(q[w]=[]),q[w].push(oe)}l.value=q;const Q=N.length?["match",["get","iso_3166_1_alpha_3"],...N,E]:E,F=ie.getLayer("language-family-pins-shadow")?"language-family-pins-shadow":ie.getLayer("language-family-pins")?"language-family-pins":void 0,ue=(()=>{var oe,w,v;try{return!!((v=(w=(oe=ie.getContainer)==null?void 0:oe.call(ie))==null?void 0:w.classList)!=null&&v.contains("maplibregl-map"))}catch{return!1}})();ue?(ie.addSource("regions",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),fetch(`${ml(null)}/boundaries/world-adm0.geojson`).then(oe=>oe.json()).then(oe=>{for(const v of oe.features||[])v.properties&&v.properties.iso3&&(v.properties.iso_3166_1_alpha_3=v.properties.iso3);const w=ie.getSource("regions");w&&w.setData(oe)}).catch(oe=>console.warn("[map-layers] region boundaries failed to load",oe))):ie.addSource("regions",{type:"vector",url:"mapbox://mapbox.country-boundaries-v1"}),ie.addLayer({id:"regions-fill",type:"fill",source:"regions",...ue?{}:{"source-layer":"country_boundaries"},paint:{"fill-color":Q,"fill-opacity":X==="none"?.1:.7,"fill-antialias":!0,...Lo(ie,"fill"),"fill-opacity-transition":{duration:300}}},F),ie.addLayer({id:"regions-border",type:"line",source:"regions",...ue?{}:{"source-layer":"country_boundaries"},paint:{"line-color":Q,"line-width":1,"line-opacity":.9,...Lo(ie,"line")}},F),i.value.regions=!0,r.attachRegionEvents()}function h(Z,X){const ie=s();if(!ie||!Z||!(X!=null&&X.length))return;f();const Ce=X.filter(Q=>{var ue;return(Q.languageFamily||((ue=Q._normalized)==null?void 0:ue.languageFamily)||"Unknown")===Z});if(Ce.length<2)return;const E=n(Z),O=[],N=15,q=[...Ce].sort((Q,F)=>(Q.longitude||Q.lng)-(F.longitude||F.lng));for(let Q=0;Q=",["get","peoplePraying"],So],"#15803d",[">",["get","peoplePraying"],0],"#d97706","rgba(0,0,0,0)"]}const M=[0,5,2,6,4,7,5,9,6,12,7,14,8,18,10,25,12,32,14,40];function R(Z,X){const ie=["interpolate",["linear"],["zoom"]];for(let Ce=0;Ce",["get","peoplePraying"],0],ie=z();if(!C.every(E=>Z.getLayer(E))){for(const E of C)if(Z.getLayer(E))try{Z.removeLayer(E)}catch{}Z.addLayer({id:d,type:"circle",source:"language-families",filter:X,paint:{"circle-radius":R(M,1),"circle-color":ie,"circle-blur":.3,"circle-opacity":.45,"circle-stroke-width":0,...Lo(Z)}},"language-family-pins");for(const E of g)Z.addLayer({id:E,type:"circle",source:"language-families",filter:X,paint:{"circle-radius":R(M,1),"circle-radius-transition":le,"circle-color":"rgba(0,0,0,0)","circle-blur":0,"circle-opacity":1,"circle-stroke-width":2.5,"circle-stroke-color":ie,"circle-stroke-opacity":0,"circle-stroke-opacity-transition":le,...Lo(Z)}},"language-family-pins")}}function J(){const Z=s();if(Z)for(const X of C)Z.getLayer(X)&&Z.removeLayer(X)}function D(Z){const X=s();if(!X)return;const ie=[">",["get","peoplePraying"],0],Ce=Z?["all",ie,Z]:ie;for(const E of C)if(X.getLayer(E))try{X.setFilter(E,Ce)}catch{}}function he(){const Z=s();if(Z){if(j(),p&&(cancelAnimationFrame(p),p=null),m=!0,Z.getLayer("language-family-pins"))try{Z.setLayoutProperty("language-family-pins","circle-sort-key",["case",[">=",["get","peoplePraying"],So],1,[">",["get","peoplePraying"],0],1,3])}catch{}Le(Z),$e()}}function $e(){p&&(cancelAnimationFrame(p),p=null);const Z=++x;let X=performance.now(),ie=-1/0;function Ce(E){if(!m||Z!==x)return;const O=s();if(!O||!C.some(q=>O.getLayer(q))){p=null;return}if(E-ie"u")return;const X=typeof Z.getContainer=="function"?Z.getContainer():null;if(X)try{k=new IntersectionObserver(ie=>{for(const Ce of ie)G=Ce.isIntersecting},{threshold:0}),k.observe(X)}catch{k=null,G=!0}}function ke(){if(k){try{k.disconnect()}catch{}k=null}G=!0}function fe(){m=!1,p&&(cancelAnimationFrame(p),p=null),ke();try{J();const Z=s();Z&&Z.getLayer("language-family-pins")&&Z.setLayoutProperty("language-family-pins","circle-sort-key",void 0)}catch{}}return{layersAdded:i,regionIsoMap:l,addLanguageFamilyLayer:c,addRegionsLayer:u,addFamilyConnectionLines:h,removeFamilyConnectionLines:f,updateLayerSource:S,removeLayer:$,hasLayer:b,setPaintProperty:_,mapEvents:r,startPrayerGlow:he,stopPrayerGlow:fe,syncGlowFilter:D,cleanup:y}}const uo={style:"mapbox://styles/mapbox/standard",center:[20,10],zoom:1.8,minZoom:.5,maxZoom:22,pitch:20,bearing:0,projection:"mercator",renderWorldCopies:!0};function G1(e={}){const{getMap:t=()=>null,mapId:o="unknown",mapStore:n=null,regionsGeoData:a=null,defaultCenter:s=(uo==null?void 0:uo.center)||[20,10],defaultZoom:r=uo==null?void 0:uo.zoom}=e,i=()=>{try{return typeof window<"u"&&!!window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{return!1}};function l(k){const z=i(),M=(R={})=>{const j={};for(const J of["center","zoom","bearing","pitch","padding"])R[J]!==void 0&&(j[J]=R[J]);return k.jumpTo(j)};return{flyTo:R=>z?M(R):k.flyTo(R),easeTo:R=>z?M(R):k.easeTo(R),fitBounds:(R,j={})=>k.fitBounds(R,z?{...j,animate:!1,duration:0}:j)}}const c={speed:.5,essential:!0,curve:1.2};function u(k,z,M={x:150,y:0}){const R=t();if(!R)return k;try{const j=R.getCanvas(),J=j.width,D=j.height,he=R.project(k),$e=window.devicePixelRatio||1,Le=(M.x||0)*$e,ke=(M.y||0)*$e,fe={x:he.x-Le,y:he.y-ke},Z=R.unproject(fe);return[Z.lng,Z.lat]}catch{return k}}function h(k,z=[]){const M=t();if(!M)return;let R=null,j=5;const J=z.filter(he=>he.languageFamily===k);if(J.length>0){let he=1/0,$e=-1/0,Le=1/0,ke=-1/0;if(J.forEach(fe=>{fe.longitude&&fe.latitude&&(he=Math.min(he,fe.longitude),$e=Math.max($e,fe.longitude),Le=Math.min(Le,fe.latitude),ke=Math.max(ke,fe.latitude))}),he!==1/0){R=[(he+$e)/2,(Le+ke)/2];const fe=$e-he,Z=ke-Le,X=Math.max(fe,Z);X>50?j=2:X>20?j=3:X>10?j=4:X>5?j=5:j=6}}if(!R)return;const D=u(R);l(M).flyTo({center:D,zoom:j,...c})}function f(k){const z=t();if(!z)return;let M=null,R=4;const j=E1(k);if(j)M=j.center,R=j.zoom||4;else if(a!=null&&a.features){const D=a.features.find(he=>{var $e,Le;return(($e=he.properties)==null?void 0:$e.region)===k||((Le=he.properties)==null?void 0:Le.name)===k});D&&(M=S(D))}if(!M)return;const J=u(M);l(z).flyTo({center:J,zoom:R,...c})}function S(k){if(!k||!k.geometry)return null;const{type:z,coordinates:M}=k.geometry;let R=[];if(z==="Polygon"?R=M[0]||[]:z==="MultiPolygon"&&M.forEach(D=>{R=R.concat(D[0]||[])}),R.length===0)return null;let j=0,J=0;return R.forEach(D=>{j+=D[0],J+=D[1]}),[j/R.length,J/R.length]}function $(k,z={}){const M=t();if(!M)return;const R={center:k,...c,...z};l(M).flyTo(R)}function b(k,z,M={}){const R=t();if(!R||(k==null?void 0:k.longitude)==null||(k==null?void 0:k.latitude)==null)return;const j=z??Math.min(R.getZoom()+2,8);$([k.longitude,k.latitude],{...M,zoom:j})}function _(k,z={top:40,right:40,bottom:40,left:40},M={}){const R=t();if(!R||!k)return;const j=M.maxZoom??4,J=M.duration??900;l(R).fitBounds(k,{padding:z,maxZoom:j,duration:J,...c,...M})}function y(){const k=t();k&&l(k).flyTo({center:s,zoom:r,...c})}const p=80,m=800,x=5,d=5,P=110,g=1.2;function C(k){const z=k.filter(Number.isFinite).slice().sort((N,q)=>N-q),M=z.length;if(!M)return null;let R=-1,j=0;for(let N=0;NR&&(R=Q,j=N)}const J=(j+1)%M,D=new Array(M);for(let N=0;N0&&q((N+180)%360+360)%360-180,Z=fe(Le),X=24,ie=360/X,Ce=new Array(X).fill(0);for(const N of z){let q=Math.floor(((N+180)%360+360)%360/ie);q>=X&&(q=X-1),Ce[q]++}let E=0;for(let N=1;NCe[E]&&(E=N);return{center:fe(-180+(E+.5)*ie),minLng:Z,maxLng:Z+(ke-Le),span:ke-Le}}function A(k){try{const z=k.getContainer&&k.getContainer().clientWidth||0,M=z>0?Math.log2(z/512):g,R=typeof k.getMinZoom=="function"?k.getMinZoom():M;return Math.max(R,M)}catch{return g}}function U(k,z,M,R){l(k).easeTo({center:[z,(M+R)/2],zoom:A(k),duration:m,essential:!0})}function H(k,z,M){if(M>P)return!0;try{const R=typeof k.cameraForBounds=="function"?k.cameraForBounds(z,{padding:p,maxZoom:x}):null;return R==null?!0:typeof R.zoom=="number"&&R.zoom<=A(k)+.05}catch{return!1}}function Y(k,z){if(!Array.isArray(k))return k;switch(k[0]){case"get":return z==null?void 0:z[k[1]];case"literal":return k[1];case"has":return z!=null&&k[1]in z;case"!has":return z==null||!(k[1]in z);case"!":return!Y(k[1],z);case"coalesce":{for(let R=1;R2){const J=Number(Y(k[2],z));return Number.isFinite(J)?J:0}return NaN}case"to-string":{const R=Y(k[1],z);return R==null?"":String(R)}case"to-boolean":return!!Y(k[1],z);case"slice":{const R=Y(k[1],z),j=Y(k[2],z),J=k.length>3?Y(k[3],z):void 0;return typeof R!="string"?"":J!=null?R.slice(j,J):R.slice(j)}default:return k}}function K(k,z){if(k===!0)return!0;if(k===!1)return!1;if(!Array.isArray(k))return!!k;const M=k[0];if(M==="all"){for(let R=1;R"||M===">="||M==="<"||M==="<="){const R=typeof k[1]=="string"?z==null?void 0:z[k[1]]:Y(k[1],z),j=Y(k[2],z);switch(M){case"==":return R===j||R==null&&j==null;case"!=":return!(R===j||R==null&&j==null);case">":return R>j;case">=":return R>=j;case"<":return R{const F=(Q==null?void 0:Q.properties)||{};return F.region===N||F.name===N||F.id===N});if(q){const Q=[];let F=1/0,ue=-1/0;const oe=v=>{for(const B of v)Array.isArray(B[0])?oe(B):Number.isFinite(B[0])&&Number.isFinite(B[1])&&(Q.push(B[0]),B[1]ue&&(ue=B[1]))};(Ce=q.geometry)!=null&&Ce.coordinates&&oe(q.geometry.coordinates);const w=C(Q);if(w&&Number.isFinite(F)){const v=[[w.minLng,F],[w.maxLng,ue]];H(M,v,w.span)?U(M,w.center,F,ue):l(M).fitBounds(v,{padding:p,maxZoom:x,duration:m,essential:!0});return}}}const R=z.sourceId??"language-families";if(!M.getSource(R))return;const j=z.matchExpr??k.filter;if(!j)return;const J=le(M,R);if(!J.length)return;const D=[];let he=1/0,$e=-1/0,Le=0,ke=0,fe=0;const Z=new Set;for(const O of J){const N=O==null?void 0:O.properties;if(!K(j,N))continue;const q=N==null?void 0:N.uniqueId;if(q!=null){if(Z.has(q))continue;Z.add(q)}const Q=(E=O.geometry)==null?void 0:E.coordinates;if(!Array.isArray(Q)||Q.length<2)continue;const F=Q[0],ue=Q[1];!Number.isFinite(F)||!Number.isFinite(ue)||(Le===0&&(ke=F,fe=ue),D.push(F),ue$e&&($e=ue),Le++)}if(Le===0)return;if(Le===1){l(M).flyTo({center:[ke,fe],zoom:d,duration:m,essential:!0});return}const X=C(D)||{center:0,minLng:0,maxLng:0,span:0},ie=[[X.minLng,he],[X.maxLng,$e]];if(H(M,ie,X.span)){U(M,X.center,he,$e);return}try{l(M).fitBounds(ie,{padding:p,maxZoom:x,duration:m,essential:!0})}catch{}}return{getOffsetCenter:u,slowFlyToFamily:h,slowFlyToRegion:f,flyTo:$,flyToCoords:b,fitBounds:_,resetView:y,zoomToLegendRow:G,calculateRegionCenterFromPolygon:S}}const pr="#1a1a1a",qo="selected-pin-highlight";function j1(e=pr){const t=document.createElement("div");t.className="map-go-pin-wrapper";const o=`pinGrad-${Math.random().toString(36).slice(2,8)}`;return t.innerHTML=` + `}function h(g){const S=t();if(!S)return;const C=g||"language-family-pins";if(!S.getLayer(C))return;const p=v=>{try{const $=v.features[0],A=$.properties,j=$.geometry.coordinates.slice();for(;Math.abs(v.lngLat.lng-j[0])>180;)j[0]+=v.lngLat.lng>j[0]?360:-360;if(s&&s.legendMode!==void 0){s.selectPeopleGroup($),s.isMobile&&s.legendState==="collapsed"&&s.setLegendState("open"),s.isMobile||window.dispatchEvent(new CustomEvent("dxm:openDesktopLegend",{detail:{mapId:o}}));return}new(pr(S)).Popup({maxWidth:"320px",className:"people-group-popup"}).setLngLat(j).setHTML(c(A)).addTo(S)}catch($){console.error(` [${o}] Pin click handler error:`,$)}};S.on("click",C,p),l.value.push({event:"click",layer:C,handler:p})}function f(){const g=t();if(!g)return;const S="regions-fill";if(!g.getLayer(S))return;const C=p=>{const v=["language-family-pins","language-family-pins-hitbox","people-groups-pins"];for(const $ of v)if(g.getLayer($)){const A=g.queryRenderedFeatures(p.point,{layers:[$]});if(A&&A.length>0)return}if(p.features&&p.features.length>0){const $=p.features[0].properties;new(pr(g)).Popup().setLngLat(p.lngLat).setHTML(u($)).addTo(g)}};g.on("click",S,C),l.value.push({event:"click",layer:S,handler:C})}function P(){const g=t();if(!g)return;const S="clusters";if(!g.getLayer(S))return;const C=p=>{const v=g.queryRenderedFeatures(p.point,{layers:[S]});if(!v.length)return;const $=v[0].properties.cluster_id,A=v[0].source;g.getSource(A).getClusterExpansionZoom($,(j,K)=>{j||g.easeTo({center:v[0].geometry.coordinates,zoom:K})})};g.on("click",S,C),l.value.push({event:"click",layer:S,handler:C})}function w(g){const S=t();if(!S||!S.getLayer(g))return;const C=()=>{S.getCanvas().style.cursor="pointer"},p=()=>{S.getCanvas().style.cursor=""};S.on("mouseenter",g,C),S.on("mouseleave",g,p),l.value.push({event:"mouseenter",layer:g,handler:C}),l.value.push({event:"mouseleave",layer:g,handler:p})}function m(){h(),w("language-family-pins"),h("language-family-pins-hitbox"),w("language-family-pins-hitbox"),P(),w("clusters")}function y(){f(),w("regions-fill")}function b(){const g=t();g&&(g.getLayer("language-family-pins")&&m(),g.getLayer("regions-fill")&&y(),g.getLayer("people-groups-pins")&&(h(),w("people-groups-pins")))}function d(){const g=t();if(g){for(const{event:S,layer:C,handler:p}of l.value)try{g.off(S,C,p)}catch{}l.value=[]}}return{attachAllEventHandlers:b,attachLanguageFamilyEvents:m,attachRegionEvents:y,attachPinClickHandler:h,attachRegionClickHandler:f,attachClusterClickHandler:P,attachCursorHandlers:w,detachAllEventHandlers:d,generatePinPopupContent:c,generateRegionPopupContent:u,registeredHandlers:l}}const Xe={Chamacoco:"Zamucoan",Ninam:"Yanomaman",Yagua:"Yaguan",Muinane:"Witotoan",Finnish:"Uralic","Hill Mari":"Uralic",Mansi:"Uralic","Meadow Mari":"Uralic","North Saami":"Uralic",Carabayo:"Unclassified",Kujarge:"Unclassified",Shabo:"Unclassified",Ainu:"Turkic",Kazakh:"Turkic","Khorasani Turkish":"Turkic",Kyrgyz:"Turkic","Northern Uzbek":"Turkic","South Azerbaijani":"Turkic",Turkish:"Turkic",Tuvan:"Turkic",Uyghur:"Turkic",Amundava:"Tupian",Araweté:"Tupian","Asurini of Xingú":"Tupian","Avá-Canoeiro":"Tupian",Awetí:"Tupian",Kamayurá:"Tupian",Karo:"Tupian",Morerebi:"Tupian",Tenharim:"Tupian","Uru-Eu-Wau-Wau":"Tupian","Uru-Pa-In":"Tupian",Wayampi:"Tupian","Zo’é":"Tupian",Evenki:"Tungusic",Xibe:"Tungusic",Carapana:"Tucanoan",Cubeo:"Tucanoan",Desano:"Tucanoan",Macuna:"Tucanoan",Piratapuyo:"Tucanoan",Siona:"Tucanoan",Siriano:"Tucanoan",Tucano:"Tucanoan",Tuyuca:"Tucanoan",Waimaha:"Tucanoan",Tay:"Trans-New Guinea",Adi:"Sino-Tibetan",Akha:"Sino-Tibetan","Amdo Tibetan":"Sino-Tibetan",Axi:"Sino-Tibetan",Biyo:"Sino-Tibetan","Boro (India)":"Sino-Tibetan",Brokkat:"Sino-Tibetan",Bugun:"Sino-Tibetan",Byangsi:"Sino-Tibetan","Central Lalo":"Sino-Tibetan","Central Tibetan":"Sino-Tibetan",Chak:"Sino-Tibetan",Chalikha:"Sino-Tibetan",Chaudangsi:"Sino-Tibetan",Chocangacakha:"Sino-Tibetan",Darlong:"Sino-Tibetan",Dhimal:"Sino-Tibetan","Digaro-Mishmi":"Sino-Tibetan",Dzalakha:"Sino-Tibetan","Eastern Nisu":"Sino-Tibetan",Ersu:"Sino-Tibetan",Gahri:"Sino-Tibetan",Gongduk:"Sino-Tibetan",Gyalsumdo:"Sino-Tibetan",Hani:"Sino-Tibetan","Idu-Mishmi":"Sino-Tibetan",Kaike:"Sino-Tibetan",Kanashi:"Sino-Tibetan",Katso:"Sino-Tibetan",Khamba:"Sino-Tibetan",Koireng:"Sino-Tibetan",Kucong:"Sino-Tibetan",Kurtokha:"Sino-Tibetan",Ladakhi:"Sino-Tibetan",Lakha:"Sino-Tibetan","Lang’e":"Sino-Tibetan",Lhokpu:"Sino-Tibetan",Lolopo:"Sino-Tibetan",Lunanakha:"Sino-Tibetan","Mandarin Chinese":"Sino-Tibetan",Meitei:"Sino-Tibetan","Miju-Mishmi":"Sino-Tibetan",Mpi:"Sino-Tibetan",Na:"Sino-Tibetan",Namuyi:"Sino-Tibetan",Narua:"Sino-Tibetan",Naxi:"Sino-Tibetan","Northern Muji":"Sino-Tibetan",Nuosu:"Sino-Tibetan",Nupbikha:"Sino-Tibetan",Nyenkha:"Sino-Tibetan",Olekha:"Sino-Tibetan",Pahari:"Sino-Tibetan",Pattani:"Sino-Tibetan","Phana’":"Sino-Tibetan",Phula:"Sino-Tibetan",Phunoi:"Sino-Tibetan",Puma:"Sino-Tibetan",Puroik:"Sino-Tibetan",Raji:"Sino-Tibetan",Rawat:"Sino-Tibetan",Sani:"Sino-Tibetan",Sherdukpen:"Sino-Tibetan",Sherpa:"Sino-Tibetan",Shuhi:"Sino-Tibetan",Sila:"Sino-Tibetan",Singpho:"Sino-Tibetan",Sunwar:"Sino-Tibetan","Tawang Monpa":"Sino-Tibetan",Tseku:"Sino-Tibetan",Tshangla:"Sino-Tibetan",Usoi:"Sino-Tibetan","Western Minyag":"Sino-Tibetan","Wusa Nasu":"Sino-Tibetan","Xiang Chinese":"Sino-Tibetan",Yakkha:"Sino-Tibetan","Youle Jinuo":"Sino-Tibetan","Yue Chinese":"Sino-Tibetan",Zakhring:"Sino-Tibetan","Afghan Sign Language":"Sign Language","Albanian Sign Language":"Sign Language","Algerian Sign Language":"Sign Language","American Sign Language":"Sign Language","Armenian Sign Language":"Sign Language","British Sign Language":"Sign Language","Bulgarian Sign Language":"Sign Language","Cambodian Sign Language":"Sign language","Cuban Sign Language":"Sign Language","Egyptian Sign Language":"Sign Language","Greek Sign Language":"Sign Language","Guinean Sign Language":"Sign Language","Hong Kong Sign Language":"Sign Language","Icelandic Sign Language":"Sign Language","Iranian Sign Language":"Sign Language","Israeli Sign Language":"Sign Language","Jamaican Sign Language":"Sign Language","Jordanian Sign Language":"Sign Language","Laos Sign Language":"Sign Language","Libyan Sign Language":"Sign Language","Maltese Sign Language":"Sign Language","Mauritian Sign Language":"Sign Language","Moroccan Sign Language":"Sign Language","Mozambican Sign Language":"Sign Language","Myanmar Sign Language":"Sign language","Natural Sign Language":"Sign Language","Pakistan Sign Language":"Sign Language","Papua New Guinean Sign Language":"Sign language","Russian Sign Language":"Sign Language","Saudi Arabian Sign Language":"Sign Language","Sign Language of the Netherlands":"Sign Language","Solomon Islands Sign Language":"Sign Language","Sri Lankan Sign Language":"Sign Language","Swedish Sign Language":"Sign Language","Turkish Sign Language":"Sign Language","Northern Conchucos Ancash Quechua":"Quechuan","Northern Pastaza Quichua":"Quechuan",Hupdë:"Puinavean",Amahuaca:"Panoan",Korubo:"Panoan",Sharanahua:"Panoan","Shipibo-Conibo":"Panoan",Yaminahua:"Panoan",Yawanawa:"Panoan",Afitti:"Nilo-Saharan",Assangori:"Nilo-Saharan","Beli (South Sudan)":"Nilo-Saharan",Berta:"Nilo-Saharan",Burun:"Nilo-Saharan","Dar Daju Daju":"Nilo-Saharan","Dar Fur Daju":"Nilo-Saharan","Dar Sila Daju":"Nilo-Saharan",Dazaga:"Nilo-Saharan","Dendi (Benin)":"Nilo-Saharan",Dilling:"Nilo-Saharan",Fur:"Nilo-Saharan",Gbaya:"Nilo-Saharan",Ghulfan:"Nilo-Saharan",Gwama:"Nilo-Saharan","Humburi Senni Songhay":"Nilo-Saharan",Jopadhola:"Nilo-Saharan",Kadaru:"Nilo-Saharan",Kanga:"Nilo-Saharan",Karanga:"Nilo-Saharan",Karko:"Nilo-Saharan",Kebu:"Nilo-Saharan",Keiga:"Nilo-Saharan",Keliko:"Nilo-Saharan",Kendeje:"Nilo-Saharan",Kibet:"Nilo-Saharan","Komo (Sudan)":"Nilo-Saharan",Korandje:"Nilo-Saharan",Kulfa:"Nilo-Saharan",Kwegu:"Nilo-Saharan",Laarim:"Nilo-Saharan",Logorik:"Nilo-Saharan",Majang:"Nilo-Saharan","Manga Kanuri":"Nilo-Saharan",Mango:"Nilo-Saharan",Mararit:"Nilo-Saharan",Marfa:"Nilo-Saharan",Midob:"Nilo-Saharan","Mo’da":"Nilo-Saharan",Morom:"Nilo-Saharan",Moru:"Nilo-Saharan",Naba:"Nilo-Saharan",Nara:"Nilo-Saharan",Njalgulgule:"Nilo-Saharan",Nuer:"Nilo-Saharan","Nyamusa-Molo":"Nilo-Saharan",Nyangatom:"Nilo-Saharan","Olu’bo":"Nilo-Saharan",Opo:"Nilo-Saharan",Päri:"Nilo-Saharan","Sara Kaba Naa":"Nilo-Saharan",Surbakhal:"Nilo-Saharan",Tadaksahak:"Nilo-Saharan","Tama (Chad)":"Nilo-Saharan",Temein:"Nilo-Saharan",Thuri:"Nilo-Saharan","Tirmaga-Chai Suri":"Nilo-Saharan",Toposa:"Nilo-Saharan",Tumtum:"Nilo-Saharan","Wali (Sudan)":"Nilo-Saharan","Yerwa Kanuri":"Nilo-Saharan",Yulu:"Nilo-Saharan",Zaghawa:"Nilo-Saharan","Adamawa Fulfulde":"Niger-Congo",Akaselem:"Niger-Congo","Amba (Uganda)":"Niger-Congo",Anii:"Niger-Congo",Baangi:"Niger-Congo",Badyara:"Niger-Congo","Bago-Kusuntu":"Niger-Congo",Bai:"Niger-Congo","Bainouk-Gunyaamolo":"Niger-Congo",Bamanankan:"Niger-Congo","Banda-Mbrès":"Niger-Congo",Bandial:"Niger-Congo",Bankagooma:"Niger-Congo","Belanda Viri":"Niger-Congo",Bemba:"Niger-Congo",Bolgo:"Niger-Congo","Bon Gula":"Niger-Congo",Bua:"Niger-Congo",Chichewa:"Niger-Congo","Chung (Cameroon)":"Niger-Congo","Ci Gbe":"Niger-Congo",Degema:"Niger-Congo",Dek:"Niger-Congo",Dhimba:"Niger-Congo",Dogoso:"Niger-Congo","East Limba":"Niger-Congo",Engenni:"Niger-Congo",Epie:"Niger-Congo",Éwé:"Niger-Congo",Fania:"Niger-Congo",Foodo:"Niger-Congo",Fwe:"Niger-Congo",Gciriku:"Niger-Congo",Gwa:"Niger-Congo",Herero:"Niger-Congo",Ibuoro:"Niger-Congo","Jenaama Bozo":"Niger-Congo",Jita:"Niger-Congo",Jula:"Niger-Congo",Kabiyè:"Niger-Congo",Kadung:"Niger-Congo",Kakabe:"Niger-Congo",Kalamsé:"Niger-Congo","Kami (Tanzania)":"Niger-Congo","Kango (Bas-Uélé District)":"Niger-Congo",Kasem:"Niger-Congo","Kelengaxo Bozo":"Niger-Congo",Khe:"Niger-Congo",Khisa:"Niger-Congo",Kim:"Niger-Congo",Kinyarwanda:"Niger-Congo",Kipfokomu:"Niger-Congo",Kitharaka:"Niger-Congo",Kiyombe:"Niger-Congo",Ko:"Niger-Congo",Koalib:"Niger-Congo",Koke:"Niger-Congo",Konongo:"Niger-Congo","Koro Nulu":"Niger-Congo","Koro Zuba":"Niger-Congo",Kuhane:"Niger-Congo",Kunda:"Niger-Congo",Kuranko:"Niger-Congo",Kuria:"Niger-Congo",Kwangali:"Niger-Congo",Lame:"Niger-Congo",Laru:"Niger-Congo",Lopa:"Niger-Congo","Makhuwa-Meetto":"Niger-Congo","Makhuwa-Shirima":"Niger-Congo","Malawi Nyiha":"Niger-Congo",Mandinka:"Niger-Congo",Mankanya:"Niger-Congo",Mansoanka:"Niger-Congo",Mbukushu:"Niger-Congo","Mende (Sierra Leone)":"Niger-Congo",Miyobe:"Niger-Congo",Mushungulu:"Niger-Congo","Mwali Comorian":"Niger-Congo","Mwera (Chimwera)":"Niger-Congo",Ndemli:"Niger-Congo",Ndengereko:"Niger-Congo",Ndumu:"Niger-Congo",Ndunga:"Niger-Congo","Ndzwani Comorian":"Niger-Congo",Ngile:"Niger-Congo","Northwest Gbaya":"Niger-Congo",Notre:"Niger-Congo",Nyamwanga:"Niger-Congo",Nyankore:"Niger-Congo",Nyengo:"Niger-Congo",Okpamheri:"Niger-Congo",Osatu:"Niger-Congo","Pana (Burkina Faso)":"Niger-Congo",Pulaar:"Niger-Congo",Pular:"Niger-Congo",Rufiji:"Niger-Congo","Sankaran Maninka":"Niger-Congo",Sapo:"Niger-Congo","Senara Sénoufo":"Niger-Congo",Shanga:"Niger-Congo",Sininkere:"Niger-Congo","Southern Ngbandi":"Niger-Congo",Swahili:"Niger-Congo","Syenara Sénoufo":"Niger-Congo",Tagbu:"Niger-Congo",Tagoi:"Niger-Congo",Tegali:"Niger-Congo",Tem:"Niger-Congo","Tiéyaxo Bozo":"Niger-Congo",Tiyaa:"Niger-Congo",Tocho:"Niger-Congo","Tonga (Zambia)":"Niger-Congo",Totela:"Niger-Congo","Toura (Côte d’Ivoire)":"Niger-Congo",Tswa:"Niger-Congo",Tumbuka:"Niger-Congo",Ukaan:"Niger-Congo",Uneme:"Niger-Congo",Vai:"Niger-Congo",Vute:"Niger-Congo",Waama:"Niger-Congo",Warnang:"Niger-Congo",Wolof:"Niger-Congo",Yao:"Niger-Congo",Yauma:"Niger-Congo",Yom:"Niger-Congo","Zan Gula":"Niger-Congo",Zande:"Niger-Congo",Zigula:"Niger-Congo",Mamaindê:"Nambikwara",Aghul:"Nakh-Daghestanian",Akhvakh:"Nakh-Daghestanian",Andi:"Nakh-Daghestanian",Avar:"Nakh-Daghestanian",Bagvalal:"Nakh-Daghestanian",Botlikh:"Nakh-Daghestanian",Chamalal:"Nakh-Daghestanian",Chechen:"Nakh-Daghestanian",Dargwa:"Nakh-Daghestanian",Kaitag:"Nakh-Daghestanian",Karata:"Nakh-Daghestanian",Khvarshi:"Nakh-Daghestanian",Tindi:"Nakh-Daghestanian",Pirahã:"Muran",Bonan:"Mongolic","China Buriat":"Mongolic",Daur:"Mongolic","Kalmyk-Oirat":"Mongolic","Peripheral Mongolian":"Mongolic","Russia Buriat":"Mongolic",Tagdal:"Mixed language",Wutunhua:"Mixed language","Ashéninka Perené":"Maipurean",Baniwa:"Maipurean",Cabiyarí:"Maipurean",Curripaco:"Maipurean","Enawené-Nawé":"Maipurean",Kanamarí:"Maipurean",Mehináku:"Maipurean","Pichis Ashéninka":"Maipurean",Waurá:"Maipurean",Bangime:"Language isolate",Burushaski:"Language isolate","Ai-Cham":"Kra-Dai",Aiton:"Kra-Dai","Dai Zhuang":"Kra-Dai",Duoluo:"Kra-Dai","Green Gelao":"Kra-Dai","Guibian Zhuang":"Kra-Dai",Hlai:"Kra-Dai",Jiamao:"Kra-Dai",Kang:"Kra-Dai",Khün:"Kra-Dai",Kuan:"Kra-Dai",Lachi:"Kra-Dai","Laha (Viet Nam)":"Kra-Dai",Lao:"Kra-Dai",Lü:"Kra-Dai","Mak (China)":"Kra-Dai","Northeastern Thai":"Kra-Dai","Northern Dong":"Kra-Dai","Northern Thai":"Kra-Dai",Nyaw:"Kra-Dai",Phake:"Kra-Dai","Phu Thai":"Kra-Dai",Qabiao:"Kra-Dai",Qau:"Kra-Dai","Qiubei Zhuang":"Kra-Dai",Shan:"Kra-Dai","Southern Dong":"Kra-Dai",Sui:"Kra-Dai","T’en":"Kra-Dai","Tai Daeng":"Kra-Dai","Tai Dam":"Kra-Dai","Tai Hongjin":"Kra-Dai","Tai Nüa":"Kra-Dai","Tai Ya":"Kra-Dai","Tai Yo":"Kra-Dai","Ts’ün-Lao":"Kra-Dai","Yang Zhuang":"Kra-Dai",Yerong:"Kra-Dai",Yong:"Kra-Dai",Yoy:"Kra-Dai",Khoekhoe:"Khoe-Kwadi",Karajá:"Karajá","Pará Gavião":"Jean",Suyá:"Jean",Japanese:"Japonic","Oki-No-Erabu":"Japonic","Toku-No-Shima":"Japonic",Yaeyama:"Japonic",Yoron:"Japonic","Adivasi Oriya":"Indo-European",Afrikaans:"Indo-European","Alviri-Vidari":"Indo-European",Angika:"Indo-European",Assamese:"Indo-European",Bagheli:"Indo-European",Bagri:"Indo-European",Bashkardi:"Indo-European",Bateri:"Indo-European",Bengali:"Indo-European",Bhojpuri:"Indo-European",Bhunjia:"Indo-European",Bilaspuri:"Indo-European",Bosnian:"Indo-European","Braj Bhasha":"Indo-European",Brokskat:"Indo-European",Bundeli:"Indo-European",Catalan:"Indo-European",Chambeali:"Indo-European",Chhattisgarhi:"Indo-European",Dameli:"Indo-European",Dari:"Indo-European",Dhundari:"Indo-European",Dogri:"Indo-European",Domari:"Indo-European",Dutch:"Indo-European","Eastern Balochi":"Indo-European","Eastern Panjabi":"Indo-European","Eastern Yiddish":"Indo-European",English:"Indo-European",French:"Indo-European",Gaddi:"Indo-European",Garhwali:"Indo-European",Gawri:"Indo-European",Gowro:"Indo-European",Gujarati:"Indo-European",Gujari:"Indo-European",Halbi:"Indo-European",Haroti:"Indo-European",Haryanvi:"Indo-European",Hindi:"Indo-European","Indus Kohistani":"Indo-European","Iranian Persian":"Indo-European",Ishkashimi:"Indo-European",Kacchi:"Indo-European",Kalkoti:"Indo-European",Kanauji:"Indo-European",Kangri:"Indo-European",Karingani:"Indo-European",Kashmiri:"Indo-European",Kati:"Indo-European",Khunsari:"Indo-European",Konkani:"Indo-European",Kudmali:"Indo-European",Kumaoni:"Indo-European",Kumzari:"Indo-European",Laki:"Indo-European",Lasi:"Indo-European",Luwati:"Indo-European",Magahi:"Indo-European",Maithili:"Indo-European",Maldivian:"Indo-European",Malvi:"Indo-European",Marathi:"Indo-European","Marwari (India)":"Indo-European",Mewari:"Indo-European",Munji:"Indo-European",Nepali:"Indo-European",Nimadi:"Indo-European","Northern Kurdish":"Indo-European",Odia:"Indo-European","Pahari-Potwari":"Indo-European",Palula:"Indo-European",Panchpargania:"Indo-European",Pangwali:"Indo-European",Parachi:"Indo-European",Portuguese:"Indo-European",Russian:"Indo-European",Sadri:"Indo-European",Sanglechi:"Indo-European",Sarikoli:"Indo-European",Savi:"Indo-European",Semnani:"Indo-European",Serbian:"Indo-European",Shabak:"Indo-European",Shahrudi:"Indo-European",Shekhawati:"Indo-European",Shina:"Indo-European",Shughni:"Indo-European",Shumashti:"Indo-European",Sindhi:"Indo-European",Sivandi:"Indo-European",Soi:"Indo-European","Southern Balochi":"Indo-European",Spanish:"Indo-European",Tajik:"Indo-European",Talysh:"Indo-European",Urdu:"Indo-European",Ushojo:"Indo-European",Vaghri:"Indo-European","Vlax Romani":"Indo-European",Wagdi:"Indo-European",Wakhi:"Indo-European",Waneci:"Indo-European","Western Balochi":"Indo-European",Yadgha:"Indo-European","Bu-Nao Bunu":"Hmong-Mien","Central Mashan Miao":"Hmong-Mien","Chuanqiandian Cluster Miao":"Hmong-Mien","Eastern Xiangxi Miao":"Hmong-Mien","Iu Mien":"Hmong-Mien","Luopohe Miao":"Hmong-Mien","Northern Qiandong Miao":"Hmong-Mien","Pa-Hng":"Hmong-Mien","Southwestern Huishui Miao":"Hmong-Mien","Wunai Bunu":"Hmong-Mien","Younuo Bunu":"Hmong-Mien",Amarakaeri:"Harákmbut",Huachipaeri:"Harákmbut",Cuiba:"Guajiboan",Macaguán:"Guajiboan",Tlicho:"Eyak-Athabaskan",Kannada:"Dravidian",Kodava:"Dravidian","Korra Koraga":"Dravidian","Kota (India)":"Dravidian",Kudiya:"Dravidian",Malapandaram:"Dravidian",Malayalam:"Dravidian",Muthuvan:"Dravidian",Ravula:"Dravidian",Sholaga:"Dravidian",Tamil:"Dravidian",Telugu:"Dravidian",Tulu:"Dravidian",Vishavan:"Dravidian","Andaman Hindi Creole":"Creole","Cocos Islands Malay":"Creole","Juba Arabic":"Creole",Nubi:"Creole",Barí:"Chibchan","Barro Negro Tunebo":"Chibchan","Western Tunebo":"Chibchan",Ikpeng:"Cariban","Kuikúro-Kalapálo":"Cariban",Pemon:"Cariban",Trió:"Cariban","Waimiri-Atroarí":"Cariban",Waiwai:"Cariban",Yukpa:"Cariban",Borôro:"Bororoan",Chachi:"Barbacoan","Abai Sungai":"Austronesian",Ambelau:"Austronesian",Asilulu:"Austronesian",Balaesang:"Austronesian","Batak Alas-Kluet":"Austronesian","Batak Dairi":"Austronesian","Batak Karo":"Austronesian",Bonerate:"Austronesian",Bonggi:"Austronesian",Brunei:"Austronesian","Brunei Bisaya":"Austronesian",Buol:"Austronesian","Central Malay":"Austronesian","Central Sama":"Austronesian","Coastal Konjo":"Austronesian",Dampelas:"Austronesian","Dibabawon Manobo":"Austronesian",Dondo:"Austronesian",Gane:"Austronesian","Geser-Gorom":"Austronesian","Highland Konjo":"Austronesian",Hitu:"Austronesian",Iban:"Austronesian",Indonesian:"Austronesian","Kadazan Dusun":"Austronesian",Kiput:"Austronesian",Komodo:"Austronesian",Kompane:"Austronesian",Lahanan:"Austronesian","Lampung Nyo":"Austronesian","Larike-Wakasihu":"Austronesian",Lola:"Austronesian",Luhu:"Austronesian",Malay:"Austronesian",Mariri:"Austronesian",Moronene:"Austronesian",Rukai:"Austronesian","Sabah Bisaya":"Austronesian","Seit-Kaitetu":"Austronesian",Sula:"Austronesian","Tae’":"Austronesian",Tajio:"Austronesian",Tomini:"Austronesian",Tutong:"Austronesian",Ujir:"Austronesian",Aheu:"Austro-Asiatic",Alak:"Austro-Asiatic",Bit:"Austro-Asiatic","Bo (Laos)":"Austro-Asiatic",Bondo:"Austro-Asiatic",Brao:"Austro-Asiatic",Bugan:"Austro-Asiatic",Chong:"Austro-Asiatic",Chut:"Austro-Asiatic",Danau:"Austro-Asiatic",Halang:"Austro-Asiatic","Halang Doan":"Austro-Asiatic",Hu:"Austro-Asiatic",Hung:"Austro-Asiatic",Ir:"Austro-Asiatic",Kensiu:"Austro-Asiatic",Khmu:"Austro-Asiatic",Khua:"Austro-Asiatic",Khuen:"Austro-Asiatic",Koda:"Austro-Asiatic","Kon Keu":"Austro-Asiatic",Kriang:"Austro-Asiatic",Kuay:"Austro-Asiatic",Laven:"Austro-Asiatic",Maleng:"Austro-Asiatic","Man Met":"Austro-Asiatic",Mang:"Austro-Asiatic",Minriq:"Austro-Asiatic",Mlabri:"Austro-Asiatic",Nguôn:"Austro-Asiatic",Nyaheun:"Austro-Asiatic",Nyahkur:"Austro-Asiatic","O’du":"Austro-Asiatic",Ong:"Austro-Asiatic",Oy:"Austro-Asiatic",Pacoh:"Austro-Asiatic","Phong-Kniang":"Austro-Asiatic",Prai:"Austro-Asiatic",Puoc:"Austro-Asiatic",Rengao:"Austro-Asiatic",Rmeet:"Austro-Asiatic","Rumai Palaung":"Austro-Asiatic",Sapuan:"Austro-Asiatic","Shwe Palaung":"Austro-Asiatic","So (Laos)":"Austro-Asiatic",Sou:"Austro-Asiatic","Tai Loi":"Austro-Asiatic",Talieng:"Austro-Asiatic",Tareng:"Austro-Asiatic",Tho:"Austro-Asiatic",U:"Austro-Asiatic","Upper Ta’oih":"Austro-Asiatic",Vietnamese:"Austro-Asiatic","Western Katu":"Austro-Asiatic",Suruahá:"Arauan",Jarawa:"Andamanese",Öñge:"Andamanese",Sentinel:"Andamanese",Afar:"Afro-Asiatic","Alaba-K’abeena":"Afro-Asiatic",Alagwa:"Afro-Asiatic",Ale:"Afro-Asiatic","Algerian Arabic":"Afro-Asiatic",Amharic:"Afro-Asiatic",Arbore:"Afro-Asiatic","Baharna Arabic":"Afro-Asiatic",Barein:"Afro-Asiatic",Bedawiyet:"Afro-Asiatic",Bidiyo:"Afro-Asiatic",Bilen:"Afro-Asiatic",Birgit:"Afro-Asiatic",Boor:"Afro-Asiatic","Borana-Arsi-Guji Oromo":"Afro-Asiatic",Buduma:"Afro-Asiatic","Central Atlas Tamazight":"Afro-Asiatic","Chadian Arabic":"Afro-Asiatic",Chenoua:"Afro-Asiatic",Ciwogai:"Afro-Asiatic",Daasanach:"Afro-Asiatic",Dabarre:"Afro-Asiatic",Dangaléat:"Afro-Asiatic",Deno:"Afro-Asiatic",Diri:"Afro-Asiatic",Duwai:"Afro-Asiatic","Eastern Egyptian Bedawi Arabic":"Afro-Asiatic","Eastern Oromo":"Afro-Asiatic",Garre:"Afro-Asiatic",Geruma:"Afro-Asiatic",Giiwo:"Afro-Asiatic",Gorowa:"Afro-Asiatic","Gulf Arabic":"Afro-Asiatic","Hadrami Arabic":"Afro-Asiatic",Harsusi:"Afro-Asiatic",Hassaniyya:"Afro-Asiatic",Hausa:"Afro-Asiatic",Hebrew:"Afro-Asiatic","Hijazi Arabic":"Afro-Asiatic",Hobyót:"Afro-Asiatic",Hozo:"Afro-Asiatic",Jiiddu:"Afro-Asiatic",Jimi:"Afro-Asiatic",Jina:"Afro-Asiatic","Jonkor Bourmataguil":"Afro-Asiatic","Judeo-Iraqi Arabic":"Afro-Asiatic","Judeo-Moroccan Arabic":"Afro-Asiatic",Kabalai:"Afro-Asiatic",Kajakse:"Afro-Asiatic",Kariya:"Afro-Asiatic","Karo (Ethiopia)":"Afro-Asiatic",Kutto:"Afro-Asiatic","Levantine Arabic":"Afro-Asiatic",Libido:"Afro-Asiatic","Libyan Arabic":"Afro-Asiatic","Lishana Deni":"Afro-Asiatic",Maaka:"Afro-Asiatic",Maay:"Afro-Asiatic",Majera:"Afro-Asiatic",Male:"Afro-Asiatic",Maslam:"Afro-Asiatic",Masmaje:"Afro-Asiatic",Mburku:"Afro-Asiatic",Mehri:"Afro-Asiatic","Mesopotamian Arabic":"Afro-Asiatic",Migaama:"Afro-Asiatic",Mogum:"Afro-Asiatic","Moroccan Arabic":"Afro-Asiatic",Mositacha:"Afro-Asiatic",Mubi:"Afro-Asiatic",Mukulu:"Afro-Asiatic",Nafusi:"Afro-Asiatic","Najdi Arabic":"Afro-Asiatic",Nyam:"Afro-Asiatic","Omani Arabic":"Afro-Asiatic","Pa’a":"Afro-Asiatic",Saba:"Afro-Asiatic",Saho:"Afro-Asiatic","Sanaani Arabic":"Afro-Asiatic",Seze:"Afro-Asiatic",Shehri:"Afro-Asiatic",Shekkacho:"Afro-Asiatic",Sheko:"Afro-Asiatic","Shihhi Arabic":"Afro-Asiatic",Siwi:"Afro-Asiatic",Sokoro:"Afro-Asiatic",Soqotri:"Afro-Asiatic","South Levantine Arabic":"Afro-Asiatic","Standard Arabic":"Afro-Asiatic","Sudanese Arabic":"Afro-Asiatic","Ta’izzi-Adeni Arabic":"Afro-Asiatic","Tahaggart Tamahaq":"Afro-Asiatic",Taznatit:"Afro-Asiatic",Tigré:"Afro-Asiatic",Toram:"Afro-Asiatic",Tsamai:"Afro-Asiatic",Tumzabt:"Afro-Asiatic",Tunni:"Afro-Asiatic",Waata:"Afro-Asiatic","West Central Oromo":"Afro-Asiatic",Xamtanga:"Afro-Asiatic",Zumbun:"Afro-Asiatic"},_l=[">",["to-number",["get","peoplePraying"],0],0],$l={0:.25,8:.4,14:.5},na={0:.1,8:.18,14:.22},aa={0:1.2,8:1.6,14:2},mg=["interpolate",["linear"],["zoom"],0,["case",_l,$l[0],na[0]],8,["case",_l,$l[8],na[8]],14,["case",_l,$l[14],na[14]]],Y1=["interpolate",["linear"],["zoom"],0,aa[0],8,aa[8],14,aa[14]],bg=["==",["to-number",["get","peoplePraying"],0],0],Z1={prayer:[bg],prayerProgress:[bg],engagement:[["all",["!=",["get","engagementStatus"],!0],["!=",["get","engagementStatus"],1]]],adoption:[["all",["!=",["get","adoptionStatus"],!0],["!=",["get","adoptionStatus"],1]]]};function X1(e){const t=Z1[e]||[];if(!t.length)return Y1;const o=t.length===1?t[0]:["any",...t];return["interpolate",["linear"],["zoom"],0,["case",o,na[0],aa[0]],8,["case",o,na[8],aa[8]],14,["case",o,na[14],aa[14]]]}const J1=[[/ sign language$/i,"Sign Language"]];function Q1(e){if(!e||typeof e!="string")return null;const t=e.trim(),o=t.split(",").map(a=>a.trim()).filter(Boolean);if(o.length>=2){const a=[...o].reverse().join(" ");if(Xe[a])return Xe[a];if(o.length>=3){const s=[o[1],o[0]].join(" ");if(Xe[s])return Xe[s]}}if(Xe[t])return Xe[t];const n=t.replace(/\s*\(.*?\)\s*$/,"").trim();if(n!==t&&Xe[n])return Xe[n];for(const[a,s]of J1)if(a.test(t))return s;return null}function ew(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,s=()=>{const X=t();return X?We(X):null},r=hg({getMap:s,mapId:o,getLanguageFamilyColor:n,getNormalizedPeopleGroups:a}),i=be({languageFamilyPins:!1,regions:!1,peopleGroups:!1,familyConnections:!1}),l=be({});function c(X,pe="languageFamily"){const q=s();if(!q||!(X!=null&&X.length))return;const Pe=h1(pe),R=X.map(I=>{var oe,le,_,k,U,Z,fe,he,Y,ie,Ee,Ne,Ke,ut,tt,V,re,ve,Le;return{type:"Feature",properties:{uniqueId:I.id||I.uniqueId,slug:I.slug||((oe=I._normalized)==null?void 0:oe.slug)||"",rop3:I.rop3||I.peopleGroupId,peopleId3:I.peopleId3||"",name:I.name,language:I.language,languageFamily:I.languageFamily||((le=I._normalized)==null?void 0:le.languageFamily)||Q1(I.language)||"Unknown",affinityBlock:I.affinityBlock||I.affbloc||I.Affbloc||((_=I._normalized)==null?void 0:_.affinityBlock)||"Unknown",affinityBlockLabel:I.affinityBlockLabel||((k=I._normalized)==null?void 0:k.affinityBlockLabel)||"",cluster:I.cluster||((U=I._normalized)==null?void 0:U.cluster)||"",clusterLabel:I.clusterLabel||((Z=I._normalized)==null?void 0:Z.clusterLabel)||"",peopleGroup:I.peopleGroup||((fe=I._normalized)==null?void 0:fe.peopleGroup)||"",peopleGroupLabel:I.peopleGroupLabel||((he=I._normalized)==null?void 0:he.peopleGroupLabel)||"",doxaRegion:I.doxaRegion||((Y=I._normalized)==null?void 0:Y.doxaRegion)||"Unknown",wagfBlock:I.wagfBlock||((ie=I._normalized)==null?void 0:ie.wagfBlock)||"",wagfBlockLabel:I.wagfBlockLabel||((Ee=I._normalized)==null?void 0:Ee.wagfBlockLabel)||"",wagfRegionLabel:I.wagfRegionLabel||((Ne=I._normalized)==null?void 0:Ne.wagfRegionLabel)||"",country:I.country,countryIso:I.countryIso,countryIsoLabel:I.countryIsoLabel,countryName:I.countryName,religion:I.religion,religionCode:I.religionCode,religionLabel:I.religionLabel,religionName:I.religionName,population:I.population,status:I.status,description:I.description||"",imageUrl:I.imageUrl||"",peoplePraying:Number(I.peoplePraying??((Ke=I._normalized)==null?void 0:Ke.peoplePraying)??0),engagementStatus:I.engagementStatus===!0||I.engagementStatus===1||!1,adoptionStatus:I.adoptionStatus===!0||I.adoptionStatus===1||!1,bible:I.bible||((ut=I._normalized)==null?void 0:ut.bible)||"Not Available",jesusFilm:I.jesusFilm||((tt=I._normalized)==null?void 0:tt.jesusFilm)||"Not Available",radio:I.radio||((V=I._normalized)==null?void 0:V.radio)||"Not Available",gospel:I.gospel||((re=I._normalized)==null?void 0:re.gospel)||"Not Available",audio:I.audio||((ve=I._normalized)==null?void 0:ve.audio)||"Not Available",stories:I.stories||((Le=I._normalized)==null?void 0:Le.stories)||"Not Available",lng:parseFloat(I.longitude||I.lng)||0},geometry:{type:"Point",coordinates:[parseFloat(I.longitude||I.lng),parseFloat(I.latitude||I.lat)]}}}).filter(I=>!isNaN(I.geometry.coordinates[0])&&!isNaN(I.geometry.coordinates[1])),B=.04,T=I=>`${I.geometry.coordinates[0]},${I.geometry.coordinates[1]}`,J=new Map;for(const I of R){const oe=T(I);J.has(oe)||J.set(oe,[]),J.get(oe).push(I)}for(const I of J.values()){if(I.length<2)continue;const[oe,le]=I[0].geometry.coordinates,_=I.length;for(let k=0;k<_;k++){const U=2*Math.PI*k/_;I[k].geometry.coordinates=[oe+B*Math.cos(U),le+B*Math.sin(U)]}}const ne={type:"FeatureCollection",features:R};q.addSource("language-families",{type:"geojson",data:ne,promoteId:"uniqueId"}),q.addLayer({id:"language-family-pins-shadow",type:"circle",source:"language-families",paint:{"circle-radius":yl("standard"),"circle-color":"rgba(0,0,0,0.12)","circle-blur":.8,"circle-translate":[0,1],"circle-stroke-width":0,"circle-opacity":1}}),q.addLayer({id:"language-family-pins",type:"circle",source:"language-families",paint:{"circle-radius":yl("standard"),"circle-color":Pe,...Po(q),"circle-stroke-width":mg,"circle-stroke-color":["case",[">",["to-number",["get","peoplePraying"],0],0],"#ffffff","#1f2937"],"circle-opacity":1,"circle-stroke-opacity":1,"circle-opacity-transition":{duration:250}}}),q.addLayer({id:"language-family-pins-hitbox",type:"circle",source:"language-families",paint:{"circle-radius":yl("touchTarget"),"circle-color":"rgba(0,0,0,0)","circle-stroke-width":0,"circle-opacity":0}}),i.value.languageFamilyPins=!0,r.attachLanguageFamilyEvents()}function u(X,pe="doxa-regions"){const q=s();if(!q)return;q.getLayer("regions-fill")&&q.removeLayer("regions-fill"),q.getLayer("regions-border")&&q.removeLayer("regions-border"),q.getSource("regions")&&q.removeSource("regions");const Pe={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},R="#cccccc",B=X&&X.isoToRegion?X.isoToRegion:{},T=[],J={};for(const[le,_]of Object.entries(B)){const k=Pe[String(_).toLowerCase()];k&&T.push(le,k),J[_]||(J[_]=[]),J[_].push(le)}l.value=J;const ne=T.length?["match",["get","iso_3166_1_alpha_3"],...T,R]:R,I=q.getLayer("language-family-pins-shadow")?"language-family-pins-shadow":q.getLayer("language-family-pins")?"language-family-pins":void 0,oe=(()=>{var le,_,k;try{return!!((k=(_=(le=q.getContainer)==null?void 0:le.call(q))==null?void 0:_.classList)!=null&&k.contains("maplibregl-map"))}catch{return!1}})();oe?(q.addSource("regions",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),fetch(`${bl(null)}/boundaries/world-adm0.geojson`).then(le=>le.json()).then(le=>{for(const k of le.features||[])k.properties&&k.properties.iso3&&(k.properties.iso_3166_1_alpha_3=k.properties.iso3);const _=q.getSource("regions");_&&_.setData(le)}).catch(le=>console.warn("[map-layers] region boundaries failed to load",le))):q.addSource("regions",{type:"vector",url:"mapbox://mapbox.country-boundaries-v1"}),q.addLayer({id:"regions-fill",type:"fill",source:"regions",...oe?{}:{"source-layer":"country_boundaries"},paint:{"fill-color":ne,"fill-opacity":pe==="none"?.1:.7,"fill-antialias":!0,...Po(q,"fill"),"fill-opacity-transition":{duration:300}}},I),q.addLayer({id:"regions-border",type:"line",source:"regions",...oe?{}:{"source-layer":"country_boundaries"},paint:{"line-color":ne,"line-width":1,"line-opacity":.9,...Po(q,"line")}},I),i.value.regions=!0,r.attachRegionEvents()}function h(X,pe){const q=s();if(!q||!X||!(pe!=null&&pe.length))return;f();const Pe=pe.filter(ne=>{var oe;return(ne.languageFamily||((oe=ne._normalized)==null?void 0:oe.languageFamily)||"Unknown")===X});if(Pe.length<2)return;const R=n(X),B=[],T=15,J=[...Pe].sort((ne,I)=>(ne.longitude||ne.lng)-(I.longitude||I.lng));for(let ne=0;ne=",["get","peoplePraying"],Ao],"#15803d",[">",["get","peoplePraying"],0],"#d97706","rgba(0,0,0,0)"]}const M=[0,5,2,6,4,7,5,9,6,12,7,14,8,18,10,25,12,32,14,40];function N(X,pe){const q=["interpolate",["linear"],["zoom"]];for(let Pe=0;Pe",["get","peoplePraying"],0],q=D();if(!$.every(R=>X.getLayer(R))){for(const R of $)if(X.getLayer(R))try{X.removeLayer(R)}catch{}X.addLayer({id:C,type:"circle",source:"language-families",filter:pe,paint:{"circle-radius":N(M,1),"circle-color":q,"circle-blur":.3,"circle-opacity":.45,"circle-stroke-width":0,...Po(X)}},"language-family-pins");for(const R of v)X.addLayer({id:R,type:"circle",source:"language-families",filter:pe,paint:{"circle-radius":N(M,1),"circle-radius-transition":ce,"circle-color":"rgba(0,0,0,0)","circle-blur":0,"circle-opacity":1,"circle-stroke-width":2.5,"circle-stroke-color":q,"circle-stroke-opacity":0,"circle-stroke-opacity-transition":ce,...Po(X)}},"language-family-pins")}}function ee(){const X=s();if(X)for(const pe of $)X.getLayer(pe)&&X.removeLayer(pe)}function O(X){const pe=s();if(!pe)return;const q=[">",["get","peoplePraying"],0],Pe=X?["all",q,X]:q;for(const R of $)if(pe.getLayer(R))try{pe.setFilter(R,Pe)}catch{}}function ge(){const X=s();if(X){if(G(),d&&(cancelAnimationFrame(d),d=null),g=!0,X.getLayer("language-family-pins"))try{X.setLayoutProperty("language-family-pins","circle-sort-key",["case",[">=",["get","peoplePraying"],Ao],1,[">",["get","peoplePraying"],0],1,3])}catch{}Se(X),$e()}}function $e(){d&&(cancelAnimationFrame(d),d=null);const X=++S;let pe=performance.now(),q=-1/0;function Pe(R){if(!g||X!==S)return;const B=s();if(!B||!$.some(J=>B.getLayer(J))){d=null;return}if(R-q"u")return;const pe=typeof X.getContainer=="function"?X.getContainer():null;if(pe)try{x=new IntersectionObserver(q=>{for(const Pe of q)z=Pe.isIntersecting},{threshold:0}),x.observe(pe)}catch{x=null,z=!0}}function ke(){if(x){try{x.disconnect()}catch{}x=null}z=!0}function me(){g=!1,d&&(cancelAnimationFrame(d),d=null),ke();try{ee();const X=s();X&&X.getLayer("language-family-pins")&&X.setLayoutProperty("language-family-pins","circle-sort-key",void 0)}catch{}}return{layersAdded:i,regionIsoMap:l,addLanguageFamilyLayer:c,addRegionsLayer:u,addFamilyConnectionLines:h,removeFamilyConnectionLines:f,updateLayerSource:P,removeLayer:w,hasLayer:m,setPaintProperty:y,mapEvents:r,startPrayerGlow:ge,stopPrayerGlow:me,syncGlowFilter:O,cleanup:b}}const uo={style:"mapbox://styles/mapbox/standard",center:[20,10],zoom:1.8,minZoom:.5,maxZoom:22,pitch:20,bearing:0,projection:"mercator",renderWorldCopies:!0};function tw(e={}){const{getMap:t=()=>null,mapId:o="unknown",mapStore:n=null,regionsGeoData:a=null,defaultCenter:s=(uo==null?void 0:uo.center)||[20,10],defaultZoom:r=uo==null?void 0:uo.zoom}=e,i=()=>{try{return typeof window<"u"&&!!window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{return!1}};function l(x){const D=i(),M=(N={})=>{const G={};for(const ee of["center","zoom","bearing","pitch","padding"])N[ee]!==void 0&&(G[ee]=N[ee]);return x.jumpTo(G)};return{flyTo:N=>D?M(N):x.flyTo(N),easeTo:N=>D?M(N):x.easeTo(N),fitBounds:(N,G={})=>x.fitBounds(N,D?{...G,animate:!1,duration:0}:G)}}const c={speed:.5,essential:!0,curve:1.2};function u(x,D,M={x:150,y:0}){const N=t();if(!N)return x;try{const G=N.getCanvas(),ee=G.width,O=G.height,ge=N.project(x),$e=window.devicePixelRatio||1,Se=(M.x||0)*$e,ke=(M.y||0)*$e,me={x:ge.x-Se,y:ge.y-ke},X=N.unproject(me);return[X.lng,X.lat]}catch{return x}}function h(x,D=[]){const M=t();if(!M)return;let N=null,G=5;const ee=D.filter(ge=>ge.languageFamily===x);if(ee.length>0){let ge=1/0,$e=-1/0,Se=1/0,ke=-1/0;if(ee.forEach(me=>{me.longitude&&me.latitude&&(ge=Math.min(ge,me.longitude),$e=Math.max($e,me.longitude),Se=Math.min(Se,me.latitude),ke=Math.max(ke,me.latitude))}),ge!==1/0){N=[(ge+$e)/2,(Se+ke)/2];const me=$e-ge,X=ke-Se,pe=Math.max(me,X);pe>50?G=2:pe>20?G=3:pe>10?G=4:pe>5?G=5:G=6}}if(!N)return;const O=u(N);l(M).flyTo({center:O,zoom:G,...c})}function f(x){const D=t();if(!D)return;let M=null,N=4;const G=V1(x);if(G)M=G.center,N=G.zoom||4;else if(a!=null&&a.features){const O=a.features.find(ge=>{var $e,Se;return(($e=ge.properties)==null?void 0:$e.region)===x||((Se=ge.properties)==null?void 0:Se.name)===x});O&&(M=P(O))}if(!M)return;const ee=u(M);l(D).flyTo({center:ee,zoom:N,...c})}function P(x){if(!x||!x.geometry)return null;const{type:D,coordinates:M}=x.geometry;let N=[];if(D==="Polygon"?N=M[0]||[]:D==="MultiPolygon"&&M.forEach(O=>{N=N.concat(O[0]||[])}),N.length===0)return null;let G=0,ee=0;return N.forEach(O=>{G+=O[0],ee+=O[1]}),[G/N.length,ee/N.length]}function w(x,D={}){const M=t();if(!M)return;const N={center:x,...c,...D};l(M).flyTo(N)}function m(x,D,M={}){const N=t();if(!N||(x==null?void 0:x.longitude)==null||(x==null?void 0:x.latitude)==null)return;const G=D??Math.min(N.getZoom()+2,8);w([x.longitude,x.latitude],{...M,zoom:G})}function y(x,D={top:40,right:40,bottom:40,left:40},M={}){const N=t();if(!N||!x)return;const G=M.maxZoom??4,ee=M.duration??900;l(N).fitBounds(x,{padding:D,maxZoom:G,duration:ee,...c,...M})}function b(){const x=t();x&&l(x).flyTo({center:s,zoom:r,...c})}const d=80,g=800,S=5,C=5,p=110,v=1.2;function $(x){const D=x.filter(Number.isFinite).slice().sort((T,J)=>T-J),M=D.length;if(!M)return null;let N=-1,G=0;for(let T=0;TN&&(N=ne,G=T)}const ee=(G+1)%M,O=new Array(M);for(let T=0;T0&&J((T+180)%360+360)%360-180,X=me(Se),pe=24,q=360/pe,Pe=new Array(pe).fill(0);for(const T of D){let J=Math.floor(((T+180)%360+360)%360/q);J>=pe&&(J=pe-1),Pe[J]++}let R=0;for(let T=1;TPe[R]&&(R=T);return{center:me(-180+(R+.5)*q),minLng:X,maxLng:X+(ke-Se),span:ke-Se}}function A(x){try{const D=x.getContainer&&x.getContainer().clientWidth||0,M=D>0?Math.log2(D/512):v,N=typeof x.getMinZoom=="function"?x.getMinZoom():M;return Math.max(N,M)}catch{return v}}function j(x,D,M,N){l(x).easeTo({center:[D,(M+N)/2],zoom:A(x),duration:g,essential:!0})}function K(x,D,M){if(M>p)return!0;try{const N=typeof x.cameraForBounds=="function"?x.cameraForBounds(D,{padding:d,maxZoom:S}):null;return N==null?!0:typeof N.zoom=="number"&&N.zoom<=A(x)+.05}catch{return!1}}function Q(x,D){if(!Array.isArray(x))return x;switch(x[0]){case"get":return D==null?void 0:D[x[1]];case"literal":return x[1];case"has":return D!=null&&x[1]in D;case"!has":return D==null||!(x[1]in D);case"!":return!Q(x[1],D);case"coalesce":{for(let N=1;N2){const ee=Number(Q(x[2],D));return Number.isFinite(ee)?ee:0}return NaN}case"to-string":{const N=Q(x[1],D);return N==null?"":String(N)}case"to-boolean":return!!Q(x[1],D);case"slice":{const N=Q(x[1],D),G=Q(x[2],D),ee=x.length>3?Q(x[3],D):void 0;return typeof N!="string"?"":ee!=null?N.slice(G,ee):N.slice(G)}default:return x}}function H(x,D){if(x===!0)return!0;if(x===!1)return!1;if(!Array.isArray(x))return!!x;const M=x[0];if(M==="all"){for(let N=1;N"||M===">="||M==="<"||M==="<="){const N=typeof x[1]=="string"?D==null?void 0:D[x[1]]:Q(x[1],D),G=Q(x[2],D);switch(M){case"==":return N===G||N==null&&G==null;case"!=":return!(N===G||N==null&&G==null);case">":return N>G;case">=":return N>=G;case"<":return N{const I=(ne==null?void 0:ne.properties)||{};return I.region===T||I.name===T||I.id===T});if(J){const ne=[];let I=1/0,oe=-1/0;const le=k=>{for(const U of k)Array.isArray(U[0])?le(U):Number.isFinite(U[0])&&Number.isFinite(U[1])&&(ne.push(U[0]),U[1]oe&&(oe=U[1]))};(Pe=J.geometry)!=null&&Pe.coordinates&&le(J.geometry.coordinates);const _=$(ne);if(_&&Number.isFinite(I)){const k=[[_.minLng,I],[_.maxLng,oe]];K(M,k,_.span)?j(M,_.center,I,oe):l(M).fitBounds(k,{padding:d,maxZoom:S,duration:g,essential:!0});return}}}const N=D.sourceId??"language-families";if(!M.getSource(N))return;const G=D.matchExpr??x.filter;if(!G)return;const ee=ce(M,N);if(!ee.length)return;const O=[];let ge=1/0,$e=-1/0,Se=0,ke=0,me=0;const X=new Set;for(const B of ee){const T=B==null?void 0:B.properties;if(!H(G,T))continue;const J=T==null?void 0:T.uniqueId;if(J!=null){if(X.has(J))continue;X.add(J)}const ne=(R=B.geometry)==null?void 0:R.coordinates;if(!Array.isArray(ne)||ne.length<2)continue;const I=ne[0],oe=ne[1];!Number.isFinite(I)||!Number.isFinite(oe)||(Se===0&&(ke=I,me=oe),O.push(I),oe$e&&($e=oe),Se++)}if(Se===0)return;if(Se===1){l(M).flyTo({center:[ke,me],zoom:C,duration:g,essential:!0});return}const pe=$(O)||{center:0,minLng:0,maxLng:0,span:0},q=[[pe.minLng,ge],[pe.maxLng,$e]];if(K(M,q,pe.span)){j(M,pe.center,ge,$e);return}try{l(M).fitBounds(q,{padding:d,maxZoom:S,duration:g,essential:!0})}catch{}}return{getOffsetCenter:u,slowFlyToFamily:h,slowFlyToRegion:f,flyTo:w,flyToCoords:m,fitBounds:y,resetView:b,zoomToLegendRow:z,calculateRegionCenterFromPolygon:P}}const dr="#1a1a1a",qo="selected-pin-highlight";function ow(e=dr){const t=document.createElement("div");t.className="map-go-pin-wrapper";const o=`pinGrad-${Math.random().toString(36).slice(2,8)}`;return t.innerHTML=`