From 622366d4d6b5f70c2c52f284f5704989384dfd65 Mon Sep 17 00:00:00 2001 From: doxa-maps-88655c70 <88627970+doxa-maps-88655c70@users.noreply.github.com> Date: Fri, 25 Sep 2026 10:24:48 +0000 Subject: [PATCH] Rebuild the three bundles whose output collided in the merge Merging main brought its build of doxa-research-map, dashboard-plus-grid and the SPA together with this branch's; a build artifact cannot be merged line by line, so all three were rebuilt from the merged sources rather than hand-resolved. SRI re-verified: every leaf's baked integrity matches the bundle it loads. --- .../dashboard-plus-grid.js | 60 ++++++------- .../dashboard-plus-grid/default/index.html | 2 +- .../dashboard-plus-grid/index.html | 2 +- public/doxa-maps/doxa-maps-spa/manifest.json | 82 +++++++++--------- .../doxa-research-map/doxa-research-map.js | 84 +++++++++---------- .../doxa-research-map/research-map/index.html | 2 +- .../research-map/maplibre/index.html | 2 +- public/doxa-maps/index.html | 2 +- public/doxa-maps/manifest.json | 82 +++++++++--------- 9 files changed, 159 insertions(+), 159 deletions(-) diff --git a/public/doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js b/public/doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js index 68418adc3..9494c019e 100644 --- a/public/doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js +++ b/public/doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js @@ -1,46 +1,46 @@ -(function(){"use strict";var Qo=typeof document<"u"?document.currentScript:null;/** +(function(){"use strict";var en=typeof document<"u"?document.currentScript:null;/** * @vue/shared v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function cs(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const Je={},en=[],Yt=()=>{},Yr=()=>!1,da=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),pa=e=>e.startsWith("onUpdate:"),st=Object.assign,us=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},md=Object.prototype.hasOwnProperty,Xe=(e,t)=>md.call(e,t),Re=Array.isArray,So=e=>Sn(e)==="[object Map]",ga=e=>Sn(e)==="[object Set]",Zr=e=>Sn(e)==="[object Date]",Oe=e=>typeof e=="function",ot=e=>typeof e=="string",zt=e=>typeof e=="symbol",Ye=e=>e!==null&&typeof e=="object",Jr=e=>(Ye(e)||Oe(e))&&Oe(e.then)&&Oe(e.catch),Qr=Object.prototype.toString,Sn=e=>Qr.call(e),bd=e=>Sn(e).slice(8,-1),fa=e=>Sn(e)==="[object Object]",ds=e=>ot(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Pn=cs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ha=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},$d=/-\w/g,Pt=ha(e=>e.replace($d,t=>t.slice(1).toUpperCase())),_d=/\B([A-Z])/g,Rt=ha(e=>e.replace(_d,"-$1").toLowerCase()),ei=ha(e=>e.charAt(0).toUpperCase()+e.slice(1)),ps=ha(e=>e?`on${ei(e)}`:""),Zt=(e,t)=>!Object.is(e,t),ma=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},gs=e=>{const t=parseFloat(e);return isNaN(t)?e:t},oi=e=>{const t=ot(e)?Number(e):NaN;return isNaN(t)?e:t};let ni;const ba=()=>ni||(ni=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function rt(e){if(Re(e)){const t={};for(let o=0;o{if(o){const n=o.split(vd);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function qe(e){let t="";if(ot(e))t=e;else if(Re(e))for(let o=0;o!!(e&&e.__v_isRef===!0),ue=e=>ot(e)?e:e==null?"":Re(e)||Ye(e)&&(e.toString===Qr||!Oe(e.toString))?ri(e)?ue(e.value):JSON.stringify(e,ii,2):String(e),ii=(e,t)=>ri(t)?ii(e,t.value):So(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,a],s)=>(o[fs(n,s)+" =>"]=a,o),{})}:ga(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>fs(o))}:zt(t)?fs(t):Ye(t)&&!Re(t)&&!fa(t)?String(t):t,fs=(e,t="")=>{var o;return zt(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};/** +**/function cs(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const Je={},tn=[],Yt=()=>{},Yr=()=>!1,da=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),pa=e=>e.startsWith("onUpdate:"),st=Object.assign,us=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},$d=Object.prototype.hasOwnProperty,Xe=(e,t)=>$d.call(e,t),Re=Array.isArray,So=e=>Sn(e)==="[object Map]",ga=e=>Sn(e)==="[object Set]",Zr=e=>Sn(e)==="[object Date]",Oe=e=>typeof e=="function",ot=e=>typeof e=="string",zt=e=>typeof e=="symbol",Ye=e=>e!==null&&typeof e=="object",Jr=e=>(Ye(e)||Oe(e))&&Oe(e.then)&&Oe(e.catch),Qr=Object.prototype.toString,Sn=e=>Qr.call(e),_d=e=>Sn(e).slice(8,-1),fa=e=>Sn(e)==="[object Object]",ds=e=>ot(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Pn=cs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ha=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},yd=/-\w/g,Pt=ha(e=>e.replace(yd,t=>t.slice(1).toUpperCase())),vd=/\B([A-Z])/g,Rt=ha(e=>e.replace(vd,"-$1").toLowerCase()),ei=ha(e=>e.charAt(0).toUpperCase()+e.slice(1)),ps=ha(e=>e?`on${ei(e)}`:""),Zt=(e,t)=>!Object.is(e,t),ma=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},gs=e=>{const t=parseFloat(e);return isNaN(t)?e:t},oi=e=>{const t=ot(e)?Number(e):NaN;return isNaN(t)?e:t};let ni;const ba=()=>ni||(ni=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function rt(e){if(Re(e)){const t={};for(let o=0;o{if(o){const n=o.split(xd);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function qe(e){let t="";if(ot(e))t=e;else if(Re(e))for(let o=0;o!!(e&&e.__v_isRef===!0),ue=e=>ot(e)?e:e==null?"":Re(e)||Ye(e)&&(e.toString===Qr||!Oe(e.toString))?ri(e)?ue(e.value):JSON.stringify(e,ii,2):String(e),ii=(e,t)=>ri(t)?ii(e,t.value):So(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,a],s)=>(o[fs(n,s)+" =>"]=a,o),{})}:ga(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>fs(o))}:zt(t)?fs(t):Ye(t)&&!Re(t)&&!fa(t)?String(t):t,fs=(e,t="")=>{var o;return zt(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 ht;class li{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&&ht&&(ht.active?(this.parent=ht,this.index=(ht.scopes||(ht.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(ht===this)ht=this.prevScope;else{let t=ht;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(Cn){let t=Cn;for(Cn=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;En;){let t=En;for(En=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 gi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function fi(e){let t,o=e.depsTail,n=o;for(;n;){const a=n.prevDep;n.version===-1?(n===o&&(o=a),_s(n),Sd(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=t,e.depsTail=o}function $s(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(hi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function hi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Tn)||(e.globalVersion=Tn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!$s(e))))return;e.flags|=2;const t=e.dep,o=Qe,n=Gt;Qe=e,Gt=!0;try{gi(e);const a=e.fn(e._value);(t.version===0||Zt(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{Qe=o,Gt=n,fi(e),e.flags&=-3}}function _s(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)_s(s,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function Sd(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let Gt=!0;const mi=[];function Jt(){mi.push(Gt),Gt=!1}function Qt(){const e=mi.pop();Gt=e===void 0?!0:e}function bi(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=Qe;Qe=void 0;try{t()}finally{Qe=o}}}let Tn=0;class Pd{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 ys{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(!Qe||!Gt||Qe===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==Qe)o=this.activeLink=new Pd(Qe,this),Qe.deps?(o.prevDep=Qe.depsTail,Qe.depsTail.nextDep=o,Qe.depsTail=o):Qe.deps=Qe.depsTail=o,$i(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=Qe.depsTail,o.nextDep=void 0,Qe.depsTail.nextDep=o,Qe.depsTail=o,Qe.deps===o&&(Qe.deps=n)}return o}trigger(t){this.version++,Tn++,this.notify(t)}notify(t){ms();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{bs()}}}function $i(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)$i(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const vs=new WeakMap,Go=Symbol(""),ws=Symbol(""),Rn=Symbol("");function $t(e,t,o){if(Gt&&Qe){let n=vs.get(e);n||vs.set(e,n=new Map);let a=n.get(o);a||(n.set(o,a=new ys),a.map=n,a.key=o),a.track()}}function co(e,t,o,n,a,s){const r=vs.get(e);if(!r){Tn++;return}const i=l=>{l&&l.trigger()};if(ms(),t==="clear")r.forEach(i);else{const l=Re(e),c=l&&ds(o);if(l&&o==="length"){const u=Number(n);r.forEach((p,g)=>{(g==="length"||g===Rn||!zt(g)&&g>=u)&&i(p)})}else switch((o!==void 0||r.has(void 0))&&i(r.get(o)),c&&i(r.get(Rn)),t){case"add":l?c&&i(r.get("length")):(i(r.get(Go)),So(e)&&i(r.get(ws)));break;case"delete":l||(i(r.get(Go)),So(e)&&i(r.get(ws)));break;case"set":So(e)&&i(r.get(Go));break}}bs()}function tn(e){const t=We(e);return t===e?t:($t(t,"iterate",Rn),Ft(e)?t:t.map(Ut))}function _a(e){return $t(e=We(e),"iterate",Rn),e}function eo(e,t){return po(e)?on(Bo(e)?Ut(t):t):Ut(t)}const Ed={__proto__:null,[Symbol.iterator](){return xs(this,Symbol.iterator,e=>eo(this,e))},concat(...e){return tn(this).concat(...e.map(t=>Re(t)?tn(t):t))},entries(){return xs(this,"entries",e=>(e[1]=eo(this,e[1]),e))},every(e,t){return uo(this,"every",e,t,void 0,arguments)},filter(e,t){return uo(this,"filter",e,t,o=>o.map(n=>eo(this,n)),arguments)},find(e,t){return uo(this,"find",e,t,o=>eo(this,o),arguments)},findIndex(e,t){return uo(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return uo(this,"findLast",e,t,o=>eo(this,o),arguments)},findLastIndex(e,t){return uo(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return uo(this,"forEach",e,t,void 0,arguments)},includes(...e){return ks(this,"includes",e)},indexOf(...e){return ks(this,"indexOf",e)},join(e){return tn(this).join(e)},lastIndexOf(...e){return ks(this,"lastIndexOf",e)},map(e,t){return uo(this,"map",e,t,void 0,arguments)},pop(){return Nn(this,"pop")},push(...e){return Nn(this,"push",e)},reduce(e,...t){return _i(this,"reduce",e,t)},reduceRight(e,...t){return _i(this,"reduceRight",e,t)},shift(){return Nn(this,"shift")},some(e,t){return uo(this,"some",e,t,void 0,arguments)},splice(...e){return Nn(this,"splice",e)},toReversed(){return tn(this).toReversed()},toSorted(e){return tn(this).toSorted(e)},toSpliced(...e){return tn(this).toSpliced(...e)},unshift(...e){return Nn(this,"unshift",e)},values(){return xs(this,"values",e=>eo(this,e))}};function xs(e,t,o){const n=_a(e),a=n[t]();return n!==e&&!Ft(e)&&(a._next=a.next,a.next=()=>{const s=a._next();return s.done||(s.value=o(s.value)),s}),a}const Cd=Array.prototype;function uo(e,t,o,n,a,s){const r=_a(e),i=r!==e&&!Ft(e),l=r[t];if(l!==Cd[t]){const p=l.apply(e,s);return i?Ut(p):p}let c=o;r!==e&&(i?c=function(p,g){return o.call(this,eo(e,p),g,e)}:o.length>2&&(c=function(p,g){return o.call(this,p,g,e)}));const u=l.call(r,c,n);return i&&a?a(u):u}function _i(e,t,o,n){const a=_a(e),s=a!==e&&!Ft(e);let r=o,i=!1;a!==e&&(s?(i=n.length===0,r=function(c,u,p){return i&&(i=!1,c=eo(e,c)),o.call(this,c,eo(e,u),p,e)}):o.length>3&&(r=function(c,u,p){return o.call(this,c,u,p,e)}));const l=a[t](r,...n);return i?eo(e,l):l}function ks(e,t,o){const n=We(e);$t(n,"iterate",Rn);const a=n[t](...o);return(a===-1||a===!1)&&Ss(o[0])?(o[0]=We(o[0]),n[t](...o)):a}function Nn(e,t,o=[]){Jt(),ms();const n=We(e)[t].apply(e,o);return bs(),Qt(),n}const Td=cs("__proto__,__v_isRef,__isVue"),yi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(zt));function Rd(e){zt(e)||(e=String(e));const t=We(this);return $t(t,"has",e),t.hasOwnProperty(e)}class vi{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?Si:Ai:s?Li:ki).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const r=Re(t);if(!a){let l;if(r&&(l=Ed[o]))return l;if(o==="hasOwnProperty")return Rd}const i=Reflect.get(t,o,pt(t)?t:n);if((zt(o)?yi.has(o):Td(o))||(a||$t(t,"get",o),s))return i;if(pt(i)){const l=r&&ds(o)?i:i.value;return a&&Ye(l)?As(l):l}return Ye(i)?a?As(i):Uo(i):i}}class wi extends vi{constructor(t=!1){super(!1,t)}set(t,o,n,a){let s=t[o];const r=Re(t)&&ds(o);if(!this._isShallow){const c=po(s);if(!Ft(n)&&!po(n)&&(s=We(s),n=We(n)),!r&&pt(s)&&!pt(n))return c||(s.value=n),!0}const i=r?Number(o)e,ya=e=>Reflect.getPrototypeOf(e);function Id(e,t,o){return function(...n){const a=this.__v_raw,s=We(a),r=So(s),i=e==="entries"||e===Symbol.iterator&&r,l=e==="keys"&&r,c=a[e](...n),u=o?Ls:t?on:Ut;return!t&&$t(s,"iterate",l?ws:Go),st(Object.create(c),{next(){const{value:p,done:g}=c.next();return g?{value:p,done:g}:{value:i?[u(p[0]),u(p[1])]:u(p),done:g}}})}}function va(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Dd(e,t){const o={get(a){const s=this.__v_raw,r=We(s),i=We(a);e||(Zt(a,i)&&$t(r,"get",a),$t(r,"get",i));const{has:l}=ya(r),c=t?Ls:e?on:Ut;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&&$t(We(a),"iterate",Go),a.size},has(a){const s=this.__v_raw,r=We(s),i=We(a);return e||(Zt(a,i)&&$t(r,"has",a),$t(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?Ls:e?on:Ut;return!e&&$t(l,"iterate",Go),i.forEach((u,p)=>a.call(s,c(u),c(p),r))}};return st(o,e?{add:va("add"),set:va("set"),delete:va("delete"),clear:va("clear")}:{add(a){const s=We(this),r=ya(s),i=We(a),l=!t&&!Ft(a)&&!po(a)?i:a;return r.has.call(s,l)||Zt(a,l)&&r.has.call(s,a)||Zt(i,l)&&r.has.call(s,i)||(s.add(l),co(s,"add",l,l)),this},set(a,s){!t&&!Ft(s)&&!po(s)&&(s=We(s));const r=We(this),{has:i,get:l}=ya(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?Zt(s,u)&&co(r,"set",a,s):co(r,"add",a,s),this},delete(a){const s=We(this),{has:r,get:i}=ya(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&&co(s,"delete",a,void 0),c},clear(){const a=We(this),s=a.size!==0,r=a.clear();return s&&co(a,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(a=>{o[a]=Id(a,e,t)}),o}function wa(e,t){const o=Dd(e,t);return(n,a,s)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?n:Reflect.get(Xe(o,a)&&a in n?o:n,a,s)}const jd={get:wa(!1,!1)},zd={get:wa(!1,!0)},Gd={get:wa(!0,!1)},Ud={get:wa(!0,!0)},ki=new WeakMap,Li=new WeakMap,Ai=new WeakMap,Si=new WeakMap;function Bd(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Uo(e){return po(e)?e:xa(e,!1,Nd,jd,ki)}function Vd(e){return xa(e,!1,Fd,zd,Li)}function As(e){return xa(e,!0,Od,Gd,Ai)}function Yx(e){return xa(e,!0,Md,Ud,Si)}function xa(e,t,o,n,a){if(!Ye(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=Bd(bd(e));if(r===0)return e;const i=new Proxy(e,r===2?n:o);return a.set(e,i),i}function Bo(e){return po(e)?Bo(e.__v_raw):!!(e&&e.__v_isReactive)}function po(e){return!!(e&&e.__v_isReadonly)}function Ft(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 Pi(e){return!Xe(e,"__v_skip")&&Object.isExtensible(e)&&ti(e,"__v_skip",!0),e}const Ut=e=>Ye(e)?Uo(e):e,on=e=>Ye(e)?As(e):e;function pt(e){return e?e.__v_isRef===!0:!1}function de(e){return Ei(e,!1)}function On(e){return Ei(e,!0)}function Ei(e,t){return pt(e)?e:new qd(e,t)}class qd{constructor(t,o){this.dep=new ys,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:We(t),this._value=o?t:Ut(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||Ft(t)||po(t);t=n?t:We(t),Zt(t,o)&&(this._rawValue=t,this._value=n?t:Ut(t),this.dep.trigger())}}function he(e){return pt(e)?e.value:e}const Wd={get:(e,t,o)=>t==="__v_raw"?e:he(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 Ci(e){return Bo(e)?e:new Proxy(e,Wd)}class Hd{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new ys(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Tn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&Qe!==this)return pi(this,!0),!0}get value(){const t=this.dep.track();return hi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Kd(e,t,o=!1){let n,a;return Oe(e)?n=e:(n=e.get,a=e.set),new Hd(n,a,o)}const ka={},La=new WeakMap;let Vo;function Xd(e,t=!1,o=Vo){if(o){let n=La.get(o);n||La.set(o,n=[]),n.push(e)}}function Yd(e,t,o=Je){const{immediate:n,deep:a,once:s,scheduler:r,augmentJob:i,call:l}=o,c=d=>a?d:Ft(d)||a===!1||a===0?go(d,1):go(d);let u,p,g,y,A=!1,k=!1;if(pt(e)?(p=()=>e.value,A=Ft(e)):Bo(e)?(p=()=>c(e),A=!0):Re(e)?(k=!0,A=e.some(d=>Bo(d)||Ft(d)),p=()=>e.map(d=>{if(pt(d))return d.value;if(Bo(d))return c(d);if(Oe(d))return l?l(d,2):d()})):Oe(e)?t?p=l?()=>l(e,2):e:p=()=>{if(g){Jt();try{g()}finally{Qt()}}const d=Vo;Vo=u;try{return l?l(e,3,[y]):e(y)}finally{Vo=d}}:p=Yt,t&&a){const d=p,$=a===!0?1/0:a;p=()=>go(d(),$)}const S=Ad(),C=()=>{u.stop(),S&&S.active&&us(S.effects,u)};if(s&&t){const d=t;t=(...$)=>{const L=d(...$);return C(),L}}let f=k?new Array(e.length).fill(ka):ka;const b=d=>{if(!(!(u.flags&1)||!u.dirty&&!d))if(t){const $=u.run();if(d||a||A||(k?$.some((L,w)=>Zt(L,f[w])):Zt($,f))){g&&g();const L=Vo;Vo=u;try{const w=[$,f===ka?void 0:k&&f[0]===ka?[]:f,y];f=$,l?l(t,3,w):t(...w)}finally{Vo=L}}}else u.run()};return i&&i(b),u=new ui(p),u.scheduler=r?()=>r(b,!1):b,y=d=>Xd(d,!1,u),g=u.onStop=()=>{const d=La.get(u);if(d){if(l)l(d,4);else for(const $ of d)$();La.delete(u)}},t?n?b(!0):f=u.run():r?r(b.bind(null,!0),!0):u.run(),C.pause=u.pause.bind(u),C.resume=u.resume.bind(u),C.stop=C,C}function go(e,t=1/0,o){if(t<=0||!Ye(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,pt(e))go(e.value,t,o);else if(Re(e))for(let n=0;n{go(n,t,o)});else if(fa(e)){for(const n in e)go(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&go(e[n],t,o)}return e}/** +**/let ht;class li{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&&ht&&(ht.active?(this.parent=ht,this.index=(ht.scopes||(ht.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(ht===this)ht=this.prevScope;else{let t=ht;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(Cn){let t=Cn;for(Cn=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;En;){let t=En;for(En=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 gi(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function fi(e){let t,o=e.depsTail,n=o;for(;n;){const a=n.prevDep;n.version===-1?(n===o&&(o=a),_s(n),Ed(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=t,e.depsTail=o}function $s(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(hi(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function hi(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Tn)||(e.globalVersion=Tn,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!$s(e))))return;e.flags|=2;const t=e.dep,o=Qe,n=Gt;Qe=e,Gt=!0;try{gi(e);const a=e.fn(e._value);(t.version===0||Zt(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{Qe=o,Gt=n,fi(e),e.flags&=-3}}function _s(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)_s(s,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function Ed(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let Gt=!0;const mi=[];function Jt(){mi.push(Gt),Gt=!1}function Qt(){const e=mi.pop();Gt=e===void 0?!0:e}function bi(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=Qe;Qe=void 0;try{t()}finally{Qe=o}}}let Tn=0;class Cd{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 ys{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(!Qe||!Gt||Qe===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==Qe)o=this.activeLink=new Cd(Qe,this),Qe.deps?(o.prevDep=Qe.depsTail,Qe.depsTail.nextDep=o,Qe.depsTail=o):Qe.deps=Qe.depsTail=o,$i(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=Qe.depsTail,o.nextDep=void 0,Qe.depsTail.nextDep=o,Qe.depsTail=o,Qe.deps===o&&(Qe.deps=n)}return o}trigger(t){this.version++,Tn++,this.notify(t)}notify(t){ms();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{bs()}}}function $i(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)$i(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const vs=new WeakMap,Go=Symbol(""),ws=Symbol(""),Rn=Symbol("");function $t(e,t,o){if(Gt&&Qe){let n=vs.get(e);n||vs.set(e,n=new Map);let a=n.get(o);a||(n.set(o,a=new ys),a.map=n,a.key=o),a.track()}}function co(e,t,o,n,a,s){const r=vs.get(e);if(!r){Tn++;return}const i=l=>{l&&l.trigger()};if(ms(),t==="clear")r.forEach(i);else{const l=Re(e),c=l&&ds(o);if(l&&o==="length"){const u=Number(n);r.forEach((p,g)=>{(g==="length"||g===Rn||!zt(g)&&g>=u)&&i(p)})}else switch((o!==void 0||r.has(void 0))&&i(r.get(o)),c&&i(r.get(Rn)),t){case"add":l?c&&i(r.get("length")):(i(r.get(Go)),So(e)&&i(r.get(ws)));break;case"delete":l||(i(r.get(Go)),So(e)&&i(r.get(ws)));break;case"set":So(e)&&i(r.get(Go));break}}bs()}function on(e){const t=We(e);return t===e?t:($t(t,"iterate",Rn),Ft(e)?t:t.map(Ut))}function _a(e){return $t(e=We(e),"iterate",Rn),e}function eo(e,t){return po(e)?nn(Bo(e)?Ut(t):t):Ut(t)}const Td={__proto__:null,[Symbol.iterator](){return xs(this,Symbol.iterator,e=>eo(this,e))},concat(...e){return on(this).concat(...e.map(t=>Re(t)?on(t):t))},entries(){return xs(this,"entries",e=>(e[1]=eo(this,e[1]),e))},every(e,t){return uo(this,"every",e,t,void 0,arguments)},filter(e,t){return uo(this,"filter",e,t,o=>o.map(n=>eo(this,n)),arguments)},find(e,t){return uo(this,"find",e,t,o=>eo(this,o),arguments)},findIndex(e,t){return uo(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return uo(this,"findLast",e,t,o=>eo(this,o),arguments)},findLastIndex(e,t){return uo(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return uo(this,"forEach",e,t,void 0,arguments)},includes(...e){return ks(this,"includes",e)},indexOf(...e){return ks(this,"indexOf",e)},join(e){return on(this).join(e)},lastIndexOf(...e){return ks(this,"lastIndexOf",e)},map(e,t){return uo(this,"map",e,t,void 0,arguments)},pop(){return Nn(this,"pop")},push(...e){return Nn(this,"push",e)},reduce(e,...t){return _i(this,"reduce",e,t)},reduceRight(e,...t){return _i(this,"reduceRight",e,t)},shift(){return Nn(this,"shift")},some(e,t){return uo(this,"some",e,t,void 0,arguments)},splice(...e){return Nn(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 Nn(this,"unshift",e)},values(){return xs(this,"values",e=>eo(this,e))}};function xs(e,t,o){const n=_a(e),a=n[t]();return n!==e&&!Ft(e)&&(a._next=a.next,a.next=()=>{const s=a._next();return s.done||(s.value=o(s.value)),s}),a}const Rd=Array.prototype;function uo(e,t,o,n,a,s){const r=_a(e),i=r!==e&&!Ft(e),l=r[t];if(l!==Rd[t]){const p=l.apply(e,s);return i?Ut(p):p}let c=o;r!==e&&(i?c=function(p,g){return o.call(this,eo(e,p),g,e)}:o.length>2&&(c=function(p,g){return o.call(this,p,g,e)}));const u=l.call(r,c,n);return i&&a?a(u):u}function _i(e,t,o,n){const a=_a(e),s=a!==e&&!Ft(e);let r=o,i=!1;a!==e&&(s?(i=n.length===0,r=function(c,u,p){return i&&(i=!1,c=eo(e,c)),o.call(this,c,eo(e,u),p,e)}):o.length>3&&(r=function(c,u,p){return o.call(this,c,u,p,e)}));const l=a[t](r,...n);return i?eo(e,l):l}function ks(e,t,o){const n=We(e);$t(n,"iterate",Rn);const a=n[t](...o);return(a===-1||a===!1)&&Ss(o[0])?(o[0]=We(o[0]),n[t](...o)):a}function Nn(e,t,o=[]){Jt(),ms();const n=We(e)[t].apply(e,o);return bs(),Qt(),n}const Nd=cs("__proto__,__v_isRef,__isVue"),yi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(zt));function Od(e){zt(e)||(e=String(e));const t=We(this);return $t(t,"has",e),t.hasOwnProperty(e)}class vi{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?Si:Ai:s?Li:ki).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const r=Re(t);if(!a){let l;if(r&&(l=Td[o]))return l;if(o==="hasOwnProperty")return Od}const i=Reflect.get(t,o,pt(t)?t:n);if((zt(o)?yi.has(o):Nd(o))||(a||$t(t,"get",o),s))return i;if(pt(i)){const l=r&&ds(o)?i:i.value;return a&&Ye(l)?As(l):l}return Ye(i)?a?As(i):Uo(i):i}}class wi extends vi{constructor(t=!1){super(!1,t)}set(t,o,n,a){let s=t[o];const r=Re(t)&&ds(o);if(!this._isShallow){const c=po(s);if(!Ft(n)&&!po(n)&&(s=We(s),n=We(n)),!r&&pt(s)&&!pt(n))return c||(s.value=n),!0}const i=r?Number(o)e,ya=e=>Reflect.getPrototypeOf(e);function jd(e,t,o){return function(...n){const a=this.__v_raw,s=We(a),r=So(s),i=e==="entries"||e===Symbol.iterator&&r,l=e==="keys"&&r,c=a[e](...n),u=o?Ls:t?nn:Ut;return!t&&$t(s,"iterate",l?ws:Go),st(Object.create(c),{next(){const{value:p,done:g}=c.next();return g?{value:p,done:g}:{value:i?[u(p[0]),u(p[1])]:u(p),done:g}}})}}function va(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function zd(e,t){const o={get(a){const s=this.__v_raw,r=We(s),i=We(a);e||(Zt(a,i)&&$t(r,"get",a),$t(r,"get",i));const{has:l}=ya(r),c=t?Ls:e?nn:Ut;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&&$t(We(a),"iterate",Go),a.size},has(a){const s=this.__v_raw,r=We(s),i=We(a);return e||(Zt(a,i)&&$t(r,"has",a),$t(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?Ls:e?nn:Ut;return!e&&$t(l,"iterate",Go),i.forEach((u,p)=>a.call(s,c(u),c(p),r))}};return st(o,e?{add:va("add"),set:va("set"),delete:va("delete"),clear:va("clear")}:{add(a){const s=We(this),r=ya(s),i=We(a),l=!t&&!Ft(a)&&!po(a)?i:a;return r.has.call(s,l)||Zt(a,l)&&r.has.call(s,a)||Zt(i,l)&&r.has.call(s,i)||(s.add(l),co(s,"add",l,l)),this},set(a,s){!t&&!Ft(s)&&!po(s)&&(s=We(s));const r=We(this),{has:i,get:l}=ya(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?Zt(s,u)&&co(r,"set",a,s):co(r,"add",a,s),this},delete(a){const s=We(this),{has:r,get:i}=ya(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&&co(s,"delete",a,void 0),c},clear(){const a=We(this),s=a.size!==0,r=a.clear();return s&&co(a,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(a=>{o[a]=jd(a,e,t)}),o}function wa(e,t){const o=zd(e,t);return(n,a,s)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?n:Reflect.get(Xe(o,a)&&a in n?o:n,a,s)}const Gd={get:wa(!1,!1)},Ud={get:wa(!1,!0)},Bd={get:wa(!0,!1)},Vd={get:wa(!0,!0)},ki=new WeakMap,Li=new WeakMap,Ai=new WeakMap,Si=new WeakMap;function qd(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Uo(e){return po(e)?e:xa(e,!1,Fd,Gd,ki)}function Wd(e){return xa(e,!1,Id,Ud,Li)}function As(e){return xa(e,!0,Md,Bd,Ai)}function ek(e){return xa(e,!0,Dd,Vd,Si)}function xa(e,t,o,n,a){if(!Ye(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=qd(_d(e));if(r===0)return e;const i=new Proxy(e,r===2?n:o);return a.set(e,i),i}function Bo(e){return po(e)?Bo(e.__v_raw):!!(e&&e.__v_isReactive)}function po(e){return!!(e&&e.__v_isReadonly)}function Ft(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 Pi(e){return!Xe(e,"__v_skip")&&Object.isExtensible(e)&&ti(e,"__v_skip",!0),e}const Ut=e=>Ye(e)?Uo(e):e,nn=e=>Ye(e)?As(e):e;function pt(e){return e?e.__v_isRef===!0:!1}function de(e){return Ei(e,!1)}function On(e){return Ei(e,!0)}function Ei(e,t){return pt(e)?e:new Hd(e,t)}class Hd{constructor(t,o){this.dep=new ys,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:We(t),this._value=o?t:Ut(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||Ft(t)||po(t);t=n?t:We(t),Zt(t,o)&&(this._rawValue=t,this._value=n?t:Ut(t),this.dep.trigger())}}function fe(e){return pt(e)?e.value:e}const Kd={get:(e,t,o)=>t==="__v_raw"?e:fe(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 Ci(e){return Bo(e)?e:new Proxy(e,Kd)}class Xd{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new ys(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Tn-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&Qe!==this)return pi(this,!0),!0}get value(){const t=this.dep.track();return hi(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Yd(e,t,o=!1){let n,a;return Oe(e)?n=e:(n=e.get,a=e.set),new Xd(n,a,o)}const ka={},La=new WeakMap;let Vo;function Zd(e,t=!1,o=Vo){if(o){let n=La.get(o);n||La.set(o,n=[]),n.push(e)}}function Jd(e,t,o=Je){const{immediate:n,deep:a,once:s,scheduler:r,augmentJob:i,call:l}=o,c=d=>a?d:Ft(d)||a===!1||a===0?go(d,1):go(d);let u,p,g,y,A=!1,k=!1;if(pt(e)?(p=()=>e.value,A=Ft(e)):Bo(e)?(p=()=>c(e),A=!0):Re(e)?(k=!0,A=e.some(d=>Bo(d)||Ft(d)),p=()=>e.map(d=>{if(pt(d))return d.value;if(Bo(d))return c(d);if(Oe(d))return l?l(d,2):d()})):Oe(e)?t?p=l?()=>l(e,2):e:p=()=>{if(g){Jt();try{g()}finally{Qt()}}const d=Vo;Vo=u;try{return l?l(e,3,[y]):e(y)}finally{Vo=d}}:p=Yt,t&&a){const d=p,$=a===!0?1/0:a;p=()=>go(d(),$)}const S=Pd(),C=()=>{u.stop(),S&&S.active&&us(S.effects,u)};if(s&&t){const d=t;t=(...$)=>{const L=d(...$);return C(),L}}let f=k?new Array(e.length).fill(ka):ka;const b=d=>{if(!(!(u.flags&1)||!u.dirty&&!d))if(t){const $=u.run();if(d||a||A||(k?$.some((L,w)=>Zt(L,f[w])):Zt($,f))){g&&g();const L=Vo;Vo=u;try{const w=[$,f===ka?void 0:k&&f[0]===ka?[]:f,y];f=$,l?l(t,3,w):t(...w)}finally{Vo=L}}}else u.run()};return i&&i(b),u=new ui(p),u.scheduler=r?()=>r(b,!1):b,y=d=>Zd(d,!1,u),g=u.onStop=()=>{const d=La.get(u);if(d){if(l)l(d,4);else for(const $ of d)$();La.delete(u)}},t?n?b(!0):f=u.run():r?r(b.bind(null,!0),!0):u.run(),C.pause=u.pause.bind(u),C.resume=u.resume.bind(u),C.stop=C,C}function go(e,t=1/0,o){if(t<=0||!Ye(e)||e.__v_skip||(o=o||new Map,(o.get(e)||0)>=t))return e;if(o.set(e,t),t--,pt(e))go(e.value,t,o);else if(Re(e))for(let n=0;n{go(n,t,o)});else if(fa(e)){for(const n in e)go(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&go(e[n],t,o)}return e}/** * @vue/runtime-core v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const Fn=[];let Ps=!1;function Zx(e,...t){if(Ps)return;Ps=!0,Jt();const o=Fn.length?Fn[Fn.length-1].component:null,n=o&&o.appContext.config.warnHandler,a=Zd();if(n)nn(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 <${Al(o,s.type)}>`).join(` +**/const Fn=[];let Ps=!1;function tk(e,...t){if(Ps)return;Ps=!0,Jt();const o=Fn.length?Fn[Fn.length-1].component:null,n=o&&o.appContext.config.warnHandler,a=Qd();if(n)an(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 <${Al(o,s.type)}>`).join(` `),a]);else{const s=[`[Vue warn]: ${e}`,...t];a.length&&s.push(` -`,...Jd(a)),console.warn(...s)}Qt(),Ps=!1}function Zd(){let e=Fn[Fn.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 Jd(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[` -`],...Qd(o))}),t}function Qd({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${Al(e.component,e.type,n)}`,s=">"+o;return e.props?[a,...ep(e.props),s]:[a+s]}function ep(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...Ti(n,e[n]))}),o.length>3&&t.push(" ..."),t}function Ti(e,t,o){return ot(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:pt(t)?(t=Ti(e,We(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):Oe(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=We(t),o?t:[`${e}=`,t])}function nn(e,t,o,n){try{return n?e(...n):e()}catch(a){Aa(a,t,o)}}function Bt(e,t,o,n){if(Oe(e)){const a=nn(e,t,o,n);return a&&Jr(a)&&a.catch(s=>{Aa(s,t,o)}),a}if(Re(e)){const a=[];for(let s=0;s>>1,a=vt[n],s=In(a);s=In(o)?vt.push(e):vt.splice(op(t),0,e),e.flags|=1,Ni()}}function Ni(){Sa||(Sa=Ri.then(Mi))}function np(e){if(!Re(e))Po&&e.id===-1?Po.splice(sn+1,0,e):e.flags&1||(an.push(e),e.flags|=1);else for(let t=0;tIn(o)-In(n));if(an.length=0,Po){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function Mi(e){try{for(to=0;to{n._d&&Fa(-1);const s=Pa(t),r=ho.length;let i;try{i=e(...a)}finally{for(let l=ho.length;l>r;l--)Ws();Pa(s),n._d&&Fa(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function Mt(e,t){if(_t===null)return e;const o=ja(_t),n=e.dirs||(e.dirs=[]);for(let a=0;a1)return o&&Oe(t)?t.call(n&&n.proxy):t}}const ap=Symbol.for("v-scx"),sp=()=>ze(ap);function lt(e,t,o){return Di(e,t,o)}function Di(e,t,o=Je){const{immediate:n,deep:a,flush:s,once:r}=o,i=st({},o),l=t&&n||!t&&s!=="post";let c;if(Xn){if(s==="sync"){const y=sp();c=y.__watcherHandles||(y.__watcherHandles=[])}else if(!l){const y=()=>{};return y.stop=Yt,y.resume=Yt,y.pause=Yt,y}}const u=kt;i.call=(y,A,k)=>Bt(y,u,A,k);let p=!1;s==="post"?i.scheduler=y=>{xt(y,u&&u.suspense)}:s!=="sync"&&(p=!0,i.scheduler=(y,A)=>{A?y():Es(y)}),i.augmentJob=y=>{t&&(y.flags|=4),p&&(y.flags|=2,u&&(y.id=u.uid,y.i=u))};const g=Yd(e,t,i);return Xn&&(c?c.push(g):l&&g()),g}function rp(e,t,o){const n=this.proxy,a=ot(e)?e.includes(".")?ji(n,e):()=>n[e]:e.bind(n,n);let s;Oe(t)?s=t:(s=t.handler,o=t);const r=Kn(this),i=Di(a,s.bind(n),o);return r(),i}function ji(e,t){const o=t.split(".");return()=>{let n=e;for(let a=0;ae.__isTeleport,Wo=e=>e&&(e.disabled||e.disabled===""),ip=e=>e&&(e.defer||e.defer===""),Gi=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Ui=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Cs=(e,t)=>{const o=e&&e.to;return ot(o)?t?t(o):null:o},lp={name:"Teleport",__isTeleport:!0,process(e,t,o,n,a,s,r,i,l,c){const{mc:u,pc:p,pbc:g,o:{insert:y,querySelector:A,createText:k,createComment:S,parentNode:C}}=c,f=Wo(t.props);let{dynamicChildren:b}=t;const d=(w,F,U)=>{w.shapeFlag&16&&u(w.children,F,U,a,s,r,i,l)},$=(w=t)=>{const F=Wo(w.props),U=w.target=Cs(w.props,A),ne=Ts(U,w,k,y);U&&(r!=="svg"&&Gi(U)?r="svg":r!=="mathml"&&Ui(U)&&(r="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(U),F||(d(w,U,ne),Dn(w,!1)))},L=w=>{const F=()=>{if(Co.get(w)===F){if(Co.delete(w),Wo(w.props)){const U=C(w.el)||o;d(w,U,w.anchor),Dn(w,!0)}$(w)}};Co.set(w,F),xt(F,s)};if(e==null){const w=t.el=k(""),F=t.anchor=k("");if(y(w,o,n),y(F,o,n),ip(t.props)||s&&s.pendingBranch){L(t);return}f&&(d(t,o,F),Dn(t,!0)),$()}else{t.el=e.el;const w=t.anchor=e.anchor,F=Co.get(e);if(F){F.flags|=8,Co.delete(e),L(t);return}t.targetStart=e.targetStart;const U=t.target=e.target,ne=t.targetAnchor=e.targetAnchor,z=Wo(e.props),Y=z?o:U,fe=z?w:ne;if(r==="svg"||Gi(U)?r="svg":(r==="mathml"||Ui(U))&&(r="mathml"),b?(g(e.dynamicChildren,b,Y,a,s,r,i),Vs(e,t,!0)):l||p(e,t,Y,fe,a,s,r,i,!1),f)z?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Ca(t,o,w,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const M=Cs(t.props,A);M&&(t.target=M,Ca(t,M,null,c,0))}else z&&Ca(t,U,ne,c,1);Dn(t,f)}},remove(e,t,o,{um:n,o:{remove:a}},s){const{shapeFlag:r,children:i,anchor:l,targetStart:c,targetAnchor:u,target:p,props:g}=e,y=Wo(g),A=s||!y,k=Co.get(e);if(k&&(k.flags|=8,Co.delete(e)),p&&(a(c),a(u)),s&&a(l),!k&&(y||p)&&r&16)for(let S=0;S1){for(const o of e)if(o.type!==no){t=o;break}}return t}function Bi(e){if(!Os(e))return Ea(e.type)&&e.children?dp(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&&Oe(o.default))return o.default()}}function Ns(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;Ns(Ea(o.type)&&Bi(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 jn(e,t){return Oe(e)?st({name:e.name},t,{setup:e}):e}function Vi(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function qi(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}const Ta=new WeakMap;function zn(e,t,o,n,a=!1){if(Re(e)){e.forEach((k,S)=>zn(k,t&&(Re(t)?t[S]:t),o,n,a));return}if(rn(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&zn(e,t,o,n.component.subTree);return}const s=n.shapeFlag&4?ja(n.component):n.el,r=a?null:s,{i,r:l}=e,c=t&&t.r,u=i.refs===Je?i.refs={}:i.refs,p=i.setupState,g=We(p),y=p===Je?Yr:k=>qi(u,k)?!1:Xe(g,k),A=(k,S)=>!(S&&qi(u,S));if(c!=null&&c!==l){if(Wi(t),ot(c))u[c]=null,y(c)&&(p[c]=null);else if(pt(c)){const k=t;A(c,k.k)&&(c.value=null),k.k&&(u[k.k]=null)}}if(Oe(l))nn(l,i,12,[r,u]);else{const k=ot(l),S=pt(l);if(k||S){const C=()=>{if(e.f){const f=k?y(l)?p[l]:u[l]:A()||!e.k?l.value:u[e.k];if(a)Re(f)&&us(f,s);else if(Re(f))f.includes(s)||f.push(s);else if(k)u[l]=[s],y(l)&&(p[l]=u[l]);else{const b=[s];A(l,e.k)&&(l.value=b),e.k&&(u[e.k]=b)}}else k?(u[l]=r,y(l)&&(p[l]=r)):S&&(A(l,e.k)&&(l.value=r),e.k&&(u[e.k]=r))};if(r){const f=()=>{C(),Ta.delete(e)};f.id=-1,Ta.set(e,f),xt(f,o)}else Wi(e),C()}}}function Wi(e){const t=Ta.get(e);t&&(t.flags|=8,Ta.delete(e))}ba().requestIdleCallback,ba().cancelIdleCallback;const rn=e=>!!e.type.__asyncLoader,Os=e=>e.type.__isKeepAlive;function pp(e,t){Hi(e,"a",t)}function gp(e,t){Hi(e,"da",t)}function Hi(e,t,o=kt){const n=e.__wdc||(e.__wdc=()=>{let a=o;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Ra(t,n,o),o){let a=o.parent;for(;a&&a.parent;)Os(a.parent.vnode)&&fp(n,t,o,a),a=a.parent}}function fp(e,t,o,n){const a=Ra(t,e,n,!0);Fs(()=>{us(n[t],a)},o)}function Ra(e,t,o=kt,n=!1){if(o){const a=o[e]||(o[e]=[]),s=t.__weh||(t.__weh=(...r)=>{Jt();const i=Kn(o),l=Bt(t,o,e,r);return i(),Qt(),l});return n?a.unshift(s):a.push(s),s}}const fo=e=>(t,o=kt)=>{(!Xn||e==="sp")&&Ra(e,(...n)=>t(...n),o)},Ki=fo("bm"),yt=fo("m"),hp=fo("bu"),mp=fo("u"),It=fo("bum"),Fs=fo("um"),bp=fo("sp"),$p=fo("rtg"),_p=fo("rtc");function yp(e,t=kt){Ra("ec",e,t)}const vp=Symbol.for("v-ndc");function et(e,t,o,n){let a;const s=o,r=Re(e);if(r||ot(e)){const i=r&&Bo(e);let l=!1,c=!1;i&&(l=!Ft(e),c=po(e),e=_a(e)),a=new Array(e.length);for(let u=0,p=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),H(),To(Ce,null,[Ue("slot",c,n)],u?-2:64)}let r=e[t];r&&r._c&&(r._d=!1);const i=ho.length;H();let l;try{const c=r&&Xi(r(o)),u=o.key||s||c&&c.key;l=To(Ce,{key:(u&&!zt(u)?u:`_${t}`)+(!c&&n?"_fb":"")},c||(n?n():[]),c&&e._===1?64:-2)}catch(c){for(let u=ho.length;u>i;u--)Ws();throw c}finally{r&&r._c&&(r._d=!0)}return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function Xi(e){return e.some(t=>qn(t)?!(t.type===no||t.type===Ce&&!Xi(t.children)):!0)?e:null}const Ms=e=>e?xl(e)?ja(e):Ms(e.parent):null,Gn=st(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=>Ms(e.parent),$root:e=>Ms(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Qi(e),$forceUpdate:e=>e.f||(e.f=()=>{Es(e.update)}),$nextTick:e=>e.n||(e.n=Mn.bind(e.proxy)),$watch:e=>rp.bind(e)}),Is=(e,t)=>e!==Je&&!e.__isScriptSetup&&Xe(e,t),wp={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 g=r[t];if(g!==void 0)switch(g){case 1:return n[t];case 2:return a[t];case 4:return o[t];case 3:return s[t]}else{if(Is(n,t))return r[t]=1,n[t];if(a!==Je&&Xe(a,t))return r[t]=2,a[t];if(Xe(s,t))return r[t]=3,s[t];if(o!==Je&&Xe(o,t))return r[t]=4,o[t];Ds&&(r[t]=0)}}const c=Gn[t];let u,p;if(c)return t==="$attrs"&&$t(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(o!==Je&&Xe(o,t))return r[t]=4,o[t];if(p=l.config.globalProperties,Xe(p,t))return p[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:s}=e;return Is(a,t)?(a[t]=o,!0):n!==Je&&Xe(n,t)?(n[t]=o,!0):Xe(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!==Je&&i[0]!=="$"&&Xe(e,i)||Is(t,i)||Xe(s,i)||Xe(n,i)||Xe(Gn,i)||Xe(a.config.globalProperties,i)||(l=r.__cssModules)&&l[i])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:Xe(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function Yi(e){return Re(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let Ds=!0;function xp(e){const t=Qi(e),o=e.proxy,n=e.ctx;Ds=!1,t.beforeCreate&&Zi(t.beforeCreate,e,"bc");const{data:a,computed:s,methods:r,watch:i,provide:l,inject:c,created:u,beforeMount:p,mounted:g,beforeUpdate:y,updated:A,activated:k,deactivated:S,beforeDestroy:C,beforeUnmount:f,destroyed:b,unmounted:d,render:$,renderTracked:L,renderTriggered:w,errorCaptured:F,serverPrefetch:U,expose:ne,inheritAttrs:z,components:Y,directives:fe,filters:M}=t;if(c&&kp(c,n,null),r)for(const B in r){const se=r[B];Oe(se)&&(n[B]=se.bind(o))}if(a){const B=a.call(o,o);Ye(B)&&(e.data=Uo(B))}if(Ds=!0,s)for(const B in s){const se=s[B],I=Oe(se)?se.bind(o,o):Oe(se.get)?se.get.bind(o,o):Yt,O=!Oe(se)&&Oe(se.set)?se.set.bind(o):Yt,V=re({get:I,set:O});Object.defineProperty(n,B,{enumerable:!0,configurable:!0,get:()=>V.value,set:D=>V.value=D})}if(i)for(const B in i)Ji(i[B],n,o,B);if(l){const B=Oe(l)?l.call(o):l;Reflect.ownKeys(B).forEach(se=>{oo(se,B[se])})}u&&Zi(u,e,"c");function X(B,se){Re(se)?se.forEach(I=>B(I.bind(o))):se&&B(se.bind(o))}if(X(Ki,p),X(yt,g),X(hp,y),X(mp,A),X(pp,k),X(gp,S),X(yp,F),X(_p,L),X($p,w),X(It,f),X(Fs,d),X(bp,U),Re(ne))if(ne.length){const B=e.exposed||(e.exposed={});ne.forEach(se=>{Object.defineProperty(B,se,{get:()=>o[se],set:I=>o[se]=I,enumerable:!0})})}else e.exposed||(e.exposed={});$&&e.render===Yt&&(e.render=$),z!=null&&(e.inheritAttrs=z),Y&&(e.components=Y),fe&&(e.directives=fe),U&&Vi(e)}function kp(e,t,o=Yt){Re(e)&&(e=js(e));for(const n in e){const a=e[n];let s;Ye(a)?"default"in a?s=ze(a.from||n,a.default,!0):s=ze(a.from||n):s=ze(a),pt(s)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:r=>s.value=r}):t[n]=s}}function Zi(e,t,o){Bt(Re(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function Ji(e,t,o,n){let a=n.includes(".")?ji(o,n):()=>o[n];if(ot(e)){const s=t[e];Oe(s)&<(a,s)}else if(Oe(e))lt(a,e.bind(o));else if(Ye(e))if(Re(e))e.forEach(s=>Ji(s,t,o,n));else{const s=Oe(e.handler)?e.handler.bind(o):t[e.handler];Oe(s)&<(a,s,e)}}function Qi(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=>Na(l,c,r,!0)),Na(l,t,r)),Ye(t)&&s.set(t,l),l}function Na(e,t,o,n=!1){const{mixins:a,extends:s}=t;s&&Na(e,s,o,!0),a&&a.forEach(r=>Na(e,r,o,!0));for(const r in t)if(!(n&&r==="expose")){const i=Lp[r]||o&&o[r];e[r]=i?i(e[r],t[r]):t[r]}return e}const Lp={data:el,props:tl,emits:tl,methods:Un,computed:Un,beforeCreate:wt,created:wt,beforeMount:wt,mounted:wt,beforeUpdate:wt,updated:wt,beforeDestroy:wt,beforeUnmount:wt,destroyed:wt,unmounted:wt,activated:wt,deactivated:wt,errorCaptured:wt,serverPrefetch:wt,components:Un,directives:Un,watch:Sp,provide:el,inject:Ap};function el(e,t){return t?e?function(){return st(Oe(e)?e.call(this,this):e,Oe(t)?t.call(this,this):t)}:t:e}function Ap(e,t){return Un(js(e),js(t))}function js(e){if(Re(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Pt(t)}Modifiers`]||e[`${Rt(t)}Modifiers`];function Tp(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||Je;let a=o;const s=t.startsWith("update:"),r=s&&Cp(n,t.slice(7));r&&(r.trim&&(a=o.map(u=>ot(u)?u.trim():u)),r.number&&(a=a.map(gs)));let i,l=n[i=ps(t)]||n[i=ps(Pt(t))];!l&&s&&(l=n[i=ps(Rt(t))]),l&&Bt(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,Bt(c,e,6,a)}}const Rp=new WeakMap;function nl(e,t,o=!1){const n=o?Rp:t.emitsCache,a=n.get(e);if(a!==void 0)return a;const s=e.emits;let r={},i=!1;if(!Oe(e)){const l=c=>{const u=nl(c,t,!0);u&&(i=!0,st(r,u))};!o&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!s&&!i?(Ye(e)&&n.set(e,null),null):(Re(s)?s.forEach(l=>r[l]=null):st(r,s),Ye(e)&&n.set(e,r),r)}function Oa(e,t){return!e||!da(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Xe(e,t[0].toLowerCase()+t.slice(1))||Xe(e,Rt(t))||Xe(e,t))}function Jx(){}function al(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[s],slots:r,attrs:i,emit:l,render:c,renderCache:u,props:p,data:g,setupState:y,ctx:A,inheritAttrs:k}=e,S=Pa(e);let C,f;try{if(o.shapeFlag&4){const d=a||n,$=d;C=ao(c.call($,d,u,p,y,g,A)),f=i}else{const d=t;C=ao(d.length>1?d(p,{attrs:i,slots:r,emit:l}):d(p,null)),f=t.props?i:Np(i)}}catch(d){ho.length=0,Aa(d,e,1),C=Ue(no)}let b=C;if(f&&k!==!1){const d=Object.keys(f),{shapeFlag:$}=b;d.length&&$&7&&(s&&d.some(pa)&&(f=Op(f,s)),b=cn(b,f,!1,!0))}if(o.dirs&&(b=cn(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(o.dirs):o.dirs),o.transition){const d=Ea(b.type)&&Bi(b)||b;Ns(d,o.transition)}return C=b,Pa(S),C}const Np=e=>{let t;for(const o in e)(o==="class"||o==="style"||da(o))&&((t||(t={}))[o]=e[o]);return t},Op=(e,t)=>{const o={};for(const n in e)(!pa(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function Fp(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?sl(n,r,c):!!r;if(l&8){const u=t.dynamicProps;for(let p=0;pObject.create(il),cl=e=>Object.getPrototypeOf(e)===il;function Ip(e,t,o,n=!1){const a={},s=ll();e.propsDefaults=Object.create(null),ul(e,t,a,s);for(const r in e.propsOptions[0])r in a||(a[r]=void 0);o?e.props=n?a:Vd(a):e.type.props?e.props=a:e.props=s,e.attrs=s}function Dp(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 p=0;p{l=!0;const[g,y]=dl(p,t,!0);st(r,g),y&&i.push(...y)};!o&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!s&&!l)return Ye(e)&&n.set(e,en),en;if(Re(s))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",Us=e=>Re(e)?e.map(ao):[ao(e)],zp=(e,t,o)=>{if(t._n)return t;const n=Eo((...a)=>Us(t(...a)),o);return n._c=!1,n},gl=(e,t,o)=>{const n=e._ctx;for(const a in e){if(Gs(a))continue;const s=e[a];if(Oe(s))t[a]=zp(a,s,n);else if(s!=null){const r=Us(s);t[a]=()=>r}}},fl=(e,t)=>{const o=Us(t);e.slots.default=()=>o},hl=(e,t,o)=>{for(const n in t)(o||!Gs(n))&&(e[n]=t[n])},Gp=(e,t,o)=>{const n=e.slots=ll();if(e.vnode.shapeFlag&32){const a=t._;a?(hl(n,t,o),o&&ti(n,"_",a,!0)):gl(t,n)}else t&&fl(e,t)},Up=(e,t,o)=>{const{vnode:n,slots:a}=e;let s=!0,r=Je;if(n.shapeFlag&32){const i=t._;i?o&&i===1?s=!1:hl(a,t,o):(s=!t.$stable,gl(t,a)),r=t}else t&&(fl(e,t),r={default:1});if(s)for(const i in a)!Gs(i)&&r[i]==null&&delete a[i]},xt=Hp;function Bp(e){return Vp(e)}function Vp(e,t){const o=ba();o.__VUE__=!0;const{insert:n,remove:a,patchProp:s,createElement:r,createText:i,createComment:l,setText:c,setElementText:u,parentNode:p,nextSibling:g,setScopeId:y=Yt,insertStaticContent:A}=e,k=(_,P,x,G=null,ee=null,te=null,le=void 0,oe=null,h=!!P.dynamicChildren)=>{if(_===P)return;_&&!Wn(_,P)&&(G=$e(_),D(_,ee,te,!0),_=null),P.patchFlag===-2&&(h=!1,P.dynamicChildren=null);const{type:m,ref:v,shapeFlag:E}=P;switch(m){case Bn:S(_,P,x,G);break;case no:C(_,P,x,G);break;case qs:_==null&&f(P,x,G,le);break;case Ce:Y(_,P,x,G,ee,te,le,oe,h);break;default:E&1?$(_,P,x,G,ee,te,le,oe,h):E&6?fe(_,P,x,G,ee,te,le,oe,h):(E&64||E&128)&&m.process(_,P,x,G,ee,te,le,oe,h,_e)}v!=null&&ee?zn(v,_&&_.ref,te,P||_,!P):v==null&&_&&_.ref!=null&&zn(_.ref,null,te,_,!0)},S=(_,P,x,G)=>{if(_==null)n(P.el=i(P.children),x,G);else{const ee=P.el=_.el;P.children!==_.children&&c(ee,P.children)}},C=(_,P,x,G)=>{_==null?n(P.el=l(P.children||""),x,G):P.el=_.el},f=(_,P,x,G)=>{[_.el,_.anchor]=A(_.children,P,x,G,_.el,_.anchor)},b=({el:_,anchor:P},x,G)=>{let ee;for(;_&&_!==P;)ee=g(_),n(_,x,G),_=ee;n(P,x,G)},d=({el:_,anchor:P})=>{let x;for(;_&&_!==P;)x=g(_),a(_),_=x;a(P)},$=(_,P,x,G,ee,te,le,oe,h)=>{if(P.type==="svg"?le="svg":P.type==="math"&&(le="mathml"),_==null)L(P,x,G,ee,te,le,oe,h);else{const m=_.el&&_.el._isVueCE?_.el:null;try{m&&m._beginPatch(),U(_,P,ee,te,le,oe,h)}finally{m&&m._endPatch()}}},L=(_,P,x,G,ee,te,le,oe)=>{let h,m;const{props:v,shapeFlag:E,transition:q,dirs:W}=_;if(h=_.el=r(_.type,te,v&&v.is,v),E&8?u(h,_.children):E&16&&F(_.children,h,null,G,ee,Bs(_,te),le,oe),W&&qo(_,null,G,"created"),w(h,_,_.scopeId,le,G),v){for(const j in v)j!=="value"&&!Pn(j)&&s(h,j,null,v[j],te,G);"value"in v&&s(h,"value",null,v.value,te),(m=v.onVnodeBeforeMount)&&so(m,G,_)}W&&qo(_,null,G,"beforeMount");const T=qp(ee,q);T&&q.beforeEnter(h),n(h,P,x),((m=v&&v.onVnodeMounted)||T||W)&&xt(()=>{try{m&&so(m,G,_),T&&q.enter(h),W&&qo(_,null,G,"mounted")}finally{}},ee)},w=(_,P,x,G,ee)=>{if(x&&y(_,x),G)for(let te=0;te{for(let m=h;m<_.length;m++){const v=_[m]=oe?mo(_[m]):ao(_[m]);k(null,v,P,x,G,ee,te,le,oe)}},U=(_,P,x,G,ee,te,le)=>{const oe=P.el=_.el;let{patchFlag:h,dynamicChildren:m,dirs:v}=P;h|=_.patchFlag&16;const E=_.props||Je,q=P.props||Je;let W;if(x&&Ko(x,!1),(W=q.onVnodeBeforeUpdate)&&so(W,x,P,_),v&&qo(P,_,x,"beforeUpdate"),x&&Ko(x,!0),m&&(!_.dynamicChildren||_.dynamicChildren.length!==m.length)&&(h=0,le=!1,m=null),(E.innerHTML&&q.innerHTML==null||E.textContent&&q.textContent==null)&&u(oe,""),m?ne(_.dynamicChildren,m,oe,x,G,Bs(P,ee),te):le||se(_,P,oe,null,x,G,Bs(P,ee),te,!1),h>0){if(h&16)z(oe,E,q,x,ee);else if(h&2&&E.class!==q.class&&s(oe,"class",null,q.class,ee),h&4&&s(oe,"style",E.style,q.style,ee),h&8){const T=P.dynamicProps;for(let j=0;j{W&&so(W,x,P,_),v&&qo(P,_,x,"updated")},G)},ne=(_,P,x,G,ee,te,le)=>{for(let oe=0;oe{if(P!==x){if(P!==Je)for(const te in P)!Pn(te)&&!(te in x)&&s(_,te,P[te],null,ee,G);for(const te in x){if(Pn(te))continue;const le=x[te],oe=P[te];le!==oe&&te!=="value"&&s(_,te,oe,le,ee,G)}"value"in x&&s(_,"value",P.value,x.value,ee)}},Y=(_,P,x,G,ee,te,le,oe,h)=>{const m=P.el=_?_.el:i(""),v=P.anchor=_?_.anchor:i("");let{patchFlag:E,dynamicChildren:q,slotScopeIds:W}=P;W&&(oe=oe?oe.concat(W):W),_==null?(n(m,x,G),n(v,x,G),F(P.children||[],x,v,ee,te,le,oe,h)):E>0&&E&64&&q&&_.dynamicChildren&&_.dynamicChildren.length===q.length?(ne(_.dynamicChildren,q,x,ee,te,le,oe),(P.key!=null||ee&&P===ee.subTree)&&Vs(_,P,!0)):se(_,P,x,v,ee,te,le,oe,h)},fe=(_,P,x,G,ee,te,le,oe,h)=>{P.slotScopeIds=oe,_==null?P.shapeFlag&512?ee.ctx.activate(P,x,G,le,h):M(P,x,G,ee,te,le,h):Q(_,P,h)},M=(_,P,x,G,ee,te,le)=>{const oe=_.component=Qp(_,G,ee);if(Os(_)&&(oe.ctx.renderer=_e),eg(oe,!1,le),oe.asyncDep){if(ee&&ee.registerDep(oe,X,le),!_.el){const h=oe.subTree=Ue(no);C(null,h,P,x),_.placeholder=h.el}}else X(oe,_,P,x,ee,te,le)},Q=(_,P,x)=>{const G=P.component=_.component;if(Fp(_,P,x))if(G.asyncDep&&!G.asyncResolved){B(G,P,x);return}else G.next=P,G.update();else P.el=_.el,G.vnode=P},X=(_,P,x,G,ee,te,le)=>{const oe=()=>{if(_.isMounted){let{next:E,bu:q,u:W,parent:T,vnode:j}=_;{const Ke=ml(_);if(Ke){E&&(E.el=j.el,B(_,E,le)),Ke.asyncDep.then(()=>{xt(()=>{_.isUnmounted||m()},ee)});return}}let ie=E,we;Ko(_,!1),E?(E.el=j.el,B(_,E,le)):E=j,q&&ma(q),(we=E.props&&E.props.onVnodeBeforeUpdate)&&so(we,T,E,j),Ko(_,!0);const Ne=al(_),Ve=_.subTree;_.subTree=Ne,k(Ve,Ne,p(Ve.el),$e(Ve),_,ee,te),E.el=Ne.el,ie===null&&Mp(_,Ne.el),W&&xt(W,ee),(we=E.props&&E.props.onVnodeUpdated)&&xt(()=>so(we,T,E,j),ee)}else{let E;const{el:q,props:W}=P,{bm:T,m:j,parent:ie,root:we,type:Ne}=_,Ve=rn(P);Ko(_,!1),T&&ma(T),!Ve&&(E=W&&W.onVnodeBeforeMount)&&so(E,ie,P),Ko(_,!0);{we.ce&&we.ce._hasShadowRoot()&&we.ce._injectChildStyle(Ne,_.parent?_.parent.type:void 0);const Ke=_.subTree=al(_);k(null,Ke,x,G,_,ee,te),P.el=Ke.el}if(j&&xt(j,ee),!Ve&&(E=W&&W.onVnodeMounted)){const Ke=P;xt(()=>so(E,ie,Ke),ee)}(P.shapeFlag&256||ie&&rn(ie.vnode)&&ie.vnode.shapeFlag&256)&&_.a&&xt(_.a,ee),_.isMounted=!0,P=x=G=null}};_.scope.on();const h=_.effect=new ui(oe);_.scope.off();const m=_.update=h.run.bind(h),v=_.job=h.runIfDirty.bind(h);v.i=_,v.id=_.uid,h.scheduler=()=>Es(v),Ko(_,!0),m()},B=(_,P,x)=>{P.component=_;const G=_.vnode.props;_.vnode=P,_.next=null,Dp(_,P.props,G,x),Up(_,P.children,x),Jt(),Oi(_),Qt()},se=(_,P,x,G,ee,te,le,oe,h=!1)=>{const m=_&&_.children,v=_?_.shapeFlag:0,E=P.children,{patchFlag:q,shapeFlag:W}=P;if(q>0){if(q&128){O(m,E,x,G,ee,te,le,oe,h);return}else if(q&256){I(m,E,x,G,ee,te,le,oe,h);return}}W&8?(v&16&&be(m,ee,te),E!==m&&u(x,E)):v&16?W&16?O(m,E,x,G,ee,te,le,oe,h):be(m,ee,te,!0):(v&8&&u(x,""),W&16&&F(E,x,G,ee,te,le,oe,h))},I=(_,P,x,G,ee,te,le,oe,h)=>{_=_||en,P=P||en;const m=_.length,v=P.length,E=Math.min(m,v);let q;for(q=0;qv?be(_,ee,te,!0,!1,E):F(P,x,G,ee,te,le,oe,h,E)},O=(_,P,x,G,ee,te,le,oe,h)=>{let m=0;const v=P.length;let E=_.length-1,q=v-1;for(;m<=E&&m<=q;){const W=_[m],T=P[m]=h?mo(P[m]):ao(P[m]);if(Wn(W,T))k(W,T,x,null,ee,te,le,oe,h);else break;m++}for(;m<=E&&m<=q;){const W=_[E],T=P[q]=h?mo(P[q]):ao(P[q]);if(Wn(W,T))k(W,T,x,null,ee,te,le,oe,h);else break;E--,q--}if(m>E){if(m<=q){const W=q+1,T=Wq)for(;m<=E;)D(_[m],ee,te,!0),m++;else{const W=m,T=m,j=new Map;for(m=T;m<=q;m++){const K=P[m]=h?mo(P[m]):ao(P[m]);K.key!=null&&j.set(K.key,m)}let ie,we=0;const Ne=q-T+1;let Ve=!1,Ke=0;const ft=new Array(Ne);for(m=0;m=Ne){D(K,ee,te,!0);continue}let me;if(K.key!=null)me=j.get(K.key);else for(ie=T;ie<=q;ie++)if(ft[ie-T]===0&&Wn(K,P[ie])){me=ie;break}me===void 0?D(K,ee,te,!0):(ft[me-T]=m+1,me>=Ke?Ke=me:Ve=!0,k(K,P[me],x,null,ee,te,le,oe,h),we++)}const bt=Ve?Wp(ft):en;for(ie=bt.length-1,m=Ne-1;m>=0;m--){const K=T+m,me=P[K],ve=P[K+1],Ie=K+1{const{el:te,type:le,transition:oe,children:h,shapeFlag:m}=_;if(m&6){V(_.component.subTree,P,x,G);return}if(m&128){_.suspense.move(P,x,G);return}if(m&64){le.move(_,P,x,_e);return}if(le===Ce){n(te,P,x);for(let E=0;Eoe.enter(te),ee));else{const{leave:E,delayLeave:q,afterLeave:W}=oe,T=()=>{_.ctx.isUnmounted?a(te):n(te,P,x)},j=()=>{const ie=te._isLeaving||!!te[Rs];te._isLeaving&&te[Rs](!0),oe.persisted&&!ie?T():E(te,()=>{T(),W&&W()})};q?q(te,T,j):j()}else n(te,P,x)},D=(_,P,x,G=!1,ee=!1)=>{const{type:te,props:le,ref:oe,children:h,dynamicChildren:m,shapeFlag:v,patchFlag:E,dirs:q,cacheIndex:W,memo:T}=_;if(E===-2&&(ee=!1),oe!=null&&(Jt(),zn(oe,null,x,_,!0),Qt()),W!=null&&(P.renderCache[W]=void 0),v&256){P.ctx.deactivate(_);return}const j=v&1&&q,ie=!rn(_);let we;if(ie&&(we=le&&le.onVnodeBeforeUnmount)&&so(we,P,_),v&6)ke(_.component,x,G);else{if(v&128){_.suspense.unmount(x,G);return}j&&qo(_,null,P,"beforeUnmount"),v&64?_.type.remove(_,P,x,_e,G):m&&!m.hasOnce&&(te!==Ce||E>0&&E&64)?be(m,P,x,!1,!0):(te===Ce&&E&384||!ee&&v&16)&&be(h,P,x),G&&ae(_)}const Ne=T!=null&&W==null;(ie&&(we=le&&le.onVnodeUnmounted)||j||Ne)&&xt(()=>{we&&so(we,P,_),j&&qo(_,null,P,"unmounted"),Ne&&(_.el=null)},x)},ae=_=>{const{type:P,el:x,anchor:G,transition:ee}=_;if(P===Ce){ge(x,G);return}if(P===qs){d(_);return}const te=()=>{a(x),ee&&!ee.persisted&&ee.afterLeave&&ee.afterLeave()};if(_.shapeFlag&1&&ee&&!ee.persisted){const{leave:le,delayLeave:oe}=ee,h=()=>le(x,te);oe?oe(_.el,te,h):h()}else te()},ge=(_,P)=>{let x;for(;_!==P;)x=g(_),a(_),_=x;a(P)},ke=(_,P,x)=>{const{bum:G,scope:ee,job:te,subTree:le,um:oe,m:h,a:m}=_;bl(h),bl(m),G&&ma(G),ee.stop(),te&&(te.flags|=8,D(le,_,P,x)),oe&&xt(oe,P),xt(()=>{_.isUnmounted=!0},P)},be=(_,P,x,G=!1,ee=!1,te=0)=>{for(let le=te;le<_.length;le++)D(_[le],P,x,G,ee)},$e=_=>{if(_.shapeFlag&6)return $e(_.component.subTree);if(_.shapeFlag&128)return _.suspense.next();const P=g(_.anchor||_.el),x=P&&P[zi];return x?g(x):P};let Pe=!1;const ce=(_,P,x)=>{let G;_==null?P._vnode&&(D(P._vnode,null,null,!0),G=P._vnode.component):k(P._vnode||null,_,P,null,null,null,x),P._vnode=_,Pe||(Pe=!0,Oi(G),Fi(),Pe=!1)},_e={p:k,um:D,m:V,r:ae,mt:M,mc:F,pc:se,pbc:ne,n:$e,o:e};return{render:ce,hydrate:void 0,createApp:Ep(ce)}}function Bs({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 Ko({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function qp(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Vs(e,t,o=!1){const n=e.children,a=t.children;if(Re(n)&&Re(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 ml(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ml(t)}function bl(e){if(e)for(let t=0;te.__isSuspense;function Hp(e,t){t&&t.pendingBranch?Re(e)?t.effects.push(...e):t.effects.push(e):np(e)}const Ce=Symbol.for("v-fgt"),Bn=Symbol.for("v-txt"),no=Symbol.for("v-cmt"),qs=Symbol.for("v-stc"),ho=[];let Nt=null;function H(e=!1){ho.push(Nt=e?null:[])}function Ws(){ho.pop(),Nt=ho[ho.length-1]||null}let Vn=1;function Fa(e,t=!1){Vn+=e,e<0&&Nt&&t&&(Nt.hasOnce=!0)}function yl(e){return e.dynamicChildren=Vn>0?Nt||en:null,Ws(),Vn>0&&Nt&&Nt.push(e),e}function Z(e,t,o,n,a,s){return yl(R(e,t,o,n,a,s,!0))}function To(e,t,o,n,a){return yl(Ue(e,t,o,n,a,!0))}function qn(e){return e?e.__v_isVNode===!0:!1}function Wn(e,t){return e.type===t.type&&e.key===t.key}const vl=({key:e})=>e??null,Ma=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?ot(e)||pt(e)||Oe(e)?{i:_t,r:e,k:t,f:!!o}:e:null);function R(e,t=null,o=null,n=0,a=null,s=e===Ce?0:1,r=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&vl(t),ref:t&&Ma(t),scopeId:Ii,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:_t};return i?(Ia(l,o),s&128&&e.normalize(l)):o&&(l.shapeFlag|=ot(o)?8:16),Vn>0&&!r&&Nt&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&Nt.push(l),l}const Ue=Kp;function Kp(e,t=null,o=null,n=0,a=null,s=!1){if((!e||e===vp)&&(e=no),qn(e)){const i=cn(e,t,!0);return o&&Ia(i,o),Vn>0&&!s&&Nt&&(i.shapeFlag&6?Nt[Nt.indexOf(e)]=i:Nt.push(i)),i.patchFlag=-2,i}if(ig(e)&&(e=e.__vccOpts),t){t=Xp(t);let{class:i,style:l}=t;i&&!ot(i)&&(t.class=qe(i)),Ye(l)&&(Ss(l)&&!Re(l)&&(l=st({},l)),t.style=rt(l))}const r=ot(e)?1:_l(e)?128:Ea(e)?64:Ye(e)?4:Oe(e)?2:0;return R(e,t,o,n,a,r,s,!0)}function Xp(e){return e?Ss(e)||cl(e)?st({},e):e:null}function cn(e,t,o=!1,n=!1){const{props:a,ref:s,patchFlag:r,children:i,transition:l}=e,c=t?Yp(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&vl(c),ref:t&&t.ref?o&&s?Re(s)?s.concat(Ma(t)):[s,Ma(t)]:Ma(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!==Ce?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&&cn(e.ssContent),ssFallback:e.ssFallback&&cn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&Ns(u,l.clone(u)),u}function ct(e=" ",t=0){return Ue(Bn,null,e,t)}function Fe(e="",t=!1){return t?(H(),To(no,null,e)):Ue(no,null,e)}function ao(e){return e==null||typeof e=="boolean"?Ue(no):Re(e)?Ue(Ce,null,e.slice()):qn(e)?mo(e):Ue(Bn,null,String(e))}function mo(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:cn(e)}function Ia(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(Re(t))o=16;else if(typeof t=="object")if(n&65){const a=t.default;a&&(a._c&&(a._d=!1),Ia(e,a()),a._c&&(a._d=!0));return}else{o=32;const a=t._;!a&&!cl(t)?t._ctx=_t:a===3&&_t&&(_t.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Oe(t)){if(n&65){Ia(e,{default:t});return}t={default:t,_ctx:_t},o=32}else t=String(t),n&64?(o=16,t=[ct(t)]):o=8;e.children=t,e.shapeFlag|=o}function Yp(...e){const t={};for(let o=0;okt||_t;let Da,Hn;{const e=ba(),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)}};Da=t("__VUE_INSTANCE_SETTERS__",o=>kt=o),Hn=t("__VUE_SSR_SETTERS__",o=>Xn=o)}const Kn=e=>{const t=kt;return Da(e),e.scope.on(),()=>{e.scope.off(),Da(t)}},wl=()=>{kt&&kt.scope.off(),Da(null)};function xl(e){return e.vnode.shapeFlag&4}let Xn=!1;function eg(e,t=!1,o=!1){t&&Hn(t);const{props:n,children:a}=e.vnode,s=xl(e);Ip(e,n,s,t),Gp(e,a,o||t);const r=s?tg(e,t):void 0;return t&&Hn(!1),r}function tg(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,wp);const{setup:n}=o;if(n){Jt();const a=e.setupContext=n.length>1?ng(e):null,s=Kn(e),r=nn(n,e,0,[e.props,a]),i=Jr(r);if(Qt(),s(),(i||e.sp)&&!rn(e)&&Vi(e),i){if(r.then(wl,wl),t)return r.then(l=>{Hn(!0);try{kl(e,l,t)}finally{Hn(!1)}}).catch(l=>{Aa(l,e,0)});e.asyncDep=r}else kl(e,r)}else Ll(e)}function kl(e,t,o){Oe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ye(t)&&(e.setupState=Ci(t)),Ll(e)}function Ll(e,t,o){const n=e.type;e.render||(e.render=n.render||Yt);{const a=Kn(e);Jt();try{xp(e)}finally{Qt(),a()}}}const og={get(e,t){return $t(e,"get",""),e[t]}};function ng(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,og),slots:e.slots,emit:e.emit,expose:t}}function ja(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ci(Pi(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in Gn)return Gn[o](e)},has(t,o){return o in t||o in Gn}})):e.proxy}const ag=/(?:^|[-_])\w/g,sg=e=>e.replace(ag,t=>t.toUpperCase()).replace(/[-_]/g,"");function rg(e,t=!0){return Oe(e)?e.displayName||e.name:e.name||t&&e.__name}function Al(e,t,o=!1){let n=rg(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?sg(n):o?"App":"Anonymous"}function ig(e){return Oe(e)&&"__vccOpts"in e}const re=(e,t)=>Kd(e,t,Xn);function Sl(e,t,o){try{Fa(-1);const n=arguments.length;return n===2?Ye(t)&&!Re(t)?qn(t)?Ue(e,null,[t]):Ue(e,t):Ue(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&qn(o)&&(o=[o]),Ue(e,t,o))}finally{Fa(1)}}const lg="3.5.42";/** +`,...ep(a)),console.warn(...s)}Qt(),Ps=!1}function Qd(){let e=Fn[Fn.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 ep(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[` +`],...tp(o))}),t}function tp({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${Al(e.component,e.type,n)}`,s=">"+o;return e.props?[a,...op(e.props),s]:[a+s]}function op(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...Ti(n,e[n]))}),o.length>3&&t.push(" ..."),t}function Ti(e,t,o){return ot(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:pt(t)?(t=Ti(e,We(t.value),!0),o?t:[`${e}=Ref<`,t,">"]):Oe(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=We(t),o?t:[`${e}=`,t])}function an(e,t,o,n){try{return n?e(...n):e()}catch(a){Aa(a,t,o)}}function Bt(e,t,o,n){if(Oe(e)){const a=an(e,t,o,n);return a&&Jr(a)&&a.catch(s=>{Aa(s,t,o)}),a}if(Re(e)){const a=[];for(let s=0;s>>1,a=vt[n],s=In(a);s=In(o)?vt.push(e):vt.splice(ap(t),0,e),e.flags|=1,Ni()}}function Ni(){Sa||(Sa=Ri.then(Mi))}function sp(e){if(!Re(e))Po&&e.id===-1?Po.splice(rn+1,0,e):e.flags&1||(sn.push(e),e.flags|=1);else for(let t=0;tIn(o)-In(n));if(sn.length=0,Po){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function Mi(e){try{for(to=0;to{n._d&&Fa(-1);const s=Pa(t),r=ho.length;let i;try{i=e(...a)}finally{for(let l=ho.length;l>r;l--)Ws();Pa(s),n._d&&Fa(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function Mt(e,t){if(_t===null)return e;const o=ja(_t),n=e.dirs||(e.dirs=[]);for(let a=0;a1)return o&&Oe(t)?t.call(n&&n.proxy):t}}const rp=Symbol.for("v-scx"),ip=()=>ze(rp);function it(e,t,o){return Di(e,t,o)}function Di(e,t,o=Je){const{immediate:n,deep:a,flush:s,once:r}=o,i=st({},o),l=t&&n||!t&&s!=="post";let c;if(Xn){if(s==="sync"){const y=ip();c=y.__watcherHandles||(y.__watcherHandles=[])}else if(!l){const y=()=>{};return y.stop=Yt,y.resume=Yt,y.pause=Yt,y}}const u=kt;i.call=(y,A,k)=>Bt(y,u,A,k);let p=!1;s==="post"?i.scheduler=y=>{xt(y,u&&u.suspense)}:s!=="sync"&&(p=!0,i.scheduler=(y,A)=>{A?y():Es(y)}),i.augmentJob=y=>{t&&(y.flags|=4),p&&(y.flags|=2,u&&(y.id=u.uid,y.i=u))};const g=Jd(e,t,i);return Xn&&(c?c.push(g):l&&g()),g}function lp(e,t,o){const n=this.proxy,a=ot(e)?e.includes(".")?ji(n,e):()=>n[e]:e.bind(n,n);let s;Oe(t)?s=t:(s=t.handler,o=t);const r=Kn(this),i=Di(a,s.bind(n),o);return r(),i}function ji(e,t){const o=t.split(".");return()=>{let n=e;for(let a=0;ae.__isTeleport,Wo=e=>e&&(e.disabled||e.disabled===""),cp=e=>e&&(e.defer||e.defer===""),Gi=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Ui=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Cs=(e,t)=>{const o=e&&e.to;return ot(o)?t?t(o):null:o},up={name:"Teleport",__isTeleport:!0,process(e,t,o,n,a,s,r,i,l,c){const{mc:u,pc:p,pbc:g,o:{insert:y,querySelector:A,createText:k,createComment:S,parentNode:C}}=c,f=Wo(t.props);let{dynamicChildren:b}=t;const d=(w,F,D)=>{w.shapeFlag&16&&u(w.children,F,D,a,s,r,i,l)},$=(w=t)=>{const F=Wo(w.props),D=w.target=Cs(w.props,A),ne=Ts(D,w,k,y);D&&(r!=="svg"&&Gi(D)?r="svg":r!=="mathml"&&Ui(D)&&(r="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(D),F||(d(w,D,ne),Dn(w,!1)))},L=w=>{const F=()=>{if(Co.get(w)===F){if(Co.delete(w),Wo(w.props)){const D=C(w.el)||o;d(w,D,w.anchor),Dn(w,!0)}$(w)}};Co.set(w,F),xt(F,s)};if(e==null){const w=t.el=k(""),F=t.anchor=k("");if(y(w,o,n),y(F,o,n),cp(t.props)||s&&s.pendingBranch){L(t);return}f&&(d(t,o,F),Dn(t,!0)),$()}else{t.el=e.el;const w=t.anchor=e.anchor,F=Co.get(e);if(F){F.flags|=8,Co.delete(e),L(t);return}t.targetStart=e.targetStart;const D=t.target=e.target,ne=t.targetAnchor=e.targetAnchor,B=Wo(e.props),Y=B?o:D,pe=B?w:ne;if(r==="svg"||Gi(D)?r="svg":(r==="mathml"||Ui(D))&&(r="mathml"),b?(g(e.dynamicChildren,b,Y,a,s,r,i),Vs(e,t,!0)):l||p(e,t,Y,pe,a,s,r,i,!1),f)B?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Ca(t,o,w,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const M=Cs(t.props,A);M&&(t.target=M,Ca(t,M,null,c,0))}else B&&Ca(t,D,ne,c,1);Dn(t,f)}},remove(e,t,o,{um:n,o:{remove:a}},s){const{shapeFlag:r,children:i,anchor:l,targetStart:c,targetAnchor:u,target:p,props:g}=e,y=Wo(g),A=s||!y,k=Co.get(e);if(k&&(k.flags|=8,Co.delete(e)),p&&(a(c),a(u)),s&&a(l),!k&&(y||p)&&r&16)for(let S=0;S1){for(const o of e)if(o.type!==no){t=o;break}}return t}function Bi(e){if(!Os(e))return Ea(e.type)&&e.children?gp(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&&Oe(o.default))return o.default()}}function Ns(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;Ns(Ea(o.type)&&Bi(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 jn(e,t){return Oe(e)?st({name:e.name},t,{setup:e}):e}function Vi(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function qi(e,t){let o;return!!((o=Object.getOwnPropertyDescriptor(e,t))&&!o.configurable)}const Ta=new WeakMap;function zn(e,t,o,n,a=!1){if(Re(e)){e.forEach((k,S)=>zn(k,t&&(Re(t)?t[S]:t),o,n,a));return}if(ln(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&zn(e,t,o,n.component.subTree);return}const s=n.shapeFlag&4?ja(n.component):n.el,r=a?null:s,{i,r:l}=e,c=t&&t.r,u=i.refs===Je?i.refs={}:i.refs,p=i.setupState,g=We(p),y=p===Je?Yr:k=>qi(u,k)?!1:Xe(g,k),A=(k,S)=>!(S&&qi(u,S));if(c!=null&&c!==l){if(Wi(t),ot(c))u[c]=null,y(c)&&(p[c]=null);else if(pt(c)){const k=t;A(c,k.k)&&(c.value=null),k.k&&(u[k.k]=null)}}if(Oe(l))an(l,i,12,[r,u]);else{const k=ot(l),S=pt(l);if(k||S){const C=()=>{if(e.f){const f=k?y(l)?p[l]:u[l]:A()||!e.k?l.value:u[e.k];if(a)Re(f)&&us(f,s);else if(Re(f))f.includes(s)||f.push(s);else if(k)u[l]=[s],y(l)&&(p[l]=u[l]);else{const b=[s];A(l,e.k)&&(l.value=b),e.k&&(u[e.k]=b)}}else k?(u[l]=r,y(l)&&(p[l]=r)):S&&(A(l,e.k)&&(l.value=r),e.k&&(u[e.k]=r))};if(r){const f=()=>{C(),Ta.delete(e)};f.id=-1,Ta.set(e,f),xt(f,o)}else Wi(e),C()}}}function Wi(e){const t=Ta.get(e);t&&(t.flags|=8,Ta.delete(e))}ba().requestIdleCallback,ba().cancelIdleCallback;const ln=e=>!!e.type.__asyncLoader,Os=e=>e.type.__isKeepAlive;function fp(e,t){Hi(e,"a",t)}function hp(e,t){Hi(e,"da",t)}function Hi(e,t,o=kt){const n=e.__wdc||(e.__wdc=()=>{let a=o;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Ra(t,n,o),o){let a=o.parent;for(;a&&a.parent;)Os(a.parent.vnode)&&mp(n,t,o,a),a=a.parent}}function mp(e,t,o,n){const a=Ra(t,e,n,!0);Fs(()=>{us(n[t],a)},o)}function Ra(e,t,o=kt,n=!1){if(o){const a=o[e]||(o[e]=[]),s=t.__weh||(t.__weh=(...r)=>{Jt();const i=Kn(o),l=Bt(t,o,e,r);return i(),Qt(),l});return n?a.unshift(s):a.push(s),s}}const fo=e=>(t,o=kt)=>{(!Xn||e==="sp")&&Ra(e,(...n)=>t(...n),o)},Ki=fo("bm"),yt=fo("m"),bp=fo("bu"),$p=fo("u"),It=fo("bum"),Fs=fo("um"),_p=fo("sp"),yp=fo("rtg"),vp=fo("rtc");function wp(e,t=kt){Ra("ec",e,t)}const xp=Symbol.for("v-ndc");function et(e,t,o,n){let a;const s=o,r=Re(e);if(r||ot(e)){const i=r&&Bo(e);let l=!1,c=!1;i&&(l=!Ft(e),c=po(e),e=_a(e)),a=new Array(e.length);for(let u=0,p=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),H(),To(Ce,null,[Ue("slot",c,n)],u?-2:64)}let r=e[t];r&&r._c&&(r._d=!1);const i=ho.length;H();let l;try{const c=r&&Xi(r(o)),u=o.key||s||c&&c.key;l=To(Ce,{key:(u&&!zt(u)?u:`_${t}`)+(!c&&n?"_fb":"")},c||(n?n():[]),c&&e._===1?64:-2)}catch(c){for(let u=ho.length;u>i;u--)Ws();throw c}finally{r&&r._c&&(r._d=!0)}return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function Xi(e){return e.some(t=>qn(t)?!(t.type===no||t.type===Ce&&!Xi(t.children)):!0)?e:null}const Ms=e=>e?xl(e)?ja(e):Ms(e.parent):null,Gn=st(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=>Ms(e.parent),$root:e=>Ms(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Qi(e),$forceUpdate:e=>e.f||(e.f=()=>{Es(e.update)}),$nextTick:e=>e.n||(e.n=Mn.bind(e.proxy)),$watch:e=>lp.bind(e)}),Is=(e,t)=>e!==Je&&!e.__isScriptSetup&&Xe(e,t),kp={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 g=r[t];if(g!==void 0)switch(g){case 1:return n[t];case 2:return a[t];case 4:return o[t];case 3:return s[t]}else{if(Is(n,t))return r[t]=1,n[t];if(a!==Je&&Xe(a,t))return r[t]=2,a[t];if(Xe(s,t))return r[t]=3,s[t];if(o!==Je&&Xe(o,t))return r[t]=4,o[t];Ds&&(r[t]=0)}}const c=Gn[t];let u,p;if(c)return t==="$attrs"&&$t(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(o!==Je&&Xe(o,t))return r[t]=4,o[t];if(p=l.config.globalProperties,Xe(p,t))return p[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:s}=e;return Is(a,t)?(a[t]=o,!0):n!==Je&&Xe(n,t)?(n[t]=o,!0):Xe(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!==Je&&i[0]!=="$"&&Xe(e,i)||Is(t,i)||Xe(s,i)||Xe(n,i)||Xe(Gn,i)||Xe(a.config.globalProperties,i)||(l=r.__cssModules)&&l[i])},defineProperty(e,t,o){return o.get!=null?e._.accessCache[t]=0:Xe(o,"value")&&this.set(e,t,o.value,null),Reflect.defineProperty(e,t,o)}};function Yi(e){return Re(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let Ds=!0;function Lp(e){const t=Qi(e),o=e.proxy,n=e.ctx;Ds=!1,t.beforeCreate&&Zi(t.beforeCreate,e,"bc");const{data:a,computed:s,methods:r,watch:i,provide:l,inject:c,created:u,beforeMount:p,mounted:g,beforeUpdate:y,updated:A,activated:k,deactivated:S,beforeDestroy:C,beforeUnmount:f,destroyed:b,unmounted:d,render:$,renderTracked:L,renderTriggered:w,errorCaptured:F,serverPrefetch:D,expose:ne,inheritAttrs:B,components:Y,directives:pe,filters:M}=t;if(c&&Ap(c,n,null),r)for(const z in r){const re=r[z];Oe(re)&&(n[z]=re.bind(o))}if(a){const z=a.call(o,o);Ye(z)&&(e.data=Uo(z))}if(Ds=!0,s)for(const z in s){const re=s[z],j=Oe(re)?re.bind(o,o):Oe(re.get)?re.get.bind(o,o):Yt,O=!Oe(re)&&Oe(re.set)?re.set.bind(o):Yt,V=ie({get:j,set:O});Object.defineProperty(n,z,{enumerable:!0,configurable:!0,get:()=>V.value,set:I=>V.value=I})}if(i)for(const z in i)Ji(i[z],n,o,z);if(l){const z=Oe(l)?l.call(o):l;Reflect.ownKeys(z).forEach(re=>{oo(re,z[re])})}u&&Zi(u,e,"c");function K(z,re){Re(re)?re.forEach(j=>z(j.bind(o))):re&&z(re.bind(o))}if(K(Ki,p),K(yt,g),K(bp,y),K($p,A),K(fp,k),K(hp,S),K(wp,F),K(vp,L),K(yp,w),K(It,f),K(Fs,d),K(_p,D),Re(ne))if(ne.length){const z=e.exposed||(e.exposed={});ne.forEach(re=>{Object.defineProperty(z,re,{get:()=>o[re],set:j=>o[re]=j,enumerable:!0})})}else e.exposed||(e.exposed={});$&&e.render===Yt&&(e.render=$),B!=null&&(e.inheritAttrs=B),Y&&(e.components=Y),pe&&(e.directives=pe),D&&Vi(e)}function Ap(e,t,o=Yt){Re(e)&&(e=js(e));for(const n in e){const a=e[n];let s;Ye(a)?"default"in a?s=ze(a.from||n,a.default,!0):s=ze(a.from||n):s=ze(a),pt(s)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:r=>s.value=r}):t[n]=s}}function Zi(e,t,o){Bt(Re(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function Ji(e,t,o,n){let a=n.includes(".")?ji(o,n):()=>o[n];if(ot(e)){const s=t[e];Oe(s)&&it(a,s)}else if(Oe(e))it(a,e.bind(o));else if(Ye(e))if(Re(e))e.forEach(s=>Ji(s,t,o,n));else{const s=Oe(e.handler)?e.handler.bind(o):t[e.handler];Oe(s)&&it(a,s,e)}}function Qi(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=>Na(l,c,r,!0)),Na(l,t,r)),Ye(t)&&s.set(t,l),l}function Na(e,t,o,n=!1){const{mixins:a,extends:s}=t;s&&Na(e,s,o,!0),a&&a.forEach(r=>Na(e,r,o,!0));for(const r in t)if(!(n&&r==="expose")){const i=Sp[r]||o&&o[r];e[r]=i?i(e[r],t[r]):t[r]}return e}const Sp={data:el,props:tl,emits:tl,methods:Un,computed:Un,beforeCreate:wt,created:wt,beforeMount:wt,mounted:wt,beforeUpdate:wt,updated:wt,beforeDestroy:wt,beforeUnmount:wt,destroyed:wt,unmounted:wt,activated:wt,deactivated:wt,errorCaptured:wt,serverPrefetch:wt,components:Un,directives:Un,watch:Ep,provide:el,inject:Pp};function el(e,t){return t?e?function(){return st(Oe(e)?e.call(this,this):e,Oe(t)?t.call(this,this):t)}:t:e}function Pp(e,t){return Un(js(e),js(t))}function js(e){if(Re(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Pt(t)}Modifiers`]||e[`${Rt(t)}Modifiers`];function Np(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||Je;let a=o;const s=t.startsWith("update:"),r=s&&Rp(n,t.slice(7));r&&(r.trim&&(a=o.map(u=>ot(u)?u.trim():u)),r.number&&(a=a.map(gs)));let i,l=n[i=ps(t)]||n[i=ps(Pt(t))];!l&&s&&(l=n[i=ps(Rt(t))]),l&&Bt(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,Bt(c,e,6,a)}}const Op=new WeakMap;function nl(e,t,o=!1){const n=o?Op:t.emitsCache,a=n.get(e);if(a!==void 0)return a;const s=e.emits;let r={},i=!1;if(!Oe(e)){const l=c=>{const u=nl(c,t,!0);u&&(i=!0,st(r,u))};!o&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!s&&!i?(Ye(e)&&n.set(e,null),null):(Re(s)?s.forEach(l=>r[l]=null):st(r,s),Ye(e)&&n.set(e,r),r)}function Oa(e,t){return!e||!da(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Xe(e,t[0].toLowerCase()+t.slice(1))||Xe(e,Rt(t))||Xe(e,t))}function ok(){}function al(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[s],slots:r,attrs:i,emit:l,render:c,renderCache:u,props:p,data:g,setupState:y,ctx:A,inheritAttrs:k}=e,S=Pa(e);let C,f;try{if(o.shapeFlag&4){const d=a||n,$=d;C=ao(c.call($,d,u,p,y,g,A)),f=i}else{const d=t;C=ao(d.length>1?d(p,{attrs:i,slots:r,emit:l}):d(p,null)),f=t.props?i:Fp(i)}}catch(d){ho.length=0,Aa(d,e,1),C=Ue(no)}let b=C;if(f&&k!==!1){const d=Object.keys(f),{shapeFlag:$}=b;d.length&&$&7&&(s&&d.some(pa)&&(f=Mp(f,s)),b=un(b,f,!1,!0))}if(o.dirs&&(b=un(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(o.dirs):o.dirs),o.transition){const d=Ea(b.type)&&Bi(b)||b;Ns(d,o.transition)}return C=b,Pa(S),C}const Fp=e=>{let t;for(const o in e)(o==="class"||o==="style"||da(o))&&((t||(t={}))[o]=e[o]);return t},Mp=(e,t)=>{const o={};for(const n in e)(!pa(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function Ip(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?sl(n,r,c):!!r;if(l&8){const u=t.dynamicProps;for(let p=0;pObject.create(il),cl=e=>Object.getPrototypeOf(e)===il;function jp(e,t,o,n=!1){const a={},s=ll();e.propsDefaults=Object.create(null),ul(e,t,a,s);for(const r in e.propsOptions[0])r in a||(a[r]=void 0);o?e.props=n?a:Wd(a):e.type.props?e.props=a:e.props=s,e.attrs=s}function zp(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 p=0;p{l=!0;const[g,y]=dl(p,t,!0);st(r,g),y&&i.push(...y)};!o&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!s&&!l)return Ye(e)&&n.set(e,tn),tn;if(Re(s))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",Us=e=>Re(e)?e.map(ao):[ao(e)],Up=(e,t,o)=>{if(t._n)return t;const n=Eo((...a)=>Us(t(...a)),o);return n._c=!1,n},gl=(e,t,o)=>{const n=e._ctx;for(const a in e){if(Gs(a))continue;const s=e[a];if(Oe(s))t[a]=Up(a,s,n);else if(s!=null){const r=Us(s);t[a]=()=>r}}},fl=(e,t)=>{const o=Us(t);e.slots.default=()=>o},hl=(e,t,o)=>{for(const n in t)(o||!Gs(n))&&(e[n]=t[n])},Bp=(e,t,o)=>{const n=e.slots=ll();if(e.vnode.shapeFlag&32){const a=t._;a?(hl(n,t,o),o&&ti(n,"_",a,!0)):gl(t,n)}else t&&fl(e,t)},Vp=(e,t,o)=>{const{vnode:n,slots:a}=e;let s=!0,r=Je;if(n.shapeFlag&32){const i=t._;i?o&&i===1?s=!1:hl(a,t,o):(s=!t.$stable,gl(t,a)),r=t}else t&&(fl(e,t),r={default:1});if(s)for(const i in a)!Gs(i)&&r[i]==null&&delete a[i]},xt=Xp;function qp(e){return Wp(e)}function Wp(e,t){const o=ba();o.__VUE__=!0;const{insert:n,remove:a,patchProp:s,createElement:r,createText:i,createComment:l,setText:c,setElementText:u,parentNode:p,nextSibling:g,setScopeId:y=Yt,insertStaticContent:A}=e,k=(_,P,x,U=null,Q=null,te=null,ce=void 0,oe=null,h=!!P.dynamicChildren)=>{if(_===P)return;_&&!Wn(_,P)&&(U=Se(_),I(_,Q,te,!0),_=null),P.patchFlag===-2&&(h=!1,P.dynamicChildren=null);const{type:m,ref:v,shapeFlag:E}=P;switch(m){case Bn:S(_,P,x,U);break;case no:C(_,P,x,U);break;case qs:_==null&&f(P,x,U,ce);break;case Ce:Y(_,P,x,U,Q,te,ce,oe,h);break;default:E&1?$(_,P,x,U,Q,te,ce,oe,h):E&6?pe(_,P,x,U,Q,te,ce,oe,h):(E&64||E&128)&&m.process(_,P,x,U,Q,te,ce,oe,h,he)}v!=null&&Q?zn(v,_&&_.ref,te,P||_,!P):v==null&&_&&_.ref!=null&&zn(_.ref,null,te,_,!0)},S=(_,P,x,U)=>{if(_==null)n(P.el=i(P.children),x,U);else{const Q=P.el=_.el;P.children!==_.children&&c(Q,P.children)}},C=(_,P,x,U)=>{_==null?n(P.el=l(P.children||""),x,U):P.el=_.el},f=(_,P,x,U)=>{[_.el,_.anchor]=A(_.children,P,x,U,_.el,_.anchor)},b=({el:_,anchor:P},x,U)=>{let Q;for(;_&&_!==P;)Q=g(_),n(_,x,U),_=Q;n(P,x,U)},d=({el:_,anchor:P})=>{let x;for(;_&&_!==P;)x=g(_),a(_),_=x;a(P)},$=(_,P,x,U,Q,te,ce,oe,h)=>{if(P.type==="svg"?ce="svg":P.type==="math"&&(ce="mathml"),_==null)L(P,x,U,Q,te,ce,oe,h);else{const m=_.el&&_.el._isVueCE?_.el:null;try{m&&m._beginPatch(),D(_,P,Q,te,ce,oe,h)}finally{m&&m._endPatch()}}},L=(_,P,x,U,Q,te,ce,oe)=>{let h,m;const{props:v,shapeFlag:E,transition:q,dirs:W}=_;if(h=_.el=r(_.type,te,v&&v.is,v),E&8?u(h,_.children):E&16&&F(_.children,h,null,U,Q,Bs(_,te),ce,oe),W&&qo(_,null,U,"created"),w(h,_,_.scopeId,ce,U),v){for(const G in v)G!=="value"&&!Pn(G)&&s(h,G,null,v[G],te,U);"value"in v&&s(h,"value",null,v.value,te),(m=v.onVnodeBeforeMount)&&so(m,U,_)}W&&qo(_,null,U,"beforeMount");const T=Hp(Q,q);T&&q.beforeEnter(h),n(h,P,x),((m=v&&v.onVnodeMounted)||T||W)&&xt(()=>{try{m&&so(m,U,_),T&&q.enter(h),W&&qo(_,null,U,"mounted")}finally{}},Q)},w=(_,P,x,U,Q)=>{if(x&&y(_,x),U)for(let te=0;te{for(let m=h;m<_.length;m++){const v=_[m]=oe?mo(_[m]):ao(_[m]);k(null,v,P,x,U,Q,te,ce,oe)}},D=(_,P,x,U,Q,te,ce)=>{const oe=P.el=_.el;let{patchFlag:h,dynamicChildren:m,dirs:v}=P;h|=_.patchFlag&16;const E=_.props||Je,q=P.props||Je;let W;if(x&&Ko(x,!1),(W=q.onVnodeBeforeUpdate)&&so(W,x,P,_),v&&qo(P,_,x,"beforeUpdate"),x&&Ko(x,!0),m&&(!_.dynamicChildren||_.dynamicChildren.length!==m.length)&&(h=0,ce=!1,m=null),(E.innerHTML&&q.innerHTML==null||E.textContent&&q.textContent==null)&&u(oe,""),m?ne(_.dynamicChildren,m,oe,x,U,Bs(P,Q),te):ce||re(_,P,oe,null,x,U,Bs(P,Q),te,!1),h>0){if(h&16)B(oe,E,q,x,Q);else if(h&2&&E.class!==q.class&&s(oe,"class",null,q.class,Q),h&4&&s(oe,"style",E.style,q.style,Q),h&8){const T=P.dynamicProps;for(let G=0;G{W&&so(W,x,P,_),v&&qo(P,_,x,"updated")},U)},ne=(_,P,x,U,Q,te,ce)=>{for(let oe=0;oe{if(P!==x){if(P!==Je)for(const te in P)!Pn(te)&&!(te in x)&&s(_,te,P[te],null,Q,U);for(const te in x){if(Pn(te))continue;const ce=x[te],oe=P[te];ce!==oe&&te!=="value"&&s(_,te,oe,ce,Q,U)}"value"in x&&s(_,"value",P.value,x.value,Q)}},Y=(_,P,x,U,Q,te,ce,oe,h)=>{const m=P.el=_?_.el:i(""),v=P.anchor=_?_.anchor:i("");let{patchFlag:E,dynamicChildren:q,slotScopeIds:W}=P;W&&(oe=oe?oe.concat(W):W),_==null?(n(m,x,U),n(v,x,U),F(P.children||[],x,v,Q,te,ce,oe,h)):E>0&&E&64&&q&&_.dynamicChildren&&_.dynamicChildren.length===q.length?(ne(_.dynamicChildren,q,x,Q,te,ce,oe),(P.key!=null||Q&&P===Q.subTree)&&Vs(_,P,!0)):re(_,P,x,v,Q,te,ce,oe,h)},pe=(_,P,x,U,Q,te,ce,oe,h)=>{P.slotScopeIds=oe,_==null?P.shapeFlag&512?Q.ctx.activate(P,x,U,ce,h):M(P,x,U,Q,te,ce,h):ee(_,P,h)},M=(_,P,x,U,Q,te,ce)=>{const oe=_.component=tg(_,U,Q);if(Os(_)&&(oe.ctx.renderer=he),og(oe,!1,ce),oe.asyncDep){if(Q&&Q.registerDep(oe,K,ce),!_.el){const h=oe.subTree=Ue(no);C(null,h,P,x),_.placeholder=h.el}}else K(oe,_,P,x,Q,te,ce)},ee=(_,P,x)=>{const U=P.component=_.component;if(Ip(_,P,x))if(U.asyncDep&&!U.asyncResolved){z(U,P,x);return}else U.next=P,U.update();else P.el=_.el,U.vnode=P},K=(_,P,x,U,Q,te,ce)=>{const oe=()=>{if(_.isMounted){let{next:E,bu:q,u:W,parent:T,vnode:G}=_;{const Ke=ml(_);if(Ke){E&&(E.el=G.el,z(_,E,ce)),Ke.asyncDep.then(()=>{xt(()=>{_.isUnmounted||m()},Q)});return}}let le=E,we;Ko(_,!1),E?(E.el=G.el,z(_,E,ce)):E=G,q&&ma(q),(we=E.props&&E.props.onVnodeBeforeUpdate)&&so(we,T,E,G),Ko(_,!0);const Ne=al(_),Ve=_.subTree;_.subTree=Ne,k(Ve,Ne,p(Ve.el),Se(Ve),_,Q,te),E.el=Ne.el,le===null&&Dp(_,Ne.el),W&&xt(W,Q),(we=E.props&&E.props.onVnodeUpdated)&&xt(()=>so(we,T,E,G),Q)}else{let E;const{el:q,props:W}=P,{bm:T,m:G,parent:le,root:we,type:Ne}=_,Ve=ln(P);Ko(_,!1),T&&ma(T),!Ve&&(E=W&&W.onVnodeBeforeMount)&&so(E,le,P),Ko(_,!0);{we.ce&&we.ce._hasShadowRoot()&&we.ce._injectChildStyle(Ne,_.parent?_.parent.type:void 0);const Ke=_.subTree=al(_);k(null,Ke,x,U,_,Q,te),P.el=Ke.el}if(G&&xt(G,Q),!Ve&&(E=W&&W.onVnodeMounted)){const Ke=P;xt(()=>so(E,le,Ke),Q)}(P.shapeFlag&256||le&&ln(le.vnode)&&le.vnode.shapeFlag&256)&&_.a&&xt(_.a,Q),_.isMounted=!0,P=x=U=null}};_.scope.on();const h=_.effect=new ui(oe);_.scope.off();const m=_.update=h.run.bind(h),v=_.job=h.runIfDirty.bind(h);v.i=_,v.id=_.uid,h.scheduler=()=>Es(v),Ko(_,!0),m()},z=(_,P,x)=>{P.component=_;const U=_.vnode.props;_.vnode=P,_.next=null,zp(_,P.props,U,x),Vp(_,P.children,x),Jt(),Oi(_),Qt()},re=(_,P,x,U,Q,te,ce,oe,h=!1)=>{const m=_&&_.children,v=_?_.shapeFlag:0,E=P.children,{patchFlag:q,shapeFlag:W}=P;if(q>0){if(q&128){O(m,E,x,U,Q,te,ce,oe,h);return}else if(q&256){j(m,E,x,U,Q,te,ce,oe,h);return}}W&8?(v&16&&xe(m,Q,te),E!==m&&u(x,E)):v&16?W&16?O(m,E,x,U,Q,te,ce,oe,h):xe(m,Q,te,!0):(v&8&&u(x,""),W&16&&F(E,x,U,Q,te,ce,oe,h))},j=(_,P,x,U,Q,te,ce,oe,h)=>{_=_||tn,P=P||tn;const m=_.length,v=P.length,E=Math.min(m,v);let q;for(q=0;qv?xe(_,Q,te,!0,!1,E):F(P,x,U,Q,te,ce,oe,h,E)},O=(_,P,x,U,Q,te,ce,oe,h)=>{let m=0;const v=P.length;let E=_.length-1,q=v-1;for(;m<=E&&m<=q;){const W=_[m],T=P[m]=h?mo(P[m]):ao(P[m]);if(Wn(W,T))k(W,T,x,null,Q,te,ce,oe,h);else break;m++}for(;m<=E&&m<=q;){const W=_[E],T=P[q]=h?mo(P[q]):ao(P[q]);if(Wn(W,T))k(W,T,x,null,Q,te,ce,oe,h);else break;E--,q--}if(m>E){if(m<=q){const W=q+1,T=Wq)for(;m<=E;)I(_[m],Q,te,!0),m++;else{const W=m,T=m,G=new Map;for(m=T;m<=q;m++){const X=P[m]=h?mo(P[m]):ao(P[m]);X.key!=null&&G.set(X.key,m)}let le,we=0;const Ne=q-T+1;let Ve=!1,Ke=0;const ft=new Array(Ne);for(m=0;m=Ne){I(X,Q,te,!0);continue}let me;if(X.key!=null)me=G.get(X.key);else for(le=T;le<=q;le++)if(ft[le-T]===0&&Wn(X,P[le])){me=le;break}me===void 0?I(X,Q,te,!0):(ft[me-T]=m+1,me>=Ke?Ke=me:Ve=!0,k(X,P[me],x,null,Q,te,ce,oe,h),we++)}const bt=Ve?Kp(ft):tn;for(le=bt.length-1,m=Ne-1;m>=0;m--){const X=T+m,me=P[X],_e=P[X+1],Ie=X+1{const{el:te,type:ce,transition:oe,children:h,shapeFlag:m}=_;if(m&6){V(_.component.subTree,P,x,U);return}if(m&128){_.suspense.move(P,x,U);return}if(m&64){ce.move(_,P,x,he);return}if(ce===Ce){n(te,P,x);for(let E=0;Eoe.enter(te),Q));else{const{leave:E,delayLeave:q,afterLeave:W}=oe,T=()=>{_.ctx.isUnmounted?a(te):n(te,P,x)},G=()=>{const le=te._isLeaving||!!te[Rs];te._isLeaving&&te[Rs](!0),oe.persisted&&!le?T():E(te,()=>{T(),W&&W()})};q?q(te,T,G):G()}else n(te,P,x)},I=(_,P,x,U=!1,Q=!1)=>{const{type:te,props:ce,ref:oe,children:h,dynamicChildren:m,shapeFlag:v,patchFlag:E,dirs:q,cacheIndex:W,memo:T}=_;if(E===-2&&(Q=!1),oe!=null&&(Jt(),zn(oe,null,x,_,!0),Qt()),W!=null&&(P.renderCache[W]=void 0),v&256){P.ctx.deactivate(_);return}const G=v&1&&q,le=!ln(_);let we;if(le&&(we=ce&&ce.onVnodeBeforeUnmount)&&so(we,P,_),v&6)ke(_.component,x,U);else{if(v&128){_.suspense.unmount(x,U);return}G&&qo(_,null,P,"beforeUnmount"),v&64?_.type.remove(_,P,x,he,U):m&&!m.hasOnce&&(te!==Ce||E>0&&E&64)?xe(m,P,x,!1,!0):(te===Ce&&E&384||!Q&&v&16)&&xe(h,P,x),U&&ae(_)}const Ne=T!=null&&W==null;(le&&(we=ce&&ce.onVnodeUnmounted)||G||Ne)&&xt(()=>{we&&so(we,P,_),G&&qo(_,null,P,"unmounted"),Ne&&(_.el=null)},x)},ae=_=>{const{type:P,el:x,anchor:U,transition:Q}=_;if(P===Ce){be(x,U);return}if(P===qs){d(_);return}const te=()=>{a(x),Q&&!Q.persisted&&Q.afterLeave&&Q.afterLeave()};if(_.shapeFlag&1&&Q&&!Q.persisted){const{leave:ce,delayLeave:oe}=Q,h=()=>ce(x,te);oe?oe(_.el,te,h):h()}else te()},be=(_,P)=>{let x;for(;_!==P;)x=g(_),a(_),_=x;a(P)},ke=(_,P,x)=>{const{bum:U,scope:Q,job:te,subTree:ce,um:oe,m:h,a:m}=_;bl(h),bl(m),U&&ma(U),Q.stop(),te&&(te.flags|=8,I(ce,_,P,x)),oe&&xt(oe,P),xt(()=>{_.isUnmounted=!0},P)},xe=(_,P,x,U=!1,Q=!1,te=0)=>{for(let ce=te;ce<_.length;ce++)I(_[ce],P,x,U,Q)},Se=_=>{if(_.shapeFlag&6)return Se(_.component.subTree);if(_.shapeFlag&128)return _.suspense.next();const P=g(_.anchor||_.el),x=P&&P[zi];return x?g(x):P};let ye=!1;const se=(_,P,x)=>{let U;_==null?P._vnode&&(I(P._vnode,null,null,!0),U=P._vnode.component):k(P._vnode||null,_,P,null,null,null,x),P._vnode=_,ye||(ye=!0,Oi(U),Fi(),ye=!1)},he={p:k,um:I,m:V,r:ae,mt:M,mc:F,pc:re,pbc:ne,n:Se,o:e};return{render:se,hydrate:void 0,createApp:Tp(se)}}function Bs({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 Ko({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Hp(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Vs(e,t,o=!1){const n=e.children,a=t.children;if(Re(n)&&Re(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 ml(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ml(t)}function bl(e){if(e)for(let t=0;te.__isSuspense;function Xp(e,t){t&&t.pendingBranch?Re(e)?t.effects.push(...e):t.effects.push(e):sp(e)}const Ce=Symbol.for("v-fgt"),Bn=Symbol.for("v-txt"),no=Symbol.for("v-cmt"),qs=Symbol.for("v-stc"),ho=[];let Nt=null;function H(e=!1){ho.push(Nt=e?null:[])}function Ws(){ho.pop(),Nt=ho[ho.length-1]||null}let Vn=1;function Fa(e,t=!1){Vn+=e,e<0&&Nt&&t&&(Nt.hasOnce=!0)}function yl(e){return e.dynamicChildren=Vn>0?Nt||tn:null,Ws(),Vn>0&&Nt&&Nt.push(e),e}function Z(e,t,o,n,a,s){return yl(R(e,t,o,n,a,s,!0))}function To(e,t,o,n,a){return yl(Ue(e,t,o,n,a,!0))}function qn(e){return e?e.__v_isVNode===!0:!1}function Wn(e,t){return e.type===t.type&&e.key===t.key}const vl=({key:e})=>e??null,Ma=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?ot(e)||pt(e)||Oe(e)?{i:_t,r:e,k:t,f:!!o}:e:null);function R(e,t=null,o=null,n=0,a=null,s=e===Ce?0:1,r=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&vl(t),ref:t&&Ma(t),scopeId:Ii,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:_t};return i?(Ia(l,o),s&128&&e.normalize(l)):o&&(l.shapeFlag|=ot(o)?8:16),Vn>0&&!r&&Nt&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&Nt.push(l),l}const Ue=Yp;function Yp(e,t=null,o=null,n=0,a=null,s=!1){if((!e||e===xp)&&(e=no),qn(e)){const i=un(e,t,!0);return o&&Ia(i,o),Vn>0&&!s&&Nt&&(i.shapeFlag&6?Nt[Nt.indexOf(e)]=i:Nt.push(i)),i.patchFlag=-2,i}if(cg(e)&&(e=e.__vccOpts),t){t=Zp(t);let{class:i,style:l}=t;i&&!ot(i)&&(t.class=qe(i)),Ye(l)&&(Ss(l)&&!Re(l)&&(l=st({},l)),t.style=rt(l))}const r=ot(e)?1:_l(e)?128:Ea(e)?64:Ye(e)?4:Oe(e)?2:0;return R(e,t,o,n,a,r,s,!0)}function Zp(e){return e?Ss(e)||cl(e)?st({},e):e:null}function un(e,t,o=!1,n=!1){const{props:a,ref:s,patchFlag:r,children:i,transition:l}=e,c=t?Jp(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&vl(c),ref:t&&t.ref?o&&s?Re(s)?s.concat(Ma(t)):[s,Ma(t)]:Ma(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!==Ce?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&&un(e.ssContent),ssFallback:e.ssFallback&&un(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&Ns(u,l.clone(u)),u}function ct(e=" ",t=0){return Ue(Bn,null,e,t)}function Fe(e="",t=!1){return t?(H(),To(no,null,e)):Ue(no,null,e)}function ao(e){return e==null||typeof e=="boolean"?Ue(no):Re(e)?Ue(Ce,null,e.slice()):qn(e)?mo(e):Ue(Bn,null,String(e))}function mo(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:un(e)}function Ia(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(Re(t))o=16;else if(typeof t=="object")if(n&65){const a=t.default;a&&(a._c&&(a._d=!1),Ia(e,a()),a._c&&(a._d=!0));return}else{o=32;const a=t._;!a&&!cl(t)?t._ctx=_t:a===3&&_t&&(_t.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(Oe(t)){if(n&65){Ia(e,{default:t});return}t={default:t,_ctx:_t},o=32}else t=String(t),n&64?(o=16,t=[ct(t)]):o=8;e.children=t,e.shapeFlag|=o}function Jp(...e){const t={};for(let o=0;okt||_t;let Da,Hn;{const e=ba(),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)}};Da=t("__VUE_INSTANCE_SETTERS__",o=>kt=o),Hn=t("__VUE_SSR_SETTERS__",o=>Xn=o)}const Kn=e=>{const t=kt;return Da(e),e.scope.on(),()=>{e.scope.off(),Da(t)}},wl=()=>{kt&&kt.scope.off(),Da(null)};function xl(e){return e.vnode.shapeFlag&4}let Xn=!1;function og(e,t=!1,o=!1){t&&Hn(t);const{props:n,children:a}=e.vnode,s=xl(e);jp(e,n,s,t),Bp(e,a,o||t);const r=s?ng(e,t):void 0;return t&&Hn(!1),r}function ng(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,kp);const{setup:n}=o;if(n){Jt();const a=e.setupContext=n.length>1?sg(e):null,s=Kn(e),r=an(n,e,0,[e.props,a]),i=Jr(r);if(Qt(),s(),(i||e.sp)&&!ln(e)&&Vi(e),i){if(r.then(wl,wl),t)return r.then(l=>{Hn(!0);try{kl(e,l,t)}finally{Hn(!1)}}).catch(l=>{Aa(l,e,0)});e.asyncDep=r}else kl(e,r)}else Ll(e)}function kl(e,t,o){Oe(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ye(t)&&(e.setupState=Ci(t)),Ll(e)}function Ll(e,t,o){const n=e.type;e.render||(e.render=n.render||Yt);{const a=Kn(e);Jt();try{Lp(e)}finally{Qt(),a()}}}const ag={get(e,t){return $t(e,"get",""),e[t]}};function sg(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,ag),slots:e.slots,emit:e.emit,expose:t}}function ja(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ci(Pi(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in Gn)return Gn[o](e)},has(t,o){return o in t||o in Gn}})):e.proxy}const rg=/(?:^|[-_])\w/g,ig=e=>e.replace(rg,t=>t.toUpperCase()).replace(/[-_]/g,"");function lg(e,t=!0){return Oe(e)?e.displayName||e.name:e.name||t&&e.__name}function Al(e,t,o=!1){let n=lg(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?ig(n):o?"App":"Anonymous"}function cg(e){return Oe(e)&&"__vccOpts"in e}const ie=(e,t)=>Yd(e,t,Xn);function Sl(e,t,o){try{Fa(-1);const n=arguments.length;return n===2?Ye(t)&&!Re(t)?qn(t)?Ue(e,null,[t]):Ue(e,t):Ue(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&qn(o)&&(o=[o]),Ue(e,t,o))}finally{Fa(1)}}const ug="3.5.42";/** * @vue/runtime-dom v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let Hs;const Pl=typeof window<"u"&&window.trustedTypes;if(Pl)try{Hs=Pl.createPolicy("vue",{createHTML:e=>e})}catch{}const El=Hs?e=>Hs.createHTML(e):e=>e,cg="http://www.w3.org/2000/svg",ug="http://www.w3.org/1998/Math/MathML",bo=typeof document<"u"?document:null,Cl=bo&&bo.createElement("template"),dg={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"?bo.createElementNS(cg,e):t==="mathml"?bo.createElementNS(ug,e):o?bo.createElement(e,{is:o}):bo.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>bo.createTextNode(e),createComment:e=>bo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>bo.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{Cl.innerHTML=El(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=Cl.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]}},pg=Symbol("_vtc");function gg(e,t,o){const n=e[pg];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const za=Symbol("_vod"),Tl=Symbol("_vsh"),Vt={name:"show",beforeMount(e,{value:t},{transition:o}){e[za]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):Yn(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),Yn(e,!0),n.enter(e)):n.leave(e,()=>{Yn(e,!1)}):Yn(e,t))},beforeUnmount(e,{value:t}){Yn(e,t)}};function Yn(e,t){e.style.display=t?e[za]:"none",e[Tl]=!t}const fg=Symbol(""),hg=/(?:^|;)\s*display\s*:/;function mg(e,t,o){const n=e.style,a=ot(o);let s=!1;if(o&&!a){if(t)if(ot(t))for(const r of t.split(";")){const i=r.slice(0,r.indexOf(":")).trim();o[i]==null&&Zn(n,i,"")}else for(const r in t)o[r]==null&&Zn(n,r,"");for(const r in o){r==="display"&&(s=!0);const i=o[r];i!=null?$g(e,r,!ot(t)&&t?t[r]:void 0,i)||Zn(n,r,i):Zn(n,r,"")}}else if(a){if(t!==o){const r=n[fg];r&&(o+=";"+r),n.cssText=o,s=hg.test(o)}}else t&&e.removeAttribute("style");za in e&&(e[za]=s?n.display:"",e[Tl]&&(n.display="none"))}const Ga=/\s*!important$/;function Zn(e,t,o){if(Re(o))o.forEach(n=>Zn(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))Ga.test(o)?e.setProperty(t,o.replace(Ga,""),"important"):e.setProperty(t,o);else{const n=bg(e,t);Ga.test(o)?e.setProperty(Rt(n),o.replace(Ga,""),"important"):e[n]=o}}const Rl=["Webkit","Moz","ms"],Ks={};function bg(e,t){const o=Ks[t];if(o)return o;let n=Pt(t);if(n!=="filter"&&n in e)return Ks[t]=n;n=ei(n);for(let a=0;aXs||(kg.then(()=>Xs=0),Xs=Date.now());function Ag(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if(Re(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,Sg=(e,t,o,n,a,s)=>{const r=a==="svg";t==="class"?gg(e,n,r):t==="style"?mg(e,o,n):da(t)?pa(t)||yg(e,t,o,n,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Pg(e,t,n,r))?(Fl(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Ol(e,t,n,r,s,t!=="value")):e._isVueCE&&(Eg(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!ot(n)))?Fl(e,Pt(t),n,s,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Ol(e,t,n,r))};function Pg(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Il(t)&&Oe(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 Il(t)&&ot(o)?!1:t in e}function Eg(e,t){const o=e._def.props;if(!o)return!1;const n=Pt(t);return Array.isArray(o)?o.some(a=>Pt(a)===n):Object.keys(o).some(a=>Pt(a)===n)}const Dl={};function Cg(e,t,o){let n=jn(e,t);fa(n)&&(n=st({},n,t));class a extends Ys{constructor(r){super(n,r,o)}}return a.def=n,a}const Tg=typeof HTMLElement<"u"?HTMLElement:class{};class Ys extends Tg{constructor(t,o={},n=Bl){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!==Bl?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(st({},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 Ys){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,Mn(()=>{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&&!Re(s))for(const l in s){const c=s[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=oi(this._props[l])),(i||(i=Object.create(null)))[Pt(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)Xe(this,n)||Object.defineProperty(this,n,{get:()=>he(o[n])})}_resolveProps(t){const{props:o}=t,n=Re(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(Pt))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):Dl;const a=Pt(t);o&&this._numberProps&&this._numberProps[a]&&(n=oi(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===Dl?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(Rt(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(Rt(t),o+""):o||this.removeAttribute(Rt(t)),s&&s.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),Dg(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=Ue(this._def,st(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,fa(r[0])?st({detail:r},r[0]):{detail:r}))};n.emit=(s,...r)=>{a(s,r),Rt(s)!==s&&a(Rt(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 Re(t)?o=>ma(t,o):t};function Rg(e){e.target.composing=!0}function zl(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ua=Symbol("_assign"),Ba=Symbol("_initialValue");function Zs(e,t,o){return t&&(e=e.trim()),o&&(e=gs(e)),e}const Ng={created(e,{modifiers:{lazy:t,trim:o,number:n}},a){e.parentNode&&(e.type==="text"?e[Ba]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Ba]=e.defaultValue.replace(/\r\n?/g,` -`))),e[Ua]=jl(a);const s=n||a.props&&a.props.type==="number";un(e,t?"change":"input",r=>{r.target.composing||e[Ua](Zs(e.value,o,s))}),(o||s)&&un(e,"change",()=>{e.value=Zs(e.value,o,s)}),t||(un(e,"compositionstart",Rg),un(e,"compositionend",zl),un(e,"change",zl))},mounted(e,{value:t,modifiers:{trim:o,number:n}}){const a=t??"",s=e[Ba];delete e[Ba],s!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==s?e[Ua](Zs(e.value,o,n)):e.value=a},beforeUpdate(e,{value:t,oldValue:o,modifiers:{lazy:n,trim:a,number:s}},r){if(e[Ua]=jl(r),e.composing)return;const i=(s||e.type==="number")&&!/^0\d/.test(e.value)?gs(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)}},Og=["ctrl","shift","alt","meta"],Fg={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)=>Og.some(o=>e[`${o}Key`]&&!t.includes(o))},dn=(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{const o=e._withKeys||(e._withKeys={}),n=t.join(".");return o[n]||(o[n]=a=>{if(!("key"in a))return;const s=Rt(a.key);if(t.some(r=>r===s||Mg[r]===s))return e(a)})},Ig=st({patchProp:Sg},dg);let Gl;function Ul(){return Gl||(Gl=Bp(Ig))}const Dg=(...e)=>{Ul().render(...e)},Bl=(...e)=>{const t=Ul().createApp(...e),{mount:o}=t;return t.mount=n=>{const a=zg(n);if(!a)return;const s=t._component;!Oe(s)&&!s.render&&!s.template&&(s.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const r=o(a,!1,jg(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),r},t};function jg(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function zg(e){return ot(e)?document.querySelector(e):e}/*! +**/let Hs;const Pl=typeof window<"u"&&window.trustedTypes;if(Pl)try{Hs=Pl.createPolicy("vue",{createHTML:e=>e})}catch{}const El=Hs?e=>Hs.createHTML(e):e=>e,dg="http://www.w3.org/2000/svg",pg="http://www.w3.org/1998/Math/MathML",bo=typeof document<"u"?document:null,Cl=bo&&bo.createElement("template"),gg={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,n)=>{const a=t==="svg"?bo.createElementNS(dg,e):t==="mathml"?bo.createElementNS(pg,e):o?bo.createElement(e,{is:o}):bo.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>bo.createTextNode(e),createComment:e=>bo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>bo.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{Cl.innerHTML=El(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=Cl.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]}},fg=Symbol("_vtc");function hg(e,t,o){const n=e[fg];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const za=Symbol("_vod"),Tl=Symbol("_vsh"),Vt={name:"show",beforeMount(e,{value:t},{transition:o}){e[za]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):Yn(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),Yn(e,!0),n.enter(e)):n.leave(e,()=>{Yn(e,!1)}):Yn(e,t))},beforeUnmount(e,{value:t}){Yn(e,t)}};function Yn(e,t){e.style.display=t?e[za]:"none",e[Tl]=!t}const mg=Symbol(""),bg=/(?:^|;)\s*display\s*:/;function $g(e,t,o){const n=e.style,a=ot(o);let s=!1;if(o&&!a){if(t)if(ot(t))for(const r of t.split(";")){const i=r.slice(0,r.indexOf(":")).trim();o[i]==null&&Zn(n,i,"")}else for(const r in t)o[r]==null&&Zn(n,r,"");for(const r in o){r==="display"&&(s=!0);const i=o[r];i!=null?yg(e,r,!ot(t)&&t?t[r]:void 0,i)||Zn(n,r,i):Zn(n,r,"")}}else if(a){if(t!==o){const r=n[mg];r&&(o+=";"+r),n.cssText=o,s=bg.test(o)}}else t&&e.removeAttribute("style");za in e&&(e[za]=s?n.display:"",e[Tl]&&(n.display="none"))}const Ga=/\s*!important$/;function Zn(e,t,o){if(Re(o))o.forEach(n=>Zn(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))Ga.test(o)?e.setProperty(t,o.replace(Ga,""),"important"):e.setProperty(t,o);else{const n=_g(e,t);Ga.test(o)?e.setProperty(Rt(n),o.replace(Ga,""),"important"):e[n]=o}}const Rl=["Webkit","Moz","ms"],Ks={};function _g(e,t){const o=Ks[t];if(o)return o;let n=Pt(t);if(n!=="filter"&&n in e)return Ks[t]=n;n=ei(n);for(let a=0;aXs||(Ag.then(()=>Xs=0),Xs=Date.now());function Pg(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if(Re(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,Eg=(e,t,o,n,a,s)=>{const r=a==="svg";t==="class"?hg(e,n,r):t==="style"?$g(e,o,n):da(t)?pa(t)||wg(e,t,o,n,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Cg(e,t,n,r))?(Fl(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Ol(e,t,n,r,s,t!=="value")):e._isVueCE&&(Tg(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!ot(n)))?Fl(e,Pt(t),n,s,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),Ol(e,t,n,r))};function Cg(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&Il(t)&&Oe(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 Il(t)&&ot(o)?!1:t in e}function Tg(e,t){const o=e._def.props;if(!o)return!1;const n=Pt(t);return Array.isArray(o)?o.some(a=>Pt(a)===n):Object.keys(o).some(a=>Pt(a)===n)}const Dl={};function Rg(e,t,o){let n=jn(e,t);fa(n)&&(n=st({},n,t));class a extends Ys{constructor(r){super(n,r,o)}}return a.def=n,a}const Ng=typeof HTMLElement<"u"?HTMLElement:class{};class Ys extends Ng{constructor(t,o={},n=Bl){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!==Bl?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(st({},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 Ys){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,Mn(()=>{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&&!Re(s))for(const l in s){const c=s[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=oi(this._props[l])),(i||(i=Object.create(null)))[Pt(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)Xe(this,n)||Object.defineProperty(this,n,{get:()=>fe(o[n])})}_resolveProps(t){const{props:o}=t,n=Re(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(Pt))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):Dl;const a=Pt(t);o&&this._numberProps&&this._numberProps[a]&&(n=oi(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===Dl?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(Rt(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(Rt(t),o+""):o||this.removeAttribute(Rt(t)),s&&s.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),zg(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=Ue(this._def,st(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,fa(r[0])?st({detail:r},r[0]):{detail:r}))};n.emit=(s,...r)=>{a(s,r),Rt(s)!==s&&a(Rt(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 Re(t)?o=>ma(t,o):t};function Og(e){e.target.composing=!0}function zl(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ua=Symbol("_assign"),Ba=Symbol("_initialValue");function Zs(e,t,o){return t&&(e=e.trim()),o&&(e=gs(e)),e}const Fg={created(e,{modifiers:{lazy:t,trim:o,number:n}},a){e.parentNode&&(e.type==="text"?e[Ba]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Ba]=e.defaultValue.replace(/\r\n?/g,` +`))),e[Ua]=jl(a);const s=n||a.props&&a.props.type==="number";dn(e,t?"change":"input",r=>{r.target.composing||e[Ua](Zs(e.value,o,s))}),(o||s)&&dn(e,"change",()=>{e.value=Zs(e.value,o,s)}),t||(dn(e,"compositionstart",Og),dn(e,"compositionend",zl),dn(e,"change",zl))},mounted(e,{value:t,modifiers:{trim:o,number:n}}){const a=t??"",s=e[Ba];delete e[Ba],s!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==s?e[Ua](Zs(e.value,o,n)):e.value=a},beforeUpdate(e,{value:t,oldValue:o,modifiers:{lazy:n,trim:a,number:s}},r){if(e[Ua]=jl(r),e.composing)return;const i=(s||e.type==="number")&&!/^0\d/.test(e.value)?gs(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)}},Mg=["ctrl","shift","alt","meta"],Ig={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)=>Mg.some(o=>e[`${o}Key`]&&!t.includes(o))},pn=(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{const o=e._withKeys||(e._withKeys={}),n=t.join(".");return o[n]||(o[n]=a=>{if(!("key"in a))return;const s=Rt(a.key);if(t.some(r=>r===s||Dg[r]===s))return e(a)})},jg=st({patchProp:Eg},gg);let Gl;function Ul(){return Gl||(Gl=qp(jg))}const zg=(...e)=>{Ul().render(...e)},Bl=(...e)=>{const t=Ul().createApp(...e),{mount:o}=t;return t.mount=n=>{const a=Ug(n);if(!a)return;const s=t._component;!Oe(s)&&!s.render&&!s.template&&(s.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const r=o(a,!1,Gg(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),r},t};function Gg(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Ug(e){return ot(e)?document.querySelector(e):e}/*! * pinia v2.3.1 * (c) 2025 Eduardo San Martin Morote * @license MIT - */const Gg=Symbol();var Vl;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Vl||(Vl={}));function Ug(){const e=ci(!0),t=e.run(()=>de({}));let o=[],n=[];const a=Pi({install(s){a._a=s,s.provide(Gg,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 Bg={title:"كل مجموعات الشعوب",locations:"{n} موقعًا (مجموعة × بلد)",doxa:"مجموعات شعوب DOXA",frontier:"حدودية — لم يبدأ شيء",unreached:"غير مُبشَّرة — العمل يبدأ",reached:"مُبشَّرة — الكنيسة موجودة",hint:"انقر على صف لعرضها كلها · انقر مرة أخرى لعرض الكل",loading:"جارٍ تحميل كل مجموعات الشعوب…",loadError:"تعذّر تحميل الخريطة.",pray:"صلِّ لأجلهم ←",population:"السكان {n}"},Vg={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها"},qg={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:"الملصقات في كل صف"},Wg={title:"الوصول إلى الإنترنت حيث تعيش الشعوب غير المنخرطة",bands:{yes:"متصل 60%+",partial:"جزئي 25–59%",no:"منخفض، أقل من 25%",unknown:"غير مُقاس"},peopleGroup:"شعب",caveat:"أرقام وطنية (البنك الدولي). بيانات الاتصال لكل مدينة غير متاحة للعامة — لا تستنتج حال مدينة من بيانات بلدها.",sheet:{close:"إغلاق",ai:"عُثر على هذه البيانات عبر بحث معمّق بالذكاء الاصطناعي — وقد تتضمن معلومات خاطئة.",dismiss:"إغلاق التنبيه",internetUsers:"مستخدمو الإنترنت",measured:"سنة القياس",mobilePer100:"اشتراكات الجوال لكل 100",peopleGroups:"الشعوب",topPlatform:"المنصة الأولى",unknown:"غير معروف",carriers:"شركات الاتصالات ومزودو الإنترنت ({n})",socialPlatforms:"منصات التواصل الاجتماعي",note:"أرقام وطنية وليست قياسات للمدن. أسماء شركات الاتصالات هي أسماء أصحاب سجلات ASN — وتشمل البنوك والجامعات إلى جانب مزودي الإنترنت، لذا فإن تصنيفها كشركات اتصالات تقدير مبني على الاسم وليس تصنيفًا مُتحقَّقًا منه."}},Hg={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:"أدوات التحكم بالخريطة"},Kg={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:"المكان"},Xg={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},Yg={_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:"فيلم يسوع"},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_gaps:"الفجوات والفرص",t_bridges:"جسور المدن",t_deaf:"فجوة الصم",t_resources:"الموارد حسب الشعب",t_languages:"اللغات حسب البلد",t_growth:"الوصول مقابل نمو السكان"},pages:{listTitle:"موارد الإنجيل حسب اللغة",chartsTitle:"موارد الإنجيل — حسب اللغة",loadingTables:"جارٍ تحميل جداول الموارد…"}},Zg={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:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية."},Jg={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:"إلغاء التحديد"}},Qg={menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم الصلاة والملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntro:"وزّع مهمة الصلاة في مجموعات من خمسين ومئة — كما أطعم يسوع الخمسة آلاف (لوقا ٩:١٤). كل ملصق هو قائمة من 100 يمكنك أن تصلي بها وتطبعها وتعلّقها على الحائط — مصلّيًا لأجلهم باسم شعبهم."},ef={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},tf={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},of={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},nf={"%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.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},af={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"}},sf={title:"استوديو الإضافات",navLabel:"الإضافات حسب القدرة",countLabel:"{bundles} حزمة · {elements} إضافة مدرجة هنا",changeLanguage:"تغيير اللغة",copyEmbed:"نسخ رمز التضمين",copy:"نسخ",copied:"تم النسخ",scriptEmbed:"تضمين عبر سكربت",loading:"جارٍ تحميل {name}…",couldNotLoad:"تعذّر تحميل {name}.",chooseElement:"اختر إضافة من القائمة.",filterPlaceholder:"تصفية الإضافات",collapseAll:"طي الكل",noMatch:"لا توجد إضافة تطابق «{query}».",openSection:"فتح {cap}، {label}",part:"جزء",noStandalone:"بلا صفحة مستقلة",cap5:"هيكل التطبيق",cap4:"مركّب",cap3:"متعدد العروض",cap2:"إعداد مسبق",cap1:"مفرد",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",partOf:"جزء من {name}، غير منشور بمفرده"},rf={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:"الخريطة"},lf={kicker:"DOXA · الرؤية",title:"كل شعب. كل مكان.",tagline:"من كل مجموعات الشعوب في العالم إلى التي تصلي لأجلها DOXA، محسوبةً من البيانات.",funnelLabel:"من كل مجموعات الشعوب إلى مجموعات شعوب DOXA",allLabel:"مجموعات الشعوب",allNote:"كل مجموعة شعب، في كل بلد تعيش فيه",unreachedLabel:"غير المُبشَّرة",unreachedNote:"أقل من 2% إنجيليون",frontierLabel:"الحدودية",frontierNote:"أقل من 0.1% إنجيليون",doxaLabel:"مجموعات شعوب DOXA",doxaNote:"{frontier} منها حدودية",people:"{n} نسمة",sources:"مجموعات الشعوب: {imb}، بيانات {date}. قائمة DOXA: ‏pray.doxa.life، {date2}.",howCounted:"كيف تُحسب هذه الأرقام",ruleAll:"كل صف في بيانات IMB لمجموعات الشعوب: مجموعة شعب واحدة في بلد واحد.",ruleUnreached:"أولوية الضياع لدى IMB من 0 إلى 2: أقل من 2% إنجيليون.",ruleFrontier:"أولوية الضياع لدى IMB رقم 0: أقل من 0.1% إنجيليون. جزء من غير المُبشَّرة.",ruleDoxa:"كل مجموعة في قائمة صلاة DOXA، مطابَقة مع بيانات IMB حسب الشعب والبلد. ليست كلها حدودية."},cf={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}"},uf={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden"},df={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"},pf={title:"Internetzugang dort, wo Volksgruppen ohne Engagement leben",bands:{yes:"verbunden 60%+",partial:"teilweise 25–59%",no:"gering, unter 25%",unknown:"nicht gemessen"},peopleGroup:"Volksgruppe",caveat:"LANDESWEITE Zahlen (Weltbank). Konnektivität je Stadt ist nicht öffentlich verfügbar — schließen Sie nicht vom Land auf eine Stadt.",sheet:{close:"Schließen",ai:"Diese Daten wurden durch KI-gestützte Recherche gefunden — sie können falsche Angaben enthalten.",dismiss:"Ausblenden",internetUsers:"Internetnutzer",measured:"Gemessen",mobilePer100:"Mobilfunk pro 100",peopleGroups:"Volksgruppen",topPlatform:"Wichtigste Plattform",unknown:"unbekannt",carriers:"Netzbetreiber & ISPs ({n})",socialPlatforms:"Soziale Plattformen",note:"Landesweite Zahlen, keine Messungen je Stadt. Betreibernamen sind ASN-Registerinhaber — darunter neben ISPs auch Banken und Universitäten; die Einstufung als Netzbetreiber ist daher eine Namensheuristik, keine geprüfte Klassifizierung."}},gf={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"},ff={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"},hf={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},mf={_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"},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_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…"}},bf={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."},$f={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"}},_f={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."},yf={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},vf={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},wf={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},xf={"%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."},kf={placeholder:"Volk, Ort, Sprache, Religion",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"}},Lf={title:"Plugin-Studio",navLabel:"Plugins nach Fähigkeit",countLabel:"{bundles} Bundles · {elements} Plugins hier aufgeführt",changeLanguage:"Sprache ändern",copyEmbed:"Einbettung kopieren",copy:"Kopieren",copied:"Kopiert",scriptEmbed:"Skript-Einbettung",loading:"{name} wird geladen…",couldNotLoad:"{name} konnte nicht geladen werden.",chooseElement:"Wählen Sie ein Plugin aus der Liste.",filterPlaceholder:"Plugins filtern",collapseAll:"Alle einklappen",noMatch:"Kein Plugin entspricht „{query}“.",openSection:"{cap} öffnen, {label}",part:"Teil",noStandalone:"keine eigene Seite",cap5:"App-Shell",cap4:"Komposit",cap3:"Mehrfachansicht",cap2:"Voreinstellung",cap1:"Einzeln",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",partOf:"Teil von {name}, nicht eigenständig veröffentlicht"},Af={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"},Sf={kicker:"DOXA · Vision",title:"Jedes Volk. Jeder Ort.",tagline:"Von allen Volksgruppen der Welt bis zu denen, für die DOXA betet, aus den Daten gezählt.",funnelLabel:"Von allen Volksgruppen zu den DOXA-Volksgruppen",allLabel:"Volksgruppen",allNote:"jede Volksgruppe in jedem Land, in dem sie lebt",unreachedLabel:"Unerreicht",unreachedNote:"unter 2 % Evangelikale",frontierLabel:"Frontier",frontierNote:"unter 0,1 % Evangelikale",doxaLabel:"DOXA-Volksgruppen",doxaNote:"{frontier} davon sind Frontier",people:"{n} Menschen",sources:"Volksgruppen: {imb}, Datenstand {date}. DOXA-Liste: pray.doxa.life, {date2}.",howCounted:"So wird gezählt",ruleAll:"Jede Zeile der IMB-Volksgruppendaten: eine Volksgruppe in einem Land.",ruleUnreached:"IMB-Lostness-Priorität 0 bis 2: weniger als 2 % Evangelikale.",ruleFrontier:"IMB-Lostness-Priorität 0: weniger als 0,1 % Evangelikale. Eine Teilmenge der Unerreichten.",ruleDoxa:"Jede Gruppe auf der DOXA-Gebetsliste, den IMB-Daten nach Volk und Land zugeordnet. Nicht alle sind Frontier."},Pf={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}"},Ef={backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend"},Cf={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"},Tf={title:"Internet access where unengaged people groups live",bands:{yes:"connected 60%+",partial:"partial 25–59%",no:"low, under 25%",unknown:"not measured"},peopleGroup:"people group",caveat:"NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country.",sheet:{close:"Close",ai:"Data was found by AI deep research — it is subject to false information.",dismiss:"Dismiss",internetUsers:"Internet users",measured:"Measured",mobilePer100:"Mobile per 100",peopleGroups:"People groups",topPlatform:"Top platform",unknown:"unknown",carriers:"Carriers & ISPs ({n})",socialPlatforms:"Social platforms",note:"National figures, not city measurements. Carrier names are ASN registry holders — that set includes banks and universities as well as ISPs, so the carrier flag is a name heuristic, not a verified classification."}},Rf={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"},Nf={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"},Of={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},Ff={_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"},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_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…"}},Mf={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."},If={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"}},Df={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."},jf={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},zf={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},Gf={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},Uf={"%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."},Bf={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"},kinds:{people:"People Group + Country",peopleGroup:"People Group",bloc:"Affinity Block",cluster:"People Cluster",country:"Country",region:"Region",family:"Language Family",languageKind:"Language",dialect:"Dialect",religionKind:"Religion"},sections:{within:"Within {selection}",allData:"All DOXA Data"}},Vf={title:"Plugin Studio",navLabel:"Plugins by capability",countLabel:"{bundles} bundles · {elements} plugins listed here",changeLanguage:"Change language",copyEmbed:"Copy embed",copy:"Copy",copied:"Copied",scriptEmbed:"Script embed",loading:"Loading {name}…",couldNotLoad:"Could not load {name}.",chooseElement:"Choose a plugin from the list.",filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",openSection:"Open {cap}, {label}",part:"part",noStandalone:"no standalone page",cap5:"App shell",cap4:"Composite",cap3:"Multi-view",cap2:"Preset",cap1:"Single",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",partOf:"part of {name}, not published on its own"},qf={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"},Wf={kicker:"DOXA · Vision",title:"Every people. Every place.",tagline:"From every people group on earth to the ones DOXA prays for, counted from the data.",funnelLabel:"From all people groups to DOXA people groups",allLabel:"People groups",allNote:"each people group, in each country it lives in",unreachedLabel:"Unreached",unreachedNote:"under 2% evangelical",frontierLabel:"Frontier",frontierNote:"under 0.1% evangelical",doxaLabel:"DOXA people groups",doxaNote:"{frontier} of them are frontier",people:"{n} people",sources:"People groups: {imb}, data of {date}. DOXA list: pray.doxa.life, {date2}.",howCounted:"How these are counted",ruleAll:"Every row of the IMB people-group data: one people group in one country.",ruleUnreached:"IMB lostness priority 0 to 2: less than 2% evangelical.",ruleFrontier:"IMB lostness priority 0: less than 0.1% evangelical. A subset of the unreached.",ruleDoxa:"Every group on the DOXA prayer list, matched to the IMB data by people and country. Not all are frontier."},Hf={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}"},Kf={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda"},Xf={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"},Yf={title:"Acceso a internet donde viven pueblos sin implicación",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"bajo, menos del 25%",unknown:"sin medir"},peopleGroup:"pueblo",caveat:"Cifras NACIONALES (Banco Mundial). La conectividad por ciudad no está disponible públicamente: no deduzca una ciudad a partir de su país.",sheet:{close:"Cerrar",ai:"Estos datos se obtuvieron mediante investigación con IA y pueden contener información falsa.",dismiss:"Descartar",internetUsers:"Usuarios de internet",measured:"Medido",mobilePer100:"Móviles por cada 100",peopleGroups:"Pueblos",topPlatform:"Plataforma principal",unknown:"desconocido",carriers:"Operadores y proveedores de internet ({n})",socialPlatforms:"Redes sociales",note:"Cifras nacionales, no mediciones por ciudad. Los nombres de operadores son titulares de registros ASN (incluyen bancos y universidades además de proveedores), así que la marca de operador es una heurística por nombre, no una clasificación verificada."}},Zf={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"},Jf={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"},Qf={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."}},eh={_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"},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_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…"}},th={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."},oh={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"}},nh={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."},ah={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},sh={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},rh={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},ih={"%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."},lh={placeholder:"Pueblo, lugar, idioma, religión",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"},sections:{within:"Dentro de {selection}",allData:"Todos los datos DOXA"}},ch={title:"Estudio de plugins",navLabel:"Plugins por capacidad",countLabel:"{bundles} paquetes · {elements} plugins listados aquí",changeLanguage:"Cambiar idioma",copyEmbed:"Copiar código de inserción",copy:"Copiar",copied:"Copiado",scriptEmbed:"Inserción por script",loading:"Cargando {name}…",couldNotLoad:"No se pudo cargar {name}.",chooseElement:"Elija un plugin de la lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Contraer todo",noMatch:"Ningún plugin coincide con «{query}».",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sin página propia",cap5:"Contenedor de aplicación",cap4:"Compuesto",cap3:"Multivista",cap2:"Preajuste",cap1:"Individual",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer",partOf:"parte de {name}, no publicada por separado"},uh={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"},dh={kicker:"DOXA · Visión",title:"Cada pueblo. Cada lugar.",tagline:"De todos los grupos étnicos del mundo a aquellos por los que DOXA ora, contados a partir de los datos.",funnelLabel:"De todos los grupos étnicos a los grupos étnicos de DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, en cada país donde vive",unreachedLabel:"No alcanzados",unreachedNote:"menos del 2 % evangélicos",frontierLabel:"Frontera",frontierNote:"menos del 0,1 % evangélicos",doxaLabel:"Grupos étnicos de DOXA",doxaNote:"{frontier} de ellos son de frontera",people:"{n} personas",sources:"Grupos étnicos: {imb}, datos de {date}. Lista de DOXA: pray.doxa.life, {date2}.",howCounted:"Cómo se cuentan",ruleAll:"Cada fila de los datos de grupos étnicos del IMB: un grupo étnico en un país.",ruleUnreached:"Prioridad de perdición del IMB de 0 a 2: menos del 2 % evangélicos.",ruleFrontier:"Prioridad de perdición del IMB 0: menos del 0,1 % evangélicos. Un subconjunto de los no alcanzados.",ruleDoxa:"Cada grupo de la lista de oración de DOXA, vinculado a los datos del IMB por pueblo y país. No todos son de frontera."},ph={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}"},gh={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"},fh={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"},hh={title:"Accès à Internet là où vivent les peuples sans engagement",bands:{yes:"connecté 60 %+",partial:"partiel 25–59 %",no:"faible, moins de 25 %",unknown:"non mesuré"},peopleGroup:"peuple",caveat:"Chiffres NATIONAUX (Banque mondiale). La connectivité par ville n'est pas publique — ne déduisez pas une ville à partir de son pays.",sheet:{close:"Fermer",ai:"Ces données proviennent d'une recherche approfondie par IA — elles peuvent contenir des informations erronées.",dismiss:"Ignorer",internetUsers:"Internautes",measured:"Mesuré",mobilePer100:"Mobiles pour 100",peopleGroups:"Peuples",topPlatform:"Plateforme principale",unknown:"inconnu",carriers:"Opérateurs et FAI ({n})",socialPlatforms:"Réseaux sociaux",note:"Chiffres nationaux, pas des mesures par ville. Les noms d'opérateurs sont les titulaires de registres ASN (on y trouve aussi des banques et des universités à côté des FAI), donc l'étiquette « opérateur » est une heuristique fondée sur le nom, non une classification vérifiée."}},mh={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"},bh={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"},$h={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},_h={_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"},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_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…"}},yh={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."},vh={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"}},wh={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."},xh={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},kh={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},Lh={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},Ah={"%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."},Sh={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"},sections:{within:"Dans {selection}",allData:"Toutes les données DOXA"}},Ph={title:"Studio de plugins",navLabel:"Plugins par capacité",countLabel:"{bundles} paquets · {elements} plugins listés ici",changeLanguage:"Changer de langue",copyEmbed:"Copier le code d’intégration",copy:"Copier",copied:"Copié",scriptEmbed:"Intégration par script",loading:"Chargement de {name}…",couldNotLoad:"Impossible de charger {name}.",chooseElement:"Choisissez un plugin dans la liste.",filterPlaceholder:"Filtrer les plugins",collapseAll:"Tout replier",noMatch:"Aucun plugin ne correspond à « {query} ».",openSection:"Ouvrir {cap}, {label}",part:"partie",noStandalone:"pas de page autonome",cap5:"Coquille d’application",cap4:"Composite",cap3:"Multivue",cap2:"Préréglage",cap1:"Simple",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier",partOf:"partie de {name}, non publiée seule"},Eh={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"},Ch={kicker:"DOXA · Vision",title:"Chaque peuple. Chaque lieu.",tagline:"De tous les groupes ethniques du monde à ceux pour qui DOXA prie, comptés à partir des données.",funnelLabel:"De tous les groupes ethniques aux groupes ethniques DOXA",allLabel:"Groupes ethniques",allNote:"chaque groupe ethnique, dans chaque pays où il vit",unreachedLabel:"Non atteints",unreachedNote:"moins de 2 % d’évangéliques",frontierLabel:"Frontière",frontierNote:"moins de 0,1 % d’évangéliques",doxaLabel:"Groupes ethniques DOXA",doxaNote:"dont {frontier} de frontière",people:"{n} personnes",sources:"Groupes ethniques : {imb}, données du {date}. Liste DOXA : pray.doxa.life, {date2}.",howCounted:"Comment ces chiffres sont comptés",ruleAll:"Chaque ligne des données IMB : un groupe ethnique dans un pays.",ruleUnreached:"Priorité de perdition IMB 0 à 2 : moins de 2 % d’évangéliques.",ruleFrontier:"Priorité de perdition IMB 0 : moins de 0,1 % d’évangéliques. Un sous-ensemble des non-atteints.",ruleDoxa:"Chaque groupe de la liste de prière DOXA, rapproché des données IMB par peuple et pays. Tous ne sont pas de frontière."},Th={title:"सभी जनसमूह",locations:"{n} स्थान (समूह × देश)",doxa:"DOXA जनसमूह",frontier:"सीमांत — कुछ शुरू नहीं हुआ",unreached:"अप्रचारित — काम शुरू हो रहा है",reached:"प्रचारित — कलीसिया मौजूद है",hint:"सभी देखने के लिए पंक्ति पर क्लिक करें · सब कुछ देखने के लिए फिर क्लिक करें",loading:"सभी जनसमूह लोड हो रहे हैं…",loadError:"मानचित्र लोड नहीं हो सका।",pray:"उनके लिए प्रार्थना करें →",population:"जनसंख्या {n}"},Rh={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ"},Nh={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:"प्रति पंक्ति पोस्टर"},Oh={title:"इंटरनेट पहुँच जहाँ बिना सहभागिता वाले जनसमूह रहते हैं",bands:{yes:"जुड़ा हुआ 60%+",partial:"आंशिक 25–59%",no:"कम, 25% से नीचे",unknown:"मापा नहीं गया"},peopleGroup:"जनसमूह",caveat:"राष्ट्रीय आँकड़े (विश्व बैंक)। शहर-स्तर की कनेक्टिविटी सार्वजनिक रूप से उपलब्ध नहीं है — देश के आँकड़ों से किसी शहर का अनुमान न लगाएँ।",sheet:{close:"बंद करें",ai:"यह डेटा एआई गहन शोध से मिला है — इसमें गलत जानकारी हो सकती है।",dismiss:"हटाएँ",internetUsers:"इंटरनेट उपयोगकर्ता",measured:"मापा गया",mobilePer100:"प्रति 100 मोबाइल",peopleGroups:"जनसमूह",topPlatform:"शीर्ष प्लेटफ़ॉर्म",unknown:"अज्ञात",carriers:"कैरियर और आईएसपी ({n})",socialPlatforms:"सोशल प्लेटफ़ॉर्म",note:"ये राष्ट्रीय आँकड़े हैं, शहरों के माप नहीं। कैरियर के नाम ASN रजिस्ट्री धारकों के हैं — उनमें आईएसपी के साथ बैंक और विश्वविद्यालय भी शामिल हैं, इसलिए कैरियर का चिह्न नाम पर आधारित अनुमान है, सत्यापित वर्गीकरण नहीं।"}},Fh={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:"मानचित्र नियंत्रण"},Mh={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:"स्थान"},Ih={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},Dh={_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:"यीशु फ़िल्म"},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_gaps:"कमियाँ और अवसर",t_bridges:"नगर सेतु",t_deaf:"बधिर कमी",t_resources:"जनसमूह अनुसार संसाधन",t_languages:"देश अनुसार भाषाएँ",t_growth:"पहुँच बनाम जनसंख्या वृद्धि"},pages:{listTitle:"भाषा अनुसार सुसमाचार संसाधन",chartsTitle:"सुसमाचार संसाधन — भाषा अनुसार",loadingTables:"संसाधन तालिकाएँ लोड हो रही हैं…"}},jh={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:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।"},zh={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:"चयन हटाएँ"}},Gh={menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना लामबंदी",upg100WallIntro:"प्रार्थना के काम को पचास-पचास और सौ-सौ के समूहों में बाँटें — जैसे यीशु ने 5,000 लोगों को खिलाया (लूका 9:14)। हर पोस्टर 100 की एक सूची है जिसके लिए आप प्रार्थना कर सकते हैं, छाप सकते हैं और दीवार पर लगा सकते हैं — उनके लिए उनके जनसमूह के नाम से प्रार्थना करते हुए।"},Uh={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},Bh={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},Vh={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},qh={"%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.":"नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"},Wh={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"}},Hh={title:"प्लगइन स्टूडियो",navLabel:"क्षमता के अनुसार प्लगइन",countLabel:"{bundles} बंडल · यहाँ {elements} प्लगइन सूचीबद्ध",changeLanguage:"भाषा बदलें",copyEmbed:"एम्बेड कोड कॉपी करें",copy:"कॉपी करें",copied:"कॉपी हो गया",scriptEmbed:"स्क्रिप्ट एम्बेड",loading:"{name} लोड हो रहा है…",couldNotLoad:"{name} लोड नहीं हो सका।",chooseElement:"सूची से कोई प्लगइन चुनें।",filterPlaceholder:"प्लगइन फ़िल्टर करें",collapseAll:"सभी संक्षिप्त करें",noMatch:"“{query}” से कोई प्लगइन मेल नहीं खाता।",openSection:"{cap} खोलें, {label}",part:"भाग",noStandalone:"कोई अलग पेज नहीं",cap5:"ऐप शेल",cap4:"संयुक्त",cap3:"बहु-दृश्य",cap2:"प्रीसेट",cap1:"एकल",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",partOf:"{name} का भाग, अलग से प्रकाशित नहीं"},Kh={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:"मानचित्र"},Xh={kicker:"DOXA · दर्शन",title:"हर जनसमूह। हर स्थान।",tagline:"दुनिया के हर जनसमूह से उन तक जिनके लिए DOXA प्रार्थना करता है, आँकड़ों से गिने गए।",funnelLabel:"सभी जनसमूहों से DOXA जनसमूहों तक",allLabel:"जनसमूह",allNote:"हर जनसमूह, हर उस देश में जहाँ वह रहता है",unreachedLabel:"अप्रचारित",unreachedNote:"2% से कम इवेंजेलिकल",frontierLabel:"सीमांत",frontierNote:"0.1% से कम इवेंजेलिकल",doxaLabel:"DOXA जनसमूह",doxaNote:"इनमें से {frontier} सीमांत हैं",people:"{n} लोग",sources:"जनसमूह: {imb}, {date} के आँकड़े। DOXA सूची: pray.doxa.life, {date2}।",howCounted:"ये कैसे गिने गए",ruleAll:"IMB जनसमूह आँकड़ों की हर पंक्ति: एक देश में एक जनसमूह।",ruleUnreached:"IMB लॉस्टनेस प्राथमिकता 0 से 2: 2% से कम इवेंजेलिकल।",ruleFrontier:"IMB लॉस्टनेस प्राथमिकता 0: 0.1% से कम इवेंजेलिकल। अप्रचारितों का एक भाग।",ruleDoxa:"DOXA प्रार्थना सूची का हर समूह, जनसमूह और देश के आधार पर IMB आँकड़ों से मिलाया गया। सभी सीमांत नहीं हैं।"},Yh={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}"},Zh={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio",collapseLegend:"Comprimi la legenda",expandLegend:"Espandi la legenda",toggleLegend:"Mostra o nascondi la legenda"},Jh={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"},Qh={title:"Accesso a internet dove vivono i popoli senza impegno",bands:{yes:"connesso 60%+",partial:"parziale 25–59%",no:"basso, sotto il 25%",unknown:"non misurato"},peopleGroup:"popolo",caveat:"Dati NAZIONALI (Banca Mondiale). La connettività per città non è disponibile pubblicamente: non dedurre una città dal suo paese.",sheet:{close:"Chiudi",ai:"Questi dati provengono da una ricerca approfondita con IA e possono contenere informazioni errate.",dismiss:"Ignora",internetUsers:"Utenti internet",measured:"Misurato",mobilePer100:"Cellulari ogni 100",peopleGroups:"Popoli",topPlatform:"Piattaforma principale",unknown:"sconosciuto",carriers:"Operatori e ISP ({n})",socialPlatforms:"Piattaforme social",note:"Dati nazionali, non misure per città. I nomi degli operatori sono titolari di registri ASN (includono banche e università oltre agli ISP), quindi l'etichetta di operatore è un'euristica basata sul nome, non una classificazione verificata."}},em={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"},tm={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"},om={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},nm={_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Ù"},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_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…"}},am={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."},sm={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"}},rm={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."},im={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},lm={country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},cm={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},um={"%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."},dm={placeholder:"Popolo, luogo, lingua, religione",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"}},pm={title:"Studio dei plugin",navLabel:"Plugin per capacità",countLabel:"{bundles} pacchetti · {elements} plugin elencati qui",changeLanguage:"Cambia lingua",copyEmbed:"Copia codice di incorporamento",copy:"Copia",copied:"Copiato",scriptEmbed:"Incorporamento tramite script",loading:"Caricamento di {name}…",couldNotLoad:"Impossibile caricare {name}.",chooseElement:"Scegli un plugin dall’elenco.",filterPlaceholder:"Filtra i plugin",collapseAll:"Comprimi tutto",noMatch:"Nessun plugin corrisponde a «{query}».",openSection:"Apri {cap}, {label}",part:"parte",noStandalone:"nessuna pagina propria",cap5:"Shell dell’app",cap4:"Composito",cap3:"Multivista",cap2:"Preimpostato",cap1:"Singolo",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi",partOf:"parte di {name}, non pubblicata da sola"},gm={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"},fm={kicker:"DOXA · Visione",title:"Ogni popolo. Ogni luogo.",tagline:"Da tutti i gruppi etnici del mondo a quelli per cui DOXA prega, contati dai dati.",funnelLabel:"Da tutti i gruppi etnici ai gruppi etnici DOXA",allLabel:"Gruppi etnici",allNote:"ogni gruppo etnico, in ogni paese in cui vive",unreachedLabel:"Non raggiunti",unreachedNote:"meno del 2% evangelici",frontierLabel:"Frontiera",frontierNote:"meno dello 0,1% evangelici",doxaLabel:"Gruppi etnici DOXA",doxaNote:"{frontier} di questi sono di frontiera",people:"{n} persone",sources:"Gruppi etnici: {imb}, dati del {date}. Elenco DOXA: pray.doxa.life, {date2}.",howCounted:"Come vengono contati",ruleAll:"Ogni riga dei dati IMB sui gruppi etnici: un gruppo etnico in un paese.",ruleUnreached:"Priorità di perdizione IMB da 0 a 2: meno del 2% evangelici.",ruleFrontier:"Priorità di perdizione IMB 0: meno dello 0,1% evangelici. Un sottoinsieme dei non raggiunti.",ruleDoxa:"Ogni gruppo dell’elenco di preghiera DOXA, abbinato ai dati IMB per popolo e paese. Non tutti sono di frontiera."},hm={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}"},mm={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe",collapseLegend:"Recolher a legenda",expandLegend:"Expandir a legenda",toggleLegend:"Mostrar ou ocultar a legenda"},bm={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"},$m={title:"Acesso à internet onde vivem os povos sem envolvimento",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"baixo, abaixo de 25%",unknown:"não medido"},peopleGroup:"povo",caveat:"Números NACIONAIS (Banco Mundial). A conectividade por cidade não está disponível publicamente — não deduza uma cidade a partir do país.",sheet:{close:"Fechar",ai:"Estes dados foram encontrados por pesquisa aprofundada com IA — podem conter informações falsas.",dismiss:"Dispensar",internetUsers:"Usuários de internet",measured:"Medido",mobilePer100:"Celulares por 100",peopleGroups:"Povos",topPlatform:"Plataforma principal",unknown:"desconhecido",carriers:"Operadoras e provedores ({n})",socialPlatforms:"Redes sociais",note:"Números nacionais, não medições por cidade. Os nomes das operadoras são titulares de registros ASN (incluem bancos e universidades além de provedores), então a marcação de operadora é uma heurística pelo nome, não uma classificação verificada."}},_m={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"},ym={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"},vm={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."}},wm={_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"},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_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…"}},xm={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."},km={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"}},Lm={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."},Am={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},Sm={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},Pm={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},Em={"%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."},Cm={placeholder:"Povo, local, língua, religião",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"},sections:{within:"Dentro de {selection}",allData:"Todos os dados DOXA"}},Tm={title:"Estúdio de plugins",navLabel:"Plugins por capacidade",countLabel:"{bundles} pacotes · {elements} plugins listados aqui",changeLanguage:"Mudar idioma",copyEmbed:"Copiar código de incorporação",copy:"Copiar",copied:"Copiado",scriptEmbed:"Incorporação por script",loading:"Carregando {name}…",couldNotLoad:"Não foi possível carregar {name}.",chooseElement:"Escolha um plugin na lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Recolher tudo",noMatch:"Nenhum plugin corresponde a “{query}”.",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sem página própria",cap5:"Shell do aplicativo",cap4:"Composto",cap3:"Multivisualização",cap2:"Predefinição",cap1:"Único",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher",partOf:"parte de {name}, não publicada separadamente"},Rm={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"},Nm={kicker:"DOXA · Visão",title:"Cada povo. Cada lugar.",tagline:"De todos os grupos étnicos do mundo àqueles pelos quais a DOXA ora, contados a partir dos dados.",funnelLabel:"De todos os grupos étnicos aos grupos étnicos da DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, em cada país onde vive",unreachedLabel:"Não alcançados",unreachedNote:"menos de 2% evangélicos",frontierLabel:"Fronteira",frontierNote:"menos de 0,1% evangélicos",doxaLabel:"Grupos étnicos da DOXA",doxaNote:"{frontier} deles são de fronteira",people:"{n} pessoas",sources:"Grupos étnicos: {imb}, dados de {date}. Lista da DOXA: pray.doxa.life, {date2}.",howCounted:"Como são contados",ruleAll:"Cada linha dos dados de grupos étnicos do IMB: um grupo étnico em um país.",ruleUnreached:"Prioridade de perdição do IMB de 0 a 2: menos de 2% evangélicos.",ruleFrontier:"Prioridade de perdição do IMB 0: menos de 0,1% evangélicos. Um subconjunto dos não alcançados.",ruleDoxa:"Cada grupo da lista de oração da DOXA, associado aos dados do IMB por povo e país. Nem todos são de fronteira."},Om={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}"},Fm={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda"},Mm={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"},Im={title:"Acces la internet unde trăiesc popoarele fără implicare",bands:{yes:"conectat 60%+",partial:"parțial 25–59%",no:"scăzut, sub 25%",unknown:"nemăsurat"},peopleGroup:"popor",caveat:"Cifre NAȚIONALE (Banca Mondială). Conectivitatea pe oraș nu este disponibilă public — nu deduceți un oraș din datele țării.",sheet:{close:"Închide",ai:"Aceste date au fost găsite prin cercetare aprofundată cu IA — pot conține informații false.",dismiss:"Închide notificarea",internetUsers:"Utilizatori de internet",measured:"Măsurat",mobilePer100:"Mobile la 100",peopleGroups:"Popoare",topPlatform:"Platforma principală",unknown:"necunoscut",carriers:"Operatori și ISP-uri ({n})",socialPlatforms:"Platforme sociale",note:"Cifre naționale, nu măsurători pe oraș. Numele operatorilor sunt titulari de înregistrări ASN (printre ei se află și bănci și universități, nu doar ISP-uri), deci eticheta de operator este o euristică după nume, nu o clasificare verificată."}},Dm={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"},jm={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"},zm={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ă."}},Gm={_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"},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_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…"}},Um={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."},Bm={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"}},Vm={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."},qm={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},Wm={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},Hm={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},Km={"%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."},Xm={placeholder:"Popor, loc, limbă, religie",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"}},Ym={title:"Studio de pluginuri",navLabel:"Pluginuri după capacitate",countLabel:"{bundles} pachete · {elements} pluginuri listate aici",changeLanguage:"Schimbă limba",copyEmbed:"Copiază codul de încorporare",copy:"Copiază",copied:"Copiat",scriptEmbed:"Încorporare prin script",loading:"Se încarcă {name}…",couldNotLoad:"{name} nu a putut fi încărcat.",chooseElement:"Alegeți un plugin din listă.",filterPlaceholder:"Filtrează pluginurile",collapseAll:"Restrânge tot",noMatch:"Niciun plugin nu corespunde cu „{query}”.",openSection:"Deschide {cap}, {label}",part:"parte",noStandalone:"fără pagină proprie",cap5:"Cadru de aplicație",cap4:"Compus",cap3:"Vizualizări multiple",cap2:"Presetat",cap1:"Simplu",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge",partOf:"parte din {name}, nepublicată separat"},Zm={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ă"},Jm={kicker:"DOXA · Viziune",title:"Fiecare popor. Fiecare loc.",tagline:"De la toate grupurile etnice ale lumii la cele pentru care se roagă DOXA, numărate din date.",funnelLabel:"De la toate grupurile etnice la grupurile etnice DOXA",allLabel:"Grupuri etnice",allNote:"fiecare grup etnic, în fiecare țară în care trăiește",unreachedLabel:"Neatinse",unreachedNote:"sub 2% evanghelici",frontierLabel:"Frontieră",frontierNote:"sub 0,1% evanghelici",doxaLabel:"Grupuri etnice DOXA",doxaNote:"{frontier} dintre ele sunt de frontieră",people:"{n} oameni",sources:"Grupuri etnice: {imb}, date din {date}. Lista DOXA: pray.doxa.life, {date2}.",howCounted:"Cum sunt numărate",ruleAll:"Fiecare rând din datele IMB despre grupuri etnice: un grup etnic într-o țară.",ruleUnreached:"Prioritatea de pierzare IMB 0–2: sub 2% evanghelici.",ruleFrontier:"Prioritatea de pierzare IMB 0: sub 0,1% evanghelici. O submulțime a celor neatinse.",ruleDoxa:"Fiecare grup de pe lista de rugăciune DOXA, potrivit cu datele IMB după popor și țară. Nu toate sunt de frontieră."},Qm={title:"Все народы",locations:"{n} мест (народ × страна)",doxa:"Народы DOXA",frontier:"Рубежные — ничего не начато",unreached:"Недостигнутые — работа начинается",reached:"Достигнутые — церковь есть",hint:"Нажмите на строку, чтобы увидеть все · ещё раз — чтобы показать всё",loading:"Загрузка всех народов…",loadError:"Не удалось загрузить карту.",pray:"Молиться за них →",population:"нас. {n}"},eb={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду"},tb={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:"Плакатов в ряду"},ob={title:"Доступ к интернету там, где живут народы без вовлечённости",bands:{yes:"подключено 60%+",partial:"частично 25–59%",no:"низкий, менее 25%",unknown:"не измерено"},peopleGroup:"народ",caveat:"НАЦИОНАЛЬНЫЕ данные (Всемирный банк). Данных о подключении по городам в открытом доступе нет — не судите о городе по стране.",sheet:{close:"Закрыть",ai:"Эти данные найдены с помощью углублённого поиска ИИ и могут содержать ошибки.",dismiss:"Скрыть",internetUsers:"Пользователи интернета",measured:"Год измерения",mobilePer100:"Мобильных на 100",peopleGroups:"Народы",topPlatform:"Главная платформа",unknown:"неизвестно",carriers:"Операторы и провайдеры ({n})",socialPlatforms:"Социальные платформы",note:"Национальные данные, а не измерения по городам. Названия операторов — это владельцы записей в реестре ASN; среди них есть банки и университеты, а не только провайдеры, поэтому пометка «оператор» — эвристика по названию, а не проверенная классификация."}},nb={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:"Элементы управления картой"},ab={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:"Место"},sb={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},rb={_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:"Фильм «Иисус»"},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_gaps:"Пробелы и возможности",t_bridges:"Городские мосты",t_deaf:"Пробел у глухих",t_resources:"Ресурсы по народам",t_languages:"Языки по странам",t_growth:"Доступ и рост населения"},pages:{listTitle:"Ресурсы Евангелия по языкам",chartsTitle:"Ресурсы Евангелия — по языкам",loadingTables:"Загрузка таблиц ресурсов…"}},ib={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:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра."},lb={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:"Снять выделение"}},cb={menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntro:"Разделите молитвенный труд на группы по пятьдесят и по сто — так Иисус накормил 5000 (Луки 9:14). Каждый плакат — это список из 100, о котором можно молиться, распечатать и повесить на стену, молясь о них по имени их народа."},ub={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},db={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},pb={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},gb={"%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.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},fb={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"}},hb={title:"Студия плагинов",navLabel:"Плагины по возможностям",countLabel:"Здесь: пакетов {bundles} · плагинов {elements}",changeLanguage:"Сменить язык",copyEmbed:"Скопировать код встраивания",copy:"Копировать",copied:"Скопировано",scriptEmbed:"Встраивание через скрипт",loading:"Загрузка {name}…",couldNotLoad:"Не удалось загрузить {name}.",chooseElement:"Выберите плагин из списка.",filterPlaceholder:"Фильтр плагинов",collapseAll:"Свернуть всё",noMatch:"Нет плагинов, соответствующих «{query}».",openSection:"Открыть {cap}, {label}",part:"часть",noStandalone:"нет отдельной страницы",cap5:"Оболочка приложения",cap4:"Составной",cap3:"Несколько видов",cap2:"Предустановка",cap1:"Одиночный",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",partOf:"часть {name}, не публикуется отдельно"},mb={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:"Карта"},bb={kicker:"DOXA · Видение",title:"Каждый народ. Каждое место.",tagline:"От всех народов мира до тех, за кого молится DOXA, — по данным.",funnelLabel:"От всех народов до народов DOXA",allLabel:"Народы",allNote:"каждый народ в каждой стране, где он живёт",unreachedLabel:"Недостигнутые",unreachedNote:"менее 2% евангельских христиан",frontierLabel:"Рубежные",frontierNote:"менее 0,1% евангельских христиан",doxaLabel:"Народы DOXA",doxaNote:"из них рубежных: {frontier}",people:"{n} человек",sources:"Народы: {imb}, данные на {date}. Список DOXA: pray.doxa.life, {date2}.",howCounted:"Как это посчитано",ruleAll:"Каждая строка данных IMB о народах: один народ в одной стране.",ruleUnreached:"Приоритет IMB 0–2: менее 2% евангельских христиан.",ruleFrontier:"Приоритет IMB 0: менее 0,1% евангельских христиан. Часть недостигнутых.",ruleDoxa:"Каждая группа из молитвенного списка DOXA, сопоставленная с данными IMB по народу и стране. Не все из них рубежные."},$b={title:"所有族群",locations:"{n} 个族群–国家位置",doxa:"DOXA 族群",frontier:"前沿族群 — 尚未开始",unreached:"未得之民 — 事工起步",reached:"已得之民 — 教会已在",hint:"点击一行查看全部 · 再次点击显示所有",loading:"正在加载所有族群…",loadError:"无法加载地图。",pray:"为他们祷告 →",population:"人口 {n}"},_b={backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例"},yb={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:"每行海报数"},vb={title:"未参与族群所在地的互联网接入",bands:{yes:"已联网 60%+",partial:"部分 25–59%",no:"低,低于 25%",unknown:"未测量"},peopleGroup:"族群",caveat:"全国数据(世界银行)。各城市的联网数据未公开——请勿用国家数据推断某个城市。",sheet:{close:"关闭",ai:"这些数据来自人工智能深度检索,可能包含错误信息。",dismiss:"忽略",internetUsers:"互联网用户",measured:"测量年份",mobilePer100:"每百人移动电话",peopleGroups:"族群",topPlatform:"主要平台",unknown:"未知",carriers:"运营商和互联网服务商({n})",socialPlatforms:"社交平台",note:"这是全国数据,不是城市测量值。运营商名称来自 ASN 注册持有者——其中除互联网服务商外还包括银行和大学,因此“运营商”标记是基于名称的推断,并非经过核实的分类。"}},wb={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:"地图控件"},xb={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:"地点"},kb={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:"本地图上的 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:"《耶稣传》"},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_gaps:"缺口与机会",t_bridges:"城市桥梁",t_deaf:"聋人缺口",t_resources:"按族群列出资源",t_languages:"各国语言",t_growth:"可及性与人口增长"},pages:{listTitle:"按语言列出的福音资源",chartsTitle:"福音资源 — 按语言",loadingTables:"正在加载资源表…"}},Ab={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:"无法加载民族数据。这是连接问题,而不是筛选问题。"},Sb={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:"清除选择"}},Pb={menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名單 — 禱告名單與海報",upg100WallTag:"禱告動員",upg100WallIntro:"將禱告的工作分成五十人、一百人一組 — 就像耶穌餵飽五千人那樣(路加福音 9:14)。每一張海報都是一份 100 人名單,你可以為他們禱告、列印出來、貼在牆上 — 按著他們族群的名字為他們禱告。"},Eb={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},Cb={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},Tb={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},Rb={"%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.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},Nb={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"}},Ob={title:"插件工作室",navLabel:"按能力分类的插件",countLabel:"此处列出 {bundles} 个包 · {elements} 个插件",changeLanguage:"切换语言",copyEmbed:"复制嵌入代码",copy:"复制",copied:"已复制",scriptEmbed:"脚本嵌入",loading:"正在加载 {name}…",couldNotLoad:"无法加载 {name}。",chooseElement:"请从列表中选择一个插件。",filterPlaceholder:"筛选插件",collapseAll:"全部折叠",noMatch:"没有与“{query}”匹配的插件。",openSection:"打开 {cap},{label}",part:"部分",noStandalone:"无独立页面",cap5:"应用外壳",cap4:"组合",cap3:"多视图",cap2:"预设",cap1:"单一",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",partOf:"{name} 的一部分,不单独发布"},Fb={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:"地圖"},Mb={kicker:"DOXA · 异象",title:"每一个民族,每一个地方。",tagline:"从世界上所有族群到 DOXA 为之祷告的族群,全部依据数据计算。",funnelLabel:"从所有族群到 DOXA 族群",allLabel:"族群",allNote:"每个族群在其居住的每个国家各计一次",unreachedLabel:"未得之民",unreachedNote:"福音派信徒少于 2%",frontierLabel:"前沿族群",frontierNote:"福音派信徒少于 0.1%",doxaLabel:"DOXA 族群",doxaNote:"其中 {frontier} 个为前沿族群",people:"{n} 人",sources:"族群:{imb},数据日期 {date}。DOXA 名单:pray.doxa.life,{date2}。",howCounted:"这些数字如何计算",ruleAll:"IMB 族群数据的每一行:一个国家中的一个族群。",ruleUnreached:"IMB 迷失优先级 0 至 2:福音派信徒少于 2%。",ruleFrontier:"IMB 迷失优先级 0:福音派信徒少于 0.1%。属于未得之民的一部分。",ruleDoxa:"DOXA 祷告名单上的每个族群,按民族和国家与 IMB 数据匹配。并非全部都是前沿族群。"};/*! + */const Bg=Symbol();var Vl;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Vl||(Vl={}));function Vg(){const e=ci(!0),t=e.run(()=>de({}));let o=[],n=[];const a=Pi({install(s){a._a=s,s.provide(Bg,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 qg={title:"كل مجموعات الشعوب",locations:"{n} موقعًا (مجموعة × بلد)",doxa:"مجموعات شعوب DOXA",frontier:"حدودية — لم يبدأ شيء",unreached:"غير مُبشَّرة — العمل يبدأ",reached:"مُبشَّرة — الكنيسة موجودة",hint:"انقر على صف لعرضها كلها · انقر مرة أخرى لعرض الكل",loading:"جارٍ تحميل كل مجموعات الشعوب…",loadError:"تعذّر تحميل الخريطة.",pray:"صلِّ لأجلهم ←",population:"السكان {n}"},Wg={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها"},Hg={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:"الملصقات في كل صف"},Kg={title:"الوصول إلى الإنترنت حيث تعيش الشعوب غير المنخرطة",bands:{yes:"متصل 60%+",partial:"جزئي 25–59%",no:"منخفض، أقل من 25%",unknown:"غير مُقاس"},peopleGroup:"شعب",caveat:"أرقام وطنية (البنك الدولي). بيانات الاتصال لكل مدينة غير متاحة للعامة — لا تستنتج حال مدينة من بيانات بلدها.",sheet:{close:"إغلاق",ai:"عُثر على هذه البيانات عبر بحث معمّق بالذكاء الاصطناعي — وقد تتضمن معلومات خاطئة.",dismiss:"إغلاق التنبيه",internetUsers:"مستخدمو الإنترنت",measured:"سنة القياس",mobilePer100:"اشتراكات الجوال لكل 100",peopleGroups:"الشعوب",topPlatform:"المنصة الأولى",unknown:"غير معروف",carriers:"شركات الاتصالات ومزودو الإنترنت ({n})",socialPlatforms:"منصات التواصل الاجتماعي",note:"أرقام وطنية وليست قياسات للمدن. أسماء شركات الاتصالات هي أسماء أصحاب سجلات ASN — وتشمل البنوك والجامعات إلى جانب مزودي الإنترنت، لذا فإن تصنيفها كشركات اتصالات تقدير مبني على الاسم وليس تصنيفًا مُتحقَّقًا منه."}},Xg={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:"أدوات التحكم بالخريطة"},Yg={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:"المكان"},Zg={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},Jg={_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:"فيلم يسوع"},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_gaps:"الفجوات والفرص",t_bridges:"جسور المدن",t_deaf:"فجوة الصم",t_resources:"الموارد حسب الشعب",t_languages:"اللغات حسب البلد",t_growth:"الوصول مقابل نمو السكان"},pages:{listTitle:"موارد الإنجيل حسب اللغة",chartsTitle:"موارد الإنجيل — حسب اللغة",loadingTables:"جارٍ تحميل جداول الموارد…"}},Qg={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:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية."},ef={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:"إلغاء التحديد"}},tf={menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم الصلاة والملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntro:"وزّع مهمة الصلاة في مجموعات من خمسين ومئة — كما أطعم يسوع الخمسة آلاف (لوقا ٩:١٤). كل ملصق هو قائمة من 100 يمكنك أن تصلي بها وتطبعها وتعلّقها على الحائط — مصلّيًا لأجلهم باسم شعبهم."},of={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},nf={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},af={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},sf={"%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.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},rf={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"}},lf={title:"استوديو الإضافات",navLabel:"الإضافات حسب القدرة",countLabel:"{bundles} حزمة · {elements} إضافة مدرجة هنا",changeLanguage:"تغيير اللغة",copyEmbed:"نسخ رمز التضمين",copy:"نسخ",copied:"تم النسخ",scriptEmbed:"تضمين عبر سكربت",loading:"جارٍ تحميل {name}…",couldNotLoad:"تعذّر تحميل {name}.",chooseElement:"اختر إضافة من القائمة.",filterPlaceholder:"تصفية الإضافات",collapseAll:"طي الكل",noMatch:"لا توجد إضافة تطابق «{query}».",openSection:"فتح {cap}، {label}",part:"جزء",noStandalone:"بلا صفحة مستقلة",cap5:"هيكل التطبيق",cap4:"مركّب",cap3:"متعدد العروض",cap2:"إعداد مسبق",cap1:"مفرد",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",partOf:"جزء من {name}، غير منشور بمفرده"},cf={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:"الخريطة"},uf={kicker:"DOXA · الرؤية",title:"كل شعب. كل مكان.",tagline:"من كل مجموعات الشعوب في العالم إلى التي تصلي لأجلها DOXA، محسوبةً من البيانات.",funnelLabel:"من كل مجموعات الشعوب إلى مجموعات شعوب DOXA",allLabel:"مجموعات الشعوب",allNote:"كل مجموعة شعب، في كل بلد تعيش فيه",unreachedLabel:"غير المُبشَّرة",unreachedNote:"أقل من 2% إنجيليون",frontierLabel:"الحدودية",frontierNote:"أقل من 0.1% إنجيليون",doxaLabel:"مجموعات شعوب DOXA",doxaNote:"{frontier} منها حدودية",people:"{n} نسمة",sources:"مجموعات الشعوب: {imb}، بيانات {date}. قائمة DOXA: ‏pray.doxa.life، {date2}.",howCounted:"كيف تُحسب هذه الأرقام",ruleAll:"كل صف في بيانات IMB لمجموعات الشعوب: مجموعة شعب واحدة في بلد واحد.",ruleUnreached:"أولوية الضياع لدى IMB من 0 إلى 2: أقل من 2% إنجيليون.",ruleFrontier:"أولوية الضياع لدى IMB رقم 0: أقل من 0.1% إنجيليون. جزء من غير المُبشَّرة.",ruleDoxa:"كل مجموعة في قائمة صلاة DOXA، مطابَقة مع بيانات IMB حسب الشعب والبلد. ليست كلها حدودية."},df={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}"},pf={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden"},gf={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"},ff={title:"Internetzugang dort, wo Volksgruppen ohne Engagement leben",bands:{yes:"verbunden 60%+",partial:"teilweise 25–59%",no:"gering, unter 25%",unknown:"nicht gemessen"},peopleGroup:"Volksgruppe",caveat:"LANDESWEITE Zahlen (Weltbank). Konnektivität je Stadt ist nicht öffentlich verfügbar — schließen Sie nicht vom Land auf eine Stadt.",sheet:{close:"Schließen",ai:"Diese Daten wurden durch KI-gestützte Recherche gefunden — sie können falsche Angaben enthalten.",dismiss:"Ausblenden",internetUsers:"Internetnutzer",measured:"Gemessen",mobilePer100:"Mobilfunk pro 100",peopleGroups:"Volksgruppen",topPlatform:"Wichtigste Plattform",unknown:"unbekannt",carriers:"Netzbetreiber & ISPs ({n})",socialPlatforms:"Soziale Plattformen",note:"Landesweite Zahlen, keine Messungen je Stadt. Betreibernamen sind ASN-Registerinhaber — darunter neben ISPs auch Banken und Universitäten; die Einstufung als Netzbetreiber ist daher eine Namensheuristik, keine geprüfte Klassifizierung."}},hf={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"},mf={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"},bf={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},$f={_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"},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_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…"}},_f={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."},yf={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"}},vf={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."},wf={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},xf={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},kf={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},Lf={"%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."},Af={placeholder:"Volk, Ort, Sprache, Religion",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"}},Sf={title:"Plugin-Studio",navLabel:"Plugins nach Fähigkeit",countLabel:"{bundles} Bundles · {elements} Plugins hier aufgeführt",changeLanguage:"Sprache ändern",copyEmbed:"Einbettung kopieren",copy:"Kopieren",copied:"Kopiert",scriptEmbed:"Skript-Einbettung",loading:"{name} wird geladen…",couldNotLoad:"{name} konnte nicht geladen werden.",chooseElement:"Wählen Sie ein Plugin aus der Liste.",filterPlaceholder:"Plugins filtern",collapseAll:"Alle einklappen",noMatch:"Kein Plugin entspricht „{query}“.",openSection:"{cap} öffnen, {label}",part:"Teil",noStandalone:"keine eigene Seite",cap5:"App-Shell",cap4:"Komposit",cap3:"Mehrfachansicht",cap2:"Voreinstellung",cap1:"Einzeln",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",partOf:"Teil von {name}, nicht eigenständig veröffentlicht"},Pf={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"},Ef={kicker:"DOXA · Vision",title:"Jedes Volk. Jeder Ort.",tagline:"Von allen Volksgruppen der Welt bis zu denen, für die DOXA betet, aus den Daten gezählt.",funnelLabel:"Von allen Volksgruppen zu den DOXA-Volksgruppen",allLabel:"Volksgruppen",allNote:"jede Volksgruppe in jedem Land, in dem sie lebt",unreachedLabel:"Unerreicht",unreachedNote:"unter 2 % Evangelikale",frontierLabel:"Frontier",frontierNote:"unter 0,1 % Evangelikale",doxaLabel:"DOXA-Volksgruppen",doxaNote:"{frontier} davon sind Frontier",people:"{n} Menschen",sources:"Volksgruppen: {imb}, Datenstand {date}. DOXA-Liste: pray.doxa.life, {date2}.",howCounted:"So wird gezählt",ruleAll:"Jede Zeile der IMB-Volksgruppendaten: eine Volksgruppe in einem Land.",ruleUnreached:"IMB-Lostness-Priorität 0 bis 2: weniger als 2 % Evangelikale.",ruleFrontier:"IMB-Lostness-Priorität 0: weniger als 0,1 % Evangelikale. Eine Teilmenge der Unerreichten.",ruleDoxa:"Jede Gruppe auf der DOXA-Gebetsliste, den IMB-Daten nach Volk und Land zugeordnet. Nicht alle sind Frontier."},Cf={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}"},Tf={backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend"},Rf={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"},Nf={title:"Internet access where unengaged people groups live",bands:{yes:"connected 60%+",partial:"partial 25–59%",no:"low, under 25%",unknown:"not measured"},peopleGroup:"people group",caveat:"NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country.",sheet:{close:"Close",ai:"Data was found by AI deep research — it is subject to false information.",dismiss:"Dismiss",internetUsers:"Internet users",measured:"Measured",mobilePer100:"Mobile per 100",peopleGroups:"People groups",topPlatform:"Top platform",unknown:"unknown",carriers:"Carriers & ISPs ({n})",socialPlatforms:"Social platforms",note:"National figures, not city measurements. Carrier names are ASN registry holders — that set includes banks and universities as well as ISPs, so the carrier flag is a name heuristic, not a verified classification."}},Of={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"},Ff={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"},Mf={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},If={_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"},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_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…"}},Df={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."},jf={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"}},zf={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."},Gf={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},Uf={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},Bf={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},Vf={"%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."},qf={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"},kinds:{people:"People Group + Country",peopleGroup:"People Group",bloc:"Affinity Block",cluster:"People Cluster",country:"Country",region:"Region",family:"Language Family",languageKind:"Language",dialect:"Dialect",religionKind:"Religion"},sections:{within:"Within {selection}",allData:"All DOXA Data"}},Wf={title:"Plugin Studio",navLabel:"Plugins by capability",countLabel:"{bundles} bundles · {elements} plugins listed here",changeLanguage:"Change language",copyEmbed:"Copy embed",copy:"Copy",copied:"Copied",scriptEmbed:"Script embed",loading:"Loading {name}…",couldNotLoad:"Could not load {name}.",chooseElement:"Choose a plugin from the list.",filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",openSection:"Open {cap}, {label}",part:"part",noStandalone:"no standalone page",cap5:"App shell",cap4:"Composite",cap3:"Multi-view",cap2:"Preset",cap1:"Single",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",partOf:"part of {name}, not published on its own"},Hf={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"},Kf={kicker:"DOXA · Vision",title:"Every people. Every place.",tagline:"From every people group on earth to the ones DOXA prays for, counted from the data.",funnelLabel:"From all people groups to DOXA people groups",allLabel:"People groups",allNote:"each people group, in each country it lives in",unreachedLabel:"Unreached",unreachedNote:"under 2% evangelical",frontierLabel:"Frontier",frontierNote:"under 0.1% evangelical",doxaLabel:"DOXA people groups",doxaNote:"{frontier} of them are frontier",people:"{n} people",sources:"People groups: {imb}, data of {date}. DOXA list: pray.doxa.life, {date2}.",howCounted:"How these are counted",ruleAll:"Every row of the IMB people-group data: one people group in one country.",ruleUnreached:"IMB lostness priority 0 to 2: less than 2% evangelical.",ruleFrontier:"IMB lostness priority 0: less than 0.1% evangelical. A subset of the unreached.",ruleDoxa:"Every group on the DOXA prayer list, matched to the IMB data by people and country. Not all are frontier."},Xf={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}"},Yf={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda"},Zf={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"},Jf={title:"Acceso a internet donde viven pueblos sin implicación",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"bajo, menos del 25%",unknown:"sin medir"},peopleGroup:"pueblo",caveat:"Cifras NACIONALES (Banco Mundial). La conectividad por ciudad no está disponible públicamente: no deduzca una ciudad a partir de su país.",sheet:{close:"Cerrar",ai:"Estos datos se obtuvieron mediante investigación con IA y pueden contener información falsa.",dismiss:"Descartar",internetUsers:"Usuarios de internet",measured:"Medido",mobilePer100:"Móviles por cada 100",peopleGroups:"Pueblos",topPlatform:"Plataforma principal",unknown:"desconocido",carriers:"Operadores y proveedores de internet ({n})",socialPlatforms:"Redes sociales",note:"Cifras nacionales, no mediciones por ciudad. Los nombres de operadores son titulares de registros ASN (incluyen bancos y universidades además de proveedores), así que la marca de operador es una heurística por nombre, no una clasificación verificada."}},Qf={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"},eh={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"},th={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."}},oh={_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"},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_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…"}},nh={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."},ah={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"}},sh={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."},rh={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},ih={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},lh={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},ch={"%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."},uh={placeholder:"Pueblo, lugar, idioma, religión",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"},sections:{within:"Dentro de {selection}",allData:"Todos los datos DOXA"}},dh={title:"Estudio de plugins",navLabel:"Plugins por capacidad",countLabel:"{bundles} paquetes · {elements} plugins listados aquí",changeLanguage:"Cambiar idioma",copyEmbed:"Copiar código de inserción",copy:"Copiar",copied:"Copiado",scriptEmbed:"Inserción por script",loading:"Cargando {name}…",couldNotLoad:"No se pudo cargar {name}.",chooseElement:"Elija un plugin de la lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Contraer todo",noMatch:"Ningún plugin coincide con «{query}».",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sin página propia",cap5:"Contenedor de aplicación",cap4:"Compuesto",cap3:"Multivista",cap2:"Preajuste",cap1:"Individual",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer",partOf:"parte de {name}, no publicada por separado"},ph={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"},gh={kicker:"DOXA · Visión",title:"Cada pueblo. Cada lugar.",tagline:"De todos los grupos étnicos del mundo a aquellos por los que DOXA ora, contados a partir de los datos.",funnelLabel:"De todos los grupos étnicos a los grupos étnicos de DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, en cada país donde vive",unreachedLabel:"No alcanzados",unreachedNote:"menos del 2 % evangélicos",frontierLabel:"Frontera",frontierNote:"menos del 0,1 % evangélicos",doxaLabel:"Grupos étnicos de DOXA",doxaNote:"{frontier} de ellos son de frontera",people:"{n} personas",sources:"Grupos étnicos: {imb}, datos de {date}. Lista de DOXA: pray.doxa.life, {date2}.",howCounted:"Cómo se cuentan",ruleAll:"Cada fila de los datos de grupos étnicos del IMB: un grupo étnico en un país.",ruleUnreached:"Prioridad de perdición del IMB de 0 a 2: menos del 2 % evangélicos.",ruleFrontier:"Prioridad de perdición del IMB 0: menos del 0,1 % evangélicos. Un subconjunto de los no alcanzados.",ruleDoxa:"Cada grupo de la lista de oración de DOXA, vinculado a los datos del IMB por pueblo y país. No todos son de frontera."},fh={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}"},hh={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"},mh={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"},bh={title:"Accès à Internet là où vivent les peuples sans engagement",bands:{yes:"connecté 60 %+",partial:"partiel 25–59 %",no:"faible, moins de 25 %",unknown:"non mesuré"},peopleGroup:"peuple",caveat:"Chiffres NATIONAUX (Banque mondiale). La connectivité par ville n'est pas publique — ne déduisez pas une ville à partir de son pays.",sheet:{close:"Fermer",ai:"Ces données proviennent d'une recherche approfondie par IA — elles peuvent contenir des informations erronées.",dismiss:"Ignorer",internetUsers:"Internautes",measured:"Mesuré",mobilePer100:"Mobiles pour 100",peopleGroups:"Peuples",topPlatform:"Plateforme principale",unknown:"inconnu",carriers:"Opérateurs et FAI ({n})",socialPlatforms:"Réseaux sociaux",note:"Chiffres nationaux, pas des mesures par ville. Les noms d'opérateurs sont les titulaires de registres ASN (on y trouve aussi des banques et des universités à côté des FAI), donc l'étiquette « opérateur » est une heuristique fondée sur le nom, non une classification vérifiée."}},$h={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"},_h={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"},yh={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},vh={_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"},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_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…"}},wh={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."},xh={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"}},kh={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."},Lh={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},Ah={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},Sh={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},Ph={"%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."},Eh={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"},sections:{within:"Dans {selection}",allData:"Toutes les données DOXA"}},Ch={title:"Studio de plugins",navLabel:"Plugins par capacité",countLabel:"{bundles} paquets · {elements} plugins listés ici",changeLanguage:"Changer de langue",copyEmbed:"Copier le code d’intégration",copy:"Copier",copied:"Copié",scriptEmbed:"Intégration par script",loading:"Chargement de {name}…",couldNotLoad:"Impossible de charger {name}.",chooseElement:"Choisissez un plugin dans la liste.",filterPlaceholder:"Filtrer les plugins",collapseAll:"Tout replier",noMatch:"Aucun plugin ne correspond à « {query} ».",openSection:"Ouvrir {cap}, {label}",part:"partie",noStandalone:"pas de page autonome",cap5:"Coquille d’application",cap4:"Composite",cap3:"Multivue",cap2:"Préréglage",cap1:"Simple",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier",partOf:"partie de {name}, non publiée seule"},Th={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"},Rh={kicker:"DOXA · Vision",title:"Chaque peuple. Chaque lieu.",tagline:"De tous les groupes ethniques du monde à ceux pour qui DOXA prie, comptés à partir des données.",funnelLabel:"De tous les groupes ethniques aux groupes ethniques DOXA",allLabel:"Groupes ethniques",allNote:"chaque groupe ethnique, dans chaque pays où il vit",unreachedLabel:"Non atteints",unreachedNote:"moins de 2 % d’évangéliques",frontierLabel:"Frontière",frontierNote:"moins de 0,1 % d’évangéliques",doxaLabel:"Groupes ethniques DOXA",doxaNote:"dont {frontier} de frontière",people:"{n} personnes",sources:"Groupes ethniques : {imb}, données du {date}. Liste DOXA : pray.doxa.life, {date2}.",howCounted:"Comment ces chiffres sont comptés",ruleAll:"Chaque ligne des données IMB : un groupe ethnique dans un pays.",ruleUnreached:"Priorité de perdition IMB 0 à 2 : moins de 2 % d’évangéliques.",ruleFrontier:"Priorité de perdition IMB 0 : moins de 0,1 % d’évangéliques. Un sous-ensemble des non-atteints.",ruleDoxa:"Chaque groupe de la liste de prière DOXA, rapproché des données IMB par peuple et pays. Tous ne sont pas de frontière."},Nh={title:"सभी जनसमूह",locations:"{n} स्थान (समूह × देश)",doxa:"DOXA जनसमूह",frontier:"सीमांत — कुछ शुरू नहीं हुआ",unreached:"अप्रचारित — काम शुरू हो रहा है",reached:"प्रचारित — कलीसिया मौजूद है",hint:"सभी देखने के लिए पंक्ति पर क्लिक करें · सब कुछ देखने के लिए फिर क्लिक करें",loading:"सभी जनसमूह लोड हो रहे हैं…",loadError:"मानचित्र लोड नहीं हो सका।",pray:"उनके लिए प्रार्थना करें →",population:"जनसंख्या {n}"},Oh={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ"},Fh={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:"प्रति पंक्ति पोस्टर"},Mh={title:"इंटरनेट पहुँच जहाँ बिना सहभागिता वाले जनसमूह रहते हैं",bands:{yes:"जुड़ा हुआ 60%+",partial:"आंशिक 25–59%",no:"कम, 25% से नीचे",unknown:"मापा नहीं गया"},peopleGroup:"जनसमूह",caveat:"राष्ट्रीय आँकड़े (विश्व बैंक)। शहर-स्तर की कनेक्टिविटी सार्वजनिक रूप से उपलब्ध नहीं है — देश के आँकड़ों से किसी शहर का अनुमान न लगाएँ।",sheet:{close:"बंद करें",ai:"यह डेटा एआई गहन शोध से मिला है — इसमें गलत जानकारी हो सकती है।",dismiss:"हटाएँ",internetUsers:"इंटरनेट उपयोगकर्ता",measured:"मापा गया",mobilePer100:"प्रति 100 मोबाइल",peopleGroups:"जनसमूह",topPlatform:"शीर्ष प्लेटफ़ॉर्म",unknown:"अज्ञात",carriers:"कैरियर और आईएसपी ({n})",socialPlatforms:"सोशल प्लेटफ़ॉर्म",note:"ये राष्ट्रीय आँकड़े हैं, शहरों के माप नहीं। कैरियर के नाम ASN रजिस्ट्री धारकों के हैं — उनमें आईएसपी के साथ बैंक और विश्वविद्यालय भी शामिल हैं, इसलिए कैरियर का चिह्न नाम पर आधारित अनुमान है, सत्यापित वर्गीकरण नहीं।"}},Ih={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:"मानचित्र नियंत्रण"},Dh={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:"स्थान"},jh={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},zh={_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:"यीशु फ़िल्म"},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_gaps:"कमियाँ और अवसर",t_bridges:"नगर सेतु",t_deaf:"बधिर कमी",t_resources:"जनसमूह अनुसार संसाधन",t_languages:"देश अनुसार भाषाएँ",t_growth:"पहुँच बनाम जनसंख्या वृद्धि"},pages:{listTitle:"भाषा अनुसार सुसमाचार संसाधन",chartsTitle:"सुसमाचार संसाधन — भाषा अनुसार",loadingTables:"संसाधन तालिकाएँ लोड हो रही हैं…"}},Gh={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:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।"},Uh={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:"चयन हटाएँ"}},Bh={menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना लामबंदी",upg100WallIntro:"प्रार्थना के काम को पचास-पचास और सौ-सौ के समूहों में बाँटें — जैसे यीशु ने 5,000 लोगों को खिलाया (लूका 9:14)। हर पोस्टर 100 की एक सूची है जिसके लिए आप प्रार्थना कर सकते हैं, छाप सकते हैं और दीवार पर लगा सकते हैं — उनके लिए उनके जनसमूह के नाम से प्रार्थना करते हुए।"},Vh={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},qh={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},Wh={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},Hh={"%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.":"नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"},Kh={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"}},Xh={title:"प्लगइन स्टूडियो",navLabel:"क्षमता के अनुसार प्लगइन",countLabel:"{bundles} बंडल · यहाँ {elements} प्लगइन सूचीबद्ध",changeLanguage:"भाषा बदलें",copyEmbed:"एम्बेड कोड कॉपी करें",copy:"कॉपी करें",copied:"कॉपी हो गया",scriptEmbed:"स्क्रिप्ट एम्बेड",loading:"{name} लोड हो रहा है…",couldNotLoad:"{name} लोड नहीं हो सका।",chooseElement:"सूची से कोई प्लगइन चुनें।",filterPlaceholder:"प्लगइन फ़िल्टर करें",collapseAll:"सभी संक्षिप्त करें",noMatch:"“{query}” से कोई प्लगइन मेल नहीं खाता।",openSection:"{cap} खोलें, {label}",part:"भाग",noStandalone:"कोई अलग पेज नहीं",cap5:"ऐप शेल",cap4:"संयुक्त",cap3:"बहु-दृश्य",cap2:"प्रीसेट",cap1:"एकल",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",partOf:"{name} का भाग, अलग से प्रकाशित नहीं"},Yh={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:"मानचित्र"},Zh={kicker:"DOXA · दर्शन",title:"हर जनसमूह। हर स्थान।",tagline:"दुनिया के हर जनसमूह से उन तक जिनके लिए DOXA प्रार्थना करता है, आँकड़ों से गिने गए।",funnelLabel:"सभी जनसमूहों से DOXA जनसमूहों तक",allLabel:"जनसमूह",allNote:"हर जनसमूह, हर उस देश में जहाँ वह रहता है",unreachedLabel:"अप्रचारित",unreachedNote:"2% से कम इवेंजेलिकल",frontierLabel:"सीमांत",frontierNote:"0.1% से कम इवेंजेलिकल",doxaLabel:"DOXA जनसमूह",doxaNote:"इनमें से {frontier} सीमांत हैं",people:"{n} लोग",sources:"जनसमूह: {imb}, {date} के आँकड़े। DOXA सूची: pray.doxa.life, {date2}।",howCounted:"ये कैसे गिने गए",ruleAll:"IMB जनसमूह आँकड़ों की हर पंक्ति: एक देश में एक जनसमूह।",ruleUnreached:"IMB लॉस्टनेस प्राथमिकता 0 से 2: 2% से कम इवेंजेलिकल।",ruleFrontier:"IMB लॉस्टनेस प्राथमिकता 0: 0.1% से कम इवेंजेलिकल। अप्रचारितों का एक भाग।",ruleDoxa:"DOXA प्रार्थना सूची का हर समूह, जनसमूह और देश के आधार पर IMB आँकड़ों से मिलाया गया। सभी सीमांत नहीं हैं।"},Jh={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}"},Qh={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio",collapseLegend:"Comprimi la legenda",expandLegend:"Espandi la legenda",toggleLegend:"Mostra o nascondi la legenda"},em={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"},tm={title:"Accesso a internet dove vivono i popoli senza impegno",bands:{yes:"connesso 60%+",partial:"parziale 25–59%",no:"basso, sotto il 25%",unknown:"non misurato"},peopleGroup:"popolo",caveat:"Dati NAZIONALI (Banca Mondiale). La connettività per città non è disponibile pubblicamente: non dedurre una città dal suo paese.",sheet:{close:"Chiudi",ai:"Questi dati provengono da una ricerca approfondita con IA e possono contenere informazioni errate.",dismiss:"Ignora",internetUsers:"Utenti internet",measured:"Misurato",mobilePer100:"Cellulari ogni 100",peopleGroups:"Popoli",topPlatform:"Piattaforma principale",unknown:"sconosciuto",carriers:"Operatori e ISP ({n})",socialPlatforms:"Piattaforme social",note:"Dati nazionali, non misure per città. I nomi degli operatori sono titolari di registri ASN (includono banche e università oltre agli ISP), quindi l'etichetta di operatore è un'euristica basata sul nome, non una classificazione verificata."}},om={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"},nm={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"},am={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},sm={_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Ù"},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_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…"}},rm={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."},im={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"}},lm={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."},cm={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},um={country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},dm={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},pm={"%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."},gm={placeholder:"Popolo, luogo, lingua, religione",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"}},fm={title:"Studio dei plugin",navLabel:"Plugin per capacità",countLabel:"{bundles} pacchetti · {elements} plugin elencati qui",changeLanguage:"Cambia lingua",copyEmbed:"Copia codice di incorporamento",copy:"Copia",copied:"Copiato",scriptEmbed:"Incorporamento tramite script",loading:"Caricamento di {name}…",couldNotLoad:"Impossibile caricare {name}.",chooseElement:"Scegli un plugin dall’elenco.",filterPlaceholder:"Filtra i plugin",collapseAll:"Comprimi tutto",noMatch:"Nessun plugin corrisponde a «{query}».",openSection:"Apri {cap}, {label}",part:"parte",noStandalone:"nessuna pagina propria",cap5:"Shell dell’app",cap4:"Composito",cap3:"Multivista",cap2:"Preimpostato",cap1:"Singolo",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi",partOf:"parte di {name}, non pubblicata da sola"},hm={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"},mm={kicker:"DOXA · Visione",title:"Ogni popolo. Ogni luogo.",tagline:"Da tutti i gruppi etnici del mondo a quelli per cui DOXA prega, contati dai dati.",funnelLabel:"Da tutti i gruppi etnici ai gruppi etnici DOXA",allLabel:"Gruppi etnici",allNote:"ogni gruppo etnico, in ogni paese in cui vive",unreachedLabel:"Non raggiunti",unreachedNote:"meno del 2% evangelici",frontierLabel:"Frontiera",frontierNote:"meno dello 0,1% evangelici",doxaLabel:"Gruppi etnici DOXA",doxaNote:"{frontier} di questi sono di frontiera",people:"{n} persone",sources:"Gruppi etnici: {imb}, dati del {date}. Elenco DOXA: pray.doxa.life, {date2}.",howCounted:"Come vengono contati",ruleAll:"Ogni riga dei dati IMB sui gruppi etnici: un gruppo etnico in un paese.",ruleUnreached:"Priorità di perdizione IMB da 0 a 2: meno del 2% evangelici.",ruleFrontier:"Priorità di perdizione IMB 0: meno dello 0,1% evangelici. Un sottoinsieme dei non raggiunti.",ruleDoxa:"Ogni gruppo dell’elenco di preghiera DOXA, abbinato ai dati IMB per popolo e paese. Non tutti sono di frontiera."},bm={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}"},$m={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe",collapseLegend:"Recolher a legenda",expandLegend:"Expandir a legenda",toggleLegend:"Mostrar ou ocultar a legenda"},_m={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"},ym={title:"Acesso à internet onde vivem os povos sem envolvimento",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"baixo, abaixo de 25%",unknown:"não medido"},peopleGroup:"povo",caveat:"Números NACIONAIS (Banco Mundial). A conectividade por cidade não está disponível publicamente — não deduza uma cidade a partir do país.",sheet:{close:"Fechar",ai:"Estes dados foram encontrados por pesquisa aprofundada com IA — podem conter informações falsas.",dismiss:"Dispensar",internetUsers:"Usuários de internet",measured:"Medido",mobilePer100:"Celulares por 100",peopleGroups:"Povos",topPlatform:"Plataforma principal",unknown:"desconhecido",carriers:"Operadoras e provedores ({n})",socialPlatforms:"Redes sociais",note:"Números nacionais, não medições por cidade. Os nomes das operadoras são titulares de registros ASN (incluem bancos e universidades além de provedores), então a marcação de operadora é uma heurística pelo nome, não uma classificação verificada."}},vm={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"},wm={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"},xm={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."}},km={_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"},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_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…"}},Lm={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."},Am={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"}},Sm={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."},Pm={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},Em={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},Cm={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},Tm={"%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."},Rm={placeholder:"Povo, local, língua, religião",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"},sections:{within:"Dentro de {selection}",allData:"Todos os dados DOXA"}},Nm={title:"Estúdio de plugins",navLabel:"Plugins por capacidade",countLabel:"{bundles} pacotes · {elements} plugins listados aqui",changeLanguage:"Mudar idioma",copyEmbed:"Copiar código de incorporação",copy:"Copiar",copied:"Copiado",scriptEmbed:"Incorporação por script",loading:"Carregando {name}…",couldNotLoad:"Não foi possível carregar {name}.",chooseElement:"Escolha um plugin na lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Recolher tudo",noMatch:"Nenhum plugin corresponde a “{query}”.",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sem página própria",cap5:"Shell do aplicativo",cap4:"Composto",cap3:"Multivisualização",cap2:"Predefinição",cap1:"Único",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher",partOf:"parte de {name}, não publicada separadamente"},Om={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"},Fm={kicker:"DOXA · Visão",title:"Cada povo. Cada lugar.",tagline:"De todos os grupos étnicos do mundo àqueles pelos quais a DOXA ora, contados a partir dos dados.",funnelLabel:"De todos os grupos étnicos aos grupos étnicos da DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, em cada país onde vive",unreachedLabel:"Não alcançados",unreachedNote:"menos de 2% evangélicos",frontierLabel:"Fronteira",frontierNote:"menos de 0,1% evangélicos",doxaLabel:"Grupos étnicos da DOXA",doxaNote:"{frontier} deles são de fronteira",people:"{n} pessoas",sources:"Grupos étnicos: {imb}, dados de {date}. Lista da DOXA: pray.doxa.life, {date2}.",howCounted:"Como são contados",ruleAll:"Cada linha dos dados de grupos étnicos do IMB: um grupo étnico em um país.",ruleUnreached:"Prioridade de perdição do IMB de 0 a 2: menos de 2% evangélicos.",ruleFrontier:"Prioridade de perdição do IMB 0: menos de 0,1% evangélicos. Um subconjunto dos não alcançados.",ruleDoxa:"Cada grupo da lista de oração da DOXA, associado aos dados do IMB por povo e país. Nem todos são de fronteira."},Mm={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}"},Im={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda"},Dm={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"},jm={title:"Acces la internet unde trăiesc popoarele fără implicare",bands:{yes:"conectat 60%+",partial:"parțial 25–59%",no:"scăzut, sub 25%",unknown:"nemăsurat"},peopleGroup:"popor",caveat:"Cifre NAȚIONALE (Banca Mondială). Conectivitatea pe oraș nu este disponibilă public — nu deduceți un oraș din datele țării.",sheet:{close:"Închide",ai:"Aceste date au fost găsite prin cercetare aprofundată cu IA — pot conține informații false.",dismiss:"Închide notificarea",internetUsers:"Utilizatori de internet",measured:"Măsurat",mobilePer100:"Mobile la 100",peopleGroups:"Popoare",topPlatform:"Platforma principală",unknown:"necunoscut",carriers:"Operatori și ISP-uri ({n})",socialPlatforms:"Platforme sociale",note:"Cifre naționale, nu măsurători pe oraș. Numele operatorilor sunt titulari de înregistrări ASN (printre ei se află și bănci și universități, nu doar ISP-uri), deci eticheta de operator este o euristică după nume, nu o clasificare verificată."}},zm={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"},Gm={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"},Um={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ă."}},Bm={_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"},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_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…"}},Vm={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."},qm={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"}},Wm={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."},Hm={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},Km={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},Xm={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},Ym={"%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."},Zm={placeholder:"Popor, loc, limbă, religie",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"}},Jm={title:"Studio de pluginuri",navLabel:"Pluginuri după capacitate",countLabel:"{bundles} pachete · {elements} pluginuri listate aici",changeLanguage:"Schimbă limba",copyEmbed:"Copiază codul de încorporare",copy:"Copiază",copied:"Copiat",scriptEmbed:"Încorporare prin script",loading:"Se încarcă {name}…",couldNotLoad:"{name} nu a putut fi încărcat.",chooseElement:"Alegeți un plugin din listă.",filterPlaceholder:"Filtrează pluginurile",collapseAll:"Restrânge tot",noMatch:"Niciun plugin nu corespunde cu „{query}”.",openSection:"Deschide {cap}, {label}",part:"parte",noStandalone:"fără pagină proprie",cap5:"Cadru de aplicație",cap4:"Compus",cap3:"Vizualizări multiple",cap2:"Presetat",cap1:"Simplu",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge",partOf:"parte din {name}, nepublicată separat"},Qm={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ă"},eb={kicker:"DOXA · Viziune",title:"Fiecare popor. Fiecare loc.",tagline:"De la toate grupurile etnice ale lumii la cele pentru care se roagă DOXA, numărate din date.",funnelLabel:"De la toate grupurile etnice la grupurile etnice DOXA",allLabel:"Grupuri etnice",allNote:"fiecare grup etnic, în fiecare țară în care trăiește",unreachedLabel:"Neatinse",unreachedNote:"sub 2% evanghelici",frontierLabel:"Frontieră",frontierNote:"sub 0,1% evanghelici",doxaLabel:"Grupuri etnice DOXA",doxaNote:"{frontier} dintre ele sunt de frontieră",people:"{n} oameni",sources:"Grupuri etnice: {imb}, date din {date}. Lista DOXA: pray.doxa.life, {date2}.",howCounted:"Cum sunt numărate",ruleAll:"Fiecare rând din datele IMB despre grupuri etnice: un grup etnic într-o țară.",ruleUnreached:"Prioritatea de pierzare IMB 0–2: sub 2% evanghelici.",ruleFrontier:"Prioritatea de pierzare IMB 0: sub 0,1% evanghelici. O submulțime a celor neatinse.",ruleDoxa:"Fiecare grup de pe lista de rugăciune DOXA, potrivit cu datele IMB după popor și țară. Nu toate sunt de frontieră."},tb={title:"Все народы",locations:"{n} мест (народ × страна)",doxa:"Народы DOXA",frontier:"Рубежные — ничего не начато",unreached:"Недостигнутые — работа начинается",reached:"Достигнутые — церковь есть",hint:"Нажмите на строку, чтобы увидеть все · ещё раз — чтобы показать всё",loading:"Загрузка всех народов…",loadError:"Не удалось загрузить карту.",pray:"Молиться за них →",population:"нас. {n}"},ob={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду"},nb={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={title:"Доступ к интернету там, где живут народы без вовлечённости",bands:{yes:"подключено 60%+",partial:"частично 25–59%",no:"низкий, менее 25%",unknown:"не измерено"},peopleGroup:"народ",caveat:"НАЦИОНАЛЬНЫЕ данные (Всемирный банк). Данных о подключении по городам в открытом доступе нет — не судите о городе по стране.",sheet:{close:"Закрыть",ai:"Эти данные найдены с помощью углублённого поиска ИИ и могут содержать ошибки.",dismiss:"Скрыть",internetUsers:"Пользователи интернета",measured:"Год измерения",mobilePer100:"Мобильных на 100",peopleGroups:"Народы",topPlatform:"Главная платформа",unknown:"неизвестно",carriers:"Операторы и провайдеры ({n})",socialPlatforms:"Социальные платформы",note:"Национальные данные, а не измерения по городам. Названия операторов — это владельцы записей в реестре ASN; среди них есть банки и университеты, а не только провайдеры, поэтому пометка «оператор» — эвристика по названию, а не проверенная классификация."}},sb={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:"Элементы управления картой"},rb={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:"Место"},ib={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:"Народы 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:"Фильм «Иисус»"},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_gaps:"Пробелы и возможности",t_bridges:"Городские мосты",t_deaf:"Пробел у глухих",t_resources:"Ресурсы по народам",t_languages:"Языки по странам",t_growth:"Доступ и рост населения"},pages:{listTitle:"Ресурсы Евангелия по языкам",chartsTitle:"Ресурсы Евангелия — по языкам",loadingTables:"Загрузка таблиц ресурсов…"}},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:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра."},ub={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:"Снять выделение"}},db={menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntro:"Разделите молитвенный труд на группы по пятьдесят и по сто — так Иисус накормил 5000 (Луки 9:14). Каждый плакат — это список из 100, о котором можно молиться, распечатать и повесить на стену, молясь о них по имени их народа."},pb={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},gb={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},fb={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},hb={"%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.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},mb={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"}},bb={title:"Студия плагинов",navLabel:"Плагины по возможностям",countLabel:"Здесь: пакетов {bundles} · плагинов {elements}",changeLanguage:"Сменить язык",copyEmbed:"Скопировать код встраивания",copy:"Копировать",copied:"Скопировано",scriptEmbed:"Встраивание через скрипт",loading:"Загрузка {name}…",couldNotLoad:"Не удалось загрузить {name}.",chooseElement:"Выберите плагин из списка.",filterPlaceholder:"Фильтр плагинов",collapseAll:"Свернуть всё",noMatch:"Нет плагинов, соответствующих «{query}».",openSection:"Открыть {cap}, {label}",part:"часть",noStandalone:"нет отдельной страницы",cap5:"Оболочка приложения",cap4:"Составной",cap3:"Несколько видов",cap2:"Предустановка",cap1:"Одиночный",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",partOf:"часть {name}, не публикуется отдельно"},$b={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:"Карта"},_b={kicker:"DOXA · Видение",title:"Каждый народ. Каждое место.",tagline:"От всех народов мира до тех, за кого молится DOXA, — по данным.",funnelLabel:"От всех народов до народов DOXA",allLabel:"Народы",allNote:"каждый народ в каждой стране, где он живёт",unreachedLabel:"Недостигнутые",unreachedNote:"менее 2% евангельских христиан",frontierLabel:"Рубежные",frontierNote:"менее 0,1% евангельских христиан",doxaLabel:"Народы DOXA",doxaNote:"из них рубежных: {frontier}",people:"{n} человек",sources:"Народы: {imb}, данные на {date}. Список DOXA: pray.doxa.life, {date2}.",howCounted:"Как это посчитано",ruleAll:"Каждая строка данных IMB о народах: один народ в одной стране.",ruleUnreached:"Приоритет IMB 0–2: менее 2% евангельских христиан.",ruleFrontier:"Приоритет IMB 0: менее 0,1% евангельских христиан. Часть недостигнутых.",ruleDoxa:"Каждая группа из молитвенного списка DOXA, сопоставленная с данными IMB по народу и стране. Не все из них рубежные."},yb={title:"所有族群",locations:"{n} 个族群–国家位置",doxa:"DOXA 族群",frontier:"前沿族群 — 尚未开始",unreached:"未得之民 — 事工起步",reached:"已得之民 — 教会已在",hint:"点击一行查看全部 · 再次点击显示所有",loading:"正在加载所有族群…",loadError:"无法加载地图。",pray:"为他们祷告 →",population:"人口 {n}"},vb={backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例"},wb={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:"每行海报数"},xb={title:"未参与族群所在地的互联网接入",bands:{yes:"已联网 60%+",partial:"部分 25–59%",no:"低,低于 25%",unknown:"未测量"},peopleGroup:"族群",caveat:"全国数据(世界银行)。各城市的联网数据未公开——请勿用国家数据推断某个城市。",sheet:{close:"关闭",ai:"这些数据来自人工智能深度检索,可能包含错误信息。",dismiss:"忽略",internetUsers:"互联网用户",measured:"测量年份",mobilePer100:"每百人移动电话",peopleGroups:"族群",topPlatform:"主要平台",unknown:"未知",carriers:"运营商和互联网服务商({n})",socialPlatforms:"社交平台",note:"这是全国数据,不是城市测量值。运营商名称来自 ASN 注册持有者——其中除互联网服务商外还包括银行和大学,因此“运营商”标记是基于名称的推断,并非经过核实的分类。"}},kb={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:"地图控件"},Lb={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:"地点"},Ab={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},Sb={_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:"《耶稣传》"},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_gaps:"缺口与机会",t_bridges:"城市桥梁",t_deaf:"聋人缺口",t_resources:"按族群列出资源",t_languages:"各国语言",t_growth:"可及性与人口增长"},pages:{listTitle:"按语言列出的福音资源",chartsTitle:"福音资源 — 按语言",loadingTables:"正在加载资源表…"}},Pb={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:"无法加载民族数据。这是连接问题,而不是筛选问题。"},Eb={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:"清除选择"}},Cb={menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名單 — 禱告名單與海報",upg100WallTag:"禱告動員",upg100WallIntro:"將禱告的工作分成五十人、一百人一組 — 就像耶穌餵飽五千人那樣(路加福音 9:14)。每一張海報都是一份 100 人名單,你可以為他們禱告、列印出來、貼在牆上 — 按著他們族群的名字為他們禱告。"},Tb={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},Rb={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},Nb={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},Ob={"%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.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},Fb={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"}},Mb={title:"插件工作室",navLabel:"按能力分类的插件",countLabel:"此处列出 {bundles} 个包 · {elements} 个插件",changeLanguage:"切换语言",copyEmbed:"复制嵌入代码",copy:"复制",copied:"已复制",scriptEmbed:"脚本嵌入",loading:"正在加载 {name}…",couldNotLoad:"无法加载 {name}。",chooseElement:"请从列表中选择一个插件。",filterPlaceholder:"筛选插件",collapseAll:"全部折叠",noMatch:"没有与“{query}”匹配的插件。",openSection:"打开 {cap},{label}",part:"部分",noStandalone:"无独立页面",cap5:"应用外壳",cap4:"组合",cap3:"多视图",cap2:"预设",cap1:"单一",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",partOf:"{name} 的一部分,不单独发布"},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:"地圖"},Db={kicker:"DOXA · 异象",title:"每一个民族,每一个地方。",tagline:"从世界上所有族群到 DOXA 为之祷告的族群,全部依据数据计算。",funnelLabel:"从所有族群到 DOXA 族群",allLabel:"族群",allNote:"每个族群在其居住的每个国家各计一次",unreachedLabel:"未得之民",unreachedNote:"福音派信徒少于 2%",frontierLabel:"前沿族群",frontierNote:"福音派信徒少于 0.1%",doxaLabel:"DOXA 族群",doxaNote:"其中 {frontier} 个为前沿族群",people:"{n} 人",sources:"族群:{imb},数据日期 {date}。DOXA 名单:pray.doxa.life,{date2}。",howCounted:"这些数字如何计算",ruleAll:"IMB 族群数据的每一行:一个国家中的一个族群。",ruleUnreached:"IMB 迷失优先级 0 至 2:福音派信徒少于 2%。",ruleFrontier:"IMB 迷失优先级 0:福音派信徒少于 0.1%。属于未得之民的一部分。",ruleDoxa:"DOXA 祷告名单上的每个族群,按民族和国家与 IMB 数据匹配。并非全部都是前沿族群。"};/*! * shared v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function Ib(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const qa=typeof window<"u",No=(e,t=!1)=>t?Symbol.for(e):Symbol(e),Db=(e,t,o)=>jb({l:e,k:t,s:o}),jb=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),it=e=>typeof e=="number"&&isFinite(e),zb=e=>Xl(e)==="[object Date]",Oo=e=>Xl(e)==="[object RegExp]",Wa=e=>Me(e)&&Object.keys(e).length===0,mt=Object.assign,Gb=Object.create,Ze=(e=null)=>Gb(e);let ql;const $o=()=>ql||(ql=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Ze());function Wl(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Hl(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Ub(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,s)=>`${a}="${Hl(s)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,s)=>`${a}='${Hl(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 Bb=Object.prototype.hasOwnProperty;function qt(e,t){return Bb.call(e,t)}const nt=Array.isArray,tt=e=>typeof e=="function",ye=e=>typeof e=="string",Be=e=>typeof e=="boolean",He=e=>e!==null&&typeof e=="object",Vb=e=>He(e)&&tt(e.then)&&tt(e.catch),Kl=Object.prototype.toString,Xl=e=>Kl.call(e),Me=e=>{if(!He(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},qb=e=>e==null?"":nt(e)||Me(e)&&e.toString===Kl?JSON.stringify(e,null,2):String(e);function Wb(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function Ha(e){let t=e;return()=>++t}const Ka=e=>!He(e)||nt(e);function Xa(e,t){if(Ka(e)||Ka(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__"&&(He(n[s])&&!He(a[s])&&(a[s]=Array.isArray(n[s])?[]:Ze()),Ka(a[s])||Ka(n[s])?a[s]=n[s]:o.push({src:n[s],des:a[s]}))})}}/*! + */function jb(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const qa=typeof window<"u",No=(e,t=!1)=>t?Symbol.for(e):Symbol(e),zb=(e,t,o)=>Gb({l:e,k:t,s:o}),Gb=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),lt=e=>typeof e=="number"&&isFinite(e),Ub=e=>Xl(e)==="[object Date]",Oo=e=>Xl(e)==="[object RegExp]",Wa=e=>Me(e)&&Object.keys(e).length===0,mt=Object.assign,Bb=Object.create,Ze=(e=null)=>Bb(e);let ql;const $o=()=>ql||(ql=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Ze());function Wl(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Hl(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Vb(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,s)=>`${a}="${Hl(s)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,s)=>`${a}='${Hl(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 qb=Object.prototype.hasOwnProperty;function qt(e,t){return qb.call(e,t)}const nt=Array.isArray,tt=e=>typeof e=="function",$e=e=>typeof e=="string",Be=e=>typeof e=="boolean",He=e=>e!==null&&typeof e=="object",Wb=e=>He(e)&&tt(e.then)&&tt(e.catch),Kl=Object.prototype.toString,Xl=e=>Kl.call(e),Me=e=>{if(!He(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},Hb=e=>e==null?"":nt(e)||Me(e)&&e.toString===Kl?JSON.stringify(e,null,2):String(e);function Kb(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function Ha(e){let t=e;return()=>++t}const Ka=e=>!He(e)||nt(e);function Xa(e,t){if(Ka(e)||Ka(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__"&&(He(n[s])&&!He(a[s])&&(a[s]=Array.isArray(n[s])?[]:Ze()),Ka(a[s])||Ka(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 Hb(e,t,o){return{line:e,column:t,offset:o}}function Ya(e,t,o){return{start:e,end:t}}const Kb=/\{([0-9a-zA-Z]+)\}/g;function Yl(e,...t){return t.length===1&&Xb(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(Kb,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const Zl=Object.assign,Jl=e=>typeof e=="string",Xb=e=>e!==null&&typeof e=="object";function Ql(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const Js={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Yb={[Js.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function Zb(e,t,...o){const n=Yl(Yb[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const Te={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},Jb={[Te.EXPECTED_TOKEN]:"Expected token: '{0}'",[Te.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Te.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Te.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Te.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Te.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Te.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Te.EMPTY_PLACEHOLDER]:"Empty placeholder",[Te.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Te.INVALID_LINKED_FORMAT]:"Invalid linked format",[Te.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Te.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Te.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Te.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Te.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Te.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function pn(e,t,o={}){const{domain:n,messages:a,args:s}=o,r=Yl((a||Jb)[e]||"",...s||[]),i=new SyntaxError(String(r));return i.code=e,t&&(i.location=t),i.domain=n,i}function Qb(e){throw e}const _o=" ",e$="\r",Lt=` -`,t$="\u2028",o$="\u2029";function n$(e){const t=e;let o=0,n=1,a=1,s=0;const r=w=>t[w]===e$&&t[w+1]===Lt,i=w=>t[w]===Lt,l=w=>t[w]===o$,c=w=>t[w]===t$,u=w=>r(w)||i(w)||l(w)||c(w),p=()=>o,g=()=>n,y=()=>a,A=()=>s,k=w=>r(w)||l(w)||c(w)?Lt:t[w],S=()=>k(o),C=()=>k(o+s);function f(){return s=0,u(o)&&(n++,a=0),r(o)&&o++,o++,a++,t[o]}function b(){return r(o+s)&&s++,s++,t[o+s]}function d(){o=0,n=1,a=1,s=0}function $(w=0){s=w}function L(){const w=o+s;for(;w!==o;)f();s=0}return{index:p,line:g,column:y,peekOffset:A,charAt:k,currentChar:S,currentPeek:C,next:f,peek:b,reset:d,resetPeek:$,skipToPeek:L}}const Fo=void 0,a$=".",ec="'",s$="tokenizer";function r$(e,t={}){const o=t.location!==!1,n=n$(e),a=()=>n.index(),s=()=>Hb(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 p(h,m,v,...E){const q=c();if(m.column+=v,m.offset+=v,u){const W=o?Ya(q.startLoc,m):null,T=pn(h,W,{domain:s$,args:E});u(T)}}function g(h,m,v){h.endLoc=s(),h.currentType=m;const E={type:m};return o&&(E.loc=Ya(h.startLoc,h.endLoc)),v!=null&&(E.value=v),E}const y=h=>g(h,14);function A(h,m){return h.currentChar()===m?(h.next(),m):(p(Te.EXPECTED_TOKEN,s(),0,m),"")}function k(h){let m="";for(;h.currentPeek()===_o||h.currentPeek()===Lt;)m+=h.currentPeek(),h.peek();return m}function S(h){const m=k(h);return h.skipToPeek(),m}function C(h){if(h===Fo)return!1;const m=h.charCodeAt(0);return m>=97&&m<=122||m>=65&&m<=90||m===95}function f(h){if(h===Fo)return!1;const m=h.charCodeAt(0);return m>=48&&m<=57}function b(h,m){const{currentType:v}=m;if(v!==2)return!1;k(h);const E=C(h.currentPeek());return h.resetPeek(),E}function d(h,m){const{currentType:v}=m;if(v!==2)return!1;k(h);const E=h.currentPeek()==="-"?h.peek():h.currentPeek(),q=f(E);return h.resetPeek(),q}function $(h,m){const{currentType:v}=m;if(v!==2)return!1;k(h);const E=h.currentPeek()===ec;return h.resetPeek(),E}function L(h,m){const{currentType:v}=m;if(v!==8)return!1;k(h);const E=h.currentPeek()===".";return h.resetPeek(),E}function w(h,m){const{currentType:v}=m;if(v!==9)return!1;k(h);const E=C(h.currentPeek());return h.resetPeek(),E}function F(h,m){const{currentType:v}=m;if(!(v===8||v===12))return!1;k(h);const E=h.currentPeek()===":";return h.resetPeek(),E}function U(h,m){const{currentType:v}=m;if(v!==10)return!1;const E=()=>{const W=h.currentPeek();return W==="{"?C(h.peek()):W==="@"||W==="%"||W==="|"||W===":"||W==="."||W===_o||!W?!1:W===Lt?(h.peek(),E()):Y(h,!1)},q=E();return h.resetPeek(),q}function ne(h){k(h);const m=h.currentPeek()==="|";return h.resetPeek(),m}function z(h){const m=k(h),v=h.currentPeek()==="%"&&h.peek()==="{";return h.resetPeek(),{isModulo:v,hasSpace:m.length>0}}function Y(h,m=!0){const v=(q=!1,W="",T=!1)=>{const j=h.currentPeek();return j==="{"?W==="%"?!1:q:j==="@"||!j?W==="%"?!0:q:j==="%"?(h.peek(),v(q,"%",!0)):j==="|"?W==="%"||T?!0:!(W===_o||W===Lt):j===_o?(h.peek(),v(!0,_o,T)):j===Lt?(h.peek(),v(!0,Lt,T)):!0},E=v();return m&&h.resetPeek(),E}function fe(h,m){const v=h.currentChar();return v===Fo?Fo:m(v)?(h.next(),v):null}function M(h){const m=h.charCodeAt(0);return m>=97&&m<=122||m>=65&&m<=90||m>=48&&m<=57||m===95||m===36}function Q(h){return fe(h,M)}function X(h){const m=h.charCodeAt(0);return m>=97&&m<=122||m>=65&&m<=90||m>=48&&m<=57||m===95||m===36||m===45}function B(h){return fe(h,X)}function se(h){const m=h.charCodeAt(0);return m>=48&&m<=57}function I(h){return fe(h,se)}function O(h){const m=h.charCodeAt(0);return m>=48&&m<=57||m>=65&&m<=70||m>=97&&m<=102}function V(h){return fe(h,O)}function D(h){let m="",v="";for(;m=I(h);)v+=m;return v}function ae(h){S(h);const m=h.currentChar();return m!=="%"&&p(Te.EXPECTED_TOKEN,s(),0,m),h.next(),"%"}function ge(h){let m="";for(;;){const v=h.currentChar();if(v==="{"||v==="}"||v==="@"||v==="|"||!v)break;if(v==="%")if(Y(h))m+=v,h.next();else break;else if(v===_o||v===Lt)if(Y(h))m+=v,h.next();else{if(ne(h))break;m+=v,h.next()}else m+=v,h.next()}return m}function ke(h){S(h);let m="",v="";for(;m=B(h);)v+=m;return h.currentChar()===Fo&&p(Te.UNTERMINATED_CLOSING_BRACE,s(),0),v}function be(h){S(h);let m="";return h.currentChar()==="-"?(h.next(),m+=`-${D(h)}`):m+=D(h),h.currentChar()===Fo&&p(Te.UNTERMINATED_CLOSING_BRACE,s(),0),m}function $e(h){return h!==ec&&h!==Lt}function Pe(h){S(h),A(h,"'");let m="",v="";for(;m=fe(h,$e);)m==="\\"?v+=ce(h):v+=m;const E=h.currentChar();return E===Lt||E===Fo?(p(Te.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,s(),0),E===Lt&&(h.next(),A(h,"'")),v):(A(h,"'"),v)}function ce(h){const m=h.currentChar();switch(m){case"\\":case"'":return h.next(),`\\${m}`;case"u":return _e(h,m,4);case"U":return _e(h,m,6);default:return p(Te.UNKNOWN_ESCAPE_SEQUENCE,s(),0,m),""}}function _e(h,m,v){A(h,m);let E="";for(let q=0;q{const E=h.currentChar();return E==="{"||E==="%"||E==="@"||E==="|"||E==="("||E===")"||!E||E===_o?v:(v+=E,h.next(),m(v))};return m("")}function G(h){S(h);const m=A(h,"|");return S(h),m}function ee(h,m){let v=null;switch(h.currentChar()){case"{":return m.braceNest>=1&&p(Te.NOT_ALLOW_NEST_PLACEHOLDER,s(),0),h.next(),v=g(m,2,"{"),S(h),m.braceNest++,v;case"}":return m.braceNest>0&&m.currentType===2&&p(Te.EMPTY_PLACEHOLDER,s(),0),h.next(),v=g(m,3,"}"),m.braceNest--,m.braceNest>0&&S(h),m.inLinked&&m.braceNest===0&&(m.inLinked=!1),v;case"@":return m.braceNest>0&&p(Te.UNTERMINATED_CLOSING_BRACE,s(),0),v=te(h,m)||y(m),m.braceNest=0,v;default:{let q=!0,W=!0,T=!0;if(ne(h))return m.braceNest>0&&p(Te.UNTERMINATED_CLOSING_BRACE,s(),0),v=g(m,1,G(h)),m.braceNest=0,m.inLinked=!1,v;if(m.braceNest>0&&(m.currentType===5||m.currentType===6||m.currentType===7))return p(Te.UNTERMINATED_CLOSING_BRACE,s(),0),m.braceNest=0,le(h,m);if(q=b(h,m))return v=g(m,5,ke(h)),S(h),v;if(W=d(h,m))return v=g(m,6,be(h)),S(h),v;if(T=$(h,m))return v=g(m,7,Pe(h)),S(h),v;if(!q&&!W&&!T)return v=g(m,13,_(h)),p(Te.INVALID_TOKEN_IN_PLACEHOLDER,s(),0,v.value),S(h),v;break}}return v}function te(h,m){const{currentType:v}=m;let E=null;const q=h.currentChar();switch((v===8||v===9||v===12||v===10)&&(q===Lt||q===_o)&&p(Te.INVALID_LINKED_FORMAT,s(),0),q){case"@":return h.next(),E=g(m,8,"@"),m.inLinked=!0,E;case".":return S(h),h.next(),g(m,9,".");case":":return S(h),h.next(),g(m,10,":");default:return ne(h)?(E=g(m,1,G(h)),m.braceNest=0,m.inLinked=!1,E):L(h,m)||F(h,m)?(S(h),te(h,m)):w(h,m)?(S(h),g(m,12,P(h))):U(h,m)?(S(h),q==="{"?ee(h,m)||E:g(m,11,x(h))):(v===8&&p(Te.INVALID_LINKED_FORMAT,s(),0),m.braceNest=0,m.inLinked=!1,le(h,m))}}function le(h,m){let v={type:14};if(m.braceNest>0)return ee(h,m)||y(m);if(m.inLinked)return te(h,m)||y(m);switch(h.currentChar()){case"{":return ee(h,m)||y(m);case"}":return p(Te.UNBALANCED_CLOSING_BRACE,s(),0),h.next(),g(m,3,"}");case"@":return te(h,m)||y(m);default:{if(ne(h))return v=g(m,1,G(h)),m.braceNest=0,m.inLinked=!1,v;const{isModulo:q,hasSpace:W}=z(h);if(q)return W?g(m,0,ge(h)):g(m,4,ae(h));if(Y(h))return g(m,0,ge(h));break}}return v}function oe(){const{currentType:h,offset:m,startLoc:v,endLoc:E}=l;return l.lastType=h,l.lastOffset=m,l.lastStartLoc=v,l.lastEndLoc=E,l.offset=a(),l.startLoc=s(),n.currentChar()===Fo?g(l,14):le(n,l)}return{nextToken:oe,currentOffset:a,currentPosition:s,context:c}}const i$="parser",l$=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function c$(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 u$(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a(b,d,$,L,...w){const F=b.currentPosition();if(F.offset+=L,F.column+=L,o){const U=t?Ya($,F):null,ne=pn(d,U,{domain:i$,args:w});o(ne)}}function s(b,d,$,L,...w){const F=b.currentPosition();if(F.offset+=L,F.column+=L,n){const U=t?Ya($,F):null;n(Zb(d,U,w))}}function r(b,d,$){const L={type:b};return t&&(L.start=d,L.end=d,L.loc={start:$,end:$}),L}function i(b,d,$,L){t&&(b.end=d,b.loc&&(b.loc.end=$))}function l(b,d){const $=b.context(),L=r(3,$.offset,$.startLoc);return L.value=d,i(L,b.currentOffset(),b.currentPosition()),L}function c(b,d){const $=b.context(),{lastOffset:L,lastStartLoc:w}=$,F=r(5,L,w);return F.index=parseInt(d,10),b.nextToken(),i(F,b.currentOffset(),b.currentPosition()),F}function u(b,d,$){const L=b.context(),{lastOffset:w,lastStartLoc:F}=L,U=r(4,w,F);return U.key=d,$===!0&&(U.modulo=!0),b.nextToken(),i(U,b.currentOffset(),b.currentPosition()),U}function p(b,d){const $=b.context(),{lastOffset:L,lastStartLoc:w}=$,F=r(9,L,w);return F.value=d.replace(l$,c$),b.nextToken(),i(F,b.currentOffset(),b.currentPosition()),F}function g(b){const d=b.nextToken(),$=b.context(),{lastOffset:L,lastStartLoc:w}=$,F=r(8,L,w);return d.type!==12?(a(b,Te.UNEXPECTED_EMPTY_LINKED_MODIFIER,$.lastStartLoc,0),F.value="",i(F,L,w),{nextConsumeToken:d,node:F}):(d.value==null&&a(b,Te.UNEXPECTED_LEXICAL_ANALYSIS,$.lastStartLoc,0,Wt(d)),F.value=d.value||"",i(F,b.currentOffset(),b.currentPosition()),{node:F})}function y(b,d){const $=b.context(),L=r(7,$.offset,$.startLoc);return L.value=d,i(L,b.currentOffset(),b.currentPosition()),L}function A(b){const d=b.context(),$=r(6,d.offset,d.startLoc);let L=b.nextToken();if(L.type===9){const w=g(b);$.modifier=w.node,L=w.nextConsumeToken||b.nextToken()}switch(L.type!==10&&a(b,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Wt(L)),L=b.nextToken(),L.type===2&&(L=b.nextToken()),L.type){case 11:L.value==null&&a(b,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Wt(L)),$.key=y(b,L.value||"");break;case 5:L.value==null&&a(b,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Wt(L)),$.key=u(b,L.value||"");break;case 6:L.value==null&&a(b,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Wt(L)),$.key=c(b,L.value||"");break;case 7:L.value==null&&a(b,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Wt(L)),$.key=p(b,L.value||"");break;default:{a(b,Te.UNEXPECTED_EMPTY_LINKED_KEY,d.lastStartLoc,0);const w=b.context(),F=r(7,w.offset,w.startLoc);return F.value="",i(F,w.offset,w.startLoc),$.key=F,i($,w.offset,w.startLoc),{nextConsumeToken:L,node:$}}}return i($,b.currentOffset(),b.currentPosition()),{node:$}}function k(b){const d=b.context(),$=d.currentType===1?b.currentOffset():d.offset,L=d.currentType===1?d.endLoc:d.startLoc,w=r(2,$,L);w.items=[];let F=null,U=null;do{const Y=F||b.nextToken();switch(F=null,Y.type){case 0:Y.value==null&&a(b,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Wt(Y)),w.items.push(l(b,Y.value||""));break;case 6:Y.value==null&&a(b,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Wt(Y)),w.items.push(c(b,Y.value||""));break;case 4:U=!0;break;case 5:Y.value==null&&a(b,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Wt(Y)),w.items.push(u(b,Y.value||"",!!U)),U&&(s(b,Js.USE_MODULO_SYNTAX,d.lastStartLoc,0,Wt(Y)),U=null);break;case 7:Y.value==null&&a(b,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Wt(Y)),w.items.push(p(b,Y.value||""));break;case 8:{const fe=A(b);w.items.push(fe.node),F=fe.nextConsumeToken||null;break}}}while(d.currentType!==14&&d.currentType!==1);const ne=d.currentType===1?d.lastOffset:b.currentOffset(),z=d.currentType===1?d.lastEndLoc:b.currentPosition();return i(w,ne,z),w}function S(b,d,$,L){const w=b.context();let F=L.items.length===0;const U=r(1,d,$);U.cases=[],U.cases.push(L);do{const ne=k(b);F||(F=ne.items.length===0),U.cases.push(ne)}while(w.currentType!==14);return F&&a(b,Te.MUST_HAVE_MESSAGES_IN_PLURAL,$,0),i(U,b.currentOffset(),b.currentPosition()),U}function C(b){const d=b.context(),{offset:$,startLoc:L}=d,w=k(b);return d.currentType===14?w:S(b,$,L,w)}function f(b){const d=r$(b,Zl({},e)),$=d.context(),L=r(0,$.offset,$.startLoc);return t&&L.loc&&(L.loc.source=b),L.body=C(d),e.onCacheKey&&(L.cacheKey=e.onCacheKey(b)),$.currentType!==14&&a(d,Te.UNEXPECTED_LEXICAL_ANALYSIS,$.lastStartLoc,0,b[$.offset]||""),i(L,d.currentOffset(),d.currentPosition()),L}return{parse:f}}function Wt(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 tc(e,t){for(let o=0;ooc(o)),e}function oc(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(k,S){r.code+=k}function c(k,S=!0){const C=S?n:"";l(a?C+" ".repeat(k):C)}function u(k=!0){const S=++r.indentLevel;k&&c(S)}function p(k=!0){const S=--r.indentLevel;k&&c(S)}function g(){c(r.indentLevel)}return{context:i,push:l,indent:u,deindent:p,newline:g,helper:k=>`_${k}`,needIndent:()=>r.needIndent}}function b$(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),fn(e,t.key),t.modifier?(e.push(", "),fn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function $$(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=Jl(t.mode)?t.mode:"normal",n=Jl(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=m$(e,{filename:n,breakLineCode:a,needIndent:s});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(s),r.length>0&&(i.push(`const { ${Ql(r.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),fn(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 w$(e,t={}){const o=Zl({},t),n=!!o.jit,a=!!o.minify,s=o.optimize==null?!0:o.optimize,i=u$(o).parse(e);return n?(s&&g$(i),a&&gn(i),{ast:i,code:""}):(p$(i,o),v$(i,o))}/*! + */function Xb(e,t,o){return{line:e,column:t,offset:o}}function Ya(e,t,o){return{start:e,end:t}}const Yb=/\{([0-9a-zA-Z]+)\}/g;function Yl(e,...t){return t.length===1&&Zb(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(Yb,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const Zl=Object.assign,Jl=e=>typeof e=="string",Zb=e=>e!==null&&typeof e=="object";function Ql(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const Js={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Jb={[Js.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function Qb(e,t,...o){const n=Yl(Jb[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const Te={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},e$={[Te.EXPECTED_TOKEN]:"Expected token: '{0}'",[Te.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Te.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Te.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Te.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Te.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Te.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Te.EMPTY_PLACEHOLDER]:"Empty placeholder",[Te.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Te.INVALID_LINKED_FORMAT]:"Invalid linked format",[Te.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Te.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Te.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Te.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Te.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Te.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function gn(e,t,o={}){const{domain:n,messages:a,args:s}=o,r=Yl((a||e$)[e]||"",...s||[]),i=new SyntaxError(String(r));return i.code=e,t&&(i.location=t),i.domain=n,i}function t$(e){throw e}const _o=" ",o$="\r",Lt=` +`,n$="\u2028",a$="\u2029";function s$(e){const t=e;let o=0,n=1,a=1,s=0;const r=w=>t[w]===o$&&t[w+1]===Lt,i=w=>t[w]===Lt,l=w=>t[w]===a$,c=w=>t[w]===n$,u=w=>r(w)||i(w)||l(w)||c(w),p=()=>o,g=()=>n,y=()=>a,A=()=>s,k=w=>r(w)||l(w)||c(w)?Lt:t[w],S=()=>k(o),C=()=>k(o+s);function f(){return s=0,u(o)&&(n++,a=0),r(o)&&o++,o++,a++,t[o]}function b(){return r(o+s)&&s++,s++,t[o+s]}function d(){o=0,n=1,a=1,s=0}function $(w=0){s=w}function L(){const w=o+s;for(;w!==o;)f();s=0}return{index:p,line:g,column:y,peekOffset:A,charAt:k,currentChar:S,currentPeek:C,next:f,peek:b,reset:d,resetPeek:$,skipToPeek:L}}const Fo=void 0,r$=".",ec="'",i$="tokenizer";function l$(e,t={}){const o=t.location!==!1,n=s$(e),a=()=>n.index(),s=()=>Xb(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 p(h,m,v,...E){const q=c();if(m.column+=v,m.offset+=v,u){const W=o?Ya(q.startLoc,m):null,T=gn(h,W,{domain:i$,args:E});u(T)}}function g(h,m,v){h.endLoc=s(),h.currentType=m;const E={type:m};return o&&(E.loc=Ya(h.startLoc,h.endLoc)),v!=null&&(E.value=v),E}const y=h=>g(h,14);function A(h,m){return h.currentChar()===m?(h.next(),m):(p(Te.EXPECTED_TOKEN,s(),0,m),"")}function k(h){let m="";for(;h.currentPeek()===_o||h.currentPeek()===Lt;)m+=h.currentPeek(),h.peek();return m}function S(h){const m=k(h);return h.skipToPeek(),m}function C(h){if(h===Fo)return!1;const m=h.charCodeAt(0);return m>=97&&m<=122||m>=65&&m<=90||m===95}function f(h){if(h===Fo)return!1;const m=h.charCodeAt(0);return m>=48&&m<=57}function b(h,m){const{currentType:v}=m;if(v!==2)return!1;k(h);const E=C(h.currentPeek());return h.resetPeek(),E}function d(h,m){const{currentType:v}=m;if(v!==2)return!1;k(h);const E=h.currentPeek()==="-"?h.peek():h.currentPeek(),q=f(E);return h.resetPeek(),q}function $(h,m){const{currentType:v}=m;if(v!==2)return!1;k(h);const E=h.currentPeek()===ec;return h.resetPeek(),E}function L(h,m){const{currentType:v}=m;if(v!==8)return!1;k(h);const E=h.currentPeek()===".";return h.resetPeek(),E}function w(h,m){const{currentType:v}=m;if(v!==9)return!1;k(h);const E=C(h.currentPeek());return h.resetPeek(),E}function F(h,m){const{currentType:v}=m;if(!(v===8||v===12))return!1;k(h);const E=h.currentPeek()===":";return h.resetPeek(),E}function D(h,m){const{currentType:v}=m;if(v!==10)return!1;const E=()=>{const W=h.currentPeek();return W==="{"?C(h.peek()):W==="@"||W==="%"||W==="|"||W===":"||W==="."||W===_o||!W?!1:W===Lt?(h.peek(),E()):Y(h,!1)},q=E();return h.resetPeek(),q}function ne(h){k(h);const m=h.currentPeek()==="|";return h.resetPeek(),m}function B(h){const m=k(h),v=h.currentPeek()==="%"&&h.peek()==="{";return h.resetPeek(),{isModulo:v,hasSpace:m.length>0}}function Y(h,m=!0){const v=(q=!1,W="",T=!1)=>{const G=h.currentPeek();return G==="{"?W==="%"?!1:q:G==="@"||!G?W==="%"?!0:q:G==="%"?(h.peek(),v(q,"%",!0)):G==="|"?W==="%"||T?!0:!(W===_o||W===Lt):G===_o?(h.peek(),v(!0,_o,T)):G===Lt?(h.peek(),v(!0,Lt,T)):!0},E=v();return m&&h.resetPeek(),E}function pe(h,m){const v=h.currentChar();return v===Fo?Fo:m(v)?(h.next(),v):null}function M(h){const m=h.charCodeAt(0);return m>=97&&m<=122||m>=65&&m<=90||m>=48&&m<=57||m===95||m===36}function ee(h){return pe(h,M)}function K(h){const m=h.charCodeAt(0);return m>=97&&m<=122||m>=65&&m<=90||m>=48&&m<=57||m===95||m===36||m===45}function z(h){return pe(h,K)}function re(h){const m=h.charCodeAt(0);return m>=48&&m<=57}function j(h){return pe(h,re)}function O(h){const m=h.charCodeAt(0);return m>=48&&m<=57||m>=65&&m<=70||m>=97&&m<=102}function V(h){return pe(h,O)}function I(h){let m="",v="";for(;m=j(h);)v+=m;return v}function ae(h){S(h);const m=h.currentChar();return m!=="%"&&p(Te.EXPECTED_TOKEN,s(),0,m),h.next(),"%"}function be(h){let m="";for(;;){const v=h.currentChar();if(v==="{"||v==="}"||v==="@"||v==="|"||!v)break;if(v==="%")if(Y(h))m+=v,h.next();else break;else if(v===_o||v===Lt)if(Y(h))m+=v,h.next();else{if(ne(h))break;m+=v,h.next()}else m+=v,h.next()}return m}function ke(h){S(h);let m="",v="";for(;m=z(h);)v+=m;return h.currentChar()===Fo&&p(Te.UNTERMINATED_CLOSING_BRACE,s(),0),v}function xe(h){S(h);let m="";return h.currentChar()==="-"?(h.next(),m+=`-${I(h)}`):m+=I(h),h.currentChar()===Fo&&p(Te.UNTERMINATED_CLOSING_BRACE,s(),0),m}function Se(h){return h!==ec&&h!==Lt}function ye(h){S(h),A(h,"'");let m="",v="";for(;m=pe(h,Se);)m==="\\"?v+=se(h):v+=m;const E=h.currentChar();return E===Lt||E===Fo?(p(Te.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,s(),0),E===Lt&&(h.next(),A(h,"'")),v):(A(h,"'"),v)}function se(h){const m=h.currentChar();switch(m){case"\\":case"'":return h.next(),`\\${m}`;case"u":return he(h,m,4);case"U":return he(h,m,6);default:return p(Te.UNKNOWN_ESCAPE_SEQUENCE,s(),0,m),""}}function he(h,m,v){A(h,m);let E="";for(let q=0;q{const E=h.currentChar();return E==="{"||E==="%"||E==="@"||E==="|"||E==="("||E===")"||!E||E===_o?v:(v+=E,h.next(),m(v))};return m("")}function U(h){S(h);const m=A(h,"|");return S(h),m}function Q(h,m){let v=null;switch(h.currentChar()){case"{":return m.braceNest>=1&&p(Te.NOT_ALLOW_NEST_PLACEHOLDER,s(),0),h.next(),v=g(m,2,"{"),S(h),m.braceNest++,v;case"}":return m.braceNest>0&&m.currentType===2&&p(Te.EMPTY_PLACEHOLDER,s(),0),h.next(),v=g(m,3,"}"),m.braceNest--,m.braceNest>0&&S(h),m.inLinked&&m.braceNest===0&&(m.inLinked=!1),v;case"@":return m.braceNest>0&&p(Te.UNTERMINATED_CLOSING_BRACE,s(),0),v=te(h,m)||y(m),m.braceNest=0,v;default:{let q=!0,W=!0,T=!0;if(ne(h))return m.braceNest>0&&p(Te.UNTERMINATED_CLOSING_BRACE,s(),0),v=g(m,1,U(h)),m.braceNest=0,m.inLinked=!1,v;if(m.braceNest>0&&(m.currentType===5||m.currentType===6||m.currentType===7))return p(Te.UNTERMINATED_CLOSING_BRACE,s(),0),m.braceNest=0,ce(h,m);if(q=b(h,m))return v=g(m,5,ke(h)),S(h),v;if(W=d(h,m))return v=g(m,6,xe(h)),S(h),v;if(T=$(h,m))return v=g(m,7,ye(h)),S(h),v;if(!q&&!W&&!T)return v=g(m,13,_(h)),p(Te.INVALID_TOKEN_IN_PLACEHOLDER,s(),0,v.value),S(h),v;break}}return v}function te(h,m){const{currentType:v}=m;let E=null;const q=h.currentChar();switch((v===8||v===9||v===12||v===10)&&(q===Lt||q===_o)&&p(Te.INVALID_LINKED_FORMAT,s(),0),q){case"@":return h.next(),E=g(m,8,"@"),m.inLinked=!0,E;case".":return S(h),h.next(),g(m,9,".");case":":return S(h),h.next(),g(m,10,":");default:return ne(h)?(E=g(m,1,U(h)),m.braceNest=0,m.inLinked=!1,E):L(h,m)||F(h,m)?(S(h),te(h,m)):w(h,m)?(S(h),g(m,12,P(h))):D(h,m)?(S(h),q==="{"?Q(h,m)||E:g(m,11,x(h))):(v===8&&p(Te.INVALID_LINKED_FORMAT,s(),0),m.braceNest=0,m.inLinked=!1,ce(h,m))}}function ce(h,m){let v={type:14};if(m.braceNest>0)return Q(h,m)||y(m);if(m.inLinked)return te(h,m)||y(m);switch(h.currentChar()){case"{":return Q(h,m)||y(m);case"}":return p(Te.UNBALANCED_CLOSING_BRACE,s(),0),h.next(),g(m,3,"}");case"@":return te(h,m)||y(m);default:{if(ne(h))return v=g(m,1,U(h)),m.braceNest=0,m.inLinked=!1,v;const{isModulo:q,hasSpace:W}=B(h);if(q)return W?g(m,0,be(h)):g(m,4,ae(h));if(Y(h))return g(m,0,be(h));break}}return v}function oe(){const{currentType:h,offset:m,startLoc:v,endLoc:E}=l;return l.lastType=h,l.lastOffset=m,l.lastStartLoc=v,l.lastEndLoc=E,l.offset=a(),l.startLoc=s(),n.currentChar()===Fo?g(l,14):ce(n,l)}return{nextToken:oe,currentOffset:a,currentPosition:s,context:c}}const c$="parser",u$=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function d$(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 p$(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a(b,d,$,L,...w){const F=b.currentPosition();if(F.offset+=L,F.column+=L,o){const D=t?Ya($,F):null,ne=gn(d,D,{domain:c$,args:w});o(ne)}}function s(b,d,$,L,...w){const F=b.currentPosition();if(F.offset+=L,F.column+=L,n){const D=t?Ya($,F):null;n(Qb(d,D,w))}}function r(b,d,$){const L={type:b};return t&&(L.start=d,L.end=d,L.loc={start:$,end:$}),L}function i(b,d,$,L){t&&(b.end=d,b.loc&&(b.loc.end=$))}function l(b,d){const $=b.context(),L=r(3,$.offset,$.startLoc);return L.value=d,i(L,b.currentOffset(),b.currentPosition()),L}function c(b,d){const $=b.context(),{lastOffset:L,lastStartLoc:w}=$,F=r(5,L,w);return F.index=parseInt(d,10),b.nextToken(),i(F,b.currentOffset(),b.currentPosition()),F}function u(b,d,$){const L=b.context(),{lastOffset:w,lastStartLoc:F}=L,D=r(4,w,F);return D.key=d,$===!0&&(D.modulo=!0),b.nextToken(),i(D,b.currentOffset(),b.currentPosition()),D}function p(b,d){const $=b.context(),{lastOffset:L,lastStartLoc:w}=$,F=r(9,L,w);return F.value=d.replace(u$,d$),b.nextToken(),i(F,b.currentOffset(),b.currentPosition()),F}function g(b){const d=b.nextToken(),$=b.context(),{lastOffset:L,lastStartLoc:w}=$,F=r(8,L,w);return d.type!==12?(a(b,Te.UNEXPECTED_EMPTY_LINKED_MODIFIER,$.lastStartLoc,0),F.value="",i(F,L,w),{nextConsumeToken:d,node:F}):(d.value==null&&a(b,Te.UNEXPECTED_LEXICAL_ANALYSIS,$.lastStartLoc,0,Wt(d)),F.value=d.value||"",i(F,b.currentOffset(),b.currentPosition()),{node:F})}function y(b,d){const $=b.context(),L=r(7,$.offset,$.startLoc);return L.value=d,i(L,b.currentOffset(),b.currentPosition()),L}function A(b){const d=b.context(),$=r(6,d.offset,d.startLoc);let L=b.nextToken();if(L.type===9){const w=g(b);$.modifier=w.node,L=w.nextConsumeToken||b.nextToken()}switch(L.type!==10&&a(b,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Wt(L)),L=b.nextToken(),L.type===2&&(L=b.nextToken()),L.type){case 11:L.value==null&&a(b,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Wt(L)),$.key=y(b,L.value||"");break;case 5:L.value==null&&a(b,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Wt(L)),$.key=u(b,L.value||"");break;case 6:L.value==null&&a(b,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Wt(L)),$.key=c(b,L.value||"");break;case 7:L.value==null&&a(b,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Wt(L)),$.key=p(b,L.value||"");break;default:{a(b,Te.UNEXPECTED_EMPTY_LINKED_KEY,d.lastStartLoc,0);const w=b.context(),F=r(7,w.offset,w.startLoc);return F.value="",i(F,w.offset,w.startLoc),$.key=F,i($,w.offset,w.startLoc),{nextConsumeToken:L,node:$}}}return i($,b.currentOffset(),b.currentPosition()),{node:$}}function k(b){const d=b.context(),$=d.currentType===1?b.currentOffset():d.offset,L=d.currentType===1?d.endLoc:d.startLoc,w=r(2,$,L);w.items=[];let F=null,D=null;do{const Y=F||b.nextToken();switch(F=null,Y.type){case 0:Y.value==null&&a(b,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Wt(Y)),w.items.push(l(b,Y.value||""));break;case 6:Y.value==null&&a(b,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Wt(Y)),w.items.push(c(b,Y.value||""));break;case 4:D=!0;break;case 5:Y.value==null&&a(b,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Wt(Y)),w.items.push(u(b,Y.value||"",!!D)),D&&(s(b,Js.USE_MODULO_SYNTAX,d.lastStartLoc,0,Wt(Y)),D=null);break;case 7:Y.value==null&&a(b,Te.UNEXPECTED_LEXICAL_ANALYSIS,d.lastStartLoc,0,Wt(Y)),w.items.push(p(b,Y.value||""));break;case 8:{const pe=A(b);w.items.push(pe.node),F=pe.nextConsumeToken||null;break}}}while(d.currentType!==14&&d.currentType!==1);const ne=d.currentType===1?d.lastOffset:b.currentOffset(),B=d.currentType===1?d.lastEndLoc:b.currentPosition();return i(w,ne,B),w}function S(b,d,$,L){const w=b.context();let F=L.items.length===0;const D=r(1,d,$);D.cases=[],D.cases.push(L);do{const ne=k(b);F||(F=ne.items.length===0),D.cases.push(ne)}while(w.currentType!==14);return F&&a(b,Te.MUST_HAVE_MESSAGES_IN_PLURAL,$,0),i(D,b.currentOffset(),b.currentPosition()),D}function C(b){const d=b.context(),{offset:$,startLoc:L}=d,w=k(b);return d.currentType===14?w:S(b,$,L,w)}function f(b){const d=l$(b,Zl({},e)),$=d.context(),L=r(0,$.offset,$.startLoc);return t&&L.loc&&(L.loc.source=b),L.body=C(d),e.onCacheKey&&(L.cacheKey=e.onCacheKey(b)),$.currentType!==14&&a(d,Te.UNEXPECTED_LEXICAL_ANALYSIS,$.lastStartLoc,0,b[$.offset]||""),i(L,d.currentOffset(),d.currentPosition()),L}return{parse:f}}function Wt(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 g$(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:s=>(o.helpers.add(s),s)}}function tc(e,t){for(let o=0;ooc(o)),e}function oc(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(k,S){r.code+=k}function c(k,S=!0){const C=S?n:"";l(a?C+" ".repeat(k):C)}function u(k=!0){const S=++r.indentLevel;k&&c(S)}function p(k=!0){const S=--r.indentLevel;k&&c(S)}function g(){c(r.indentLevel)}return{context:i,push:l,indent:u,deindent:p,newline:g,helper:k=>`_${k}`,needIndent:()=>r.needIndent}}function _$(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),hn(e,t.key),t.modifier?(e.push(", "),hn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function y$(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=Jl(t.mode)?t.mode:"normal",n=Jl(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=$$(e,{filename:n,breakLineCode:a,needIndent:s});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(s),r.length>0&&(i.push(`const { ${Ql(r.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),hn(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 k$(e,t={}){const o=Zl({},t),n=!!o.jit,a=!!o.minify,s=o.optimize==null?!0:o.optimize,i=p$(o).parse(e);return n?(s&&h$(i),a&&fn(i),{ast:i,code:""}):(f$(i,o),x$(i,o))}/*! * core-base v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function x$(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&($o().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&($o().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&($o().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function ro(e){return He(e)&&er(e)===0&&(qt(e,"b")||qt(e,"body"))}const nc=["b","body"];function k$(e){return Mo(e,nc)}const ac=["c","cases"];function L$(e){return Mo(e,ac,[])}const sc=["s","static"];function A$(e){return Mo(e,sc)}const rc=["i","items"];function S$(e){return Mo(e,rc,[])}const ic=["t","type"];function er(e){return Mo(e,ic)}const lc=["v","value"];function Za(e,t){const o=Mo(e,lc);if(o!=null)return o;throw Jn(t)}const cc=["m","modifier"];function P$(e){return Mo(e,cc)}const uc=["k","key"];function E$(e){const t=Mo(e,uc);if(t)return t;throw Jn(6)}function Mo(e,t,o){for(let n=0;n{r===void 0?r=i:r+=i},g[1]=()=>{r!==void 0&&(t.push(r),r=void 0)},g[2]=()=>{g[0](),a++},g[3]=()=>{if(a>0)a--,n=4,g[0]();else{if(a=0,r===void 0||(r=O$(r),r===!1))return!1;g[1]()}};function y(){const A=e[o+1];if(n===5&&A==="'"||n===6&&A==='"')return o++,i="\\"+A,g[0](),!0}for(;n!==null;)if(o++,s=e[o],!(s==="\\"&&y())){if(l=N$(s),p=Io[n],c=p[l]||p.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=g[c[1]],u&&(i=s,u()===!1))))return;if(n===7)return t}}const pc=new Map;function M$(e,t){return He(e)?e[t]:null}function I$(e,t){if(!He(e))return null;let o=pc.get(t);if(o||(o=F$(t),o&&pc.set(t,o)),!o)return null;const n=o.length;let a=e,s=0;for(;se,j$=e=>"",z$="text",G$=e=>e.length===0?"":Wb(e),U$=qb;function gc(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function B$(e){const t=it(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(it(e.named.count)||it(e.named.n))?it(e.named.count)?e.named.count:it(e.named.n)?e.named.n:t:t}function V$(e,t){t.count||(t.count=e),t.n||(t.n=e)}function q$(e={}){const t=e.locale,o=B$(e),n=He(e.pluralRules)&&ye(t)&&tt(e.pluralRules[t])?e.pluralRules[t]:gc,a=He(e.pluralRules)&&ye(t)&&tt(e.pluralRules[t])?gc:void 0,s=C=>C[n(o,C.length,a)],r=e.list||[],i=C=>r[C],l=e.named||Ze();it(e.pluralIndex)&&V$(o,l);const c=C=>l[C];function u(C){const f=tt(e.messages)?e.messages(C):He(e.messages)?e.messages[C]:!1;return f||(e.parent?e.parent.message(C):j$)}const p=C=>e.modifiers?e.modifiers[C]:D$,g=Me(e.processor)&&tt(e.processor.normalize)?e.processor.normalize:G$,y=Me(e.processor)&&tt(e.processor.interpolate)?e.processor.interpolate:U$,A=Me(e.processor)&&ye(e.processor.type)?e.processor.type:z$,S={list:i,named:c,plural:s,linked:(C,...f)=>{const[b,d]=f;let $="text",L="";f.length===1?He(b)?(L=b.modifier||L,$=b.type||$):ye(b)&&(L=b||L):f.length===2&&(ye(b)&&(L=b||L),ye(d)&&($=d||$));const w=u(C)(S),F=$==="vnode"&&nt(w)&&L?w[0]:w;return L?p(L)(F,$):F},message:u,type:A,interpolate:y,normalize:g,values:mt(Ze(),r,l)};return S}let Qn=null;function W$(e){Qn=e}function H$(e,t,o){Qn&&Qn.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const K$=X$("function:translate");function X$(e){return t=>Qn&&Qn.emit(e,t)}const Y$=Js.__EXTEND_POINT__,Xo=Ha(Y$),Z$={FALLBACK_TO_TRANSLATE:Xo(),CANNOT_FORMAT_NUMBER:Xo(),FALLBACK_TO_NUMBER_FORMAT:Xo(),CANNOT_FORMAT_DATE:Xo(),FALLBACK_TO_DATE_FORMAT:Xo(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:Xo(),__EXTEND_POINT__:Xo()},fc=Te.__EXTEND_POINT__,Yo=Ha(fc),Ht={INVALID_ARGUMENT:fc,INVALID_DATE_ARGUMENT:Yo(),INVALID_ISO_DATE_ARGUMENT:Yo(),NOT_SUPPORT_NON_STRING_MESSAGE:Yo(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:Yo(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:Yo(),NOT_SUPPORT_LOCALE_TYPE:Yo(),__EXTEND_POINT__:Yo()};function io(e){return pn(e,null,void 0)}function tr(e,t){return t.locale!=null?hc(t.locale):hc(e.locale)}let or;function hc(e){if(ye(e))return e;if(tt(e)){if(e.resolvedOnce&&or!=null)return or;if(e.constructor.name==="Function"){const t=e();if(Vb(t))throw io(Ht.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return or=t}else throw io(Ht.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw io(Ht.NOT_SUPPORT_LOCALE_TYPE)}function J$(e,t,o){return[...new Set([o,...nt(t)?t:He(t)?Object.keys(t):ye(t)?[t]:[o]])]}function mc(e,t,o){const n=ye(o)?o:hn,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let s=a.__localeChainCache.get(n);if(!s){s=[];let r=[o];for(;nt(r);)r=bc(s,r,t);const i=nt(t)||!Me(t)?t:t.default?t.default:null;r=ye(i)?[i]:i,nt(r)&&bc(s,r,!1),a.__localeChainCache.set(n,s)}return s}function bc(e,t,o){let n=!0;for(let a=0;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function o_(){return{upper:(e,t)=>t==="text"&&ye(e)?e.toUpperCase():t==="vnode"&&He(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&ye(e)?e.toLowerCase():t==="vnode"&&He(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&ye(e)?_c(e):t==="vnode"&&He(e)&&"__v_isVNode"in e?_c(e.children):e}}let yc;function vc(e){yc=e}let wc;function n_(e){wc=e}let xc;function a_(e){xc=e}let kc=null;const s_=e=>{kc=e},r_=()=>kc;let Lc=null;const Ac=e=>{Lc=e},i_=()=>Lc;let Sc=0;function l_(e={}){const t=tt(e.onWarn)?e.onWarn:Ib,o=ye(e.version)?e.version:t_,n=ye(e.locale)||tt(e.locale)?e.locale:hn,a=tt(n)?hn:n,s=nt(e.fallbackLocale)||Me(e.fallbackLocale)||ye(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,r=Me(e.messages)?e.messages:nr(a),i=Me(e.datetimeFormats)?e.datetimeFormats:nr(a),l=Me(e.numberFormats)?e.numberFormats:nr(a),c=mt(Ze(),e.modifiers,o_()),u=e.pluralRules||Ze(),p=tt(e.missing)?e.missing:null,g=Be(e.missingWarn)||Oo(e.missingWarn)?e.missingWarn:!0,y=Be(e.fallbackWarn)||Oo(e.fallbackWarn)?e.fallbackWarn:!0,A=!!e.fallbackFormat,k=!!e.unresolving,S=tt(e.postTranslation)?e.postTranslation:null,C=Me(e.processor)?e.processor:null,f=Be(e.warnHtmlMessage)?e.warnHtmlMessage:!0,b=!!e.escapeParameter,d=tt(e.messageCompiler)?e.messageCompiler:yc,$=tt(e.messageResolver)?e.messageResolver:wc||M$,L=tt(e.localeFallbacker)?e.localeFallbacker:xc||J$,w=He(e.fallbackContext)?e.fallbackContext:void 0,F=e,U=He(F.__datetimeFormatters)?F.__datetimeFormatters:new Map,ne=He(F.__numberFormatters)?F.__numberFormatters:new Map,z=He(F.__meta)?F.__meta:{};Sc++;const Y={version:o,cid:Sc,locale:n,fallbackLocale:s,messages:r,modifiers:c,pluralRules:u,missing:p,missingWarn:g,fallbackWarn:y,fallbackFormat:A,unresolving:k,postTranslation:S,processor:C,warnHtmlMessage:f,escapeParameter:b,messageCompiler:d,messageResolver:$,localeFallbacker:L,fallbackContext:w,onWarn:t,__meta:z};return Y.datetimeFormats=i,Y.numberFormats=l,Y.__datetimeFormatters=U,Y.__numberFormatters=ne,__INTLIFY_PROD_DEVTOOLS__&&H$(Y,o,z),Y}const nr=e=>({[e]:Ze()});function ar(e,t,o,n,a){const{missing:s,onWarn:r}=e;if(s!==null){const i=s(e,o,t,a);return ye(i)?i:t}else return t}function ea(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function c_(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function u_(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;nd_(o,e)}function d_(e,t){const o=k$(t);if(o==null)throw Jn(0);if(er(o)===1){const s=L$(o);return e.plural(s.reduce((r,i)=>[...r,Pc(e,i)],[]))}else return Pc(e,o)}function Pc(e,t){const o=A$(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=S$(t).reduce((a,s)=>[...a,rr(e,s)],[]);return e.normalize(n)}}function rr(e,t){const o=er(t);switch(o){case 3:return Za(t,o);case 9:return Za(t,o);case 4:{const n=t;if(qt(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(qt(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw Jn(o)}case 5:{const n=t;if(qt(n,"i")&&it(n.i))return e.interpolate(e.list(n.i));if(qt(n,"index")&&it(n.index))return e.interpolate(e.list(n.index));throw Jn(o)}case 6:{const n=t,a=P$(n),s=E$(n);return e.linked(rr(e,s),a?rr(e,a):void 0,e.type)}case 7:return Za(t,o);case 8:return Za(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const Ec=e=>e;let mn=Ze();function Cc(e,t={}){let o=!1;const n=t.onError||Qb;return t.onError=a=>{o=!0,n(a)},{...w$(e,t),detectError:o}}const p_=(e,t)=>{if(!ye(e))throw io(Ht.NOT_SUPPORT_NON_STRING_MESSAGE);{Be(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Ec)(e),a=mn[n];if(a)return a;const{code:s,detectError:r}=Cc(e,t),i=new Function(`return ${s}`)();return r?i:mn[n]=i}};function g_(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&ye(e)){Be(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Ec)(e),a=mn[n];if(a)return a;const{ast:s,detectError:r}=Cc(e,{...t,location:!1,jit:!0}),i=sr(s);return r?i:mn[n]=i}else{const o=e.cacheKey;if(o){const n=mn[o];return n||(mn[o]=sr(e))}else return sr(e)}}const Tc=()=>"",Dt=e=>tt(e);function Rc(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:s,fallbackLocale:r,messages:i}=e,[l,c]=ir(...t),u=Be(c.missingWarn)?c.missingWarn:e.missingWarn,p=Be(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,g=Be(c.escapeParameter)?c.escapeParameter:e.escapeParameter,y=!!c.resolvedMessage,A=ye(c.default)||Be(c.default)?Be(c.default)?s?l:()=>l:c.default:o?s?l:()=>l:"",k=o||A!=="",S=tr(e,c);g&&f_(c);let[C,f,b]=y?[l,S,i[S]||Ze()]:Nc(e,l,S,r,p,u),d=C,$=l;if(!y&&!(ye(d)||ro(d)||Dt(d))&&k&&(d=A,$=d),!y&&(!(ye(d)||ro(d)||Dt(d))||!ye(f)))return a?Ja:l;let L=!1;const w=()=>{L=!0},F=Dt(d)?d:Oc(e,l,f,d,$,w);if(L)return d;const U=b_(e,f,b,c),ne=q$(U),z=h_(e,F,ne);let Y=n?n(z,l):z;if(g&&ye(Y)&&(Y=Ub(Y)),__INTLIFY_PROD_DEVTOOLS__){const fe={timestamp:Date.now(),key:ye(l)?l:Dt(d)?d.key:"",locale:f||(Dt(d)?d.locale:""),format:ye(d)?d:Dt(d)?d.source:"",message:Y};fe.meta=mt({},e.__meta,r_()||{}),K$(fe)}return Y}function f_(e){nt(e.list)?e.list=e.list.map(t=>ye(t)?Wl(t):t):He(e.named)&&Object.keys(e.named).forEach(t=>{ye(e.named[t])&&(e.named[t]=Wl(e.named[t]))})}function Nc(e,t,o,n,a,s){const{messages:r,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,o);let p=Ze(),g,y=null;const A="translate";for(let k=0;kn;return c.locale=o,c.key=t,c}const l=r(n,m_(e,o,a,n,i,s));return l.locale=o,l.key=t,l.source=n,l}function h_(e,t,o){return t(o)}function ir(...e){const[t,o,n]=e,a=Ze();if(!ye(t)&&!it(t)&&!Dt(t)&&!ro(t))throw io(Ht.INVALID_ARGUMENT);const s=it(t)?String(t):(Dt(t),t);return it(o)?a.plural=o:ye(o)?a.default=o:Me(o)&&!Wa(o)?a.named=o:nt(o)&&(a.list=o),it(n)?a.plural=n:ye(n)?a.default=n:Me(n)&&mt(a,n),[s,a]}function m_(e,t,o,n,a,s){return{locale:t,key:o,warnHtmlMessage:a,onError:r=>{throw s&&s(r),r},onCacheKey:r=>Db(t,o,r)}}function b_(e,t,o,n){const{modifiers:a,pluralRules:s,messageResolver:r,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,g={locale:t,modifiers:a,pluralRules:s,messages:y=>{let A=r(o,y);if(A==null&&u){const[,,k]=Nc(u,y,t,i,l,c);A=r(k,y)}if(ye(A)||ro(A)){let k=!1;const C=Oc(e,y,t,A,y,()=>{k=!0});return k?Tc:C}else return Dt(A)?A:Tc}};return e.processor&&(g.processor=e.processor),n.list&&(g.list=n.list),n.named&&(g.named=n.named),it(n.plural)&&(g.pluralIndex=n.plural),g}function Fc(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__datetimeFormatters:i}=e,[l,c,u,p]=lr(...t),g=Be(u.missingWarn)?u.missingWarn:e.missingWarn;Be(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const y=!!u.part,A=tr(e,u),k=r(e,a,A);if(!ye(l)||l==="")return new Intl.DateTimeFormat(A,p).format(c);let S={},C,f=null;const b="datetime format";for(let L=0;L{Mc.includes(l)?r[l]=o[l]:s[l]=o[l]}),ye(n)?s.locale=n:Me(n)&&(r=n),Me(a)&&(r=a),[s.key||"",i,s,r]}function Ic(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__datetimeFormatters.has(s)&&n.__datetimeFormatters.delete(s)}}function Dc(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__numberFormatters:i}=e,[l,c,u,p]=cr(...t),g=Be(u.missingWarn)?u.missingWarn:e.missingWarn;Be(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const y=!!u.part,A=tr(e,u),k=r(e,a,A);if(!ye(l)||l==="")return new Intl.NumberFormat(A,p).format(c);let S={},C,f=null;const b="number format";for(let L=0;L{jc.includes(l)?r[l]=o[l]:s[l]=o[l]}),ye(n)?s.locale=n:Me(n)&&(r=n),Me(a)&&(r=a),[s.key||"",i,s,r]}function zc(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__numberFormatters.has(s)&&n.__numberFormatters.delete(s)}}x$();/*! + */function L$(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&($o().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&($o().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&($o().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function ro(e){return He(e)&&er(e)===0&&(qt(e,"b")||qt(e,"body"))}const nc=["b","body"];function A$(e){return Mo(e,nc)}const ac=["c","cases"];function S$(e){return Mo(e,ac,[])}const sc=["s","static"];function P$(e){return Mo(e,sc)}const rc=["i","items"];function E$(e){return Mo(e,rc,[])}const ic=["t","type"];function er(e){return Mo(e,ic)}const lc=["v","value"];function Za(e,t){const o=Mo(e,lc);if(o!=null)return o;throw Jn(t)}const cc=["m","modifier"];function C$(e){return Mo(e,cc)}const uc=["k","key"];function T$(e){const t=Mo(e,uc);if(t)return t;throw Jn(6)}function Mo(e,t,o){for(let n=0;n{r===void 0?r=i:r+=i},g[1]=()=>{r!==void 0&&(t.push(r),r=void 0)},g[2]=()=>{g[0](),a++},g[3]=()=>{if(a>0)a--,n=4,g[0]();else{if(a=0,r===void 0||(r=M$(r),r===!1))return!1;g[1]()}};function y(){const A=e[o+1];if(n===5&&A==="'"||n===6&&A==='"')return o++,i="\\"+A,g[0](),!0}for(;n!==null;)if(o++,s=e[o],!(s==="\\"&&y())){if(l=F$(s),p=Io[n],c=p[l]||p.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=g[c[1]],u&&(i=s,u()===!1))))return;if(n===7)return t}}const pc=new Map;function D$(e,t){return He(e)?e[t]:null}function j$(e,t){if(!He(e))return null;let o=pc.get(t);if(o||(o=I$(t),o&&pc.set(t,o)),!o)return null;const n=o.length;let a=e,s=0;for(;se,G$=e=>"",U$="text",B$=e=>e.length===0?"":Kb(e),V$=Hb;function gc(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function q$(e){const t=lt(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(lt(e.named.count)||lt(e.named.n))?lt(e.named.count)?e.named.count:lt(e.named.n)?e.named.n:t:t}function W$(e,t){t.count||(t.count=e),t.n||(t.n=e)}function H$(e={}){const t=e.locale,o=q$(e),n=He(e.pluralRules)&&$e(t)&&tt(e.pluralRules[t])?e.pluralRules[t]:gc,a=He(e.pluralRules)&&$e(t)&&tt(e.pluralRules[t])?gc:void 0,s=C=>C[n(o,C.length,a)],r=e.list||[],i=C=>r[C],l=e.named||Ze();lt(e.pluralIndex)&&W$(o,l);const c=C=>l[C];function u(C){const f=tt(e.messages)?e.messages(C):He(e.messages)?e.messages[C]:!1;return f||(e.parent?e.parent.message(C):G$)}const p=C=>e.modifiers?e.modifiers[C]:z$,g=Me(e.processor)&&tt(e.processor.normalize)?e.processor.normalize:B$,y=Me(e.processor)&&tt(e.processor.interpolate)?e.processor.interpolate:V$,A=Me(e.processor)&&$e(e.processor.type)?e.processor.type:U$,S={list:i,named:c,plural:s,linked:(C,...f)=>{const[b,d]=f;let $="text",L="";f.length===1?He(b)?(L=b.modifier||L,$=b.type||$):$e(b)&&(L=b||L):f.length===2&&($e(b)&&(L=b||L),$e(d)&&($=d||$));const w=u(C)(S),F=$==="vnode"&&nt(w)&&L?w[0]:w;return L?p(L)(F,$):F},message:u,type:A,interpolate:y,normalize:g,values:mt(Ze(),r,l)};return S}let Qn=null;function K$(e){Qn=e}function X$(e,t,o){Qn&&Qn.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const Y$=Z$("function:translate");function Z$(e){return t=>Qn&&Qn.emit(e,t)}const J$=Js.__EXTEND_POINT__,Xo=Ha(J$),Q$={FALLBACK_TO_TRANSLATE:Xo(),CANNOT_FORMAT_NUMBER:Xo(),FALLBACK_TO_NUMBER_FORMAT:Xo(),CANNOT_FORMAT_DATE:Xo(),FALLBACK_TO_DATE_FORMAT:Xo(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:Xo(),__EXTEND_POINT__:Xo()},fc=Te.__EXTEND_POINT__,Yo=Ha(fc),Ht={INVALID_ARGUMENT:fc,INVALID_DATE_ARGUMENT:Yo(),INVALID_ISO_DATE_ARGUMENT:Yo(),NOT_SUPPORT_NON_STRING_MESSAGE:Yo(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:Yo(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:Yo(),NOT_SUPPORT_LOCALE_TYPE:Yo(),__EXTEND_POINT__:Yo()};function io(e){return gn(e,null,void 0)}function tr(e,t){return t.locale!=null?hc(t.locale):hc(e.locale)}let or;function hc(e){if($e(e))return e;if(tt(e)){if(e.resolvedOnce&&or!=null)return or;if(e.constructor.name==="Function"){const t=e();if(Wb(t))throw io(Ht.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return or=t}else throw io(Ht.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw io(Ht.NOT_SUPPORT_LOCALE_TYPE)}function e_(e,t,o){return[...new Set([o,...nt(t)?t:He(t)?Object.keys(t):$e(t)?[t]:[o]])]}function mc(e,t,o){const n=$e(o)?o:mn,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let s=a.__localeChainCache.get(n);if(!s){s=[];let r=[o];for(;nt(r);)r=bc(s,r,t);const i=nt(t)||!Me(t)?t:t.default?t.default:null;r=$e(i)?[i]:i,nt(r)&&bc(s,r,!1),a.__localeChainCache.set(n,s)}return s}function bc(e,t,o){let n=!0;for(let a=0;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function a_(){return{upper:(e,t)=>t==="text"&&$e(e)?e.toUpperCase():t==="vnode"&&He(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&$e(e)?e.toLowerCase():t==="vnode"&&He(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&$e(e)?_c(e):t==="vnode"&&He(e)&&"__v_isVNode"in e?_c(e.children):e}}let yc;function vc(e){yc=e}let wc;function s_(e){wc=e}let xc;function r_(e){xc=e}let kc=null;const i_=e=>{kc=e},l_=()=>kc;let Lc=null;const Ac=e=>{Lc=e},c_=()=>Lc;let Sc=0;function u_(e={}){const t=tt(e.onWarn)?e.onWarn:jb,o=$e(e.version)?e.version:n_,n=$e(e.locale)||tt(e.locale)?e.locale:mn,a=tt(n)?mn:n,s=nt(e.fallbackLocale)||Me(e.fallbackLocale)||$e(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,r=Me(e.messages)?e.messages:nr(a),i=Me(e.datetimeFormats)?e.datetimeFormats:nr(a),l=Me(e.numberFormats)?e.numberFormats:nr(a),c=mt(Ze(),e.modifiers,a_()),u=e.pluralRules||Ze(),p=tt(e.missing)?e.missing:null,g=Be(e.missingWarn)||Oo(e.missingWarn)?e.missingWarn:!0,y=Be(e.fallbackWarn)||Oo(e.fallbackWarn)?e.fallbackWarn:!0,A=!!e.fallbackFormat,k=!!e.unresolving,S=tt(e.postTranslation)?e.postTranslation:null,C=Me(e.processor)?e.processor:null,f=Be(e.warnHtmlMessage)?e.warnHtmlMessage:!0,b=!!e.escapeParameter,d=tt(e.messageCompiler)?e.messageCompiler:yc,$=tt(e.messageResolver)?e.messageResolver:wc||D$,L=tt(e.localeFallbacker)?e.localeFallbacker:xc||e_,w=He(e.fallbackContext)?e.fallbackContext:void 0,F=e,D=He(F.__datetimeFormatters)?F.__datetimeFormatters:new Map,ne=He(F.__numberFormatters)?F.__numberFormatters:new Map,B=He(F.__meta)?F.__meta:{};Sc++;const Y={version:o,cid:Sc,locale:n,fallbackLocale:s,messages:r,modifiers:c,pluralRules:u,missing:p,missingWarn:g,fallbackWarn:y,fallbackFormat:A,unresolving:k,postTranslation:S,processor:C,warnHtmlMessage:f,escapeParameter:b,messageCompiler:d,messageResolver:$,localeFallbacker:L,fallbackContext:w,onWarn:t,__meta:B};return Y.datetimeFormats=i,Y.numberFormats=l,Y.__datetimeFormatters=D,Y.__numberFormatters=ne,__INTLIFY_PROD_DEVTOOLS__&&X$(Y,o,B),Y}const nr=e=>({[e]:Ze()});function ar(e,t,o,n,a){const{missing:s,onWarn:r}=e;if(s!==null){const i=s(e,o,t,a);return $e(i)?i:t}else return t}function ea(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function d_(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function p_(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;ng_(o,e)}function g_(e,t){const o=A$(t);if(o==null)throw Jn(0);if(er(o)===1){const s=S$(o);return e.plural(s.reduce((r,i)=>[...r,Pc(e,i)],[]))}else return Pc(e,o)}function Pc(e,t){const o=P$(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=E$(t).reduce((a,s)=>[...a,rr(e,s)],[]);return e.normalize(n)}}function rr(e,t){const o=er(t);switch(o){case 3:return Za(t,o);case 9:return Za(t,o);case 4:{const n=t;if(qt(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(qt(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw Jn(o)}case 5:{const n=t;if(qt(n,"i")&<(n.i))return e.interpolate(e.list(n.i));if(qt(n,"index")&<(n.index))return e.interpolate(e.list(n.index));throw Jn(o)}case 6:{const n=t,a=C$(n),s=T$(n);return e.linked(rr(e,s),a?rr(e,a):void 0,e.type)}case 7:return Za(t,o);case 8:return Za(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const Ec=e=>e;let bn=Ze();function Cc(e,t={}){let o=!1;const n=t.onError||t$;return t.onError=a=>{o=!0,n(a)},{...k$(e,t),detectError:o}}const f_=(e,t)=>{if(!$e(e))throw io(Ht.NOT_SUPPORT_NON_STRING_MESSAGE);{Be(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Ec)(e),a=bn[n];if(a)return a;const{code:s,detectError:r}=Cc(e,t),i=new Function(`return ${s}`)();return r?i:bn[n]=i}};function h_(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&$e(e)){Be(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||Ec)(e),a=bn[n];if(a)return a;const{ast:s,detectError:r}=Cc(e,{...t,location:!1,jit:!0}),i=sr(s);return r?i:bn[n]=i}else{const o=e.cacheKey;if(o){const n=bn[o];return n||(bn[o]=sr(e))}else return sr(e)}}const Tc=()=>"",Dt=e=>tt(e);function Rc(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:s,fallbackLocale:r,messages:i}=e,[l,c]=ir(...t),u=Be(c.missingWarn)?c.missingWarn:e.missingWarn,p=Be(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,g=Be(c.escapeParameter)?c.escapeParameter:e.escapeParameter,y=!!c.resolvedMessage,A=$e(c.default)||Be(c.default)?Be(c.default)?s?l:()=>l:c.default:o?s?l:()=>l:"",k=o||A!=="",S=tr(e,c);g&&m_(c);let[C,f,b]=y?[l,S,i[S]||Ze()]:Nc(e,l,S,r,p,u),d=C,$=l;if(!y&&!($e(d)||ro(d)||Dt(d))&&k&&(d=A,$=d),!y&&(!($e(d)||ro(d)||Dt(d))||!$e(f)))return a?Ja:l;let L=!1;const w=()=>{L=!0},F=Dt(d)?d:Oc(e,l,f,d,$,w);if(L)return d;const D=__(e,f,b,c),ne=H$(D),B=b_(e,F,ne);let Y=n?n(B,l):B;if(g&&$e(Y)&&(Y=Vb(Y)),__INTLIFY_PROD_DEVTOOLS__){const pe={timestamp:Date.now(),key:$e(l)?l:Dt(d)?d.key:"",locale:f||(Dt(d)?d.locale:""),format:$e(d)?d:Dt(d)?d.source:"",message:Y};pe.meta=mt({},e.__meta,l_()||{}),Y$(pe)}return Y}function m_(e){nt(e.list)?e.list=e.list.map(t=>$e(t)?Wl(t):t):He(e.named)&&Object.keys(e.named).forEach(t=>{$e(e.named[t])&&(e.named[t]=Wl(e.named[t]))})}function Nc(e,t,o,n,a,s){const{messages:r,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,o);let p=Ze(),g,y=null;const A="translate";for(let k=0;kn;return c.locale=o,c.key=t,c}const l=r(n,$_(e,o,a,n,i,s));return l.locale=o,l.key=t,l.source=n,l}function b_(e,t,o){return t(o)}function ir(...e){const[t,o,n]=e,a=Ze();if(!$e(t)&&!lt(t)&&!Dt(t)&&!ro(t))throw io(Ht.INVALID_ARGUMENT);const s=lt(t)?String(t):(Dt(t),t);return lt(o)?a.plural=o:$e(o)?a.default=o:Me(o)&&!Wa(o)?a.named=o:nt(o)&&(a.list=o),lt(n)?a.plural=n:$e(n)?a.default=n:Me(n)&&mt(a,n),[s,a]}function $_(e,t,o,n,a,s){return{locale:t,key:o,warnHtmlMessage:a,onError:r=>{throw s&&s(r),r},onCacheKey:r=>zb(t,o,r)}}function __(e,t,o,n){const{modifiers:a,pluralRules:s,messageResolver:r,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,g={locale:t,modifiers:a,pluralRules:s,messages:y=>{let A=r(o,y);if(A==null&&u){const[,,k]=Nc(u,y,t,i,l,c);A=r(k,y)}if($e(A)||ro(A)){let k=!1;const C=Oc(e,y,t,A,y,()=>{k=!0});return k?Tc:C}else return Dt(A)?A:Tc}};return e.processor&&(g.processor=e.processor),n.list&&(g.list=n.list),n.named&&(g.named=n.named),lt(n.plural)&&(g.pluralIndex=n.plural),g}function Fc(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__datetimeFormatters:i}=e,[l,c,u,p]=lr(...t),g=Be(u.missingWarn)?u.missingWarn:e.missingWarn;Be(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const y=!!u.part,A=tr(e,u),k=r(e,a,A);if(!$e(l)||l==="")return new Intl.DateTimeFormat(A,p).format(c);let S={},C,f=null;const b="datetime format";for(let L=0;L{Mc.includes(l)?r[l]=o[l]:s[l]=o[l]}),$e(n)?s.locale=n:Me(n)&&(r=n),Me(a)&&(r=a),[s.key||"",i,s,r]}function Ic(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__datetimeFormatters.has(s)&&n.__datetimeFormatters.delete(s)}}function Dc(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__numberFormatters:i}=e,[l,c,u,p]=cr(...t),g=Be(u.missingWarn)?u.missingWarn:e.missingWarn;Be(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const y=!!u.part,A=tr(e,u),k=r(e,a,A);if(!$e(l)||l==="")return new Intl.NumberFormat(A,p).format(c);let S={},C,f=null;const b="number format";for(let L=0;L{jc.includes(l)?r[l]=o[l]:s[l]=o[l]}),$e(n)?s.locale=n:Me(n)&&(r=n),Me(a)&&(r=a),[s.key||"",i,s,r]}function zc(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__numberFormatters.has(s)&&n.__numberFormatters.delete(s)}}L$();/*! * vue-i18n v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */const $_="9.14.5";function __(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&($o().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&($o().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&($o().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&($o().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&($o().__INTLIFY_PROD_DEVTOOLS__=!1)}const y_=Z$.__EXTEND_POINT__,yo=Ha(y_);yo(),yo(),yo(),yo(),yo(),yo(),yo(),yo(),yo();const Gc=Ht.__EXTEND_POINT__,Et=Ha(Gc),dt={UNEXPECTED_RETURN_TYPE:Gc,INVALID_ARGUMENT:Et(),MUST_BE_CALL_SETUP_TOP:Et(),NOT_INSTALLED:Et(),NOT_AVAILABLE_IN_LEGACY_MODE:Et(),REQUIRED_VALUE:Et(),INVALID_VALUE:Et(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Et(),NOT_INSTALLED_WITH_PROVIDE:Et(),UNEXPECTED_ERROR:Et(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Et(),BRIDGE_SUPPORT_VUE_2_ONLY:Et(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Et(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Et(),__EXTEND_POINT__:Et()};function gt(e,...t){return pn(e,null,void 0)}const ur=No("__translateVNode"),dr=No("__datetimeParts"),pr=No("__numberParts"),Uc=No("__setPluralRules"),Bc=No("__injectWithOption"),gr=No("__dispose");function ta(e){if(!He(e)||ro(e))return e;for(const t in e)if(qt(e,t))if(!t.includes("."))He(e[t])&&ta(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]||Ze(),Xa(c,r[l])):Xa(c,r)}else ye(i)&&Xa(JSON.parse(i),r)}),a==null&&s)for(const i in r)qt(r,i)&&ta(r[i]);return r}function Vc(e){return e.type}function qc(e,t,o){let n=He(t.messages)?t.messages:Ze();"__i18nGlobal"in o&&(n=Qa(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(s=>{e.mergeLocaleMessage(s,n[s])});{if(He(t.datetimeFormats)){const s=Object.keys(t.datetimeFormats);s.length&&s.forEach(r=>{e.mergeDateTimeFormat(r,t.datetimeFormats[r])})}if(He(t.numberFormats)){const s=Object.keys(t.numberFormats);s.length&&s.forEach(r=>{e.mergeNumberFormat(r,t.numberFormats[r])})}}}function Wc(e){return Ue(Bn,null,e,0)}const Hc="__INTLIFY_META__",Kc=()=>[],v_=()=>!1;let Xc=0;function Yc(e){return(t,o,n,a)=>e(o,n,Ro()||void 0,a)}const w_=()=>{const e=Ro();let t=null;return e&&(t=Vc(e)[Hc])?{[Hc]:t}:null};function fr(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,s=e.flatJson,r=qa?de:On,i=!!e.translateExistCompatible;let l=Be(e.inheritLocale)?e.inheritLocale:!0;const c=r(o&&l?o.locale.value:ye(e.locale)?e.locale:hn),u=r(o&&l?o.fallbackLocale.value:ye(e.fallbackLocale)||nt(e.fallbackLocale)||Me(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),p=r(Qa(c.value,e)),g=r(Me(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),y=r(Me(e.numberFormats)?e.numberFormats:{[c.value]:{}});let A=o?o.missingWarn:Be(e.missingWarn)||Oo(e.missingWarn)?e.missingWarn:!0,k=o?o.fallbackWarn:Be(e.fallbackWarn)||Oo(e.fallbackWarn)?e.fallbackWarn:!0,S=o?o.fallbackRoot:Be(e.fallbackRoot)?e.fallbackRoot:!0,C=!!e.fallbackFormat,f=tt(e.missing)?e.missing:null,b=tt(e.missing)?Yc(e.missing):null,d=tt(e.postTranslation)?e.postTranslation:null,$=o?o.warnHtmlMessage:Be(e.warnHtmlMessage)?e.warnHtmlMessage:!0,L=!!e.escapeParameter;const w=o?o.modifiers:Me(e.modifiers)?e.modifiers:{};let F=e.pluralRules||o&&o.pluralRules,U;U=(()=>{a&&Ac(null);const T={version:$_,locale:c.value,fallbackLocale:u.value,messages:p.value,modifiers:w,pluralRules:F,missing:b===null?void 0:b,missingWarn:A,fallbackWarn:k,fallbackFormat:C,unresolving:!0,postTranslation:d===null?void 0:d,warnHtmlMessage:$,escapeParameter:L,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};T.datetimeFormats=g.value,T.numberFormats=y.value,T.__datetimeFormatters=Me(U)?U.__datetimeFormatters:void 0,T.__numberFormatters=Me(U)?U.__numberFormatters:void 0;const j=l_(T);return a&&Ac(j),j})(),ea(U,c.value,u.value);function z(){return[c.value,u.value,p.value,g.value,y.value]}const Y=re({get:()=>c.value,set:T=>{c.value=T,U.locale=c.value}}),fe=re({get:()=>u.value,set:T=>{u.value=T,U.fallbackLocale=u.value,ea(U,c.value,T)}}),M=re(()=>p.value),Q=re(()=>g.value),X=re(()=>y.value);function B(){return tt(d)?d:null}function se(T){d=T,U.postTranslation=T}function I(){return f}function O(T){T!==null&&(b=Yc(T)),f=T,U.missing=b}const V=(T,j,ie,we,Ne,Ve)=>{z();let Ke;try{__INTLIFY_PROD_DEVTOOLS__,a||(U.fallbackContext=o?i_():void 0),Ke=T(U)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(U.fallbackContext=void 0)}if(ie!=="translate exists"&&it(Ke)&&Ke===Ja||ie==="translate exists"&&!Ke){const[ft,bt]=j();return o&&S?we(o):Ne(ft)}else{if(Ve(Ke))return Ke;throw gt(dt.UNEXPECTED_RETURN_TYPE)}};function D(...T){return V(j=>Reflect.apply(Rc,null,[j,...T]),()=>ir(...T),"translate",j=>Reflect.apply(j.t,j,[...T]),j=>j,j=>ye(j))}function ae(...T){const[j,ie,we]=T;if(we&&!He(we))throw gt(dt.INVALID_ARGUMENT);return D(j,ie,mt({resolvedMessage:!0},we||{}))}function ge(...T){return V(j=>Reflect.apply(Fc,null,[j,...T]),()=>lr(...T),"datetime format",j=>Reflect.apply(j.d,j,[...T]),()=>$c,j=>ye(j))}function ke(...T){return V(j=>Reflect.apply(Dc,null,[j,...T]),()=>cr(...T),"number format",j=>Reflect.apply(j.n,j,[...T]),()=>$c,j=>ye(j))}function be(T){return T.map(j=>ye(j)||it(j)||Be(j)?Wc(String(j)):j)}const Pe={normalize:be,interpolate:T=>T,type:"vnode"};function ce(...T){return V(j=>{let ie;const we=j;try{we.processor=Pe,ie=Reflect.apply(Rc,null,[we,...T])}finally{we.processor=null}return ie},()=>ir(...T),"translate",j=>j[ur](...T),j=>[Wc(j)],j=>nt(j))}function _e(...T){return V(j=>Reflect.apply(Dc,null,[j,...T]),()=>cr(...T),"number format",j=>j[pr](...T),Kc,j=>ye(j)||nt(j))}function xe(...T){return V(j=>Reflect.apply(Fc,null,[j,...T]),()=>lr(...T),"datetime format",j=>j[dr](...T),Kc,j=>ye(j)||nt(j))}function _(T){F=T,U.pluralRules=F}function P(T,j){return V(()=>{if(!T)return!1;const ie=ye(j)?j:c.value,we=ee(ie),Ne=U.messageResolver(we,T);return i?Ne!=null:ro(Ne)||Dt(Ne)||ye(Ne)},()=>[T],"translate exists",ie=>Reflect.apply(ie.te,ie,[T,j]),v_,ie=>Be(ie))}function x(T){let j=null;const ie=mc(U,u.value,c.value);for(let we=0;we{l&&(c.value=T,U.locale=T,ea(U,c.value,u.value))}),lt(o.fallbackLocale,T=>{l&&(u.value=T,U.fallbackLocale=T,ea(U,c.value,u.value))}));const W={id:Xc,locale:Y,fallbackLocale:fe,get inheritLocale(){return l},set inheritLocale(T){l=T,T&&o&&(c.value=o.locale.value,u.value=o.fallbackLocale.value,ea(U,c.value,u.value))},get availableLocales(){return Object.keys(p.value).sort()},messages:M,get modifiers(){return w},get pluralRules(){return F||{}},get isGlobal(){return a},get missingWarn(){return A},set missingWarn(T){A=T,U.missingWarn=A},get fallbackWarn(){return k},set fallbackWarn(T){k=T,U.fallbackWarn=k},get fallbackRoot(){return S},set fallbackRoot(T){S=T},get fallbackFormat(){return C},set fallbackFormat(T){C=T,U.fallbackFormat=C},get warnHtmlMessage(){return $},set warnHtmlMessage(T){$=T,U.warnHtmlMessage=T},get escapeParameter(){return L},set escapeParameter(T){L=T,U.escapeParameter=T},t:D,getLocaleMessage:ee,setLocaleMessage:te,mergeLocaleMessage:le,getPostTranslationHandler:B,setPostTranslationHandler:se,getMissingHandler:I,setMissingHandler:O,[Uc]:_};return W.datetimeFormats=Q,W.numberFormats=X,W.rt=ae,W.te=P,W.tm=G,W.d=ge,W.n=ke,W.getDateTimeFormat=oe,W.setDateTimeFormat=h,W.mergeDateTimeFormat=m,W.getNumberFormat=v,W.setNumberFormat=E,W.mergeNumberFormat=q,W[Bc]=n,W[ur]=ce,W[dr]=xe,W[pr]=_e,W}function x_(e){const t=ye(e.locale)?e.locale:hn,o=ye(e.fallbackLocale)||nt(e.fallbackLocale)||Me(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=tt(e.missing)?e.missing:void 0,a=Be(e.silentTranslationWarn)||Oo(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,s=Be(e.silentFallbackWarn)||Oo(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,r=Be(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=Me(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=tt(e.postTranslation)?e.postTranslation:void 0,p=ye(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,g=!!e.escapeParameterHtml,y=Be(e.sync)?e.sync:!0;let A=e.messages;if(Me(e.sharedMessages)){const L=e.sharedMessages;A=Object.keys(L).reduce((F,U)=>{const ne=F[U]||(F[U]={});return mt(ne,L[U]),F},A||{})}const{__i18n:k,__root:S,__injectWithOption:C}=e,f=e.datetimeFormats,b=e.numberFormats,d=e.flatJson,$=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:A,flatJson:d,datetimeFormats:f,numberFormats:b,missing:n,missingWarn:a,fallbackWarn:s,fallbackRoot:r,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:p,escapeParameter:g,messageResolver:e.messageResolver,inheritLocale:y,translateExistCompatible:$,__i18n:k,__root:S,__injectWithOption:C}}function hr(e={},t){{const o=fr(x_(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 Be(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(s){o.missingWarn=Be(s)?!s:s},get silentFallbackWarn(){return Be(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(s){o.fallbackWarn=Be(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,p=null;if(!ye(r))throw gt(dt.INVALID_ARGUMENT);const g=r;return ye(i)?c.locale=i:nt(i)?u=i:Me(i)&&(p=i),nt(l)?u=l:Me(l)&&(p=l),Reflect.apply(o.t,o,[g,u||p||{},c])},rt(...s){return Reflect.apply(o.rt,o,[...s])},tc(...s){const[r,i,l]=s,c={plural:1};let u=null,p=null;if(!ye(r))throw gt(dt.INVALID_ARGUMENT);const g=r;return ye(i)?c.locale=i:it(i)?c.plural=i:nt(i)?u=i:Me(i)&&(p=i),ye(l)?c.locale=l:nt(l)?u=l:Me(l)&&(p=l),Reflect.apply(o.t,o,[g,u||p||{},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 mr={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function k_({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===Ce?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},Ze())}function Zc(e){return Ce}const Jc=jn({name:"i18n-t",props:mt({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>it(e)||!isNaN(e)}},mr),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||Zo({useScope:e.scope,__useComponent:!0});return()=>{const s=Object.keys(o).filter(p=>p!=="_"),r=Ze();e.locale&&(r.locale=e.locale),e.plural!==void 0&&(r.plural=ye(e.plural)?+e.plural:e.plural);const i=k_(t,s),l=a[ur](e.keypath,i,r),c=mt(Ze(),n),u=ye(e.tag)||He(e.tag)?e.tag:Zc();return Sl(u,c,l)}}});function L_(e){return nt(e)&&!ye(e[0])}function Qc(e,t,o,n){const{slots:a,attrs:s}=t;return()=>{const r={part:!0};let i=Ze();e.locale&&(r.locale=e.locale),ye(e.format)?r.key=e.format:He(e.format)&&(ye(e.format.key)&&(r.key=e.format.key),i=Object.keys(e.format).reduce((g,y)=>o.includes(y)?mt(Ze(),g,{[y]:e.format[y]}):g,Ze()));const l=n(e.value,r,i);let c=[r.key];nt(l)?c=l.map((g,y)=>{const A=a[g.type],k=A?A({[g.type]:g.value,index:y,parts:l}):[g.value];return L_(k)&&(k[0].key=`${g.type}-${y}`),k}):ye(l)&&(c=[l]);const u=mt(Ze(),s),p=ye(e.tag)||He(e.tag)?e.tag:Zc();return Sl(p,u,c)}}const eu=jn({name:"i18n-n",props:mt({value:{type:Number,required:!0},format:{type:[String,Object]}},mr),setup(e,t){const o=e.i18n||Zo({useScope:e.scope,__useComponent:!0});return Qc(e,t,jc,(...n)=>o[pr](...n))}}),tu=jn({name:"i18n-d",props:mt({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},mr),setup(e,t){const o=e.i18n||Zo({useScope:e.scope,__useComponent:!0});return Qc(e,t,Mc,(...n)=>o[dr](...n))}});function A_(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 S_(e){const t=r=>{const{instance:i,modifiers:l,value:c}=r;if(!i||!i.$)throw gt(dt.UNEXPECTED_ERROR);const u=A_(e,i.$),p=ou(c);return[Reflect.apply(u.t,u,[...nu(p)]),u]};return{created:(r,i)=>{const[l,c]=t(i);qa&&e.global===c&&(r.__i18nWatcher=lt(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),r.__composer=c,r.textContent=l},unmounted:r=>{qa&&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=ou(i);r.textContent=Reflect.apply(l.t,l,[...nu(c)])}},getSSRProps:r=>{const[i]=t(r);return{textContent:i}}}}function ou(e){if(ye(e))return{path:e};if(Me(e)){if(!("path"in e))throw gt(dt.REQUIRED_VALUE,"path");return e}else throw gt(dt.INVALID_VALUE)}function nu(e){const{path:t,locale:o,args:n,choice:a,plural:s}=e,r={},i=n||{};return ye(o)&&(r.locale=o),it(a)&&(r.plural=a),it(s)&&(r.plural=s),[t,i,r]}function P_(e,t,...o){const n=Me(o[0])?o[0]:{},a=!!n.useI18nComponentName;(Be(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":Jc.name,"I18nT"].forEach(r=>e.component(r,Jc)),[eu.name,"I18nN"].forEach(r=>e.component(r,eu)),[tu.name,"I18nD"].forEach(r=>e.component(r,tu))),e.directive("t",S_(t))}function E_(e,t,o){return{beforeCreate(){const n=Ro();if(!n)throw gt(dt.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=au(e,s);else{s.__injectWithOption=!0,s.__extender=o.__vueI18nExtend,this.$i18n=hr(s);const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=au(e,a);else{this.$i18n=hr({__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&&qc(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=Ro();if(!n)throw gt(dt.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 au(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[Uc](t.pluralizationRules||e.pluralizationRules);const o=Qa(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 C_=No("global-vue-i18n");function T_(e={},t){const o=__VUE_I18N_LEGACY_API__&&Be(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=Be(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,s=new Map,[r,i]=R_(e,o),l=No("");function c(g){return s.get(g)||null}function u(g,y){s.set(g,y)}function p(g){s.delete(g)}{const g={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(y,...A){if(y.__VUE_I18N_SYMBOL__=l,y.provide(y.__VUE_I18N_SYMBOL__,g),Me(A[0])){const C=A[0];g.__composerExtend=C.__composerExtend,g.__vueI18nExtend=C.__vueI18nExtend}let k=null;!o&&n&&(k=G_(y,g.global)),__VUE_I18N_FULL_INSTALL__&&P_(y,g,...A),__VUE_I18N_LEGACY_API__&&o&&y.mixin(E_(i,i.__composer,g));const S=y.unmount;y.unmount=()=>{k&&k(),g.dispose(),S()}},get global(){return i},dispose(){r.stop()},__instances:s,__getInstance:c,__setInstance:u,__deleteInstance:p};return g}}function Zo(e={}){const t=Ro();if(t==null)throw gt(dt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw gt(dt.NOT_INSTALLED);const o=N_(t),n=F_(o),a=Vc(t),s=O_(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw gt(dt.NOT_AVAILABLE_IN_LEGACY_MODE);return j_(t,s,n,e)}if(s==="global")return qc(n,e,a),n;if(s==="parent"){let l=M_(o,t,e.__useComponent);return l==null&&(l=n),l}const r=o;let i=r.__getInstance(t);if(i==null){const l=mt({},e);"__i18n"in a&&(l.__i18n=a.__i18n),n&&(l.__root=n),i=fr(l),r.__composerExtend&&(i[gr]=r.__composerExtend(i)),D_(r,t,i),r.__setInstance(t,i)}return i}function R_(e,t,o){const n=ci();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>hr(e)):n.run(()=>fr(e));if(a==null)throw gt(dt.UNEXPECTED_ERROR);return[n,a]}}function N_(e){{const t=ze(e.isCE?C_:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw gt(e.isCE?dt.NOT_INSTALLED_WITH_PROVIDE:dt.UNEXPECTED_ERROR);return t}}function O_(e,t){return Wa(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function F_(e){return e.mode==="composition"?e.global:e.global.__composer}function M_(e,t,o=!1){let n=null;const a=t.root;let s=I_(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[Bc]&&(n=null))}if(n!=null||a===s)break;s=s.parent}return n}function I_(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function D_(e,t,o){yt(()=>{},t),Fs(()=>{const n=o;e.__deleteInstance(t);const a=n[gr];a&&(a(),delete n[gr])},t)}function j_(e,t,o,n={}){const a=t==="local",s=On(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw gt(dt.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const r=Be(n.inheritLocale)?n.inheritLocale:!ye(n.locale),i=de(!a||r?o.locale.value:ye(n.locale)?n.locale:hn),l=de(!a||r?o.fallbackLocale.value:ye(n.fallbackLocale)||nt(n.fallbackLocale)||Me(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),c=de(Qa(i.value,n)),u=de(Me(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),p=de(Me(n.numberFormats)?n.numberFormats:{[i.value]:{}}),g=a?o.missingWarn:Be(n.missingWarn)||Oo(n.missingWarn)?n.missingWarn:!0,y=a?o.fallbackWarn:Be(n.fallbackWarn)||Oo(n.fallbackWarn)?n.fallbackWarn:!0,A=a?o.fallbackRoot:Be(n.fallbackRoot)?n.fallbackRoot:!0,k=!!n.fallbackFormat,S=tt(n.missing)?n.missing:null,C=tt(n.postTranslation)?n.postTranslation:null,f=a?o.warnHtmlMessage:Be(n.warnHtmlMessage)?n.warnHtmlMessage:!0,b=!!n.escapeParameter,d=a?o.modifiers:Me(n.modifiers)?n.modifiers:{},$=n.pluralRules||a&&o.pluralRules;function L(){return[i.value,l.value,c.value,u.value,p.value]}const w=re({get:()=>s.value?s.value.locale.value:i.value,set:x=>{s.value&&(s.value.locale.value=x),i.value=x}}),F=re({get:()=>s.value?s.value.fallbackLocale.value:l.value,set:x=>{s.value&&(s.value.fallbackLocale.value=x),l.value=x}}),U=re(()=>s.value?s.value.messages.value:c.value),ne=re(()=>u.value),z=re(()=>p.value);function Y(){return s.value?s.value.getPostTranslationHandler():C}function fe(x){s.value&&s.value.setPostTranslationHandler(x)}function M(){return s.value?s.value.getMissingHandler():S}function Q(x){s.value&&s.value.setMissingHandler(x)}function X(x){return L(),x()}function B(...x){return s.value?X(()=>Reflect.apply(s.value.t,null,[...x])):X(()=>"")}function se(...x){return s.value?Reflect.apply(s.value.rt,null,[...x]):""}function I(...x){return s.value?X(()=>Reflect.apply(s.value.d,null,[...x])):X(()=>"")}function O(...x){return s.value?X(()=>Reflect.apply(s.value.n,null,[...x])):X(()=>"")}function V(x){return s.value?s.value.tm(x):{}}function D(x,G){return s.value?s.value.te(x,G):!1}function ae(x){return s.value?s.value.getLocaleMessage(x):{}}function ge(x,G){s.value&&(s.value.setLocaleMessage(x,G),c.value[x]=G)}function ke(x,G){s.value&&s.value.mergeLocaleMessage(x,G)}function be(x){return s.value?s.value.getDateTimeFormat(x):{}}function $e(x,G){s.value&&(s.value.setDateTimeFormat(x,G),u.value[x]=G)}function Pe(x,G){s.value&&s.value.mergeDateTimeFormat(x,G)}function ce(x){return s.value?s.value.getNumberFormat(x):{}}function _e(x,G){s.value&&(s.value.setNumberFormat(x,G),p.value[x]=G)}function xe(x,G){s.value&&s.value.mergeNumberFormat(x,G)}const _={get id(){return s.value?s.value.id:-1},locale:w,fallbackLocale:F,messages:U,datetimeFormats:ne,numberFormats:z,get inheritLocale(){return s.value?s.value.inheritLocale:r},set inheritLocale(x){s.value&&(s.value.inheritLocale=x)},get availableLocales(){return s.value?s.value.availableLocales:Object.keys(c.value)},get modifiers(){return s.value?s.value.modifiers:d},get pluralRules(){return s.value?s.value.pluralRules:$},get isGlobal(){return s.value?s.value.isGlobal:!1},get missingWarn(){return s.value?s.value.missingWarn:g},set missingWarn(x){s.value&&(s.value.missingWarn=x)},get fallbackWarn(){return s.value?s.value.fallbackWarn:y},set fallbackWarn(x){s.value&&(s.value.missingWarn=x)},get fallbackRoot(){return s.value?s.value.fallbackRoot:A},set fallbackRoot(x){s.value&&(s.value.fallbackRoot=x)},get fallbackFormat(){return s.value?s.value.fallbackFormat:k},set fallbackFormat(x){s.value&&(s.value.fallbackFormat=x)},get warnHtmlMessage(){return s.value?s.value.warnHtmlMessage:f},set warnHtmlMessage(x){s.value&&(s.value.warnHtmlMessage=x)},get escapeParameter(){return s.value?s.value.escapeParameter:b},set escapeParameter(x){s.value&&(s.value.escapeParameter=x)},t:B,getPostTranslationHandler:Y,setPostTranslationHandler:fe,getMissingHandler:M,setMissingHandler:Q,rt:se,d:I,n:O,tm:V,te:D,getLocaleMessage:ae,setLocaleMessage:ge,mergeLocaleMessage:ke,getDateTimeFormat:be,setDateTimeFormat:$e,mergeDateTimeFormat:Pe,getNumberFormat:ce,setNumberFormat:_e,mergeNumberFormat:xe};function P(x){x.locale.value=i.value,x.fallbackLocale.value=l.value,Object.keys(c.value).forEach(G=>{x.mergeLocaleMessage(G,c.value[G])}),Object.keys(u.value).forEach(G=>{x.mergeDateTimeFormat(G,u.value[G])}),Object.keys(p.value).forEach(G=>{x.mergeNumberFormat(G,p.value[G])}),x.escapeParameter=b,x.fallbackFormat=k,x.fallbackRoot=A,x.fallbackWarn=y,x.missingWarn=g,x.warnHtmlMessage=f}return Ki(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw gt(dt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const x=s.value=e.proxy.$i18n.__composer;t==="global"?(i.value=x.locale.value,l.value=x.fallbackLocale.value,c.value=x.messages.value,u.value=x.datetimeFormats.value,p.value=x.numberFormats.value):a&&P(x)}),_}const z_=["locale","fallbackLocale","availableLocales"],su=["t","rt","d","n","tm","te"];function G_(e,t){const o=Object.create(null);return z_.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s)throw gt(dt.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,su.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s||!s.value)throw gt(dt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,s)}),()=>{delete e.config.globalProperties.$i18n,su.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(__(),__INTLIFY_JIT_COMPILATION__?vc(g_):vc(p_),n_(I$),a_(mc),__INTLIFY_PROD_DEVTOOLS__){const e=$o();e.__INTLIFY__=!0,W$(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const U_=Object.assign({"./locales/ar/allPeopleGroups.json":Bg,"./locales/ar/aria.json":Vg,"./locales/ar/buttons.json":qg,"./locales/ar/connectivity.json":Wg,"./locales/ar/controls.json":Hg,"./locales/ar/dashboard.json":Kg,"./locales/ar/detail.json":Xg,"./locales/ar/gospel.json":Yg,"./locales/ar/grid.json":Zg,"./locales/ar/legend.json":Jg,"./locales/ar/messages.json":Qg,"./locales/ar/options.json":ef,"./locales/ar/popup.json":tf,"./locales/ar/prayerLaps.json":of,"./locales/ar/regions.json":nf,"./locales/ar/search.json":af,"./locales/ar/studio.json":sf,"./locales/ar/tabs.json":rf,"./locales/ar/vision.json":lf,"./locales/de/allPeopleGroups.json":cf,"./locales/de/aria.json":uf,"./locales/de/buttons.json":df,"./locales/de/connectivity.json":pf,"./locales/de/controls.json":gf,"./locales/de/dashboard.json":ff,"./locales/de/detail.json":hf,"./locales/de/gospel.json":mf,"./locales/de/grid.json":bf,"./locales/de/legend.json":$f,"./locales/de/messages.json":_f,"./locales/de/options.json":yf,"./locales/de/popup.json":vf,"./locales/de/prayerLaps.json":wf,"./locales/de/regions.json":xf,"./locales/de/search.json":kf,"./locales/de/studio.json":Lf,"./locales/de/tabs.json":Af,"./locales/de/vision.json":Sf,"./locales/en/allPeopleGroups.json":Pf,"./locales/en/aria.json":Ef,"./locales/en/buttons.json":Cf,"./locales/en/connectivity.json":Tf,"./locales/en/controls.json":Rf,"./locales/en/dashboard.json":Nf,"./locales/en/detail.json":Of,"./locales/en/gospel.json":Ff,"./locales/en/grid.json":Mf,"./locales/en/legend.json":If,"./locales/en/messages.json":Df,"./locales/en/options.json":jf,"./locales/en/popup.json":zf,"./locales/en/prayerLaps.json":Gf,"./locales/en/regions.json":Uf,"./locales/en/search.json":Bf,"./locales/en/studio.json":Vf,"./locales/en/tabs.json":qf,"./locales/en/vision.json":Wf,"./locales/es/allPeopleGroups.json":Hf,"./locales/es/aria.json":Kf,"./locales/es/buttons.json":Xf,"./locales/es/connectivity.json":Yf,"./locales/es/controls.json":Zf,"./locales/es/dashboard.json":Jf,"./locales/es/detail.json":Qf,"./locales/es/gospel.json":eh,"./locales/es/grid.json":th,"./locales/es/legend.json":oh,"./locales/es/messages.json":nh,"./locales/es/options.json":ah,"./locales/es/popup.json":sh,"./locales/es/prayerLaps.json":rh,"./locales/es/regions.json":ih,"./locales/es/search.json":lh,"./locales/es/studio.json":ch,"./locales/es/tabs.json":uh,"./locales/es/vision.json":dh,"./locales/fr/allPeopleGroups.json":ph,"./locales/fr/aria.json":gh,"./locales/fr/buttons.json":fh,"./locales/fr/connectivity.json":hh,"./locales/fr/controls.json":mh,"./locales/fr/dashboard.json":bh,"./locales/fr/detail.json":$h,"./locales/fr/gospel.json":_h,"./locales/fr/grid.json":yh,"./locales/fr/legend.json":vh,"./locales/fr/messages.json":wh,"./locales/fr/options.json":xh,"./locales/fr/popup.json":kh,"./locales/fr/prayerLaps.json":Lh,"./locales/fr/regions.json":Ah,"./locales/fr/search.json":Sh,"./locales/fr/studio.json":Ph,"./locales/fr/tabs.json":Eh,"./locales/fr/vision.json":Ch,"./locales/hi/allPeopleGroups.json":Th,"./locales/hi/aria.json":Rh,"./locales/hi/buttons.json":Nh,"./locales/hi/connectivity.json":Oh,"./locales/hi/controls.json":Fh,"./locales/hi/dashboard.json":Mh,"./locales/hi/detail.json":Ih,"./locales/hi/gospel.json":Dh,"./locales/hi/grid.json":jh,"./locales/hi/legend.json":zh,"./locales/hi/messages.json":Gh,"./locales/hi/options.json":Uh,"./locales/hi/popup.json":Bh,"./locales/hi/prayerLaps.json":Vh,"./locales/hi/regions.json":qh,"./locales/hi/search.json":Wh,"./locales/hi/studio.json":Hh,"./locales/hi/tabs.json":Kh,"./locales/hi/vision.json":Xh,"./locales/it/allPeopleGroups.json":Yh,"./locales/it/aria.json":Zh,"./locales/it/buttons.json":Jh,"./locales/it/connectivity.json":Qh,"./locales/it/controls.json":em,"./locales/it/dashboard.json":tm,"./locales/it/detail.json":om,"./locales/it/gospel.json":nm,"./locales/it/grid.json":am,"./locales/it/legend.json":sm,"./locales/it/messages.json":rm,"./locales/it/options.json":im,"./locales/it/popup.json":lm,"./locales/it/prayerLaps.json":cm,"./locales/it/regions.json":um,"./locales/it/search.json":dm,"./locales/it/studio.json":pm,"./locales/it/tabs.json":gm,"./locales/it/vision.json":fm,"./locales/pt/allPeopleGroups.json":hm,"./locales/pt/aria.json":mm,"./locales/pt/buttons.json":bm,"./locales/pt/connectivity.json":$m,"./locales/pt/controls.json":_m,"./locales/pt/dashboard.json":ym,"./locales/pt/detail.json":vm,"./locales/pt/gospel.json":wm,"./locales/pt/grid.json":xm,"./locales/pt/legend.json":km,"./locales/pt/messages.json":Lm,"./locales/pt/options.json":Am,"./locales/pt/popup.json":Sm,"./locales/pt/prayerLaps.json":Pm,"./locales/pt/regions.json":Em,"./locales/pt/search.json":Cm,"./locales/pt/studio.json":Tm,"./locales/pt/tabs.json":Rm,"./locales/pt/vision.json":Nm,"./locales/ro/allPeopleGroups.json":Om,"./locales/ro/aria.json":Fm,"./locales/ro/buttons.json":Mm,"./locales/ro/connectivity.json":Im,"./locales/ro/controls.json":Dm,"./locales/ro/dashboard.json":jm,"./locales/ro/detail.json":zm,"./locales/ro/gospel.json":Gm,"./locales/ro/grid.json":Um,"./locales/ro/legend.json":Bm,"./locales/ro/messages.json":Vm,"./locales/ro/options.json":qm,"./locales/ro/popup.json":Wm,"./locales/ro/prayerLaps.json":Hm,"./locales/ro/regions.json":Km,"./locales/ro/search.json":Xm,"./locales/ro/studio.json":Ym,"./locales/ro/tabs.json":Zm,"./locales/ro/vision.json":Jm,"./locales/ru/allPeopleGroups.json":Qm,"./locales/ru/aria.json":eb,"./locales/ru/buttons.json":tb,"./locales/ru/connectivity.json":ob,"./locales/ru/controls.json":nb,"./locales/ru/dashboard.json":ab,"./locales/ru/detail.json":sb,"./locales/ru/gospel.json":rb,"./locales/ru/grid.json":ib,"./locales/ru/legend.json":lb,"./locales/ru/messages.json":cb,"./locales/ru/options.json":ub,"./locales/ru/popup.json":db,"./locales/ru/prayerLaps.json":pb,"./locales/ru/regions.json":gb,"./locales/ru/search.json":fb,"./locales/ru/studio.json":hb,"./locales/ru/tabs.json":mb,"./locales/ru/vision.json":bb,"./locales/zh/allPeopleGroups.json":$b,"./locales/zh/aria.json":_b,"./locales/zh/buttons.json":yb,"./locales/zh/connectivity.json":vb,"./locales/zh/controls.json":wb,"./locales/zh/dashboard.json":xb,"./locales/zh/detail.json":kb,"./locales/zh/gospel.json":Lb,"./locales/zh/grid.json":Ab,"./locales/zh/legend.json":Sb,"./locales/zh/messages.json":Pb,"./locales/zh/options.json":Eb,"./locales/zh/popup.json":Cb,"./locales/zh/prayerLaps.json":Tb,"./locales/zh/regions.json":Rb,"./locales/zh/search.json":Nb,"./locales/zh/studio.json":Ob,"./locales/zh/tabs.json":Fb,"./locales/zh/vision.json":Mb}),bn={};for(const[e,t]of Object.entries(U_)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;bn[n]??(bn[n]={}),bn[n][a]=t}const ru=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],B_=new Set(["ar"]);function iu(){var n;const e=(()=>{try{const a=new URLSearchParams(window.location.search);return(a.get("lang")||a.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}})();if(ru.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return ru.includes(o)?o:"en"}function V_(){const e=iu();try{B_.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}return T_({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:bn,missingWarn:!1,fallbackWarn:!1})}function Se(e,t){const o=a=>{let s=bn[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||iu();return o(n)??o("en")}const lu="adoptionStatus",vo={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},q_=vo,br={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},W_=br;function cu(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)?vo.hasAdoption:vo.notAdopted}function $r({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],vo.hasAdoption,["==",t,1],vo.hasAdoption,vo.notAdopted]}const uu=$r,H_=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:q_,ADOPTION_LABELS:W_,LABELS:br,PALETTE:vo,PROPERTY_KEY:lu,applyColor:$r,buildColorExpression:uu,default:{name:"Adoption Progress",propertyKey:lu,palette:vo,colors:vo,labels:br,getColor:cu,applyColor:$r,buildColorExpression:uu},getColor:cu},Symbol.toStringTag,{value:"Module"})),du="engagementStatus",wo={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},K_=wo,_r={notEngaged:"Unengaged",hasEngagement:"Engaged"},X_=_r;function pu(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)?wo.hasEngagement:wo.notEngaged}function yr({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],wo.hasEngagement,["==",t,1],wo.hasEngagement,wo.notEngaged]}const gu=yr,Y_=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:K_,ENGAGEMENT_LABELS:X_,LABELS:_r,PALETTE:wo,PROPERTY_KEY:du,applyColor:yr,buildColorExpression:gu,default:{name:"Engagement Progress",propertyKey:du,palette:wo,colors:wo,labels:_r,getColor:pu,applyColor:yr,buildColorExpression:gu},getColor:pu},Symbol.toStringTag,{value:"Module"})),vr="languageFamily",Z_="#000000",xo={"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"},J_=xo;function wr(e){return xo[e]||Z_}const Q_=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(xo))t[e(o)]=o;return t})(),ey={"tai-kadai":"Kra-Dai",none:"Unknown"};function $n(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return ey[o]||Q_[o]||t}function fu(e){var t;return wr(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function xr(){const e=["match",["get",vr]];return Object.entries(xo).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const hu=xr,ty=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:J_,PALETTE:xo,PROPERTY_KEY:vr,applyColor:xr,buildColorExpression:hu,canonicalFamilyName:$n,default:{name:"Language Family",propertyKey:vr,palette:xo,colors:xo,getColor:fu,applyColor:xr,buildColorExpression:hu,getLanguageFamilyColor:wr,canonicalFamilyName:$n},defaultFamilyColor:"#95a5a6",getColor:fu,getLanguageFamilyColor:wr,languageFamilyColors:xo},Symbol.toStringTag,{value:"Module"})),mu="peoplePraying",es=144,Do={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},oy=Do,oa={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},ny=oa;function _n(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>=es?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function kr(e){return Do[_n(e)]}function bu(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 $u(e){return _n(e)==="fullPrayer"}function _u(e){return kr(e)}function ts({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,es],Do.fullPrayer,[">",t,0],Do.hasPrayer,Do.noPrayer]}const yu=ts,ay=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:es,LABELS:oa,PALETTE:Do,PRAYER_COLORS:oy,PRAYER_LABELS:ny,PROPERTY_KEY:mu,applyColor:ts,buildColorExpression:yu,checkHasFullPrayer:$u,checkHasPrayer:bu,default:{name:"Prayer Progress",propertyKey:mu,palette:Do,colors:Do,labels:oa,threshold:es,getColor:_u,applyColor:ts,buildColorExpression:yu,getPrayerLevel:_n,getPrayerColor:kr,checkHasPrayer:bu,checkHasFullPrayer:$u},getColor:_u,getPrayerColor:kr,getPrayerLevel:_n},Symbol.toStringTag,{value:"Module"})),vu="religion",Lr="#94a3b8",ko={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},Ct={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function Ar(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return ko[t]?t:"U"}function wu(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 Ct[Ar(t)]||Lr}function Sr(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",Ct.C,"M",Ct.M,"H",Ct.H,"B",Ct.B,"E",Ct.E,"J",Ct.J,"S",Ct.S,"N",Ct.N,"O",Ct.O,Lr]}const xu=Sr,sy=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Ct,PROPERTY_KEY:vu,RELIGION_FAMILIES:ko,applyColor:Sr,buildColorExpression:xu,default:{name:"Religion",propertyKey:vu,palette:Ct,families:ko,getColor:wu,applyColor:Sr,buildColorExpression:xu,fallback:Lr},getColor:wu,getReligionFamily:Ar},Symbol.toStringTag,{value:"Module"})),ku="region",Pr="#6d766e",Lu={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"},na={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},Er=Object.keys(na);function Au(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 na[t]||Pr}function Cr(){const e=["match",["coalesce",["get","region"],""]];for(const t of Er)e.push(t,na[t]);return e.push(Pr),e}const Su=Cr,ry=Object.assign({"./adoption.js":H_,"./engagement.js":Y_,"./language-family.js":ty,"./prayer-progress.js":ay,"./religion.js":sy,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:na,PROPERTY_KEY:ku,REGION_ORDER:Er,WAGF_REGIONS:Lu,applyColor:Cr,buildColorExpression:Su,default:{name:"WAGF Region",propertyKey:ku,palette:na,regions:Lu,order:Er,getColor:Au,applyColor:Cr,buildColorExpression:Su,fallback:Pr},getColor:Au},Symbol.toStringTag,{value:"Module"}))}),iy=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),ly=e=>e.replace(/-/g,"_").toUpperCase(),Lo={...{STATUS:"status",CUSTOM:"custom"}},Tr={};function Pu(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=iy(o);Lo[ly(o)]=a,Tr[a]=n}}Pu(ry);function cy(e){e&&Pu(e)}function os(e){return Tr[e]||Tr[Lo.LANGUAGE_FAMILY]}const Eu={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 uy(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function Cu(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(uy(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(Eu.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(Eu.mapbox,null,!0);o=!0}catch{}return o}const Tu="affinityBlock",yn="#95a5a6",vn={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"},Rr={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"},wn=Rr;Object.entries(vn).reduce((e,[t,o])=>(e[o]=t,e),{});const dy=Object.entries(vn).reduce((e,[t,o])=>(e[o]=wn[t],e),{}),py=vn;function Ru(e){return vn[e]||"Unknown"}function Nu(e){return wn[e]||yn}function gy(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?wn[e]||yn:dy[e]||yn:yn}function fy(){return Object.entries(vn).map(([e,t])=>({code:e,name:t,color:wn[e]}))}function hy(e){return{code:e,name:vn[e]||"Unknown",color:wn[e]||yn}}function my(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Nu(t)}function by(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Ru(t)}function Ou(){const e=["match",["get",Tu]];return Object.entries(wn).forEach(([t,o])=>{e.push(t,o)}),e.push(yn),e}const $y={name:"Affinity Block",propertyKey:Tu,palette:Rr,colors:Rr,names:py,getColor:my,applyColor:Ou,buildColorExpression:Ou,getName:by,getAffinityBlockName:Ru,getAffinityBlockColor:gy,getAffinityBlockColorByCode:Nu,getAffinityBlocksArray:fy,getAffinityBlockData:hy};function _y(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 wy={name:"DOXA Region",propertyKey:Fu,palette:Iu,colors:Iu,slugColors:Or,aliases:ju,fallback:Nr,getColor:vy,applyColor:zu,buildColorExpression:zu,getRegionColor:yy,getRegionColorBySlug:Du},xy=Qo&&Qo.tagName.toUpperCase()==="SCRIPT"&&Qo.src||new URL("dashboard-plus-grid.js",document.baseURI).href,jo=e=>String(e||"").trim().replace(/\/+$/,"");function Fr(){try{const t=String(xy||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function Gu(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return jo(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return jo(o)}return jo(Fr()||"")}function Uu(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const n=jo(t);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const o=jo((e==null?void 0:e.treeBase)||"")||jo(Fr()||"");if(o)try{const n=typeof document<"u"?document.baseURI:void 0;return jo(new URL(o+"/assets",n).href)}catch{return jo(o+"/assets")}return"./assets"}function ky({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=Gu(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 Mr="__doxaMapToken",Ir="doxa:map-token",Bu="__doxaMapTokenBridge",xn=()=>{if(typeof window>"u")return"";const e=window[Mr];return typeof e=="string"?e:""};function Vu(e){if(typeof window>"u")return"";const t=typeof e=="string"?e.trim():"";if(!t||t===xn())return xn();window[Mr]=t;try{window.dispatchEvent(new CustomEvent(Ir,{detail:t}))}catch{}return t}function Ly(){if(typeof window>"u"||window[Bu])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!xn()&&(window[Mr]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return xn()},set(t){Vu(t)}}),window[Bu]=!0}catch{}}function Ay(){Ly();const e=de(xn());if(typeof window<"u"){const t=()=>{e.value=xn()};window.addEventListener(Ir,t);try{It(()=>window.removeEventListener(Ir,t))}catch{}}return e}function Ot(e,t){const o=t||Sy(e);yt(()=>{var i;const n=Ro();if(!n)return;const a=(i=n.proxy)==null?void 0:i.$el;if(!a)return;const s=a.getRootNode();if(!(s instanceof ShadowRoot)||s.querySelector(`style[data-shadow-styles="${o}"]`))return;const r=document.createElement("style");r.setAttribute("data-shadow-styles",o),r.textContent=e,s.appendChild(r)})}function Sy(e){let t=0;for(let o=0;o{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},aa={};function Ey(e){if(!e||/^(https?:)?\/\//.test(e)||e.startsWith("/"))return e;const t=e.replace(/^(\.\.\/)+/,"").replace(/^\.\//,""),o=/^(.*\/doxa-maps\/)/.exec(window.location.pathname);if(o)return o[1]+t;const n=Fr();return n?String(n).replace(/\/+$/,"")+"/"+t:e}function Cy(e){const t=Ey(e);return t?(aa[t]||(aa[t]=new Promise((o,n)=>{const a=document.createElement("script");a.src=t,(/^\/plugin-designs\//.test(t)||/\/index\.js(\?|$)/.test(t))&&(a.type="module"),a.onload=()=>o(),a.onerror=()=>{delete aa[t],n(new Error("failed to load "+t))},document.head.appendChild(a)})),aa[t]):Promise.resolve()}function Ty(e,t=5e3){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():customElements.whenDefined?Promise.race([customElements.whenDefined(e),new Promise((o,n)=>setTimeout(()=>n(new Error("timeout waiting for <"+e+">")),t))]):Promise.resolve()}const Ry=` + */const y_="9.14.5";function v_(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&($o().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&($o().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&($o().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&($o().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&($o().__INTLIFY_PROD_DEVTOOLS__=!1)}const w_=Q$.__EXTEND_POINT__,yo=Ha(w_);yo(),yo(),yo(),yo(),yo(),yo(),yo(),yo(),yo();const Gc=Ht.__EXTEND_POINT__,Et=Ha(Gc),dt={UNEXPECTED_RETURN_TYPE:Gc,INVALID_ARGUMENT:Et(),MUST_BE_CALL_SETUP_TOP:Et(),NOT_INSTALLED:Et(),NOT_AVAILABLE_IN_LEGACY_MODE:Et(),REQUIRED_VALUE:Et(),INVALID_VALUE:Et(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Et(),NOT_INSTALLED_WITH_PROVIDE:Et(),UNEXPECTED_ERROR:Et(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Et(),BRIDGE_SUPPORT_VUE_2_ONLY:Et(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Et(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Et(),__EXTEND_POINT__:Et()};function gt(e,...t){return gn(e,null,void 0)}const ur=No("__translateVNode"),dr=No("__datetimeParts"),pr=No("__numberParts"),Uc=No("__setPluralRules"),Bc=No("__injectWithOption"),gr=No("__dispose");function ta(e){if(!He(e)||ro(e))return e;for(const t in e)if(qt(e,t))if(!t.includes("."))He(e[t])&&ta(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]||Ze(),Xa(c,r[l])):Xa(c,r)}else $e(i)&&Xa(JSON.parse(i),r)}),a==null&&s)for(const i in r)qt(r,i)&&ta(r[i]);return r}function Vc(e){return e.type}function qc(e,t,o){let n=He(t.messages)?t.messages:Ze();"__i18nGlobal"in o&&(n=Qa(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(s=>{e.mergeLocaleMessage(s,n[s])});{if(He(t.datetimeFormats)){const s=Object.keys(t.datetimeFormats);s.length&&s.forEach(r=>{e.mergeDateTimeFormat(r,t.datetimeFormats[r])})}if(He(t.numberFormats)){const s=Object.keys(t.numberFormats);s.length&&s.forEach(r=>{e.mergeNumberFormat(r,t.numberFormats[r])})}}}function Wc(e){return Ue(Bn,null,e,0)}const Hc="__INTLIFY_META__",Kc=()=>[],x_=()=>!1;let Xc=0;function Yc(e){return(t,o,n,a)=>e(o,n,Ro()||void 0,a)}const k_=()=>{const e=Ro();let t=null;return e&&(t=Vc(e)[Hc])?{[Hc]:t}:null};function fr(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,s=e.flatJson,r=qa?de:On,i=!!e.translateExistCompatible;let l=Be(e.inheritLocale)?e.inheritLocale:!0;const c=r(o&&l?o.locale.value:$e(e.locale)?e.locale:mn),u=r(o&&l?o.fallbackLocale.value:$e(e.fallbackLocale)||nt(e.fallbackLocale)||Me(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),p=r(Qa(c.value,e)),g=r(Me(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),y=r(Me(e.numberFormats)?e.numberFormats:{[c.value]:{}});let A=o?o.missingWarn:Be(e.missingWarn)||Oo(e.missingWarn)?e.missingWarn:!0,k=o?o.fallbackWarn:Be(e.fallbackWarn)||Oo(e.fallbackWarn)?e.fallbackWarn:!0,S=o?o.fallbackRoot:Be(e.fallbackRoot)?e.fallbackRoot:!0,C=!!e.fallbackFormat,f=tt(e.missing)?e.missing:null,b=tt(e.missing)?Yc(e.missing):null,d=tt(e.postTranslation)?e.postTranslation:null,$=o?o.warnHtmlMessage:Be(e.warnHtmlMessage)?e.warnHtmlMessage:!0,L=!!e.escapeParameter;const w=o?o.modifiers:Me(e.modifiers)?e.modifiers:{};let F=e.pluralRules||o&&o.pluralRules,D;D=(()=>{a&&Ac(null);const T={version:y_,locale:c.value,fallbackLocale:u.value,messages:p.value,modifiers:w,pluralRules:F,missing:b===null?void 0:b,missingWarn:A,fallbackWarn:k,fallbackFormat:C,unresolving:!0,postTranslation:d===null?void 0:d,warnHtmlMessage:$,escapeParameter:L,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};T.datetimeFormats=g.value,T.numberFormats=y.value,T.__datetimeFormatters=Me(D)?D.__datetimeFormatters:void 0,T.__numberFormatters=Me(D)?D.__numberFormatters:void 0;const G=u_(T);return a&&Ac(G),G})(),ea(D,c.value,u.value);function B(){return[c.value,u.value,p.value,g.value,y.value]}const Y=ie({get:()=>c.value,set:T=>{c.value=T,D.locale=c.value}}),pe=ie({get:()=>u.value,set:T=>{u.value=T,D.fallbackLocale=u.value,ea(D,c.value,T)}}),M=ie(()=>p.value),ee=ie(()=>g.value),K=ie(()=>y.value);function z(){return tt(d)?d:null}function re(T){d=T,D.postTranslation=T}function j(){return f}function O(T){T!==null&&(b=Yc(T)),f=T,D.missing=b}const V=(T,G,le,we,Ne,Ve)=>{B();let Ke;try{__INTLIFY_PROD_DEVTOOLS__,a||(D.fallbackContext=o?c_():void 0),Ke=T(D)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(D.fallbackContext=void 0)}if(le!=="translate exists"&<(Ke)&&Ke===Ja||le==="translate exists"&&!Ke){const[ft,bt]=G();return o&&S?we(o):Ne(ft)}else{if(Ve(Ke))return Ke;throw gt(dt.UNEXPECTED_RETURN_TYPE)}};function I(...T){return V(G=>Reflect.apply(Rc,null,[G,...T]),()=>ir(...T),"translate",G=>Reflect.apply(G.t,G,[...T]),G=>G,G=>$e(G))}function ae(...T){const[G,le,we]=T;if(we&&!He(we))throw gt(dt.INVALID_ARGUMENT);return I(G,le,mt({resolvedMessage:!0},we||{}))}function be(...T){return V(G=>Reflect.apply(Fc,null,[G,...T]),()=>lr(...T),"datetime format",G=>Reflect.apply(G.d,G,[...T]),()=>$c,G=>$e(G))}function ke(...T){return V(G=>Reflect.apply(Dc,null,[G,...T]),()=>cr(...T),"number format",G=>Reflect.apply(G.n,G,[...T]),()=>$c,G=>$e(G))}function xe(T){return T.map(G=>$e(G)||lt(G)||Be(G)?Wc(String(G)):G)}const ye={normalize:xe,interpolate:T=>T,type:"vnode"};function se(...T){return V(G=>{let le;const we=G;try{we.processor=ye,le=Reflect.apply(Rc,null,[we,...T])}finally{we.processor=null}return le},()=>ir(...T),"translate",G=>G[ur](...T),G=>[Wc(G)],G=>nt(G))}function he(...T){return V(G=>Reflect.apply(Dc,null,[G,...T]),()=>cr(...T),"number format",G=>G[pr](...T),Kc,G=>$e(G)||nt(G))}function ve(...T){return V(G=>Reflect.apply(Fc,null,[G,...T]),()=>lr(...T),"datetime format",G=>G[dr](...T),Kc,G=>$e(G)||nt(G))}function _(T){F=T,D.pluralRules=F}function P(T,G){return V(()=>{if(!T)return!1;const le=$e(G)?G:c.value,we=Q(le),Ne=D.messageResolver(we,T);return i?Ne!=null:ro(Ne)||Dt(Ne)||$e(Ne)},()=>[T],"translate exists",le=>Reflect.apply(le.te,le,[T,G]),x_,le=>Be(le))}function x(T){let G=null;const le=mc(D,u.value,c.value);for(let we=0;we{l&&(c.value=T,D.locale=T,ea(D,c.value,u.value))}),it(o.fallbackLocale,T=>{l&&(u.value=T,D.fallbackLocale=T,ea(D,c.value,u.value))}));const W={id:Xc,locale:Y,fallbackLocale:pe,get inheritLocale(){return l},set inheritLocale(T){l=T,T&&o&&(c.value=o.locale.value,u.value=o.fallbackLocale.value,ea(D,c.value,u.value))},get availableLocales(){return Object.keys(p.value).sort()},messages:M,get modifiers(){return w},get pluralRules(){return F||{}},get isGlobal(){return a},get missingWarn(){return A},set missingWarn(T){A=T,D.missingWarn=A},get fallbackWarn(){return k},set fallbackWarn(T){k=T,D.fallbackWarn=k},get fallbackRoot(){return S},set fallbackRoot(T){S=T},get fallbackFormat(){return C},set fallbackFormat(T){C=T,D.fallbackFormat=C},get warnHtmlMessage(){return $},set warnHtmlMessage(T){$=T,D.warnHtmlMessage=T},get escapeParameter(){return L},set escapeParameter(T){L=T,D.escapeParameter=T},t:I,getLocaleMessage:Q,setLocaleMessage:te,mergeLocaleMessage:ce,getPostTranslationHandler:z,setPostTranslationHandler:re,getMissingHandler:j,setMissingHandler:O,[Uc]:_};return W.datetimeFormats=ee,W.numberFormats=K,W.rt=ae,W.te=P,W.tm=U,W.d=be,W.n=ke,W.getDateTimeFormat=oe,W.setDateTimeFormat=h,W.mergeDateTimeFormat=m,W.getNumberFormat=v,W.setNumberFormat=E,W.mergeNumberFormat=q,W[Bc]=n,W[ur]=se,W[dr]=ve,W[pr]=he,W}function L_(e){const t=$e(e.locale)?e.locale:mn,o=$e(e.fallbackLocale)||nt(e.fallbackLocale)||Me(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=tt(e.missing)?e.missing:void 0,a=Be(e.silentTranslationWarn)||Oo(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,s=Be(e.silentFallbackWarn)||Oo(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,r=Be(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=Me(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=tt(e.postTranslation)?e.postTranslation:void 0,p=$e(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,g=!!e.escapeParameterHtml,y=Be(e.sync)?e.sync:!0;let A=e.messages;if(Me(e.sharedMessages)){const L=e.sharedMessages;A=Object.keys(L).reduce((F,D)=>{const ne=F[D]||(F[D]={});return mt(ne,L[D]),F},A||{})}const{__i18n:k,__root:S,__injectWithOption:C}=e,f=e.datetimeFormats,b=e.numberFormats,d=e.flatJson,$=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:A,flatJson:d,datetimeFormats:f,numberFormats:b,missing:n,missingWarn:a,fallbackWarn:s,fallbackRoot:r,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:p,escapeParameter:g,messageResolver:e.messageResolver,inheritLocale:y,translateExistCompatible:$,__i18n:k,__root:S,__injectWithOption:C}}function hr(e={},t){{const o=fr(L_(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 Be(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(s){o.missingWarn=Be(s)?!s:s},get silentFallbackWarn(){return Be(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(s){o.fallbackWarn=Be(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,p=null;if(!$e(r))throw gt(dt.INVALID_ARGUMENT);const g=r;return $e(i)?c.locale=i:nt(i)?u=i:Me(i)&&(p=i),nt(l)?u=l:Me(l)&&(p=l),Reflect.apply(o.t,o,[g,u||p||{},c])},rt(...s){return Reflect.apply(o.rt,o,[...s])},tc(...s){const[r,i,l]=s,c={plural:1};let u=null,p=null;if(!$e(r))throw gt(dt.INVALID_ARGUMENT);const g=r;return $e(i)?c.locale=i:lt(i)?c.plural=i:nt(i)?u=i:Me(i)&&(p=i),$e(l)?c.locale=l:nt(l)?u=l:Me(l)&&(p=l),Reflect.apply(o.t,o,[g,u||p||{},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 mr={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function A_({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===Ce?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},Ze())}function Zc(e){return Ce}const Jc=jn({name:"i18n-t",props:mt({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>lt(e)||!isNaN(e)}},mr),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||Zo({useScope:e.scope,__useComponent:!0});return()=>{const s=Object.keys(o).filter(p=>p!=="_"),r=Ze();e.locale&&(r.locale=e.locale),e.plural!==void 0&&(r.plural=$e(e.plural)?+e.plural:e.plural);const i=A_(t,s),l=a[ur](e.keypath,i,r),c=mt(Ze(),n),u=$e(e.tag)||He(e.tag)?e.tag:Zc();return Sl(u,c,l)}}});function S_(e){return nt(e)&&!$e(e[0])}function Qc(e,t,o,n){const{slots:a,attrs:s}=t;return()=>{const r={part:!0};let i=Ze();e.locale&&(r.locale=e.locale),$e(e.format)?r.key=e.format:He(e.format)&&($e(e.format.key)&&(r.key=e.format.key),i=Object.keys(e.format).reduce((g,y)=>o.includes(y)?mt(Ze(),g,{[y]:e.format[y]}):g,Ze()));const l=n(e.value,r,i);let c=[r.key];nt(l)?c=l.map((g,y)=>{const A=a[g.type],k=A?A({[g.type]:g.value,index:y,parts:l}):[g.value];return S_(k)&&(k[0].key=`${g.type}-${y}`),k}):$e(l)&&(c=[l]);const u=mt(Ze(),s),p=$e(e.tag)||He(e.tag)?e.tag:Zc();return Sl(p,u,c)}}const eu=jn({name:"i18n-n",props:mt({value:{type:Number,required:!0},format:{type:[String,Object]}},mr),setup(e,t){const o=e.i18n||Zo({useScope:e.scope,__useComponent:!0});return Qc(e,t,jc,(...n)=>o[pr](...n))}}),tu=jn({name:"i18n-d",props:mt({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},mr),setup(e,t){const o=e.i18n||Zo({useScope:e.scope,__useComponent:!0});return Qc(e,t,Mc,(...n)=>o[dr](...n))}});function P_(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 E_(e){const t=r=>{const{instance:i,modifiers:l,value:c}=r;if(!i||!i.$)throw gt(dt.UNEXPECTED_ERROR);const u=P_(e,i.$),p=ou(c);return[Reflect.apply(u.t,u,[...nu(p)]),u]};return{created:(r,i)=>{const[l,c]=t(i);qa&&e.global===c&&(r.__i18nWatcher=it(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),r.__composer=c,r.textContent=l},unmounted:r=>{qa&&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=ou(i);r.textContent=Reflect.apply(l.t,l,[...nu(c)])}},getSSRProps:r=>{const[i]=t(r);return{textContent:i}}}}function ou(e){if($e(e))return{path:e};if(Me(e)){if(!("path"in e))throw gt(dt.REQUIRED_VALUE,"path");return e}else throw gt(dt.INVALID_VALUE)}function nu(e){const{path:t,locale:o,args:n,choice:a,plural:s}=e,r={},i=n||{};return $e(o)&&(r.locale=o),lt(a)&&(r.plural=a),lt(s)&&(r.plural=s),[t,i,r]}function C_(e,t,...o){const n=Me(o[0])?o[0]:{},a=!!n.useI18nComponentName;(Be(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":Jc.name,"I18nT"].forEach(r=>e.component(r,Jc)),[eu.name,"I18nN"].forEach(r=>e.component(r,eu)),[tu.name,"I18nD"].forEach(r=>e.component(r,tu))),e.directive("t",E_(t))}function T_(e,t,o){return{beforeCreate(){const n=Ro();if(!n)throw gt(dt.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=au(e,s);else{s.__injectWithOption=!0,s.__extender=o.__vueI18nExtend,this.$i18n=hr(s);const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=au(e,a);else{this.$i18n=hr({__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&&qc(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=Ro();if(!n)throw gt(dt.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 au(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[Uc](t.pluralizationRules||e.pluralizationRules);const o=Qa(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 R_=No("global-vue-i18n");function N_(e={},t){const o=__VUE_I18N_LEGACY_API__&&Be(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=Be(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,s=new Map,[r,i]=O_(e,o),l=No("");function c(g){return s.get(g)||null}function u(g,y){s.set(g,y)}function p(g){s.delete(g)}{const g={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(y,...A){if(y.__VUE_I18N_SYMBOL__=l,y.provide(y.__VUE_I18N_SYMBOL__,g),Me(A[0])){const C=A[0];g.__composerExtend=C.__composerExtend,g.__vueI18nExtend=C.__vueI18nExtend}let k=null;!o&&n&&(k=B_(y,g.global)),__VUE_I18N_FULL_INSTALL__&&C_(y,g,...A),__VUE_I18N_LEGACY_API__&&o&&y.mixin(T_(i,i.__composer,g));const S=y.unmount;y.unmount=()=>{k&&k(),g.dispose(),S()}},get global(){return i},dispose(){r.stop()},__instances:s,__getInstance:c,__setInstance:u,__deleteInstance:p};return g}}function Zo(e={}){const t=Ro();if(t==null)throw gt(dt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw gt(dt.NOT_INSTALLED);const o=F_(t),n=I_(o),a=Vc(t),s=M_(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw gt(dt.NOT_AVAILABLE_IN_LEGACY_MODE);return G_(t,s,n,e)}if(s==="global")return qc(n,e,a),n;if(s==="parent"){let l=D_(o,t,e.__useComponent);return l==null&&(l=n),l}const r=o;let i=r.__getInstance(t);if(i==null){const l=mt({},e);"__i18n"in a&&(l.__i18n=a.__i18n),n&&(l.__root=n),i=fr(l),r.__composerExtend&&(i[gr]=r.__composerExtend(i)),z_(r,t,i),r.__setInstance(t,i)}return i}function O_(e,t,o){const n=ci();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>hr(e)):n.run(()=>fr(e));if(a==null)throw gt(dt.UNEXPECTED_ERROR);return[n,a]}}function F_(e){{const t=ze(e.isCE?R_:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw gt(e.isCE?dt.NOT_INSTALLED_WITH_PROVIDE:dt.UNEXPECTED_ERROR);return t}}function M_(e,t){return Wa(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function I_(e){return e.mode==="composition"?e.global:e.global.__composer}function D_(e,t,o=!1){let n=null;const a=t.root;let s=j_(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[Bc]&&(n=null))}if(n!=null||a===s)break;s=s.parent}return n}function j_(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function z_(e,t,o){yt(()=>{},t),Fs(()=>{const n=o;e.__deleteInstance(t);const a=n[gr];a&&(a(),delete n[gr])},t)}function G_(e,t,o,n={}){const a=t==="local",s=On(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw gt(dt.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const r=Be(n.inheritLocale)?n.inheritLocale:!$e(n.locale),i=de(!a||r?o.locale.value:$e(n.locale)?n.locale:mn),l=de(!a||r?o.fallbackLocale.value:$e(n.fallbackLocale)||nt(n.fallbackLocale)||Me(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),c=de(Qa(i.value,n)),u=de(Me(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),p=de(Me(n.numberFormats)?n.numberFormats:{[i.value]:{}}),g=a?o.missingWarn:Be(n.missingWarn)||Oo(n.missingWarn)?n.missingWarn:!0,y=a?o.fallbackWarn:Be(n.fallbackWarn)||Oo(n.fallbackWarn)?n.fallbackWarn:!0,A=a?o.fallbackRoot:Be(n.fallbackRoot)?n.fallbackRoot:!0,k=!!n.fallbackFormat,S=tt(n.missing)?n.missing:null,C=tt(n.postTranslation)?n.postTranslation:null,f=a?o.warnHtmlMessage:Be(n.warnHtmlMessage)?n.warnHtmlMessage:!0,b=!!n.escapeParameter,d=a?o.modifiers:Me(n.modifiers)?n.modifiers:{},$=n.pluralRules||a&&o.pluralRules;function L(){return[i.value,l.value,c.value,u.value,p.value]}const w=ie({get:()=>s.value?s.value.locale.value:i.value,set:x=>{s.value&&(s.value.locale.value=x),i.value=x}}),F=ie({get:()=>s.value?s.value.fallbackLocale.value:l.value,set:x=>{s.value&&(s.value.fallbackLocale.value=x),l.value=x}}),D=ie(()=>s.value?s.value.messages.value:c.value),ne=ie(()=>u.value),B=ie(()=>p.value);function Y(){return s.value?s.value.getPostTranslationHandler():C}function pe(x){s.value&&s.value.setPostTranslationHandler(x)}function M(){return s.value?s.value.getMissingHandler():S}function ee(x){s.value&&s.value.setMissingHandler(x)}function K(x){return L(),x()}function z(...x){return s.value?K(()=>Reflect.apply(s.value.t,null,[...x])):K(()=>"")}function re(...x){return s.value?Reflect.apply(s.value.rt,null,[...x]):""}function j(...x){return s.value?K(()=>Reflect.apply(s.value.d,null,[...x])):K(()=>"")}function O(...x){return s.value?K(()=>Reflect.apply(s.value.n,null,[...x])):K(()=>"")}function V(x){return s.value?s.value.tm(x):{}}function I(x,U){return s.value?s.value.te(x,U):!1}function ae(x){return s.value?s.value.getLocaleMessage(x):{}}function be(x,U){s.value&&(s.value.setLocaleMessage(x,U),c.value[x]=U)}function ke(x,U){s.value&&s.value.mergeLocaleMessage(x,U)}function xe(x){return s.value?s.value.getDateTimeFormat(x):{}}function Se(x,U){s.value&&(s.value.setDateTimeFormat(x,U),u.value[x]=U)}function ye(x,U){s.value&&s.value.mergeDateTimeFormat(x,U)}function se(x){return s.value?s.value.getNumberFormat(x):{}}function he(x,U){s.value&&(s.value.setNumberFormat(x,U),p.value[x]=U)}function ve(x,U){s.value&&s.value.mergeNumberFormat(x,U)}const _={get id(){return s.value?s.value.id:-1},locale:w,fallbackLocale:F,messages:D,datetimeFormats:ne,numberFormats:B,get inheritLocale(){return s.value?s.value.inheritLocale:r},set inheritLocale(x){s.value&&(s.value.inheritLocale=x)},get availableLocales(){return s.value?s.value.availableLocales:Object.keys(c.value)},get modifiers(){return s.value?s.value.modifiers:d},get pluralRules(){return s.value?s.value.pluralRules:$},get isGlobal(){return s.value?s.value.isGlobal:!1},get missingWarn(){return s.value?s.value.missingWarn:g},set missingWarn(x){s.value&&(s.value.missingWarn=x)},get fallbackWarn(){return s.value?s.value.fallbackWarn:y},set fallbackWarn(x){s.value&&(s.value.missingWarn=x)},get fallbackRoot(){return s.value?s.value.fallbackRoot:A},set fallbackRoot(x){s.value&&(s.value.fallbackRoot=x)},get fallbackFormat(){return s.value?s.value.fallbackFormat:k},set fallbackFormat(x){s.value&&(s.value.fallbackFormat=x)},get warnHtmlMessage(){return s.value?s.value.warnHtmlMessage:f},set warnHtmlMessage(x){s.value&&(s.value.warnHtmlMessage=x)},get escapeParameter(){return s.value?s.value.escapeParameter:b},set escapeParameter(x){s.value&&(s.value.escapeParameter=x)},t:z,getPostTranslationHandler:Y,setPostTranslationHandler:pe,getMissingHandler:M,setMissingHandler:ee,rt:re,d:j,n:O,tm:V,te:I,getLocaleMessage:ae,setLocaleMessage:be,mergeLocaleMessage:ke,getDateTimeFormat:xe,setDateTimeFormat:Se,mergeDateTimeFormat:ye,getNumberFormat:se,setNumberFormat:he,mergeNumberFormat:ve};function P(x){x.locale.value=i.value,x.fallbackLocale.value=l.value,Object.keys(c.value).forEach(U=>{x.mergeLocaleMessage(U,c.value[U])}),Object.keys(u.value).forEach(U=>{x.mergeDateTimeFormat(U,u.value[U])}),Object.keys(p.value).forEach(U=>{x.mergeNumberFormat(U,p.value[U])}),x.escapeParameter=b,x.fallbackFormat=k,x.fallbackRoot=A,x.fallbackWarn=y,x.missingWarn=g,x.warnHtmlMessage=f}return Ki(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw gt(dt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const x=s.value=e.proxy.$i18n.__composer;t==="global"?(i.value=x.locale.value,l.value=x.fallbackLocale.value,c.value=x.messages.value,u.value=x.datetimeFormats.value,p.value=x.numberFormats.value):a&&P(x)}),_}const U_=["locale","fallbackLocale","availableLocales"],su=["t","rt","d","n","tm","te"];function B_(e,t){const o=Object.create(null);return U_.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s)throw gt(dt.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,su.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s||!s.value)throw gt(dt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,s)}),()=>{delete e.config.globalProperties.$i18n,su.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(v_(),__INTLIFY_JIT_COMPILATION__?vc(h_):vc(f_),s_(j$),r_(mc),__INTLIFY_PROD_DEVTOOLS__){const e=$o();e.__INTLIFY__=!0,K$(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const V_=Object.assign({"./locales/ar/allPeopleGroups.json":qg,"./locales/ar/aria.json":Wg,"./locales/ar/buttons.json":Hg,"./locales/ar/connectivity.json":Kg,"./locales/ar/controls.json":Xg,"./locales/ar/dashboard.json":Yg,"./locales/ar/detail.json":Zg,"./locales/ar/gospel.json":Jg,"./locales/ar/grid.json":Qg,"./locales/ar/legend.json":ef,"./locales/ar/messages.json":tf,"./locales/ar/options.json":of,"./locales/ar/popup.json":nf,"./locales/ar/prayerLaps.json":af,"./locales/ar/regions.json":sf,"./locales/ar/search.json":rf,"./locales/ar/studio.json":lf,"./locales/ar/tabs.json":cf,"./locales/ar/vision.json":uf,"./locales/de/allPeopleGroups.json":df,"./locales/de/aria.json":pf,"./locales/de/buttons.json":gf,"./locales/de/connectivity.json":ff,"./locales/de/controls.json":hf,"./locales/de/dashboard.json":mf,"./locales/de/detail.json":bf,"./locales/de/gospel.json":$f,"./locales/de/grid.json":_f,"./locales/de/legend.json":yf,"./locales/de/messages.json":vf,"./locales/de/options.json":wf,"./locales/de/popup.json":xf,"./locales/de/prayerLaps.json":kf,"./locales/de/regions.json":Lf,"./locales/de/search.json":Af,"./locales/de/studio.json":Sf,"./locales/de/tabs.json":Pf,"./locales/de/vision.json":Ef,"./locales/en/allPeopleGroups.json":Cf,"./locales/en/aria.json":Tf,"./locales/en/buttons.json":Rf,"./locales/en/connectivity.json":Nf,"./locales/en/controls.json":Of,"./locales/en/dashboard.json":Ff,"./locales/en/detail.json":Mf,"./locales/en/gospel.json":If,"./locales/en/grid.json":Df,"./locales/en/legend.json":jf,"./locales/en/messages.json":zf,"./locales/en/options.json":Gf,"./locales/en/popup.json":Uf,"./locales/en/prayerLaps.json":Bf,"./locales/en/regions.json":Vf,"./locales/en/search.json":qf,"./locales/en/studio.json":Wf,"./locales/en/tabs.json":Hf,"./locales/en/vision.json":Kf,"./locales/es/allPeopleGroups.json":Xf,"./locales/es/aria.json":Yf,"./locales/es/buttons.json":Zf,"./locales/es/connectivity.json":Jf,"./locales/es/controls.json":Qf,"./locales/es/dashboard.json":eh,"./locales/es/detail.json":th,"./locales/es/gospel.json":oh,"./locales/es/grid.json":nh,"./locales/es/legend.json":ah,"./locales/es/messages.json":sh,"./locales/es/options.json":rh,"./locales/es/popup.json":ih,"./locales/es/prayerLaps.json":lh,"./locales/es/regions.json":ch,"./locales/es/search.json":uh,"./locales/es/studio.json":dh,"./locales/es/tabs.json":ph,"./locales/es/vision.json":gh,"./locales/fr/allPeopleGroups.json":fh,"./locales/fr/aria.json":hh,"./locales/fr/buttons.json":mh,"./locales/fr/connectivity.json":bh,"./locales/fr/controls.json":$h,"./locales/fr/dashboard.json":_h,"./locales/fr/detail.json":yh,"./locales/fr/gospel.json":vh,"./locales/fr/grid.json":wh,"./locales/fr/legend.json":xh,"./locales/fr/messages.json":kh,"./locales/fr/options.json":Lh,"./locales/fr/popup.json":Ah,"./locales/fr/prayerLaps.json":Sh,"./locales/fr/regions.json":Ph,"./locales/fr/search.json":Eh,"./locales/fr/studio.json":Ch,"./locales/fr/tabs.json":Th,"./locales/fr/vision.json":Rh,"./locales/hi/allPeopleGroups.json":Nh,"./locales/hi/aria.json":Oh,"./locales/hi/buttons.json":Fh,"./locales/hi/connectivity.json":Mh,"./locales/hi/controls.json":Ih,"./locales/hi/dashboard.json":Dh,"./locales/hi/detail.json":jh,"./locales/hi/gospel.json":zh,"./locales/hi/grid.json":Gh,"./locales/hi/legend.json":Uh,"./locales/hi/messages.json":Bh,"./locales/hi/options.json":Vh,"./locales/hi/popup.json":qh,"./locales/hi/prayerLaps.json":Wh,"./locales/hi/regions.json":Hh,"./locales/hi/search.json":Kh,"./locales/hi/studio.json":Xh,"./locales/hi/tabs.json":Yh,"./locales/hi/vision.json":Zh,"./locales/it/allPeopleGroups.json":Jh,"./locales/it/aria.json":Qh,"./locales/it/buttons.json":em,"./locales/it/connectivity.json":tm,"./locales/it/controls.json":om,"./locales/it/dashboard.json":nm,"./locales/it/detail.json":am,"./locales/it/gospel.json":sm,"./locales/it/grid.json":rm,"./locales/it/legend.json":im,"./locales/it/messages.json":lm,"./locales/it/options.json":cm,"./locales/it/popup.json":um,"./locales/it/prayerLaps.json":dm,"./locales/it/regions.json":pm,"./locales/it/search.json":gm,"./locales/it/studio.json":fm,"./locales/it/tabs.json":hm,"./locales/it/vision.json":mm,"./locales/pt/allPeopleGroups.json":bm,"./locales/pt/aria.json":$m,"./locales/pt/buttons.json":_m,"./locales/pt/connectivity.json":ym,"./locales/pt/controls.json":vm,"./locales/pt/dashboard.json":wm,"./locales/pt/detail.json":xm,"./locales/pt/gospel.json":km,"./locales/pt/grid.json":Lm,"./locales/pt/legend.json":Am,"./locales/pt/messages.json":Sm,"./locales/pt/options.json":Pm,"./locales/pt/popup.json":Em,"./locales/pt/prayerLaps.json":Cm,"./locales/pt/regions.json":Tm,"./locales/pt/search.json":Rm,"./locales/pt/studio.json":Nm,"./locales/pt/tabs.json":Om,"./locales/pt/vision.json":Fm,"./locales/ro/allPeopleGroups.json":Mm,"./locales/ro/aria.json":Im,"./locales/ro/buttons.json":Dm,"./locales/ro/connectivity.json":jm,"./locales/ro/controls.json":zm,"./locales/ro/dashboard.json":Gm,"./locales/ro/detail.json":Um,"./locales/ro/gospel.json":Bm,"./locales/ro/grid.json":Vm,"./locales/ro/legend.json":qm,"./locales/ro/messages.json":Wm,"./locales/ro/options.json":Hm,"./locales/ro/popup.json":Km,"./locales/ro/prayerLaps.json":Xm,"./locales/ro/regions.json":Ym,"./locales/ro/search.json":Zm,"./locales/ro/studio.json":Jm,"./locales/ro/tabs.json":Qm,"./locales/ro/vision.json":eb,"./locales/ru/allPeopleGroups.json":tb,"./locales/ru/aria.json":ob,"./locales/ru/buttons.json":nb,"./locales/ru/connectivity.json":ab,"./locales/ru/controls.json":sb,"./locales/ru/dashboard.json":rb,"./locales/ru/detail.json":ib,"./locales/ru/gospel.json":lb,"./locales/ru/grid.json":cb,"./locales/ru/legend.json":ub,"./locales/ru/messages.json":db,"./locales/ru/options.json":pb,"./locales/ru/popup.json":gb,"./locales/ru/prayerLaps.json":fb,"./locales/ru/regions.json":hb,"./locales/ru/search.json":mb,"./locales/ru/studio.json":bb,"./locales/ru/tabs.json":$b,"./locales/ru/vision.json":_b,"./locales/zh/allPeopleGroups.json":yb,"./locales/zh/aria.json":vb,"./locales/zh/buttons.json":wb,"./locales/zh/connectivity.json":xb,"./locales/zh/controls.json":kb,"./locales/zh/dashboard.json":Lb,"./locales/zh/detail.json":Ab,"./locales/zh/gospel.json":Sb,"./locales/zh/grid.json":Pb,"./locales/zh/legend.json":Eb,"./locales/zh/messages.json":Cb,"./locales/zh/options.json":Tb,"./locales/zh/popup.json":Rb,"./locales/zh/prayerLaps.json":Nb,"./locales/zh/regions.json":Ob,"./locales/zh/search.json":Fb,"./locales/zh/studio.json":Mb,"./locales/zh/tabs.json":Ib,"./locales/zh/vision.json":Db}),Jo={};for(const[e,t]of Object.entries(V_)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;Jo[n]??(Jo[n]={}),Jo[n][a]=t}Jo.en;const ru=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],q_=new Set(["ar"]);function iu(){var n;const e=(()=>{try{const a=new URLSearchParams(window.location.search);return(a.get("lang")||a.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}})();if(ru.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return ru.includes(o)?o:"en"}function W_(){const e=iu();try{q_.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}return N_({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:Jo,missingWarn:!1,fallbackWarn:!1})}function Pe(e,t){const o=a=>{let s=Jo[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||iu();return o(n)??o("en")}const lu="adoptionStatus",vo={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},H_=vo,br={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},K_=br;function cu(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)?vo.hasAdoption:vo.notAdopted}function $r({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],vo.hasAdoption,["==",t,1],vo.hasAdoption,vo.notAdopted]}const uu=$r,X_=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:H_,ADOPTION_LABELS:K_,LABELS:br,PALETTE:vo,PROPERTY_KEY:lu,applyColor:$r,buildColorExpression:uu,default:{name:"Adoption Progress",propertyKey:lu,palette:vo,colors:vo,labels:br,getColor:cu,applyColor:$r,buildColorExpression:uu},getColor:cu},Symbol.toStringTag,{value:"Module"})),du="engagementStatus",wo={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},Y_=wo,_r={notEngaged:"Unengaged",hasEngagement:"Engaged"},Z_=_r;function pu(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)?wo.hasEngagement:wo.notEngaged}function yr({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],wo.hasEngagement,["==",t,1],wo.hasEngagement,wo.notEngaged]}const gu=yr,J_=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:Y_,ENGAGEMENT_LABELS:Z_,LABELS:_r,PALETTE:wo,PROPERTY_KEY:du,applyColor:yr,buildColorExpression:gu,default:{name:"Engagement Progress",propertyKey:du,palette:wo,colors:wo,labels:_r,getColor:pu,applyColor:yr,buildColorExpression:gu},getColor:pu},Symbol.toStringTag,{value:"Module"})),vr="languageFamily",Q_="#000000",xo={"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"},ey=xo;function wr(e){return xo[e]||Q_}const ty=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(xo))t[e(o)]=o;return t})(),oy={"tai-kadai":"Kra-Dai",none:"Unknown"};function $n(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return oy[o]||ty[o]||t}function fu(e){var t;return wr(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function xr(){const e=["match",["get",vr]];return Object.entries(xo).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const hu=xr,ny=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:ey,PALETTE:xo,PROPERTY_KEY:vr,applyColor:xr,buildColorExpression:hu,canonicalFamilyName:$n,default:{name:"Language Family",propertyKey:vr,palette:xo,colors:xo,getColor:fu,applyColor:xr,buildColorExpression:hu,getLanguageFamilyColor:wr,canonicalFamilyName:$n},defaultFamilyColor:"#95a5a6",getColor:fu,getLanguageFamilyColor:wr,languageFamilyColors:xo},Symbol.toStringTag,{value:"Module"})),mu="peoplePraying",es=144,Do={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},ay=Do,oa={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},sy=oa;function _n(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>=es?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function kr(e){return Do[_n(e)]}function bu(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 $u(e){return _n(e)==="fullPrayer"}function _u(e){return kr(e)}function ts({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,es],Do.fullPrayer,[">",t,0],Do.hasPrayer,Do.noPrayer]}const yu=ts,ry=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:es,LABELS:oa,PALETTE:Do,PRAYER_COLORS:ay,PRAYER_LABELS:sy,PROPERTY_KEY:mu,applyColor:ts,buildColorExpression:yu,checkHasFullPrayer:$u,checkHasPrayer:bu,default:{name:"Prayer Progress",propertyKey:mu,palette:Do,colors:Do,labels:oa,threshold:es,getColor:_u,applyColor:ts,buildColorExpression:yu,getPrayerLevel:_n,getPrayerColor:kr,checkHasPrayer:bu,checkHasFullPrayer:$u},getColor:_u,getPrayerColor:kr,getPrayerLevel:_n},Symbol.toStringTag,{value:"Module"})),vu="religion",Lr="#94a3b8",ko={C:"Christianity",M:"Islam",H:"Hinduism",B:"Buddhism",E:"Ethnoreligion",J:"Judaism",S:"Sikhism",N:"Unaffiliated",O:"Other",U:"Unknown"},Ct={C:"#3b82f6",M:"#ef4444",H:"#f59e0b",B:"#facc15",E:"#84cc16",J:"#a855f7",S:"#ec4899",N:"#71717a",O:"#ff6b2b",U:"#94a3b8"};function Ar(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return ko[t]?t:"U"}function wu(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 Ct[Ar(t)]||Lr}function Sr(){return["match",["slice",["coalesce",["get","religion"],""],0,1],"C",Ct.C,"M",Ct.M,"H",Ct.H,"B",Ct.B,"E",Ct.E,"J",Ct.J,"S",Ct.S,"N",Ct.N,"O",Ct.O,Lr]}const xu=Sr,iy=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Ct,PROPERTY_KEY:vu,RELIGION_FAMILIES:ko,applyColor:Sr,buildColorExpression:xu,default:{name:"Religion",propertyKey:vu,palette:Ct,families:ko,getColor:wu,applyColor:Sr,buildColorExpression:xu,fallback:Lr},getColor:wu,getReligionFamily:Ar},Symbol.toStringTag,{value:"Module"})),ku="region",Pr="#6d766e",Lu={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"},na={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},Er=Object.keys(na);function Au(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 na[t]||Pr}function Cr(){const e=["match",["coalesce",["get","region"],""]];for(const t of Er)e.push(t,na[t]);return e.push(Pr),e}const Su=Cr,ly=Object.assign({"./adoption.js":X_,"./engagement.js":J_,"./language-family.js":ny,"./prayer-progress.js":ry,"./religion.js":iy,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:na,PROPERTY_KEY:ku,REGION_ORDER:Er,WAGF_REGIONS:Lu,applyColor:Cr,buildColorExpression:Su,default:{name:"WAGF Region",propertyKey:ku,palette:na,regions:Lu,order:Er,getColor:Au,applyColor:Cr,buildColorExpression:Su,fallback:Pr},getColor:Au},Symbol.toStringTag,{value:"Module"}))}),cy=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),uy=e=>e.replace(/-/g,"_").toUpperCase(),Lo={...{STATUS:"status",CUSTOM:"custom"}},Tr={};function Pu(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=cy(o);Lo[uy(o)]=a,Tr[a]=n}}Pu(ly);function dy(e){e&&Pu(e)}function os(e){return Tr[e]||Tr[Lo.LANGUAGE_FAMILY]}const Eu={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 py(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function Cu(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(py(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(Eu.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(Eu.mapbox,null,!0);o=!0}catch{}return o}const Tu="affinityBlock",yn="#95a5a6",vn={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"},Rr={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"},wn=Rr;Object.entries(vn).reduce((e,[t,o])=>(e[o]=t,e),{});const gy=Object.entries(vn).reduce((e,[t,o])=>(e[o]=wn[t],e),{}),fy=vn;function Ru(e){return vn[e]||"Unknown"}function Nu(e){return wn[e]||yn}function hy(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?wn[e]||yn:gy[e]||yn:yn}function my(){return Object.entries(vn).map(([e,t])=>({code:e,name:t,color:wn[e]}))}function by(e){return{code:e,name:vn[e]||"Unknown",color:wn[e]||yn}}function $y(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Nu(t)}function _y(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Ru(t)}function Ou(){const e=["match",["get",Tu]];return Object.entries(wn).forEach(([t,o])=>{e.push(t,o)}),e.push(yn),e}const yy={name:"Affinity Block",propertyKey:Tu,palette:Rr,colors:Rr,names:fy,getColor:$y,applyColor:Ou,buildColorExpression:Ou,getName:_y,getAffinityBlockName:Ru,getAffinityBlockColor:hy,getAffinityBlockColorByCode:Nu,getAffinityBlocksArray:my,getAffinityBlockData:by};function vy(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 ky={name:"DOXA Region",propertyKey:Fu,palette:Iu,colors:Iu,slugColors:Or,aliases:ju,fallback:Nr,getColor:xy,applyColor:zu,buildColorExpression:zu,getRegionColor:wy,getRegionColorBySlug:Du},Ly=en&&en.tagName.toUpperCase()==="SCRIPT"&&en.src||new URL("dashboard-plus-grid.js",document.baseURI).href,jo=e=>String(e||"").trim().replace(/\/+$/,"");function Fr(){try{const t=String(Ly||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function Gu(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return jo(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return jo(o)}return jo(Fr()||"")}function Uu(e){const t=e==null?void 0:e.assetsBase;if(typeof t=="string"&&t.trim()){const n=jo(t);if(/^https?:\/\//i.test(n)||n.startsWith("/"))return n}const o=jo((e==null?void 0:e.treeBase)||"")||jo(Fr()||"");if(o)try{const n=typeof document<"u"?document.baseURI:void 0;return jo(new URL(o+"/assets",n).href)}catch{return jo(o+"/assets")}return"./assets"}function Ay({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=Gu(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 Mr="__doxaMapToken",Ir="doxa:map-token",Bu="__doxaMapTokenBridge",xn=()=>{if(typeof window>"u")return"";const e=window[Mr];return typeof e=="string"?e:""};function Vu(e){if(typeof window>"u")return"";const t=typeof e=="string"?e.trim():"";if(!t||t===xn())return xn();window[Mr]=t;try{window.dispatchEvent(new CustomEvent(Ir,{detail:t}))}catch{}return t}function Sy(){if(typeof window>"u"||window[Bu])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!xn()&&(window[Mr]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return xn()},set(t){Vu(t)}}),window[Bu]=!0}catch{}}function Py(){Sy();const e=de(xn());if(typeof window<"u"){const t=()=>{e.value=xn()};window.addEventListener(Ir,t);try{It(()=>window.removeEventListener(Ir,t))}catch{}}return e}function Ot(e,t){const o=t||Ey(e);yt(()=>{var i;const n=Ro();if(!n)return;const a=(i=n.proxy)==null?void 0:i.$el;if(!a)return;const s=a.getRootNode();if(!(s instanceof ShadowRoot)||s.querySelector(`style[data-shadow-styles="${o}"]`))return;const r=document.createElement("style");r.setAttribute("data-shadow-styles",o),r.textContent=e,s.appendChild(r)})}function Ey(e){let t=0;for(let o=0;o{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},aa={};function Ty(e){if(!e||/^(https?:)?\/\//.test(e)||e.startsWith("/"))return e;const t=e.replace(/^(\.\.\/)+/,"").replace(/^\.\//,""),o=/^(.*\/doxa-maps\/)/.exec(window.location.pathname);if(o)return o[1]+t;const n=Fr();return n?String(n).replace(/\/+$/,"")+"/"+t:e}function Ry(e){const t=Ty(e);return t?(aa[t]||(aa[t]=new Promise((o,n)=>{const a=document.createElement("script");a.src=t,(/^\/plugin-designs\//.test(t)||/\/index\.js(\?|$)/.test(t))&&(a.type="module"),a.onload=()=>o(),a.onerror=()=>{delete aa[t],n(new Error("failed to load "+t))},document.head.appendChild(a)})),aa[t]):Promise.resolve()}function Ny(e,t=5e3){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():customElements.whenDefined?Promise.race([customElements.whenDefined(e),new Promise((o,n)=>setTimeout(()=>n(new Error("timeout waiting for <"+e+">")),t))]):Promise.resolve()}const Oy=` .stl { display:flow-root; width:100%; min-height:100%; background:#f3f3f1; color:#3b463d; font-family:'Public Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif; -webkit-font-smoothing:antialiased; --stl-accent:#92b195; --stl-border:#d1d4cd; --stl-elevated:#ffffff; --stl-muted:#6d766e; } .stl-top { display:flex; align-items:center; gap:10px; padding:11px 16px; border-bottom:1px solid var(--stl-border); background:#ffffff; position:sticky; top:0; z-index:5; } .stl-brand { display:inline-flex; align-items:center; } @@ -67,11 +67,11 @@ .stl ::-webkit-scrollbar-thumb { background:#c4c8c0; border-radius:8px; } .stl ::-webkit-scrollbar-thumb:hover { background:#9aa197; } .stl ::-webkit-scrollbar-corner { background:transparent; } -`,Ny=jn({name:"StackLayout",props:{sections:{type:Array,default:()=>[]},title:{type:String,default:""},maxSectionHeight:{type:String,default:""},minSectionHeight:{type:String,default:""}},setup(){Ot(Ry,"stack-layout")},data(){return{_hosts:{},_mounted:{}}},mounted(){for(const e of this.sections||[])e.element&&this.mountSection(e)},methods:{registerHost(e,t){t&&(this._hosts[e]=t)},sectionStyle(e){const t={},o=e.maxHeight||this.maxSectionHeight,n=e.minHeight||this.minSectionHeight,a=!!(o&&n&&o===n);return o&&(t.maxHeight=o,a||(t.overflow="auto")),n&&(t.minHeight=n),Object.keys(t).length?t:null},hasDefiniteHeight(e){const t=e.maxHeight||this.maxSectionHeight,o=e.minHeight||this.minSectionHeight;return!!(t&&o&&t===o)},mountSection(e){if(this._mounted[e.key])return;this._mounted[e.key]=!0;const t=this._hosts[e.key];t&&Cy(e.src).then(()=>Ty(e.element)).then(()=>{if(!customElements.get(e.element))return;const o=document.createElement(e.element),n=e.attrs||{};for(const a in n){const s=n[a];try{o[a]=s}catch{}try{o.setAttribute(a,s==null?"":String(s))}catch{}}t.innerHTML="",t.appendChild(o)}).catch(o=>{const n=o&&o.message||String(o);console.error('[StackLayout] section "'+e.key+'" failed to mount <'+e.element+">"+(e.src?" from "+e.src:"")+": "+n);try{t.innerHTML="";const a=document.createElement("div");a.setAttribute("role","status"),a.style.cssText="box-sizing:border-box;max-width:100%;padding:16px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:#6d766e;background:#fff;border:1px solid #d1d4cd;border-radius:8px;margin:12px 0;overflow-wrap:anywhere;word-break:break-word",a.textContent="Could not load <"+e.element+">"+(e.src?" from "+e.src:"")+" — "+n,t.appendChild(a)}catch{}})}}}),Oy={class:"stl"},Fy={key:0,class:"stl-top"},My={class:"stl-brand"},Iy={key:0,class:"stl-title"},Dy={class:"stl-meta"},jy={class:"stl-stack"},zy={key:0,class:"stl-sec-head"},Gy={class:"stl-sec-title"},Uy={key:0,class:"stl-sec-sub"},By={key:2,class:"stl-slot"},Vy={class:"stl-tail"};function qy(e,t,o,n,a,s){return H(),Z("div",Oy,[e.$slots.brand||e.$slots.meta||e.title?(H(),Z("header",Fy,[R("span",My,[Ho(e.$slots,"brand")]),e.title?(H(),Z("b",Iy,ue(e.title),1)):Fe("",!0),R("span",Dy,[Ho(e.$slots,"meta")])])):Fe("",!0),R("div",jy,[(H(!0),Z(Ce,null,et(e.sections,r=>(H(),Z("section",{key:r.key,class:qe(["stl-sec",{"stl-sec-fill":e.hasDefiniteHeight(r)}]),style:rt(e.sectionStyle(r))},[r.title?(H(),Z("div",zy,[R("b",Gy,ue(r.title),1),r.sub?(H(),Z("span",Uy,ue(r.sub),1)):Fe("",!0)])):Fe("",!0),r.element?(H(),Z("div",{key:1,class:"stl-host",ref_for:!0,ref:i=>e.registerHost(r.key,i)},null,512)):(H(),Z("div",By,[Ho(e.$slots,"section-"+r.key)]))],6))),128)),R("div",Vy,[Ho(e.$slots,"default")])])])}const Wy=kn(Ny,[["render",qy],["styles",[Py]]]);function ns(e,t){if(!t.includes("."))return e==null?void 0:e[t];const[o,...n]=t.split(".");let a=e==null?void 0:e[o];for(const s of n)a=a==null?void 0:a[s];return a}function Hy(e,t){const o=e.toLowerCase(),n=t.toLowerCase(),a=[];let s=0,r=o.indexOf(n,s);for(;r!==-1;)a.push([r,r+n.length-1]),s=r+n.length,r=o.indexOf(n,s);return a}function qu(e,t,o){const n=e.toLowerCase(),a=t.toLowerCase(),s=a.length;if(!s||!n.length)return null;const r=Math.min(2,Math.floor(o*s));if(r<=0)return null;let i=new Array(n.length+1).fill(0),l=new Array(n.length+1);for(let g=1;g<=s;g++){l[0]=g;for(let y=1;y<=n.length;y++){const A=i[y-1]+(a[g-1]===n[y-1]?0:1);l[y]=Math.min(A,i[y]+1,l[y-1]+1)}[i,l]=[l,i]}let c=1/0,u=-1;for(let g=1;g<=n.length;g++)i[g]r?null:[[Math.max(0,u-s),u-1]]}function Ky(e,t){const o=String(e??""),n=String(t??"").trim();return n?o?o.toLowerCase().includes(n.toLowerCase()):!1:!0}function Wu(e,t,{threshold:o=.4}={}){const n=String(e??"").trim().toLowerCase();if(!n)return[];const a=Math.min(2,Math.floor(o*n.length)),s=[];for(const i of t){if(!i)continue;const l=String(i).toLowerCase();if(Math.abs(l.length-n.length)>a)continue;const c=Xy(l,n,a);c<=a&&s.push({value:i,distance:c})}if(!s.length)return[];const r=Math.min(...s.map(i=>i.distance));return s.filter(i=>i.distance===r).map(i=>i.value)}function Xy(e,t,o){if(e===t)return 0;let n=Array.from({length:t.length+1},(s,r)=>r);const a=new Array(t.length+1);for(let s=1;s<=e.length;s++){a[0]=s;let r=s;for(let i=1;i<=t.length;i++)a[i]=Math.min(n[i-1]+(e[s-1]===t[i-1]?0:1),n[i]+1,a[i-1]+1),a[i]o)return o+1;for(let i=0;i<=t.length;i++)n[i]=a[i]}return n[t.length]}function Yy(e,t,{threshold:o=.4,minMatchCharLength:n=3}={}){const a=String(e??""),s=String(t??"").trim();return s?a?a.toLowerCase().includes(s.toLowerCase())?!0:o===0||s.length({item:c,matches:[]}));if(o.length!t[n[a]].includes(r))):s}}return t}function Qy(){const e=Uo({}),t=new Set,o=de(0),n=de(""),a=new Map;function s(f,b){return a.has(f)||a.set(f,new Set),a.get(f).add(b),()=>{var d;return(d=a.get(f))==null?void 0:d.delete(b)}}function r(f,b){var d;(d=a.get(f))==null||d.forEach($=>{try{$(b)}catch{}})}let i={};function l(f){i=Jy(f)}function c(f,b){if(b==null){delete e[f];for(const d of i[f]||[])delete e[d]}else e[f]=b;r("filter",e)}function u(){Object.keys(e).forEach(f=>delete e[f]),r("filter",e)}function p(f){n.value=f==null?"":String(f),r("search",n.value)}function g(){o.value++,r("select",t)}function y(f){t.has(f)?t.delete(f):t.add(f),g()}function A(){t.size&&(t.clear(),g())}function k(f,{additive:b=!0}={}){let d=!1;b||t.size&&(t.clear(),d=!0);for(const $ of f)t.has($)||(t.add($),d=!0);return d&&g(),d}function S(f){let b=!1;for(const d of f)t.delete(d)&&(b=!0);return b&&g(),b}function C(f){const b=f instanceof Set?f:new Set(f);if(b.size===t.size){let d=!0;for(const $ of b)if(!t.has($)){d=!1;break}if(d)return!1}t.clear();for(const d of b)t.add(d);return g(),!0}return{filterSet:e,selectionSet:t,selectionVersion:o,searchTerm:n,on:s,emit:r,setFilter:c,clearFilters:u,setSearch:p,configureHierarchy:l,toggleSelect:y,clearSelection:A,selectMany:k,deselectMany:S,setSelection:C}}const Dr={};function jr(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:Qo&&Qo.tagName.toUpperCase()==="SCRIPT"&&Qo.src||new URL("dashboard-plus-grid.js",document.baseURI).href}<"u"&&(Dr==null?void 0:Dr.VITE_API_BASE_URL)||""}const Kt={_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}}};function ev(e={}){const t=de(!1),o=de(null),n=On(new Map),a=On([]),s=de(null),r=de(0),i=e.source||Kt.activeSource;async function l(){var c,u,p,g;t.value=!0,o.value=null;try{const y=((c=Kt==null?void 0:Kt.sources)==null?void 0:c[i])||{},A=jr(),k=((u=y.endpoints)==null?void 0:u.bulk)||"/api/people-groups/list",S=(y.defaultFields||[]).join(","),C=((p=y.queryParams)==null?void 0:p.lang)||"en",f=`${A}${k}?${S?`fields=${S}&`:""}lang=${C}&_=${Date.now()}`,b=await fetch(f,{cache:"no-store"});if(!b.ok)throw new Error(`list HTTP ${b.status}`);const d=await b.json(),$=Array.isArray(d)?d:d.posts||d.data||d.results||[],L=new Map;for(const F of $){const U=F&&(F.slug||F.id);U&&L.set(U,F)}n.value=L,a.value=$,r.value=L.size;const w=((g=y.endpoints)==null?void 0:g.statistics)||"/api/people-groups/statistics";try{const F=await fetch(`${A}${w}?_=${Date.now()}`,{cache:"no-store"});F.ok&&(F.headers.get("content-type")||"").includes("json")&&(s.value=await F.json())}catch{}r.value===0&&(o.value="No records loaded from the live API.")}catch(y){o.value=y&&y.message?y.message:String(y)}finally{t.value=!1}}return{loading:t,error:o,rowStore:n,rows:a,stats:s,total:r,load:l,sourceId:i}}const as=["slug","name","imb_alternate_name","doxa_wagf_uid","imb_uid","imb_peid","imb_pgid","joshua_project_id","imb_affinity_code","latitude","longitude","country_code","region","wagf_region","wagf_block","wagf_member","imb_subregion","location_description","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","primary_language","imb_language_family","imb_language_class","imb_language_speakers","work_in_local_language","imb_is_indigenous","religion","imb_reg_of_religion_3","imb_reg_of_religion_4","population","imb_population_class","believers_count","evangelical_pct","imb_evangelical_level","imb_congregation_existing","people_praying","people_committed","committed_duration","adopted_by_churches","adopted_by_count","adopted_by_names","engagement_status","status","reason_engaged","reason_unlisted","global_start_date","workers_long_term","imb_church_planting","disciple_and_church_multiplication","imb_bible_available","imb_bible_translation_level","imb_bible_year_published","imb_bible_stories_available","imb_audio_scripture_available","imb_gospel_recordings_available","imb_jesus_film_available","imb_radio_broadcast_available","imb_total_resources_available","imb_gsec","imb_lostness_priority_index","imb_strategic_priority_index","has_photo","image_url","picture_credit","imb_people_description"];function zr({rowStore:e,rows:t,selectionSet:o,filterSet:n,FACET_ACC:a,dataOpts:s={},labelFor:r=null}){let i=null,l=null;function c(){return l||(l=(async()=>{var Q,X,B;const $=s.source||Kt.activeSource,L=((Q=Kt==null?void 0:Kt.sources)==null?void 0:Q[$])||{},w=Array.isArray(L.exportFields)&&L.exportFields.length?L.exportFields:as,F=((X=L.endpoints)==null?void 0:X.bulk)||"/api/people-groups/list",U=((B=L.queryParams)==null?void 0:B.lang)||"en",ne=`${jr()}${F}?fields=${w.join(",")}&lang=${U}`,z=await fetch(ne,{cache:"no-store"});if(!z.ok)throw new Error(`export list HTTP ${z.status}`);const Y=await z.json(),fe=Array.isArray(Y)?Y:Y.posts||Y.data||Y.results||[],M=new Map;for(const se of fe){const I=se&&(se.slug||se.id);I&&M.set(I,se)}return i=M,M})().catch($=>{throw l=null,$}),l)}function u($){if(!i)return $;const L=i.get($&&($.slug||$.id));return L?{...$,...L}:$}function p(){if(o&&o.size)return[...o].map(L=>e.value.get(L)).filter(Boolean);const $=Object.keys(n);return $.length?(t.value||[]).filter(L=>$.every(w=>{const F=a[w];return F?F(L)===n[w]:!0})):t.value||[]}function g(){return o&&o.size?`selection (${o.size})`:Object.keys(n).length?"filter result":"all"}function y($){return $==null?$:Array.isArray($)?$.map(L=>y(L)).filter(L=>L!==""&&L!==null&&L!==void 0).join(" | "):typeof $=="object"?$.label??$.value??$.text??$.name??$.link??JSON.stringify($):$}function A($){const L={};for(const w of Object.keys($))L[w]=y($[w]);return L}function k($){let L=$==null?"":String($);return/^[=+\-@]/.test(L)&&(L="'"+L),/[",\n\r]/.test(L)&&(L='"'+L.replace(/"/g,'""')+'"'),L}function S(){const $=p().map(u).map(A),L=$.reduce((z,Y)=>(Object.keys(Y).forEach(fe=>z.add(fe)),z),new Set),w=[...as.filter(z=>L.has(z)),...[...L].filter(z=>!as.includes(z))],F=Object.entries(n).map(([z,Y])=>`${z}=${r?r(z,Y):Y}`).join(" | ")||"none",U=`# Research Dashboard export — scope: ${g()}; filters: ${F}; rows: ${$.length}`;return[w.map(k).join(","),...$.map(z=>w.map(Y=>k(z[Y])).join(",")),U].join(`\r +`,Fy=jn({name:"StackLayout",props:{sections:{type:Array,default:()=>[]},title:{type:String,default:""},maxSectionHeight:{type:String,default:""},minSectionHeight:{type:String,default:""}},setup(){Ot(Oy,"stack-layout")},data(){return{_hosts:{},_mounted:{}}},mounted(){for(const e of this.sections||[])e.element&&this.mountSection(e)},methods:{registerHost(e,t){t&&(this._hosts[e]=t)},sectionStyle(e){const t={},o=e.maxHeight||this.maxSectionHeight,n=e.minHeight||this.minSectionHeight,a=!!(o&&n&&o===n);return o&&(t.maxHeight=o,a||(t.overflow="auto")),n&&(t.minHeight=n),Object.keys(t).length?t:null},hasDefiniteHeight(e){const t=e.maxHeight||this.maxSectionHeight,o=e.minHeight||this.minSectionHeight;return!!(t&&o&&t===o)},mountSection(e){if(this._mounted[e.key])return;this._mounted[e.key]=!0;const t=this._hosts[e.key];t&&Ry(e.src).then(()=>Ny(e.element)).then(()=>{if(!customElements.get(e.element))return;const o=document.createElement(e.element),n=e.attrs||{};for(const a in n){const s=n[a];try{o[a]=s}catch{}try{o.setAttribute(a,s==null?"":String(s))}catch{}}t.innerHTML="",t.appendChild(o)}).catch(o=>{const n=o&&o.message||String(o);console.error('[StackLayout] section "'+e.key+'" failed to mount <'+e.element+">"+(e.src?" from "+e.src:"")+": "+n);try{t.innerHTML="";const a=document.createElement("div");a.setAttribute("role","status"),a.style.cssText="box-sizing:border-box;max-width:100%;padding:16px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;color:#6d766e;background:#fff;border:1px solid #d1d4cd;border-radius:8px;margin:12px 0;overflow-wrap:anywhere;word-break:break-word",a.textContent="Could not load <"+e.element+">"+(e.src?" from "+e.src:"")+" — "+n,t.appendChild(a)}catch{}})}}}),My={class:"stl"},Iy={key:0,class:"stl-top"},Dy={class:"stl-brand"},jy={key:0,class:"stl-title"},zy={class:"stl-meta"},Gy={class:"stl-stack"},Uy={key:0,class:"stl-sec-head"},By={class:"stl-sec-title"},Vy={key:0,class:"stl-sec-sub"},qy={key:2,class:"stl-slot"},Wy={class:"stl-tail"};function Hy(e,t,o,n,a,s){return H(),Z("div",My,[e.$slots.brand||e.$slots.meta||e.title?(H(),Z("header",Iy,[R("span",Dy,[Ho(e.$slots,"brand")]),e.title?(H(),Z("b",jy,ue(e.title),1)):Fe("",!0),R("span",zy,[Ho(e.$slots,"meta")])])):Fe("",!0),R("div",Gy,[(H(!0),Z(Ce,null,et(e.sections,r=>(H(),Z("section",{key:r.key,class:qe(["stl-sec",{"stl-sec-fill":e.hasDefiniteHeight(r)}]),style:rt(e.sectionStyle(r))},[r.title?(H(),Z("div",Uy,[R("b",By,ue(r.title),1),r.sub?(H(),Z("span",Vy,ue(r.sub),1)):Fe("",!0)])):Fe("",!0),r.element?(H(),Z("div",{key:1,class:"stl-host",ref_for:!0,ref:i=>e.registerHost(r.key,i)},null,512)):(H(),Z("div",qy,[Ho(e.$slots,"section-"+r.key)]))],6))),128)),R("div",Wy,[Ho(e.$slots,"default")])])])}const Ky=kn(Fy,[["render",Hy],["styles",[Cy]]]);function ns(e,t){if(!t.includes("."))return e==null?void 0:e[t];const[o,...n]=t.split(".");let a=e==null?void 0:e[o];for(const s of n)a=a==null?void 0:a[s];return a}function Xy(e,t){const o=e.toLowerCase(),n=t.toLowerCase(),a=[];let s=0,r=o.indexOf(n,s);for(;r!==-1;)a.push([r,r+n.length-1]),s=r+n.length,r=o.indexOf(n,s);return a}function qu(e,t,o){const n=e.toLowerCase(),a=t.toLowerCase(),s=a.length;if(!s||!n.length)return null;const r=Math.min(2,Math.floor(o*s));if(r<=0)return null;let i=new Array(n.length+1).fill(0),l=new Array(n.length+1);for(let g=1;g<=s;g++){l[0]=g;for(let y=1;y<=n.length;y++){const A=i[y-1]+(a[g-1]===n[y-1]?0:1);l[y]=Math.min(A,i[y]+1,l[y-1]+1)}[i,l]=[l,i]}let c=1/0,u=-1;for(let g=1;g<=n.length;g++)i[g]r?null:[[Math.max(0,u-s),u-1]]}function Yy(e,t){const o=String(e??""),n=String(t??"").trim();return n?o?o.toLowerCase().includes(n.toLowerCase()):!1:!0}function Wu(e,t,{threshold:o=.4}={}){const n=String(e??"").trim().toLowerCase();if(!n)return[];const a=Math.min(2,Math.floor(o*n.length)),s=[];for(const i of t){if(!i)continue;const l=String(i).toLowerCase();if(Math.abs(l.length-n.length)>a)continue;const c=Zy(l,n,a);c<=a&&s.push({value:i,distance:c})}if(!s.length)return[];const r=Math.min(...s.map(i=>i.distance));return s.filter(i=>i.distance===r).map(i=>i.value)}function Zy(e,t,o){if(e===t)return 0;let n=Array.from({length:t.length+1},(s,r)=>r);const a=new Array(t.length+1);for(let s=1;s<=e.length;s++){a[0]=s;let r=s;for(let i=1;i<=t.length;i++)a[i]=Math.min(n[i-1]+(e[s-1]===t[i-1]?0:1),n[i]+1,a[i-1]+1),a[i]o)return o+1;for(let i=0;i<=t.length;i++)n[i]=a[i]}return n[t.length]}function Jy(e,t,{threshold:o=.4,minMatchCharLength:n=3}={}){const a=String(e??""),s=String(t??"").trim();return s?a?a.toLowerCase().includes(s.toLowerCase())?!0:o===0||s.length({item:c,matches:[]}));if(o.length!t[n[a]].includes(r))):s}}return t}function tv(){const e=Uo({}),t=new Set,o=de(0),n=de(""),a=new Map;function s(f,b){return a.has(f)||a.set(f,new Set),a.get(f).add(b),()=>{var d;return(d=a.get(f))==null?void 0:d.delete(b)}}function r(f,b){var d;(d=a.get(f))==null||d.forEach($=>{try{$(b)}catch{}})}let i={};function l(f){i=ev(f)}function c(f,b){if(b==null){delete e[f];for(const d of i[f]||[])delete e[d]}else e[f]=b;r("filter",e)}function u(){Object.keys(e).forEach(f=>delete e[f]),r("filter",e)}function p(f){n.value=f==null?"":String(f),r("search",n.value)}function g(){o.value++,r("select",t)}function y(f){t.has(f)?t.delete(f):t.add(f),g()}function A(){t.size&&(t.clear(),g())}function k(f,{additive:b=!0}={}){let d=!1;b||t.size&&(t.clear(),d=!0);for(const $ of f)t.has($)||(t.add($),d=!0);return d&&g(),d}function S(f){let b=!1;for(const d of f)t.delete(d)&&(b=!0);return b&&g(),b}function C(f){const b=f instanceof Set?f:new Set(f);if(b.size===t.size){let d=!0;for(const $ of b)if(!t.has($)){d=!1;break}if(d)return!1}t.clear();for(const d of b)t.add(d);return g(),!0}return{filterSet:e,selectionSet:t,selectionVersion:o,searchTerm:n,on:s,emit:r,setFilter:c,clearFilters:u,setSearch:p,configureHierarchy:l,toggleSelect:y,clearSelection:A,selectMany:k,deselectMany:S,setSelection:C}}const Dr={};function jr(){return typeof window<"u"&&window.MAP_APP_API_URL||typeof{url:en&&en.tagName.toUpperCase()==="SCRIPT"&&en.src||new URL("dashboard-plus-grid.js",document.baseURI).href}<"u"&&(Dr==null?void 0:Dr.VITE_API_BASE_URL)||""}const Kt={_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}}};function ov(e={}){const t=de(!1),o=de(null),n=On(new Map),a=On([]),s=de(null),r=de(0),i=e.source||Kt.activeSource;async function l(){var c,u,p,g;t.value=!0,o.value=null;try{const y=((c=Kt==null?void 0:Kt.sources)==null?void 0:c[i])||{},A=jr(),k=((u=y.endpoints)==null?void 0:u.bulk)||"/api/people-groups/list",S=(y.defaultFields||[]).join(","),C=((p=y.queryParams)==null?void 0:p.lang)||"en",f=`${A}${k}?${S?`fields=${S}&`:""}lang=${C}&_=${Date.now()}`,b=await fetch(f,{cache:"no-store"});if(!b.ok)throw new Error(`list HTTP ${b.status}`);const d=await b.json(),$=Array.isArray(d)?d:d.posts||d.data||d.results||[],L=new Map;for(const F of $){const D=F&&(F.slug||F.id);D&&L.set(D,F)}n.value=L,a.value=$,r.value=L.size;const w=((g=y.endpoints)==null?void 0:g.statistics)||"/api/people-groups/statistics";try{const F=await fetch(`${A}${w}?_=${Date.now()}`,{cache:"no-store"});F.ok&&(F.headers.get("content-type")||"").includes("json")&&(s.value=await F.json())}catch{}r.value===0&&(o.value="No records loaded from the live API.")}catch(y){o.value=y&&y.message?y.message:String(y)}finally{t.value=!1}}return{loading:t,error:o,rowStore:n,rows:a,stats:s,total:r,load:l,sourceId:i}}const as=["slug","name","imb_alternate_name","doxa_wagf_uid","imb_uid","imb_peid","imb_pgid","joshua_project_id","imb_affinity_code","latitude","longitude","country_code","region","wagf_region","wagf_block","wagf_member","imb_subregion","location_description","rop1","imb_reg_of_people_2","imb_reg_of_people_25","imb_reg_of_people_3","primary_language","imb_language_family","imb_language_class","imb_language_speakers","work_in_local_language","imb_is_indigenous","religion","imb_reg_of_religion_3","imb_reg_of_religion_4","population","imb_population_class","believers_count","evangelical_pct","imb_evangelical_level","imb_congregation_existing","people_praying","people_committed","committed_duration","adopted_by_churches","adopted_by_count","adopted_by_names","engagement_status","status","reason_engaged","reason_unlisted","global_start_date","workers_long_term","imb_church_planting","disciple_and_church_multiplication","imb_bible_available","imb_bible_translation_level","imb_bible_year_published","imb_bible_stories_available","imb_audio_scripture_available","imb_gospel_recordings_available","imb_jesus_film_available","imb_radio_broadcast_available","imb_total_resources_available","imb_gsec","imb_lostness_priority_index","imb_strategic_priority_index","has_photo","image_url","picture_credit","imb_people_description"];function zr({rowStore:e,rows:t,selectionSet:o,filterSet:n,FACET_ACC:a,dataOpts:s={},labelFor:r=null}){let i=null,l=null;function c(){return l||(l=(async()=>{var ee,K,z;const $=s.source||Kt.activeSource,L=((ee=Kt==null?void 0:Kt.sources)==null?void 0:ee[$])||{},w=Array.isArray(L.exportFields)&&L.exportFields.length?L.exportFields:as,F=((K=L.endpoints)==null?void 0:K.bulk)||"/api/people-groups/list",D=((z=L.queryParams)==null?void 0:z.lang)||"en",ne=`${jr()}${F}?fields=${w.join(",")}&lang=${D}`,B=await fetch(ne,{cache:"no-store"});if(!B.ok)throw new Error(`export list HTTP ${B.status}`);const Y=await B.json(),pe=Array.isArray(Y)?Y:Y.posts||Y.data||Y.results||[],M=new Map;for(const re of pe){const j=re&&(re.slug||re.id);j&&M.set(j,re)}return i=M,M})().catch($=>{throw l=null,$}),l)}function u($){if(!i)return $;const L=i.get($&&($.slug||$.id));return L?{...$,...L}:$}function p(){if(o&&o.size)return[...o].map(L=>e.value.get(L)).filter(Boolean);const $=Object.keys(n);return $.length?(t.value||[]).filter(L=>$.every(w=>{const F=a[w];return F?F(L)===n[w]:!0})):t.value||[]}function g(){return o&&o.size?`selection (${o.size})`:Object.keys(n).length?"filter result":"all"}function y($){return $==null?$:Array.isArray($)?$.map(L=>y(L)).filter(L=>L!==""&&L!==null&&L!==void 0).join(" | "):typeof $=="object"?$.label??$.value??$.text??$.name??$.link??JSON.stringify($):$}function A($){const L={};for(const w of Object.keys($))L[w]=y($[w]);return L}function k($){let L=$==null?"":String($);return/^[=+\-@]/.test(L)&&(L="'"+L),/[",\n\r]/.test(L)&&(L='"'+L.replace(/"/g,'""')+'"'),L}function S(){const $=p().map(u).map(A),L=$.reduce((B,Y)=>(Object.keys(Y).forEach(pe=>B.add(pe)),B),new Set),w=[...as.filter(B=>L.has(B)),...[...L].filter(B=>!as.includes(B))],F=Object.entries(n).map(([B,Y])=>`${B}=${r?r(B,Y):Y}`).join(" | ")||"none",D=`# Research Dashboard export — scope: ${g()}; filters: ${F}; rows: ${$.length}`;return[w.map(k).join(","),...$.map(B=>w.map(Y=>k(B[Y])).join(",")),D].join(`\r `)}const C={rows:0,clipboard:!1,downloaded:!1,at:0,fields:0,wide:!1};function f(){const $=S(),L=p().length,w=($.split(`\r -`)[0]||"").split(",").length;try{typeof window<"u"&&(window.__rdashLastCsv=$)}catch{}let F=!1,U=!1;try{typeof navigator<"u"&&navigator.clipboard&&navigator.clipboard.writeText&&(navigator.clipboard.writeText($).catch(()=>{}),F=!0)}catch{}try{const ne=new Blob([$],{type:"text/csv;charset=utf-8"}),z=URL.createObjectURL(ne),Y=document.createElement("a");Y.href=z,Y.download="research-dashboard.csv",Y.style.display="none",document.body.appendChild(Y),Y.click(),U=!0,setTimeout(()=>{try{URL.revokeObjectURL(z),Y.remove()}catch{}},200)}catch{}Object.assign(C,{rows:L,clipboard:F,downloaded:U,fields:w,wide:!!i,at:typeof performance<"u"?performance.now():0});try{window.__rdashExportStatus={rows:L,clipboard:F,downloaded:U,fields:w,wide:!!i}}catch{}return{csv:$,rows:L,clipboard:F,downloaded:U,fields:w,wide:!!i}}async function b(){try{await c()}catch{}return f()}function d(){try{return c()}catch{return null}}return{exportCsv:f,exportCsvAsync:b,buildCsv:S,pickRows:p,scopeLabel:g,lastExport:C,prefetchExportFields:d,EXPORT_FIELDS:as}}const tv="#6b7280";function ov(){const e=os(Lo.AFFINITY_BLOCK);return e&&e.propertyKey==="affinityBlock"&&e.palette?e.palette:{}}function nv(e,t){const o=ov();return e&&o[e]?o[e]:tv}function av(e){return(e==null?void 0:e.properties)||e||{}}function Gr(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function sv(e){var t;return String(e.affinityBlock||Gr((t=e._raw)==null?void 0:t.rop1)||"").trim()}function rv(e){var t;return String(e.affinityBlockLabel||((t=e._raw)!=null&&t.rop1&&typeof e._raw.rop1=="object"?e._raw.rop1.label:"")||"").trim()}function iv(e){var t;return String(e.cluster||Gr((t=e._raw)==null?void 0:t.imb_reg_of_people_2)||"").trim()}function lv(e){var t;return String(e.clusterLabel||((t=e._raw)!=null&&t.imb_reg_of_people_2&&typeof e._raw.imb_reg_of_people_2=="object"?e._raw.imb_reg_of_people_2.label:"")||"").trim()}function cv(e){var t;return String(e.peopleGroup||Gr((t=e._raw)==null?void 0:t.imb_reg_of_people_25)||"").trim()}function uv(e){var t;return String(e.peopleGroupLabel||((t=e._raw)!=null&&t.imb_reg_of_people_25&&typeof e._raw.imb_reg_of_people_25=="object"?e._raw.imb_reg_of_people_25.label:"")||e.name||"").trim()}function dv(e){var t;return String(e.uniqueId||e.slug||((t=e._raw)==null?void 0:t.slug)||"").trim()}function pv(e){var t;return String(e.name||e.displayName||((t=e._raw)==null?void 0:t.name)||"").trim()}function gv(e){var o;const t=Number(e.population??e.populationNum??((o=e._raw)==null?void 0:o.population)??0);return Number.isFinite(t)?t:0}function fv(e){return String(e.countryName||e.country||e.countryIsoLabel||e.countryIso||"").trim()}function hv(e){const t=re(()=>{const s=e&&e.value||[],r=new Map;for(const i of s){const l=av(i),c=sv(l),u=rv(l)||c||"— Unknown —",p=iv(l),g=lv(l)||p||"— Unknown —",y=cv(l),A=uv(l)||y||"— Unknown —",k=dv(l),S=pv(l)||k,C=gv(l),f=fv(l);if(!k)continue;let b=r.get(c||"__unknown__");b||(b={code:c,label:u,count:0,pop:0,memberIds:[],clusters:new Map},r.set(c||"__unknown__",b)),b.count+=1,b.pop+=C,b.memberIds.push(k);let d=b.clusters.get(p||"__unknown__");d||(d={code:p,label:g,count:0,pop:0,memberIds:[],peopleGroups:new Map},b.clusters.set(p||"__unknown__",d)),d.count+=1,d.pop+=C,d.memberIds.push(k);let $=d.peopleGroups.get(y||"__unknown__");$||($={code:y,label:A,count:0,pop:0,memberIds:[],instances:[]},d.peopleGroups.set(y||"__unknown__",$)),$.count+=1,$.pop+=C,$.memberIds.push(k),$.instances.push({id:k,name:S,country:f,pop:C})}return r}),o=s=>s&&s.length?["in",["get","uniqueId"],["literal",s]]:["==",["get","uniqueId"],"__none__"],n=re(()=>{const s=t.value,r=[];for(const i of s.values()){const l=nv(i.code,i.label),c={id:`bloc:${i.code||i.label}`,label:i.label,color:l,count:i.count,pop:i.pop,filter:o(i.memberIds),children:[]};for(const u of i.clusters.values()){const p={id:`cluster:${i.code}__${u.code||u.label}`,label:`${u.label} (Cluster)`,color:l,count:u.count,pop:u.pop,filter:o(u.memberIds),children:[]};for(const g of u.peopleGroups.values()){const y={id:`pg:${i.code}__${u.code}__${g.code||g.label}`,label:`${g.label} (PG)`,color:l,count:g.count,pop:g.pop,filter:o(g.memberIds),children:[]};g.instances.sort((A,k)=>k.pop-A.pop||A.country.localeCompare(k.country));for(const A of g.instances)y.children.push({id:`pgic:${A.id}`,label:`${A.country?`${A.name}, ${A.country}`:A.name} (PGIC)`,color:l,count:1,pop:A.pop,filter:["==",["get","uniqueId"],A.id],children:[]});p.children.push(y)}p.children.sort((g,y)=>y.count-g.count||y.pop-g.pop),c.children.push(p)}c.children.sort((u,p)=>p.count-u.count||p.pop-u.pop),r.push(c)}return r.sort((i,l)=>l.count-i.count||l.pop-i.pop),r});function a(s){if(typeof window>"u"||typeof window.CustomEvent!="function")return;if(!s){window.dispatchEvent(new CustomEvent("legend:highlight",{detail:{kind:null}}));return}const r=String(s.id||""),i={kind:null,label:s.label,filterExpr:s.filter};r.startsWith("bloc:")?i.kind="bloc":r.startsWith("cluster:")?i.kind="cluster":r.startsWith("pg:")?i.kind="people-group":r.startsWith("pgic:")&&(i.kind="people-group-in-country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:i}))}return{aggregated:t,affinityTree:n,highlight:a}}function sa(e,t,o){const n=re(()=>{const l=t&&o&&t.sources&&t.sources[o];return l&&l.features||[]}),{aggregated:a}=hv(n),s=re(()=>{const l=(e&&e.facetRail||[]).find(c=>c.tree==="affinity");return l&&l.drill||[]}),r=re(()=>{const[l,c,u]=s.value,p=new Map,g=new Map,y=new Map;for(const k of a.value.values()){k.code&&p.set(k.code,k.label);for(const S of k.clusters.values()){S.code&&g.set(S.code,S.label);for(const C of S.peopleGroups.values())C.code&&y.set(C.code,C.label)}}const A={};return l&&(A[l]=p),c&&(A[c]=g),u&&(A[u]=y),A});function i(l,c){const u=r.value[l];return u&&u.get(c)||c}return{normalizedFeatures:n,affinityAgg:a,affinityLabelMaps:r,treeFacetKeys:s,labelFor:i}}class Hu{constructor(t={}){this.sourcesConfig=null,this.activeSource=null,this.rawData=[],this.normalizedData=[],this.dataByUniqueId=new Map,this.baseUrl=typeof window<"u"&&window.MAP_APP_BASE_URL||"./",this.locale=t.locale||null,this.cache=new Map,this.cacheEnabled=!0,this.cacheTTL=5*60*1e3}async init(){return this.sourcesConfig=Kt,this.sourcesConfig}getActiveSourceId(){var t;return((t=this.sourcesConfig)==null?void 0:t.activeSource)||"doxa-csv"}getSourceConfig(t){var o,n;return(n=(o=this.sourcesConfig)==null?void 0:o.sources)==null?void 0:n[t]}async setActiveSource(t){const o=this.getSourceConfig(t);if(!o)throw new Error(`Source not found: ${t}`);if(this.activeSource=o,this.cacheEnabled&&this.cache.has(t)){const n=this.cache.get(t);return this.normalizedData=n.normalizedData,this.dataByUniqueId=n.dataByUniqueId,this.normalizedData}return o.type==="csv"?await this.loadCSVData(o):o.type==="api"?await this.loadAPIData(o):o.type==="rest-api"&&await this.loadRestApiData(o),this.cacheEnabled&&this.cache.set(t,{normalizedData:this.normalizedData,dataByUniqueId:this.dataByUniqueId,timestamp:Date.now()}),this.normalizedData}clearCache(t=null){t?this.cache.delete(t):this.cache.clear()}isCached(t){return this.cache.has(t)}async loadActiveSource(){return this.sourcesConfig||await this.init(),this.setActiveSource(this.getActiveSourceId())}parseCSV(t){const o=[],n=[];let a="",s=!1,r=[],i=!0;for(let l=0;l{}),F=!0)}catch{}try{const ne=new Blob([$],{type:"text/csv;charset=utf-8"}),B=URL.createObjectURL(ne),Y=document.createElement("a");Y.href=B,Y.download="research-dashboard.csv",Y.style.display="none",document.body.appendChild(Y),Y.click(),D=!0,setTimeout(()=>{try{URL.revokeObjectURL(B),Y.remove()}catch{}},200)}catch{}Object.assign(C,{rows:L,clipboard:F,downloaded:D,fields:w,wide:!!i,at:typeof performance<"u"?performance.now():0});try{window.__rdashExportStatus={rows:L,clipboard:F,downloaded:D,fields:w,wide:!!i}}catch{}return{csv:$,rows:L,clipboard:F,downloaded:D,fields:w,wide:!!i}}async function b(){try{await c()}catch{}return f()}function d(){try{return c()}catch{return null}}return{exportCsv:f,exportCsvAsync:b,buildCsv:S,pickRows:p,scopeLabel:g,lastExport:C,prefetchExportFields:d,EXPORT_FIELDS:as}}const nv="#6b7280";function av(){const e=os(Lo.AFFINITY_BLOCK);return e&&e.propertyKey==="affinityBlock"&&e.palette?e.palette:{}}function sv(e,t){const o=av();return e&&o[e]?o[e]:nv}function rv(e){return(e==null?void 0:e.properties)||e||{}}function Gr(e){return e&&typeof e=="object"&&"label"in e?e.label||e.value||"":e}function iv(e){var t;return String(e.affinityBlock||Gr((t=e._raw)==null?void 0:t.rop1)||"").trim()}function lv(e){var t;return String(e.affinityBlockLabel||((t=e._raw)!=null&&t.rop1&&typeof e._raw.rop1=="object"?e._raw.rop1.label:"")||"").trim()}function cv(e){var t;return String(e.cluster||Gr((t=e._raw)==null?void 0:t.imb_reg_of_people_2)||"").trim()}function uv(e){var t;return String(e.clusterLabel||((t=e._raw)!=null&&t.imb_reg_of_people_2&&typeof e._raw.imb_reg_of_people_2=="object"?e._raw.imb_reg_of_people_2.label:"")||"").trim()}function dv(e){var t;return String(e.peopleGroup||Gr((t=e._raw)==null?void 0:t.imb_reg_of_people_25)||"").trim()}function pv(e){var t;return String(e.peopleGroupLabel||((t=e._raw)!=null&&t.imb_reg_of_people_25&&typeof e._raw.imb_reg_of_people_25=="object"?e._raw.imb_reg_of_people_25.label:"")||e.name||"").trim()}function gv(e){var t;return String(e.uniqueId||e.slug||((t=e._raw)==null?void 0:t.slug)||"").trim()}function fv(e){var t;return String(e.name||e.displayName||((t=e._raw)==null?void 0:t.name)||"").trim()}function hv(e){var o;const t=Number(e.population??e.populationNum??((o=e._raw)==null?void 0:o.population)??0);return Number.isFinite(t)?t:0}function mv(e){return String(e.countryName||e.country||e.countryIsoLabel||e.countryIso||"").trim()}function bv(e){const t=ie(()=>{const s=e&&e.value||[],r=new Map;for(const i of s){const l=rv(i),c=iv(l),u=lv(l)||c||"— Unknown —",p=cv(l),g=uv(l)||p||"— Unknown —",y=dv(l),A=pv(l)||y||"— Unknown —",k=gv(l),S=fv(l)||k,C=hv(l),f=mv(l);if(!k)continue;let b=r.get(c||"__unknown__");b||(b={code:c,label:u,count:0,pop:0,memberIds:[],clusters:new Map},r.set(c||"__unknown__",b)),b.count+=1,b.pop+=C,b.memberIds.push(k);let d=b.clusters.get(p||"__unknown__");d||(d={code:p,label:g,count:0,pop:0,memberIds:[],peopleGroups:new Map},b.clusters.set(p||"__unknown__",d)),d.count+=1,d.pop+=C,d.memberIds.push(k);let $=d.peopleGroups.get(y||"__unknown__");$||($={code:y,label:A,count:0,pop:0,memberIds:[],instances:[]},d.peopleGroups.set(y||"__unknown__",$)),$.count+=1,$.pop+=C,$.memberIds.push(k),$.instances.push({id:k,name:S,country:f,pop:C})}return r}),o=s=>s&&s.length?["in",["get","uniqueId"],["literal",s]]:["==",["get","uniqueId"],"__none__"],n=ie(()=>{const s=t.value,r=[];for(const i of s.values()){const l=sv(i.code,i.label),c={id:`bloc:${i.code||i.label}`,label:i.label,color:l,count:i.count,pop:i.pop,filter:o(i.memberIds),children:[]};for(const u of i.clusters.values()){const p={id:`cluster:${i.code}__${u.code||u.label}`,label:`${u.label} (Cluster)`,color:l,count:u.count,pop:u.pop,filter:o(u.memberIds),children:[]};for(const g of u.peopleGroups.values()){const y={id:`pg:${i.code}__${u.code}__${g.code||g.label}`,label:`${g.label} (PG)`,color:l,count:g.count,pop:g.pop,filter:o(g.memberIds),children:[]};g.instances.sort((A,k)=>k.pop-A.pop||A.country.localeCompare(k.country));for(const A of g.instances)y.children.push({id:`pgic:${A.id}`,label:`${A.country?`${A.name}, ${A.country}`:A.name} (PGIC)`,color:l,count:1,pop:A.pop,filter:["==",["get","uniqueId"],A.id],children:[]});p.children.push(y)}p.children.sort((g,y)=>y.count-g.count||y.pop-g.pop),c.children.push(p)}c.children.sort((u,p)=>p.count-u.count||p.pop-u.pop),r.push(c)}return r.sort((i,l)=>l.count-i.count||l.pop-i.pop),r});function a(s){if(typeof window>"u"||typeof window.CustomEvent!="function")return;if(!s){window.dispatchEvent(new CustomEvent("legend:highlight",{detail:{kind:null}}));return}const r=String(s.id||""),i={kind:null,label:s.label,filterExpr:s.filter};r.startsWith("bloc:")?i.kind="bloc":r.startsWith("cluster:")?i.kind="cluster":r.startsWith("pg:")?i.kind="people-group":r.startsWith("pgic:")&&(i.kind="people-group-in-country"),window.dispatchEvent(new CustomEvent("legend:highlight",{detail:i}))}return{aggregated:t,affinityTree:n,highlight:a}}function sa(e,t,o){const n=ie(()=>{const l=t&&o&&t.sources&&t.sources[o];return l&&l.features||[]}),{aggregated:a}=bv(n),s=ie(()=>{const l=(e&&e.facetRail||[]).find(c=>c.tree==="affinity");return l&&l.drill||[]}),r=ie(()=>{const[l,c,u]=s.value,p=new Map,g=new Map,y=new Map;for(const k of a.value.values()){k.code&&p.set(k.code,k.label);for(const S of k.clusters.values()){S.code&&g.set(S.code,S.label);for(const C of S.peopleGroups.values())C.code&&y.set(C.code,C.label)}}const A={};return l&&(A[l]=p),c&&(A[c]=g),u&&(A[u]=y),A});function i(l,c){const u=r.value[l];return u&&u.get(c)||c}return{normalizedFeatures:n,affinityAgg:a,affinityLabelMaps:r,treeFacetKeys:s,labelFor:i}}class Hu{constructor(t={}){this.sourcesConfig=null,this.activeSource=null,this.rawData=[],this.normalizedData=[],this.dataByUniqueId=new Map,this.baseUrl=typeof window<"u"&&window.MAP_APP_BASE_URL||"./",this.locale=t.locale||null,this.cache=new Map,this.cacheEnabled=!0,this.cacheTTL=5*60*1e3}async init(){return this.sourcesConfig=Kt,this.sourcesConfig}getActiveSourceId(){var t;return((t=this.sourcesConfig)==null?void 0:t.activeSource)||"doxa-csv"}getSourceConfig(t){var o,n;return(n=(o=this.sourcesConfig)==null?void 0:o.sources)==null?void 0:n[t]}async setActiveSource(t){const o=this.getSourceConfig(t);if(!o)throw new Error(`Source not found: ${t}`);if(this.activeSource=o,this.cacheEnabled&&this.cache.has(t)){const n=this.cache.get(t);return this.normalizedData=n.normalizedData,this.dataByUniqueId=n.dataByUniqueId,this.normalizedData}return o.type==="csv"?await this.loadCSVData(o):o.type==="api"?await this.loadAPIData(o):o.type==="rest-api"&&await this.loadRestApiData(o),this.cacheEnabled&&this.cache.set(t,{normalizedData:this.normalizedData,dataByUniqueId:this.dataByUniqueId,timestamp:Date.now()}),this.normalizedData}clearCache(t=null){t?this.cache.delete(t):this.cache.clear()}isCached(t){return this.cache.has(t)}async loadActiveSource(){return this.sourcesConfig||await this.init(),this.setActiveSource(this.getActiveSourceId())}parseCSV(t){const o=[],n=[];let a="",s=!1,r=[],i=!0;for(let l=0;l0){if(r.push(a.trim()),a="",i)n.push(...r),i=!1;else if(r.length>1){const p={};n.forEach((g,y)=>{p[g]=r[y]||""}),o.push(p)}r=[]}}else a+=c}if((a||r.length>0)&&(r.push(a.trim()),!i&&r.length>1)){const l={};n.forEach((c,u)=>{l[c]=r[u]||""}),o.push(l)}return{headers:n,data:o}}async loadCSVData(t){try{const n=await(await fetch(this.baseUrl+t.path)).text(),{headers:a,data:s}=this.parseCSV(n);return this.rawData=s,this.validateFieldMappings(t.fieldMappings,a,t.name),this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load CSV data:",o),o}}validateFieldMappings(t,o,n){const a=new Set(o.map(r=>r.trim())),s=[];for(const[r,i]of Object.entries(t||{}))if(Array.isArray(i))for(const l of i)a.has(l)||s.push({systemField:r,sourceField:l,isComposite:!0});else i&&!a.has(i)&&s.push({systemField:r,sourceField:i,isComposite:!1});s.length>0&&console.warn(`[DataSourceManager] ${n}: missing CSV columns:`,s)}async loadAPIData(t){try{const n=await(await fetch(t.url||t.endpoint)).json();return this.rawData=Array.isArray(n)?n:n.posts||n.data||n.peopleGroups||n.results||[],this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load API data:",o),o}}async loadRestApiData(t){var l,c;const o=jr(),n=((l=t.endpoints)==null?void 0:l.bulk)||"/api/people-groups/list",a=((c=t.defaultFields)==null?void 0:c.join(","))||"",s=[];a&&s.push(`fields=${a}`);const r={...t.queryParams||{}};this.locale&&(r.lang=this.locale);for(const[u,p]of Object.entries(r))s.push(`${u}=${encodeURIComponent(p)}`);const i=`${o}${n}?${s.join("&")}`;try{const u=await fetch(i);if(!u.ok)throw new Error(`HTTP ${u.status}: ${u.statusText}`);const p=u.headers.get("content-type")||"";if(!p.includes("application/json"))throw new Error(`API returned "${p}" instead of JSON. Server at ${o} may be down or misconfigured.`);const g=await u.json();return this.rawData=Array.isArray(g)?g:g.posts||g.data||g.results||[],this.normalizeData(t),this.normalizedData}catch(u){throw console.error(`[rest-api] Failed to load from ${t.id}:`,u),u}}normalizeData(t){const o=t.fieldMappings||{};this.normalizedData=[],this.dataByUniqueId=new Map;for(const n of this.rawData){const a={};for(const[l,c]of Object.entries(o))if(Array.isArray(c)){const u=c.map(p=>this.getFieldValue(n,p));a[l]=u.join("_")}else a[l]=this.getFieldValue(n,c);if(a.latitude=parseFloat(a.latitude)||0,a.longitude=parseFloat(a.longitude)||0,a.latitude===0&&a.longitude===0)continue;a.populationNum=this.parsePopulation(a.population),a.imageUrl=this.getImageUrl(a,t.imageConfig);const s=a.engagementStatus;s!=null&&(typeof s=="object"&&"value"in s?(a.engagementStatusLabel=s.label||s.value,a.engagementStatus=s.value==="engaged"):a.engagementStatus=s===!0||s===1||s==="1"||s==="true"||typeof s=="number"&&s>0||typeof s=="string"&&parseInt(s,10)>0);const r=a.adoptionStatus;r!=null&&(a.adoptionStatus=r===!0||r===1||r==="1"||r==="true"||typeof r=="object"&&!!(r!=null&&r.value)||typeof r=="number"&&r>0||typeof r=="string"&&parseInt(r,10)>0);const i=["doxaRegion","wagfRegion","wagfBlock","wagfMember","affinityBlock","cluster","peopleGroup","countryIso","religion","religionCode"];for(const l of i){const c=a[l];c!=null&&typeof c=="object"&&"value"in c?(a[l+"Label"]=c.label||c.value,a[l]=c.value):c!=null&&typeof c=="string"&&c!==""&&(a[l+"Label"]||(a[l+"Label"]=c))}a.countryName=a.countryIsoLabel||a.country||a.countryIso||"",a.religionName=a.religionLabel||a.religion||"",a._raw=n,this.normalizedData.push(a),this.dataByUniqueId.set(a.uniqueId,a)}this.rawData=null}getFieldValue(t,o){if(!o)return"";if(t[o]!==void 0)return t[o];const n=o.trim();if(t[n]!==void 0)return t[n];for(const a of Object.keys(t))if(a.trim()===n||a.includes(n)||n.includes(a.trim()))return t[a];return""}parsePopulation(t){if(!t)return 0;const o=String(t).replace(/,/g,"").trim(),n=parseInt(o,10);return isNaN(n)?0:n}getImageUrl(t,o){if(!o)return"";const n=o.placeholderUrl||"",a=t[o.useField];return a&&String(a).trim()&&!String(a).includes("NoImageAvailable")?a:n}getData(){return this.normalizedData}getByUniqueId(t){return this.dataByUniqueId.get(t)}getByCoordinates(t,o,n=1e-4){return this.normalizedData.find(a=>Math.abs(a.latitude-t)o.peopleGroupId===t)}getLanguageFamilies(){const t=new Set;return this.normalizedData.forEach(o=>{o.languageFamily&&t.add(o.languageFamily)}),Array.from(t).sort()}getDataByLanguageFamily(){const t={};return this.normalizedData.forEach(o=>{const n=o.languageFamily||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getDataByRegion(){const t={};return this.normalizedData.forEach(o=>{const n=o.doxaRegion||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getStats(){return{totalRecords:this.normalizedData.length,withPeopleId3:this.normalizedData.filter(t=>t.peopleId3).length,withPhotos:this.normalizedData.filter(t=>t.imageUrl&&!String(t.imageUrl).includes("NoImageAvailable")).length,languageFamilies:this.getLanguageFamilies().length,countries:new Set(this.normalizedData.map(t=>t.country)).size,regions:Object.keys(this.getDataByRegion()).length}}}new Hu;const Ku=(e,t)=>Object.fromEntries(Object.entries(e||{}).map(([o,n])=>[o,t(n,o)])),Xu=e=>e==null?"—":Number(e).toLocaleString("en-US");function ra(e){const t=Ku(e.facets,a=>a.get),o=Object.fromEntries((e.columns||[]).map(a=>[a.key,a.get])),n=Array.isArray(e.searchKeys)?e.searchKeys:null;return n?n.map(a=>t[a]||o[a]).filter(a=>typeof a=="function"):(e.columns||[]).filter(a=>a.type!=="num"&&typeof a.get=="function").map(a=>a.get)}function ia(e,t){const o=(a,s)=>{var i;const r=(((i=e==null?void 0:e.searchTerm)==null?void 0:i.value)||"").trim();if(!r)return!0;for(const l of t){const c=l(a);if(c!=null&&s(String(c),r,{threshold:.4,minMatchCharLength:3}))return!0}return!1},n=a=>o(a,Yy);return n.exact=a=>o(a,Ky),n.active=()=>{var a;return!!(((a=e==null?void 0:e.searchTerm)==null?void 0:a.value)||"").trim()},n.term=()=>{var a;return(((a=e==null?void 0:e.searchTerm)==null?void 0:a.value)||"").trim()},n.accessors=t,n}function la(e,t){if(!t.active())return e;const o=e.filter(t.exact);if(o.length)return o;const n=t.term(),a=new Set;for(const r of t.accessors)for(const i of e){const l=r(i);l!=null&&l!==""&&a.add(String(l))}const s=new Set(Wu(n,[...a],{threshold:.4}));if(s.size){const r=e.filter(i=>t.accessors.some(l=>{const c=l(i);return c!=null&&s.has(String(c))}));if(r.length)return r}return e.filter(t)}function mv(e,t,o,n,a){return(e||[]).map(s=>{var l,c;let r,i;if(s.kind==="count")r=t.length,s.showDelta&&(i=Math.max(0,o.length-t.length));else if(s.kind==="sum")r=t.reduce((u,p)=>u+(Number(p[s.field])||0),0);else if(s.kind==="pct")r=t.length?Math.round(t.filter(s.test).length/t.length*100)+"%":"—";else if(s.kind==="distinct"){const u=s.via?(c=(l=a==null?void 0:a.facets)==null?void 0:l[s.field])==null?void 0:c[s.via]:n[s.field],p=new Set;t.forEach(g=>{const y=u?u(g):g[s.field];y&&p.add(y)}),r=p.size}return{id:s.id,label:s.label,kind:s.kind,value:r,delta:i}})}function bv(e){const t=de(null),o=de(!1),n=de(!1),a=de(!1),s=de("map"),r=[{k:"map",get l(){return Se("dashboard.map")||"Map"}},{k:"facets",get l(){return Se("dashboard.filters")||"Filters"}},{k:"table",get l(){return Se("dashboard.table")||"Table"}},{k:"charts",get l(){return Se("dashboard.charts")||"Charts"}}];let i=null;const l=de(!1),c=de(!1),u=de(!1);yt(()=>{t.value&&(i=new ResizeObserver(()=>{const S=t.value.clientWidth;o.value=S<760,n.value=S>=760&&S<1180,a.value=S>=760&&S<980}),i.observe(t.value)),e&&e.on("toggleTable",S=>{l.value=!!S}),e&&e.on("toggleFacet",S=>{c.value=!!S}),e&&e.on("toggleRail",S=>{u.value=!!S})}),It(()=>i&&i.disconnect());function p(S){const C=S.target.closest("[data-view]");C&&(s.value=C.getAttribute("data-view"))}const g=re(()=>!o.value||s.value==="facets"),y=re(()=>!o.value||s.value==="map"),A=re(()=>!o.value||s.value==="table"),k=re(()=>!o.value||s.value==="charts");return{shell:t,isNarrow:o,slimRail:n,slimFacet:a,mobileView:s,SEG:r,tableCollapsed:l,facetCollapsed:c,railCollapsed:u,setView:p,showFacets:g,showMap:y,showTable:A,showCharts:k}}const $v=e=>String(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40),_v=e=>String(e).replace(/[%;:*+]/g,t=>"%"+t.charCodeAt(0).toString(16).toUpperCase()).replace(/ /g,"+"),yv=e=>{try{return decodeURIComponent(String(e).replace(/\+/g,"%20"))}catch{return String(e).replace(/\+/g," ")}};function vv(e,t){function o(){try{const n=Object.entries(e.filterSet).map(([a,s])=>{const r=typeof t=="function"?t(a,s):null,i=r&&String(r)!==String(s)?$v(r):"";return a+":"+_v(s)+(i?"*"+i:"")});typeof location<"u"&&history.replaceState(null,"","#f="+n.join(";"))}catch{}}lt(()=>({...e.filterSet}),o,{deep:!0}),yt(()=>{try{const n=typeof location<"u"&&/[#&]f=([^&]+)/.exec(location.hash);if(!n)return;const a=n[1];if(a.startsWith("{")||a.startsWith("%7B")||a.startsWith("%7b")){const s=JSON.parse(decodeURIComponent(a));Object.entries(s).forEach(([r,i])=>e.setFilter(r,i));return}for(const s of a.split(";")){const r=s.indexOf(":");if(r<1)continue;const i=s.slice(0,r),l=yv(s.slice(r+1).split("*")[0]);i&&l&&e.setFilter(i,l)}}catch{}})}function wv(e){var k;const t=Qy();t.configureHierarchy(e);const o=ev(e.data),n=Ku(e.facets,S=>S.get),a=ia(t,ra(e)),s=re(()=>{var d;const S=o.rows.value||[],C=Object.keys(t.filterSet),f=!!(((d=t.searchTerm)==null?void 0:d.value)||"").trim();if(!C.length&&!f)return S;const b=C.length?S.filter($=>C.every(L=>{const w=n[L];return w?w($)===t.filterSet[L]:!0})):S;return la(b,a)}),r=re(()=>mv(e.kpis,s.value,o.rows.value||[],n,e)),i=bv(t),l=o.sourceId||Kt.activeSource,c=((k=Kt.sources)==null?void 0:k[l])||{},u=new Hu,p=re(()=>{const S=o.rows.value||[];return S.length?(u.rawData=S.slice(),u.normalizeData(c),u.normalizedData):[]}),g={sources:{[l]:{get features(){return p.value}}}},{labelFor:y}=sa(e,g,l);vv(t,y);const A=zr({rowStore:o.rowStore,rows:o.rows,selectionSet:t.selectionSet,filterSet:t.filterSet,FACET_ACC:n,dataOpts:e.data,labelFor:y});return oo("selectionBus",t),oo("dashboardData",o),oo("dashboardConfig",e),oo("dataStore",g),oo("searchSourceId",l),yt(()=>o.load()),{bus:t,data:o,FACET_ACC:n,filteredRows:s,kpis:r,exporter:A,responsive:i}}const xv={facetW:296,railW:296,tableH:"34%",mapH:340,shellH:562},kv={facetW:[160,420],railW:[200,520],tableH:[12,70],mapH:[220,1400],shellH:[400,2600]},Yu=32,Zu=120,At=(e,[t,o])=>Math.min(o,Math.max(t,e)),ss=(e,t)=>{const o=parseFloat(String(e));return Number.isFinite(o)?o:t};function Lv(e={}){const{shellRef:t,bus:o=null,isNarrow:n=!1,pageScroll:a=!1,storageKey:s="rd-dashboard-layout-v6"}=e,r={...xv,...e.defaults||{}},i={...kv,...e.clamps||{}},l=de(r.facetW),c=de(r.railW),u=de(r.tableH),p=de(r.mapH),g=de(r.shellH),y=de(!1),A=de(!1),k=de(!1),S=()=>!!he(n),C=()=>!!he(a);function f(){const O=t&&t.value;if(!O)return g.value;const V=parseFloat(getComputedStyle(O).getPropertyValue("--rd-shell-h"));if(Number.isFinite(V)&&V>0)return Math.round(V);const D=O.querySelector('[data-region="map"]'),ae=O.querySelector('[data-region="table"]');if(!D||!ae)return g.value;const ge=D.getBoundingClientRect().height+ae.getBoundingClientRect().height;return ge>0?Math.round(ge):g.value}function b(){const O=t&&t.value;O&&(y.value&&(O.style.setProperty("--facet-w",l.value+"px"),O.style.setProperty("--rail-w",c.value+"px"),O.style.setProperty("--table-h",u.value)),A.value&&O.style.setProperty("--rd-map-h",p.value+"px"),k.value&&O.style.setProperty("--rd-shell-h",g.value+"px"))}function d(){const O=t&&t.value;O&&(O.style.removeProperty("--facet-w"),O.style.removeProperty("--rail-w"),O.style.removeProperty("--table-h"),O.style.removeProperty("--rd-map-h"),O.style.removeProperty("--rd-shell-h"))}function $(){try{localStorage.setItem(s,JSON.stringify({facetW:l.value,railW:c.value,tableH:u.value,mapH:p.value,shellH:g.value}))}catch{}}function L(){try{const O=localStorage.getItem(s);if(!O)return!1;const V=JSON.parse(O);return Number.isFinite(V.facetW)&&(l.value=At(V.facetW,i.facetW)),Number.isFinite(V.railW)&&(c.value=At(V.railW,i.railW)),V.tableH!=null&&(u.value=At(ss(V.tableH,ss(r.tableH,34)),i.tableH)+"%"),y.value=!0,Number.isFinite(V.shellH)&&(g.value=At(V.shellH,i.shellH),k.value=!0),Number.isFinite(V.mapH)&&(p.value=At(V.mapH,i.mapH),A.value=!0),!0}catch{return!1}}function w(){try{localStorage.removeItem(s)}catch{}l.value=r.facetW,c.value=r.railW,u.value=r.tableH,p.value=r.mapH,g.value=r.shellH,y.value=!1,A.value=!1,k.value=!1,d()}const F=de(!1);function U(){if(F.value)return;F.value=!0;const O=t&&t.value;if(O&&O.setAttribute("data-rd-resizing","1"),o&&typeof o.emit=="function")try{o.emit("layoutResizing",!0)}catch{}}function ne(){if(!F.value)return;F.value=!1;const O=t&&t.value;if(O&&O.removeAttribute("data-rd-resizing"),o&&typeof o.emit=="function")try{o.emit("layoutResizing",!1)}catch{}}function z(O,V){if(S())return;const D=t&&t.value;if(!D)return;V.preventDefault();const ae=D.getBoundingClientRect(),ge=V.clientX,ke=l.value,be=c.value,$e=V.currentTarget,Pe=O==="table"&&C(),ce=O==="shell"&&C();let _e=0,xe=i.mapH[1];if(Pe){const oe=D.querySelector('[data-region="map"]'),h=oe?oe.getBoundingClientRect():null;_e=h?h.top:V.clientY-p.value,xe=Math.max(i.mapH[0],g.value-(Yu+Zu))}const _=V.clientY,P=ce?f():g.value;try{$e&&$e.setPointerCapture&&$e.setPointerCapture(V.pointerId)}catch{}U();let x=0,G=null;function ee(){if(x=0,!G)return;const oe=G;if(G=null,O==="facet")l.value=Math.round(At(ke+(oe.clientX-ge),i.facetW)),y.value=!0;else if(O==="rail")c.value=Math.round(At(be-(oe.clientX-ge),i.railW)),y.value=!0;else if(Pe)p.value=Math.round(At(oe.clientY-_e,[i.mapH[0],xe])),A.value=!0;else if(O==="table"){const h=(ae.bottom-oe.clientY)/ae.height*100;u.value=Math.round(At(h,i.tableH))+"%",y.value=!0}else ce&&(g.value=Math.round(At(P+(oe.clientY-_),i.shellH)),k.value=!0);b()}function te(oe){G={clientX:oe.clientX,clientY:oe.clientY},x||(x=requestAnimationFrame(ee))}function le(oe){window.removeEventListener("pointermove",te),window.removeEventListener("pointerup",le),window.removeEventListener("pointercancel",le),x&&(cancelAnimationFrame(x),x=0),ee();try{$e&&$e.releasePointerCapture&&$e.releasePointerCapture(oe.pointerId)}catch{}$(),ne()}window.addEventListener("pointermove",te),window.addEventListener("pointerup",le),window.addEventListener("pointercancel",le)}const Y=O=>z("facet",O),fe=O=>z("rail",O),M=O=>z("table",O),Q=O=>z("shell",O),X={facet:16,rail:16,table:24,mapH:24,shellH:24};function B(O,V,D){if(!S()){if(O==="facet")l.value=D?V<0?i.facetW[0]:i.facetW[1]:Math.round(At(l.value+V*X.facet,i.facetW)),y.value=!0;else if(O==="rail")c.value=D?V<0?i.railW[1]:i.railW[0]:Math.round(At(c.value-V*X.rail,i.railW)),y.value=!0;else if(O==="table"&&C()){const ae=Math.max(i.mapH[0],g.value-(Yu+Zu));p.value=D?V<0?i.mapH[0]:ae:Math.round(At(p.value+V*X.mapH,[i.mapH[0],ae])),A.value=!0}else if(O==="table"){const ae=D?V<0?i.tableH[0]:i.tableH[1]:At(ss(u.value,ss(r.tableH,34))-V*X.table/4,i.tableH);u.value=Math.round(ae)+"%",y.value=!0}else O==="shell"&&C()&&(g.value=D?V<0?i.shellH[0]:i.shellH[1]:Math.round(At(g.value+V*X.shellH,i.shellH)),k.value=!0);b(),$()}}function se(O,V){const D=V.key;let ae=0;if(O==="table"||O==="shell"?D==="ArrowUp"?ae=-1:D==="ArrowDown"&&(ae=1):D==="ArrowLeft"?ae=-1:D==="ArrowRight"&&(ae=1),ae){V.preventDefault(),B(O,ae);return}(D==="Home"||D==="End")&&(V.preventDefault(),B(O,D==="Home"?-1:1,!0))}let I=null;return yt(()=>{L()&&b(),o&&typeof o.on=="function"&&(I=o.on("resetLayout",w))}),It(()=>{try{I&&I()}catch{}try{ne()}catch{}}),{facetW:l,railW:c,tableH:u,mapH:p,shellH:g,customized:y,resizing:F,startFacetResize:Y,startRailResize:fe,startTableResize:M,startShellResize:Q,startResize:z,reset:w,applyVars:b,stepResize:B,onResizeKeydown:se}}const Av=".search-box{position:relative;display:flex;align-items:center;margin:0 auto;width:100%;color:var(--dx-muted, #6d766e)}.search-box .search-icon{position:absolute;left:12px;pointer-events:none}.search-box input{width:100%;padding:10px 12px 10px 38px;font-size:.95rem;color:var(--dx-text, #3b463d);background:var(--dx-elevated, #fff);border:1px solid var(--dx-line, #d1d4cd);border-radius:10px;outline:none;box-sizing:border-box}.search-box input:focus{border-color:var(--dx-accent, #92b195);box-shadow:0 0 0 2px var(--dx-accent-weak, rgba(146, 177, 149, .18))}",Sv=["value","placeholder","aria-label"],Ur=kn({__name:"SearchBar",props:{modelValue:{type:String,default:""},placeholder:{type:String,default:"Search…"},ariaLabel:{type:String,default:"Search"},maxWidth:{type:String,default:""}},emits:["update:modelValue","search"],setup(e,{emit:t}){const o=e,n=t,a=re(()=>o.maxWidth?{maxWidth:o.maxWidth}:{});function s(r){const i=r.target.value??"";n("update:modelValue",i),n("search",{value:i})}return(r,i)=>(H(),Z("div",{class:"search-box",style:rt(a.value)},[i[0]||(i[0]=R("svg",{class:"search-icon",width:"18",height:"18",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},[R("circle",{cx:"11",cy:"11",r:"7",fill:"none",stroke:"currentColor","stroke-width":"2"}),R("line",{x1:"16.5",y1:"16.5",x2:"21",y2:"21",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),R("input",{type:"search",value:e.modelValue,placeholder:e.placeholder,"aria-label":e.ariaLabel,onInput:s},null,40,Sv)],4))}},[["styles",[Av]]]),Pv=["title","aria-label","disabled"],Br={__name:"MapControlButton",props:{isDark:{type:Boolean,default:!1},title:{type:String,default:""},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(e){return Ot(` +`&&l++,a||r.length>0){if(r.push(a.trim()),a="",i)n.push(...r),i=!1;else if(r.length>1){const p={};n.forEach((g,y)=>{p[g]=r[y]||""}),o.push(p)}r=[]}}else a+=c}if((a||r.length>0)&&(r.push(a.trim()),!i&&r.length>1)){const l={};n.forEach((c,u)=>{l[c]=r[u]||""}),o.push(l)}return{headers:n,data:o}}async loadCSVData(t){try{const n=await(await fetch(this.baseUrl+t.path)).text(),{headers:a,data:s}=this.parseCSV(n);return this.rawData=s,this.validateFieldMappings(t.fieldMappings,a,t.name),this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load CSV data:",o),o}}validateFieldMappings(t,o,n){const a=new Set(o.map(r=>r.trim())),s=[];for(const[r,i]of Object.entries(t||{}))if(Array.isArray(i))for(const l of i)a.has(l)||s.push({systemField:r,sourceField:l,isComposite:!0});else i&&!a.has(i)&&s.push({systemField:r,sourceField:i,isComposite:!1});s.length>0&&console.warn(`[DataSourceManager] ${n}: missing CSV columns:`,s)}async loadAPIData(t){try{const n=await(await fetch(t.url||t.endpoint)).json();return this.rawData=Array.isArray(n)?n:n.posts||n.data||n.peopleGroups||n.results||[],this.normalizeData(t),this.normalizedData}catch(o){throw console.error("Failed to load API data:",o),o}}async loadRestApiData(t){var l,c;const o=jr(),n=((l=t.endpoints)==null?void 0:l.bulk)||"/api/people-groups/list",a=((c=t.defaultFields)==null?void 0:c.join(","))||"",s=[];a&&s.push(`fields=${a}`);const r={...t.queryParams||{}};this.locale&&(r.lang=this.locale);for(const[u,p]of Object.entries(r))s.push(`${u}=${encodeURIComponent(p)}`);const i=`${o}${n}?${s.join("&")}`;try{const u=await fetch(i);if(!u.ok)throw new Error(`HTTP ${u.status}: ${u.statusText}`);const p=u.headers.get("content-type")||"";if(!p.includes("application/json"))throw new Error(`API returned "${p}" instead of JSON. Server at ${o} may be down or misconfigured.`);const g=await u.json();return this.rawData=Array.isArray(g)?g:g.posts||g.data||g.results||[],this.normalizeData(t),this.normalizedData}catch(u){throw console.error(`[rest-api] Failed to load from ${t.id}:`,u),u}}normalizeData(t){const o=t.fieldMappings||{};this.normalizedData=[],this.dataByUniqueId=new Map;for(const n of this.rawData){const a={};for(const[l,c]of Object.entries(o))if(Array.isArray(c)){const u=c.map(p=>this.getFieldValue(n,p));a[l]=u.join("_")}else a[l]=this.getFieldValue(n,c);if(a.latitude=parseFloat(a.latitude)||0,a.longitude=parseFloat(a.longitude)||0,a.latitude===0&&a.longitude===0)continue;a.populationNum=this.parsePopulation(a.population),a.imageUrl=this.getImageUrl(a,t.imageConfig);const s=a.engagementStatus;s!=null&&(typeof s=="object"&&"value"in s?(a.engagementStatusLabel=s.label||s.value,a.engagementStatus=s.value==="engaged"):a.engagementStatus=s===!0||s===1||s==="1"||s==="true"||typeof s=="number"&&s>0||typeof s=="string"&&parseInt(s,10)>0);const r=a.adoptionStatus;r!=null&&(a.adoptionStatus=r===!0||r===1||r==="1"||r==="true"||typeof r=="object"&&!!(r!=null&&r.value)||typeof r=="number"&&r>0||typeof r=="string"&&parseInt(r,10)>0);const i=["doxaRegion","wagfRegion","wagfBlock","wagfMember","affinityBlock","cluster","peopleGroup","countryIso","religion","religionCode"];for(const l of i){const c=a[l];c!=null&&typeof c=="object"&&"value"in c?(a[l+"Label"]=c.label||c.value,a[l]=c.value):c!=null&&typeof c=="string"&&c!==""&&(a[l+"Label"]||(a[l+"Label"]=c))}a.countryName=a.countryIsoLabel||a.country||a.countryIso||"",a.religionName=a.religionLabel||a.religion||"",a._raw=n,this.normalizedData.push(a),this.dataByUniqueId.set(a.uniqueId,a)}this.rawData=null}getFieldValue(t,o){if(!o)return"";if(t[o]!==void 0)return t[o];const n=o.trim();if(t[n]!==void 0)return t[n];for(const a of Object.keys(t))if(a.trim()===n||a.includes(n)||n.includes(a.trim()))return t[a];return""}parsePopulation(t){if(!t)return 0;const o=String(t).replace(/,/g,"").trim(),n=parseInt(o,10);return isNaN(n)?0:n}getImageUrl(t,o){if(!o)return"";const n=o.placeholderUrl||"",a=t[o.useField];return a&&String(a).trim()&&!String(a).includes("NoImageAvailable")?a:n}getData(){return this.normalizedData}getByUniqueId(t){return this.dataByUniqueId.get(t)}getByCoordinates(t,o,n=1e-4){return this.normalizedData.find(a=>Math.abs(a.latitude-t)o.peopleGroupId===t)}getLanguageFamilies(){const t=new Set;return this.normalizedData.forEach(o=>{o.languageFamily&&t.add(o.languageFamily)}),Array.from(t).sort()}getDataByLanguageFamily(){const t={};return this.normalizedData.forEach(o=>{const n=o.languageFamily||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getDataByRegion(){const t={};return this.normalizedData.forEach(o=>{const n=o.doxaRegion||"Unknown";t[n]||(t[n]=[]),t[n].push(o)}),t}getStats(){return{totalRecords:this.normalizedData.length,withPeopleId3:this.normalizedData.filter(t=>t.peopleId3).length,withPhotos:this.normalizedData.filter(t=>t.imageUrl&&!String(t.imageUrl).includes("NoImageAvailable")).length,languageFamilies:this.getLanguageFamilies().length,countries:new Set(this.normalizedData.map(t=>t.country)).size,regions:Object.keys(this.getDataByRegion()).length}}}new Hu;const Ku=(e,t)=>Object.fromEntries(Object.entries(e||{}).map(([o,n])=>[o,t(n,o)])),Xu=e=>e==null?"—":Number(e).toLocaleString("en-US");function ra(e){const t=Ku(e.facets,a=>a.get),o=Object.fromEntries((e.columns||[]).map(a=>[a.key,a.get])),n=Array.isArray(e.searchKeys)?e.searchKeys:null;return n?n.map(a=>t[a]||o[a]).filter(a=>typeof a=="function"):(e.columns||[]).filter(a=>a.type!=="num"&&typeof a.get=="function").map(a=>a.get)}function ia(e,t){const o=(a,s)=>{var i;const r=(((i=e==null?void 0:e.searchTerm)==null?void 0:i.value)||"").trim();if(!r)return!0;for(const l of t){const c=l(a);if(c!=null&&s(String(c),r,{threshold:.4,minMatchCharLength:3}))return!0}return!1},n=a=>o(a,Jy);return n.exact=a=>o(a,Yy),n.active=()=>{var a;return!!(((a=e==null?void 0:e.searchTerm)==null?void 0:a.value)||"").trim()},n.term=()=>{var a;return(((a=e==null?void 0:e.searchTerm)==null?void 0:a.value)||"").trim()},n.accessors=t,n}function la(e,t){if(!t.active())return e;const o=e.filter(t.exact);if(o.length)return o;const n=t.term(),a=new Set;for(const r of t.accessors)for(const i of e){const l=r(i);l!=null&&l!==""&&a.add(String(l))}const s=new Set(Wu(n,[...a],{threshold:.4}));if(s.size){const r=e.filter(i=>t.accessors.some(l=>{const c=l(i);return c!=null&&s.has(String(c))}));if(r.length)return r}return e.filter(t)}function $v(e,t,o,n,a){return(e||[]).map(s=>{var l,c;let r,i;if(s.kind==="count")r=t.length,s.showDelta&&(i=Math.max(0,o.length-t.length));else if(s.kind==="sum")r=t.reduce((u,p)=>u+(Number(p[s.field])||0),0);else if(s.kind==="pct")r=t.length?Math.round(t.filter(s.test).length/t.length*100)+"%":"—";else if(s.kind==="distinct"){const u=s.via?(c=(l=a==null?void 0:a.facets)==null?void 0:l[s.field])==null?void 0:c[s.via]:n[s.field],p=new Set;t.forEach(g=>{const y=u?u(g):g[s.field];y&&p.add(y)}),r=p.size}return{id:s.id,label:s.label,kind:s.kind,value:r,delta:i}})}function _v(e){const t=de(null),o=de(!1),n=de(!1),a=de(!1),s=de("map"),r=[{k:"map",get l(){return Pe("dashboard.map")||"Map"}},{k:"facets",get l(){return Pe("dashboard.filters")||"Filters"}},{k:"table",get l(){return Pe("dashboard.table")||"Table"}},{k:"charts",get l(){return Pe("dashboard.charts")||"Charts"}}];let i=null;const l=de(!1),c=de(!1),u=de(!1);yt(()=>{t.value&&(i=new ResizeObserver(()=>{const S=t.value.clientWidth;o.value=S<760,n.value=S>=760&&S<1180,a.value=S>=760&&S<980}),i.observe(t.value)),e&&e.on("toggleTable",S=>{l.value=!!S}),e&&e.on("toggleFacet",S=>{c.value=!!S}),e&&e.on("toggleRail",S=>{u.value=!!S})}),It(()=>i&&i.disconnect());function p(S){const C=S.target.closest("[data-view]");C&&(s.value=C.getAttribute("data-view"))}const g=ie(()=>!o.value||s.value==="facets"),y=ie(()=>!o.value||s.value==="map"),A=ie(()=>!o.value||s.value==="table"),k=ie(()=>!o.value||s.value==="charts");return{shell:t,isNarrow:o,slimRail:n,slimFacet:a,mobileView:s,SEG:r,tableCollapsed:l,facetCollapsed:c,railCollapsed:u,setView:p,showFacets:g,showMap:y,showTable:A,showCharts:k}}const yv=e=>String(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,40),vv=e=>String(e).replace(/[%;:*+]/g,t=>"%"+t.charCodeAt(0).toString(16).toUpperCase()).replace(/ /g,"+"),wv=e=>{try{return decodeURIComponent(String(e).replace(/\+/g,"%20"))}catch{return String(e).replace(/\+/g," ")}};function xv(e,t){function o(){try{const n=Object.entries(e.filterSet).map(([a,s])=>{const r=typeof t=="function"?t(a,s):null,i=r&&String(r)!==String(s)?yv(r):"";return a+":"+vv(s)+(i?"*"+i:"")});typeof location<"u"&&history.replaceState(null,"","#f="+n.join(";"))}catch{}}it(()=>({...e.filterSet}),o,{deep:!0}),yt(()=>{try{const n=typeof location<"u"&&/[#&]f=([^&]+)/.exec(location.hash);if(!n)return;const a=n[1];if(a.startsWith("{")||a.startsWith("%7B")||a.startsWith("%7b")){const s=JSON.parse(decodeURIComponent(a));Object.entries(s).forEach(([r,i])=>e.setFilter(r,i));return}for(const s of a.split(";")){const r=s.indexOf(":");if(r<1)continue;const i=s.slice(0,r),l=wv(s.slice(r+1).split("*")[0]);i&&l&&e.setFilter(i,l)}}catch{}})}function kv(e){var k;const t=tv();t.configureHierarchy(e);const o=ov(e.data),n=Ku(e.facets,S=>S.get),a=ia(t,ra(e)),s=ie(()=>{var d;const S=o.rows.value||[],C=Object.keys(t.filterSet),f=!!(((d=t.searchTerm)==null?void 0:d.value)||"").trim();if(!C.length&&!f)return S;const b=C.length?S.filter($=>C.every(L=>{const w=n[L];return w?w($)===t.filterSet[L]:!0})):S;return la(b,a)}),r=ie(()=>$v(e.kpis,s.value,o.rows.value||[],n,e)),i=_v(t),l=o.sourceId||Kt.activeSource,c=((k=Kt.sources)==null?void 0:k[l])||{},u=new Hu,p=ie(()=>{const S=o.rows.value||[];return S.length?(u.rawData=S.slice(),u.normalizeData(c),u.normalizedData):[]}),g={sources:{[l]:{get features(){return p.value}}}},{labelFor:y}=sa(e,g,l);xv(t,y);const A=zr({rowStore:o.rowStore,rows:o.rows,selectionSet:t.selectionSet,filterSet:t.filterSet,FACET_ACC:n,dataOpts:e.data,labelFor:y});return oo("selectionBus",t),oo("dashboardData",o),oo("dashboardConfig",e),oo("dataStore",g),oo("searchSourceId",l),yt(()=>o.load()),{bus:t,data:o,FACET_ACC:n,filteredRows:s,kpis:r,exporter:A,responsive:i}}const Lv={facetW:296,railW:296,tableH:"34%",mapH:340,shellH:562},Av={facetW:[160,420],railW:[200,520],tableH:[12,70],mapH:[220,1400],shellH:[400,2600]},Yu=32,Zu=120,At=(e,[t,o])=>Math.min(o,Math.max(t,e)),ss=(e,t)=>{const o=parseFloat(String(e));return Number.isFinite(o)?o:t};function Sv(e={}){const{shellRef:t,bus:o=null,isNarrow:n=!1,pageScroll:a=!1,storageKey:s="rd-dashboard-layout-v6"}=e,r={...Lv,...e.defaults||{}},i={...Av,...e.clamps||{}},l=de(r.facetW),c=de(r.railW),u=de(r.tableH),p=de(r.mapH),g=de(r.shellH),y=de(!1),A=de(!1),k=de(!1),S=()=>!!fe(n),C=()=>!!fe(a);function f(){const O=t&&t.value;if(!O)return g.value;const V=parseFloat(getComputedStyle(O).getPropertyValue("--rd-shell-h"));if(Number.isFinite(V)&&V>0)return Math.round(V);const I=O.querySelector('[data-region="map"]'),ae=O.querySelector('[data-region="table"]');if(!I||!ae)return g.value;const be=I.getBoundingClientRect().height+ae.getBoundingClientRect().height;return be>0?Math.round(be):g.value}function b(){const O=t&&t.value;O&&(y.value&&(O.style.setProperty("--facet-w",l.value+"px"),O.style.setProperty("--rail-w",c.value+"px"),O.style.setProperty("--table-h",u.value)),A.value&&O.style.setProperty("--rd-map-h",p.value+"px"),k.value&&O.style.setProperty("--rd-shell-h",g.value+"px"))}function d(){const O=t&&t.value;O&&(O.style.removeProperty("--facet-w"),O.style.removeProperty("--rail-w"),O.style.removeProperty("--table-h"),O.style.removeProperty("--rd-map-h"),O.style.removeProperty("--rd-shell-h"))}function $(){try{localStorage.setItem(s,JSON.stringify({facetW:l.value,railW:c.value,tableH:u.value,mapH:p.value,shellH:g.value}))}catch{}}function L(){try{const O=localStorage.getItem(s);if(!O)return!1;const V=JSON.parse(O);return Number.isFinite(V.facetW)&&(l.value=At(V.facetW,i.facetW)),Number.isFinite(V.railW)&&(c.value=At(V.railW,i.railW)),V.tableH!=null&&(u.value=At(ss(V.tableH,ss(r.tableH,34)),i.tableH)+"%"),y.value=!0,Number.isFinite(V.shellH)&&(g.value=At(V.shellH,i.shellH),k.value=!0),Number.isFinite(V.mapH)&&(p.value=At(V.mapH,i.mapH),A.value=!0),!0}catch{return!1}}function w(){try{localStorage.removeItem(s)}catch{}l.value=r.facetW,c.value=r.railW,u.value=r.tableH,p.value=r.mapH,g.value=r.shellH,y.value=!1,A.value=!1,k.value=!1,d()}const F=de(!1);function D(){if(F.value)return;F.value=!0;const O=t&&t.value;if(O&&O.setAttribute("data-rd-resizing","1"),o&&typeof o.emit=="function")try{o.emit("layoutResizing",!0)}catch{}}function ne(){if(!F.value)return;F.value=!1;const O=t&&t.value;if(O&&O.removeAttribute("data-rd-resizing"),o&&typeof o.emit=="function")try{o.emit("layoutResizing",!1)}catch{}}function B(O,V){if(S())return;const I=t&&t.value;if(!I)return;V.preventDefault();const ae=I.getBoundingClientRect(),be=V.clientX,ke=l.value,xe=c.value,Se=V.currentTarget,ye=O==="table"&&C(),se=O==="shell"&&C();let he=0,ve=i.mapH[1];if(ye){const oe=I.querySelector('[data-region="map"]'),h=oe?oe.getBoundingClientRect():null;he=h?h.top:V.clientY-p.value,ve=Math.max(i.mapH[0],g.value-(Yu+Zu))}const _=V.clientY,P=se?f():g.value;try{Se&&Se.setPointerCapture&&Se.setPointerCapture(V.pointerId)}catch{}D();let x=0,U=null;function Q(){if(x=0,!U)return;const oe=U;if(U=null,O==="facet")l.value=Math.round(At(ke+(oe.clientX-be),i.facetW)),y.value=!0;else if(O==="rail")c.value=Math.round(At(xe-(oe.clientX-be),i.railW)),y.value=!0;else if(ye)p.value=Math.round(At(oe.clientY-he,[i.mapH[0],ve])),A.value=!0;else if(O==="table"){const h=(ae.bottom-oe.clientY)/ae.height*100;u.value=Math.round(At(h,i.tableH))+"%",y.value=!0}else se&&(g.value=Math.round(At(P+(oe.clientY-_),i.shellH)),k.value=!0);b()}function te(oe){U={clientX:oe.clientX,clientY:oe.clientY},x||(x=requestAnimationFrame(Q))}function ce(oe){window.removeEventListener("pointermove",te),window.removeEventListener("pointerup",ce),window.removeEventListener("pointercancel",ce),x&&(cancelAnimationFrame(x),x=0),Q();try{Se&&Se.releasePointerCapture&&Se.releasePointerCapture(oe.pointerId)}catch{}$(),ne()}window.addEventListener("pointermove",te),window.addEventListener("pointerup",ce),window.addEventListener("pointercancel",ce)}const Y=O=>B("facet",O),pe=O=>B("rail",O),M=O=>B("table",O),ee=O=>B("shell",O),K={facet:16,rail:16,table:24,mapH:24,shellH:24};function z(O,V,I){if(!S()){if(O==="facet")l.value=I?V<0?i.facetW[0]:i.facetW[1]:Math.round(At(l.value+V*K.facet,i.facetW)),y.value=!0;else if(O==="rail")c.value=I?V<0?i.railW[1]:i.railW[0]:Math.round(At(c.value-V*K.rail,i.railW)),y.value=!0;else if(O==="table"&&C()){const ae=Math.max(i.mapH[0],g.value-(Yu+Zu));p.value=I?V<0?i.mapH[0]:ae:Math.round(At(p.value+V*K.mapH,[i.mapH[0],ae])),A.value=!0}else if(O==="table"){const ae=I?V<0?i.tableH[0]:i.tableH[1]:At(ss(u.value,ss(r.tableH,34))-V*K.table/4,i.tableH);u.value=Math.round(ae)+"%",y.value=!0}else O==="shell"&&C()&&(g.value=I?V<0?i.shellH[0]:i.shellH[1]:Math.round(At(g.value+V*K.shellH,i.shellH)),k.value=!0);b(),$()}}function re(O,V){const I=V.key;let ae=0;if(O==="table"||O==="shell"?I==="ArrowUp"?ae=-1:I==="ArrowDown"&&(ae=1):I==="ArrowLeft"?ae=-1:I==="ArrowRight"&&(ae=1),ae){V.preventDefault(),z(O,ae);return}(I==="Home"||I==="End")&&(V.preventDefault(),z(O,I==="Home"?-1:1,!0))}let j=null;return yt(()=>{L()&&b(),o&&typeof o.on=="function"&&(j=o.on("resetLayout",w))}),It(()=>{try{j&&j()}catch{}try{ne()}catch{}}),{facetW:l,railW:c,tableH:u,mapH:p,shellH:g,customized:y,resizing:F,startFacetResize:Y,startRailResize:pe,startTableResize:M,startShellResize:ee,startResize:B,reset:w,applyVars:b,stepResize:z,onResizeKeydown:re}}const Pv=".search-box{position:relative;display:flex;align-items:center;margin:0 auto;width:100%;color:var(--dx-muted, #6d766e)}.search-box .search-icon{position:absolute;left:12px;pointer-events:none}.search-box input{width:100%;padding:10px 12px 10px 38px;font-size:.95rem;color:var(--dx-text, #3b463d);background:var(--dx-elevated, #fff);border:1px solid var(--dx-line, #d1d4cd);border-radius:10px;outline:none;box-sizing:border-box}.search-box input:focus{border-color:var(--dx-accent, #92b195);box-shadow:0 0 0 2px var(--dx-accent-weak, rgba(146, 177, 149, .18))}",Ev=["value","placeholder","aria-label"],Ur=kn({__name:"SearchBar",props:{modelValue:{type:String,default:""},placeholder:{type:String,default:"Search…"},ariaLabel:{type:String,default:"Search"},maxWidth:{type:String,default:""}},emits:["update:modelValue","search"],setup(e,{emit:t}){const o=e,n=t,a=ie(()=>o.maxWidth?{maxWidth:o.maxWidth}:{});function s(r){const i=r.target.value??"";n("update:modelValue",i),n("search",{value:i})}return(r,i)=>(H(),Z("div",{class:"search-box",style:rt(a.value)},[i[0]||(i[0]=R("svg",{class:"search-icon",width:"18",height:"18",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},[R("circle",{cx:"11",cy:"11",r:"7",fill:"none",stroke:"currentColor","stroke-width":"2"}),R("line",{x1:"16.5",y1:"16.5",x2:"21",y2:"21",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),R("input",{type:"search",value:e.modelValue,placeholder:e.placeholder,"aria-label":e.ariaLabel,onInput:s},null,40,Ev)],4))}},[["styles",[Pv]]]),Cv=["title","aria-label","disabled"],Br={__name:"MapControlButton",props:{isDark:{type:Boolean,default:!1},title:{type:String,default:""},active:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(e){return Ot(` .mcb{ width:var(--map-btn-size,40px);height:var(--map-btn-size,40px); background:#fff; @@ -97,7 +97,7 @@ .mcb.dark:hover:not(:disabled){background:#4e594f;box-shadow:0 2px 8px rgba(0,0,0,0.5);} .mcb.dark.active{background:#4e594f;color:#92b195;} @media(max-width:767px){.mcb{width:36px;height:36px;}} -`,"map-control-button"),(t,o)=>(H(),Z("button",{class:qe(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,"aria-label":e.title||void 0,disabled:e.disabled,onClick:o[0]||(o[0]=n=>t.$emit("click"))},[Ho(t.$slots,"default")],10,Pv))}},Ev=["aria-label"],Cv={class:"mcm-header"},Tv={class:"mcm-title"},Rv={class:"mcm-body"},Nv=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",Vr="doxa-map-menu-open",Ov={__name:"MapControlMenu",props:{open:{type:Boolean,default:!1},title:{type:String,default:""},width:{type:Number,default:340},isDark:{type:Boolean,default:!1},maxHeight:{type:Number,default:null},height:{type:Number,default:null},matchToolbar:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){Ot(` +`,"map-control-button"),(t,o)=>(H(),Z("button",{class:qe(["mcb",{dark:e.isDark,active:e.active}]),title:e.title,"aria-label":e.title||void 0,disabled:e.disabled,onClick:o[0]||(o[0]=n=>t.$emit("click"))},[Ho(t.$slots,"default")],10,Cv))}},Tv=["aria-label"],Rv={class:"mcm-header"},Nv={class:"mcm-title"},Ov={class:"mcm-body"},Fv=".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]",Vr="doxa-map-menu-open",Mv={__name:"MapControlMenu",props:{open:{type:Boolean,default:!1},title:{type:String,default:""},width:{type:Number,default:340},isDark:{type:Boolean,default:!1},maxHeight:{type:Number,default:null},height:{type:Number,default:null},matchToolbar:{type:Boolean,default:!1}},emits:["close"],setup(e,{emit:t}){Ot(` .mcm{position:absolute;z-index:var(--z-menu,3000);display:flex;flex-direction:column;box-sizing:border-box; background:#161b22;border:1px solid #30363d;border-radius:12px;box-shadow:0 6px 24px rgba(0,0,0,0.45); color:#e6edf3;font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;font-size:13px; @@ -113,7 +113,7 @@ .mcm.light .mcm-close{background:rgba(208,215,222,0.4);border-color:#d0d7de;color:#57606a;} .mcm.light .mcm-close:hover{color:#3b463d;background:rgba(59,70,61,0.12);border-color:#3b463d;} .mcm-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;} -`,"map-control-menu");const o=e,n=t,a=ze("mapToolbar",null),s=de(null),r=de(null),i=de({});function l(){var U;const y=(U=a==null?void 0:a.el)==null?void 0:U.value,A=s.value;if(!y||!A){i.value={};return}const k=A.getBoundingClientRect(),S=y.getBoundingClientRect(),C=(S.left+S.right)/2>(k.left+k.right)/2,f=8,b=12,d=C?k.right-S.left+f:S.right-k.left+f,$=Math.max(200,Math.min(o.width,k.width-d-b)),L=Math.max(0,S.top-k.top);let F=A.getAttribute&&A.getAttribute("data-map-area")==="share-fallback"?Math.max(120,(window.innerHeight||900)-S.top-b):Math.max(120,k.height-L-b);o.matchToolbar&&(F=Math.max(120,Math.min(F,S.height))),o.maxHeight&&(F=Math.min(F,o.maxHeight)),i.value={top:`${Math.round(L)}px`,[C?"right":"left"]:`${Math.round(d)}px`,width:`${Math.round($)}px`,maxHeight:`${Math.round(F)}px`,...o.height?{height:`${Math.round(Math.min(o.height,F))}px`}:{}}}function c(y){o.open&&y.detail!==r.value&&n("close")}lt(()=>o.open,async y=>{var A;if(y){await Mn(),l();try{(A=s.value)==null||A.dispatchEvent(new CustomEvent(Vr,{detail:r.value}))}catch{}}});function u(){o.open&&l()}function p(y){y.key==="Escape"&&o.open&&n("close")}function g(y){var k;if(!o.open)return;const A=y.composedPath?y.composedPath():[y.target];r.value&&A.includes(r.value)||(k=a==null?void 0:a.el)!=null&&k.value&&A.includes(a.el.value)||A.some(S=>{var C,f,b,d;return((f=(C=S==null?void 0:S.classList)==null?void 0:C.contains)==null?void 0:f.call(C,"mapboxgl-canvas"))||((d=(b=S==null?void 0:S.classList)==null?void 0:b.contains)==null?void 0:d.call(b,"maplibregl-canvas"))})&&n("close")}return yt(()=>{var y,A,k;s.value=((A=(y=a==null?void 0:a.el)==null?void 0:y.value)==null?void 0:A.closest(Nv))||null,(k=s.value)==null||k.addEventListener(Vr,c),window.addEventListener("resize",u),document.addEventListener("click",g,!0),document.addEventListener("keydown",p)}),It(()=>{var y;(y=s.value)==null||y.removeEventListener(Vr,c),window.removeEventListener("resize",u),document.removeEventListener("click",g,!0),document.removeEventListener("keydown",p)}),(y,A)=>(H(),To(up,{to:s.value,disabled:!s.value},[e.open?(H(),Z("div",{key:0,ref_key:"el",ref:r,class:qe(["mcm",{light:!e.isDark}]),style:rt(i.value),role:"dialog","aria-label":e.title},[R("div",Cv,[R("span",Tv,ue(e.title),1),R("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:A[0]||(A[0]=k=>n("close"))},[...A[1]||(A[1]=[R("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[R("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),R("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),R("div",Rv,[Ho(y.$slots,"default")])],14,Ev)):Fe("",!0)],8,["to","disabled"]))}},Fv={class:"share-steps"},Mv={class:"share-tabs"},Iv={key:0,class:"share-body"},Dv={class:"share-url-box"},jv={class:"share-url-text"},zv={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Gv={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Uv={key:1,class:"share-body"},Bv={class:"share-size-pills"},Vv=["onClick"],qv={class:"share-code-box"},Wv={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Hv={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Kv={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){Ot(` +`,"map-control-menu");const o=e,n=t,a=ze("mapToolbar",null),s=de(null),r=de(null),i=de({});function l(){var D;const y=(D=a==null?void 0:a.el)==null?void 0:D.value,A=s.value;if(!y||!A){i.value={};return}const k=A.getBoundingClientRect(),S=y.getBoundingClientRect(),C=(S.left+S.right)/2>(k.left+k.right)/2,f=8,b=12,d=C?k.right-S.left+f:S.right-k.left+f,$=Math.max(200,Math.min(o.width,k.width-d-b)),L=Math.max(0,S.top-k.top);let F=A.getAttribute&&A.getAttribute("data-map-area")==="share-fallback"?Math.max(120,(window.innerHeight||900)-S.top-b):Math.max(120,k.height-L-b);o.matchToolbar&&(F=Math.max(120,Math.min(F,S.height))),o.maxHeight&&(F=Math.min(F,o.maxHeight)),i.value={top:`${Math.round(L)}px`,[C?"right":"left"]:`${Math.round(d)}px`,width:`${Math.round($)}px`,maxHeight:`${Math.round(F)}px`,...o.height?{height:`${Math.round(Math.min(o.height,F))}px`}:{}}}function c(y){o.open&&y.detail!==r.value&&n("close")}it(()=>o.open,async y=>{var A;if(y){await Mn(),l();try{(A=s.value)==null||A.dispatchEvent(new CustomEvent(Vr,{detail:r.value}))}catch{}}});function u(){o.open&&l()}function p(y){y.key==="Escape"&&o.open&&n("close")}function g(y){var k;if(!o.open)return;const A=y.composedPath?y.composedPath():[y.target];r.value&&A.includes(r.value)||(k=a==null?void 0:a.el)!=null&&k.value&&A.includes(a.el.value)||A.some(S=>{var C,f,b,d;return((f=(C=S==null?void 0:S.classList)==null?void 0:C.contains)==null?void 0:f.call(C,"mapboxgl-canvas"))||((d=(b=S==null?void 0:S.classList)==null?void 0:b.contains)==null?void 0:d.call(b,"maplibregl-canvas"))})&&n("close")}return yt(()=>{var y,A,k;s.value=((A=(y=a==null?void 0:a.el)==null?void 0:y.value)==null?void 0:A.closest(Fv))||null,(k=s.value)==null||k.addEventListener(Vr,c),window.addEventListener("resize",u),document.addEventListener("click",g,!0),document.addEventListener("keydown",p)}),It(()=>{var y;(y=s.value)==null||y.removeEventListener(Vr,c),window.removeEventListener("resize",u),document.removeEventListener("click",g,!0),document.removeEventListener("keydown",p)}),(y,A)=>(H(),To(pp,{to:s.value,disabled:!s.value},[e.open?(H(),Z("div",{key:0,ref_key:"el",ref:r,class:qe(["mcm",{light:!e.isDark}]),style:rt(i.value),role:"dialog","aria-label":e.title},[R("div",Rv,[R("span",Nv,ue(e.title),1),R("button",{class:"mcm-close",type:"button","aria-label":"Close",onClick:A[0]||(A[0]=k=>n("close"))},[...A[1]||(A[1]=[R("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},[R("line",{x1:"2",y1:"2",x2:"12",y2:"12"}),R("line",{x1:"12",y1:"2",x2:"2",y2:"12"})],-1)])])]),R("div",Ov,[Ho(y.$slots,"default")])],14,Tv)):Fe("",!0)],8,["to","disabled"]))}},Iv={class:"share-steps"},Dv={class:"share-tabs"},jv={key:0,class:"share-body"},zv={class:"share-url-box"},Gv={class:"share-url-text"},Uv={key:0,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Bv={key:1,width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Vv={key:1,class:"share-body"},qv={class:"share-size-pills"},Wv=["onClick"],Hv={class:"share-code-box"},Kv={key:0,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Xv={key:1,width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},Yv={__name:"ShareButton",props:{isDark:{type:Boolean,default:!1},embedPath:{type:String,default:""}},setup(e){Ot(` .share-wrap{position:relative;display:inline-block;border-radius:50%;} .share-wrap::before{content:'';position:absolute;inset:-2px;border-radius:50%;padding:2px;pointer-events:none; background:conic-gradient(#ff6b6b,#ffd166,#6bd67b,#4dabf7,#9775fa,#f783ac,#ff6b6b); @@ -365,7 +365,7 @@ border-color:rgba(46,164,79,0.30); color:#2ea44f; } -`,"share-button");const{t,tm:o,rt:n}=Zo(),a=e,s=de(null),r=de(!1),i=de(null),l=de(null),c=de("link"),u=de(!1),p=de(!1),g=de("medium"),y={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},A=ze("profileConfig",null),k=re(()=>ky({embedPath:a.embedPath,profileConfig:he(A)||null})),S=re(()=>{const ne=y[g.value].height;return''});function C(){r.value=!r.value,r.value&&(c.value="link",u.value=!1,p.value=!1)}function f(){r.value=!1}async function b(ne){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(ne),!0}catch{}try{const z=document.createElement("textarea");z.value=ne,z.setAttribute("readonly",""),z.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(z),z.select();const Y=document.execCommand("copy");return document.body.removeChild(z),Y}catch{return!1}}async function d(){await b(k.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function $(){await b(S.value)&&(p.value=!0,setTimeout(()=>{p.value=!1},2e3))}const L=ze("mapToolbar",null),w=de(null);oo("mapToolbar",L||{el:w});const F=!L;function U(ne){if(s.value=ne||null,!F||!ne){ne||(w.value=null);return}const z=ne.offsetParent||ne.parentElement;z&&!z.closest(".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]")&&z.setAttribute("data-map-area","share-fallback"),w.value=ne}return(ne,z)=>(H(),Z("div",{ref:U,class:"share-wrap","data-share-root":""},[Ue(Br,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:r.value,title:he(t)("buttons.share"),onClick:C},{default:Eo(()=>[...z[2]||(z[2]=[R("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[R("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),R("polyline",{points:"16 6 12 2 8 6"}),R("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),Ue(Ov,{open:r.value,title:he(t)("buttons.share"),"is-dark":e.isDark,onClose:f},{default:Eo(()=>[R("div",{ref_key:"popoverEl",ref:i,class:qe(["share-pop",{light:!e.isDark}])},[R("ul",Fv,[(H(!0),Z(Ce,null,et(he(o)("buttons.shareSteps"),(Y,fe)=>(H(),Z("li",{key:fe},ue(he(n)(Y)),1))),128))]),R("div",Mv,[R("button",{class:qe(["share-tab",{active:c.value==="link"}]),onClick:z[0]||(z[0]=Y=>c.value="link")},"Embed link",2),R("button",{class:qe(["share-tab",{active:c.value==="embed"}]),onClick:z[1]||(z[1]=Y=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(H(),Z("div",Iv,[R("div",Dv,[R("div",jv,ue(k.value),1)]),R("button",{class:qe(["share-primary-btn",{copied:u.value}]),onClick:d},[u.value?(H(),Z("svg",Gv,[...z[4]||(z[4]=[R("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(H(),Z("svg",zv,[...z[3]||(z[3]=[R("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),R("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),ct(" "+ue(u.value?"Copied!":"Copy Link"),1)],2)])):Fe("",!0),c.value==="embed"?(H(),Z("div",Uv,[z[7]||(z[7]=R("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),R("div",Bv,[(H(),Z(Ce,null,et(y,(Y,fe)=>R("button",{key:fe,class:qe(["share-size-pill",{active:g.value===fe}]),onClick:M=>g.value=fe},ue(Y.label),11,Vv)),64))]),R("div",qv,ue(S.value),1),R("button",{class:qe(["share-secondary-btn",{copied:p.value}]),onClick:$},[p.value?(H(),Z("svg",Hv,[...z[6]||(z[6]=[R("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(H(),Z("svg",Wv,[...z[5]||(z[5]=[R("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),R("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),ct(" "+ue(p.value?"Copied!":"Copy Code"),1)],2)])):Fe("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},Ao="#c4c8c0",at=e=>e==null?"":typeof e=="object"?e.label??e.value??"":e,Xv=e=>String(e||"").trim().toLowerCase().replace(/\s+/g,"_");function rs(e,t){const o=os(e);return o&&o.propertyKey===t?o:null}function Yv(e,t){const o=String(e||"").trim();if(!o)return"U";const n=Object.keys(t),a=n.find(i=>t[i]===o);if(a)return a;let s=null,r=0;for(const i of n){const l=t[i];l&&o.toLowerCase().startsWith(l.toLowerCase())&&l.length>r&&(s=i,r=l.length)}return s||(/^[A-Z]{1,3}$/.test(o)?Ar(o):"U")}function qr(e,t,o){const n=new Map;for(const s of e){const r=t(s);r==null||r===""||n.set(r,(n.get(r)||0)+1)}let a=[...n.entries()].map(([s,r])=>({key:s,value:r})).sort((s,r)=>r.value-s.value);if(o&&a.length>o){const s=a.slice(0,o),r=a.slice(o).reduce((i,l)=>i+l.value,0);r>0&&s.push({key:"Other",value:r,other:!0}),a=s}return a}function Zv(e,t,o){const n=new Map;for(const s of e||[]){const r=t&&t(s),i=o&&o(s);if(!r||!i)continue;n.has(r)||n.set(r,new Map);const l=n.get(r);l.set(i,(l.get(i)||0)+1)}const a=new Map;for(const[s,r]of n){let i=null,l=0,c=!1;for(const[u,p]of r)p>l?(i=u,l=p,c=!1):p===l&&(c=!0);a.set(s,i&&!c?Qu("wagf_region",i):Ao)}return a}function Jv(e,t=132,o=.58,n="",a=null){const s=t/2,r=t/2,i=t/2-3,l=(t/2-3)*o,c=e.reduce((p,g)=>p+g.value,0)||1;let u=-Math.PI/2;return e.map((p,g)=>{const y=u,A=u+p.value/c*Math.PI*2;u=A;const k=A-y>Math.PI?1:0,S=(f,b)=>`${(s+b*Math.cos(f)).toFixed(2)},${(r+b*Math.sin(f)).toFixed(2)}`,C=`M${S(y,i)} A${i},${i} 0 ${k} 1 ${S(A,i)} L${S(A,l)} A${l},${l} 0 ${k} 0 ${S(y,l)} Z`;return{...p,path:C,pct:Math.round(p.value/c*100),color:Ju(n,p.key,a)}})}function Qv(e,t="",o=null){const n=e.reduce((a,s)=>Math.max(a,s.value),0)||1;return e.map(a=>({...a,frac:a.value/n,color:Ju(t,a.key,o)}))}function Ju(e,t,o){if(o&&t!=="Other"){const n=o.get?o.get(t):o[t];if(n)return n}return Qu(e,t)}function Qu(e,t){if(t==null||t===""||t==="Other")return Ao;if(e==="religion"||e==="religion_family"){const o=rs(Lo.RELIGION,"religion"),n=o&&o.palette||Ct,a=o&&o.families||ko;return n[Yv(t,a)]||Ao}if(e==="wagf_region"){const o=rs(Lo.DOXA_REGION,"doxaRegion");if(!o)return Ao;const n=o.slugColors&&o.slugColors[Xv(t)];return n||o.aliases&&o.aliases[t]||Ao}if(e==="affinity_bloc"){const o=rs(Lo.AFFINITY_BLOCK,"affinityBlock");return o&&o.palette&&o.palette[t]||Ao}if(e==="language_family"){const o=rs(Lo.LANGUAGE_FAMILY,"languageFamily");return o&&o.palette&&o.palette[t]||Ao}return Ao}const e0={class:"rd-left"},t0={class:"rd-brand"},o0={class:"rd-ttl"},n0={class:"rd-filter-search","data-filter-search":""},a0={key:0,class:"rd-search","data-search":""},s0=["data-slug"],r0={class:"nm"},i0={class:"sub"},l0={key:1,class:"rd-empty"},c0=["title","onKeydown"],u0="research-dashboard/research-dashboard/index.html",d0={__name:"DashboardTopBar",setup(e){const t=(d,$)=>Se("dashboard."+d)||$,o=ze("dashboardData",null),n=ze("selectionBus",null),a=ze("dashboardConfig",{}),s=re(()=>a.showTopBarSearch===!0);function r(){n&&n.emit("resetLayout")}const i=re(()=>{var d;return((d=n==null?void 0:n.searchTerm)==null?void 0:d.value)||""}),l=re(()=>{var d;return((d=a.researchFilters)==null?void 0:d.searchPlaceholder)||"Search people groups, place, language, religion…"});function c(d){n==null||n.setSearch((d==null?void 0:d.value)??"")}const u=de(""),p=de(!1),g=de(0),y=re(()=>{var w;const d=u.value.trim().toLowerCase();if(d.length<2)return[];const $=((w=o==null?void 0:o.rows)==null?void 0:w.value)||[],L=[];for(const F of $)if((F.name||"").toLowerCase().includes(d)&&(L.push(F),L.length>=8))break;return L});function A(d){!d||!n||(d.slug&&(n.toggleSelect(d.slug),n.emit("focusRow",{slug:d.slug,name:d.name})),u.value="",p.value=!1,g.value=0)}function k(){p.value=!0,g.value=0}function S(d){if(!y.value.length){d.key==="Escape"&&(u.value="",p.value=!1);return}d.key==="ArrowDown"?(d.preventDefault(),g.value=(g.value+1)%y.value.length):d.key==="ArrowUp"?(d.preventDefault(),g.value=(g.value-1+y.value.length)%y.value.length):d.key==="Enter"?(d.preventDefault(),A(y.value[g.value])):d.key==="Escape"&&(u.value="",p.value=!1,g.value=0)}function C(d){var F;const $=d.target&&d.target.closest&&d.target.closest("[data-slug]");if(!$)return;const L=$.getAttribute("data-slug"),w=(((F=o==null?void 0:o.rows)==null?void 0:F.value)||[]).find(U=>U.slug===L);w&&A(w)}const f=de(null);function b(d){f.value&&!f.value.contains(d.target)&&(p.value=!1)}return yt(()=>{var d,$;try{($=(d=f.value)==null?void 0:d.getRootNode())==null||$.addEventListener("click",b)}catch{}}),It(()=>{var d,$;try{($=(d=f.value)==null?void 0:d.getRootNode())==null||$.removeEventListener("click",b)}catch{}}),Ot(` +`,"share-button");const{t,tm:o,rt:n}=Zo(),a=e,s=de(null),r=de(!1),i=de(null),l=de(null),c=de("link"),u=de(!1),p=de(!1),g=de("medium"),y={small:{label:"Small",height:400},medium:{label:"Medium",height:600},large:{label:"Large",height:800}},A=ze("profileConfig",null),k=ie(()=>Ay({embedPath:a.embedPath,profileConfig:fe(A)||null})),S=ie(()=>{const ne=y[g.value].height;return''});function C(){r.value=!r.value,r.value&&(c.value="link",u.value=!1,p.value=!1)}function f(){r.value=!1}async function b(ne){try{if(navigator.clipboard&&window.isSecureContext)return await navigator.clipboard.writeText(ne),!0}catch{}try{const B=document.createElement("textarea");B.value=ne,B.setAttribute("readonly",""),B.style.cssText="position:fixed;top:-1000px;opacity:0",document.body.appendChild(B),B.select();const Y=document.execCommand("copy");return document.body.removeChild(B),Y}catch{return!1}}async function d(){await b(k.value)&&(u.value=!0,setTimeout(()=>{u.value=!1},2e3))}async function $(){await b(S.value)&&(p.value=!0,setTimeout(()=>{p.value=!1},2e3))}const L=ze("mapToolbar",null),w=de(null);oo("mapToolbar",L||{el:w});const F=!L;function D(ne){if(s.value=ne||null,!F||!ne){ne||(w.value=null);return}const B=ne.offsetParent||ne.parentElement;B&&!B.closest(".dsm-map-area, .rm-map-area, .dm-map-area, [data-map-area]")&&B.setAttribute("data-map-area","share-fallback"),w.value=ne}return(ne,B)=>(H(),Z("div",{ref:D,class:"share-wrap","data-share-root":""},[Ue(Br,{ref_key:"btnEl",ref:l,"is-dark":e.isDark,active:r.value,title:fe(t)("buttons.share"),onClick:C},{default:Eo(()=>[...B[2]||(B[2]=[R("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[R("path",{d:"M4 12v7a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7"}),R("polyline",{points:"16 6 12 2 8 6"}),R("line",{x1:"12",y1:"2",x2:"12",y2:"15"})],-1)])]),_:1},8,["is-dark","active","title"]),Ue(Mv,{open:r.value,title:fe(t)("buttons.share"),"is-dark":e.isDark,onClose:f},{default:Eo(()=>[R("div",{ref_key:"popoverEl",ref:i,class:qe(["share-pop",{light:!e.isDark}])},[R("ul",Iv,[(H(!0),Z(Ce,null,et(fe(o)("buttons.shareSteps"),(Y,pe)=>(H(),Z("li",{key:pe},ue(fe(n)(Y)),1))),128))]),R("div",Dv,[R("button",{class:qe(["share-tab",{active:c.value==="link"}]),onClick:B[0]||(B[0]=Y=>c.value="link")},"Embed link",2),R("button",{class:qe(["share-tab",{active:c.value==="embed"}]),onClick:B[1]||(B[1]=Y=>c.value="embed")},"Add to Your Website",2)]),c.value==="link"?(H(),Z("div",jv,[R("div",zv,[R("div",Gv,ue(k.value),1)]),R("button",{class:qe(["share-primary-btn",{copied:u.value}]),onClick:d},[u.value?(H(),Z("svg",Bv,[...B[4]||(B[4]=[R("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(H(),Z("svg",Uv,[...B[3]||(B[3]=[R("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),R("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),ct(" "+ue(u.value?"Copied!":"Copy Link"),1)],2)])):Fe("",!0),c.value==="embed"?(H(),Z("div",Vv,[B[7]||(B[7]=R("div",{class:"share-embed-desc"}," Paste this code into your website builder (WordPress, Squarespace, Wix, or any site that accepts HTML widgets). ",-1)),R("div",qv,[(H(),Z(Ce,null,et(y,(Y,pe)=>R("button",{key:pe,class:qe(["share-size-pill",{active:g.value===pe}]),onClick:M=>g.value=pe},ue(Y.label),11,Wv)),64))]),R("div",Hv,ue(S.value),1),R("button",{class:qe(["share-secondary-btn",{copied:p.value}]),onClick:$},[p.value?(H(),Z("svg",Xv,[...B[6]||(B[6]=[R("polyline",{points:"20 6 9 17 4 12"},null,-1)])])):(H(),Z("svg",Kv,[...B[5]||(B[5]=[R("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"},null,-1),R("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"},null,-1)])])),ct(" "+ue(p.value?"Copied!":"Copy Code"),1)],2)])):Fe("",!0)],2)]),_:1},8,["open","title","is-dark"])],512))}},Ao="#c4c8c0",at=e=>e==null?"":typeof e=="object"?e.label??e.value??"":e,Zv=e=>String(e||"").trim().toLowerCase().replace(/\s+/g,"_");function rs(e,t){const o=os(e);return o&&o.propertyKey===t?o:null}function Jv(e,t){const o=String(e||"").trim();if(!o)return"U";const n=Object.keys(t),a=n.find(i=>t[i]===o);if(a)return a;let s=null,r=0;for(const i of n){const l=t[i];l&&o.toLowerCase().startsWith(l.toLowerCase())&&l.length>r&&(s=i,r=l.length)}return s||(/^[A-Z]{1,3}$/.test(o)?Ar(o):"U")}function qr(e,t,o){const n=new Map;for(const s of e){const r=t(s);r==null||r===""||n.set(r,(n.get(r)||0)+1)}let a=[...n.entries()].map(([s,r])=>({key:s,value:r})).sort((s,r)=>r.value-s.value);if(o&&a.length>o){const s=a.slice(0,o),r=a.slice(o).reduce((i,l)=>i+l.value,0);r>0&&s.push({key:"Other",value:r,other:!0}),a=s}return a}function Qv(e,t,o){const n=new Map;for(const s of e||[]){const r=t&&t(s),i=o&&o(s);if(!r||!i)continue;n.has(r)||n.set(r,new Map);const l=n.get(r);l.set(i,(l.get(i)||0)+1)}const a=new Map;for(const[s,r]of n){let i=null,l=0,c=!1;for(const[u,p]of r)p>l?(i=u,l=p,c=!1):p===l&&(c=!0);a.set(s,i&&!c?Qu("wagf_region",i):Ao)}return a}function e0(e,t=132,o=.58,n="",a=null){const s=t/2,r=t/2,i=t/2-3,l=(t/2-3)*o,c=e.reduce((p,g)=>p+g.value,0)||1;let u=-Math.PI/2;return e.map((p,g)=>{const y=u,A=u+p.value/c*Math.PI*2;u=A;const k=A-y>Math.PI?1:0,S=(f,b)=>`${(s+b*Math.cos(f)).toFixed(2)},${(r+b*Math.sin(f)).toFixed(2)}`,C=`M${S(y,i)} A${i},${i} 0 ${k} 1 ${S(A,i)} L${S(A,l)} A${l},${l} 0 ${k} 0 ${S(y,l)} Z`;return{...p,path:C,pct:Math.round(p.value/c*100),color:Ju(n,p.key,a)}})}function t0(e,t="",o=null){const n=e.reduce((a,s)=>Math.max(a,s.value),0)||1;return e.map(a=>({...a,frac:a.value/n,color:Ju(t,a.key,o)}))}function Ju(e,t,o){if(o&&t!=="Other"){const n=o.get?o.get(t):o[t];if(n)return n}return Qu(e,t)}function Qu(e,t){if(t==null||t===""||t==="Other")return Ao;if(e==="religion"||e==="religion_family"){const o=rs(Lo.RELIGION,"religion"),n=o&&o.palette||Ct,a=o&&o.families||ko;return n[Jv(t,a)]||Ao}if(e==="wagf_region"){const o=rs(Lo.DOXA_REGION,"doxaRegion");if(!o)return Ao;const n=o.slugColors&&o.slugColors[Zv(t)];return n||o.aliases&&o.aliases[t]||Ao}if(e==="affinity_bloc"){const o=rs(Lo.AFFINITY_BLOCK,"affinityBlock");return o&&o.palette&&o.palette[t]||Ao}if(e==="language_family"){const o=rs(Lo.LANGUAGE_FAMILY,"languageFamily");return o&&o.palette&&o.palette[t]||Ao}return Ao}const o0={class:"rd-left"},n0={class:"rd-brand"},a0={class:"rd-ttl"},s0={class:"rd-filter-search","data-filter-search":""},r0={key:0,class:"rd-search","data-search":""},i0=["data-slug"],l0={class:"nm"},c0={class:"sub"},u0={key:1,class:"rd-empty"},d0=["title","onKeydown"],p0="research-dashboard/research-dashboard/index.html",g0={__name:"DashboardTopBar",setup(e){const t=(d,$)=>Pe("dashboard."+d)||$,o=ze("dashboardData",null),n=ze("selectionBus",null),a=ze("dashboardConfig",{}),s=ie(()=>a.showTopBarSearch===!0);function r(){n&&n.emit("resetLayout")}const i=ie(()=>{var d;return((d=n==null?void 0:n.searchTerm)==null?void 0:d.value)||""}),l=ie(()=>{var d;return((d=a.researchFilters)==null?void 0:d.searchPlaceholder)||"Search people groups, place, language, religion…"});function c(d){n==null||n.setSearch((d==null?void 0:d.value)??"")}const u=de(""),p=de(!1),g=de(0),y=ie(()=>{var w;const d=u.value.trim().toLowerCase();if(d.length<2)return[];const $=((w=o==null?void 0:o.rows)==null?void 0:w.value)||[],L=[];for(const F of $)if((F.name||"").toLowerCase().includes(d)&&(L.push(F),L.length>=8))break;return L});function A(d){!d||!n||(d.slug&&(n.toggleSelect(d.slug),n.emit("focusRow",{slug:d.slug,name:d.name})),u.value="",p.value=!1,g.value=0)}function k(){p.value=!0,g.value=0}function S(d){if(!y.value.length){d.key==="Escape"&&(u.value="",p.value=!1);return}d.key==="ArrowDown"?(d.preventDefault(),g.value=(g.value+1)%y.value.length):d.key==="ArrowUp"?(d.preventDefault(),g.value=(g.value-1+y.value.length)%y.value.length):d.key==="Enter"?(d.preventDefault(),A(y.value[g.value])):d.key==="Escape"&&(u.value="",p.value=!1,g.value=0)}function C(d){var F;const $=d.target&&d.target.closest&&d.target.closest("[data-slug]");if(!$)return;const L=$.getAttribute("data-slug"),w=(((F=o==null?void 0:o.rows)==null?void 0:F.value)||[]).find(D=>D.slug===L);w&&A(w)}const f=de(null);function b(d){f.value&&!f.value.contains(d.target)&&(p.value=!1)}return yt(()=>{var d,$;try{($=(d=f.value)==null?void 0:d.getRootNode())==null||$.addEventListener("click",b)}catch{}}),It(()=>{var d,$;try{($=(d=f.value)==null?void 0:d.getRootNode())==null||$.removeEventListener("click",b)}catch{}}),Ot(` .rd-topbar{ position:relative; display:flex; align-items:center; gap:12px; height:100%; padding:0 var(--rd-edge,14px); --rd-search-w:min(360px,34%); background:var(--rd-header,#4e594f); color:var(--rd-header-ink,#f3f3f1); border-bottom:1px solid var(--rd-header-line,#3c453d); @@ -407,7 +407,7 @@ background:#ffffff1f; border:1px solid #ffffff3d; border-radius:var(--r-md,6px); padding:5px 11px; } .rd-topbar .rd-align:hover{ background:#ffffff33; border-color:var(--rd-accent,#e67e22); color:#fff; } .rd-shell.rd-narrow .rd-topbar .rd-align{ display:none; } -`,"rd-topbar"),(d,$)=>(H(),Z("header",{ref_key:"rootEl",ref:f,class:"rd-topbar","data-region":"topbar"},[R("div",e0,[R("span",t0,[R("span",o0,[ct(ue(he(a).title||"Research Dashboard"),1),$[1]||($[1]=R("span",{class:"dot"},".",-1))])])]),R("div",n0,[Ue(Ur,{"model-value":i.value,placeholder:l.value,"aria-label":l.value,"max-width":"360px",onSearch:c},null,8,["model-value","placeholder","aria-label"])]),$[3]||($[3]=R("span",{class:"rd-spacer"},null,-1)),s.value?(H(),Z("div",a0,[$[2]||($[2]=R("span",{class:"ic"},"⌕",-1)),Mt(R("input",{type:"text","onUpdate:modelValue":$[0]||($[0]=L=>u.value=L),placeholder:"Search people groups…","data-search-input":"","aria-label":"Search people groups",onInput:k,onFocus:k,onKeydown:S},null,544),[[Ng,u.value]]),p.value&&u.value.trim().length>=2?(H(),Z("div",{key:0,class:"rd-results","data-search-results":"",onClick:C},[y.value.length?(H(!0),Z(Ce,{key:0},et(y.value,(L,w)=>(H(),Z("div",{key:L.slug,class:qe(["rd-res",{on:w===g.value}]),"data-slug":L.slug},[R("span",r0,ue(L.name),1),R("span",i0,ue(he(at)(L.country_code))+" · "+ue(he(at)(L.religion)),1)],10,s0))),128)):(H(),Z("div",l0,"No people groups match “"+ue(u.value.trim())+"”.",1))])):Fe("",!0)])):Fe("",!0),R("span",{class:"rd-align",role:"button",tabindex:"0","data-align-btn":"",title:t("align_dashboard_tip","Reset the dashboard layout to its default alignment"),onClick:r,onKeydown:[Va(dn(r,["prevent"]),["enter"]),Va(dn(r,["prevent"]),["space"])]}," ⤢ "+ue(t("align_dashboard","Align Dashboard")),41,c0),Ue(Kv,{"embed-path":u0})],512))}},zo="#c4c8c0";function p0(e,t){const o=os(e);return o&&o.propertyKey===t&&o.palette?o.palette:null}const g0=e=>String(e||"").trim().toLowerCase().replace(/\s+/g,"_");function f0(){const e=re(()=>{const o=os(Lo.DOXA_REGION),n=o&&o.propertyKey==="doxaRegion";return{slug:n&&o.slugColors||null,alias:n&&o.aliases||null}});function t(o,n,a,s){if(a==null||a==="")return zo;if(o==="people"){const r=p0(Lo.AFFINITY_BLOCK,"affinityBlock");return r&&r[s||a]||zo}if(o==="place"){const{slug:r,alias:i}=e.value,l=s||a;if(r){const c=r[g0(l)];if(c)return c}if(i){const c=i[l];if(c)return c}return zo}return o==="language"?xo[s||a]||zo:o==="religion"&&Ct[s]||zo}return{colorFor:t,NEUTRAL:zo}}const h0={class:"rd-facets","data-region":"facets"},m0={class:"fr-head"},b0={class:"fr-title"},$0={class:"fr-scope","data-scope-count":""},_0=["data-facet-section"],y0=["onClick"],v0={class:"fr-rows"},w0=["data-facet","data-value","tabindex","role","aria-pressed","aria-label","title"],x0=["data-expand","data-expand-value","aria-expanded","aria-label"],k0={key:1,class:"fr-caret fr-caret-leaf","aria-hidden":"true"},L0={class:"fr-lbl"},A0={class:"fr-bar"},S0={class:"fr-cnt"},P0={key:3,class:"fr-donly","aria-hidden":"true"},E0={__name:"DashboardFacetRail",setup(e){const t=(I,O)=>Se("dashboard."+I)||O,o=ze("dashboardData",null),n=ze("selectionBus",null),a=ze("dashboardConfig",{}),s=ze("dataStore",null),r=ze("searchSourceId",null),i=(n==null?void 0:n.filterSet)||{},l=Object.fromEntries(Object.entries(a.facets||{}).map(([I,O])=>[I,O.get])),c=new Set(Object.entries(a.facets||{}).filter(([,I])=>I&&I.dashboardOnly).map(([I])=>I)),u=ia(n,ra(a));function p(I){var ge,ke;const O=((ge=o==null?void 0:o.rows)==null?void 0:ge.value)||[],V=Object.keys(i).filter(be=>!I.includes(be)),D=!!(((ke=n==null?void 0:n.searchTerm)==null?void 0:ke.value)||"").trim();if(!V.length&&!D)return O;const ae=O.filter(be=>V.every($e=>{const Pe=l[$e];return Pe?Pe(be)===i[$e]:!0}));return la(ae,u)}const g=new Set(["people","place","language","religion"]),y=Uo(Object.fromEntries((a.facetRail||[]).map(I=>[I.id,g.has(I.id)])));function A(I){y[I]=!y[I]}const k=Uo({}),S=(I,O)=>I+":"+O;function C(I,O){const V=S(I,O);k[V]=!f(I,O)}function f(I,O){const V=S(I,O);return V in k?k[V]:i[I]===O}function b(I,O,V){const D=I.reduce((ae,ge)=>Math.max(ae,ge.value),0)||1;return I.map(ae=>({facet:O,value:ae.key,label:ae.key,count:ae.value,frac:ae.value/D,level:V,other:!!ae.other,active:!ae.other&&i[O]===ae.key,dashboardOnly:c.has(O)}))}const d=new Map;function $(I,O,V){if(V)return d.set(I,O.map(ce=>({...ce,count:0,frac:0,active:!1,expanded:!1}))),O;const D=d.get(I);if(!D)return O;const ae=ce=>ce.facet+":"+ce.value,ge=new Set(O.map(ae));if(!D.filter(ce=>!ge.has(ae(ce))).length)return O;const be=new Map;let $e="";for(const ce of D){const _e=ae(ce);if(ge.has(_e)){$e=_e;continue}be.has($e)||be.set($e,[]),be.get($e).push({...ce,zero:!0})}const Pe=[];for(const ce of be.get("")||[])Pe.push(ce);for(let ce=0;ce_e.level;)Pe.push(O[++ce]);for(const _ of xe)Pe.push(_)}}return Pe}function L(I,O){return b(qr(p([I]),l[I],O??24),I,0)}function w(I,O){const V=[],D=(ae,ge)=>{const ke=I[ae],be=(O&&O[ae])??(ae===I.length-1?40:30);let $e=p(I.slice(ae));ge.length&&($e=$e.filter(ce=>ge.every(([_e,xe])=>{const _=l[_e];return _?_(ce)===xe:!0})));const Pe=b(qr($e,l[ke],be),ke,ae);for(const ce of Pe)ce.hasChildren=!ce.other&&ae{var V;const I=new Map,O=a.facets&&a.facets.religion_family;if(!O||!O.famKey)return I;for(const D of((V=o==null?void 0:o.rows)==null?void 0:V.value)||[]){const ae=O.get(D);ae&&!I.has(ae)&&I.set(ae,O.famKey(D))}return I}),fe=re(()=>{var I;return!Object.keys(i).length&&!(((I=n==null?void 0:n.searchTerm)==null?void 0:I.value)||"").trim()}),M=re(()=>(a.facetRail||[]).map(I=>{let O=I.drill?w(I.drill,I.topN):L(I.facet,I.topN);if(O=$(I.id,O,fe.value),I.tree==="affinity"){const V=U.value;O=O.map(D=>D.other?D:{...D,label:V[D.facet]&&V[D.facet].get(D.value)||D.label})}return O=z(O,I.axis,Y.value),{id:I.id,title:I.title,axis:I.axis,rows:F(O)}})),Q=re(()=>{var V;const I=((V=o==null?void 0:o.rows)==null?void 0:V.value)||[],O=Object.keys(i);return O.length?I.filter(D=>O.every(ae=>{const ge=l[ae];return ge?ge(D)===i[ae]:!0})).length:I.length});function X(I){const O=I.target;if(!O||!O.closest)return;const V=O.closest("[data-expand]");if(V){const ke=V.getAttribute("data-expand"),be=V.getAttribute("data-expand-value");ke&&be!=null&&(I.stopPropagation(),C(ke,be));return}const D=O.closest("[data-facet]");if(!D||!n)return;const ae=D.getAttribute("data-facet"),ge=D.getAttribute("data-value");!ae||!ge||n.setFilter(ae,i[ae]===ge?null:ge)}function B(I){if(I.key!=="Enter"&&I.key!==" "&&I.key!=="Spacebar")return;const O=I.target&&I.target.closest?I.target.closest("[data-facet]"):null;if(!O||!n)return;I.preventDefault();const V=O.getAttribute("data-facet"),D=O.getAttribute("data-value");!V||!D||n.setFilter(V,i[V]===D?null:D)}const se=de(null);return yt(()=>{n&&n.on("mapFocus",({value:I}={})=>{if(!I||!se.value)return;const V=[...se.value.querySelectorAll(".fr-row")].find(D=>D.textContent&&D.textContent.includes(I));V&&(se.value.scrollTop=Math.max(0,V.offsetTop-8))})}),Ot(` +`,"rd-topbar"),(d,$)=>(H(),Z("header",{ref_key:"rootEl",ref:f,class:"rd-topbar","data-region":"topbar"},[R("div",o0,[R("span",n0,[R("span",a0,[ct(ue(fe(a).title||"Research Dashboard"),1),$[1]||($[1]=R("span",{class:"dot"},".",-1))])])]),R("div",s0,[Ue(Ur,{"model-value":i.value,placeholder:l.value,"aria-label":l.value,"max-width":"360px",onSearch:c},null,8,["model-value","placeholder","aria-label"])]),$[3]||($[3]=R("span",{class:"rd-spacer"},null,-1)),s.value?(H(),Z("div",r0,[$[2]||($[2]=R("span",{class:"ic"},"⌕",-1)),Mt(R("input",{type:"text","onUpdate:modelValue":$[0]||($[0]=L=>u.value=L),placeholder:"Search people groups…","data-search-input":"","aria-label":"Search people groups",onInput:k,onFocus:k,onKeydown:S},null,544),[[Fg,u.value]]),p.value&&u.value.trim().length>=2?(H(),Z("div",{key:0,class:"rd-results","data-search-results":"",onClick:C},[y.value.length?(H(!0),Z(Ce,{key:0},et(y.value,(L,w)=>(H(),Z("div",{key:L.slug,class:qe(["rd-res",{on:w===g.value}]),"data-slug":L.slug},[R("span",l0,ue(L.name),1),R("span",c0,ue(fe(at)(L.country_code))+" · "+ue(fe(at)(L.religion)),1)],10,i0))),128)):(H(),Z("div",u0,"No people groups match “"+ue(u.value.trim())+"”.",1))])):Fe("",!0)])):Fe("",!0),R("span",{class:"rd-align",role:"button",tabindex:"0","data-align-btn":"",title:t("align_dashboard_tip","Reset the dashboard layout to its default alignment"),onClick:r,onKeydown:[Va(pn(r,["prevent"]),["enter"]),Va(pn(r,["prevent"]),["space"])]}," ⤢ "+ue(t("align_dashboard","Align Dashboard")),41,d0),Ue(Yv,{"embed-path":p0})],512))}},zo="#c4c8c0";function f0(e,t){const o=os(e);return o&&o.propertyKey===t&&o.palette?o.palette:null}const h0=e=>String(e||"").trim().toLowerCase().replace(/\s+/g,"_");function m0(){const e=ie(()=>{const o=os(Lo.DOXA_REGION),n=o&&o.propertyKey==="doxaRegion";return{slug:n&&o.slugColors||null,alias:n&&o.aliases||null}});function t(o,n,a,s){if(a==null||a==="")return zo;if(o==="people"){const r=f0(Lo.AFFINITY_BLOCK,"affinityBlock");return r&&r[s||a]||zo}if(o==="place"){const{slug:r,alias:i}=e.value,l=s||a;if(r){const c=r[h0(l)];if(c)return c}if(i){const c=i[l];if(c)return c}return zo}return o==="language"?xo[s||a]||zo:o==="religion"&&Ct[s]||zo}return{colorFor:t,NEUTRAL:zo}}const b0={class:"rd-facets","data-region":"facets"},$0={class:"fr-head"},_0={class:"fr-title"},y0={class:"fr-scope","data-scope-count":""},v0=["data-facet-section"],w0=["onClick"],x0={class:"fr-rows"},k0=["data-facet","data-value","tabindex","role","aria-pressed","aria-label","title"],L0=["data-expand","data-expand-value","aria-expanded","aria-label"],A0={key:1,class:"fr-caret fr-caret-leaf","aria-hidden":"true"},S0={class:"fr-lbl"},P0={class:"fr-bar"},E0={class:"fr-cnt"},C0={key:3,class:"fr-donly","aria-hidden":"true"},T0={__name:"DashboardFacetRail",setup(e){const t=(j,O)=>Pe("dashboard."+j)||O,o=ze("dashboardData",null),n=ze("selectionBus",null),a=ze("dashboardConfig",{}),s=ze("dataStore",null),r=ze("searchSourceId",null),i=(n==null?void 0:n.filterSet)||{},l=Object.fromEntries(Object.entries(a.facets||{}).map(([j,O])=>[j,O.get])),c=new Set(Object.entries(a.facets||{}).filter(([,j])=>j&&j.dashboardOnly).map(([j])=>j)),u=ia(n,ra(a));function p(j){var be,ke;const O=((be=o==null?void 0:o.rows)==null?void 0:be.value)||[],V=Object.keys(i).filter(xe=>!j.includes(xe)),I=!!(((ke=n==null?void 0:n.searchTerm)==null?void 0:ke.value)||"").trim();if(!V.length&&!I)return O;const ae=O.filter(xe=>V.every(Se=>{const ye=l[Se];return ye?ye(xe)===i[Se]:!0}));return la(ae,u)}const g=new Set(["people","place","language","religion"]),y=Uo(Object.fromEntries((a.facetRail||[]).map(j=>[j.id,g.has(j.id)])));function A(j){y[j]=!y[j]}const k=Uo({}),S=(j,O)=>j+":"+O;function C(j,O){const V=S(j,O);k[V]=!f(j,O)}function f(j,O){const V=S(j,O);return V in k?k[V]:i[j]===O}function b(j,O,V){const I=j.reduce((ae,be)=>Math.max(ae,be.value),0)||1;return j.map(ae=>({facet:O,value:ae.key,label:ae.key,count:ae.value,frac:ae.value/I,level:V,other:!!ae.other,active:!ae.other&&i[O]===ae.key,dashboardOnly:c.has(O)}))}const d=new Map;function $(j,O,V){if(V)return d.set(j,O.map(se=>({...se,count:0,frac:0,active:!1,expanded:!1}))),O;const I=d.get(j);if(!I)return O;const ae=se=>se.facet+":"+se.value,be=new Set(O.map(ae));if(!I.filter(se=>!be.has(ae(se))).length)return O;const xe=new Map;let Se="";for(const se of I){const he=ae(se);if(be.has(he)){Se=he;continue}xe.has(Se)||xe.set(Se,[]),xe.get(Se).push({...se,zero:!0})}const ye=[];for(const se of xe.get("")||[])ye.push(se);for(let se=0;sehe.level;)ye.push(O[++se]);for(const _ of ve)ye.push(_)}}return ye}function L(j,O){return b(qr(p([j]),l[j],O??24),j,0)}function w(j,O){const V=[],I=(ae,be)=>{const ke=j[ae],xe=(O&&O[ae])??(ae===j.length-1?40:30);let Se=p(j.slice(ae));be.length&&(Se=Se.filter(se=>be.every(([he,ve])=>{const _=l[he];return _?_(se)===ve:!0})));const ye=b(qr(Se,l[ke],xe),ke,ae);for(const se of ye)se.hasChildren=!se.other&&ae{var V;const j=new Map,O=a.facets&&a.facets.religion_family;if(!O||!O.famKey)return j;for(const I of((V=o==null?void 0:o.rows)==null?void 0:V.value)||[]){const ae=O.get(I);ae&&!j.has(ae)&&j.set(ae,O.famKey(I))}return j}),pe=ie(()=>{var j;return!Object.keys(i).length&&!(((j=n==null?void 0:n.searchTerm)==null?void 0:j.value)||"").trim()}),M=ie(()=>(a.facetRail||[]).map(j=>{let O=j.drill?w(j.drill,j.topN):L(j.facet,j.topN);if(O=$(j.id,O,pe.value),j.tree==="affinity"){const V=D.value;O=O.map(I=>I.other?I:{...I,label:V[I.facet]&&V[I.facet].get(I.value)||I.label})}return O=B(O,j.axis,Y.value),{id:j.id,title:j.title,axis:j.axis,rows:F(O)}})),ee=ie(()=>{var V;const j=((V=o==null?void 0:o.rows)==null?void 0:V.value)||[],O=Object.keys(i);return O.length?j.filter(I=>O.every(ae=>{const be=l[ae];return be?be(I)===i[ae]:!0})).length:j.length});function K(j){const O=j.target;if(!O||!O.closest)return;const V=O.closest("[data-expand]");if(V){const ke=V.getAttribute("data-expand"),xe=V.getAttribute("data-expand-value");ke&&xe!=null&&(j.stopPropagation(),C(ke,xe));return}const I=O.closest("[data-facet]");if(!I||!n)return;const ae=I.getAttribute("data-facet"),be=I.getAttribute("data-value");!ae||!be||n.setFilter(ae,i[ae]===be?null:be)}function z(j){if(j.key!=="Enter"&&j.key!==" "&&j.key!=="Spacebar")return;const O=j.target&&j.target.closest?j.target.closest("[data-facet]"):null;if(!O||!n)return;j.preventDefault();const V=O.getAttribute("data-facet"),I=O.getAttribute("data-value");!V||!I||n.setFilter(V,i[V]===I?null:I)}const re=de(null);return yt(()=>{n&&n.on("mapFocus",({value:j}={})=>{if(!j||!re.value)return;const V=[...re.value.querySelectorAll(".fr-row")].find(I=>I.textContent&&I.textContent.includes(j));V&&(re.value.scrollTop=Math.max(0,V.offsetTop-8))})}),Ot(` .rd-facets{ display:flex; flex-direction:column; height:100%; min-height:0; box-sizing:border-box; background:var(--rd-panel,#fff); } .rd-facets .fr-head{ flex:0 0 auto; padding:var(--s3,12px) var(--s3,12px) var(--s2,8px); border-bottom:1px solid var(--rd-line, #d1d4cd); } @@ -483,7 +483,7 @@ .fr-cnt{ flex:0 0 auto; font-variant-numeric:tabular-nums; color:var(--dx-muted, #6d766e); min-width:30px; text-align:right; font-size:11px; margin-left:8px; } .fr-row.dash-only .fr-donly{ flex:0 0 auto; margin-left:6px; font-size:10px; line-height:1; color:var(--dx-muted, #6d766e); opacity:.75; } -`,"rd-facetrail"),(I,O)=>(H(),Z("aside",h0,[R("div",m0,[R("div",b0,ue(t("vertical_legend","Vertical Legend")),1),R("div",$0,[R("b",null,ue(Q.value.toLocaleString("en-US")),1),ct(" "+ue(t("groups_in_scope","groups in scope")),1)])]),R("div",{class:"fr-body",ref_key:"railEl",ref:se,onClick:X,onKeydown:B},[(H(!0),Z(Ce,null,et(M.value,V=>(H(),Z("div",{key:V.id,class:"fr-sec","data-facet-section":V.id},[R("div",{class:qe(["fr-sech",{closed:!y[V.id]}]),onClick:dn(D=>A(V.id),["stop"])},[R("span",null,ue(V.title),1),O[0]||(O[0]=R("span",{class:"chev"},"▾",-1))],10,y0),Mt(R("div",v0,[(H(!0),Z(Ce,null,et(V.rows,D=>(H(),Z("div",{key:D.facet+":"+D.value,class:qe(["fr-row",["l"+D.level,{on:D.active,other:D.other,zero:D.zero,inert:D.other||D.zero,"dash-only":D.dashboardOnly}]]),"data-facet":D.other||D.zero?null:D.facet,"data-value":D.other||D.zero?null:D.value,tabindex:D.other||D.zero?null:0,role:D.other||D.zero?null:"button","aria-pressed":D.other||D.zero?null:D.active?"true":"false","aria-label":D.other||D.zero?null:(D.active?t("remove_filter","Remove filter"):t("filter_by","Filter by"))+" "+D.label+", "+D.count.toLocaleString("en-US")+" "+t("groups","groups")+(D.dashboardOnly?". Updates the charts on this dashboard only; it does not filter the list below.":""),title:D.dashboardOnly?"Updates this dashboard only — the list below does not filter on "+D.label:null},[(H(!0),Z(Ce,null,et(D.trunks,(ae,ge)=>(H(),Z("span",{key:"tr"+ge,class:qe(["fr-trunk","fr-trunk-"+ae])},null,2))),128)),D.hasChildren?(H(),Z("button",{key:0,type:"button",class:qe(["fr-caret-btn",{open:D.expanded}]),"data-expand":D.facet,"data-expand-value":D.value,"aria-expanded":D.expanded?"true":"false","aria-label":(D.expanded?t("collapse","Collapse"):t("expand","Expand"))+" "+D.label},[...O[1]||(O[1]=[R("span",{class:"fr-caret-gl","aria-hidden":"true"},"▸",-1)])],10,x0)):(H(),Z("span",k0)),D.swatch?(H(),Z("span",{key:2,class:"fr-sw",style:rt({background:D.swatch}),"aria-hidden":"true"},null,4)):Fe("",!0),R("span",L0,ue(D.label),1),R("span",A0,[R("i",{style:rt({width:Math.max(4,D.frac*100)+"%"})},null,4)]),R("span",S0,ue(D.count.toLocaleString("en-US")),1),D.dashboardOnly?(H(),Z("span",P0,"◐")):Fe("",!0)],10,w0))),128))],512),[[Vt,y[V.id]]])],8,_0))),128))],544)]))}},C0=["data-sel-count","data-fullscreen"],T0=["data-collapsed"],R0=["title","aria-expanded"],N0={class:"ct","data-table-count":""},O0={key:0,class:"rd-pill","data-sel-pill":"",role:"status"},F0=["aria-pressed"],M0=["aria-pressed"],I0={key:2,class:"rd-toast","data-export-toast":""},D0=["aria-pressed","title","aria-label"],j0=["aria-busy","title","onKeydown"],z0={key:0,class:"rd-csv-n"},G0=["data-sort-by","aria-rowcount"],U0=["title"],B0=["checked","aria-label"],V0=["title","aria-sort","data-col","onClick"],q0={class:"ind"},W0=["data-slug","aria-selected","aria-rowindex"],H0={class:"rd-td chk",role:"gridcell"},K0=["checked","aria-label"],X0={class:"rd-foot",role:"row"},Y0=90,Z0=9.9,J0=12,ca=26,Q0={__name:"DashboardDataTable",setup(e){const t=ze("dashboardData",null),o=ze("selectionBus",null),n=ze("dashboardConfig",{}),a=K=>{if(typeof K=="number")return K;const me=parseFloat(String(K??"").replace(/[^0-9.\-]/g,""));return isNaN(me)?null:me},s=K=>K==null?"":Number(K).toLocaleString("en-US"),r=re(()=>n.columns||[]);function i(K){const me=Number(K&&K.minW);if(Number.isFinite(me)&&me>0)return me;const ve=String(K&&K.label||"");return ve?Math.ceil(ve.length*Z0)+J0:Y0}function l(K){const me=Number(K&&K.w);return{flex:`${Number.isFinite(me)&&me>0?me:1} 1 0`,minWidth:i(K)+"px"}}const c=re(()=>r.value.reduce((K,me)=>K+i(me),30)),u=re(()=>({minWidth:c.value+"px"})),p=Object.fromEntries(Object.entries(n.facets||{}).map(([K,me])=>[K,me.get])),g=re(()=>{var K;return((K=t==null?void 0:t.rows)==null?void 0:K.value)||[]}),y=(o==null?void 0:o.filterSet)||{},A=o==null?void 0:o.selectionSet;function k(K,me,ve){const Ie=p[me];if(!Ie)return!0;const Ge=Ie(K);return Array.isArray(ve)?ve.includes(Ge):Ge===ve}const S=ia(o,ra(n)),C=re(()=>{var Ie;const K=Object.keys(y),me=!!(((Ie=o==null?void 0:o.searchTerm)==null?void 0:Ie.value)||"").trim();if(!K.length&&!me)return g.value;const ve=g.value.filter(Ge=>K.every(Tt=>k(Ge,Tt,y[Tt])));return la(ve,S)}),f=de([]);function b(K,me){const ve=!!(me&&me.shiftKey),Ie=f.value.findIndex(Ge=>Ge.key===K.key);if(Ie<0)f.value=(ve?[...f.value]:[]).concat({key:K.key,dir:"asc"});else if(f.value[Ie].dir==="asc"){const Ge=[...f.value];Ge[Ie]={key:K.key,dir:"desc"},f.value=Ge}else f.value=ve?f.value.filter(Ge=>Ge.key!==K.key):[]}function d(K){const me=f.value.find(ve=>ve.key===K.key);return me?me.dir==="asc"?"ascending":"descending":"none"}const $=re(()=>{const K=f.value;if(!K.length)return C.value;const me=K.map(ve=>({col:r.value.find(Ie=>Ie.key===ve.key),dir:ve.dir==="asc"?1:-1}));return C.value.slice().sort((ve,Ie)=>{for(const{col:Ge,dir:Tt}of me){let St=Ge.get(ve),jt=Ge.get(Ie);if((St==null||St==="")&&(St=Ge.type==="num"?-1/0:""),(jt==null||jt==="")&&(jt=Ge.type==="num"?-1/0:""),Stjt)return 1*Tt}return 0})}),L=de(!1),w=de(!1);function F(){L.value=!L.value}function U(){w.value=!w.value}const ne=()=>o&&o.selectionVersion?o.selectionVersion.value:0,z=re(()=>{let K=$.value;if(L.value&&(ne(),K=K.filter(me=>A&&A.has(me.slug))),w.value){ne();const me=[],ve=[];for(const Ie of K)(A&&A.has(Ie.slug)?me:ve).push(Ie);K=me.concat(ve)}return K}),Y=de(0),fe=de(360),M=de(null);let Q=null;const X=de(0);function B(K){Y.value=K.target.scrollTop,X.value=K.target.scrollLeft}const se=re(()=>Math.max(0,Math.floor(Y.value/ca)-6)),I=re(()=>Math.ceil(fe.value/ca)+12),O=re(()=>z.value.slice(se.value,se.value+I.value)),V=re(()=>se.value*ca),D=re(()=>Math.max(0,(z.value.length-(se.value+O.value.length))*ca));yt(()=>{M.value&&(fe.value=M.value.clientHeight||360,Q=new ResizeObserver(()=>{fe.value=M.value.clientHeight||fe.value}),Q.observe(M.value)),o&&o.on("toggleTable",K=>{oe.value=!!K}),o&&o.on("focusRow",({slug:K}={})=>{if(!K||!M.value)return;const me=z.value.findIndex(ve=>ve.slug===K);me>=0&&(M.value.scrollTop=Math.max(0,me*ca-fe.value/2))})}),yt(()=>{typeof document<"u"&&document.addEventListener("keydown",W)}),It(()=>{Q&&Q.disconnect(),clearTimeout(Ke),typeof document<"u"&&document.removeEventListener("keydown",W)});const ae=re(()=>(ne(),A?A.size:0)),ge=K=>!!(A&&A.has(K.slug)),ke=re(()=>ne()),be=de(null),$e=de("select");let Pe=new Set;function ce(K,me){be.value=K,$e.value=me,Pe=new Set(A)}function _e(K,me){const ve=z.value,Ie=ve.findIndex(lo=>lo.slug===K),Ge=ve.findIndex(lo=>lo.slug===me);if(Ie<0||Ge<0)return[];const[Tt,St]=Ie<=Ge?[Ie,Ge]:[Ge,Ie],jt=[];for(let lo=Tt;lo<=St;lo++)jt.push(ve[lo].slug);return jt}function xe(K,me){if(!o||!K)return;const ve=!!(me&&(me.ctrlKey||me.metaKey));if(!!(me&&me.shiftKey)&&be.value){const Ge=_e(be.value,K);if(!Ge.length)return;if(ve){const Tt=new Set(Pe);if($e.value==="deselect")for(const St of Ge)Tt.delete(St);else for(const St of Ge)Tt.add(St);o.setSelection(Tt)}else o.setSelection(Ge);return}if(ve){const Ge=!A.has(K);ce(K,Ge?"select":"deselect"),o.toggleSelect(K),Pe=new Set(A);return}ce(K,"select"),o.setSelection([K]),Pe=new Set(A)}function _(K){const me=K.target;if(!me||!me.closest)return;const ve=me.closest(".rd-row");if(!ve||!o)return;const Ie=ve.getAttribute("data-slug");if(Ie){if(me.closest(".rd-td.chk")){if(K.shiftKey||K.ctrlKey||K.metaKey){xe(Ie,K);return}ce(Ie,A.has(Ie)?"deselect":"select"),o.toggleSelect(Ie),Pe=new Set(A);return}xe(Ie,K)}}function P(K){K.shiftKey&&K.target&&K.target.closest&&K.target.closest(".rd-row")&&K.preventDefault()}const x=re(()=>{ne();const K=C.value;if(!K.length)return!1;for(const me of K)if(!A.has(me.slug))return!1;return!0}),G=re(()=>{if(ne(),x.value)return!1;for(const K of C.value)if(A.has(K.slug))return!0;return!1});function ee(){if(!o)return;const K=C.value.map(me=>me.slug);x.value?o.deselectMany(K):o.selectMany(K),be.value=null,Pe=new Set(A)}const te=de(null);function le(K){te.value=K||null}lt([G,te],()=>{te.value&&(te.value.indeterminate=G.value)},{immediate:!0}),lt([f,()=>C.value.length,L,w],()=>{be.value=null}),lt(ae,K=>{K||(L.value=!1)});const oe=de(!1);function h(){oe.value=!oe.value,o&&o.emit("toggleTable",oe.value)}const m=de(!1),v=de(null);function E(){const K=v.value,me=K&&K.getRootNode?K.getRootNode():document,ve=me&&me.fullscreenElement||document.fullscreenElement;m.value=!!(ve&&K&&(ve===K||ve.contains&&ve.contains(K)))}typeof document<"u"&&document.addEventListener("fullscreenchange",E),It(()=>{typeof document<"u"&&document.removeEventListener("fullscreenchange",E)});function q(){const K=v.value;if(K&&K.requestFullscreen){document.fullscreenElement?document.exitFullscreen().catch(()=>{}):K.requestFullscreen().then(E).catch(()=>{m.value=!0}),!m.value&&oe.value&&(oe.value=!1,o&&o.emit("toggleTable",!1));return}m.value=!m.value,m.value&&oe.value&&(oe.value=!1,o&&o.emit("toggleTable",!1))}function W(K){if(K.key==="Escape"){if(document.fullscreenElement){document.exitFullscreen().catch(()=>{});return}m.value&&(m.value=!1)}}const T=re(()=>C.value.reduce((K,me)=>K+(a(me.population)||0),0)),j=re(()=>C.value.length),{labelFor:ie}=sa(n,ze("dataStore",null),ze("searchSourceId",null)),we=t&&o?zr({rowStore:t.rowStore,rows:t.rows,selectionSet:o.selectionSet,filterSet:o.filterSet,FACET_ACC:p,dataOpts:n.data,labelFor:ie}):null,Ne=de(""),Ve=de(!1);let Ke=null;async function ft(){if(!(!we||Ve.value)){Ve.value=!0;try{const K=await we.exportCsvAsync(),me=K.downloaded?"exported":K.clipboard?"copied to clipboard":"ready";Ne.value=`✓ ${s(K.rows)} rows × ${K.fields} fields ${me}`}catch{Ne.value="✕ Export failed"}finally{Ve.value=!1,clearTimeout(Ke),Ke=setTimeout(()=>{Ne.value=""},3200)}}}function bt(){we&&we.prefetchExportFields()}return Ot(` +`,"rd-facetrail"),(j,O)=>(H(),Z("aside",b0,[R("div",$0,[R("div",_0,ue(t("vertical_legend","Vertical Legend")),1),R("div",y0,[R("b",null,ue(ee.value.toLocaleString("en-US")),1),ct(" "+ue(t("groups_in_scope","groups in scope")),1)])]),R("div",{class:"fr-body",ref_key:"railEl",ref:re,onClick:K,onKeydown:z},[(H(!0),Z(Ce,null,et(M.value,V=>(H(),Z("div",{key:V.id,class:"fr-sec","data-facet-section":V.id},[R("div",{class:qe(["fr-sech",{closed:!y[V.id]}]),onClick:pn(I=>A(V.id),["stop"])},[R("span",null,ue(V.title),1),O[0]||(O[0]=R("span",{class:"chev"},"▾",-1))],10,w0),Mt(R("div",x0,[(H(!0),Z(Ce,null,et(V.rows,I=>(H(),Z("div",{key:I.facet+":"+I.value,class:qe(["fr-row",["l"+I.level,{on:I.active,other:I.other,zero:I.zero,inert:I.other||I.zero,"dash-only":I.dashboardOnly}]]),"data-facet":I.other||I.zero?null:I.facet,"data-value":I.other||I.zero?null:I.value,tabindex:I.other||I.zero?null:0,role:I.other||I.zero?null:"button","aria-pressed":I.other||I.zero?null:I.active?"true":"false","aria-label":I.other||I.zero?null:(I.active?t("remove_filter","Remove filter"):t("filter_by","Filter by"))+" "+I.label+", "+I.count.toLocaleString("en-US")+" "+t("groups","groups")+(I.dashboardOnly?". Updates the charts on this dashboard only; it does not filter the list below.":""),title:I.dashboardOnly?"Updates this dashboard only — the list below does not filter on "+I.label:null},[(H(!0),Z(Ce,null,et(I.trunks,(ae,be)=>(H(),Z("span",{key:"tr"+be,class:qe(["fr-trunk","fr-trunk-"+ae])},null,2))),128)),I.hasChildren?(H(),Z("button",{key:0,type:"button",class:qe(["fr-caret-btn",{open:I.expanded}]),"data-expand":I.facet,"data-expand-value":I.value,"aria-expanded":I.expanded?"true":"false","aria-label":(I.expanded?t("collapse","Collapse"):t("expand","Expand"))+" "+I.label},[...O[1]||(O[1]=[R("span",{class:"fr-caret-gl","aria-hidden":"true"},"▸",-1)])],10,L0)):(H(),Z("span",A0)),I.swatch?(H(),Z("span",{key:2,class:"fr-sw",style:rt({background:I.swatch}),"aria-hidden":"true"},null,4)):Fe("",!0),R("span",S0,ue(I.label),1),R("span",P0,[R("i",{style:rt({width:Math.max(4,I.frac*100)+"%"})},null,4)]),R("span",E0,ue(I.count.toLocaleString("en-US")),1),I.dashboardOnly?(H(),Z("span",C0,"◐")):Fe("",!0)],10,k0))),128))],512),[[Vt,y[V.id]]])],8,v0))),128))],544)]))}},R0=["data-sel-count","data-fullscreen"],N0=["data-collapsed"],O0=["title","aria-expanded"],F0={class:"ct","data-table-count":""},M0={key:0,class:"rd-pill","data-sel-pill":"",role:"status"},I0=["aria-pressed"],D0=["aria-pressed"],j0={key:2,class:"rd-toast","data-export-toast":""},z0=["aria-pressed","title","aria-label"],G0=["aria-busy","title","onKeydown"],U0={key:0,class:"rd-csv-n"},B0=["data-sort-by","aria-rowcount"],V0=["title"],q0=["checked","aria-label"],W0=["title","aria-sort","data-col","onClick"],H0={class:"ind"},K0=["data-slug","aria-selected","aria-rowindex"],X0={class:"rd-td chk",role:"gridcell"},Y0=["checked","aria-label"],Z0={class:"rd-foot",role:"row"},J0=90,Q0=9.9,e1=12,ca=26,t1={__name:"DashboardDataTable",setup(e){const t=ze("dashboardData",null),o=ze("selectionBus",null),n=ze("dashboardConfig",{}),a=X=>{if(typeof X=="number")return X;const me=parseFloat(String(X??"").replace(/[^0-9.\-]/g,""));return isNaN(me)?null:me},s=X=>X==null?"":Number(X).toLocaleString("en-US"),r=ie(()=>n.columns||[]);function i(X){const me=Number(X&&X.minW);if(Number.isFinite(me)&&me>0)return me;const _e=String(X&&X.label||"");return _e?Math.ceil(_e.length*Q0)+e1:J0}function l(X){const me=Number(X&&X.w);return{flex:`${Number.isFinite(me)&&me>0?me:1} 1 0`,minWidth:i(X)+"px"}}const c=ie(()=>r.value.reduce((X,me)=>X+i(me),30)),u=ie(()=>({minWidth:c.value+"px"})),p=Object.fromEntries(Object.entries(n.facets||{}).map(([X,me])=>[X,me.get])),g=ie(()=>{var X;return((X=t==null?void 0:t.rows)==null?void 0:X.value)||[]}),y=(o==null?void 0:o.filterSet)||{},A=o==null?void 0:o.selectionSet;function k(X,me,_e){const Ie=p[me];if(!Ie)return!0;const Ge=Ie(X);return Array.isArray(_e)?_e.includes(Ge):Ge===_e}const S=ia(o,ra(n)),C=ie(()=>{var Ie;const X=Object.keys(y),me=!!(((Ie=o==null?void 0:o.searchTerm)==null?void 0:Ie.value)||"").trim();if(!X.length&&!me)return g.value;const _e=g.value.filter(Ge=>X.every(Tt=>k(Ge,Tt,y[Tt])));return la(_e,S)}),f=de([]);function b(X,me){const _e=!!(me&&me.shiftKey),Ie=f.value.findIndex(Ge=>Ge.key===X.key);if(Ie<0)f.value=(_e?[...f.value]:[]).concat({key:X.key,dir:"asc"});else if(f.value[Ie].dir==="asc"){const Ge=[...f.value];Ge[Ie]={key:X.key,dir:"desc"},f.value=Ge}else f.value=_e?f.value.filter(Ge=>Ge.key!==X.key):[]}function d(X){const me=f.value.find(_e=>_e.key===X.key);return me?me.dir==="asc"?"ascending":"descending":"none"}const $=ie(()=>{const X=f.value;if(!X.length)return C.value;const me=X.map(_e=>({col:r.value.find(Ie=>Ie.key===_e.key),dir:_e.dir==="asc"?1:-1}));return C.value.slice().sort((_e,Ie)=>{for(const{col:Ge,dir:Tt}of me){let St=Ge.get(_e),jt=Ge.get(Ie);if((St==null||St==="")&&(St=Ge.type==="num"?-1/0:""),(jt==null||jt==="")&&(jt=Ge.type==="num"?-1/0:""),Stjt)return 1*Tt}return 0})}),L=de(!1),w=de(!1);function F(){L.value=!L.value}function D(){w.value=!w.value}const ne=()=>o&&o.selectionVersion?o.selectionVersion.value:0,B=ie(()=>{let X=$.value;if(L.value&&(ne(),X=X.filter(me=>A&&A.has(me.slug))),w.value){ne();const me=[],_e=[];for(const Ie of X)(A&&A.has(Ie.slug)?me:_e).push(Ie);X=me.concat(_e)}return X}),Y=de(0),pe=de(360),M=de(null);let ee=null;const K=de(0);function z(X){Y.value=X.target.scrollTop,K.value=X.target.scrollLeft}const re=ie(()=>Math.max(0,Math.floor(Y.value/ca)-6)),j=ie(()=>Math.ceil(pe.value/ca)+12),O=ie(()=>B.value.slice(re.value,re.value+j.value)),V=ie(()=>re.value*ca),I=ie(()=>Math.max(0,(B.value.length-(re.value+O.value.length))*ca));yt(()=>{M.value&&(pe.value=M.value.clientHeight||360,ee=new ResizeObserver(()=>{pe.value=M.value.clientHeight||pe.value}),ee.observe(M.value)),o&&o.on("toggleTable",X=>{oe.value=!!X}),o&&o.on("focusRow",({slug:X}={})=>{if(!X||!M.value)return;const me=B.value.findIndex(_e=>_e.slug===X);me>=0&&(M.value.scrollTop=Math.max(0,me*ca-pe.value/2))})}),yt(()=>{typeof document<"u"&&document.addEventListener("keydown",W)}),It(()=>{ee&&ee.disconnect(),clearTimeout(Ke),typeof document<"u"&&document.removeEventListener("keydown",W)});const ae=ie(()=>(ne(),A?A.size:0)),be=X=>!!(A&&A.has(X.slug)),ke=ie(()=>ne()),xe=de(null),Se=de("select");let ye=new Set;function se(X,me){xe.value=X,Se.value=me,ye=new Set(A)}function he(X,me){const _e=B.value,Ie=_e.findIndex(lo=>lo.slug===X),Ge=_e.findIndex(lo=>lo.slug===me);if(Ie<0||Ge<0)return[];const[Tt,St]=Ie<=Ge?[Ie,Ge]:[Ge,Ie],jt=[];for(let lo=Tt;lo<=St;lo++)jt.push(_e[lo].slug);return jt}function ve(X,me){if(!o||!X)return;const _e=!!(me&&(me.ctrlKey||me.metaKey));if(!!(me&&me.shiftKey)&&xe.value){const Ge=he(xe.value,X);if(!Ge.length)return;if(_e){const Tt=new Set(ye);if(Se.value==="deselect")for(const St of Ge)Tt.delete(St);else for(const St of Ge)Tt.add(St);o.setSelection(Tt)}else o.setSelection(Ge);return}if(_e){const Ge=!A.has(X);se(X,Ge?"select":"deselect"),o.toggleSelect(X),ye=new Set(A);return}se(X,"select"),o.setSelection([X]),ye=new Set(A)}function _(X){const me=X.target;if(!me||!me.closest)return;const _e=me.closest(".rd-row");if(!_e||!o)return;const Ie=_e.getAttribute("data-slug");if(Ie){if(me.closest(".rd-td.chk")){if(X.shiftKey||X.ctrlKey||X.metaKey){ve(Ie,X);return}se(Ie,A.has(Ie)?"deselect":"select"),o.toggleSelect(Ie),ye=new Set(A);return}ve(Ie,X)}}function P(X){X.shiftKey&&X.target&&X.target.closest&&X.target.closest(".rd-row")&&X.preventDefault()}const x=ie(()=>{ne();const X=C.value;if(!X.length)return!1;for(const me of X)if(!A.has(me.slug))return!1;return!0}),U=ie(()=>{if(ne(),x.value)return!1;for(const X of C.value)if(A.has(X.slug))return!0;return!1});function Q(){if(!o)return;const X=C.value.map(me=>me.slug);x.value?o.deselectMany(X):o.selectMany(X),xe.value=null,ye=new Set(A)}const te=de(null);function ce(X){te.value=X||null}it([U,te],()=>{te.value&&(te.value.indeterminate=U.value)},{immediate:!0}),it([f,()=>C.value.length,L,w],()=>{xe.value=null}),it(ae,X=>{X||(L.value=!1)});const oe=de(!1);function h(){oe.value=!oe.value,o&&o.emit("toggleTable",oe.value)}const m=de(!1),v=de(null);function E(){const X=v.value,me=X&&X.getRootNode?X.getRootNode():document,_e=me&&me.fullscreenElement||document.fullscreenElement;m.value=!!(_e&&X&&(_e===X||_e.contains&&_e.contains(X)))}typeof document<"u"&&document.addEventListener("fullscreenchange",E),It(()=>{typeof document<"u"&&document.removeEventListener("fullscreenchange",E)});function q(){const X=v.value;if(X&&X.requestFullscreen){document.fullscreenElement?document.exitFullscreen().catch(()=>{}):X.requestFullscreen().then(E).catch(()=>{m.value=!0}),!m.value&&oe.value&&(oe.value=!1,o&&o.emit("toggleTable",!1));return}m.value=!m.value,m.value&&oe.value&&(oe.value=!1,o&&o.emit("toggleTable",!1))}function W(X){if(X.key==="Escape"){if(document.fullscreenElement){document.exitFullscreen().catch(()=>{});return}m.value&&(m.value=!1)}}const T=ie(()=>C.value.reduce((X,me)=>X+(a(me.population)||0),0)),G=ie(()=>C.value.length),{labelFor:le}=sa(n,ze("dataStore",null),ze("searchSourceId",null)),we=t&&o?zr({rowStore:t.rowStore,rows:t.rows,selectionSet:o.selectionSet,filterSet:o.filterSet,FACET_ACC:p,dataOpts:n.data,labelFor:le}):null,Ne=de(""),Ve=de(!1);let Ke=null;async function ft(){if(!(!we||Ve.value)){Ve.value=!0;try{const X=await we.exportCsvAsync(),me=X.downloaded?"exported":X.clipboard?"copied to clipboard":"ready";Ne.value=`✓ ${s(X.rows)} rows × ${X.fields} fields ${me}`}catch{Ne.value="✕ Export failed"}finally{Ve.value=!1,clearTimeout(Ke),Ke=setTimeout(()=>{Ne.value=""},3200)}}}function bt(){we&&we.prefetchExportFields()}return Ot(` .rd-table-wrap{ display:flex; flex-direction:column; height:100%; min-height:0; background:#fff; font-size:12px; } .rd-table-bar{ position:relative; display:flex; align-items:center; gap:10px; padding:4px 10px; border-bottom:1px solid var(--dx-line, #d1d4cd); flex:0 0 auto; } .rd-table-bar .ttl{ font-weight:700; color:var(--rd-ink, #3b463d); } .rd-table-bar .ct{ color:var(--dx-muted, #6d766e); } @@ -548,7 +548,7 @@ .rd-table-bar .rd-fs:hover{ color:var(--dx-text,#3b463d); border-color:#b9bdb4; } .rd-table-bar .rd-fs.on{ color:#2b352c; background:var(--rd-primary,#92b195); border-color:#84a487; } .rd-table-bar .rd-fs:focus-visible{ outline:2px solid #6d8a70; outline-offset:2px; } -`,"rd-datatable"),(K,me)=>(H(),Z("div",{ref_key:"wrapEl",ref:v,class:qe(["rd-table-wrap",{"is-full":m.value}]),"data-sel-count":ae.value,"data-fullscreen":m.value?"1":"0"},[R("div",{class:"rd-table-bar","data-collapsed":oe.value?"1":"0"},[R("button",{class:"rd-dock",title:oe.value?"Expand table":"Collapse table — grow the map","data-table-dock":"","aria-expanded":oe.value?"false":"true",onClick:h},ue(oe.value?"▴":"▾"),9,R0),me[0]||(me[0]=R("span",{class:"ttl"},"People Groups",-1)),R("span",N0,ue(s(j.value))+" "+ue(j.value===1?"group":"groups"),1),ae.value?(H(),Z("span",O0,[R("span",null,ue(s(ae.value))+" selected",1)])):Fe("",!0),ae.value?(H(),Z(Ce,{key:1},[R("button",{class:qe(["rd-vtog",{on:L.value}]),"data-only-selected":"","aria-pressed":L.value?"true":"false",title:"Show only the selected people groups",onClick:F},"Only selected",10,F0),R("button",{class:qe(["rd-vtog",{on:w.value}]),"data-selected-first":"","aria-pressed":w.value?"true":"false",title:"Float the selected people groups to the top, keeping your column sort",onClick:U},"Selected first",10,M0)],64)):Fe("",!0),me[1]||(me[1]=R("span",{class:"rd-bar-sp"},null,-1)),Ne.value?(H(),Z("span",I0,ue(Ne.value),1)):Fe("",!0),R("button",{class:qe(["rd-fs",{on:m.value}]),"data-table-fullscreen":"","aria-pressed":m.value?"true":"false",title:m.value?"Exit full screen (Esc) — back to seven rows":"Open this table full screen","aria-label":m.value?"Exit full screen":"Open table full screen",onClick:q},ue(m.value?"⤡ Exit full screen":"⤢ Full screen"),11,D0),R("span",{class:qe(["rd-csv",{busy:Ve.value}]),role:"button",tabindex:"0","data-csv-btn":"","aria-busy":Ve.value?"true":"false",title:ae.value?`Export the ${ae.value} selected people groups — all fields`:`Export these ${s(j.value)} people groups — all fields`,onClick:ft,onMouseenter:bt,onFocus:bt,onKeydown:[Va(dn(ft,["prevent"]),["enter"]),Va(dn(ft,["prevent"]),["space"])]},[ct(ue(Ve.value?"…":"↓")+" Export CSV",1),ae.value?(H(),Z("span",z0,ue(ae.value),1)):Fe("",!0)],42,j0)],8,T0),Mt(R("div",{ref_key:"scroller",ref:M,class:"rd-grid",role:"grid","aria-multiselectable":"true","data-sort-scope":"view-local","data-sort-by":f.value.map(ve=>ve.key+":"+ve.dir).join(","),"aria-rowcount":z.value.length+1,onScroll:B,onClick:_,onMousedown:P},[R("div",{class:"rd-thead",role:"row",style:rt(u.value)},[R("div",{class:"rd-th chk",style:{cursor:"pointer"},title:x.value?"Deselect all "+s(j.value):"Select all "+s(j.value),onClick:ee},[R("input",{type:"checkbox",checked:x.value,ref:le,"aria-label":x.value?"Deselect all rows":"Select all rows",tabindex:"-1",style:{"pointer-events":"none"}},null,8,B0)],8,U0),(H(!0),Z(Ce,null,et(r.value,ve=>(H(),Z("div",{key:ve.key,class:qe(["rd-th",{num:ve.type==="num"}]),style:rt(l(ve)),title:`Sort this table by ${ve.label} — shift-click to add a second column. Sorting orders the table only; the cards keep their own order.`,role:"columnheader","aria-sort":d(ve),"data-col":ve.key,onClick:Ie=>b(ve,Ie)},[ct(ue(ve.label),1),R("span",q0,ue(d(ve)==="ascending"?"▲":d(ve)==="descending"?"▼":""),1)],14,V0))),128))],4),R("div",{style:rt({height:V.value+"px"})},null,4),(H(!0),Z(Ce,null,et(O.value,(ve,Ie)=>(H(),Z("div",{key:ve.slug,class:qe(["rd-row",{sel:ke.value>=0&&ge(ve)}]),role:"row","data-slug":ve.slug,"aria-selected":ge(ve)?"true":"false",style:rt(u.value),"aria-rowindex":se.value+Ie+2},[R("div",H0,[R("input",{type:"checkbox",class:"rd-rowchk",checked:ge(ve),"aria-label":"Select "+ve.name,tabindex:"-1",style:{"pointer-events":"none"}},null,8,K0)]),(H(!0),Z(Ce,null,et(r.value,Ge=>(H(),Z("div",{key:Ge.key,class:qe(["rd-td",{num:Ge.type==="num"}]),style:rt(l(Ge)),role:"gridcell"},ue(Ge.type==="num"?s(Ge.get(ve)):Ge.get(ve)),7))),128))],14,W0))),128)),R("div",{style:rt({height:D.value+"px"})},null,4)],40,G0),[[Vt,!oe.value]]),Mt(R("div",X0,[R("div",{class:"rd-foot-inner",style:rt([u.value,{transform:"translateX("+-X.value+"px)"}])},[me[2]||(me[2]=R("div",{class:"rd-td chk"},null,-1)),(H(!0),Z(Ce,null,et(r.value,(ve,Ie)=>(H(),Z("div",{key:"f-"+ve.key,class:qe(["rd-td",{num:ve.type==="num"}]),style:rt(l(ve))},[Ie===0?(H(),Z(Ce,{key:0},[ct("Σ "+ue(s(j.value))+" groups",1)],64)):ve.key==="population"?(H(),Z(Ce,{key:1},[ct(ue(s(T.value)),1)],64)):Fe("",!0)],6))),128))],4)],512),[[Vt,!oe.value]])],10,C0))}},e1={class:"rd-tabs",role:"tablist","aria-label":"Rail views"},t1=["aria-selected","disabled","title","data-tab","onClick"],o1=["data-chart"],n1={class:"rd-ct"},a1={class:"rd-donutwrap"},s1=["aria-label"],r1=["d","fill","data-facet","data-key"],i1={class:"rd-legend"},l1=["data-facet","data-key","title"],c1={class:"rd-lt"},u1=["data-chart"],d1={class:"rd-ct"},p1={class:"rd-bars"},g1=["data-facet","data-key"],f1={class:"rd-bl"},h1={class:"rd-bt"},m1={class:"rd-bv"},b1={__name:"DashboardChartsRail",setup(e){const t=[{id:"charts",get label(){return Se("dashboard.charts")||"Charts"}},{id:"gospel",get label(){return Se("dashboard.gospel_resources")||"Gospel Resources"},disabled:!0,why:"Waiting on three decisions: the official lostness number, key-less vs a registered Joshua Project key, and the UI shape. See IDEA-GOSPEL-RESOURCES-INTEGRATION-STRATEGY."}],o=de("charts"),n=ze("dashboardData",null),a=ze("selectionBus",null),s=ze("dashboardConfig",{}),r=(a==null?void 0:a.filterSet)||{},i=Object.fromEntries(Object.entries(s.facets||{}).map(([S,C])=>[S,C.get])),l=ia(a,ra(s));function c(S){var $,L;const C=(($=n==null?void 0:n.rows)==null?void 0:$.value)||[],f=Object.keys(r).filter(w=>!S.includes(w)),b=!!(((L=a==null?void 0:a.searchTerm)==null?void 0:L.value)||"").trim();if(!f.length&&!b)return C;const d=C.filter(w=>f.every(F=>{const U=i[F];return U?U(w)===r[F]:!0}));return la(d,l)}const u=re(()=>{var f,b,d,$,L;const S=(b=(f=s.facets)==null?void 0:f.country_code)==null?void 0:b.get,C=($=(d=s.facets)==null?void 0:d.wagf_region)==null?void 0:$.get;return!S||!C?null:Zv(((L=n==null?void 0:n.rows)==null?void 0:L.value)||[],S,C)}),p=re(()=>(s.charts||[]).map(S=>{var d,$;const C=(($=(d=s.facets)==null?void 0:d[S.facet])==null?void 0:$.get)||(L=>at(L[S.facet])),f=qr(c([S.facet]),C,S.topN),b=S.facet==="country_code"?u.value:null;return{id:S.id,type:S.type,facet:S.facet,title:S.title,geometry:S.type==="bar"?Qv(f,S.facet,b):Jv(f,132,.58,S.facet,b)}})),g=(S,C)=>r[S]===C,y=S=>r[S]!=null;function A(S,C){!C||C==="Other"||!a||a.setFilter(S,r[S]===C?null:C)}function k(S){const C=S.target&&S.target.closest&&S.target.closest("[data-facet]");C&&A(C.getAttribute("data-facet"),C.getAttribute("data-key"))}return Ot(` +`,"rd-datatable"),(X,me)=>(H(),Z("div",{ref_key:"wrapEl",ref:v,class:qe(["rd-table-wrap",{"is-full":m.value}]),"data-sel-count":ae.value,"data-fullscreen":m.value?"1":"0"},[R("div",{class:"rd-table-bar","data-collapsed":oe.value?"1":"0"},[R("button",{class:"rd-dock",title:oe.value?"Expand table":"Collapse table — grow the map","data-table-dock":"","aria-expanded":oe.value?"false":"true",onClick:h},ue(oe.value?"▴":"▾"),9,O0),me[0]||(me[0]=R("span",{class:"ttl"},"People Groups",-1)),R("span",F0,ue(s(G.value))+" "+ue(G.value===1?"group":"groups"),1),ae.value?(H(),Z("span",M0,[R("span",null,ue(s(ae.value))+" selected",1)])):Fe("",!0),ae.value?(H(),Z(Ce,{key:1},[R("button",{class:qe(["rd-vtog",{on:L.value}]),"data-only-selected":"","aria-pressed":L.value?"true":"false",title:"Show only the selected people groups",onClick:F},"Only selected",10,I0),R("button",{class:qe(["rd-vtog",{on:w.value}]),"data-selected-first":"","aria-pressed":w.value?"true":"false",title:"Float the selected people groups to the top, keeping your column sort",onClick:D},"Selected first",10,D0)],64)):Fe("",!0),me[1]||(me[1]=R("span",{class:"rd-bar-sp"},null,-1)),Ne.value?(H(),Z("span",j0,ue(Ne.value),1)):Fe("",!0),R("button",{class:qe(["rd-fs",{on:m.value}]),"data-table-fullscreen":"","aria-pressed":m.value?"true":"false",title:m.value?"Exit full screen (Esc) — back to seven rows":"Open this table full screen","aria-label":m.value?"Exit full screen":"Open table full screen",onClick:q},ue(m.value?"⤡ Exit full screen":"⤢ Full screen"),11,z0),R("span",{class:qe(["rd-csv",{busy:Ve.value}]),role:"button",tabindex:"0","data-csv-btn":"","aria-busy":Ve.value?"true":"false",title:ae.value?`Export the ${ae.value} selected people groups — all fields`:`Export these ${s(G.value)} people groups — all fields`,onClick:ft,onMouseenter:bt,onFocus:bt,onKeydown:[Va(pn(ft,["prevent"]),["enter"]),Va(pn(ft,["prevent"]),["space"])]},[ct(ue(Ve.value?"…":"↓")+" Export CSV",1),ae.value?(H(),Z("span",U0,ue(ae.value),1)):Fe("",!0)],42,G0)],8,N0),Mt(R("div",{ref_key:"scroller",ref:M,class:"rd-grid",role:"grid","aria-multiselectable":"true","data-sort-scope":"view-local","data-sort-by":f.value.map(_e=>_e.key+":"+_e.dir).join(","),"aria-rowcount":B.value.length+1,onScroll:z,onClick:_,onMousedown:P},[R("div",{class:"rd-thead",role:"row",style:rt(u.value)},[R("div",{class:"rd-th chk",style:{cursor:"pointer"},title:x.value?"Deselect all "+s(G.value):"Select all "+s(G.value),onClick:Q},[R("input",{type:"checkbox",checked:x.value,ref:ce,"aria-label":x.value?"Deselect all rows":"Select all rows",tabindex:"-1",style:{"pointer-events":"none"}},null,8,q0)],8,V0),(H(!0),Z(Ce,null,et(r.value,_e=>(H(),Z("div",{key:_e.key,class:qe(["rd-th",{num:_e.type==="num"}]),style:rt(l(_e)),title:`Sort this table by ${_e.label} — shift-click to add a second column. Sorting orders the table only; the cards keep their own order.`,role:"columnheader","aria-sort":d(_e),"data-col":_e.key,onClick:Ie=>b(_e,Ie)},[ct(ue(_e.label),1),R("span",H0,ue(d(_e)==="ascending"?"▲":d(_e)==="descending"?"▼":""),1)],14,W0))),128))],4),R("div",{style:rt({height:V.value+"px"})},null,4),(H(!0),Z(Ce,null,et(O.value,(_e,Ie)=>(H(),Z("div",{key:_e.slug,class:qe(["rd-row",{sel:ke.value>=0&&be(_e)}]),role:"row","data-slug":_e.slug,"aria-selected":be(_e)?"true":"false",style:rt(u.value),"aria-rowindex":re.value+Ie+2},[R("div",X0,[R("input",{type:"checkbox",class:"rd-rowchk",checked:be(_e),"aria-label":"Select "+_e.name,tabindex:"-1",style:{"pointer-events":"none"}},null,8,Y0)]),(H(!0),Z(Ce,null,et(r.value,Ge=>(H(),Z("div",{key:Ge.key,class:qe(["rd-td",{num:Ge.type==="num"}]),style:rt(l(Ge)),role:"gridcell"},ue(Ge.type==="num"?s(Ge.get(_e)):Ge.get(_e)),7))),128))],14,K0))),128)),R("div",{style:rt({height:I.value+"px"})},null,4)],40,B0),[[Vt,!oe.value]]),Mt(R("div",Z0,[R("div",{class:"rd-foot-inner",style:rt([u.value,{transform:"translateX("+-K.value+"px)"}])},[me[2]||(me[2]=R("div",{class:"rd-td chk"},null,-1)),(H(!0),Z(Ce,null,et(r.value,(_e,Ie)=>(H(),Z("div",{key:"f-"+_e.key,class:qe(["rd-td",{num:_e.type==="num"}]),style:rt(l(_e))},[Ie===0?(H(),Z(Ce,{key:0},[ct("Σ "+ue(s(G.value))+" groups",1)],64)):_e.key==="population"?(H(),Z(Ce,{key:1},[ct(ue(s(T.value)),1)],64)):Fe("",!0)],6))),128))],4)],512),[[Vt,!oe.value]])],10,R0))}},o1={class:"rd-tabs",role:"tablist","aria-label":"Rail views"},n1=["aria-selected","disabled","title","data-tab","onClick"],a1=["data-chart"],s1={class:"rd-ct"},r1={class:"rd-donutwrap"},i1=["aria-label"],l1=["d","fill","data-facet","data-key"],c1={class:"rd-legend"},u1=["data-facet","data-key","title"],d1={class:"rd-lt"},p1=["data-chart"],g1={class:"rd-ct"},f1={class:"rd-bars"},h1=["data-facet","data-key"],m1={class:"rd-bl"},b1={class:"rd-bt"},$1={class:"rd-bv"},_1={__name:"DashboardChartsRail",setup(e){const t=[{id:"charts",get label(){return Pe("dashboard.charts")||"Charts"}},{id:"gospel",get label(){return Pe("dashboard.gospel_resources")||"Gospel Resources"},disabled:!0,why:"Waiting on three decisions: the official lostness number, key-less vs a registered Joshua Project key, and the UI shape. See IDEA-GOSPEL-RESOURCES-INTEGRATION-STRATEGY."}],o=de("charts"),n=ze("dashboardData",null),a=ze("selectionBus",null),s=ze("dashboardConfig",{}),r=(a==null?void 0:a.filterSet)||{},i=Object.fromEntries(Object.entries(s.facets||{}).map(([S,C])=>[S,C.get])),l=ia(a,ra(s));function c(S){var $,L;const C=(($=n==null?void 0:n.rows)==null?void 0:$.value)||[],f=Object.keys(r).filter(w=>!S.includes(w)),b=!!(((L=a==null?void 0:a.searchTerm)==null?void 0:L.value)||"").trim();if(!f.length&&!b)return C;const d=C.filter(w=>f.every(F=>{const D=i[F];return D?D(w)===r[F]:!0}));return la(d,l)}const u=ie(()=>{var f,b,d,$,L;const S=(b=(f=s.facets)==null?void 0:f.country_code)==null?void 0:b.get,C=($=(d=s.facets)==null?void 0:d.wagf_region)==null?void 0:$.get;return!S||!C?null:Qv(((L=n==null?void 0:n.rows)==null?void 0:L.value)||[],S,C)}),p=ie(()=>(s.charts||[]).map(S=>{var d,$;const C=(($=(d=s.facets)==null?void 0:d[S.facet])==null?void 0:$.get)||(L=>at(L[S.facet])),f=qr(c([S.facet]),C,S.topN),b=S.facet==="country_code"?u.value:null;return{id:S.id,type:S.type,facet:S.facet,title:S.title,geometry:S.type==="bar"?t0(f,S.facet,b):e0(f,132,.58,S.facet,b)}})),g=(S,C)=>r[S]===C,y=S=>r[S]!=null;function A(S,C){!C||C==="Other"||!a||a.setFilter(S,r[S]===C?null:C)}function k(S){const C=S.target&&S.target.closest&&S.target.closest("[data-facet]");C&&A(C.getAttribute("data-facet"),C.getAttribute("data-key"))}return Ot(` .rd-charts{ display:flex; flex-direction:column; gap:var(--s2,8px); height:100%; min-height:0; padding:6px 2px 6px 6px; background:var(--rd-panel,#fff); overflow-y:auto; overflow-x:hidden; box-sizing:border-box; @@ -600,7 +600,7 @@ .rd-bt{ flex:1 1 auto; height:11px; background:var(--dx-surface, #f3f3f1); border-radius:3px; overflow:hidden; } .rd-bf{ display:block; height:100%; border-radius:3px; transition:width .35s cubic-bezier(.4,0,.2,1); } .rd-bv{ flex:0 0 auto; color:var(--rd-muted, #6d766e); font-variant-numeric:tabular-nums; min-width:30px; text-align:right; } -`,"rd-charts"),(S,C)=>(H(),Z("aside",{class:"rd-charts","data-region":"charts-rail",onClick:k},[R("div",e1,[(H(),Z(Ce,null,et(t,f=>R("button",{key:f.id,class:qe(["rd-tab",{on:o.value===f.id,off:f.disabled}]),role:"tab",type:"button","aria-selected":o.value===f.id?"true":"false",disabled:f.disabled,title:f.disabled?f.why:f.label,"data-tab":f.id,onClick:dn(b=>!f.disabled&&(o.value=f.id),["stop"])},ue(f.label),11,t1)),64))]),(H(!0),Z(Ce,null,et(p.value,f=>(H(),Z(Ce,{key:f.id},[f.type==="donut"?(H(),Z("div",{key:0,class:"rd-chart","data-chart":f.facet},[R("div",n1,ue(f.title),1),R("div",a1,[(H(),Z("svg",{class:qe(["rd-donut",{"has-sel":y(f.facet)}]),viewBox:"0 0 132 132",role:"img","aria-label":f.title+" donut"},[(H(!0),Z(Ce,null,et(f.geometry,b=>(H(),Z("path",{key:b.key,d:b.path,fill:b.color,class:qe(["rd-slice",{on:g(f.facet,b.key)}]),"data-facet":f.facet,"data-key":b.key},[R("title",null,ue(b.key)+": "+ue(b.value)+" ("+ue(b.pct)+"%)",1)],10,r1))),128))],10,s1)),R("div",i1,[(H(!0),Z(Ce,null,et(f.geometry,b=>(H(),Z("span",{key:b.key,class:qe(["rd-li",{on:g(f.facet,b.key)}]),"data-facet":f.facet,"data-key":b.key,title:b.key+": "+b.value},[R("i",{style:rt({background:b.color})},null,4),R("span",c1,ue(b.key),1),R("b",null,ue(b.value),1)],10,l1))),128))])])],8,o1)):(H(),Z("div",{key:1,class:"rd-chart","data-chart":f.facet},[R("div",d1,ue(f.title),1),R("div",p1,[(H(!0),Z(Ce,null,et(f.geometry,b=>(H(),Z("div",{key:b.key,class:qe(["rd-bar",{on:g(f.facet,b.key)}]),"data-facet":f.facet,"data-key":b.key},[R("span",f1,ue(b.key),1),R("span",h1,[R("span",{class:"rd-bf",style:rt({width:b.frac*100+"%",background:b.color})},null,4)]),R("span",m1,ue(b.value),1)],10,g1))),128))])],8,u1))],64))),128))]))}},$1={class:"rd-detail","data-region":"detail-drawer"},_1={class:"rd-dh"},y1={key:0,class:"rd-empty","data-detail-empty":""},v1={class:"rd-top"},w1=["src","alt"],x1={key:1,class:"rd-ph","data-detail-thumb":""},k1={class:"rd-name","data-detail-name":""},L1={class:"rd-meta"},A1={class:"rd-actions"},S1=["href","title"],P1=["href","title"],E1={class:"rd-rows"},C1={class:"rd-row"},T1={class:"v"},R1={key:0,class:"fam"},N1={class:"rd-row"},O1={class:"v"},F1={class:"rd-row"},M1={class:"v"},I1={class:"rd-row"},D1={class:"v"},j1={class:"rd-row"},z1={class:"v"},G1={class:"rd-row"},U1={class:"v"},B1={__name:"DashboardDetailDrawer",setup(e){const t=ze("dashboardData",null),o=ze("selectionBus",null),n=ze("dashboardConfig",{}),a=Object.fromEntries(Object.entries(n.facets||{}).map(([d,$])=>[d,$.get])),{labelFor:s}=sa(n,ze("dataStore",null),ze("searchSourceId",null)),r=t&&o?zr({rowStore:t.rowStore,rows:t.rows,selectionSet:o.selectionSet,filterSet:o.filterSet,FACET_ACC:a,labelFor:s}):null,i=de(null),l=[];yt(()=>{o&&(l.push(o.on("focusRow",d=>{d&&d.slug&&(i.value=d.slug)})),l.push(o.on("select",d=>{const $=d?[...d]:[];$.length&&(i.value=$[$.length-1])})))}),It(()=>{l.forEach(d=>{try{d()}catch{}}),l.length=0});const c=re(()=>{const d=i.value;return!d||!t||!t.rowStore||!t.rowStore.value?null:t.rowStore.value.get(d)||null}),u=d=>d==null||d===""?"—":Number(d).toLocaleString("en-US"),p=re(()=>{const d=c.value;return d?n.detail&&typeof n.detail.photo=="function"?!!n.detail.photo(d):!!(d.has_photo&&d.image_url):!1}),g=re(()=>n.detail||{});function y(d,$,L){if(typeof d=="function")try{return d($)||L}catch{return L}return typeof d=="string"&&d?d.replace("{slug}",encodeURIComponent($.slug||"")):L}const A=re(()=>{const d=c.value;if(!d)return null;const $=(()=>{try{return new URLSearchParams(window.location.search).get("utm_source")||""}catch{return""}})(),L=encodeURIComponent(String($||g.value.utmSource||n.utmSource||"agwm")),w=`https://pray.doxa.life/${encodeURIComponent(d.slug||"")}?source=doxalife&utm_source=${L}`;return y(g.value.prayUrl,d,w)}),k=re(()=>{var U;const d=c.value;if(!d)return null;const $=typeof window<"u"&&((U=window.location)==null?void 0:U.origin)||"https://doxa.life",L=(()=>{try{return new URLSearchParams(window.location.search).get("utm_source")||""}catch{return""}})(),w=encodeURIComponent(String(L||g.value.utmSource||n.utmSource||"agwm")),F=`${$}/research/${encodeURIComponent(d.slug||"")}/?utm_source=${w}`;return y(g.value.moreInfoUrl,d,F)}),S=re(()=>g.value.prayLabel||"Pray for this people group"),C=re(()=>g.value.moreInfoLabel||"More information");function f(){!r||!o||(!o.selectionSet.size&&i.value&&o.toggleSelect(i.value),r.exportCsv())}function b(){i.value=null,o&&typeof o.clearSelection=="function"&&o.clearSelection()}return Ot(` +`,"rd-charts"),(S,C)=>(H(),Z("aside",{class:"rd-charts","data-region":"charts-rail",onClick:k},[R("div",o1,[(H(),Z(Ce,null,et(t,f=>R("button",{key:f.id,class:qe(["rd-tab",{on:o.value===f.id,off:f.disabled}]),role:"tab",type:"button","aria-selected":o.value===f.id?"true":"false",disabled:f.disabled,title:f.disabled?f.why:f.label,"data-tab":f.id,onClick:pn(b=>!f.disabled&&(o.value=f.id),["stop"])},ue(f.label),11,n1)),64))]),(H(!0),Z(Ce,null,et(p.value,f=>(H(),Z(Ce,{key:f.id},[f.type==="donut"?(H(),Z("div",{key:0,class:"rd-chart","data-chart":f.facet},[R("div",s1,ue(f.title),1),R("div",r1,[(H(),Z("svg",{class:qe(["rd-donut",{"has-sel":y(f.facet)}]),viewBox:"0 0 132 132",role:"img","aria-label":f.title+" donut"},[(H(!0),Z(Ce,null,et(f.geometry,b=>(H(),Z("path",{key:b.key,d:b.path,fill:b.color,class:qe(["rd-slice",{on:g(f.facet,b.key)}]),"data-facet":f.facet,"data-key":b.key},[R("title",null,ue(b.key)+": "+ue(b.value)+" ("+ue(b.pct)+"%)",1)],10,l1))),128))],10,i1)),R("div",c1,[(H(!0),Z(Ce,null,et(f.geometry,b=>(H(),Z("span",{key:b.key,class:qe(["rd-li",{on:g(f.facet,b.key)}]),"data-facet":f.facet,"data-key":b.key,title:b.key+": "+b.value},[R("i",{style:rt({background:b.color})},null,4),R("span",d1,ue(b.key),1),R("b",null,ue(b.value),1)],10,u1))),128))])])],8,a1)):(H(),Z("div",{key:1,class:"rd-chart","data-chart":f.facet},[R("div",g1,ue(f.title),1),R("div",f1,[(H(!0),Z(Ce,null,et(f.geometry,b=>(H(),Z("div",{key:b.key,class:qe(["rd-bar",{on:g(f.facet,b.key)}]),"data-facet":f.facet,"data-key":b.key},[R("span",m1,ue(b.key),1),R("span",b1,[R("span",{class:"rd-bf",style:rt({width:b.frac*100+"%",background:b.color})},null,4)]),R("span",$1,ue(b.value),1)],10,h1))),128))])],8,p1))],64))),128))]))}},y1={class:"rd-detail","data-region":"detail-drawer"},v1={class:"rd-dh"},w1={key:0,class:"rd-empty","data-detail-empty":""},x1={class:"rd-top"},k1=["src","alt"],L1={key:1,class:"rd-ph","data-detail-thumb":""},A1={class:"rd-name","data-detail-name":""},S1={class:"rd-meta"},P1={class:"rd-actions"},E1=["href","title"],C1=["href","title"],T1={class:"rd-rows"},R1={class:"rd-row"},N1={class:"v"},O1={key:0,class:"fam"},F1={class:"rd-row"},M1={class:"v"},I1={class:"rd-row"},D1={class:"v"},j1={class:"rd-row"},z1={class:"v"},G1={class:"rd-row"},U1={class:"v"},B1={class:"rd-row"},V1={class:"v"},q1={__name:"DashboardDetailDrawer",setup(e){const t=ze("dashboardData",null),o=ze("selectionBus",null),n=ze("dashboardConfig",{}),a=Object.fromEntries(Object.entries(n.facets||{}).map(([d,$])=>[d,$.get])),{labelFor:s}=sa(n,ze("dataStore",null),ze("searchSourceId",null)),r=t&&o?zr({rowStore:t.rowStore,rows:t.rows,selectionSet:o.selectionSet,filterSet:o.filterSet,FACET_ACC:a,labelFor:s}):null,i=de(null),l=[];yt(()=>{o&&(l.push(o.on("focusRow",d=>{d&&d.slug&&(i.value=d.slug)})),l.push(o.on("select",d=>{const $=d?[...d]:[];$.length&&(i.value=$[$.length-1])})))}),It(()=>{l.forEach(d=>{try{d()}catch{}}),l.length=0});const c=ie(()=>{const d=i.value;return!d||!t||!t.rowStore||!t.rowStore.value?null:t.rowStore.value.get(d)||null}),u=d=>d==null||d===""?"—":Number(d).toLocaleString("en-US"),p=ie(()=>{const d=c.value;return d?n.detail&&typeof n.detail.photo=="function"?!!n.detail.photo(d):!!(d.has_photo&&d.image_url):!1}),g=ie(()=>n.detail||{});function y(d,$,L){if(typeof d=="function")try{return d($)||L}catch{return L}return typeof d=="string"&&d?d.replace("{slug}",encodeURIComponent($.slug||"")):L}const A=ie(()=>{const d=c.value;if(!d)return null;const $=(()=>{try{return new URLSearchParams(window.location.search).get("utm_source")||""}catch{return""}})(),L=encodeURIComponent(String($||g.value.utmSource||n.utmSource||"agwm")),w=`https://pray.doxa.life/${encodeURIComponent(d.slug||"")}?source=doxalife&utm_source=${L}`;return y(g.value.prayUrl,d,w)}),k=ie(()=>{var D;const d=c.value;if(!d)return null;const $=typeof window<"u"&&((D=window.location)==null?void 0:D.origin)||"https://doxa.life",L=(()=>{try{return new URLSearchParams(window.location.search).get("utm_source")||""}catch{return""}})(),w=encodeURIComponent(String(L||g.value.utmSource||n.utmSource||"agwm")),F=`${$}/research/${encodeURIComponent(d.slug||"")}/?utm_source=${w}`;return y(g.value.moreInfoUrl,d,F)}),S=ie(()=>g.value.prayLabel||"Pray for this people group"),C=ie(()=>g.value.moreInfoLabel||"More information");function f(){!r||!o||(!o.selectionSet.size&&i.value&&o.toggleSelect(i.value),r.exportCsv())}function b(){i.value=null,o&&typeof o.clearSelection=="function"&&o.clearSelection()}return Ot(` .rd-detail{ box-sizing:border-box; background:var(--rd-panel,#fff); border-left:1px solid var(--rd-line, #d1d4cd); border-bottom:1px solid var(--rd-line, #d1d4cd); padding:var(--s3,12px); font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; color:var(--rd-ink, #3b463d); flex:0 0 auto; } @@ -639,7 +639,7 @@ .rd-detail .rd-act-info{ flex:0 1 auto; background:var(--rd-bg, #f3f3f1); color:var(--rd-ink, #3b463d); border:1px solid var(--rd-line, #d1d4cd); } .rd-detail .rd-act-info:hover{ background:var(--rd-panel,#fff); border-color:var(--rd-muted, #6d766e); } -`,"rd-detaildrawer"),(d,$)=>(H(),Z("section",$1,[R("div",_1,[$[0]||($[0]=R("span",null,"Detail",-1)),c.value?(H(),Z("button",{key:0,class:"rd-detail-close",type:"button","aria-label":"Close detail","data-detail-close":"",onClick:b},"✕")):Fe("",!0)]),c.value?(H(),Z(Ce,{key:1},[R("div",v1,[p.value?(H(),Z("img",{key:0,class:"rd-thumb",src:c.value.image_url,alt:c.value.name,"data-detail-thumb":""},null,8,w1)):(H(),Z("div",x1,"No photo")),R("div",null,[R("div",k1,ue(c.value.name||"—"),1),R("div",L1,ue(he(at)(c.value.country_code)||"—")+" · "+ue(he(at)(c.value.religion)||"—"),1)])]),R("div",A1,[A.value?(H(),Z("a",{key:0,class:"rd-act rd-act-pray",href:A.value,target:"_blank",rel:"noopener",title:S.value,"data-detail-pray":""},[$[1]||($[1]=R("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true"},[R("path",{d:"M8 2L10 6L14 6.5L11 9.5L11.5 14L8 12L4.5 14L5 9.5L2 6.5L6 6L8 2Z",fill:"currentColor"})],-1)),R("span",null,ue(S.value),1)],8,S1)):Fe("",!0),k.value?(H(),Z("a",{key:1,class:"rd-act rd-act-info",href:k.value,target:"_blank",rel:"noopener",title:C.value,"data-detail-moreinfo":""},[$[2]||($[2]=R("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true"},[R("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor","stroke-width":"2",fill:"none"}),R("path",{d:"M8 6V8M8 10H8.01",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),R("span",null,ue(C.value),1)],8,P1)):Fe("",!0)]),R("div",E1,[R("div",C1,[$[3]||($[3]=R("span",{class:"k"},"Language",-1)),R("span",T1,[ct(ue(he(at)(c.value.primary_language)||"—"),1),c.value.imb_language_family?(H(),Z("span",R1," ("+ue(c.value.imb_language_family)+")",1)):Fe("",!0)])]),R("div",N1,[$[4]||($[4]=R("span",{class:"k"},"Population",-1)),R("span",O1,ue(u(c.value.population)),1)]),R("div",F1,[$[5]||($[5]=R("span",{class:"k"},"People praying",-1)),R("span",M1,ue(u(c.value.people_praying)),1)]),R("div",I1,[$[6]||($[6]=R("span",{class:"k"},"People committed",-1)),R("span",D1,ue(u(c.value.people_committed)),1)]),R("div",j1,[$[7]||($[7]=R("span",{class:"k"},"Adopted by churches",-1)),R("span",z1,ue(u(c.value.adopted_by_churches)),1)]),R("div",G1,[$[8]||($[8]=R("span",{class:"k"},"Engagement",-1)),R("span",U1,ue(he(at)(c.value.engagement_status)||"—"),1)])]),R("button",{class:"rd-exp",type:"button","data-detail-export":"",onClick:f},"Export this selection ↓")],64)):(H(),Z("div",y1,"Select a people group to see detail"))]))}},V1="rgba(120, 128, 134, 0.28)",ed="36px",td=()=>{};function q1(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return td;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return td;const a=f=>f.classList.contains("map-scroll-edge--left");for(const f of n)f.style.background=`linear-gradient(${a(f)?"to right":"to left"}, ${V1} ${ed}, transparent ${ed})`,f.style.opacity="0",f.style.transition="opacity 0.16s ease",f.style.userSelect="none",f.style.webkitUserSelect="none";const s=f=>{f.style.opacity="1"},r=f=>{f.style.opacity="0"},i=()=>n.find(f=>!a(f))||null,l=new Set;let c=!1,u=null;const p=()=>{for(const f of n)l.has(f)||r(f)},g=()=>{const f=i();f&&(s(f),u&&clearTimeout(u),u=setTimeout(p,250))},y=()=>g(),A=f=>{if(!(f.touches&&f.touches.length===1))return;const b=f.target;b&&b.classList&&b.classList.contains("map-scroll-edge")||g()},k=()=>{u&&clearTimeout(u),p()};e.addEventListener("wheel",y,{passive:!0}),e.addEventListener("touchmove",A,{passive:!0}),e.addEventListener("touchend",k,{passive:!0}),e.addEventListener("touchcancel",k,{passive:!0});const S=()=>{c||g()};typeof window<"u"&&window.addEventListener("scroll",S,{passive:!0});const C=[];for(const f of n){const b=()=>{l.add(f),s(f)},d=()=>{l.delete(f),r(f)},$=()=>{c=!0,s(f)},L=()=>{c=!1,r(f)};f.addEventListener("mouseenter",b),f.addEventListener("mouseleave",d),f.addEventListener("touchstart",$,{passive:!0}),f.addEventListener("touchend",L,{passive:!0}),C.push(()=>{f.removeEventListener("mouseenter",b),f.removeEventListener("mouseleave",d),f.removeEventListener("touchstart",$),f.removeEventListener("touchend",L)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",y),e.removeEventListener("touchmove",A),e.removeEventListener("touchend",k),e.removeEventListener("touchcancel",k),typeof window<"u"&&window.removeEventListener("scroll",S);for(const b of C)b();for(const b of n)r(b)}}const W1=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 H1(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=W1[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"],od="mapbox";function Y1(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function nd(e){const t=Y1(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||od).toLowerCase().trim();return X1.includes(s)?s:od}const Ln={mapbox:{global:"mapboxgl",js:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",css:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css"},maplibre:{global:"maplibregl",js:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.js",css:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.css"}};function ad(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 Z1=Ln.mapbox.css,J1="https://tiles.openfreemap.org/styles/liberty",Q1="https://tiles.openfreemap.org/styles/fiord";function Wr(e){var o;const t=((o=Ln[e])==null?void 0:o.global)||Ln.mapbox.global;return typeof window<"u"?window[t]:void 0}async function ew(e){const t=Ln[e]||Ln.mapbox;if(Wr(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=t.css,document.head.appendChild(n)}const o=document.querySelector(`script[src="${t.js}"]`);if(o){if(Wr(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,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 tw(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,await Promise.race([new Promise(r=>{s.addEventListener("load",r,{once:!0}),s.addEventListener("error",r,{once:!0}),o.prepend(s)}),n(2e3)])}function ow(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?Q1:J1}const nw=85.0511,Hr=-2,aw=0,sw=-60;function sd(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function rw(e,t,o,n){if(!e||e<=0||!t||t<=0)return aw;const a=Math.log2(e/512),s=sd(n)-sd(nw),r=Math.log2(t/(512*s)),i=Math.max(a,r);return Math.max(Hr,Math.min(i,(o??18)-1))}function iw({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:p=18,pitch:g=0,bearing:y=0,renderWorldCopies:A=!0,showEdgeBorders:k=!0,southCutoff:S=sw,maxBounds:C=void 0}){const f=On(null),b=de(!1);let d=null,$=null,L=null,w=null;try{w=ze("profileConfig",null)}catch{}a=a||nd(w);const F=a==="maplibre";async function U(){var ke;const z=H1(o,a),Y=z.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const fe=()=>!e.value;if(await ew(a),fe())return;const M=Wr(a);if(!M){console.error(`[useMapInstance] ${F?"maplibregl":"mapboxgl"} is not available. Add the ${F?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(Cu(M),!F){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 tw(e.value,F?Ln.maplibre.css:Z1),fe()||(await new Promise(be=>requestAnimationFrame(be)),fe()))return;const Q=e.value,X=Q.clientWidth,B=Q.clientHeight;if(X===0||B===0){console.error(`[useMapInstance] Container has ZERO dimensions (${X}×${B}). Map will be invisible. Check that parent elements have CSS sizing.`);let be=Q.parentElement,$e=0;for(;be&&$e<5;)be=be.parentElement,$e++}const se=t;F||(M.accessToken=se);const I=()=>typeof window<"u"&&window.innerWidth>=1024,O=(be,$e)=>{if(u)return typeof c=="number"?c:Hr;if(!I())return Hr;const Pe=rw(be,$e,p,S);return typeof c=="number"?Math.max(c,Pe):Pe},V=O(Q.clientWidth,Q.clientHeight),D=z.lightPreset||(()=>{var be;try{const $e=typeof n=="function"?n():n;return(be=$e==null?void 0:$e.basemap)==null?void 0:be.lightPreset}catch{return}})();if(F){f.value=new M.Map({container:e.value,style:ow(Y,D),center:s,zoom:r,minZoom:V,maxZoom:p,pitch:g,bearing:y,dragRotate:!1,renderWorldCopies:A,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...C?{maxBounds:C}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),ad(f.value);try{e.value.__doxaMap=f.value}catch{}}else{const be=typeof n=="function"?n():n;f.value=new M.Map({accessToken:se,container:e.value,style:Y,...be?{config:be}:{},center:s,zoom:r,minZoom:V,maxZoom:p,pitch:g,bearing:y,dragRotate:!1,touchPitch:!1,renderWorldCopies:A,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...C?{maxBounds:C}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),ad(f.value);try{e.value.__doxaMap=f.value}catch{}}try{let be=!1;f.value.on("error",$e=>{var _e,xe;const Pe=((_e=$e==null?void 0:$e.error)==null?void 0:_e.status)??($e==null?void 0:$e.status),ce=String(((xe=$e==null?void 0:$e.error)==null?void 0:xe.url)||($e==null?void 0:$e.sourceId)||"");Pe!==401&&Pe!==403||be||(be=!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.`+(ce?` First failing request: ${ce.slice(0,120)}`:"")))})}catch{}try{f.value.touchZoomRotate.disableRotation()}catch{}L=q1(((ke=e.value)==null?void 0:ke.parentElement)||null,{enabled:k});let ae=V,ge=null;d=()=>{const be=f.value;if(!be)return;const $e=O(Q.clientWidth,Q.clientHeight);$e!==ae&&(ae=$e,be.setMinZoom($e)),be.getZoom()<$e?(ge&&clearTimeout(ge),ge=setTimeout(()=>{ge=null;const Pe=f.value;if(!Pe)return;const ce=O(Q.clientWidth,Q.clientHeight);if(Pe.getZoom(){ge&&(clearTimeout(ge),ge=null)},f.value.on("resize",d),typeof window<"u"&&(window.addEventListener("resize",d),window.addEventListener("orientationchange",d)),f.value.on("style.load",()=>{if(z.paint&&f.value){const be=K1(f.value,z.paint);console.info("[useMapInstance] style paint applied ("+a+"):",be.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var be;(be=f.value)==null||be.resize(),f.value&&f.value.setMinZoom(O(Q.clientWidth,Q.clientHeight)),b.value=!0})})}function ne(){if(f.value){if(d&&(f.value.off("resize",d),typeof window<"u"&&(window.removeEventListener("resize",d),window.removeEventListener("orientationchange",d)),d=null),$){try{$()}catch{}$=null}L&&(L(),L=null),f.value.remove(),f.value=null,b.value=!1}}return{map:f,isMapReady:b,initializeMap:U,destroy:ne}}const lw={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]}};function cw(e){return lw[e]||null}const An={center:[20,10],zoom:1.8};function uw(e={}){const{getMap:t=()=>null,mapId:o="unknown",mapStore:n=null,regionsGeoData:a=null,defaultCenter:s=(An==null?void 0:An.center)||[20,10],defaultZoom:r=An==null?void 0:An.zoom}=e,i={speed:.5,essential:!0,curve:1.2};function l(M,Q,X={x:150,y:0}){const B=t();if(!B)return M;try{const se=B.getCanvas(),I=se.width,O=se.height,V=B.project(M),D=window.devicePixelRatio||1,ae=(X.x||0)*D,ge=(X.y||0)*D,ke={x:V.x-ae,y:V.y-ge},be=B.unproject(ke);return[be.lng,be.lat]}catch{return M}}function c(M,Q=[]){const X=t();if(!X)return;let B=null,se=5;const I=Q.filter(V=>V.languageFamily===M);if(I.length>0){let V=1/0,D=-1/0,ae=1/0,ge=-1/0;if(I.forEach(ke=>{ke.longitude&&ke.latitude&&(V=Math.min(V,ke.longitude),D=Math.max(D,ke.longitude),ae=Math.min(ae,ke.latitude),ge=Math.max(ge,ke.latitude))}),V!==1/0){B=[(V+D)/2,(ae+ge)/2];const ke=D-V,be=ge-ae,$e=Math.max(ke,be);$e>50?se=2:$e>20?se=3:$e>10?se=4:$e>5?se=5:se=6}}if(!B)return;const O=l(B);X.flyTo({center:O,zoom:se,...i})}function u(M){const Q=t();if(!Q)return;let X=null,B=4;const se=cw(M);if(se)X=se.center,B=se.zoom||4;else if(a!=null&&a.features){const O=a.features.find(V=>{var D,ae;return((D=V.properties)==null?void 0:D.region)===M||((ae=V.properties)==null?void 0:ae.name)===M});O&&(X=p(O))}if(!X)return;const I=l(X);Q.flyTo({center:I,zoom:B,...i})}function p(M){if(!M||!M.geometry)return null;const{type:Q,coordinates:X}=M.geometry;let B=[];if(Q==="Polygon"?B=X[0]||[]:Q==="MultiPolygon"&&X.forEach(O=>{B=B.concat(O[0]||[])}),B.length===0)return null;let se=0,I=0;return B.forEach(O=>{se+=O[0],I+=O[1]}),[se/B.length,I/B.length]}function g(M,Q={}){const X=t();if(!X)return;const B={center:M,...i,...Q};X.flyTo(B)}function y(M,Q){const X=t();if(!X||(M==null?void 0:M.longitude)==null||(M==null?void 0:M.latitude)==null)return;const B=Q??Math.min(X.getZoom()+2,8);g([M.longitude,M.latitude],{zoom:B})}function A(M,Q={top:40,right:40,bottom:40,left:40},X={}){const B=t();if(!B||!M)return;const se=X.maxZoom??4,I=X.duration??900;B.fitBounds(M,{padding:Q,maxZoom:se,duration:I,...i,...X})}function k(){const M=t();M&&M.flyTo({center:s,zoom:r,...i})}const S=80,C=800,f=5,b=5,d=110,$=1.2;function L(M){const Q=M.filter(Number.isFinite).slice().sort((_,P)=>_-P),X=Q.length;if(!X)return null;let B=-1,se=0;for(let _=0;_B&&(B=x,se=_)}const I=(se+1)%X,O=new Array(X);for(let _=0;_0&&P((_+180)%360+360)%360-180,be=ke(ae),$e=24,Pe=360/$e,ce=new Array($e).fill(0);for(const _ of Q){let P=Math.floor(((_+180)%360+360)%360/Pe);P>=$e&&(P=$e-1),ce[P]++}let _e=0;for(let _=1;_<$e;_++)ce[_]>ce[_e]&&(_e=_);return{center:ke(-180+(_e+.5)*Pe),minLng:be,maxLng:be+(ge-ae),span:ge-ae}}function w(M){try{const Q=M.getContainer&&M.getContainer().clientWidth||0,X=Q>0?Math.log2(Q/512):$,B=typeof M.getMinZoom=="function"?M.getMinZoom():X;return Math.max(B,X)}catch{return $}}function F(M,Q,X,B){M.easeTo({center:[Q,(X+B)/2],zoom:w(M),duration:C,essential:!0})}function U(M,Q,X){if(X>d)return!0;try{const B=typeof M.cameraForBounds=="function"?M.cameraForBounds(Q,{padding:S,maxZoom:f}):null;return B==null?!0:typeof B.zoom=="number"&&B.zoom<=w(M)+.05}catch{return!1}}function ne(M,Q){if(!Array.isArray(M))return M;switch(M[0]){case"get":return Q==null?void 0:Q[M[1]];case"literal":return M[1];case"has":return Q!=null&&M[1]in Q;case"!has":return Q==null||!(M[1]in Q);case"!":return!ne(M[1],Q);case"coalesce":{for(let B=1;B2){const I=Number(ne(M[2],Q));return Number.isFinite(I)?I:0}return NaN}case"to-string":{const B=ne(M[1],Q);return B==null?"":String(B)}case"to-boolean":return!!ne(M[1],Q);case"slice":{const B=ne(M[1],Q),se=ne(M[2],Q),I=M.length>3?ne(M[3],Q):void 0;return typeof B!="string"?"":I!=null?B.slice(se,I):B.slice(se)}default:return M}}function z(M,Q){if(M===!0)return!0;if(M===!1)return!1;if(!Array.isArray(M))return!!M;const X=M[0];if(X==="all"){for(let B=1;B"||X===">="||X==="<"||X==="<="){const B=typeof M[1]=="string"?Q==null?void 0:Q[M[1]]:ne(M[1],Q),se=ne(M[2],Q);switch(X){case"==":return B===se||B==null&&se==null;case"!=":return!(B===se||B==null&&se==null);case">":return B>se;case">=":return B>=se;case"<":return B{const G=(x==null?void 0:x.properties)||{};return G.region===_||G.name===_||G.id===_});if(P){const x=[];let G=1/0,ee=-1/0;const te=oe=>{for(const h of oe)Array.isArray(h[0])?te(h):Number.isFinite(h[0])&&Number.isFinite(h[1])&&(x.push(h[0]),h[1]ee&&(ee=h[1]))};(ce=P.geometry)!=null&&ce.coordinates&&te(P.geometry.coordinates);const le=L(x);if(le&&Number.isFinite(G)){const oe=[[le.minLng,G],[le.maxLng,ee]];U(X,oe,le.span)?F(X,le.center,G,ee):X.fitBounds(oe,{padding:S,maxZoom:f,duration:C,essential:!0});return}}}const B=Q.sourceId??"language-families";if(!X.getSource(B))return;const se=Q.matchExpr??M.filter;if(!se)return;const I=Y(X,B);if(!I.length)return;const O=[];let V=1/0,D=-1/0,ae=0,ge=0,ke=0;const be=new Set;for(const xe of I){const _=xe==null?void 0:xe.properties;if(!z(se,_))continue;const P=_==null?void 0:_.uniqueId;if(P!=null){if(be.has(P))continue;be.add(P)}const x=(_e=xe.geometry)==null?void 0:_e.coordinates;if(!Array.isArray(x)||x.length<2)continue;const G=x[0],ee=x[1];!Number.isFinite(G)||!Number.isFinite(ee)||(ae===0&&(ge=G,ke=ee),O.push(G),eeD&&(D=ee),ae++)}if(ae===0)return;if(ae===1){X.flyTo({center:[ge,ke],zoom:b,duration:C,essential:!0});return}const $e=L(O)||{center:0,minLng:0,maxLng:0,span:0},Pe=[[$e.minLng,V],[$e.maxLng,D]];if(U(X,Pe,$e.span)){F(X,$e.center,V,D);return}try{X.fitBounds(Pe,{padding:S,maxZoom:f,duration:C,essential:!0})}catch{}}return{getOffsetCenter:l,slowFlyToFamily:c,slowFlyToRegion:u,flyTo:g,flyToCoords:y,fitBounds:A,resetView:k,zoomToLegendRow:fe,calculateRegionCenterFromPolygon:p}}const dw=150,pw=1200,gw=70,fw=5.5,hw=6,rd=.01,mw=110,bw=1.45;function $w(){try{return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{return!1}}function _w(e){if(!e)return null;const t=Number(e.longitude),o=Number(e.latitude);return!Number.isFinite(t)||!Number.isFinite(o)||t===0&&o===0||o<-90||o>90||t<-180||t>180?null:[t,o]}function yw(e){let t=1/0,o=-1/0,n=1/0,a=-1/0;for(const i of e){io&&(o=i);const l=i<0?i+360:i;la&&(a=l)}if(!Number.isFinite(t))return null;const s=o-t,r=a-n;if(r180?n-360:n;return{minLng:i,maxLng:i+r,span:r}}return{minLng:t,maxLng:o,span:s}}function vw(e,t){if(!e||!e.size||!t)return null;const o=[];let n=1/0,a=-1/0,s=null,r=0;for(const l of e){const c=_w(t.get(l));c&&(r===0&&(s=c),o.push(c[0]),c[1]a&&(a=c[1]),r++)}if(r===0)return null;if(r===1)return{kind:"point",center:s};const i=yw(o);return i?i.span!0}){if(!e||!e.selectionVersion)return()=>{};let s=null;function r(){if(s=null,!(t&&t())||!a())return;const c=vw(e.selectionSet,o&&o());if(!c)return;const u=$w()?0:pw;try{if(c.kind==="point"){n.flyTo(c.center,{zoom:hw,duration:u,essential:!0});return}if(c.span>mw){n.flyTo([(c.bounds[0][0]+c.bounds[1][0])/2,(c.bounds[0][1]+c.bounds[1][1])/2],{zoom:bw,duration:u,essential:!0});return}n.fitBounds(c.bounds,gw,{maxZoom:fw,duration:u,essential:!0})}catch{}}const i=lt(()=>e.selectionVersion.value,()=>{s&&clearTimeout(s),s=setTimeout(r,dw)});return function(){s&&(clearTimeout(s),s=null);try{i()}catch{}}}const xw={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=de(null);return oo("mapToolbar",{el:t}),Ot(` +`,"rd-detaildrawer"),(d,$)=>(H(),Z("section",y1,[R("div",v1,[$[0]||($[0]=R("span",null,"Detail",-1)),c.value?(H(),Z("button",{key:0,class:"rd-detail-close",type:"button","aria-label":"Close detail","data-detail-close":"",onClick:b},"✕")):Fe("",!0)]),c.value?(H(),Z(Ce,{key:1},[R("div",x1,[p.value?(H(),Z("img",{key:0,class:"rd-thumb",src:c.value.image_url,alt:c.value.name,"data-detail-thumb":""},null,8,k1)):(H(),Z("div",L1,"No photo")),R("div",null,[R("div",A1,ue(c.value.name||"—"),1),R("div",S1,ue(fe(at)(c.value.country_code)||"—")+" · "+ue(fe(at)(c.value.religion)||"—"),1)])]),R("div",P1,[A.value?(H(),Z("a",{key:0,class:"rd-act rd-act-pray",href:A.value,target:"_blank",rel:"noopener",title:S.value,"data-detail-pray":""},[$[1]||($[1]=R("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true"},[R("path",{d:"M8 2L10 6L14 6.5L11 9.5L11.5 14L8 12L4.5 14L5 9.5L2 6.5L6 6L8 2Z",fill:"currentColor"})],-1)),R("span",null,ue(S.value),1)],8,E1)):Fe("",!0),k.value?(H(),Z("a",{key:1,class:"rd-act rd-act-info",href:k.value,target:"_blank",rel:"noopener",title:C.value,"data-detail-moreinfo":""},[$[2]||($[2]=R("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true"},[R("circle",{cx:"8",cy:"8",r:"6",stroke:"currentColor","stroke-width":"2",fill:"none"}),R("path",{d:"M8 6V8M8 10H8.01",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"})],-1)),R("span",null,ue(C.value),1)],8,C1)):Fe("",!0)]),R("div",T1,[R("div",R1,[$[3]||($[3]=R("span",{class:"k"},"Language",-1)),R("span",N1,[ct(ue(fe(at)(c.value.primary_language)||"—"),1),c.value.imb_language_family?(H(),Z("span",O1," ("+ue(c.value.imb_language_family)+")",1)):Fe("",!0)])]),R("div",F1,[$[4]||($[4]=R("span",{class:"k"},"Population",-1)),R("span",M1,ue(u(c.value.population)),1)]),R("div",I1,[$[5]||($[5]=R("span",{class:"k"},"People praying",-1)),R("span",D1,ue(u(c.value.people_praying)),1)]),R("div",j1,[$[6]||($[6]=R("span",{class:"k"},"People committed",-1)),R("span",z1,ue(u(c.value.people_committed)),1)]),R("div",G1,[$[7]||($[7]=R("span",{class:"k"},"Adopted by churches",-1)),R("span",U1,ue(u(c.value.adopted_by_churches)),1)]),R("div",B1,[$[8]||($[8]=R("span",{class:"k"},"Engagement",-1)),R("span",V1,ue(fe(at)(c.value.engagement_status)||"—"),1)])]),R("button",{class:"rd-exp",type:"button","data-detail-export":"",onClick:f},"Export this selection ↓")],64)):(H(),Z("div",w1,"Select a people group to see detail"))]))}},W1="rgba(120, 128, 134, 0.28)",ed="36px",td=()=>{};function H1(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return td;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return td;const a=f=>f.classList.contains("map-scroll-edge--left");for(const f of n)f.style.background=`linear-gradient(${a(f)?"to right":"to left"}, ${W1} ${ed}, transparent ${ed})`,f.style.opacity="0",f.style.transition="opacity 0.16s ease",f.style.userSelect="none",f.style.webkitUserSelect="none";const s=f=>{f.style.opacity="1"},r=f=>{f.style.opacity="0"},i=()=>n.find(f=>!a(f))||null,l=new Set;let c=!1,u=null;const p=()=>{for(const f of n)l.has(f)||r(f)},g=()=>{const f=i();f&&(s(f),u&&clearTimeout(u),u=setTimeout(p,250))},y=()=>g(),A=f=>{if(!(f.touches&&f.touches.length===1))return;const b=f.target;b&&b.classList&&b.classList.contains("map-scroll-edge")||g()},k=()=>{u&&clearTimeout(u),p()};e.addEventListener("wheel",y,{passive:!0}),e.addEventListener("touchmove",A,{passive:!0}),e.addEventListener("touchend",k,{passive:!0}),e.addEventListener("touchcancel",k,{passive:!0});const S=()=>{c||g()};typeof window<"u"&&window.addEventListener("scroll",S,{passive:!0});const C=[];for(const f of n){const b=()=>{l.add(f),s(f)},d=()=>{l.delete(f),r(f)},$=()=>{c=!0,s(f)},L=()=>{c=!1,r(f)};f.addEventListener("mouseenter",b),f.addEventListener("mouseleave",d),f.addEventListener("touchstart",$,{passive:!0}),f.addEventListener("touchend",L,{passive:!0}),C.push(()=>{f.removeEventListener("mouseenter",b),f.removeEventListener("mouseleave",d),f.removeEventListener("touchstart",$),f.removeEventListener("touchend",L)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",y),e.removeEventListener("touchmove",A),e.removeEventListener("touchend",k),e.removeEventListener("touchcancel",k),typeof window<"u"&&window.removeEventListener("scroll",S);for(const b of C)b();for(const b of n)r(b)}}const K1=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 X1(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=K1[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 Y1(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 Z1=["mapbox","maplibre"],od="mapbox";function J1(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function nd(e){const t=J1(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||od).toLowerCase().trim();return Z1.includes(s)?s:od}const Q1=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,ad=new WeakMap;function ew(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function sd(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!ew(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=ad.get(e);a||(a=new Map,ad.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(!Q1.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 Ln={mapbox:{global:"mapboxgl",js:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",css:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css"},maplibre:{global:"maplibregl",js:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.js",css:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.css"}};function rd(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 tw=Ln.mapbox.css,ow="https://tiles.openfreemap.org/styles/liberty",nw="https://tiles.openfreemap.org/styles/fiord";function Wr(e){var o;const t=((o=Ln[e])==null?void 0:o.global)||Ln.mapbox.global;return typeof window<"u"?window[t]:void 0}async function aw(e){const t=Ln[e]||Ln.mapbox;if(Wr(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=t.css,document.head.appendChild(n)}const o=document.querySelector(`script[src="${t.js}"]`);if(o){if(Wr(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,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 sw(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,await Promise.race([new Promise(r=>{s.addEventListener("load",r,{once:!0}),s.addEventListener("error",r,{once:!0}),o.prepend(s)}),n(2e3)])}function rw(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?nw:ow}const iw=85.0511,Hr=-2,lw=0,cw=-60;function id(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function uw(e,t,o,n){if(!e||e<=0||!t||t<=0)return lw;const a=Math.log2(e/512),s=id(n)-id(iw),r=Math.log2(t/(512*s)),i=Math.max(a,r);return Math.max(Hr,Math.min(i,(o??18)-1))}function dw({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:p=18,pitch:g=0,bearing:y=0,renderWorldCopies:A=!0,showEdgeBorders:k=!0,southCutoff:S=cw,maxBounds:C=void 0}){const f=On(null),b=de(!1);let d=null,$=null,L=null,w=null;try{w=ze("profileConfig",null)}catch{}a=a||nd(w);const F=a==="maplibre";let D=null;try{D=ze("lang",null)}catch{}const ne=()=>{const pe=D&&typeof D=="object"&&"value"in D?D.value:D;if(typeof pe=="string"&&pe)return pe;const M=w&&typeof w=="object"&&"value"in w?w.value:w;if(M&&(M.locale||M.lang))return String(M.locale||M.lang);try{const ee=new URLSearchParams(location.search);return ee.get("lang")||ee.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function B(){var Se;const pe=X1(o,a),M=pe.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const ee=()=>!e.value;if(await aw(a),ee())return;const K=Wr(a);if(!K){console.error(`[useMapInstance] ${F?"maplibregl":"mapboxgl"} is not available. Add the ${F?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(Cu(K),!F){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 sw(e.value,F?Ln.maplibre.css:tw),ee()||(await new Promise(ye=>requestAnimationFrame(ye)),ee()))return;const z=e.value,re=z.clientWidth,j=z.clientHeight;if(re===0||j===0){console.error(`[useMapInstance] Container has ZERO dimensions (${re}×${j}). Map will be invisible. Check that parent elements have CSS sizing.`);let ye=z.parentElement,se=0;for(;ye&&se<5;)ye=ye.parentElement,se++}const O=t;F||(K.accessToken=O);const V=()=>typeof window<"u"&&window.innerWidth>=1024,I=(ye,se)=>{if(u)return typeof c=="number"?c:Hr;if(!V())return Hr;const he=uw(ye,se,p,S);return typeof c=="number"?Math.max(c,he):he},ae=I(z.clientWidth,z.clientHeight),be=pe.lightPreset||(()=>{var ye;try{const se=typeof n=="function"?n():n;return(ye=se==null?void 0:se.basemap)==null?void 0:ye.lightPreset}catch{return}})();if(F){f.value=new K.Map({container:e.value,style:rw(M,be),center:s,zoom:r,minZoom:ae,maxZoom:p,pitch:g,bearing:y,dragRotate:!1,renderWorldCopies:A,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...C?{maxBounds:C}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),rd(f.value);try{e.value.__doxaMap=f.value}catch{}}else{const ye=typeof n=="function"?n():n;f.value=new K.Map({accessToken:O,container:e.value,style:M,...ye?{config:ye}:{},center:s,zoom:r,minZoom:ae,maxZoom:p,pitch:g,bearing:y,dragRotate:!1,touchPitch:!1,renderWorldCopies:A,...i?{bounds:i,...l?{fitBoundsOptions:l}:{}}:{},...C?{maxBounds:C}:{},attributionControl:!0,logoPosition:typeof window<"u"&&window.matchMedia&&window.matchMedia("(max-width: 767px)").matches?"bottom-right":"bottom-left"}),rd(f.value);try{e.value.__doxaMap=f.value}catch{}}try{let ye=!1;f.value.on("error",se=>{var _,P;const he=((_=se==null?void 0:se.error)==null?void 0:_.status)??(se==null?void 0:se.status),ve=String(((P=se==null?void 0:se.error)==null?void 0:P.url)||(se==null?void 0:se.sourceId)||"");he!==401&&he!==403||ye||(ye=!0,console.error(`[doxa-maps] Mapbox returned ${he} 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.`+(ve?` First failing request: ${ve.slice(0,120)}`:"")))})}catch{}try{f.value.touchZoomRotate.disableRotation()}catch{}L=H1(((Se=e.value)==null?void 0:Se.parentElement)||null,{enabled:k});let ke=ae,xe=null;d=()=>{const ye=f.value;if(!ye)return;const se=I(z.clientWidth,z.clientHeight);se!==ke&&(ke=se,ye.setMinZoom(se)),ye.getZoom(){xe=null;const he=f.value;if(!he)return;const ve=I(z.clientWidth,z.clientHeight);if(he.getZoom(){xe&&(clearTimeout(xe),xe=null)},f.value.on("resize",d),typeof window<"u"&&(window.addEventListener("resize",d),window.addEventListener("orientationchange",d)),f.value.on("style.load",()=>{if(f.value&&sd(f.value,ne()),pe.paint&&f.value){const ye=Y1(f.value,pe.paint);console.info("[useMapInstance] style paint applied ("+a+"):",ye.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var ye;(ye=f.value)==null||ye.resize(),f.value&&f.value.setMinZoom(I(z.clientWidth,z.clientHeight)),b.value=!0})})}function Y(){if(f.value){if(d&&(f.value.off("resize",d),typeof window<"u"&&(window.removeEventListener("resize",d),window.removeEventListener("orientationchange",d)),d=null),$){try{$()}catch{}$=null}L&&(L(),L=null),f.value.remove(),f.value=null,b.value=!1}}if(D&&typeof D=="object"&&"value"in D)try{it(D,()=>{f.value&&b.value&&sd(f.value,ne())})}catch{}return{map:f,isMapReady:b,initializeMap:B,destroy:Y}}const pw={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]}};function gw(e){return pw[e]||null}const An={center:[20,10],zoom:1.8};function fw(e={}){const{getMap:t=()=>null,mapId:o="unknown",mapStore:n=null,regionsGeoData:a=null,defaultCenter:s=(An==null?void 0:An.center)||[20,10],defaultZoom:r=An==null?void 0:An.zoom}=e,i={speed:.5,essential:!0,curve:1.2};function l(M,ee,K={x:150,y:0}){const z=t();if(!z)return M;try{const re=z.getCanvas(),j=re.width,O=re.height,V=z.project(M),I=window.devicePixelRatio||1,ae=(K.x||0)*I,be=(K.y||0)*I,ke={x:V.x-ae,y:V.y-be},xe=z.unproject(ke);return[xe.lng,xe.lat]}catch{return M}}function c(M,ee=[]){const K=t();if(!K)return;let z=null,re=5;const j=ee.filter(V=>V.languageFamily===M);if(j.length>0){let V=1/0,I=-1/0,ae=1/0,be=-1/0;if(j.forEach(ke=>{ke.longitude&&ke.latitude&&(V=Math.min(V,ke.longitude),I=Math.max(I,ke.longitude),ae=Math.min(ae,ke.latitude),be=Math.max(be,ke.latitude))}),V!==1/0){z=[(V+I)/2,(ae+be)/2];const ke=I-V,xe=be-ae,Se=Math.max(ke,xe);Se>50?re=2:Se>20?re=3:Se>10?re=4:Se>5?re=5:re=6}}if(!z)return;const O=l(z);K.flyTo({center:O,zoom:re,...i})}function u(M){const ee=t();if(!ee)return;let K=null,z=4;const re=gw(M);if(re)K=re.center,z=re.zoom||4;else if(a!=null&&a.features){const O=a.features.find(V=>{var I,ae;return((I=V.properties)==null?void 0:I.region)===M||((ae=V.properties)==null?void 0:ae.name)===M});O&&(K=p(O))}if(!K)return;const j=l(K);ee.flyTo({center:j,zoom:z,...i})}function p(M){if(!M||!M.geometry)return null;const{type:ee,coordinates:K}=M.geometry;let z=[];if(ee==="Polygon"?z=K[0]||[]:ee==="MultiPolygon"&&K.forEach(O=>{z=z.concat(O[0]||[])}),z.length===0)return null;let re=0,j=0;return z.forEach(O=>{re+=O[0],j+=O[1]}),[re/z.length,j/z.length]}function g(M,ee={}){const K=t();if(!K)return;const z={center:M,...i,...ee};K.flyTo(z)}function y(M,ee){const K=t();if(!K||(M==null?void 0:M.longitude)==null||(M==null?void 0:M.latitude)==null)return;const z=ee??Math.min(K.getZoom()+2,8);g([M.longitude,M.latitude],{zoom:z})}function A(M,ee={top:40,right:40,bottom:40,left:40},K={}){const z=t();if(!z||!M)return;const re=K.maxZoom??4,j=K.duration??900;z.fitBounds(M,{padding:ee,maxZoom:re,duration:j,...i,...K})}function k(){const M=t();M&&M.flyTo({center:s,zoom:r,...i})}const S=80,C=800,f=5,b=5,d=110,$=1.2;function L(M){const ee=M.filter(Number.isFinite).slice().sort((_,P)=>_-P),K=ee.length;if(!K)return null;let z=-1,re=0;for(let _=0;_z&&(z=x,re=_)}const j=(re+1)%K,O=new Array(K);for(let _=0;_0&&P((_+180)%360+360)%360-180,xe=ke(ae),Se=24,ye=360/Se,se=new Array(Se).fill(0);for(const _ of ee){let P=Math.floor(((_+180)%360+360)%360/ye);P>=Se&&(P=Se-1),se[P]++}let he=0;for(let _=1;_se[he]&&(he=_);return{center:ke(-180+(he+.5)*ye),minLng:xe,maxLng:xe+(be-ae),span:be-ae}}function w(M){try{const ee=M.getContainer&&M.getContainer().clientWidth||0,K=ee>0?Math.log2(ee/512):$,z=typeof M.getMinZoom=="function"?M.getMinZoom():K;return Math.max(z,K)}catch{return $}}function F(M,ee,K,z){M.easeTo({center:[ee,(K+z)/2],zoom:w(M),duration:C,essential:!0})}function D(M,ee,K){if(K>d)return!0;try{const z=typeof M.cameraForBounds=="function"?M.cameraForBounds(ee,{padding:S,maxZoom:f}):null;return z==null?!0:typeof z.zoom=="number"&&z.zoom<=w(M)+.05}catch{return!1}}function ne(M,ee){if(!Array.isArray(M))return M;switch(M[0]){case"get":return ee==null?void 0:ee[M[1]];case"literal":return M[1];case"has":return ee!=null&&M[1]in ee;case"!has":return ee==null||!(M[1]in ee);case"!":return!ne(M[1],ee);case"coalesce":{for(let z=1;z2){const j=Number(ne(M[2],ee));return Number.isFinite(j)?j:0}return NaN}case"to-string":{const z=ne(M[1],ee);return z==null?"":String(z)}case"to-boolean":return!!ne(M[1],ee);case"slice":{const z=ne(M[1],ee),re=ne(M[2],ee),j=M.length>3?ne(M[3],ee):void 0;return typeof z!="string"?"":j!=null?z.slice(re,j):z.slice(re)}default:return M}}function B(M,ee){if(M===!0)return!0;if(M===!1)return!1;if(!Array.isArray(M))return!!M;const K=M[0];if(K==="all"){for(let z=1;z"||K===">="||K==="<"||K==="<="){const z=typeof M[1]=="string"?ee==null?void 0:ee[M[1]]:ne(M[1],ee),re=ne(M[2],ee);switch(K){case"==":return z===re||z==null&&re==null;case"!=":return!(z===re||z==null&&re==null);case">":return z>re;case">=":return z>=re;case"<":return z{const U=(x==null?void 0:x.properties)||{};return U.region===_||U.name===_||U.id===_});if(P){const x=[];let U=1/0,Q=-1/0;const te=oe=>{for(const h of oe)Array.isArray(h[0])?te(h):Number.isFinite(h[0])&&Number.isFinite(h[1])&&(x.push(h[0]),h[1]Q&&(Q=h[1]))};(se=P.geometry)!=null&&se.coordinates&&te(P.geometry.coordinates);const ce=L(x);if(ce&&Number.isFinite(U)){const oe=[[ce.minLng,U],[ce.maxLng,Q]];D(K,oe,ce.span)?F(K,ce.center,U,Q):K.fitBounds(oe,{padding:S,maxZoom:f,duration:C,essential:!0});return}}}const z=ee.sourceId??"language-families";if(!K.getSource(z))return;const re=ee.matchExpr??M.filter;if(!re)return;const j=Y(K,z);if(!j.length)return;const O=[];let V=1/0,I=-1/0,ae=0,be=0,ke=0;const xe=new Set;for(const ve of j){const _=ve==null?void 0:ve.properties;if(!B(re,_))continue;const P=_==null?void 0:_.uniqueId;if(P!=null){if(xe.has(P))continue;xe.add(P)}const x=(he=ve.geometry)==null?void 0:he.coordinates;if(!Array.isArray(x)||x.length<2)continue;const U=x[0],Q=x[1];!Number.isFinite(U)||!Number.isFinite(Q)||(ae===0&&(be=U,ke=Q),O.push(U),QI&&(I=Q),ae++)}if(ae===0)return;if(ae===1){K.flyTo({center:[be,ke],zoom:b,duration:C,essential:!0});return}const Se=L(O)||{center:0,minLng:0,maxLng:0,span:0},ye=[[Se.minLng,V],[Se.maxLng,I]];if(D(K,ye,Se.span)){F(K,Se.center,V,I);return}try{K.fitBounds(ye,{padding:S,maxZoom:f,duration:C,essential:!0})}catch{}}return{getOffsetCenter:l,slowFlyToFamily:c,slowFlyToRegion:u,flyTo:g,flyToCoords:y,fitBounds:A,resetView:k,zoomToLegendRow:pe,calculateRegionCenterFromPolygon:p}}const hw=150,mw=1200,bw=70,$w=5.5,_w=6,ld=.01,yw=110,vw=1.45;function ww(){try{return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch{return!1}}function xw(e){if(!e)return null;const t=Number(e.longitude),o=Number(e.latitude);return!Number.isFinite(t)||!Number.isFinite(o)||t===0&&o===0||o<-90||o>90||t<-180||t>180?null:[t,o]}function kw(e){let t=1/0,o=-1/0,n=1/0,a=-1/0;for(const i of e){io&&(o=i);const l=i<0?i+360:i;la&&(a=l)}if(!Number.isFinite(t))return null;const s=o-t,r=a-n;if(r180?n-360:n;return{minLng:i,maxLng:i+r,span:r}}return{minLng:t,maxLng:o,span:s}}function Lw(e,t){if(!e||!e.size||!t)return null;const o=[];let n=1/0,a=-1/0,s=null,r=0;for(const l of e){const c=xw(t.get(l));c&&(r===0&&(s=c),o.push(c[0]),c[1]a&&(a=c[1]),r++)}if(r===0)return null;if(r===1)return{kind:"point",center:s};const i=kw(o);return i?i.span!0}){if(!e||!e.selectionVersion)return()=>{};let s=null;function r(){if(s=null,!(t&&t())||!a())return;const c=Lw(e.selectionSet,o&&o());if(!c)return;const u=ww()?0:mw;try{if(c.kind==="point"){n.flyTo(c.center,{zoom:_w,duration:u,essential:!0});return}if(c.span>yw){n.flyTo([(c.bounds[0][0]+c.bounds[1][0])/2,(c.bounds[0][1]+c.bounds[1][1])/2],{zoom:vw,duration:u,essential:!0});return}n.fitBounds(c.bounds,bw,{maxZoom:$w,duration:u,essential:!0})}catch{}}const i=it(()=>e.selectionVersion.value,()=>{s&&clearTimeout(s),s=setTimeout(r,hw)});return function(){s&&(clearTimeout(s),s=null);try{i()}catch{}}}const Sw={__name:"MapToolbar",props:{hasGeocoder:{type:Boolean,default:!0}},setup(e){const t=de(null);return oo("mapToolbar",{el:t}),Ot(` .map-toolbar { position: absolute; top: 6px; @@ -656,7 +656,7 @@ .map-toolbar { top: 72px; gap: 6px; } .map-toolbar.map-toolbar--no-geocoder { top: 6px; gap: 6px; } } -`,"map-toolbar"),(o,n)=>(H(),Z("div",{ref_key:"toolbarEl",ref:t,class:qe(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[Ho(o.$slots,"default")],2))}},kw={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=Zo(),o=e;function n(){var a;o.disabled||(a=o.map)==null||a.zoomIn()}return(a,s)=>(H(),To(Br,{"is-dark":e.isDark,disabled:e.disabled,title:he(t)("buttons.zoomIn"),onClick:n},{default:Eo(()=>[...s[0]||(s[0]=[R("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","disabled","title"]))}},Lw={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=Zo(),o=e;function n(){var a;o.disabled||(a=o.map)==null||a.zoomOut()}return(a,s)=>(H(),To(Br,{"is-dark":e.isDark,disabled:e.disabled,title:he(t)("buttons.zoomOut"),onClick:n},{default:Eo(()=>[...s[0]||(s[0]=[R("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","disabled","title"]))}},Aw=["data-projection"],Sw={class:"rd-legend-map","data-map-legend":"","aria-label":"UPG count legend"},id=2,Pw="#f2f3f0",ld=.78,Ew="prayer_level",Cw=.1,Tw=12,Rw={__name:"DashboardMapPanel",setup(e){var Tt,St,jt,lo,dd,pd,gd,fd,hd;const t=ze("dashboardData",null),o=ze("selectionBus",null),n=ze("mapboxToken",de("")),a=ze("dashboardConfig",{}),s=ze("profileConfig",de(null)),r=(o==null?void 0:o.filterSet)||{},i=Object.fromEntries(Object.entries(a.facets||{}).map(([N,J])=>[N,J.get])),l=ia(o,ra(a)),c=re(()=>{var Ee,De;const N=((Ee=t==null?void 0:t.rows)==null?void 0:Ee.value)||[],J=Object.keys(r),pe=!!(((De=o==null?void 0:o.searchTerm)==null?void 0:De.value)||"").trim();if(!J.length&&!pe)return N;const Le=N.filter(je=>J.every(Ae=>{const ut=i[Ae];return ut?ut(je)===r[Ae]:!0}));return la(Le,l)}),u=((Tt=a.map)==null?void 0:Tt.geoFacet)||"country_code",p=((jt=(St=a.facets)==null?void 0:St[u])==null?void 0:jt.geoIso)||(N=>{const J=N[u];return J&&J.value?J.value:null}),g=i[u]||(N=>at(N[u])),y=re(()=>{var J;const N=new Map;for(const pe of((J=t==null?void 0:t.rows)==null?void 0:J.value)||[]){const Le=p(pe);Le&&N.set(Le,g(pe)||Le)}return N}),A=re(()=>{const N=new Map;for(const J of c.value){const pe=p(J);pe&&N.set(pe,(N.get(pe)||0)+1)}return N}),k=de(null),S=re(()=>{var pe,Le;const N=(pe=s==null?void 0:s.value)==null?void 0:pe.provider;return N==="maplibre"||N==="mapbox"?N:nd(null)==="maplibre"||(((Le=a.map)==null?void 0:Le.provider)||a.provider)==="maplibre"?"maplibre":"mapbox"}),C=re(()=>S.value==="maplibre"),{map:f,isMapReady:b,initializeMap:d,destroy:$}=iw({containerRef:k,accessToken:he(n)||n&&n.value||"",center:[28,18],zoom:1.1,minZoom:.5,skipWorldFloor:!0,provider:S.value,...(lo=a.map)!=null&&lo.mapStyle||a.mapStyle?{style:((dd=a.map)==null?void 0:dd.mapStyle)||a.mapStyle}:{}}),L=uw({getMap:()=>f.value,mapId:"rdash-map",defaultCenter:[28,18],defaultZoom:1.45});let w=null;w=ww({bus:o,mapFly:L,getMap:()=>f.value,getRowStore:()=>{var N;return(N=t==null?void 0:t.rowStore)==null?void 0:N.value},isEnabled:()=>b.value});let F=!1,U=null,ne=null,z=null,Y=0,fe=!1;function M(){fe||Y||(Y=requestAnimationFrame(()=>{Y=0;const N=f.value;if(N&&typeof N.resize=="function")try{N.resize()}catch{}}))}function Q(N){const J=!!N;if(J!==fe){if(fe=J,fe){Y&&(cancelAnimationFrame(Y),Y=0);return}M(),setTimeout(M,180)}}const X=(()=>{var J;const N={"heartbeat-red":["#f4cec4","#ecaea1","#e08678","#ce544b","#b10010"],greyscale:["#c9c9c9","#a9a9a9","#6f6f6f","#3a3a3a","#060606"]};return N[(J=a.map)==null?void 0:J.colorRamp]||N["heartbeat-red"]})(),B={heartbeatThreshold:150,binThresholds:[5,20,60],quantile:.1};function se(N,J){return Number.isFinite(J)?J-1<=N?`${N}`:`${N}–${J-1}`:`${N}+ · heartbeat zone`}function I(N){const pe=B.binThresholds.map(Le=>Le/B.heartbeatThreshold).map(Le=>Math.max(id,Math.round(Le*N)));return O(pe,N)}function O(N,J){const pe=[];for(const Le of N){const Ee=Math.max(Le,pe.length?pe[pe.length-1]+1:id);Eeje>0).sort((je,Ae)=>je-Ae);if(pe.length<8)return null;const Le=je=>pe[Math.min(pe.length-1,Math.max(0,Math.floor(je*pe.length)))],Ee=Le(1-J)+1,De=[.25,.5,.75].map(je=>Le(je));return{threshold:Ee,edges:O(De,Ee)}}function D(N){var je;if(Array.isArray((je=a.map)==null?void 0:je.bins)&&a.map.bins.length)return a.map.bins;const J=a.map||{};let pe=Number(J.heartbeatThreshold)>0?Number(J.heartbeatThreshold):B.heartbeatThreshold,Le=null;if(J.heartbeatMode==="quantile"){const Ae=V(N||[],Number(J.heartbeatQuantile)>0?Number(J.heartbeatQuantile):B.quantile);Ae&&(pe=Ae.threshold,Le=Ae.edges)}Le||(Le=Array.isArray(J.binThresholds)&&J.binThresholds.length?[...new Set(J.binThresholds.map(Number).filter(Ae=>Number.isFinite(Ae)&&Ae>0&&AeAe-ut):Number(J.heartbeatThreshold)>0?I(pe):B.binThresholds);const Ee=[...Le,pe,1/0].slice(0,X.length);for(;Ee.length{const Xt={upTo:Ae,c:X[ut],l:se(De,Ae)};return De=Ae,Xt})}const ae=re(()=>D([...A.value.values()])),ge=((pd=a.map)==null?void 0:pd.noDataColor)||"#f3f3f1";function ke(N){if(!N)return ge;const J=ae.value;for(const pe of J)if(N{const je=parseInt(pe.slice(De*2,De*2+2),16),Ae=parseInt(Le.slice(De*2,De*2+2),16);return Math.round(ld*je+(1-ld)*Ae)};return"#"+[0,1,2].map(De=>Ee(De).toString(16).padStart(2,"0")).join("")}const $e=re(()=>ae.value.map(N=>({c:be(N.c),l:N.l}))),Pe=((gd=a.map)==null?void 0:gd.selectedColor)||"#1a237e";function ce(){const N=A.value,J=[],pe=[];N.forEach((je,Ae)=>{J.push(Ae,ke(je)),pe.push(Ae)});const Le=J.length?["match",["get","iso_3166_1_alpha_3"],...J,ge]:ge,De=Object.keys(r).length>0&&pe.length?["match",["get","iso_3166_1_alpha_3"],...pe.flatMap(je=>[je,.92]),.12]:.78;return{fillColor:Le,fillOpacity:De}}function _e(){return Object.prototype.hasOwnProperty.call(r,Ew)}const xe=((fd=a.map)==null?void 0:fd.pinColor)||"#ef6c00",_=((hd=a.map)==null?void 0:hd.pinStrokeColor)||"#ffffff";function P(){return _e()?ts({colorSource:"properties"}):xe}function x(){const N=f.value;if(!N||!N.getLayer("rd-choropleth"))return;const{fillColor:J,fillOpacity:pe}=ce();N.setPaintProperty("rd-choropleth","fill-color",J),N.setPaintProperty("rd-choropleth","fill-opacity",pe);const Le=N.getSource("rd-bubbles");Le&&Le.setData(ee()),N.getLayer("rd-bubble-layer")&&N.setPaintProperty("rd-bubble-layer","circle-color",P())}function G(N){const J=N==null?void 0:N.people_praying,pe=J&&typeof J=="object"?J.value:J;return Number(pe)||0}function ee(){return{type:"FeatureCollection",features:c.value.filter(N=>Number(N.latitude)&&Number(N.longitude)).map(N=>({type:"Feature",geometry:{type:"Point",coordinates:[Number(N.longitude),Number(N.latitude)]},properties:{pop:Number(N.population)||0,slug:N.slug||"",name:N.name||"",peoplePraying:G(N)}}))}}function te(){var pe;const N=o==null?void 0:o.selectionSet,J=((pe=t==null?void 0:t.rows)==null?void 0:pe.value)||[];return!N||!N.size?{type:"FeatureCollection",features:[]}:{type:"FeatureCollection",features:J.filter(Le=>N.has(Le.slug)&&Number(Le.latitude)&&Number(Le.longitude)).map(Le=>({type:"Feature",geometry:{type:"Point",coordinates:[Number(Le.longitude),Number(Le.latitude)]},properties:{slug:Le.slug||"",name:Le.name||""}}))}}function le(){const N=f.value;if(!N)return;const J=N.getSource("rd-bubble-selected");J&&J.setData(te())}function oe(){var Le;const N=f.value;if(!N||F)return;F=!0,N.getSource("rd-countries")||(C.value?(N.addSource("rd-countries",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),fetch(`${Uu(s.value)}/boundaries/world-adm0.geojson`).then(Ee=>Ee.json()).then(Ee=>{for(const je of Ee.features||[])je.properties&&je.properties.iso3&&(je.properties.iso_3166_1_alpha_3=je.properties.iso3);const De=f.value&&f.value.getSource("rd-countries");De&&De.setData(Ee)}).catch(Ee=>console.warn("[rdash] country boundaries failed to load",Ee))):N.addSource("rd-countries",{type:"vector",url:"mapbox://mapbox.country-boundaries-v1"}));const{fillColor:J,fillOpacity:pe}=ce();N.addLayer({id:"rd-choropleth",type:"fill",source:"rd-countries",...C.value?{}:{"source-layer":"country_boundaries"},paint:{"fill-color":J,"fill-opacity":pe,"fill-outline-color":((Le=a.map)==null?void 0:Le.outlineColor)||"#6d766e"}}),N.addSource("rd-bubbles",{type:"geojson",data:ee()}),N.addLayer({id:"rd-bubble-layer",type:"circle",source:"rd-bubbles",paint:{"circle-radius":["interpolate",["linear"],["zoom"],1,2.2,6,5.5],"circle-color":P(),"circle-opacity":1,"circle-stroke-color":_,"circle-stroke-width":["interpolate",["linear"],["zoom"],1,1.2,6,2],"circle-stroke-opacity":1}}),N.addSource("rd-bubble-selected",{type:"geojson",data:te()}),N.addLayer({id:"rd-bubble-selected",type:"circle",source:"rd-bubble-selected",paint:{"circle-radius":["interpolate",["linear"],["zoom"],1,5,6,11],"circle-color":Pe,"circle-opacity":.18,"circle-stroke-width":3,"circle-stroke-color":Pe,"circle-stroke-opacity":.95}}),N.on("click","rd-choropleth",h),N.on("click","rd-bubble-layer",m),N.on("mouseenter","rd-choropleth",()=>{N.getCanvas().style.cursor="pointer"}),N.on("mouseleave","rd-choropleth",()=>{N.getCanvas().style.cursor=""}),N.on("mouseenter","rd-bubble-layer",()=>{N.getCanvas().style.cursor="pointer"}),N.on("mouseleave","rd-bubble-layer",()=>{N.getCanvas().style.cursor=""});try{window.__rdashMap=N,window.__rdashClickAt=(Ee,De)=>{const je=N.project([Ee,De]),Ae=N.queryRenderedFeatures(je,{layers:["rd-choropleth"]});return Ae&&Ae[0]?(h({features:Ae}),Ae[0].properties&&Ae[0].properties.iso_3166_1_alpha_3):null},window.__rdashPinAt=(Ee,De)=>{const je=N.project([Ee,De]),Ae=N.queryRenderedFeatures([[je.x-7,je.y-7],[je.x+7,je.y+7]],{layers:["rd-bubble-layer"]});return Ae&&Ae[0]?(m({features:[Ae[0]]}),Ae[0].properties&&Ae[0].properties.slug):null}}catch{}Ke();try{typeof N.setFog=="function"&&N.setFog({color:"rgb(186, 210, 235)","high-color":"rgb(36, 92, 223)","horizon-blend":.02,"space-color":"#000000","star-intensity":.6})}catch{}o&&o.on("select",le),le(),o&&o.on("focusRow",({slug:Ee}={})=>{var Ae;if(!Ee)return;const De=(((Ae=t==null?void 0:t.rows)==null?void 0:Ae.value)||[]).find(ut=>ut.slug===Ee),je=f.value;if(je&&De&&Number(De.latitude)&&Number(De.longitude))try{je.flyTo({center:[Number(De.longitude),Number(De.latitude)],zoom:5.5,duration:1200})}catch{}})}function h(N){const J=f.value;if(J&&N.point){const De=J.queryRenderedFeatures([[N.point.x-5,N.point.y-5],[N.point.x+5,N.point.y+5]],{layers:["rd-bubble-layer"]});if(De&&De.length)return}const pe=N.features&&N.features[0];if(!pe||!o)return;const Le=pe.properties&&pe.properties.iso_3166_1_alpha_3,Ee=y.value.get(Le);Ee&&(o.setFilter(u,r[u]===Ee?null:Ee),o.emit("mapFocus",{facet:u,value:Ee}))}function m(N){const J=N.features&&N.features[0];if(!J||!o)return;const pe=J.properties&&J.properties.slug;pe&&(o.toggleSelect(pe),o.emit("focusRow",{slug:pe,name:J.properties&&J.properties.name}))}function v(N){var pe;let J=N&&N.parentNode;for(;J;){if(J.nodeType===1){const Le=getComputedStyle(J);if(/auto|scroll/.test(Le.overflowY)&&J.scrollHeight>J.clientHeight+4)return J}if(J=J.parentElement||((pe=J.parentNode)==null?void 0:pe.host)||(J.parentNode!==J?J.parentNode:null),J&&J.nodeType===9)break}return null}function E(N){if(!(!N||!N.scrollZoom))try{N.scrollZoom.enable()}catch{}}yt(async()=>{await d();const N=f.value;if(!N)return;N.isStyleLoaded()?oe():N.on("load",oe),E(N);const J=()=>E(N);let pe=null;try{pe=new ResizeObserver(J);const Le=N.getContainer&&N.getContainer()||null;Le&&pe.observe(Le);const Ee=Le?v(Le):null;Ee&&pe.observe(Ee),document.body&&pe.observe(document.body)}catch{}window.addEventListener("resize",J),It(()=>{try{pe&&pe.disconnect()}catch{}window.removeEventListener("resize",J)}),N.on("zoom",T),N.on("zoomend",T),N.on("resize",T),T(),N.on("idle",()=>{!F&&N.isStyleLoaded()&&oe()}),typeof ResizeObserver<"u"&&k.value&&(U=new ResizeObserver(M),U.observe(k.value)),Ne(),N.on("idle",Ne),N.on("resize",Ne),o&&typeof o.on=="function"&&(ne=o.on("toggleTable",()=>{M(),setTimeout(M,280)}),z=o.on("layoutResizing",Q))}),It(()=>{try{w&&w()}catch{}w=null;try{ne&&ne()}catch{}ne=null;try{z&&z()}catch{}if(z=null,U){try{U.disconnect()}catch{}U=null}if(ie){try{ie.disconnect()}catch{}ie=null}we=null,Y&&(cancelAnimationFrame(Y),Y=0);try{const N=f.value;N&&(N.off("zoom",T),N.off("zoomend",T),N.off("resize",T),N.off("idle",Ne),N.off("resize",Ne))}catch{}try{$&&$()}catch{}}),lt([c,b],x);const q=de(!0),W=de(!0);function T(){const N=f.value;if(!N)return;const J=N.getZoom();q.value=JN.getMinZoom()+.01}const j=de(null);let ie=null,we=null;function Ne(){var Le;const N=j.value;if(!N)return;let J=0;try{const Ee=(Le=N.getRootNode)==null?void 0:Le.call(N),De=Ee&&Ee.querySelector?Ee.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib"):null;if(De){const je=De.getBoundingClientRect(),Ae=N.getBoundingClientRect();if(J=Math.max(je.height||0,Ae.bottom-je.top),we!==De&&typeof ResizeObserver<"u"){if(ie)try{ie.disconnect()}catch{}we=De,ie=new ResizeObserver(Ne),ie.observe(De)}}}catch{}const pe=Math.min(Math.max(Math.ceil(J)||20,20),72);N.style.setProperty("--rd-attrib-clear",pe+"px")}const Ve=de("globe");function Ke(){const N=f.value;if(!(!N||typeof N.setProjection!="function")){try{N.setProjection({type:Ve.value});return}catch{}try{N.setProjection(Ve.value)}catch{}}}function ft(){Ve.value=Ve.value==="globe"?"mercator":"globe",Ke()}function bt(N){const J=Number(N.longitude),pe=Number(N.latitude);return!Number.isFinite(J)||!Number.isFinite(pe)||J===0&&pe===0||pe<-90||pe>90||J<-180||J>180?null:[J,pe]}function K(N,J){if(!N.length)return NaN;const pe=Math.min(N.length-1,Math.max(0,Math.round(J*(N.length-1))));return N[pe]}function me(N){const J=N.slice().sort((Ae,ut)=>Ae-ut),pe=J.length;if(pe<2)return J;let Le=-1,Ee=0;for(let Ae=0;AeLe&&(Le=Xt,Ee=Ae)}const De=(Ee+1)%pe,je=new Array(pe);for(let Ae=0;Ae0&&utJo[1]).sort((Jo,ls)=>Jo-ls),Le=me(J.map(Jo=>Jo[0])),Ee=J.length>=Tw?Cw:0,De=K(pe,Ee),je=K(pe,1-Ee),Ae=K(Le,Ee),ut=K(Le,1-Ee),Xt=[K(Le,.5),K(pe,.5)];return!(ut>Ae)||!(je>De)?{bounds:[[Xt[0],Xt[1]],[Xt[0],Xt[1]]],center:Xt}:{bounds:[[Ae,De],[ut,je]],center:Xt}}function Ie(){const N=f.value;if(!N)return;if(!Object.keys(r).length){try{N.flyTo({center:[28,18],zoom:1.45,duration:1e3})}catch{}return}const J=ve(c.value);if(J)try{N.fitBounds(J.bounds,{padding:70,duration:1200,maxZoom:5.5}),N.setCenter(J.center)}catch{}}let Ge=null;return lt(()=>JSON.stringify(r),()=>{clearTimeout(Ge),Ge=setTimeout(Ie,260)}),Ot(` +`,"map-toolbar"),(o,n)=>(H(),Z("div",{ref_key:"toolbarEl",ref:t,class:qe(["map-toolbar",{"map-toolbar--no-geocoder":!e.hasGeocoder}])},[Ho(o.$slots,"default")],2))}},Pw={__name:"ZoomInButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=Zo(),o=e;function n(){var a;o.disabled||(a=o.map)==null||a.zoomIn()}return(a,s)=>(H(),To(Br,{"is-dark":e.isDark,disabled:e.disabled,title:fe(t)("buttons.zoomIn"),onClick:n},{default:Eo(()=>[...s[0]||(s[0]=[R("span",{style:{"font-size":"20px","line-height":"1","font-weight":"600"}},"+",-1)])]),_:1},8,["is-dark","disabled","title"]))}},Ew={__name:"ZoomOutButton",props:{map:{type:Object,default:null},isDark:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){const{t}=Zo(),o=e;function n(){var a;o.disabled||(a=o.map)==null||a.zoomOut()}return(a,s)=>(H(),To(Br,{"is-dark":e.isDark,disabled:e.disabled,title:fe(t)("buttons.zoomOut"),onClick:n},{default:Eo(()=>[...s[0]||(s[0]=[R("span",{style:{"font-size":"22px","line-height":"1","font-weight":"600"}},"−",-1)])]),_:1},8,["is-dark","disabled","title"]))}},Cw=["data-projection"],Tw={class:"rd-legend-map","data-map-legend":"","aria-label":"UPG count legend"},cd=2,Rw="#f2f3f0",ud=.78,Nw="prayer_level",Ow=.1,Fw=12,Mw={__name:"DashboardMapPanel",setup(e){var Tt,St,jt,lo,gd,fd,hd,md,bd;const t=ze("dashboardData",null),o=ze("selectionBus",null),n=ze("mapboxToken",de("")),a=ze("dashboardConfig",{}),s=ze("profileConfig",de(null)),r=(o==null?void 0:o.filterSet)||{},i=Object.fromEntries(Object.entries(a.facets||{}).map(([N,J])=>[N,J.get])),l=ia(o,ra(a)),c=ie(()=>{var Ee,De;const N=((Ee=t==null?void 0:t.rows)==null?void 0:Ee.value)||[],J=Object.keys(r),ge=!!(((De=o==null?void 0:o.searchTerm)==null?void 0:De.value)||"").trim();if(!J.length&&!ge)return N;const Le=N.filter(je=>J.every(Ae=>{const ut=i[Ae];return ut?ut(je)===r[Ae]:!0}));return la(Le,l)}),u=((Tt=a.map)==null?void 0:Tt.geoFacet)||"country_code",p=((jt=(St=a.facets)==null?void 0:St[u])==null?void 0:jt.geoIso)||(N=>{const J=N[u];return J&&J.value?J.value:null}),g=i[u]||(N=>at(N[u])),y=ie(()=>{var J;const N=new Map;for(const ge of((J=t==null?void 0:t.rows)==null?void 0:J.value)||[]){const Le=p(ge);Le&&N.set(Le,g(ge)||Le)}return N}),A=ie(()=>{const N=new Map;for(const J of c.value){const ge=p(J);ge&&N.set(ge,(N.get(ge)||0)+1)}return N}),k=de(null),S=ie(()=>{var ge,Le;const N=(ge=s==null?void 0:s.value)==null?void 0:ge.provider;return N==="maplibre"||N==="mapbox"?N:nd(null)==="maplibre"||(((Le=a.map)==null?void 0:Le.provider)||a.provider)==="maplibre"?"maplibre":"mapbox"}),C=ie(()=>S.value==="maplibre"),{map:f,isMapReady:b,initializeMap:d,destroy:$}=dw({containerRef:k,accessToken:fe(n)||n&&n.value||"",center:[28,18],zoom:1.1,minZoom:.5,skipWorldFloor:!0,provider:S.value,...(lo=a.map)!=null&&lo.mapStyle||a.mapStyle?{style:((gd=a.map)==null?void 0:gd.mapStyle)||a.mapStyle}:{}}),L=fw({getMap:()=>f.value,mapId:"rdash-map",defaultCenter:[28,18],defaultZoom:1.45});let w=null;w=Aw({bus:o,mapFly:L,getMap:()=>f.value,getRowStore:()=>{var N;return(N=t==null?void 0:t.rowStore)==null?void 0:N.value},isEnabled:()=>b.value});let F=!1,D=null,ne=null,B=null,Y=0,pe=!1;function M(){pe||Y||(Y=requestAnimationFrame(()=>{Y=0;const N=f.value;if(N&&typeof N.resize=="function")try{N.resize()}catch{}}))}function ee(N){const J=!!N;if(J!==pe){if(pe=J,pe){Y&&(cancelAnimationFrame(Y),Y=0);return}M(),setTimeout(M,180)}}const K=(()=>{var J;const N={"heartbeat-red":["#f4cec4","#ecaea1","#e08678","#ce544b","#b10010"],greyscale:["#c9c9c9","#a9a9a9","#6f6f6f","#3a3a3a","#060606"]};return N[(J=a.map)==null?void 0:J.colorRamp]||N["heartbeat-red"]})(),z={heartbeatThreshold:150,binThresholds:[5,20,60],quantile:.1};function re(N,J){return Number.isFinite(J)?J-1<=N?`${N}`:`${N}–${J-1}`:`${N}+ · heartbeat zone`}function j(N){const ge=z.binThresholds.map(Le=>Le/z.heartbeatThreshold).map(Le=>Math.max(cd,Math.round(Le*N)));return O(ge,N)}function O(N,J){const ge=[];for(const Le of N){const Ee=Math.max(Le,ge.length?ge[ge.length-1]+1:cd);Eeje>0).sort((je,Ae)=>je-Ae);if(ge.length<8)return null;const Le=je=>ge[Math.min(ge.length-1,Math.max(0,Math.floor(je*ge.length)))],Ee=Le(1-J)+1,De=[.25,.5,.75].map(je=>Le(je));return{threshold:Ee,edges:O(De,Ee)}}function I(N){var je;if(Array.isArray((je=a.map)==null?void 0:je.bins)&&a.map.bins.length)return a.map.bins;const J=a.map||{};let ge=Number(J.heartbeatThreshold)>0?Number(J.heartbeatThreshold):z.heartbeatThreshold,Le=null;if(J.heartbeatMode==="quantile"){const Ae=V(N||[],Number(J.heartbeatQuantile)>0?Number(J.heartbeatQuantile):z.quantile);Ae&&(ge=Ae.threshold,Le=Ae.edges)}Le||(Le=Array.isArray(J.binThresholds)&&J.binThresholds.length?[...new Set(J.binThresholds.map(Number).filter(Ae=>Number.isFinite(Ae)&&Ae>0&&AeAe-ut):Number(J.heartbeatThreshold)>0?j(ge):z.binThresholds);const Ee=[...Le,ge,1/0].slice(0,K.length);for(;Ee.length{const Xt={upTo:Ae,c:K[ut],l:re(De,Ae)};return De=Ae,Xt})}const ae=ie(()=>I([...A.value.values()])),be=((fd=a.map)==null?void 0:fd.noDataColor)||"#f3f3f1";function ke(N){if(!N)return be;const J=ae.value;for(const ge of J)if(N{const je=parseInt(ge.slice(De*2,De*2+2),16),Ae=parseInt(Le.slice(De*2,De*2+2),16);return Math.round(ud*je+(1-ud)*Ae)};return"#"+[0,1,2].map(De=>Ee(De).toString(16).padStart(2,"0")).join("")}const Se=ie(()=>ae.value.map(N=>({c:xe(N.c),l:N.l}))),ye=((hd=a.map)==null?void 0:hd.selectedColor)||"#1a237e";function se(){const N=A.value,J=[],ge=[];N.forEach((je,Ae)=>{J.push(Ae,ke(je)),ge.push(Ae)});const Le=J.length?["match",["get","iso_3166_1_alpha_3"],...J,be]:be,De=Object.keys(r).length>0&&ge.length?["match",["get","iso_3166_1_alpha_3"],...ge.flatMap(je=>[je,.92]),.12]:.78;return{fillColor:Le,fillOpacity:De}}function he(){return Object.prototype.hasOwnProperty.call(r,Nw)}const ve=((md=a.map)==null?void 0:md.pinColor)||"#ef6c00",_=((bd=a.map)==null?void 0:bd.pinStrokeColor)||"#ffffff";function P(){return he()?ts({colorSource:"properties"}):ve}function x(){const N=f.value;if(!N||!N.getLayer("rd-choropleth"))return;const{fillColor:J,fillOpacity:ge}=se();N.setPaintProperty("rd-choropleth","fill-color",J),N.setPaintProperty("rd-choropleth","fill-opacity",ge);const Le=N.getSource("rd-bubbles");Le&&Le.setData(Q()),N.getLayer("rd-bubble-layer")&&N.setPaintProperty("rd-bubble-layer","circle-color",P())}function U(N){const J=N==null?void 0:N.people_praying,ge=J&&typeof J=="object"?J.value:J;return Number(ge)||0}function Q(){return{type:"FeatureCollection",features:c.value.filter(N=>Number(N.latitude)&&Number(N.longitude)).map(N=>({type:"Feature",geometry:{type:"Point",coordinates:[Number(N.longitude),Number(N.latitude)]},properties:{pop:Number(N.population)||0,slug:N.slug||"",name:N.name||"",peoplePraying:U(N)}}))}}function te(){var ge;const N=o==null?void 0:o.selectionSet,J=((ge=t==null?void 0:t.rows)==null?void 0:ge.value)||[];return!N||!N.size?{type:"FeatureCollection",features:[]}:{type:"FeatureCollection",features:J.filter(Le=>N.has(Le.slug)&&Number(Le.latitude)&&Number(Le.longitude)).map(Le=>({type:"Feature",geometry:{type:"Point",coordinates:[Number(Le.longitude),Number(Le.latitude)]},properties:{slug:Le.slug||"",name:Le.name||""}}))}}function ce(){const N=f.value;if(!N)return;const J=N.getSource("rd-bubble-selected");J&&J.setData(te())}function oe(){var Le;const N=f.value;if(!N||F)return;F=!0,N.getSource("rd-countries")||(C.value?(N.addSource("rd-countries",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),fetch(`${Uu(s.value)}/boundaries/world-adm0.geojson`).then(Ee=>Ee.json()).then(Ee=>{for(const je of Ee.features||[])je.properties&&je.properties.iso3&&(je.properties.iso_3166_1_alpha_3=je.properties.iso3);const De=f.value&&f.value.getSource("rd-countries");De&&De.setData(Ee)}).catch(Ee=>console.warn("[rdash] country boundaries failed to load",Ee))):N.addSource("rd-countries",{type:"vector",url:"mapbox://mapbox.country-boundaries-v1"}));const{fillColor:J,fillOpacity:ge}=se();N.addLayer({id:"rd-choropleth",type:"fill",source:"rd-countries",...C.value?{}:{"source-layer":"country_boundaries"},paint:{"fill-color":J,"fill-opacity":ge,"fill-outline-color":((Le=a.map)==null?void 0:Le.outlineColor)||"#6d766e"}}),N.addSource("rd-bubbles",{type:"geojson",data:Q()}),N.addLayer({id:"rd-bubble-layer",type:"circle",source:"rd-bubbles",paint:{"circle-radius":["interpolate",["linear"],["zoom"],1,2.2,6,5.5],"circle-color":P(),"circle-opacity":1,"circle-stroke-color":_,"circle-stroke-width":["interpolate",["linear"],["zoom"],1,1.2,6,2],"circle-stroke-opacity":1}}),N.addSource("rd-bubble-selected",{type:"geojson",data:te()}),N.addLayer({id:"rd-bubble-selected",type:"circle",source:"rd-bubble-selected",paint:{"circle-radius":["interpolate",["linear"],["zoom"],1,5,6,11],"circle-color":ye,"circle-opacity":.18,"circle-stroke-width":3,"circle-stroke-color":ye,"circle-stroke-opacity":.95}}),N.on("click","rd-choropleth",h),N.on("click","rd-bubble-layer",m),N.on("mouseenter","rd-choropleth",()=>{N.getCanvas().style.cursor="pointer"}),N.on("mouseleave","rd-choropleth",()=>{N.getCanvas().style.cursor=""}),N.on("mouseenter","rd-bubble-layer",()=>{N.getCanvas().style.cursor="pointer"}),N.on("mouseleave","rd-bubble-layer",()=>{N.getCanvas().style.cursor=""});try{window.__rdashMap=N,window.__rdashClickAt=(Ee,De)=>{const je=N.project([Ee,De]),Ae=N.queryRenderedFeatures(je,{layers:["rd-choropleth"]});return Ae&&Ae[0]?(h({features:Ae}),Ae[0].properties&&Ae[0].properties.iso_3166_1_alpha_3):null},window.__rdashPinAt=(Ee,De)=>{const je=N.project([Ee,De]),Ae=N.queryRenderedFeatures([[je.x-7,je.y-7],[je.x+7,je.y+7]],{layers:["rd-bubble-layer"]});return Ae&&Ae[0]?(m({features:[Ae[0]]}),Ae[0].properties&&Ae[0].properties.slug):null}}catch{}Ke();try{typeof N.setFog=="function"&&N.setFog({color:"rgb(186, 210, 235)","high-color":"rgb(36, 92, 223)","horizon-blend":.02,"space-color":"#000000","star-intensity":.6})}catch{}o&&o.on("select",ce),ce(),o&&o.on("focusRow",({slug:Ee}={})=>{var Ae;if(!Ee)return;const De=(((Ae=t==null?void 0:t.rows)==null?void 0:Ae.value)||[]).find(ut=>ut.slug===Ee),je=f.value;if(je&&De&&Number(De.latitude)&&Number(De.longitude))try{je.flyTo({center:[Number(De.longitude),Number(De.latitude)],zoom:5.5,duration:1200})}catch{}})}function h(N){const J=f.value;if(J&&N.point){const De=J.queryRenderedFeatures([[N.point.x-5,N.point.y-5],[N.point.x+5,N.point.y+5]],{layers:["rd-bubble-layer"]});if(De&&De.length)return}const ge=N.features&&N.features[0];if(!ge||!o)return;const Le=ge.properties&&ge.properties.iso_3166_1_alpha_3,Ee=y.value.get(Le);Ee&&(o.setFilter(u,r[u]===Ee?null:Ee),o.emit("mapFocus",{facet:u,value:Ee}))}function m(N){const J=N.features&&N.features[0];if(!J||!o)return;const ge=J.properties&&J.properties.slug;ge&&(o.toggleSelect(ge),o.emit("focusRow",{slug:ge,name:J.properties&&J.properties.name}))}function v(N){var ge;let J=N&&N.parentNode;for(;J;){if(J.nodeType===1){const Le=getComputedStyle(J);if(/auto|scroll/.test(Le.overflowY)&&J.scrollHeight>J.clientHeight+4)return J}if(J=J.parentElement||((ge=J.parentNode)==null?void 0:ge.host)||(J.parentNode!==J?J.parentNode:null),J&&J.nodeType===9)break}return null}function E(N){if(!(!N||!N.scrollZoom))try{N.scrollZoom.enable()}catch{}}yt(async()=>{await d();const N=f.value;if(!N)return;N.isStyleLoaded()?oe():N.on("load",oe),E(N);const J=()=>E(N);let ge=null;try{ge=new ResizeObserver(J);const Le=N.getContainer&&N.getContainer()||null;Le&&ge.observe(Le);const Ee=Le?v(Le):null;Ee&&ge.observe(Ee),document.body&&ge.observe(document.body)}catch{}window.addEventListener("resize",J),It(()=>{try{ge&&ge.disconnect()}catch{}window.removeEventListener("resize",J)}),N.on("zoom",T),N.on("zoomend",T),N.on("resize",T),T(),N.on("idle",()=>{!F&&N.isStyleLoaded()&&oe()}),typeof ResizeObserver<"u"&&k.value&&(D=new ResizeObserver(M),D.observe(k.value)),Ne(),N.on("idle",Ne),N.on("resize",Ne),o&&typeof o.on=="function"&&(ne=o.on("toggleTable",()=>{M(),setTimeout(M,280)}),B=o.on("layoutResizing",ee))}),It(()=>{try{w&&w()}catch{}w=null;try{ne&&ne()}catch{}ne=null;try{B&&B()}catch{}if(B=null,D){try{D.disconnect()}catch{}D=null}if(le){try{le.disconnect()}catch{}le=null}we=null,Y&&(cancelAnimationFrame(Y),Y=0);try{const N=f.value;N&&(N.off("zoom",T),N.off("zoomend",T),N.off("resize",T),N.off("idle",Ne),N.off("resize",Ne))}catch{}try{$&&$()}catch{}}),it([c,b],x);const q=de(!0),W=de(!0);function T(){const N=f.value;if(!N)return;const J=N.getZoom();q.value=JN.getMinZoom()+.01}const G=de(null);let le=null,we=null;function Ne(){var Le;const N=G.value;if(!N)return;let J=0;try{const Ee=(Le=N.getRootNode)==null?void 0:Le.call(N),De=Ee&&Ee.querySelector?Ee.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib"):null;if(De){const je=De.getBoundingClientRect(),Ae=N.getBoundingClientRect();if(J=Math.max(je.height||0,Ae.bottom-je.top),we!==De&&typeof ResizeObserver<"u"){if(le)try{le.disconnect()}catch{}we=De,le=new ResizeObserver(Ne),le.observe(De)}}}catch{}const ge=Math.min(Math.max(Math.ceil(J)||20,20),72);N.style.setProperty("--rd-attrib-clear",ge+"px")}const Ve=de("globe");function Ke(){const N=f.value;if(!(!N||typeof N.setProjection!="function")){try{N.setProjection({type:Ve.value});return}catch{}try{N.setProjection(Ve.value)}catch{}}}function ft(){Ve.value=Ve.value==="globe"?"mercator":"globe",Ke()}function bt(N){const J=Number(N.longitude),ge=Number(N.latitude);return!Number.isFinite(J)||!Number.isFinite(ge)||J===0&&ge===0||ge<-90||ge>90||J<-180||J>180?null:[J,ge]}function X(N,J){if(!N.length)return NaN;const ge=Math.min(N.length-1,Math.max(0,Math.round(J*(N.length-1))));return N[ge]}function me(N){const J=N.slice().sort((Ae,ut)=>Ae-ut),ge=J.length;if(ge<2)return J;let Le=-1,Ee=0;for(let Ae=0;AeLe&&(Le=Xt,Ee=Ae)}const De=(Ee+1)%ge,je=new Array(ge);for(let Ae=0;Ae0&&utQo[1]).sort((Qo,ls)=>Qo-ls),Le=me(J.map(Qo=>Qo[0])),Ee=J.length>=Fw?Ow:0,De=X(ge,Ee),je=X(ge,1-Ee),Ae=X(Le,Ee),ut=X(Le,1-Ee),Xt=[X(Le,.5),X(ge,.5)];return!(ut>Ae)||!(je>De)?{bounds:[[Xt[0],Xt[1]],[Xt[0],Xt[1]]],center:Xt}:{bounds:[[Ae,De],[ut,je]],center:Xt}}function Ie(){const N=f.value;if(!N)return;if(!Object.keys(r).length){try{N.flyTo({center:[28,18],zoom:1.45,duration:1e3})}catch{}return}const J=_e(c.value);if(J)try{N.fitBounds(J.bounds,{padding:70,duration:1200,maxZoom:5.5}),N.setCenter(J.center)}catch{}}let Ge=null;return it(()=>JSON.stringify(r),()=>{clearTimeout(Ge),Ge=setTimeout(Ie,260)}),Ot(` .rd-mapwrap{ position:relative; width:100%; height:100%; min-height:0; background:var(--dx-line, #d1d4cd); } .rd-mapwrap[data-projection="globe"]{ background:#000; } .rd-mapwrap .rd-mapc{ position:absolute; inset:0; } @@ -690,11 +690,11 @@ z-index:2; touch-action:pan-y; pointer-events:auto; background:transparent; } .map-scroll-edge--left{ left:0; } .map-scroll-edge--right{ right:0; } -`,"rd-mappanel"),(N,J)=>(H(),Z("div",{ref_key:"mapWrap",ref:j,class:"rd-mapwrap","data-sub":"map","data-projection":Ve.value},[R("div",{ref_key:"mapContainer",ref:k,class:"rd-mapc","data-map-canvas":""},null,512),J[1]||(J[1]=R("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),J[2]||(J[2]=R("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1)),Ue(xw,{class:"rd-zoomtools","has-geocoder":!1,"data-map-zoom-controls":""},{default:Eo(()=>[Ue(kw,{map:he(f),disabled:!q.value},null,8,["map","disabled"]),Ue(Lw,{map:he(f),disabled:!W.value},null,8,["map","disabled"])]),_:1}),R("span",{class:"rd-proj",role:"button",tabindex:"0","data-proj-toggle":"",onClick:ft},ue(Ve.value==="globe"?"🌐 Globe":"▭ Flat"),1),R("div",Sw,[J[0]||(J[0]=R("div",{class:"lg-h"},"UPGs / country",-1)),(H(!0),Z(Ce,null,et($e.value,pe=>(H(),Z("div",{key:pe.l,class:"lg-row"},[R("span",{class:"lg-sw",style:rt({background:pe.c})},null,4),R("span",null,ue(pe.l),1)]))),128))])],8,Aw))}},Nw=".filter-dropdown{position:relative;flex:0 0 auto;width:var(--dx-filter-w, 128px);min-width:var(--dx-filter-w, 128px);max-width:var(--dx-filter-w, 128px)}@media (max-width: 576px){.filter-dropdown{width:var(--dx-filter-w-sm, 108px);min-width:var(--dx-filter-w-sm, 108px);max-width:var(--dx-filter-w-sm, 108px)}}.filter-dropdown__trigger{width:100%;padding:var(--dx-filter-pad-y, 4px) var(--dx-filter-pad-x, 8px);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:.875rem;color:var(--dx-text, #3b463d);text-align:start;background:var(--dx-elevated, #fff);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;transition:border-color .15s ease}.filter-dropdown__trigger:hover{border-color:var(--dx-accent, #92b195)}.filter-dropdown__trigger[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--dx-accent, #92b195)}.filter-dropdown__label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-dropdown__chevron{flex-shrink:0;transition:transform .2s ease}.filter-dropdown.is-open .filter-dropdown__chevron{transform:rotate(180deg)}.filter-dropdown__menu{position:fixed;z-index:2147483000;background-color:var(--dx-elevated, #fff);color:var(--dx-text, #3b463d);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;box-shadow:0 4px 12px #0000001f;overflow:hidden;display:flex;flex-direction:column;min-width:160px}.filter-dropdown__search{border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);border-radius:0;padding:6px 12px;width:100%;font-size:.875rem;color:var(--dx-text, #3b463d);background:var(--dx-elevated, #fff);outline:none;box-sizing:border-box}.filter-dropdown__search::placeholder{color:var(--dx-muted, #6d766e)}.filter-dropdown__clear{display:block;width:100%;background:none;border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);padding:6px 12px;font-size:.875rem;color:var(--dx-text, #3b463d);cursor:pointer;text-align:start;text-decoration:underline;text-decoration-color:var(--dx-accent, #92b195);text-underline-offset:3px}.filter-dropdown__clear:hover{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__options{flex:1 1 auto;min-height:0;max-height:250px;overflow-y:auto}.filter-dropdown__search,.filter-dropdown__clear{flex:0 0 auto}.filter-dropdown__option{padding:5px 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:.875rem;transition:background-color .1s ease}.filter-dropdown__option[data-selected]{font-weight:700;color:var(--dx-text, #3b463d);box-shadow:inset 3px 0 0 var(--dx-accent, #92b195)}.filter-dropdown__option:hover,.filter-dropdown__option[data-highlighted]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__count{color:var(--dx-muted, #6d766e);font-size:.75rem;margin-inline-start:6px}.filter-dropdown__no-options{padding:12px;font-size:.875rem;color:var(--dx-muted, #6d766e);text-align:center}",Ow=["data-active","aria-expanded"],Fw={class:"filter-dropdown__label"},Mw=["value","placeholder"],Iw={class:"filter-dropdown__options"},Dw={key:0,class:"filter-dropdown__no-options"},jw=["data-highlighted","data-selected","aria-selected","onClick","onMouseenter"],zw={class:"filter-dropdown__count"},ua=kn({__name:"FilterDropdown",props:{label:{type:String,required:!0},name:{type:String,required:!0},options:{type:Array,default:()=>[]},value:{type:String,default:""},placeholder:{type:String,default:"Type to search..."}},emits:["filter-change","filter-clear"],setup(e,{emit:t}){const o=e,n={"buttons.clearSelection":"Clear selection","buttons.noOptions":"No options found"};let a=z=>n[z]||z;try{a=Zo().t}catch{}const s=t,r=de(!1),i=de(""),l=de(-1),c=de(null),u=de(null),p=de(null),g=de({});function y(z){const Y=z.ownerDocument,fe=Y.createElement("div");fe.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",(z.parentElement||z.getRootNode().body||Y.body).appendChild(fe);const Q=fe.getBoundingClientRect();return fe.remove(),{x:Q.left,y:Q.top}}function A(){const z=p.value;if(!z)return;const Y=z.getBoundingClientRect(),fe=window.innerWidth,M=window.innerHeight,Q=320,X=4,B=8,I=Math.round(Math.min(Math.max(Y.width,240),fe-B*2)),O=Y.right>B&&Y.leftfe-B?V=Math.round(Math.max(Y.right-I,B)):V=Math.round(Math.max(Y.left,B)):V=Math.round(Math.min(Math.max(Y.left,B),fe-I-B));const D=M-Y.bottom,ae=D<180&&Y.top>D,ge=y(z),ke=Math.round(V-ge.x);g.value=ae?{top:"auto",bottom:`${Math.round(M-Y.top+X+ge.y)}px`,left:`${ke}px`,width:`${I}px`,maxHeight:`${Math.round(Math.min(Q,Y.top-X-B))}px`}:{top:`${Math.round(Y.bottom+X-ge.y)}px`,bottom:"auto",left:`${ke}px`,width:`${I}px`,maxHeight:`${Math.round(Math.min(Q,D-X-B))}px`}}function k(){r.value&&A()}const S=re(()=>{if(!i.value)return o.options;const z=i.value.toLowerCase();return o.options.filter(Y=>Y.label.toLowerCase().includes(z))}),C=re(()=>o.options.find(z=>z.value===o.value));function f(z){var fe;const Y=((fe=z.composedPath)==null?void 0:fe.call(z))??[];c.value&&!Y.includes(c.value)&&$()}function b(){r.value?$():d()}function d(){r.value=!0,i.value="",l.value=-1,A(),document.addEventListener("click",f),window.addEventListener("scroll",k,!0),window.addEventListener("resize",k),Mn(()=>{var z;A(),(z=u.value)==null||z.focus()})}function $(){r.value=!1,i.value="",l.value=-1,document.removeEventListener("click",f),window.removeEventListener("scroll",k,!0),window.removeEventListener("resize",k)}function L(z){i.value=z.target.value,l.value=-1}function w(z){const Y=S.value;switch(z.key){case"ArrowDown":z.preventDefault(),l.value=Math.min(l.value+1,Y.length-1),F();break;case"ArrowUp":z.preventDefault(),l.value=Math.max(l.value-1,0),F();break;case"Enter":{z.preventDefault();const fe=Y[l.value];fe&&U(fe);break}case"Escape":z.preventDefault(),$();break}}function F(){Mn(()=>{var Y;const z=(Y=c.value)==null?void 0:Y.querySelector(".filter-dropdown__option[data-highlighted]");z==null||z.scrollIntoView({block:"nearest"})})}function U(z){s("filter-change",{name:o.name,value:z.value,label:z.label,type:z.type}),$()}function ne(){s("filter-clear",{name:o.name}),$()}return It(()=>{document.removeEventListener("click",f),window.removeEventListener("scroll",k,!0),window.removeEventListener("resize",k)}),(z,Y)=>(H(),Z("div",{ref_key:"rootRef",ref:c,class:qe(["filter-dropdown",{"is-open":r.value}])},[R("button",{ref_key:"triggerRef",ref:p,class:"filter-dropdown__trigger input","data-active":e.value?"":void 0,type:"button","aria-haspopup":"listbox","aria-expanded":r.value,onClick:b},[R("span",Fw,[C.value?(H(),Z(Ce,{key:0},[ct(ue(e.label)+": ",1),R("strong",null,ue(C.value.label),1)],64)):(H(),Z(Ce,{key:1},[ct(ue(e.label),1)],64))]),Y[0]||(Y[0]=R("svg",{class:"filter-dropdown__chevron",width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[R("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,Ow),r.value?(H(),Z("div",{key:0,class:"filter-dropdown__menu",role:"listbox",style:rt(g.value)},[R("input",{ref_key:"searchInputRef",ref:u,class:"filter-dropdown__search",type:"text",value:i.value,placeholder:e.placeholder,onInput:L,onKeydown:w},null,40,Mw),e.value?(H(),Z("button",{key:0,class:"filter-dropdown__clear",type:"button",onClick:ne},ue(he(a)("buttons.clearSelection")),1)):Fe("",!0),R("div",Iw,[S.value.length===0?(H(),Z("div",Dw,ue(he(a)("buttons.noOptions")),1)):(H(!0),Z(Ce,{key:1},et(S.value,(fe,M)=>(H(),Z("div",{key:fe.value,class:"filter-dropdown__option",role:"option","data-highlighted":M===l.value?"":void 0,"data-selected":fe.value===e.value?"":void 0,"aria-selected":fe.value===e.value,onClick:Q=>U(fe),onMouseenter:Q=>l.value=M},[R("span",null,ue(fe.label),1),R("span",zw,ue(fe.count),1)],40,jw))),128))])],4)):Fe("",!0)],2))}},[["styles",[Nw]]]),Gw=".sfh{--brand: var(--dx-accent, #92b195);--ink: var(--dx-text, #3b463d);--mut: var(--dx-muted, #6d766e);--line: var(--dx-line, #d1d4cd);--card: var(--dx-elevated, #fff);display:flex;flex-direction:column;gap:var(--dx-sfh-gap, 4px);width:100%;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:var(--ink)}.sfh__search-row{display:flex;align-items:center;gap:12px;justify-content:center}.sfh__search-row>:first-child{flex:0 1 auto}.sfh__toggle{flex:0 0 auto;background:none;border:none;cursor:pointer;font-size:.875rem;color:var(--ink);display:inline-flex;align-items:center;gap:4px;white-space:nowrap;padding:4px 2px;text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:4px}.sfh__toggle-chev{transition:transform .2s ease}.sfh__toggle[aria-expanded=true] .sfh__toggle-chev{transform:rotate(180deg)}.sfh__filters-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dx-filter-gap, 10px);justify-content:flex-start;overflow-x:clip;padding-bottom:2px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.sfh__dd{flex:0 0 auto}.sfh__filters-row::-webkit-scrollbar{height:8px}.sfh__filters-row::-webkit-scrollbar-thumb{background:var(--dx-scroll-thumb, #c4c8c0);border-radius:8px}.sfh__filters-row::-webkit-scrollbar-track{background:transparent}.sfh__pill{flex:0 0 auto;padding:6px 12px;cursor:pointer;font-size:.875rem;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:8px;white-space:nowrap;transition:border-color .15s ease,background .15s ease}.sfh__pill:hover{border-color:var(--brand)}.sfh__pill[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--brand);color:var(--ink)}.sfh__chips{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;justify-content:center;min-height:var(--dx-sel-row-h, 16px)}.sfh__chip-strip{flex:0 1 auto;min-width:0;display:flex;flex-wrap:nowrap;gap:6px;align-items:center;justify-content:center;justify-content:safe center;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.sfh__chip-strip::-webkit-scrollbar{height:6px}.sfh__chip-strip::-webkit-scrollbar-thumb{background:var(--dx-scroll-thumb, #c4c8c0);border-radius:8px}.sfh__chip-strip::-webkit-scrollbar-track{background:transparent}.sfh__sel-label{flex:0 0 auto;font-size:.6875rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--mut, #6d766e);opacity:.75}.sfh__sel-world{flex:0 0 auto;font-size:.75rem;color:var(--mut, #6d766e)}.sfh__chip{flex:0 0 auto;display:inline-flex;gap:4px;align-items:center;background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));color:var(--ink);border:1px solid var(--line);border-radius:100px;padding:0 8px;font-size:.75rem;line-height:1;white-space:nowrap;height:var(--dx-sel-row-h, 16px);box-sizing:border-box}.sfh__chip-x{background:none;border:none;cursor:pointer;font-size:1.05em;line-height:1;color:inherit;padding:0;display:inline-flex;align-items:center}.sfh__chip-x:hover{opacity:.7}.sfh__clear{flex:0 0 auto;white-space:nowrap;background:none;border:none;cursor:pointer;font-size:.75rem;line-height:1;color:var(--mut, #6d766e);text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:3px;padding:0 4px;margin-inline-start:2px}.sfh__clear:hover{color:var(--ink)}",Uw={class:"sfh"},Bw={key:0,class:"sfh__search-row"},Vw=["aria-expanded"],qw=["aria-label"],Ww=["data-active","onClick"],Hw={class:"sfh__chip-strip"},Kw={class:"sfh__sel-label"},Xw=["aria-label","onClick"],Yw={key:1,class:"sfh__sel-world"},Zw=kn({__name:"SearchFilterHeader",props:{search:{type:String,default:""},filters:{type:Array,default:()=>[]},toggles:{type:Array,default:()=>[]},activeChips:{type:Array,default:null},searchPlaceholder:{type:String,default:"Search…"},searchMaxWidth:{type:String,default:"520px"},showSearch:{type:[Boolean,String],default:!0},showFilters:{type:[Boolean,String],default:!0},startExpanded:{type:Boolean,default:!1},collapsible:{type:Boolean,default:!0},labels:{type:Object,default:()=>({})}},emits:["update:search","search","filter-change","filter-clear","toggle","remove-filter","clear-all"],setup(e,{emit:t}){const o=e,n=t,a=f=>!(f===!1||f==="false"||f==="0"||f===0),s=re(()=>a(o.showSearch)),r=re(()=>a(o.showFilters)),i=re(()=>({show_filters:Se("grid.show_filters")||"Show Filters",hide_filters:Se("grid.hide_filters")||"Hide Filters",clear_all:Se("grid.clear_all")||"Clear All",type_to_search:Se("grid.type_to_search")||"Type to search...",filters:Se("dashboard.filters")||"Filters",selected:Se("dashboard.selected")||"Selected",world:Se("dashboard.world")||"World",remove:Se("dashboard.remove_filter")||"Remove",...o.labels})),l=de(o.startExpanded||!o.collapsible);function c(){l.value=!l.value}const u=re(()=>!o.collapsible||!s.value||l.value),p=re(()=>{if(Array.isArray(o.activeChips))return o.activeChips;const f=[];for(const b of o.filters){if(!b.value)continue;const d=(b.options||[]).find($=>$.value===b.value);f.push({name:b.name,label:d?d.label:b.value})}for(const b of o.toggles)b.active&&f.push({name:b.name,label:b.label});return f});function g(f){const b=(f==null?void 0:f.value)??"";n("update:search",b),n("search",{value:b})}function y(f){n("filter-change",f)}function A(f){n("filter-clear",f)}function k(f){n("toggle",{name:f.name,active:!f.active})}function S(f){n("remove-filter",{name:f})}function C(){n("clear-all")}return(f,b)=>(H(),Z("div",Uw,[s.value?(H(),Z("div",Bw,[Ue(Ur,{"model-value":e.search,placeholder:e.searchPlaceholder,"aria-label":e.searchPlaceholder,"max-width":e.searchMaxWidth,onSearch:g},null,8,["model-value","placeholder","aria-label","max-width"]),r.value&&e.collapsible?(H(),Z("button",{key:0,class:"sfh__toggle",type:"button","aria-expanded":u.value,onClick:c},[ct(ue(u.value?i.value.hide_filters:i.value.show_filters)+" ",1),b[0]||(b[0]=R("svg",{class:"sfh__toggle-chev",width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[R("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,Vw)):Fe("",!0)])):Fe("",!0),r.value&&u.value?(H(),Z("div",{key:1,class:"sfh__filters-row",role:"group","aria-label":i.value.filters},[(H(!0),Z(Ce,null,et(e.filters,d=>(H(),To(ua,{key:d.name,class:"sfh__dd",label:d.label,name:d.name,options:d.options||[],value:d.value||"",placeholder:d.placeholder||i.value.type_to_search,onFilterChange:y,onFilterClear:A},null,8,["label","name","options","value","placeholder"]))),128)),(H(!0),Z(Ce,null,et(e.toggles,d=>(H(),Z("button",{key:d.name,class:"sfh__pill",type:"button","data-active":d.active?"":void 0,onClick:$=>k(d)},ue(d.label),9,Ww))),128))],8,qw)):Fe("",!0),r.value?(H(),Z("div",{key:2,class:qe(["sfh__chips",{"is-empty":!p.value.length}])},[R("div",Hw,[R("span",Kw,ue(i.value.selected||"Selected"),1),p.value.length?(H(),Z(Ce,{key:0},[(H(!0),Z(Ce,null,et(p.value,d=>(H(),Z("span",{key:d.name,class:"sfh__chip"},[ct(ue(d.label)+" ",1),R("button",{class:"sfh__chip-x",type:"button","aria-label":`${i.value.remove} ${d.label}`,onClick:$=>S(d.name)},"×",8,Xw)]))),128)),R("button",{class:"sfh__clear",type:"button",onClick:C},ue(i.value.clear_all),1)],64)):(H(),Z("span",Yw,ue(i.value.world||"World"),1))])],2)):Fe("",!0)]))}},[["styles",[Gw]]]),Jw={class:"rd-research-filters","data-region":"filters","data-sub":"research-filters"},is="prayer_level",Qw={__name:"DashboardResearchFilters",setup(e){const t=ze("selectionBus",null),o=ze("dashboardData",null),n=ze("dashboardConfig",{}),a=re(()=>{var w;return((w=o==null?void 0:o.rows)==null?void 0:w.value)||[]}),s=(t==null?void 0:t.filterSet)||{},r={label:"Prayer",get:w=>{const F=w==null?void 0:w.people_praying,U=F&&typeof F=="object"?F.value:F;return oa[_n({peoplePraying:U??null})]}},i=re(()=>({[is]:r,...n.facets||{}})),l=re(()=>Object.fromEntries(Object.entries(i.value).map(([w,F])=>[w,F.get]))),c=re(()=>n.researchFilters||{}),u=re(()=>{const w=c.value.dropdowns||["wagf_region","wagf_block","country_code","people_group","religion"];return[is,...w.filter(F=>F!==is)]}),p=re(()=>c.value.searchPlaceholder||"Search people groups, place, language, religion…");function g(w,F){const U=Object.keys(w);return U.length?F.filter(ne=>U.every(z=>{const Y=l.value[z];return Y?Y(ne)===w[z]:!0})):F}function y(w){var fe;const F=l.value[w];if(!F)return[];const U=(fe=i.value[w])==null?void 0:fe.optionLabel,ne={};for(const[M,Q]of Object.entries(s))M!==w&&(ne[M]=Q);const z=g(ne,a.value),Y=new Map;for(const M of z){const Q=F(M);if(Q==null||Q==="")continue;const X=Y.get(Q);X?X.count+=1:Y.set(Q,{label:U&&U(M)||Q,count:1})}return Array.from(Y.entries()).map(([M,{label:Q,count:X}])=>({value:M,label:Q,count:X})).sort((M,Q)=>String(M.label).localeCompare(String(Q.label)))}const A=re(()=>u.value.map(w=>{var F;return{name:w,label:((F=i.value[w])==null?void 0:F.label)||w,options:y(w),value:s[w]||""}})),{labelFor:k}=sa(n,ze("dataStore",null),ze("searchSourceId",null)),S=re(()=>{var U;const w=Object.keys(s).map(ne=>{var Y;const z=s[ne];return{name:ne,label:`${((Y=i.value[ne])==null?void 0:Y.label)||ne}: ${ne===is?z:k(ne,z)}`}}),F=(((U=t==null?void 0:t.searchTerm)==null?void 0:U.value)||"").trim();return F&&w.push({name:"__search__",label:`Search: ${F}`}),w}),C=re(()=>{var w;return((w=t==null?void 0:t.searchTerm)==null?void 0:w.value)||""});function f(w){t==null||t.setSearch((w==null?void 0:w.value)??"")}function b(w){t==null||t.setFilter(w.name,w.value)}function d(w){t==null||t.setFilter(w.name,null)}function $(w){if(w.name==="__search__"){t==null||t.setSearch("");return}t==null||t.setFilter(w.name,null)}function L(){t==null||t.clearFilters(),t==null||t.setSearch("")}return Ot(` +`,"rd-mappanel"),(N,J)=>(H(),Z("div",{ref_key:"mapWrap",ref:G,class:"rd-mapwrap","data-sub":"map","data-projection":Ve.value},[R("div",{ref_key:"mapContainer",ref:k,class:"rd-mapc","data-map-canvas":""},null,512),J[1]||(J[1]=R("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),J[2]||(J[2]=R("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1)),Ue(Sw,{class:"rd-zoomtools","has-geocoder":!1,"data-map-zoom-controls":""},{default:Eo(()=>[Ue(Pw,{map:fe(f),disabled:!q.value},null,8,["map","disabled"]),Ue(Ew,{map:fe(f),disabled:!W.value},null,8,["map","disabled"])]),_:1}),R("span",{class:"rd-proj",role:"button",tabindex:"0","data-proj-toggle":"",onClick:ft},ue(Ve.value==="globe"?"🌐 Globe":"▭ Flat"),1),R("div",Tw,[J[0]||(J[0]=R("div",{class:"lg-h"},"UPGs / country",-1)),(H(!0),Z(Ce,null,et(Se.value,ge=>(H(),Z("div",{key:ge.l,class:"lg-row"},[R("span",{class:"lg-sw",style:rt({background:ge.c})},null,4),R("span",null,ue(ge.l),1)]))),128))])],8,Cw))}},Iw=".filter-dropdown{position:relative;flex:0 0 auto;width:var(--dx-filter-w, 128px);min-width:var(--dx-filter-w, 128px);max-width:var(--dx-filter-w, 128px)}@media (max-width: 576px){.filter-dropdown{width:var(--dx-filter-w-sm, 108px);min-width:var(--dx-filter-w-sm, 108px);max-width:var(--dx-filter-w-sm, 108px)}}.filter-dropdown__trigger{width:100%;padding:var(--dx-filter-pad-y, 4px) var(--dx-filter-pad-x, 8px);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:.875rem;color:var(--dx-text, #3b463d);text-align:start;background:var(--dx-elevated, #fff);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;transition:border-color .15s ease}.filter-dropdown__trigger:hover{border-color:var(--dx-accent, #92b195)}.filter-dropdown__trigger[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--dx-accent, #92b195)}.filter-dropdown__label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-dropdown__chevron{flex-shrink:0;transition:transform .2s ease}.filter-dropdown.is-open .filter-dropdown__chevron{transform:rotate(180deg)}.filter-dropdown__menu{position:fixed;z-index:2147483000;background-color:var(--dx-elevated, #fff);color:var(--dx-text, #3b463d);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;box-shadow:0 4px 12px #0000001f;overflow:hidden;display:flex;flex-direction:column;min-width:160px}.filter-dropdown__search{border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);border-radius:0;padding:6px 12px;width:100%;font-size:.875rem;color:var(--dx-text, #3b463d);background:var(--dx-elevated, #fff);outline:none;box-sizing:border-box}.filter-dropdown__search::placeholder{color:var(--dx-muted, #6d766e)}.filter-dropdown__clear{display:block;width:100%;background:none;border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);padding:6px 12px;font-size:.875rem;color:var(--dx-text, #3b463d);cursor:pointer;text-align:start;text-decoration:underline;text-decoration-color:var(--dx-accent, #92b195);text-underline-offset:3px}.filter-dropdown__clear:hover{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__options{flex:1 1 auto;min-height:0;max-height:250px;overflow-y:auto}.filter-dropdown__search,.filter-dropdown__clear{flex:0 0 auto}.filter-dropdown__option{padding:5px 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:.875rem;transition:background-color .1s ease}.filter-dropdown__option[data-selected]{font-weight:700;color:var(--dx-text, #3b463d);box-shadow:inset 3px 0 0 var(--dx-accent, #92b195)}.filter-dropdown__option:hover,.filter-dropdown__option[data-highlighted]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__count{color:var(--dx-muted, #6d766e);font-size:.75rem;margin-inline-start:6px}.filter-dropdown__no-options{padding:12px;font-size:.875rem;color:var(--dx-muted, #6d766e);text-align:center}",Dw=["data-active","aria-expanded"],jw={class:"filter-dropdown__label"},zw=["value","placeholder"],Gw={class:"filter-dropdown__options"},Uw={key:0,class:"filter-dropdown__no-options"},Bw=["data-highlighted","data-selected","aria-selected","onClick","onMouseenter"],Vw={class:"filter-dropdown__count"},ua=kn({__name:"FilterDropdown",props:{label:{type:String,required:!0},name:{type:String,required:!0},options:{type:Array,default:()=>[]},value:{type:String,default:""},placeholder:{type:String,default:"Type to search..."}},emits:["filter-change","filter-clear"],setup(e,{emit:t}){const o=e,n={"buttons.clearSelection":"Clear selection","buttons.noOptions":"No options found"};let a=B=>n[B]||B;try{a=Zo().t}catch{}const s=t,r=de(!1),i=de(""),l=de(-1),c=de(null),u=de(null),p=de(null),g=de({});function y(B){const Y=B.ownerDocument,pe=Y.createElement("div");pe.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",(B.parentElement||B.getRootNode().body||Y.body).appendChild(pe);const ee=pe.getBoundingClientRect();return pe.remove(),{x:ee.left,y:ee.top}}function A(){const B=p.value;if(!B)return;const Y=B.getBoundingClientRect(),pe=window.innerWidth,M=window.innerHeight,ee=320,K=4,z=8,j=Math.round(Math.min(Math.max(Y.width,240),pe-z*2)),O=Y.right>z&&Y.leftpe-z?V=Math.round(Math.max(Y.right-j,z)):V=Math.round(Math.max(Y.left,z)):V=Math.round(Math.min(Math.max(Y.left,z),pe-j-z));const I=M-Y.bottom,ae=I<180&&Y.top>I,be=y(B),ke=Math.round(V-be.x);g.value=ae?{top:"auto",bottom:`${Math.round(M-Y.top+K+be.y)}px`,left:`${ke}px`,width:`${j}px`,maxHeight:`${Math.round(Math.min(ee,Y.top-K-z))}px`}:{top:`${Math.round(Y.bottom+K-be.y)}px`,bottom:"auto",left:`${ke}px`,width:`${j}px`,maxHeight:`${Math.round(Math.min(ee,I-K-z))}px`}}function k(){r.value&&A()}const S=ie(()=>{if(!i.value)return o.options;const B=i.value.toLowerCase();return o.options.filter(Y=>Y.label.toLowerCase().includes(B))}),C=ie(()=>o.options.find(B=>B.value===o.value));function f(B){var pe;const Y=((pe=B.composedPath)==null?void 0:pe.call(B))??[];c.value&&!Y.includes(c.value)&&$()}function b(){r.value?$():d()}function d(){r.value=!0,i.value="",l.value=-1,A(),document.addEventListener("click",f),window.addEventListener("scroll",k,!0),window.addEventListener("resize",k),Mn(()=>{var B;A(),(B=u.value)==null||B.focus()})}function $(){r.value=!1,i.value="",l.value=-1,document.removeEventListener("click",f),window.removeEventListener("scroll",k,!0),window.removeEventListener("resize",k)}function L(B){i.value=B.target.value,l.value=-1}function w(B){const Y=S.value;switch(B.key){case"ArrowDown":B.preventDefault(),l.value=Math.min(l.value+1,Y.length-1),F();break;case"ArrowUp":B.preventDefault(),l.value=Math.max(l.value-1,0),F();break;case"Enter":{B.preventDefault();const pe=Y[l.value];pe&&D(pe);break}case"Escape":B.preventDefault(),$();break}}function F(){Mn(()=>{var Y;const B=(Y=c.value)==null?void 0:Y.querySelector(".filter-dropdown__option[data-highlighted]");B==null||B.scrollIntoView({block:"nearest"})})}function D(B){s("filter-change",{name:o.name,value:B.value,label:B.label,type:B.type}),$()}function ne(){s("filter-clear",{name:o.name}),$()}return It(()=>{document.removeEventListener("click",f),window.removeEventListener("scroll",k,!0),window.removeEventListener("resize",k)}),(B,Y)=>(H(),Z("div",{ref_key:"rootRef",ref:c,class:qe(["filter-dropdown",{"is-open":r.value}])},[R("button",{ref_key:"triggerRef",ref:p,class:"filter-dropdown__trigger input","data-active":e.value?"":void 0,type:"button","aria-haspopup":"listbox","aria-expanded":r.value,onClick:b},[R("span",jw,[C.value?(H(),Z(Ce,{key:0},[ct(ue(e.label)+": ",1),R("strong",null,ue(C.value.label),1)],64)):(H(),Z(Ce,{key:1},[ct(ue(e.label),1)],64))]),Y[0]||(Y[0]=R("svg",{class:"filter-dropdown__chevron",width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[R("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,Dw),r.value?(H(),Z("div",{key:0,class:"filter-dropdown__menu",role:"listbox",style:rt(g.value)},[R("input",{ref_key:"searchInputRef",ref:u,class:"filter-dropdown__search",type:"text",value:i.value,placeholder:e.placeholder,onInput:L,onKeydown:w},null,40,zw),e.value?(H(),Z("button",{key:0,class:"filter-dropdown__clear",type:"button",onClick:ne},ue(fe(a)("buttons.clearSelection")),1)):Fe("",!0),R("div",Gw,[S.value.length===0?(H(),Z("div",Uw,ue(fe(a)("buttons.noOptions")),1)):(H(!0),Z(Ce,{key:1},et(S.value,(pe,M)=>(H(),Z("div",{key:pe.value,class:"filter-dropdown__option",role:"option","data-highlighted":M===l.value?"":void 0,"data-selected":pe.value===e.value?"":void 0,"aria-selected":pe.value===e.value,onClick:ee=>D(pe),onMouseenter:ee=>l.value=M},[R("span",null,ue(pe.label),1),R("span",Vw,ue(pe.count),1)],40,Bw))),128))])],4)):Fe("",!0)],2))}},[["styles",[Iw]]]),qw=".sfh{--brand: var(--dx-accent, #92b195);--ink: var(--dx-text, #3b463d);--mut: var(--dx-muted, #6d766e);--line: var(--dx-line, #d1d4cd);--card: var(--dx-elevated, #fff);display:flex;flex-direction:column;gap:var(--dx-sfh-gap, 4px);width:100%;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:var(--ink)}.sfh__search-row{display:flex;align-items:center;gap:12px;justify-content:center}.sfh__search-row>:first-child{flex:0 1 auto}.sfh__toggle{flex:0 0 auto;background:none;border:none;cursor:pointer;font-size:.875rem;color:var(--ink);display:inline-flex;align-items:center;gap:4px;white-space:nowrap;padding:4px 2px;text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:4px}.sfh__toggle-chev{transition:transform .2s ease}.sfh__toggle[aria-expanded=true] .sfh__toggle-chev{transform:rotate(180deg)}.sfh__filters-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dx-filter-gap, 10px);justify-content:flex-start;overflow-x:clip;padding-bottom:2px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.sfh__dd{flex:0 0 auto}.sfh__filters-row::-webkit-scrollbar{height:8px}.sfh__filters-row::-webkit-scrollbar-thumb{background:var(--dx-scroll-thumb, #c4c8c0);border-radius:8px}.sfh__filters-row::-webkit-scrollbar-track{background:transparent}.sfh__pill{flex:0 0 auto;padding:6px 12px;cursor:pointer;font-size:.875rem;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:8px;white-space:nowrap;transition:border-color .15s ease,background .15s ease}.sfh__pill:hover{border-color:var(--brand)}.sfh__pill[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--brand);color:var(--ink)}.sfh__chips{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;justify-content:center;min-height:var(--dx-sel-row-h, 16px)}.sfh__chip-strip{flex:0 1 auto;min-width:0;display:flex;flex-wrap:nowrap;gap:6px;align-items:center;justify-content:center;justify-content:safe center;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.sfh__chip-strip::-webkit-scrollbar{height:6px}.sfh__chip-strip::-webkit-scrollbar-thumb{background:var(--dx-scroll-thumb, #c4c8c0);border-radius:8px}.sfh__chip-strip::-webkit-scrollbar-track{background:transparent}.sfh__sel-label{flex:0 0 auto;font-size:.6875rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--mut, #6d766e);opacity:.75}.sfh__sel-world{flex:0 0 auto;font-size:.75rem;color:var(--mut, #6d766e)}.sfh__chip{flex:0 0 auto;display:inline-flex;gap:4px;align-items:center;background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));color:var(--ink);border:1px solid var(--line);border-radius:100px;padding:0 8px;font-size:.75rem;line-height:1;white-space:nowrap;height:var(--dx-sel-row-h, 16px);box-sizing:border-box}.sfh__chip-x{background:none;border:none;cursor:pointer;font-size:1.05em;line-height:1;color:inherit;padding:0;display:inline-flex;align-items:center}.sfh__chip-x:hover{opacity:.7}.sfh__clear{flex:0 0 auto;white-space:nowrap;background:none;border:none;cursor:pointer;font-size:.75rem;line-height:1;color:var(--mut, #6d766e);text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:3px;padding:0 4px;margin-inline-start:2px}.sfh__clear:hover{color:var(--ink)}",Ww={class:"sfh"},Hw={key:0,class:"sfh__search-row"},Kw=["aria-expanded"],Xw=["aria-label"],Yw=["data-active","onClick"],Zw={class:"sfh__chip-strip"},Jw={class:"sfh__sel-label"},Qw=["aria-label","onClick"],ex={key:1,class:"sfh__sel-world"},tx=kn({__name:"SearchFilterHeader",props:{search:{type:String,default:""},filters:{type:Array,default:()=>[]},toggles:{type:Array,default:()=>[]},activeChips:{type:Array,default:null},searchPlaceholder:{type:String,default:"Search…"},searchMaxWidth:{type:String,default:"520px"},showSearch:{type:[Boolean,String],default:!0},showFilters:{type:[Boolean,String],default:!0},startExpanded:{type:Boolean,default:!1},collapsible:{type:Boolean,default:!0},labels:{type:Object,default:()=>({})}},emits:["update:search","search","filter-change","filter-clear","toggle","remove-filter","clear-all"],setup(e,{emit:t}){const o=e,n=t,a=f=>!(f===!1||f==="false"||f==="0"||f===0),s=ie(()=>a(o.showSearch)),r=ie(()=>a(o.showFilters)),i=ie(()=>({show_filters:Pe("grid.show_filters")||"Show Filters",hide_filters:Pe("grid.hide_filters")||"Hide Filters",clear_all:Pe("grid.clear_all")||"Clear All",type_to_search:Pe("grid.type_to_search")||"Type to search...",filters:Pe("dashboard.filters")||"Filters",selected:Pe("dashboard.selected")||"Selected",world:Pe("dashboard.world")||"World",remove:Pe("dashboard.remove_filter")||"Remove",...o.labels})),l=de(o.startExpanded||!o.collapsible);function c(){l.value=!l.value}const u=ie(()=>!o.collapsible||!s.value||l.value),p=ie(()=>{if(Array.isArray(o.activeChips))return o.activeChips;const f=[];for(const b of o.filters){if(!b.value)continue;const d=(b.options||[]).find($=>$.value===b.value);f.push({name:b.name,label:d?d.label:b.value})}for(const b of o.toggles)b.active&&f.push({name:b.name,label:b.label});return f});function g(f){const b=(f==null?void 0:f.value)??"";n("update:search",b),n("search",{value:b})}function y(f){n("filter-change",f)}function A(f){n("filter-clear",f)}function k(f){n("toggle",{name:f.name,active:!f.active})}function S(f){n("remove-filter",{name:f})}function C(){n("clear-all")}return(f,b)=>(H(),Z("div",Ww,[s.value?(H(),Z("div",Hw,[Ue(Ur,{"model-value":e.search,placeholder:e.searchPlaceholder,"aria-label":e.searchPlaceholder,"max-width":e.searchMaxWidth,onSearch:g},null,8,["model-value","placeholder","aria-label","max-width"]),r.value&&e.collapsible?(H(),Z("button",{key:0,class:"sfh__toggle",type:"button","aria-expanded":u.value,onClick:c},[ct(ue(u.value?i.value.hide_filters:i.value.show_filters)+" ",1),b[0]||(b[0]=R("svg",{class:"sfh__toggle-chev",width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[R("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,Kw)):Fe("",!0)])):Fe("",!0),r.value&&u.value?(H(),Z("div",{key:1,class:"sfh__filters-row",role:"group","aria-label":i.value.filters},[(H(!0),Z(Ce,null,et(e.filters,d=>(H(),To(ua,{key:d.name,class:"sfh__dd",label:d.label,name:d.name,options:d.options||[],value:d.value||"",placeholder:d.placeholder||i.value.type_to_search,onFilterChange:y,onFilterClear:A},null,8,["label","name","options","value","placeholder"]))),128)),(H(!0),Z(Ce,null,et(e.toggles,d=>(H(),Z("button",{key:d.name,class:"sfh__pill",type:"button","data-active":d.active?"":void 0,onClick:$=>k(d)},ue(d.label),9,Yw))),128))],8,Xw)):Fe("",!0),r.value?(H(),Z("div",{key:2,class:qe(["sfh__chips",{"is-empty":!p.value.length}])},[R("div",Zw,[R("span",Jw,ue(i.value.selected||"Selected"),1),p.value.length?(H(),Z(Ce,{key:0},[(H(!0),Z(Ce,null,et(p.value,d=>(H(),Z("span",{key:d.name,class:"sfh__chip"},[ct(ue(d.label)+" ",1),R("button",{class:"sfh__chip-x",type:"button","aria-label":`${i.value.remove} ${d.label}`,onClick:$=>S(d.name)},"×",8,Qw)]))),128)),R("button",{class:"sfh__clear",type:"button",onClick:C},ue(i.value.clear_all),1)],64)):(H(),Z("span",ex,ue(i.value.world||"World"),1))])],2)):Fe("",!0)]))}},[["styles",[qw]]]),ox={class:"rd-research-filters","data-region":"filters","data-sub":"research-filters"},is="prayer_level",nx={__name:"DashboardResearchFilters",setup(e){const t=ze("selectionBus",null),o=ze("dashboardData",null),n=ze("dashboardConfig",{}),a=ie(()=>{var w;return((w=o==null?void 0:o.rows)==null?void 0:w.value)||[]}),s=(t==null?void 0:t.filterSet)||{},r={label:"Prayer",get:w=>{const F=w==null?void 0:w.people_praying,D=F&&typeof F=="object"?F.value:F;return oa[_n({peoplePraying:D??null})]}},i=ie(()=>({[is]:r,...n.facets||{}})),l=ie(()=>Object.fromEntries(Object.entries(i.value).map(([w,F])=>[w,F.get]))),c=ie(()=>n.researchFilters||{}),u=ie(()=>{const w=c.value.dropdowns||["wagf_region","wagf_block","country_code","people_group","religion"];return[is,...w.filter(F=>F!==is)]}),p=ie(()=>c.value.searchPlaceholder||"Search people groups, place, language, religion…");function g(w,F){const D=Object.keys(w);return D.length?F.filter(ne=>D.every(B=>{const Y=l.value[B];return Y?Y(ne)===w[B]:!0})):F}function y(w){var pe;const F=l.value[w];if(!F)return[];const D=(pe=i.value[w])==null?void 0:pe.optionLabel,ne={};for(const[M,ee]of Object.entries(s))M!==w&&(ne[M]=ee);const B=g(ne,a.value),Y=new Map;for(const M of B){const ee=F(M);if(ee==null||ee==="")continue;const K=Y.get(ee);K?K.count+=1:Y.set(ee,{label:D&&D(M)||ee,count:1})}return Array.from(Y.entries()).map(([M,{label:ee,count:K}])=>({value:M,label:ee,count:K})).sort((M,ee)=>String(M.label).localeCompare(String(ee.label)))}const A=ie(()=>u.value.map(w=>{var F;return{name:w,label:((F=i.value[w])==null?void 0:F.label)||w,options:y(w),value:s[w]||""}})),{labelFor:k}=sa(n,ze("dataStore",null),ze("searchSourceId",null)),S=ie(()=>{var D;const w=Object.keys(s).map(ne=>{var Y;const B=s[ne];return{name:ne,label:`${((Y=i.value[ne])==null?void 0:Y.label)||ne}: ${ne===is?B:k(ne,B)}`}}),F=(((D=t==null?void 0:t.searchTerm)==null?void 0:D.value)||"").trim();return F&&w.push({name:"__search__",label:`Search: ${F}`}),w}),C=ie(()=>{var w;return((w=t==null?void 0:t.searchTerm)==null?void 0:w.value)||""});function f(w){t==null||t.setSearch((w==null?void 0:w.value)??"")}function b(w){t==null||t.setFilter(w.name,w.value)}function d(w){t==null||t.setFilter(w.name,null)}function $(w){if(w.name==="__search__"){t==null||t.setSearch("");return}t==null||t.setFilter(w.name,null)}function L(){t==null||t.clearFilters(),t==null||t.setSearch("")}return Ot(` .rd-research-filters{ position:relative; z-index:55; height:100%; box-sizing:border-box; padding:3px var(--rd-edge,14px); background:var(--rd-panel,#fff); border-bottom:1px solid var(--rd-line, #d1d4cd); overflow:visible; } -`,"rd-research-filters"),(w,F)=>(H(),Z("div",Jw,[Ue(Zw,{search:C.value,filters:A.value,"active-chips":S.value,"search-placeholder":p.value,"show-search":!1,"start-expanded":"",onSearch:f,onFilterChange:b,onFilterClear:d,onRemoveFilter:$,onClearAll:L},null,8,["search","filters","active-chips","search-placeholder"])]))}},cd={aar:"Afro-Asiatic",abf:"Austronesian",abl:"Austronesian",abv:"Afro-Asiatic",acm:"Afro-Asiatic",acq:"Afro-Asiatic",acw:"Afro-Asiatic",acx:"Afro-Asiatic",adh:"Nilo-Saharan",adi:"Sino-Tibetan",adw:"Tupian",adx:"Sino-Tibetan",aen:"Sign Language",afb:"Afro-Asiatic",afg:"Sign Language",afr:"Indo-European",aft:"Nilo-Saharan",agx:"Nakh-Daghestanian",ahk:"Sino-Tibetan",aib:"Turkic",aih:"Kra-Dai",aio:"Kra-Dai",ajp:"Afro-Asiatic",aju:"Afro-Asiatic",aks:"Niger-Congo",akv:"Nakh-Daghestanian",alk:"Austro-Asiatic",alo:"Austronesian",alw:"Afro-Asiatic",amc:"Panoan",amh:"Afro-Asiatic",amr:"Harákmbut",amv:"Austronesian",ani:"Nakh-Daghestanian",anp:"Indo-European",anq:"Andamanese",aoc:"Cariban",apc:"Afro-Asiatic",apd:"Afro-Asiatic",arb:"Afro-Asiatic",arq:"Afro-Asiatic",arr:"Tupian",ars:"Afro-Asiatic",arv:"Afro-Asiatic",ary:"Afro-Asiatic",ase:"Sign Language",asl:"Austronesian",asm:"Indo-European",asn:"Tupian",asp:"Sign Language",atr:"Cariban",avd:"Indo-European",avl:"Afro-Asiatic",avv:"Tupian",awe:"Tupian",awt:"Tupian",ayh:"Afro-Asiatic",ayl:"Afro-Asiatic",ayn:"Afro-Asiatic",azb:"Turkic",bao:"Tucanoan",bbh:"Austro-Asiatic",bcc:"Indo-European",bcz:"Niger-Congo",bdg:"Austronesian",bdi:"Nilo-Saharan",bdj:"Niger-Congo",bdm:"Afro-Asiatic",bdo:"Nilo-Saharan",bee:"Sino-Tibetan",bej:"Afro-Asiatic",bem:"Niger-Congo",ben:"Indo-European",bfi:"Sign Language",bfu:"Sino-Tibetan",bfw:"Austro-Asiatic",bfy:"Indo-European",bgc:"Indo-European",bgg:"Sino-Tibetan",bgk:"Austro-Asiatic",bgl:"Austro-Asiatic",bgn:"Indo-European",bgp:"Indo-European",bgq:"Indo-European",bho:"Indo-European",bhu:"Indo-European",bid:"Afro-Asiatic",bjj:"Indo-European",bkk:"Indo-European",blf:"Austronesian",blm:"Nilo-Saharan",blo:"Niger-Congo",bls:"Austronesian",blt:"Kra-Dai",bly:"Niger-Congo",bma:"Niger-Congo",bmr:"Witotoan",bna:"Austronesian",bns:"Indo-European",bor:"Bororoan",bos:"Indo-European",bph:"Nakh-Daghestanian",bqg:"Niger-Congo",bqj:"Niger-Congo",bqk:"Niger-Congo",bqn:"Sign Language",bqx:"Niger-Congo",bra:"Indo-European",brb:"Austro-Asiatic",bro:"Sino-Tibetan",brx:"Sino-Tibetan",bsb:"Austronesian",bsg:"Indo-European",bsk:"Language isolate",bsy:"Austronesian",btd:"Austronesian",btf:"Afro-Asiatic",btv:"Indo-European",btx:"Austronesian",btz:"Austronesian",bub:"Niger-Congo",buh:"Hmong-Mien",bva:"Afro-Asiatic",bvf:"Afro-Asiatic",bvi:"Niger-Congo",bvo:"Niger-Congo",bwi:"Maipurean",bwn:"Hmong-Mien",bwx:"Hmong-Mien",bxr:"Mongolic",bxu:"Mongolic",bxw:"Niger-Congo",byn:"Afro-Asiatic",byo:"Sino-Tibetan",bze:"Niger-Congo",bzx:"Niger-Congo",cat:"Indo-European",cbb:"Maipurean",cbc:"Tucanoan",cbi:"Barbacoan",cbn:"Austro-Asiatic",cby:"Unclassified",cdh:"Indo-European",cdn:"Sino-Tibetan",cdz:"Austro-Asiatic",ceg:"Zamucoan",cgk:"Sino-Tibetan",che:"Nakh-Daghestanian",cib:"Niger-Congo",cji:"Nakh-Daghestanian",ckh:"Sino-Tibetan",ckq:"Afro-Asiatic",clk:"Sino-Tibetan",cmn:"Sino-Tibetan",cnq:"Niger-Congo",cnu:"Afro-Asiatic",coa:"Creole",cog:"Austro-Asiatic",cpu:"Maipurean",cqd:"Hmong-Mien",csf:"Sign Language",csx:"Sign language",cub:"Tucanoan",cui:"Guajiboan",cuu:"Kra-Dai",daa:"Afro-Asiatic",daj:"Nilo-Saharan",dar:"Nakh-Daghestanian",dau:"Nilo-Saharan",dba:"Language isolate",dbb:"Afro-Asiatic",dbp:"Afro-Asiatic",dbr:"Afro-Asiatic",ddn:"Nilo-Saharan",deg:"Niger-Congo",dek:"Niger-Congo",des:"Tucanoan",dgo:"Indo-European",dgs:"Niger-Congo",dhd:"Indo-European",dhi:"Sino-Tibetan",dhm:"Niger-Congo",dil:"Nilo-Saharan",diu:"Niger-Congo",div:"Indo-European",djc:"Nilo-Saharan",dkg:"Niger-Congo",dln:"Sino-Tibetan",dml:"Indo-European",dms:"Austronesian",dnu:"Austro-Asiatic",doc:"Kra-Dai",dok:"Austronesian",dox:"Afro-Asiatic",dru:"Austronesian",dse:"Sign Language",dsh:"Afro-Asiatic",dsl:"Sign Language",dsq:"Nilo-Saharan",dta:"Mongolic",dtp:"Austronesian",dyu:"Niger-Congo",dzg:"Nilo-Saharan",dzl:"Sino-Tibetan",eng:"Indo-European",enn:"Niger-Congo",epi:"Niger-Congo",ers:"Sino-Tibetan",esl:"Sign Language",evn:"Tungusic",fin:"Uralic",fni:"Niger-Congo",fod:"Niger-Congo",fra:"Indo-European",fsl:"Sign Language",fub:"Niger-Congo",fuc:"Niger-Congo",fuf:"Niger-Congo",fuj:"Niger-Congo",fvr:"Nilo-Saharan",fwe:"Niger-Congo",gax:"Afro-Asiatic",gaz:"Afro-Asiatic",gbk:"Indo-European",gbm:"Indo-European",gbn:"Nilo-Saharan",gdq:"Afro-Asiatic",gea:"Afro-Asiatic",ges:"Austronesian",gex:"Afro-Asiatic",ghl:"Nilo-Saharan",giq:"Kra-Dai",giw:"Kra-Dai",gju:"Indo-European",glc:"Niger-Congo",goe:"Sino-Tibetan",gow:"Afro-Asiatic",gqu:"Kra-Dai",grr:"Afro-Asiatic",gsg:"Sign Language",gss:"Sign Language",guj:"Indo-European",gus:"Sign Language",gvp:"Jean",gwb:"Niger-Congo",gwc:"Indo-European",gwd:"Afro-Asiatic",gwf:"Indo-European",gya:"Niger-Congo",gyo:"Sino-Tibetan",gzn:"Austronesian",hae:"Afro-Asiatic",hal:"Austro-Asiatic",hau:"Afro-Asiatic",hca:"Creole",hea:"Hmong-Mien",heb:"Afro-Asiatic",her:"Niger-Congo",hik:"Austronesian",hin:"Indo-European",hks:"Sign Language",hlb:"Indo-European",hld:"Austro-Asiatic",hmb:"Nilo-Saharan",hmh:"Hmong-Mien",hml:"Hmong-Mien",hmm:"Hmong-Mien",hne:"Indo-European",hni:"Sino-Tibetan",hnu:"Austro-Asiatic",hoh:"Afro-Asiatic",hoj:"Indo-European",hoz:"Afro-Asiatic",hsn:"Sino-Tibetan",hss:"Afro-Asiatic",htu:"Austronesian",hug:"Harákmbut",huo:"Austro-Asiatic",iba:"Austronesian",ibr:"Niger-Congo",icl:"Sign Language",iii:"Sino-Tibetan",ind:"Austronesian",irr:"Austro-Asiatic",ise:"Sign Language",isk:"Indo-European",isr:"Sign Language",ium:"Hmong-Mien",jbn:"Afro-Asiatic",jeu:"Afro-Asiatic",jia:"Afro-Asiatic",jii:"Afro-Asiatic",jio:"Kra-Dai",jit:"Niger-Congo",jiu:"Sino-Tibetan",jle:"Niger-Congo",jls:"Sign Language",jmi:"Afro-Asiatic",jnl:"Sino-Tibetan",jos:"Sign Language",jpn:"Japonic",jup:"Puinavean",kaf:"Sino-Tibetan",kan:"Dravidian",kas:"Indo-European",kay:"Tupian",kaz:"Turkic",kbg:"Sino-Tibetan",kbo:"Nilo-Saharan",kbp:"Niger-Congo",kby:"Nilo-Saharan",kcf:"Niger-Congo",kcn:"Creole",kcp:"Nilo-Saharan",kcu:"Niger-Congo",kcy:"Nilo-Saharan",kcz:"Niger-Congo",kdh:"Niger-Congo",kdn:"Niger-Congo",kdt:"Austro-Asiatic",kdu:"Nilo-Saharan",kec:"Nilo-Saharan",kfa:"Dravidian",kfd:"Dravidian",kfe:"Dravidian",kfg:"Dravidian",kfm:"Indo-European",kfr:"Indo-European",kfs:"Indo-European",kfy:"Indo-European",kgn:"Indo-European",khb:"Kra-Dai",khf:"Austro-Asiatic",khv:"Nakh-Daghestanian",kia:"Niger-Congo",kib:"Niger-Congo",kie:"Nilo-Saharan",kil:"Afro-Asiatic",kir:"Turkic",kjc:"Austronesian",kjg:"Austro-Asiatic",kjk:"Austronesian",kke:"Niger-Congo",kkh:"Kra-Dai",kkn:"Austro-Asiatic",kko:"Nilo-Saharan",kks:"Afro-Asiatic",klf:"Nilo-Saharan",kmc:"Kra-Dai",kmq:"Nilo-Saharan",kmr:"Indo-European",kmz:"Turkic",knc:"Nilo-Saharan",knf:"Niger-Congo",knk:"Niger-Congo",knm:"Maipurean",knn:"Indo-European",kns:"Austro-Asiatic",knz:"Niger-Congo",kou:"Niger-Congo",kpa:"Afro-Asiatic",kpc:"Maipurean",kpj:"Karajá",kpt:"Nakh-Daghestanian",kqg:"Niger-Congo",kqm:"Niger-Congo",krn:"Niger-Congo",krs:"Nilo-Saharan",kth:"Nilo-Saharan",kuf:"Austro-Asiatic",kui:"Cariban",kuj:"Niger-Congo",kva:"Nakh-Daghestanian",kvf:"Afro-Asiatic",kvh:"Austronesian",kvp:"Austronesian",kwn:"Niger-Congo",kwv:"Nilo-Saharan",kxd:"Austronesian",kxh:"Afro-Asiatic",kxj:"Nilo-Saharan",kyi:"Austronesian",kyp:"Kra-Dai",kyw:"Indo-European",kzq:"Sino-Tibetan",lae:"Sino-Tibetan",lan:"Niger-Congo",lao:"Kra-Dai",laq:"Kra-Dai",lbj:"Sino-Tibetan",lbn:"Austro-Asiatic",lbo:"Austro-Asiatic",lbs:"Sign Language",lbt:"Kra-Dai",lcd:"Austronesian",lcq:"Austronesian",lgn:"Nilo-Saharan",lgs:"Sign Language",lha:"Kra-Dai",lhn:"Austronesian",lhp:"Sino-Tibetan",lic:"Kra-Dai",liq:"Afro-Asiatic",liu:"Nilo-Saharan",lkc:"Sino-Tibetan",lkh:"Sino-Tibetan",lki:"Indo-European",lkr:"Nilo-Saharan",lma:"Niger-Congo",loh:"Nilo-Saharan",lop:"Niger-Congo",lsd:"Afro-Asiatic",lso:"Sign Language",lss:"Indo-European",lsy:"Sign Language",luk:"Sino-Tibetan",lul:"Nilo-Saharan",mag:"Indo-European",mai:"Indo-European",mal:"Dravidian",mar:"Indo-European",mbd:"Austronesian",mbn:"Guajiboan",mcd:"Panoan",mdl:"Sign Language",mdy:"Afro-Asiatic",mei:"Nilo-Saharan",men:"Niger-Congo",mes:"Afro-Asiatic",mew:"Afro-Asiatic",mey:"Afro-Asiatic",mgb:"Nilo-Saharan",mgd:"Nilo-Saharan",mge:"Nilo-Saharan",mgh:"Niger-Congo",mhr:"Uralic",mhu:"Sino-Tibetan",mhw:"Niger-Congo",mjp:"Dravidian",mkg:"Kra-Dai",mmh:"Maipurean",mml:"Austro-Asiatic",mmy:"Afro-Asiatic",mne:"Nilo-Saharan",mni:"Sino-Tibetan",mnj:"Indo-European",mnk:"Niger-Congo",mnq:"Austro-Asiatic",mns:"Uralic",mot:"Chibchan",mou:"Afro-Asiatic",moy:"Afro-Asiatic",moz:"Afro-Asiatic",mpe:"Nilo-Saharan",mpz:"Sino-Tibetan",mqi:"Austronesian",mqn:"Austronesian",mra:"Austro-Asiatic",mrj:"Uralic",msc:"Niger-Congo",msv:"Afro-Asiatic",msw:"Niger-Congo",mtr:"Indo-European",mub:"Afro-Asiatic",mup:"Indo-European",muq:"Hmong-Mien",muv:"Dravidian",mvf:"Mongolic",mvu:"Nilo-Saharan",mvy:"Indo-European",mwn:"Niger-Congo",mxj:"Sino-Tibetan",myp:"Muran",myy:"Tucanoan",mzb:"Afro-Asiatic",mzy:"Sign Language",naq:"Khoe-Kwadi",nbt:"Sino-Tibetan",nbw:"Niger-Congo",ndg:"Niger-Congo",ndp:"Nilo-Saharan",ndt:"Niger-Congo",neb:"Niger-Congo",neh:"Sino-Tibetan",nev:"Austro-Asiatic",ngt:"Austro-Asiatic",njl:"Nilo-Saharan",nkd:"Sino-Tibetan",nld:"Indo-European",nmd:"Niger-Congo",nmi:"Afro-Asiatic",nml:"Niger-Congo",nmy:"Sino-Tibetan",nnj:"Nilo-Saharan",nod:"Kra-Dai",noe:"Indo-European",nos:"Sino-Tibetan",npb:"Sino-Tibetan",npi:"Indo-European",nrb:"Nilo-Saharan",nru:"Sino-Tibetan",nsl:"Sign Language",nuo:"Austro-Asiatic",nus:"Nilo-Saharan",nwm:"Nilo-Saharan",nxq:"Sino-Tibetan",nye:"Niger-Congo",nyn:"Niger-Congo",nyr:"Niger-Congo",nyw:"Kra-Dai",nzs:"Sign Language",okn:"Japonic",ole:"Sino-Tibetan",oog:"Austro-Asiatic",oon:"Andamanese",opa:"Niger-Congo",ort:"Indo-European",ory:"Indo-European",ost:"Niger-Congo",oyb:"Austro-Asiatic",oym:"Tupian",pac:"Austro-Asiatic",pah:"Tupian",pbp:"Niger-Congo",peh:"Mongolic",pes:"Indo-European",pga:"Creole",pgg:"Indo-European",pgz:"Sign language",pha:"Hmong-Mien",phh:"Sino-Tibetan",phj:"Sino-Tibetan",phk:"Kra-Dai",phl:"Indo-European",pho:"Sino-Tibetan",phq:"Sino-Tibetan",phr:"Indo-European",pht:"Kra-Dai",pil:"Niger-Congo",pir:"Tucanoan",pkb:"Niger-Congo",pks:"Sign Language",pkt:"Austro-Asiatic",pll:"Austro-Asiatic",pnq:"Niger-Congo",pnx:"Austro-Asiatic",por:"Indo-European",prc:"Indo-European",prs:"Indo-European",prt:"Austro-Asiatic",psc:"Sign Language",pse:"Austronesian",pto:"Tupian",pum:"Sino-Tibetan",puo:"Austro-Asiatic",qae:"Sign Language",qao:"Sign Language",qbh:"Sign Language",qbj:"Sign Language",qbn:"Sign Language",qbt:"Sign Language",qcd:"Sign Language",qcm:"Sign Language",qcy:"Sign Language",qer:"Sign Language",qfa:"Sign Language",qfj:"Sign Language",qga:"Sign Language",qge:"Sign Language",qgm:"Sign Language",qiq:"Sign Language",qki:"Sign Language",qkm:"Sign Language",qkp:"Sign Language",qkw:"Sign Language",qmv:"Sign Language",qnh:"Sign Language",qns:"Sign Language",qom:"Sign Language",qqa:"Sign Language",qry:"Sign Language",qsm:"Sign Language",qso:"Sign Language",qsr:"Sign Language",qsz:"Sign Language",qtp:"Sign Language",qvz:"Quechuan",ras:"Niger-Congo",rbb:"Austro-Asiatic",ren:"Austro-Asiatic",rji:"Sino-Tibetan",rmt:"Indo-European",rmy:"Indo-European",rob:"Austronesian",rsl:"Sign Language",rui:"Niger-Congo",rus:"Indo-European",rwm:"Niger-Congo",rwr:"Indo-European",rys:"Japonic",saa:"Afro-Asiatic",sbf:"Unclassified",sbj:"Nilo-Saharan",sbs:"Niger-Congo",scb:"Austro-Asiatic",sck:"Indo-European",scl:"Indo-European",sdb:"Indo-European",sdg:"Indo-European",sdl:"Sign Language",sdp:"Sino-Tibetan",seq:"Niger-Congo",sgh:"Indo-European",sgy:"Indo-European",she:"Afro-Asiatic",shm:"Indo-European",shn:"Kra-Dai",sho:"Niger-Congo",shp:"Panoan",shu:"Afro-Asiatic",shv:"Afro-Asiatic",shz:"Niger-Congo",siy:"Indo-European",siz:"Afro-Asiatic",sjg:"Nilo-Saharan",sjo:"Tungusic",skq:"Niger-Congo",sle:"Dravidian",slt:"Sino-Tibetan",sml:"Austronesian",smy:"Indo-European",snd:"Indo-European",snn:"Tucanoan",soj:"Indo-European",sok:"Afro-Asiatic",soy:"Niger-Congo",spa:"Indo-European",spu:"Austro-Asiatic",sqk:"Sign Language",sqq:"Austro-Asiatic",sqs:"Sign Language",sqt:"Afro-Asiatic",srh:"Indo-European",sri:"Tucanoan",srp:"Indo-European",ssh:"Afro-Asiatic",ssn:"Afro-Asiatic",sss:"Austro-Asiatic",ssy:"Afro-Asiatic",std:"Andamanese",sts:"Indo-European",suq:"Nilo-Saharan",suv:"Sino-Tibetan",suy:"Jean",suz:"Sino-Tibetan",swh:"Niger-Congo",swi:"Kra-Dai",swl:"Sign Language",swv:"Indo-European",swx:"Arauan",sxg:"Sino-Tibetan",sze:"Afro-Asiatic",szn:"Austronesian",szs:"Sign Language",tag:"Niger-Congo",tam:"Dravidian",taz:"Niger-Congo",tbm:"Niger-Congo",tbn:"Chibchan",tbr:"Nilo-Saharan",tct:"Kra-Dai",tcy:"Dravidian",tda:"Mixed language",tdb:"Indo-European",tdd:"Kra-Dai",tdf:"Austro-Asiatic",tdj:"Austronesian",tel:"Dravidian",teq:"Nilo-Saharan",tgf:"Sino-Tibetan",tgk:"Indo-European",tgr:"Austro-Asiatic",thk:"Niger-Congo",thm:"Austro-Asiatic",thu:"Nilo-Saharan",thv:"Afro-Asiatic",tig:"Afro-Asiatic",tin:"Nakh-Daghestanian",tiz:"Kra-Dai",tkn:"Japonic",tlq:"Austro-Asiatic",tly:"Indo-European",tma:"Nilo-Saharan",tnb:"Chibchan",toi:"Niger-Congo",toq:"Nilo-Saharan",tou:"Austro-Asiatic",tqq:"Afro-Asiatic",tri:"Cariban",trj:"Afro-Asiatic",tsb:"Afro-Asiatic",tsc:"Niger-Congo",tsj:"Sino-Tibetan",tsk:"Sino-Tibetan",tsl:"Kra-Dai",tsm:"Sign Language",ttg:"Austronesian",tth:"Austro-Asiatic",ttl:"Niger-Congo",tts:"Kra-Dai",tue:"Tucanoan",tum:"Niger-Congo",tuo:"Tucanoan",tur:"Turkic",twm:"Sino-Tibetan",txi:"Cariban",txm:"Austronesian",tyh:"Austro-Asiatic",tyj:"Kra-Dai",tyr:"Kra-Dai",tyv:"Turkic",tyy:"Niger-Congo",tzm:"Afro-Asiatic",uan:"Kra-Dai",udj:"Austronesian",une:"Niger-Congo",unk:"Maipurean",urd:"Indo-European",urp:"Tupian",urz:"Tupian",ush:"Indo-European",usi:"Sino-Tibetan",uuu:"Austro-Asiatic",uzn:"Turkic",vai:"Niger-Congo",vgr:"Indo-European",vie:"Austro-Asiatic",vkj:"Unclassified",vkn:"Niger-Congo",vkz:"Niger-Congo",vmk:"Niger-Congo",vut:"Niger-Congo",wau:"Maipurean",waw:"Cariban",wbj:"Afro-Asiatic",wbl:"Indo-European",wbr:"Indo-European",wlc:"Niger-Congo",wll:"Nilo-Saharan",wmd:"Nambikwara",wmg:"Sino-Tibetan",wne:"Indo-European",wni:"Niger-Congo",wol:"Niger-Congo",wrn:"Niger-Congo",wti:"Nilo-Saharan",wuh:"Mixed language",wwa:"Niger-Congo",xal:"Mongolic",xan:"Afro-Asiatic",xdq:"Nakh-Daghestanian",xhv:"Austro-Asiatic",xka:"Indo-European",xkz:"Sino-Tibetan",xma:"Niger-Congo",xmj:"Afro-Asiatic",xmo:"Tupian",xms:"Sign Language",xnr:"Indo-European",xns:"Sino-Tibetan",xom:"Nilo-Saharan",xor:"Panoan",xsm:"Niger-Congo",xsr:"Sino-Tibetan",xwg:"Nilo-Saharan",yaa:"Panoan",yad:"Yaguan",yao:"Niger-Congo",yax:"Niger-Congo",ybh:"Sino-Tibetan",ycl:"Sino-Tibetan",ydd:"Indo-European",ydg:"Indo-European",yea:"Dravidian",yhd:"Afro-Asiatic",yig:"Sino-Tibetan",yix:"Sino-Tibetan",ymm:"Afro-Asiatic",ymx:"Sino-Tibetan",yne:"Sino-Tibetan",yno:"Kra-Dai",yom:"Niger-Congo",yox:"Japonic",yoy:"Kra-Dai",yrn:"Kra-Dai",ysl:"Sign Language",ysm:"Sign language",ysn:"Sino-Tibetan",yue:"Sino-Tibetan",yul:"Nilo-Saharan",yup:"Cariban",ywn:"Panoan",ywt:"Sino-Tibetan",zag:"Nilo-Saharan",zgn:"Kra-Dai",zhd:"Kra-Dai",ziw:"Niger-Congo",zkr:"Sino-Tibetan",zlm:"Austronesian",zna:"Niger-Congo",zne:"Niger-Congo",zng:"Austro-Asiatic",zqe:"Kra-Dai",zum:"Indo-European",zyg:"Kra-Dai"},ud=e=>{if(typeof e=="number")return e;const t=parseFloat(String(e??"").replace(/[^0-9.\-]/g,""));return isNaN(t)?null:t},Kr=e=>e&&typeof e=="object"?e.value??e.label??"":e??"",Xr={id:"doxa-research-dashboard",get title(){return Se("dashboard.dashboard_title")||"Big Picture Research Dashboard"},element:"doxa-research-dashboard",data:{source:"pray-tools",primaryKey:"slug"},facets:{prayer_level:{get label(){return Se("dashboard.prayer")||"Prayer"},get:e=>{const t=e==null?void 0:e.people_praying,o=t&&typeof t=="object"?t.value:t;return oa[_n({peoplePraying:o??null})]}},religion:{get label(){return Se("dashboard.religion")||"Religion"},get:e=>at(e.religion)},religion_family:{get label(){return Se("dashboard.religion_family")||"Religion Family"},get:e=>{const t=e.religion&&typeof e.religion=="object"?e.religion.value:e.religion,o=String(t||"").charAt(0).toUpperCase();return o&&ko[o]?ko[o]:""},famKey:e=>{const t=e.religion&&typeof e.religion=="object"?e.religion.value:e.religion,o=String(t||"").charAt(0).toUpperCase();return ko[o]?o:""}},wagf_region:{get label(){return Se("dashboard.region")||"Region"},get:e=>at(e.wagf_region)},wagf_block:{get label(){return Se("dashboard.bloc")||"Bloc"},get:e=>at(e.wagf_block)},country_code:{get label(){return Se("dashboard.country")||"Country"},get:e=>at(e.country_code),geoIso:e=>e.country_code&&e.country_code.value},engagement_status:{get label(){return Se("dashboard.status")||"Status"},get:e=>at(e.engagement_status)},gospel_access:{get label(){return Se("dashboard.gospel_access")||"Gospel Access"},get:e=>at(e.imb_gsec)},language_family:{get label(){return Se("dashboard.language_family")||"Language Family"},get:e=>{const t=at(e.imb_language_family);if(t)return $n(t);const o=e.primary_language&&typeof e.primary_language=="object"?e.primary_language.value:null,n=o&&cd[o];return n?$n(n):""}},primary_language:{get label(){return Se("dashboard.language")||"Language"},get:e=>at(e.primary_language)},affinity_bloc:{get label(){return Se("dashboard.people")||"People"},get:e=>Kr(e.rop1),optionLabel:e=>at(e.rop1)},cluster:{get label(){return Se("dashboard.cluster")||"Cluster"},get:e=>Kr(e.imb_reg_of_people_2)},people_group:{get label(){return Se("dashboard.people_group")||"People Group"},get:e=>Kr(e.imb_reg_of_people_25)},rop1_name:{get label(){return Se("dashboard.people_name")||"People (name)"},get:e=>at(e.rop1)}},facetRail:[{id:"people",get title(){return Se("dashboard.people")||"People"},axis:"people",drill:["affinity_bloc","cluster","people_group"],tree:"affinity",topN:[30,40,60]},{id:"place",get title(){return Se("dashboard.place")||"Place"},axis:"place",drill:["wagf_region","wagf_block","country_code"]},{id:"language",get title(){return Se("dashboard.language")||"Language"},axis:"language",drill:["language_family","primary_language"]},{id:"religion",get title(){return Se("dashboard.religion")||"Religion"},axis:"religion",drill:["religion_family","religion"],topN:[12,24]},{id:"gospel-access",title:"Gospel Access",axis:null,facet:"gospel_access",topN:8}],kpis:[{id:"total",get label(){return Se("dashboard.upgs_in_scope")||"UPGs in scope"},kind:"count",showDelta:!0},{id:"pop",get label(){return Se("dashboard.sum_population")||"Σ population"},kind:"sum",field:"population"},{id:"unreached",get label(){return Se("dashboard.unreached")||"unreached"},kind:"pct",test:e=>!/engaged/i.test(at(e.engagement_status))||/unengaged/i.test(at(e.engagement_status))},{id:"countries",get label(){return Se("dashboard.countries_touched")||"countries touched"},kind:"distinct",field:"country_code",via:"geoIso"},{id:"praying",get label(){return Se("dashboard.sum_praying")||"Σ praying"},kind:"sum",field:"people_praying"},{id:"adopted",get label(){return Se("dashboard.adopted")||"adopted"},kind:"pct",test:e=>Number(e.adopted_by_churches)>0}],columns:[{key:"name",get label(){return Se("dashboard.people_group")||"People Group"},get:e=>e.name||"",type:"str",w:1.34},{key:"country",get label(){return Se("dashboard.country")||"Country"},get:e=>at(e.country_code),type:"str",w:1.04},{key:"region",get label(){return Se("dashboard.region")||"Region"},get:e=>at(e.wagf_region),type:"str",w:1.04},{key:"language",get label(){return Se("dashboard.language")||"Language"},get:e=>at(e.primary_language),type:"str",w:1.04},{key:"religion",get label(){return Se("dashboard.religion")||"Religion"},get:e=>at(e.religion),type:"str",w:1.04},{key:"population",get label(){return Se("dashboard.population")||"Population"},get:e=>ud(e.population),type:"num",w:.86},{key:"people_praying",get label(){return Se("dashboard.praying")||"Praying"},get:e=>ud(e.people_praying),type:"num",w:.66},{key:"engagement",label:"Engagement",get:e=>at(e.engagement_status),type:"str",w:.97}],map:{provider:"mapbox",mapStyle:"galaxy",heartbeatThreshold:150,binThresholds:[5,20,60],heartbeatMode:"fixed",heartbeatQuantile:.1,colorRamp:"greyscale"},charts:[{id:"religion",type:"donut",facet:"religion_family",get title(){return Se("dashboard.religion")||"Religion"},topN:8},{id:"region",type:"donut",facet:"wagf_region",get title(){return Se("dashboard.region")||"Region"},topN:9},{id:"country",type:"bar",facet:"country_code",title:"Top countries",topN:12}],detail:{photo:e=>e.has_photo&&e.image_url,fields:["religion","primary_language","people_praying","adopted_by_churches","engagement_status"]},researchFilters:{dropdowns:["prayer_level","affinity_bloc","wagf_region","wagf_block","country_code","primary_language","religion"],get searchPlaceholder(){return Se("dashboard.search_placeholder")||"Search people groups, place, language, religion…"}},searchKeys:["name","rop1_name","wagf_region","wagf_block","country_code","primary_language","religion","engagement_status"],search:[{id:"people",get label(){return Se("dashboard.search_people")||"Search people"},context:"people-groups",kinds:["affinity-bloc","cluster","people-group"]},{id:"place",get label(){return Se("dashboard.search_place")||"Search place"},context:"regions",kinds:["region","country"]},{id:"language",get label(){return Se("dashboard.search_language")||"Search language"},context:"language",kinds:["language-family","language","dialect"]},{id:"religion",get label(){return Se("dashboard.search_religion")||"Search religion"},context:"religion",kinds:["religion"]}]},ex=["data-row-count","data-loading","data-error","data-narrow"],tx={class:"rd-stats","data-region":"stats","data-sub":"stat-strip"},ox=["data-kpi"],nx={class:"l"},ax={key:0,class:"d","data-kpi-delta":""},sx={class:"rd-cell-map","data-region":"map"},rx=["title"],ix=["title"],lx={class:"rd-cell-table","data-region":"table"},cx={class:"rd-rail","data-region":"rail"},ux=["aria-valuenow"],dx=["aria-valuenow"],px=["title","aria-label","aria-valuenow","aria-valuemin","aria-valuemax"],gx=["aria-valuenow"],fx=["data-view"],hx={__name:"research-dashboard",emits:["dashboard-filter"],setup(e,{emit:t}){const o=ze("profileConfig",de(null)),n=re(()=>{const ce=he(o);if(!ce||typeof ce!="object")return Xr;const _e={...Xr,...ce};return ce.map&&typeof ce.map=="object"&&(_e.map={...Xr.map,...ce.map}),_e}),a=re(()=>{var ce;return((ce=he(o))==null?void 0:ce.layout)==="page-scroll"}),{bus:s,data:r,kpis:i,exporter:l,responsive:c}=wv(n.value),u=t;lt(()=>{var ce;return{filters:{...s.filterSet},q:((ce=s.searchTerm)==null?void 0:ce.value)||""}},({filters:ce,q:_e})=>u("dashboard-filter",{filterSet:ce,searchTerm:_e}),{deep:!0});const p=r.total,g=r.loading,y=r.error,{shell:A,isNarrow:k,slimRail:S,slimFacet:C,mobileView:f,SEG:b,tableCollapsed:d,facetCollapsed:$,railCollapsed:L,setView:w,showFacets:F,showMap:U,showTable:ne,showCharts:z}=c,{startFacetResize:Y,startRailResize:fe,startTableResize:M,startShellResize:Q,onResizeKeydown:X,facetW:B,railW:se,tableH:I,mapH:O,shellH:V}=Lv({shellRef:A,bus:s,isNarrow:k,pageScroll:a,storageKey:"rd-dashboard-layout"});function D(ce){return ce.kind==="pct"?ce.value:ce.kind==="distinct"?ce.value||"—":Xu(ce.value)}const ae=re(()=>{var ce;return(ce=s.selectionVersion)==null||ce.value,s.selectionSet?s.selectionSet.size:0});function ge(){l.exportCsvAsync()}function ke(){s.clearSelection()}function be(){s.emit("toggleFacet",!$.value)}function $e(){s.emit("toggleRail",!L.value)}function Pe(ce){const _e=ce.target&&ce.target.closest&&ce.target.closest("[data-bar-export],[data-bar-clear]");_e&&(_e.hasAttribute("data-bar-export")?ge():ke())}return Ot(` +`,"rd-research-filters"),(w,F)=>(H(),Z("div",ox,[Ue(tx,{search:C.value,filters:A.value,"active-chips":S.value,"search-placeholder":p.value,"show-search":!1,"start-expanded":"",onSearch:f,onFilterChange:b,onFilterClear:d,onRemoveFilter:$,onClearAll:L},null,8,["search","filters","active-chips","search-placeholder"])]))}},dd={aar:"Afro-Asiatic",abf:"Austronesian",abl:"Austronesian",abv:"Afro-Asiatic",acm:"Afro-Asiatic",acq:"Afro-Asiatic",acw:"Afro-Asiatic",acx:"Afro-Asiatic",adh:"Nilo-Saharan",adi:"Sino-Tibetan",adw:"Tupian",adx:"Sino-Tibetan",aen:"Sign Language",afb:"Afro-Asiatic",afg:"Sign Language",afr:"Indo-European",aft:"Nilo-Saharan",agx:"Nakh-Daghestanian",ahk:"Sino-Tibetan",aib:"Turkic",aih:"Kra-Dai",aio:"Kra-Dai",ajp:"Afro-Asiatic",aju:"Afro-Asiatic",aks:"Niger-Congo",akv:"Nakh-Daghestanian",alk:"Austro-Asiatic",alo:"Austronesian",alw:"Afro-Asiatic",amc:"Panoan",amh:"Afro-Asiatic",amr:"Harákmbut",amv:"Austronesian",ani:"Nakh-Daghestanian",anp:"Indo-European",anq:"Andamanese",aoc:"Cariban",apc:"Afro-Asiatic",apd:"Afro-Asiatic",arb:"Afro-Asiatic",arq:"Afro-Asiatic",arr:"Tupian",ars:"Afro-Asiatic",arv:"Afro-Asiatic",ary:"Afro-Asiatic",ase:"Sign Language",asl:"Austronesian",asm:"Indo-European",asn:"Tupian",asp:"Sign Language",atr:"Cariban",avd:"Indo-European",avl:"Afro-Asiatic",avv:"Tupian",awe:"Tupian",awt:"Tupian",ayh:"Afro-Asiatic",ayl:"Afro-Asiatic",ayn:"Afro-Asiatic",azb:"Turkic",bao:"Tucanoan",bbh:"Austro-Asiatic",bcc:"Indo-European",bcz:"Niger-Congo",bdg:"Austronesian",bdi:"Nilo-Saharan",bdj:"Niger-Congo",bdm:"Afro-Asiatic",bdo:"Nilo-Saharan",bee:"Sino-Tibetan",bej:"Afro-Asiatic",bem:"Niger-Congo",ben:"Indo-European",bfi:"Sign Language",bfu:"Sino-Tibetan",bfw:"Austro-Asiatic",bfy:"Indo-European",bgc:"Indo-European",bgg:"Sino-Tibetan",bgk:"Austro-Asiatic",bgl:"Austro-Asiatic",bgn:"Indo-European",bgp:"Indo-European",bgq:"Indo-European",bho:"Indo-European",bhu:"Indo-European",bid:"Afro-Asiatic",bjj:"Indo-European",bkk:"Indo-European",blf:"Austronesian",blm:"Nilo-Saharan",blo:"Niger-Congo",bls:"Austronesian",blt:"Kra-Dai",bly:"Niger-Congo",bma:"Niger-Congo",bmr:"Witotoan",bna:"Austronesian",bns:"Indo-European",bor:"Bororoan",bos:"Indo-European",bph:"Nakh-Daghestanian",bqg:"Niger-Congo",bqj:"Niger-Congo",bqk:"Niger-Congo",bqn:"Sign Language",bqx:"Niger-Congo",bra:"Indo-European",brb:"Austro-Asiatic",bro:"Sino-Tibetan",brx:"Sino-Tibetan",bsb:"Austronesian",bsg:"Indo-European",bsk:"Language isolate",bsy:"Austronesian",btd:"Austronesian",btf:"Afro-Asiatic",btv:"Indo-European",btx:"Austronesian",btz:"Austronesian",bub:"Niger-Congo",buh:"Hmong-Mien",bva:"Afro-Asiatic",bvf:"Afro-Asiatic",bvi:"Niger-Congo",bvo:"Niger-Congo",bwi:"Maipurean",bwn:"Hmong-Mien",bwx:"Hmong-Mien",bxr:"Mongolic",bxu:"Mongolic",bxw:"Niger-Congo",byn:"Afro-Asiatic",byo:"Sino-Tibetan",bze:"Niger-Congo",bzx:"Niger-Congo",cat:"Indo-European",cbb:"Maipurean",cbc:"Tucanoan",cbi:"Barbacoan",cbn:"Austro-Asiatic",cby:"Unclassified",cdh:"Indo-European",cdn:"Sino-Tibetan",cdz:"Austro-Asiatic",ceg:"Zamucoan",cgk:"Sino-Tibetan",che:"Nakh-Daghestanian",cib:"Niger-Congo",cji:"Nakh-Daghestanian",ckh:"Sino-Tibetan",ckq:"Afro-Asiatic",clk:"Sino-Tibetan",cmn:"Sino-Tibetan",cnq:"Niger-Congo",cnu:"Afro-Asiatic",coa:"Creole",cog:"Austro-Asiatic",cpu:"Maipurean",cqd:"Hmong-Mien",csf:"Sign Language",csx:"Sign language",cub:"Tucanoan",cui:"Guajiboan",cuu:"Kra-Dai",daa:"Afro-Asiatic",daj:"Nilo-Saharan",dar:"Nakh-Daghestanian",dau:"Nilo-Saharan",dba:"Language isolate",dbb:"Afro-Asiatic",dbp:"Afro-Asiatic",dbr:"Afro-Asiatic",ddn:"Nilo-Saharan",deg:"Niger-Congo",dek:"Niger-Congo",des:"Tucanoan",dgo:"Indo-European",dgs:"Niger-Congo",dhd:"Indo-European",dhi:"Sino-Tibetan",dhm:"Niger-Congo",dil:"Nilo-Saharan",diu:"Niger-Congo",div:"Indo-European",djc:"Nilo-Saharan",dkg:"Niger-Congo",dln:"Sino-Tibetan",dml:"Indo-European",dms:"Austronesian",dnu:"Austro-Asiatic",doc:"Kra-Dai",dok:"Austronesian",dox:"Afro-Asiatic",dru:"Austronesian",dse:"Sign Language",dsh:"Afro-Asiatic",dsl:"Sign Language",dsq:"Nilo-Saharan",dta:"Mongolic",dtp:"Austronesian",dyu:"Niger-Congo",dzg:"Nilo-Saharan",dzl:"Sino-Tibetan",eng:"Indo-European",enn:"Niger-Congo",epi:"Niger-Congo",ers:"Sino-Tibetan",esl:"Sign Language",evn:"Tungusic",fin:"Uralic",fni:"Niger-Congo",fod:"Niger-Congo",fra:"Indo-European",fsl:"Sign Language",fub:"Niger-Congo",fuc:"Niger-Congo",fuf:"Niger-Congo",fuj:"Niger-Congo",fvr:"Nilo-Saharan",fwe:"Niger-Congo",gax:"Afro-Asiatic",gaz:"Afro-Asiatic",gbk:"Indo-European",gbm:"Indo-European",gbn:"Nilo-Saharan",gdq:"Afro-Asiatic",gea:"Afro-Asiatic",ges:"Austronesian",gex:"Afro-Asiatic",ghl:"Nilo-Saharan",giq:"Kra-Dai",giw:"Kra-Dai",gju:"Indo-European",glc:"Niger-Congo",goe:"Sino-Tibetan",gow:"Afro-Asiatic",gqu:"Kra-Dai",grr:"Afro-Asiatic",gsg:"Sign Language",gss:"Sign Language",guj:"Indo-European",gus:"Sign Language",gvp:"Jean",gwb:"Niger-Congo",gwc:"Indo-European",gwd:"Afro-Asiatic",gwf:"Indo-European",gya:"Niger-Congo",gyo:"Sino-Tibetan",gzn:"Austronesian",hae:"Afro-Asiatic",hal:"Austro-Asiatic",hau:"Afro-Asiatic",hca:"Creole",hea:"Hmong-Mien",heb:"Afro-Asiatic",her:"Niger-Congo",hik:"Austronesian",hin:"Indo-European",hks:"Sign Language",hlb:"Indo-European",hld:"Austro-Asiatic",hmb:"Nilo-Saharan",hmh:"Hmong-Mien",hml:"Hmong-Mien",hmm:"Hmong-Mien",hne:"Indo-European",hni:"Sino-Tibetan",hnu:"Austro-Asiatic",hoh:"Afro-Asiatic",hoj:"Indo-European",hoz:"Afro-Asiatic",hsn:"Sino-Tibetan",hss:"Afro-Asiatic",htu:"Austronesian",hug:"Harákmbut",huo:"Austro-Asiatic",iba:"Austronesian",ibr:"Niger-Congo",icl:"Sign Language",iii:"Sino-Tibetan",ind:"Austronesian",irr:"Austro-Asiatic",ise:"Sign Language",isk:"Indo-European",isr:"Sign Language",ium:"Hmong-Mien",jbn:"Afro-Asiatic",jeu:"Afro-Asiatic",jia:"Afro-Asiatic",jii:"Afro-Asiatic",jio:"Kra-Dai",jit:"Niger-Congo",jiu:"Sino-Tibetan",jle:"Niger-Congo",jls:"Sign Language",jmi:"Afro-Asiatic",jnl:"Sino-Tibetan",jos:"Sign Language",jpn:"Japonic",jup:"Puinavean",kaf:"Sino-Tibetan",kan:"Dravidian",kas:"Indo-European",kay:"Tupian",kaz:"Turkic",kbg:"Sino-Tibetan",kbo:"Nilo-Saharan",kbp:"Niger-Congo",kby:"Nilo-Saharan",kcf:"Niger-Congo",kcn:"Creole",kcp:"Nilo-Saharan",kcu:"Niger-Congo",kcy:"Nilo-Saharan",kcz:"Niger-Congo",kdh:"Niger-Congo",kdn:"Niger-Congo",kdt:"Austro-Asiatic",kdu:"Nilo-Saharan",kec:"Nilo-Saharan",kfa:"Dravidian",kfd:"Dravidian",kfe:"Dravidian",kfg:"Dravidian",kfm:"Indo-European",kfr:"Indo-European",kfs:"Indo-European",kfy:"Indo-European",kgn:"Indo-European",khb:"Kra-Dai",khf:"Austro-Asiatic",khv:"Nakh-Daghestanian",kia:"Niger-Congo",kib:"Niger-Congo",kie:"Nilo-Saharan",kil:"Afro-Asiatic",kir:"Turkic",kjc:"Austronesian",kjg:"Austro-Asiatic",kjk:"Austronesian",kke:"Niger-Congo",kkh:"Kra-Dai",kkn:"Austro-Asiatic",kko:"Nilo-Saharan",kks:"Afro-Asiatic",klf:"Nilo-Saharan",kmc:"Kra-Dai",kmq:"Nilo-Saharan",kmr:"Indo-European",kmz:"Turkic",knc:"Nilo-Saharan",knf:"Niger-Congo",knk:"Niger-Congo",knm:"Maipurean",knn:"Indo-European",kns:"Austro-Asiatic",knz:"Niger-Congo",kou:"Niger-Congo",kpa:"Afro-Asiatic",kpc:"Maipurean",kpj:"Karajá",kpt:"Nakh-Daghestanian",kqg:"Niger-Congo",kqm:"Niger-Congo",krn:"Niger-Congo",krs:"Nilo-Saharan",kth:"Nilo-Saharan",kuf:"Austro-Asiatic",kui:"Cariban",kuj:"Niger-Congo",kva:"Nakh-Daghestanian",kvf:"Afro-Asiatic",kvh:"Austronesian",kvp:"Austronesian",kwn:"Niger-Congo",kwv:"Nilo-Saharan",kxd:"Austronesian",kxh:"Afro-Asiatic",kxj:"Nilo-Saharan",kyi:"Austronesian",kyp:"Kra-Dai",kyw:"Indo-European",kzq:"Sino-Tibetan",lae:"Sino-Tibetan",lan:"Niger-Congo",lao:"Kra-Dai",laq:"Kra-Dai",lbj:"Sino-Tibetan",lbn:"Austro-Asiatic",lbo:"Austro-Asiatic",lbs:"Sign Language",lbt:"Kra-Dai",lcd:"Austronesian",lcq:"Austronesian",lgn:"Nilo-Saharan",lgs:"Sign Language",lha:"Kra-Dai",lhn:"Austronesian",lhp:"Sino-Tibetan",lic:"Kra-Dai",liq:"Afro-Asiatic",liu:"Nilo-Saharan",lkc:"Sino-Tibetan",lkh:"Sino-Tibetan",lki:"Indo-European",lkr:"Nilo-Saharan",lma:"Niger-Congo",loh:"Nilo-Saharan",lop:"Niger-Congo",lsd:"Afro-Asiatic",lso:"Sign Language",lss:"Indo-European",lsy:"Sign Language",luk:"Sino-Tibetan",lul:"Nilo-Saharan",mag:"Indo-European",mai:"Indo-European",mal:"Dravidian",mar:"Indo-European",mbd:"Austronesian",mbn:"Guajiboan",mcd:"Panoan",mdl:"Sign Language",mdy:"Afro-Asiatic",mei:"Nilo-Saharan",men:"Niger-Congo",mes:"Afro-Asiatic",mew:"Afro-Asiatic",mey:"Afro-Asiatic",mgb:"Nilo-Saharan",mgd:"Nilo-Saharan",mge:"Nilo-Saharan",mgh:"Niger-Congo",mhr:"Uralic",mhu:"Sino-Tibetan",mhw:"Niger-Congo",mjp:"Dravidian",mkg:"Kra-Dai",mmh:"Maipurean",mml:"Austro-Asiatic",mmy:"Afro-Asiatic",mne:"Nilo-Saharan",mni:"Sino-Tibetan",mnj:"Indo-European",mnk:"Niger-Congo",mnq:"Austro-Asiatic",mns:"Uralic",mot:"Chibchan",mou:"Afro-Asiatic",moy:"Afro-Asiatic",moz:"Afro-Asiatic",mpe:"Nilo-Saharan",mpz:"Sino-Tibetan",mqi:"Austronesian",mqn:"Austronesian",mra:"Austro-Asiatic",mrj:"Uralic",msc:"Niger-Congo",msv:"Afro-Asiatic",msw:"Niger-Congo",mtr:"Indo-European",mub:"Afro-Asiatic",mup:"Indo-European",muq:"Hmong-Mien",muv:"Dravidian",mvf:"Mongolic",mvu:"Nilo-Saharan",mvy:"Indo-European",mwn:"Niger-Congo",mxj:"Sino-Tibetan",myp:"Muran",myy:"Tucanoan",mzb:"Afro-Asiatic",mzy:"Sign Language",naq:"Khoe-Kwadi",nbt:"Sino-Tibetan",nbw:"Niger-Congo",ndg:"Niger-Congo",ndp:"Nilo-Saharan",ndt:"Niger-Congo",neb:"Niger-Congo",neh:"Sino-Tibetan",nev:"Austro-Asiatic",ngt:"Austro-Asiatic",njl:"Nilo-Saharan",nkd:"Sino-Tibetan",nld:"Indo-European",nmd:"Niger-Congo",nmi:"Afro-Asiatic",nml:"Niger-Congo",nmy:"Sino-Tibetan",nnj:"Nilo-Saharan",nod:"Kra-Dai",noe:"Indo-European",nos:"Sino-Tibetan",npb:"Sino-Tibetan",npi:"Indo-European",nrb:"Nilo-Saharan",nru:"Sino-Tibetan",nsl:"Sign Language",nuo:"Austro-Asiatic",nus:"Nilo-Saharan",nwm:"Nilo-Saharan",nxq:"Sino-Tibetan",nye:"Niger-Congo",nyn:"Niger-Congo",nyr:"Niger-Congo",nyw:"Kra-Dai",nzs:"Sign Language",okn:"Japonic",ole:"Sino-Tibetan",oog:"Austro-Asiatic",oon:"Andamanese",opa:"Niger-Congo",ort:"Indo-European",ory:"Indo-European",ost:"Niger-Congo",oyb:"Austro-Asiatic",oym:"Tupian",pac:"Austro-Asiatic",pah:"Tupian",pbp:"Niger-Congo",peh:"Mongolic",pes:"Indo-European",pga:"Creole",pgg:"Indo-European",pgz:"Sign language",pha:"Hmong-Mien",phh:"Sino-Tibetan",phj:"Sino-Tibetan",phk:"Kra-Dai",phl:"Indo-European",pho:"Sino-Tibetan",phq:"Sino-Tibetan",phr:"Indo-European",pht:"Kra-Dai",pil:"Niger-Congo",pir:"Tucanoan",pkb:"Niger-Congo",pks:"Sign Language",pkt:"Austro-Asiatic",pll:"Austro-Asiatic",pnq:"Niger-Congo",pnx:"Austro-Asiatic",por:"Indo-European",prc:"Indo-European",prs:"Indo-European",prt:"Austro-Asiatic",psc:"Sign Language",pse:"Austronesian",pto:"Tupian",pum:"Sino-Tibetan",puo:"Austro-Asiatic",qae:"Sign Language",qao:"Sign Language",qbh:"Sign Language",qbj:"Sign Language",qbn:"Sign Language",qbt:"Sign Language",qcd:"Sign Language",qcm:"Sign Language",qcy:"Sign Language",qer:"Sign Language",qfa:"Sign Language",qfj:"Sign Language",qga:"Sign Language",qge:"Sign Language",qgm:"Sign Language",qiq:"Sign Language",qki:"Sign Language",qkm:"Sign Language",qkp:"Sign Language",qkw:"Sign Language",qmv:"Sign Language",qnh:"Sign Language",qns:"Sign Language",qom:"Sign Language",qqa:"Sign Language",qry:"Sign Language",qsm:"Sign Language",qso:"Sign Language",qsr:"Sign Language",qsz:"Sign Language",qtp:"Sign Language",qvz:"Quechuan",ras:"Niger-Congo",rbb:"Austro-Asiatic",ren:"Austro-Asiatic",rji:"Sino-Tibetan",rmt:"Indo-European",rmy:"Indo-European",rob:"Austronesian",rsl:"Sign Language",rui:"Niger-Congo",rus:"Indo-European",rwm:"Niger-Congo",rwr:"Indo-European",rys:"Japonic",saa:"Afro-Asiatic",sbf:"Unclassified",sbj:"Nilo-Saharan",sbs:"Niger-Congo",scb:"Austro-Asiatic",sck:"Indo-European",scl:"Indo-European",sdb:"Indo-European",sdg:"Indo-European",sdl:"Sign Language",sdp:"Sino-Tibetan",seq:"Niger-Congo",sgh:"Indo-European",sgy:"Indo-European",she:"Afro-Asiatic",shm:"Indo-European",shn:"Kra-Dai",sho:"Niger-Congo",shp:"Panoan",shu:"Afro-Asiatic",shv:"Afro-Asiatic",shz:"Niger-Congo",siy:"Indo-European",siz:"Afro-Asiatic",sjg:"Nilo-Saharan",sjo:"Tungusic",skq:"Niger-Congo",sle:"Dravidian",slt:"Sino-Tibetan",sml:"Austronesian",smy:"Indo-European",snd:"Indo-European",snn:"Tucanoan",soj:"Indo-European",sok:"Afro-Asiatic",soy:"Niger-Congo",spa:"Indo-European",spu:"Austro-Asiatic",sqk:"Sign Language",sqq:"Austro-Asiatic",sqs:"Sign Language",sqt:"Afro-Asiatic",srh:"Indo-European",sri:"Tucanoan",srp:"Indo-European",ssh:"Afro-Asiatic",ssn:"Afro-Asiatic",sss:"Austro-Asiatic",ssy:"Afro-Asiatic",std:"Andamanese",sts:"Indo-European",suq:"Nilo-Saharan",suv:"Sino-Tibetan",suy:"Jean",suz:"Sino-Tibetan",swh:"Niger-Congo",swi:"Kra-Dai",swl:"Sign Language",swv:"Indo-European",swx:"Arauan",sxg:"Sino-Tibetan",sze:"Afro-Asiatic",szn:"Austronesian",szs:"Sign Language",tag:"Niger-Congo",tam:"Dravidian",taz:"Niger-Congo",tbm:"Niger-Congo",tbn:"Chibchan",tbr:"Nilo-Saharan",tct:"Kra-Dai",tcy:"Dravidian",tda:"Mixed language",tdb:"Indo-European",tdd:"Kra-Dai",tdf:"Austro-Asiatic",tdj:"Austronesian",tel:"Dravidian",teq:"Nilo-Saharan",tgf:"Sino-Tibetan",tgk:"Indo-European",tgr:"Austro-Asiatic",thk:"Niger-Congo",thm:"Austro-Asiatic",thu:"Nilo-Saharan",thv:"Afro-Asiatic",tig:"Afro-Asiatic",tin:"Nakh-Daghestanian",tiz:"Kra-Dai",tkn:"Japonic",tlq:"Austro-Asiatic",tly:"Indo-European",tma:"Nilo-Saharan",tnb:"Chibchan",toi:"Niger-Congo",toq:"Nilo-Saharan",tou:"Austro-Asiatic",tqq:"Afro-Asiatic",tri:"Cariban",trj:"Afro-Asiatic",tsb:"Afro-Asiatic",tsc:"Niger-Congo",tsj:"Sino-Tibetan",tsk:"Sino-Tibetan",tsl:"Kra-Dai",tsm:"Sign Language",ttg:"Austronesian",tth:"Austro-Asiatic",ttl:"Niger-Congo",tts:"Kra-Dai",tue:"Tucanoan",tum:"Niger-Congo",tuo:"Tucanoan",tur:"Turkic",twm:"Sino-Tibetan",txi:"Cariban",txm:"Austronesian",tyh:"Austro-Asiatic",tyj:"Kra-Dai",tyr:"Kra-Dai",tyv:"Turkic",tyy:"Niger-Congo",tzm:"Afro-Asiatic",uan:"Kra-Dai",udj:"Austronesian",une:"Niger-Congo",unk:"Maipurean",urd:"Indo-European",urp:"Tupian",urz:"Tupian",ush:"Indo-European",usi:"Sino-Tibetan",uuu:"Austro-Asiatic",uzn:"Turkic",vai:"Niger-Congo",vgr:"Indo-European",vie:"Austro-Asiatic",vkj:"Unclassified",vkn:"Niger-Congo",vkz:"Niger-Congo",vmk:"Niger-Congo",vut:"Niger-Congo",wau:"Maipurean",waw:"Cariban",wbj:"Afro-Asiatic",wbl:"Indo-European",wbr:"Indo-European",wlc:"Niger-Congo",wll:"Nilo-Saharan",wmd:"Nambikwara",wmg:"Sino-Tibetan",wne:"Indo-European",wni:"Niger-Congo",wol:"Niger-Congo",wrn:"Niger-Congo",wti:"Nilo-Saharan",wuh:"Mixed language",wwa:"Niger-Congo",xal:"Mongolic",xan:"Afro-Asiatic",xdq:"Nakh-Daghestanian",xhv:"Austro-Asiatic",xka:"Indo-European",xkz:"Sino-Tibetan",xma:"Niger-Congo",xmj:"Afro-Asiatic",xmo:"Tupian",xms:"Sign Language",xnr:"Indo-European",xns:"Sino-Tibetan",xom:"Nilo-Saharan",xor:"Panoan",xsm:"Niger-Congo",xsr:"Sino-Tibetan",xwg:"Nilo-Saharan",yaa:"Panoan",yad:"Yaguan",yao:"Niger-Congo",yax:"Niger-Congo",ybh:"Sino-Tibetan",ycl:"Sino-Tibetan",ydd:"Indo-European",ydg:"Indo-European",yea:"Dravidian",yhd:"Afro-Asiatic",yig:"Sino-Tibetan",yix:"Sino-Tibetan",ymm:"Afro-Asiatic",ymx:"Sino-Tibetan",yne:"Sino-Tibetan",yno:"Kra-Dai",yom:"Niger-Congo",yox:"Japonic",yoy:"Kra-Dai",yrn:"Kra-Dai",ysl:"Sign Language",ysm:"Sign language",ysn:"Sino-Tibetan",yue:"Sino-Tibetan",yul:"Nilo-Saharan",yup:"Cariban",ywn:"Panoan",ywt:"Sino-Tibetan",zag:"Nilo-Saharan",zgn:"Kra-Dai",zhd:"Kra-Dai",ziw:"Niger-Congo",zkr:"Sino-Tibetan",zlm:"Austronesian",zna:"Niger-Congo",zne:"Niger-Congo",zng:"Austro-Asiatic",zqe:"Kra-Dai",zum:"Indo-European",zyg:"Kra-Dai"},pd=e=>{if(typeof e=="number")return e;const t=parseFloat(String(e??"").replace(/[^0-9.\-]/g,""));return isNaN(t)?null:t},Kr=e=>e&&typeof e=="object"?e.value??e.label??"":e??"",Xr={id:"doxa-research-dashboard",get title(){return Pe("dashboard.dashboard_title")||"Big Picture Research Dashboard"},element:"doxa-research-dashboard",data:{source:"pray-tools",primaryKey:"slug"},facets:{prayer_level:{get label(){return Pe("dashboard.prayer")||"Prayer"},get:e=>{const t=e==null?void 0:e.people_praying,o=t&&typeof t=="object"?t.value:t;return oa[_n({peoplePraying:o??null})]}},religion:{get label(){return Pe("dashboard.religion")||"Religion"},get:e=>at(e.religion)},religion_family:{get label(){return Pe("dashboard.religion_family")||"Religion Family"},get:e=>{const t=e.religion&&typeof e.religion=="object"?e.religion.value:e.religion,o=String(t||"").charAt(0).toUpperCase();return o&&ko[o]?ko[o]:""},famKey:e=>{const t=e.religion&&typeof e.religion=="object"?e.religion.value:e.religion,o=String(t||"").charAt(0).toUpperCase();return ko[o]?o:""}},wagf_region:{get label(){return Pe("dashboard.region")||"Region"},get:e=>at(e.wagf_region)},wagf_block:{get label(){return Pe("dashboard.bloc")||"Bloc"},get:e=>at(e.wagf_block)},country_code:{get label(){return Pe("dashboard.country")||"Country"},get:e=>at(e.country_code),geoIso:e=>e.country_code&&e.country_code.value},engagement_status:{get label(){return Pe("dashboard.status")||"Status"},get:e=>at(e.engagement_status)},gospel_access:{get label(){return Pe("dashboard.gospel_access")||"Gospel Access"},get:e=>at(e.imb_gsec)},language_family:{get label(){return Pe("dashboard.language_family")||"Language Family"},get:e=>{const t=at(e.imb_language_family);if(t)return $n(t);const o=e.primary_language&&typeof e.primary_language=="object"?e.primary_language.value:null,n=o&&dd[o];return n?$n(n):""}},primary_language:{get label(){return Pe("dashboard.language")||"Language"},get:e=>at(e.primary_language)},affinity_bloc:{get label(){return Pe("dashboard.people")||"People"},get:e=>Kr(e.rop1),optionLabel:e=>at(e.rop1)},cluster:{get label(){return Pe("dashboard.cluster")||"Cluster"},get:e=>Kr(e.imb_reg_of_people_2)},people_group:{get label(){return Pe("dashboard.people_group")||"People Group"},get:e=>Kr(e.imb_reg_of_people_25)},rop1_name:{get label(){return Pe("dashboard.people_name")||"People (name)"},get:e=>at(e.rop1)}},facetRail:[{id:"people",get title(){return Pe("dashboard.people")||"People"},axis:"people",drill:["affinity_bloc","cluster","people_group"],tree:"affinity",topN:[30,40,60]},{id:"place",get title(){return Pe("dashboard.place")||"Place"},axis:"place",drill:["wagf_region","wagf_block","country_code"]},{id:"language",get title(){return Pe("dashboard.language")||"Language"},axis:"language",drill:["language_family","primary_language"]},{id:"religion",get title(){return Pe("dashboard.religion")||"Religion"},axis:"religion",drill:["religion_family","religion"],topN:[12,24]},{id:"gospel-access",title:"Gospel Access",axis:null,facet:"gospel_access",topN:8}],kpis:[{id:"total",get label(){return Pe("dashboard.upgs_in_scope")||"UPGs in scope"},kind:"count",showDelta:!0},{id:"pop",get label(){return Pe("dashboard.sum_population")||"Σ population"},kind:"sum",field:"population"},{id:"unreached",get label(){return Pe("dashboard.unreached")||"unreached"},kind:"pct",test:e=>!/engaged/i.test(at(e.engagement_status))||/unengaged/i.test(at(e.engagement_status))},{id:"countries",get label(){return Pe("dashboard.countries_touched")||"countries touched"},kind:"distinct",field:"country_code",via:"geoIso"},{id:"praying",get label(){return Pe("dashboard.sum_praying")||"Σ praying"},kind:"sum",field:"people_praying"},{id:"adopted",get label(){return Pe("dashboard.adopted")||"adopted"},kind:"pct",test:e=>Number(e.adopted_by_churches)>0}],columns:[{key:"name",get label(){return Pe("dashboard.people_group")||"People Group"},get:e=>e.name||"",type:"str",w:1.34},{key:"country",get label(){return Pe("dashboard.country")||"Country"},get:e=>at(e.country_code),type:"str",w:1.04},{key:"region",get label(){return Pe("dashboard.region")||"Region"},get:e=>at(e.wagf_region),type:"str",w:1.04},{key:"language",get label(){return Pe("dashboard.language")||"Language"},get:e=>at(e.primary_language),type:"str",w:1.04},{key:"religion",get label(){return Pe("dashboard.religion")||"Religion"},get:e=>at(e.religion),type:"str",w:1.04},{key:"population",get label(){return Pe("dashboard.population")||"Population"},get:e=>pd(e.population),type:"num",w:.86},{key:"people_praying",get label(){return Pe("dashboard.praying")||"Praying"},get:e=>pd(e.people_praying),type:"num",w:.66},{key:"engagement",label:"Engagement",get:e=>at(e.engagement_status),type:"str",w:.97}],map:{provider:"mapbox",mapStyle:"galaxy",heartbeatThreshold:150,binThresholds:[5,20,60],heartbeatMode:"fixed",heartbeatQuantile:.1,colorRamp:"greyscale"},charts:[{id:"religion",type:"donut",facet:"religion_family",get title(){return Pe("dashboard.religion")||"Religion"},topN:8},{id:"region",type:"donut",facet:"wagf_region",get title(){return Pe("dashboard.region")||"Region"},topN:9},{id:"country",type:"bar",facet:"country_code",title:"Top countries",topN:12}],detail:{photo:e=>e.has_photo&&e.image_url,fields:["religion","primary_language","people_praying","adopted_by_churches","engagement_status"]},researchFilters:{dropdowns:["prayer_level","affinity_bloc","wagf_region","wagf_block","country_code","primary_language","religion"],get searchPlaceholder(){return Pe("dashboard.search_placeholder")||"Search people groups, place, language, religion…"}},searchKeys:["name","rop1_name","wagf_region","wagf_block","country_code","primary_language","religion","engagement_status"],search:[{id:"people",get label(){return Pe("dashboard.search_people")||"Search people"},context:"people-groups",kinds:["affinity-bloc","cluster","people-group"]},{id:"place",get label(){return Pe("dashboard.search_place")||"Search place"},context:"regions",kinds:["region","country"]},{id:"language",get label(){return Pe("dashboard.search_language")||"Search language"},context:"language",kinds:["language-family","language","dialect"]},{id:"religion",get label(){return Pe("dashboard.search_religion")||"Search religion"},context:"religion",kinds:["religion"]}]},ax=["data-row-count","data-loading","data-error","data-narrow"],sx={class:"rd-stats","data-region":"stats","data-sub":"stat-strip"},rx=["data-kpi"],ix={class:"l"},lx={key:0,class:"d","data-kpi-delta":""},cx={class:"rd-cell-map","data-region":"map"},ux=["title"],dx=["title"],px={class:"rd-cell-table","data-region":"table"},gx={class:"rd-rail","data-region":"rail"},fx=["aria-valuenow"],hx=["aria-valuenow"],mx=["title","aria-label","aria-valuenow","aria-valuemin","aria-valuemax"],bx=["aria-valuenow"],$x=["data-view"],_x={__name:"research-dashboard",emits:["dashboard-filter"],setup(e,{emit:t}){const o=ze("profileConfig",de(null)),n=ie(()=>{const se=fe(o);if(!se||typeof se!="object")return Xr;const he={...Xr,...se};return se.map&&typeof se.map=="object"&&(he.map={...Xr.map,...se.map}),he}),a=ie(()=>{var se;return((se=fe(o))==null?void 0:se.layout)==="page-scroll"}),{bus:s,data:r,kpis:i,exporter:l,responsive:c}=kv(n.value),u=t;it(()=>{var se;return{filters:{...s.filterSet},q:((se=s.searchTerm)==null?void 0:se.value)||""}},({filters:se,q:he})=>u("dashboard-filter",{filterSet:se,searchTerm:he}),{deep:!0});const p=r.total,g=r.loading,y=r.error,{shell:A,isNarrow:k,slimRail:S,slimFacet:C,mobileView:f,SEG:b,tableCollapsed:d,facetCollapsed:$,railCollapsed:L,setView:w,showFacets:F,showMap:D,showTable:ne,showCharts:B}=c,{startFacetResize:Y,startRailResize:pe,startTableResize:M,startShellResize:ee,onResizeKeydown:K,facetW:z,railW:re,tableH:j,mapH:O,shellH:V}=Sv({shellRef:A,bus:s,isNarrow:k,pageScroll:a,storageKey:"rd-dashboard-layout"});function I(se){return se.kind==="pct"?se.value:se.kind==="distinct"?se.value||"—":Xu(se.value)}const ae=ie(()=>{var se;return(se=s.selectionVersion)==null||se.value,s.selectionSet?s.selectionSet.size:0});function be(){l.exportCsvAsync()}function ke(){s.clearSelection()}function xe(){s.emit("toggleFacet",!$.value)}function Se(){s.emit("toggleRail",!L.value)}function ye(se){const he=se.target&&se.target.closest&&se.target.closest("[data-bar-export],[data-bar-clear]");he&&(he.hasAttribute("data-bar-export")?be():ke())}return Ot(` :host{ display:block; width:100%; height:100%; min-height:560px; box-sizing:border-box; --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:24px; --dx-surface:#f3f3f1; --dx-elevated:#ffffff; --dx-text:#3b463d; --dx-muted:#6d766e; @@ -802,4 +802,4 @@ .rd-shell ::-webkit-scrollbar-thumb{ background:var(--dx-scroll-thumb, #c4c8c0); border-radius:8px; } .rd-shell ::-webkit-scrollbar-thumb:hover{ background:#9aa197; } .rd-shell ::-webkit-scrollbar-corner{ background:transparent; } -`,"rd-shell-layout"),yt(()=>{const ce=A.value&&A.value.getRootNode&&A.value.getRootNode().host;if(!ce)return;const _e=xe=>ce.setAttribute("data-page-scroll",xe?"true":"false");_e(he(a)),lt(()=>he(a),_e)}),(ce,_e)=>(H(),Z("div",{ref_key:"shell",ref:A,class:qe(["rd-shell",{"rd-narrow":he(k),"rd-slim-rail":he(S),"rd-slim-facet":he(C),"rd-table-collapsed":he(d),"rd-facet-collapsed":he($),"rd-rail-collapsed":he(L),"rd-page-scroll":a.value}]),"data-row-count":he(p),"data-loading":he(g)?"1":"0","data-error":he(y)||"","data-narrow":he(k)?"1":"0"},[Ue(he(d0)),Ue(he(Qw)),R("div",tx,[(H(!0),Z(Ce,null,et(he(i),xe=>(H(),Z("div",{class:"kpi",key:xe.id},[R("span",{class:"n","data-kpi":xe.id},ue(xe.kind==="count"&&he(g)?"…":D(xe)),9,ox),R("span",nx,ue(xe.label),1),xe.delta?(H(),Z("span",ax,"↓"+ue(he(Xu)(xe.delta)),1)):Fe("",!0)]))),128))]),Mt(Ue(he(E0),null,null,512),[[Vt,he(F)]]),Mt(R("div",sx,[Ue(he(Rw)),he(k)?Fe("",!0):(H(),Z("button",{key:0,class:"rd-edge-caret rd-edge-facet",type:"button","data-toggle-facet":"",title:he($)?"Show filters":"Hide filters — grow the map",onClick:be},ue(he($)?"▸":"◂"),9,rx)),he(k)?Fe("",!0):(H(),Z("button",{key:1,class:"rd-edge-caret rd-edge-rail",type:"button","data-toggle-rail":"",title:he(L)?"Show charts":"Hide charts — grow the map",onClick:$e},ue(he(L)?"◂":"▸"),9,ix))],512),[[Vt,he(U)]]),Mt(R("div",lx,[Ue(he(Q0))],512),[[Vt,he(ne)]]),Mt(R("aside",cx,[Ue(he(B1)),Ue(he(b1))],512),[[Vt,he(z)]]),Mt(R("div",{class:"rd-rz rd-rz-facet","data-resize":"facet",role:"separator","aria-orientation":"vertical",tabindex:"0",title:"Drag or use arrow keys to resize the filters rail","aria-label":"Resize filters rail","aria-valuenow":he(B),"aria-valuemin":"160","aria-valuemax":"420",onPointerdown:_e[0]||(_e[0]=(...xe)=>he(Y)&&he(Y)(...xe)),onKeydown:_e[1]||(_e[1]=xe=>he(X)("facet",xe))},null,40,ux),[[Vt,!he(k)&&!he($)]]),Mt(R("div",{class:"rd-rz rd-rz-rail","data-resize":"rail",role:"separator","aria-orientation":"vertical",tabindex:"0",title:"Drag or use arrow keys to resize the charts rail","aria-label":"Resize charts rail","aria-valuenow":he(se),"aria-valuemin":"200","aria-valuemax":"520",onPointerdown:_e[2]||(_e[2]=(...xe)=>he(fe)&&he(fe)(...xe)),onKeydown:_e[3]||(_e[3]=xe=>he(X)("rail",xe))},null,40,dx),[[Vt,!he(k)&&!he(L)]]),Mt(R("div",{class:"rd-rz rd-rz-table","data-resize":"table",role:"separator","aria-orientation":"horizontal",tabindex:"0",title:a.value?"Drag or use arrow keys to resize the map/table split":"Drag or use arrow keys to resize the table","aria-label":a.value?"Resize map/table split":"Resize table height","aria-valuenow":a.value?he(O):parseFloat(he(I))||34,"aria-valuemin":a.value?220:12,"aria-valuemax":a.value?1400:70,onPointerdown:_e[4]||(_e[4]=(...xe)=>he(M)&&he(M)(...xe)),onKeydown:_e[5]||(_e[5]=xe=>he(X)("table",xe))},null,40,px),[[Vt,!he(k)&&!he(d)]]),Mt(R("div",{class:"rd-rz rd-rz-shell","data-resize":"shell",role:"separator","aria-orientation":"horizontal",tabindex:"0",title:"Drag or use arrow keys to resize the dashboard's height","aria-label":"Resize dashboard height","aria-valuenow":he(V),"aria-valuemin":"400","aria-valuemax":"2600",onPointerdown:_e[6]||(_e[6]=(...xe)=>he(Q)&&he(Q)(...xe)),onKeydown:_e[7]||(_e[7]=xe=>he(X)("shell",xe))},null,40,gx),[[Vt,!he(k)&&a.value]]),R("div",{class:"rd-seg","data-segmented":"",onClick:_e[8]||(_e[8]=(...xe)=>he(w)&&he(w)(...xe))},[(H(!0),Z(Ce,null,et(he(b),xe=>(H(),Z("button",{key:xe.k,class:qe({on:he(f)===xe.k}),"data-view-btn":"","data-view":xe.k},ue(xe.l),11,fx))),128))]),ae.value?(H(),Z("div",{key:0,class:"rd-exportbar","data-export-bar":"",onClick:Pe},[R("b",null,ue(ae.value)+" selected",1),_e[9]||(_e[9]=R("span",{class:"sp"},null,-1)),_e[10]||(_e[10]=R("button",{class:"x-clr","data-bar-clear":""},"Clear",-1)),_e[11]||(_e[11]=R("button",{class:"x-go","data-bar-export":""},"Export CSV ↓",-1))])):Fe("",!0)],10,ex))}};function mx(e,t){return String(t||e||"").trim().toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}const bx=":host{display:block;width:100%;--dx-surface: #f3f3f1;--dx-elevated: #ffffff;--dx-text: #3b463d;--dx-muted: #6d766e;--dx-line: #d1d4cd;--dx-accent: #92b195;--dx-accent-weak: rgba(146, 177, 149, .18);--dx-accent-soft: rgba(146, 177, 149, .1);--dx-accent-strong: #657967}.pgg-root{--brand: var(--dx-accent, #92b195);--ink: var(--dx-text, #3b463d);--mut: var(--dx-muted, #6d766e);--line: var(--dx-line, #d1d4cd);--card: var(--dx-elevated, #fff);--bg: var(--dx-surface, #f3f3f1);width:100%;box-sizing:border-box;color:var(--ink);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;padding:16px}.filters{display:flex;flex-direction:column;gap:12px;margin-bottom:16px;padding-block:18px 8px;min-height:190px}.pgg-search{display:flex;justify-content:center}.pgg-search--repel{gap:10px;align-items:center;flex-wrap:wrap;justify-content:space-between;width:100%;max-width:600px;margin-inline:auto}.pgg-search--repel>:first-child{flex:1 1 320px;min-width:0}.pgg-exact{flex:none}.filters__toggle{background:var(--dx-elevated, #fff);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:500;color:var(--dx-text, #3b463d);padding:7px 12px;display:inline-flex;align-items:center;gap:7px;margin-inline:auto;transition:background-color .15s ease,border-color .15s ease}.filters__toggle:hover{background:var(--dx-accent-weak, rgba(146,177,149,.18));border-color:var(--dx-accent, #92b195)}.filters__toggle:focus-visible{outline:2px solid var(--dx-accent, #92b195);outline-offset:2px}.filters__toggle-icon{color:var(--dx-accent, #92b195);flex:none}.filters__toggle-count{background:var(--dx-accent, #92b195);color:#fff;border-radius:999px;min-width:18px;padding:0 5px;font-size:.75rem;line-height:18px;text-align:center}.filters__toggle[aria-expanded=true] svg{transform:rotate(180deg)}.filters__panel{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:flex-start}.filter-toggle{padding:6px 12px;cursor:pointer;font-size:.875rem;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:8px;transition:border-color .15s ease,background .15s ease}.filter-toggle:hover{border-color:var(--brand)}.filter-toggle[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--brand);color:var(--ink)}.filters__active{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center}.filter-chip{display:inline-flex;gap:6px;align-items:center;background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));color:var(--ink);border:1px solid var(--line);border-radius:100px;padding:4px 12px;font-size:.85rem}.filter-chip__remove{background:none;border:none;cursor:pointer;font-size:1.1em;line-height:1;color:inherit;padding:0;display:inline-flex;align-items:center}.filter-chip__remove:hover{opacity:.7}.filters__clear-all{background:none;border:none;cursor:pointer;font-size:.875rem;color:var(--ink);text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:4px}.repel{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.font-size-sm{font-size:.875rem;color:var(--mut)}.grid.uupgs-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.card.uupg__card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 1px 2px #0000000a}.uupg__image{width:100%;aspect-ratio:1 / 1;object-fit:cover;background:var(--line)}.uupg__header{padding:12px 14px 6px}.uupg__name{font-size:1rem;font-weight:700;line-height:1.2;margin:0 0 4px}.uupg__country{font-size:.85rem;color:var(--mut);margin:0}.uupg__country-link{color:var(--ink);font-weight:600;text-decoration:underline;text-decoration-color:var(--brand);text-decoration-thickness:1px;text-underline-offset:2px}.uupg__country-link:hover{text-decoration-thickness:2px}.uupg__match{font-size:.8rem;color:var(--mut);margin:4px 0 0}.uupg__content{padding:0 14px;font-size:.85rem;color:var(--mut)}.uupg__more-button{margin:12px 14px 14px;padding:8px 12px;text-align:center;font-size:.85rem;font-weight:700;color:var(--dx-elevated, #fff);background:var(--dx-accent-strong, #657967);border-radius:8px;text-decoration:none}.uupg__more-button:hover{background:var(--dx-text, #3b463d)}.search-highlight{background:#fde68a;border-radius:2px;padding:0 1px}.loading,.pgg-empty{grid-column:1 / -1;padding:28px;text-align:center;color:var(--mut);font-size:.9rem}.pgg-failed{font-weight:600;border-top:1px solid var(--bd, #d1d4cd)}.pgg-loadmore{display:block;margin:20px auto 0;padding:8px 18px;font-size:.9rem;cursor:pointer;color:var(--ink);background:var(--card);border:1px solid var(--brand);border-radius:8px}.pgg-loadmore:hover{background:var(--dx-accent-soft, rgba(146, 177, 149, .1))}",$x={class:"pgg-root"},_x={key:0,class:"pgg-search pgg-search--repel"},yx=["data-active"],vx=["aria-expanded"],wx={key:0,class:"filters__toggle-count"},xx={key:2,class:"filters__panel"},kx={key:3,class:"filters__active"},Lx=["onClick"],Ax={class:"pgg-body"},Sx={key:0,class:"repel"},Px={class:"font-size-sm"},Ex={key:1},Cx={id:"results",class:"grid uupgs-list"},Tx=["src","alt"],Rx={class:"uupg__header"},Nx=["innerHTML"],Ox={key:0,class:"uupg__country"},Fx=["href"],Mx=["innerHTML"],Ix=["innerHTML"],Dx=["innerHTML"],jx={key:1,class:"uupg__content"},zx=["href"],Gx={key:0,class:"loading"},Ux={key:1,class:"pgg-empty pgg-failed",role:"status"},Bx={key:2,class:"pgg-empty"},Vx=kn(Object.assign({inheritAttrs:!1},{__name:"people-groups-grid",props:{profileConfig:{type:String,default:""},prayBaseUrl:{type:String,default:""},languageCode:{type:String,default:""},researchUrl:{type:String,default:""},selectUrl:{type:String,default:""},t:{type:Object,default:()=>({})},showSearch:{type:[Boolean,String],default:!0},showFilters:{type:[Boolean,String],default:!0},showTotal:{type:[Boolean,String],default:!0},query:{type:String,default:""},wagfRegion:{type:String,default:""},wagfBlock:{type:String,default:""},rop1:{type:String,default:""},religion:{type:String,default:""},countryCode:{type:String,default:""},primaryLanguage:{type:String,default:""},cluster:{type:String,default:""},peopleGroup:{type:String,default:""},engagementStatus:{type:String,default:""},gospelAccess:{type:String,default:""},religionFamily:{type:String,default:""},languageFamily:{type:String,default:""},perPage:{type:Number,default:24},morePerPage:{type:Number,default:0}},emits:["groups-filtered"],setup(e,{emit:t}){const o=e,n=t,a=re(()=>{if(!o.profileConfig)return{};try{return JSON.parse(o.profileConfig)||{}}catch{return{}}}),s=re(()=>!p.value&&!g.value?null:{backgroundImage:`url(${Uu(a.value)}/images/worldmap.svg)`,backgroundSize:"60%",backgroundPosition:"top center",backgroundRepeat:"no-repeat"}),r=re(()=>o.prayBaseUrl||a.value.prayBaseUrl||"https://pray.doxa.life"),i=re(()=>o.languageCode||a.value.languageCode||""),l=re(()=>o.researchUrl||a.value.researchUrl||(typeof window<"u"&&window.DOXA_SITE_URL||"https://doxa.life").replace(/\/+$/,"")+"/research/"),c=re(()=>{const v={...a.value.t||{},...o.t||{}},E=a.value.locale||a.value.lang||void 0;return new Proxy(v,{get(q,W){if(W in q)return q[W];if(typeof W=="string")return Se("grid."+W,E)}})}),u=v=>!(v===!1||v==="false"||v==="0"||v===0),p=re(()=>u(o.showSearch)),g=re(()=>u(o.showFilters)),y=re(()=>u(o.showTotal)),A=de([]),k=de([]),S=de(0),C=de(1),f=de(!0),b=de(!1),d=de(!0),$=de({}),L=de(""),w=de({}),F=re(()=>p.value?L.value:o.query||""),U=re(()=>{const v={},E=q=>q;return o.wagfRegion&&(v.wagf_region={value:o.wagfRegion,label:E(o.wagfRegion)}),o.wagfBlock&&(v.wagf_block={value:o.wagfBlock,label:E(o.wagfBlock)}),o.rop1&&(v.rop1={value:o.rop1,label:E(o.rop1)}),o.religion&&(v.religion={value:o.religion,label:E(o.religion)}),o.countryCode&&(v.country_code={value:o.countryCode,label:E(o.countryCode)}),o.primaryLanguage&&(v.primary_language={value:o.primaryLanguage,label:E(o.primaryLanguage)}),o.engagementStatus&&(v.engagement_status={value:o.engagementStatus,label:E(o.engagementStatus)}),o.cluster&&(v.imb_reg_of_people_2={value:o.cluster,label:E(o.cluster)}),o.peopleGroup&&(v.imb_reg_of_people_25={value:o.peopleGroup,label:E(o.peopleGroup)}),o.gospelAccess&&(v.imb_gsec={value:o.gospelAccess,label:E(o.gospelAccess)}),o.religionFamily&&(v.__religion_family={value:o.religionFamily,label:E(o.religionFamily)}),o.languageFamily&&(v.__language_family={value:o.languageFamily,label:E(o.languageFamily)}),v}),ne=re(()=>g.value?w.value:U.value);lt(()=>o.wagfRegion,v=>{if(!g.value)return;const E=w.value.wagf_region;if(v){if(E&&E.value===v)return;const q=($.value&&$.value.wagf_region||[]).find(W=>W.value===v);w.value={...w.value,wagf_region:{value:v,label:q&&q.label||v}}}else if(E){const q={...w.value};delete q.wagf_region,w.value=q}}),lt(()=>o.religionFamily,v=>{if(!g.value)return;const E=w.value.__religion_family;if(v){if(E&&ge(E.value)===ge(v))return;w.value={...w.value,__religion_family:{value:v,label:v}}}else if(E){const q={...w.value};delete q.__religion_family,w.value=q}}),lt(()=>o.primaryLanguage,v=>{if(!g.value)return;const E=w.value.primary_language;if(v){if(E&&ge(E.value)===ge(v))return;w.value={...w.value,primary_language:{value:v,label:v}}}else if(E){const q={...w.value};delete q.primary_language,w.value=q}});const z=re(()=>Object.values(ne.value||{}).filter(v=>v&&v.value!==""&&v.value!=null).length),Y=re(()=>Object.keys(ne.value).length),fe=re(()=>z.value>0||!!(F.value||"").trim());function M(v){return v.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Q(v,E=500){let q;return(...W)=>{clearTimeout(q),q=setTimeout(()=>v(...W),E)}}const X=Q(()=>{f.value=!0,C.value=1,_()},500);function B(v){L.value=(v==null?void 0:v.value)??"",X()}function se(){d.value=!d.value}function I(v){w.value={...w.value,[v.name]:{value:v.value,label:v.label}},C.value=1,_()}function O(v){V(v.name)}function V(v){const E={...w.value};delete E[v],w.value=E,C.value=1,_()}function D(){w.value={},C.value=1,_()}function ae(){if(w.value.exact)return V("exact");w.value={...w.value,exact:{value:"yes",label:c.value.exact_filter||"Exact"}},C.value=1,_()}const ge=v=>String(v??"").toLowerCase().replace(/[\s_&-]+/g,""),ke={__religion_family:v=>{const E=v.religion&&typeof v.religion=="object"?v.religion.value:v.religion,q=String(E||"").charAt(0).toUpperCase(),W=q&&ko[q]?ko[q]:"";return W?{value:W,label:W}:null},__language_family:v=>{const E=v.imb_language_family,q=E&&typeof E=="object"?E.label||E.value:E;let W="";if(q)W=$n(q);else{const T=v.primary_language&&typeof v.primary_language=="object"?v.primary_language.value:null,j=T&&cd[T];W=j?$n(j):""}return W?{value:W,label:W}:null}},be=(v,E)=>ke[E]?ke[E](v):v[E];function $e(v,E){if(!v)return!1;const q=ge(E==null?void 0:E.value);return q?ge(v.value)===q||ge(v.label)===q:!1}function Pe(v){let E=v;for(const[q,W]of Object.entries(ne.value))q==="exact"?E=E:E=E.filter(T=>$e(be(T,q),W));return E}function ce(){const v=E=>{const q=new Map;for(const W of A.value){const T=W[E];if(!(T!=null&&T.value))continue;const j=q.get(T.value);j?j.count++:q.set(T.value,{label:T.label,count:1})}return Array.from(q.entries()).map(([W,{label:T,count:j}])=>({value:W,label:T,count:j})).sort((W,T)=>W.label.localeCompare(T.label))};$.value={wagf_region:v("wagf_region"),wagf_block:v("wagf_block"),rop1:v("rop1"),religion:v("religion")}}function _e(){const v=Object.keys($.value),E={};for(const q of v){const W={};for(const[ie,we]of Object.entries(ne.value))ie!==q&&(W[ie]=we);const T=xe(W,A.value),j=new Map;for(const ie of T){const we=ie[q];we!=null&&we.value&&j.set(we.value,(j.get(we.value)??0)+1)}E[q]=($.value[q]??[]).map(ie=>({...ie,count:j.get(ie.value)??0}))}$.value=E}function xe(v,E){let q=E;for(const[W,T]of Object.entries(v))W!=="exact"&&(q=q.filter(j=>$e(be(j,W),T)));return q}function _(){A.value=A.value.map(j=>(j.matches=[],j.country_label="",j.rop1_label="",j));const E=Object.keys(ne.value).length>0?Pe(A.value):A.value,q=F.value;if(!q){k.value=E,S.value=k.value.length,f.value=!1,_e(),G();return}const T=new Zy(E,{includeMatches:!0,ignoreLocation:!0,minMatchCharLength:3,threshold:ne.value.exact?0:.4,keys:["name","imb_alternate_name","country_code.label","rop1.label","religion.label","wagf_region.label","wagf_block.label"]}).search(q);k.value=T.map(j=>{var we;const ie={...j.item};if(!j.matches)return ie;ie.matches=[];for(const Ne of j.matches){const Ve=Ne.key;if(!Ve)continue;let Ke="";if(String(Ve).includes(".")){const[ft,bt]=String(Ve).split(".");Ke=(we=ie[ft])==null?void 0:we[bt]}else Ke=ie[String(Ve)];if(Ke&&typeof Ke=="string"){let ft=0,bt="";if(Ne.indices.forEach((K,me)=>{const ve=K[0],Ie=K[1],Ge=Ne.indices.length-1===me;bt+=M(Ke.slice(ft,ve))+`${M(Ke.slice(ve,Ie+1))}`+(Ge?M(Ke.slice(Ie+1)):""),ft=Ie+1}),String(Ve).includes("imb_alternate_name"))ie.matches.push({key:c.value.alternate_name??"Also known as",label:bt});else if(String(Ve).includes(".")){const[K]=String(Ve).split("."),me={religion:c.value.religion,country_code:c.value.country,rop1:c.value.rop1,wagf_region:c.value.wagf_region,wagf_block:c.value.wagf_block};K==="rop1"?ie.rop1_label=bt:K==="country_code"?ie.country_label=bt:K==="wagf_region"||ie.matches.push({key:me[K]??K,label:bt})}else ie[String(Ve)]=bt}}return ie}),S.value=k.value.length,f.value=!1,_e(),G()}const P=Ro();function x(){var E,q;const v=((E=P==null?void 0:P.vnode)==null?void 0:E.el)||((q=P==null?void 0:P.proxy)==null?void 0:q.$el);try{const W=v&&v.getRootNode&&v.getRootNode();if(W&&W.host)return W.host}catch{}return v}function G(){const v={query:F.value,activeFilters:ne.value,total:S.value,slugs:k.value.map(q=>q.slug)};n("groups-filtered",v);const E=x();E&&typeof E.dispatchEvent=="function"&&E.dispatchEvent(new CustomEvent("groups-filtered",{detail:v,bubbles:!0,composed:!0}))}function ee(){return o.morePerPage>0?S.value>o.perPage+(C.value-1)*o.morePerPage&&!f.value&&k.value.length>0:S.value>C.value*o.perPage&&!f.value&&k.value.length>0}function te(){C.value=C.value+1}const le=re(()=>o.morePerPage>0?k.value.slice(0,o.perPage+(C.value-1)*o.morePerPage):k.value.slice(0,C.value*o.perPage)),oe=re(()=>ee());async function h(){const v=`${r.value}/api/people-groups/list?fields=name,slug,wagf_region,wagf_block,country_code,rop1,religion,has_photo,image_url,adopted_by_churches,imb_alternate_name,engagement_status,people_committed,primary_language,imb_reg_of_people_2,imb_reg_of_people_25,imb_gsec,imb_language_family&lang=${i.value}`;f.value=!0,b.value=!1;try{const E=await fetch(v);if(!E.ok)throw new Error(`HTTP ${E.status}`);const q=await E.json();S.value=q.total,A.value=Array.isArray(q.posts)?q.posts:[],ce(),_()}catch(E){console.error("[people-groups-grid] fetch error:",E),b.value=!0,A.value=[],f.value=!1}}lt(()=>[o.query,U.value,p.value,g.value],()=>{C.value=1,_()});function m(v){const E=new Set;for(const q of A.value||[]){const W=be(q,v),T=W&&typeof W=="object"?W.label:W;typeof T=="string"&&T&&E.add(T)}return[...E].sort()}return yt(()=>{const v=x();v&&(v.__vocabulary=m),typeof window<"u"&&(window.__peopleGroupsGridVocabulary=m),h()}),(v,E)=>{var q,W,T,j;return H(),Z("div",$x,[p.value||g.value?(H(),Z("div",{key:0,id:"filters",class:"filters",style:rt(s.value)},[p.value?(H(),Z("div",_x,[Ue(Ur,{"model-value":L.value,placeholder:c.value.search||"Search people groups…","aria-label":c.value.search||"Search people groups","max-width":"480px",onSearch:B},null,8,["model-value","placeholder","aria-label"]),g.value?(H(),Z("button",{key:0,class:"filter-toggle pgg-exact",type:"button","data-active":ne.value.exact?"":void 0,onClick:ae},ue(c.value.exact_filter||"Exact"),9,yx)):Fe("",!0)])):Fe("",!0),g.value?(H(),Z("button",{key:1,class:"filters__toggle",type:"button","aria-expanded":d.value,onClick:se},[E[0]||(E[0]=R("svg",{class:"filters__toggle-icon",width:"13",height:"13",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},[R("path",{d:"M1.5 2.5h9M3 6h6M4.5 9.5h3",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round"})],-1)),ct(" "+ue(d.value?c.value.hide_filters||"Hide Filters":c.value.show_filters||"Show Filters")+" ",1),z.value?(H(),Z("span",wx,ue(z.value),1)):Fe("",!0),E[1]||(E[1]=R("svg",{width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[R("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,vx)):Fe("",!0),g.value&&d.value?(H(),Z("div",xx,[Ue(ua,{label:c.value.wagf_region||"Region",name:"wagf_region",options:$.value.wagf_region||[],value:((q=ne.value.wagf_region)==null?void 0:q.value)??"",placeholder:c.value.type_to_search||"Type to search...",onFilterChange:I,onFilterClear:O},null,8,["label","options","value","placeholder"]),Ue(ua,{label:c.value.wagf_block||"Bloc",name:"wagf_block",options:$.value.wagf_block||[],value:((W=ne.value.wagf_block)==null?void 0:W.value)??"",placeholder:c.value.type_to_search||"Type to search...",onFilterChange:I,onFilterClear:O},null,8,["label","options","value","placeholder"]),Ue(ua,{label:c.value.rop1||"People Group",name:"rop1",options:$.value.rop1||[],value:((T=ne.value.rop1)==null?void 0:T.value)??"",placeholder:c.value.type_to_search||"Type to search...",onFilterChange:I,onFilterClear:O},null,8,["label","options","value","placeholder"]),Ue(ua,{label:c.value.religion||"Religion",name:"religion",options:$.value.religion||[],value:((j=ne.value.religion)==null?void 0:j.value)??"",placeholder:c.value.type_to_search||"Type to search...",onFilterChange:I,onFilterClear:O},null,8,["label","options","value","placeholder"])])):Fe("",!0),g.value&&Y.value>0?(H(),Z("div",kx,[(H(!0),Z(Ce,null,et(ne.value,(ie,we)=>(H(),Z("span",{key:we,class:"filter-chip"},[ct(ue(ie.label)+" ",1),R("button",{class:"filter-chip__remove",type:"button",onClick:Ne=>V(String(we))},"×",8,Lx)]))),128)),R("button",{class:"filters__clear-all",type:"button",onClick:D},ue(c.value.clear_all||"Clear All"),1)])):Fe("",!0)],4)):Fe("",!0),R("div",Ax,[y.value||fe.value?(H(),Z("div",Sx,[R("div",Px,[f.value?(H(),Z("span",Ex," ")):(H(),Z(Ce,{key:0},[ct(ue(fe.value&&!y.value?(c.value.showing||"Showing")+" "+S.value.toLocaleString("en-US"):(c.value.total||"Total")+": "+S.value.toLocaleString("en-US")),1)],64))])])):Fe("",!0),R("div",Cx,[(H(!0),Z(Ce,null,et(le.value,ie=>(H(),Z("div",{key:ie.slug,class:"card uupg__card"},[ie.image_url?(H(),Z("img",{key:0,class:"uupg__image",src:ie.image_url,alt:ie.name},null,8,Tx)):Fe("",!0),R("div",Rx,[R("h3",{class:"uupg__name",innerHTML:ie.name},null,8,Nx),ie.country_code?(H(),Z("p",Ox,[R("a",{class:"uupg__country-link",href:`${l.value}../countries/${he(mx)(ie.country_code.value,ie.country_code.label)}`},[R("span",{innerHTML:ie.country_label?ie.country_label:ie.country_code.label},null,8,Mx)],8,Fx),ie.rop1?(H(),Z(Ce,{key:0},[E[2]||(E[2]=ct(" (",-1)),R("span",{innerHTML:ie.rop1_label?ie.rop1_label:ie.rop1.label},null,8,Ix),E[3]||(E[3]=ct(")",-1))],64)):Fe("",!0)])):Fe("",!0),ie.matches?(H(!0),Z(Ce,{key:1},et(ie.matches,(we,Ne)=>(H(),Z("p",{key:Ne,class:"uupg__match"},[R("strong",null,ue(we.key),1),E[4]||(E[4]=ct(": ",-1)),R("span",{innerHTML:we.label},null,8,Dx)]))),128)):Fe("",!0)]),ie.location_description?(H(),Z("p",jx,ue(ie.location_description),1)):Fe("",!0),R("a",{class:"uupg__more-button",href:`${l.value}${ie.slug}`},ue(c.value.full_profile||"Full profile"),9,zx)]))),128)),f.value?(H(),Z("div",Gx,ue(c.value.loading||"Loading…"),1)):b.value?(H(),Z("div",Ux,ue(c.value.load_failed||"People-group data could not be loaded. This is a connection problem, not your filter."),1)):le.value.length?Fe("",!0):(H(),Z("div",Bx,ue(c.value.no_results||"No people groups match this filter."),1))]),oe.value?(H(),Z("button",{key:1,class:"pgg-loadmore",type:"button",onClick:te},ue(c.value.load_more||"Load more"),1)):Fe("",!0)])])}}}),[["styles",[bx]]]),qx=":host{display:block;width:100%}",Wx="dashboard-plus-grid/dashboard-plus-grid/index.html",Hx=kn(Object.assign({inheritAttrs:!1},{__name:"dashboard-plus-grid",props:{profileConfig:{type:[String,Object],default:null}},setup(e){const t={wagf_region:"wagfRegion",wagf_block:"wagfBlock",affinity_bloc:"rop1",religion:"religion",country_code:"countryCode",primary_language:"primaryLanguage",engagement_status:"engagementStatus",cluster:"cluster",people_group:"peopleGroup",gospel_access:"gospelAccess",religion_family:"religionFamily",language_family:"languageFamily"},o=Uo({query:"",wagfRegion:"",wagfBlock:"",rop1:"",religion:"",countryCode:"",primaryLanguage:"",engagementStatus:"",cluster:"",peopleGroup:"",gospelAccess:"",religionFamily:"",languageFamily:""});function n({filterSet:g={},searchTerm:y=""}={}){o.query=y||"";for(const A of Object.values(t))o[A]="";for(const[A,k]of Object.entries(g)){const S=t[A];S&&(o[S]=k==null?"":String(k))}}const a=e,s=re(()=>{const g=a.profileConfig;if(!g)return{};if(typeof g=="object")return g;try{return JSON.parse(g)}catch{return{}}}),r=re(()=>{var y;const g=(y=s.value)==null?void 0:y.tk;return typeof g=="string"&&g?g:""});r.value&&Vu(r.value);const i=re(()=>{var y;const g=(y=s.value)==null?void 0:y.provider;return g==="maplibre"||g==="mapbox"?g:""}),l=Ay(),c=re(()=>r.value||l.value||"");oo("mapboxToken",c);const u=Gu(null);oo("profileConfig",re(()=>({profile:"research-dashboard",layout:"page-scroll",shareUrl:(u?u.replace(/\/+$/,"")+"/":"")+Wx,...r.value?{tk:r.value}:{},...i.value?{provider:i.value}:{}})));const p=[{key:"dashboard"},{key:"grid"}];return(g,y)=>(H(),To(Wy,{sections:p},{"section-dashboard":Eo(()=>[Ue(hx,{onDashboardFilter:n})]),"section-grid":Eo(()=>[Ue(Vx,{query:o.query,"wagf-region":o.wagfRegion,"wagf-block":o.wagfBlock,rop1:o.rop1,religion:o.religion,"country-code":o.countryCode,"primary-language":o.primaryLanguage,"engagement-status":o.engagementStatus,cluster:o.cluster,"people-group":o.peopleGroup,"gospel-access":o.gospelAccess,"religion-family":o.religionFamily,"language-family":o.languageFamily,"show-search":!1,"show-filters":!1,"show-total":!1},null,8,["query","wagf-region","wagf-block","rop1","religion","country-code","primary-language","engagement-status","cluster","people-group","gospel-access","religion-family","language-family"])]),_:1}))}}),[["styles",[qx]]]);cy({"./affinity-block.js":{default:$y},"./doxa-region.js":{default:wy}}),Cu();const Kx=Cg(Hx,{configureApp(e){e.use(Ug());const t=V_();e.use(t),e.provide("appI18n",t)}});typeof customElements<"u"&&(customElements.get("dashboard-plus-grid")||customElements.define("dashboard-plus-grid",Kx))})(); +`,"rd-shell-layout"),yt(()=>{const se=A.value&&A.value.getRootNode&&A.value.getRootNode().host;if(!se)return;const he=ve=>se.setAttribute("data-page-scroll",ve?"true":"false");he(fe(a)),it(()=>fe(a),he)}),(se,he)=>(H(),Z("div",{ref_key:"shell",ref:A,class:qe(["rd-shell",{"rd-narrow":fe(k),"rd-slim-rail":fe(S),"rd-slim-facet":fe(C),"rd-table-collapsed":fe(d),"rd-facet-collapsed":fe($),"rd-rail-collapsed":fe(L),"rd-page-scroll":a.value}]),"data-row-count":fe(p),"data-loading":fe(g)?"1":"0","data-error":fe(y)||"","data-narrow":fe(k)?"1":"0"},[Ue(fe(g0)),Ue(fe(nx)),R("div",sx,[(H(!0),Z(Ce,null,et(fe(i),ve=>(H(),Z("div",{class:"kpi",key:ve.id},[R("span",{class:"n","data-kpi":ve.id},ue(ve.kind==="count"&&fe(g)?"…":I(ve)),9,rx),R("span",ix,ue(ve.label),1),ve.delta?(H(),Z("span",lx,"↓"+ue(fe(Xu)(ve.delta)),1)):Fe("",!0)]))),128))]),Mt(Ue(fe(T0),null,null,512),[[Vt,fe(F)]]),Mt(R("div",cx,[Ue(fe(Mw)),fe(k)?Fe("",!0):(H(),Z("button",{key:0,class:"rd-edge-caret rd-edge-facet",type:"button","data-toggle-facet":"",title:fe($)?"Show filters":"Hide filters — grow the map",onClick:xe},ue(fe($)?"▸":"◂"),9,ux)),fe(k)?Fe("",!0):(H(),Z("button",{key:1,class:"rd-edge-caret rd-edge-rail",type:"button","data-toggle-rail":"",title:fe(L)?"Show charts":"Hide charts — grow the map",onClick:Se},ue(fe(L)?"◂":"▸"),9,dx))],512),[[Vt,fe(D)]]),Mt(R("div",px,[Ue(fe(t1))],512),[[Vt,fe(ne)]]),Mt(R("aside",gx,[Ue(fe(q1)),Ue(fe(_1))],512),[[Vt,fe(B)]]),Mt(R("div",{class:"rd-rz rd-rz-facet","data-resize":"facet",role:"separator","aria-orientation":"vertical",tabindex:"0",title:"Drag or use arrow keys to resize the filters rail","aria-label":"Resize filters rail","aria-valuenow":fe(z),"aria-valuemin":"160","aria-valuemax":"420",onPointerdown:he[0]||(he[0]=(...ve)=>fe(Y)&&fe(Y)(...ve)),onKeydown:he[1]||(he[1]=ve=>fe(K)("facet",ve))},null,40,fx),[[Vt,!fe(k)&&!fe($)]]),Mt(R("div",{class:"rd-rz rd-rz-rail","data-resize":"rail",role:"separator","aria-orientation":"vertical",tabindex:"0",title:"Drag or use arrow keys to resize the charts rail","aria-label":"Resize charts rail","aria-valuenow":fe(re),"aria-valuemin":"200","aria-valuemax":"520",onPointerdown:he[2]||(he[2]=(...ve)=>fe(pe)&&fe(pe)(...ve)),onKeydown:he[3]||(he[3]=ve=>fe(K)("rail",ve))},null,40,hx),[[Vt,!fe(k)&&!fe(L)]]),Mt(R("div",{class:"rd-rz rd-rz-table","data-resize":"table",role:"separator","aria-orientation":"horizontal",tabindex:"0",title:a.value?"Drag or use arrow keys to resize the map/table split":"Drag or use arrow keys to resize the table","aria-label":a.value?"Resize map/table split":"Resize table height","aria-valuenow":a.value?fe(O):parseFloat(fe(j))||34,"aria-valuemin":a.value?220:12,"aria-valuemax":a.value?1400:70,onPointerdown:he[4]||(he[4]=(...ve)=>fe(M)&&fe(M)(...ve)),onKeydown:he[5]||(he[5]=ve=>fe(K)("table",ve))},null,40,mx),[[Vt,!fe(k)&&!fe(d)]]),Mt(R("div",{class:"rd-rz rd-rz-shell","data-resize":"shell",role:"separator","aria-orientation":"horizontal",tabindex:"0",title:"Drag or use arrow keys to resize the dashboard's height","aria-label":"Resize dashboard height","aria-valuenow":fe(V),"aria-valuemin":"400","aria-valuemax":"2600",onPointerdown:he[6]||(he[6]=(...ve)=>fe(ee)&&fe(ee)(...ve)),onKeydown:he[7]||(he[7]=ve=>fe(K)("shell",ve))},null,40,bx),[[Vt,!fe(k)&&a.value]]),R("div",{class:"rd-seg","data-segmented":"",onClick:he[8]||(he[8]=(...ve)=>fe(w)&&fe(w)(...ve))},[(H(!0),Z(Ce,null,et(fe(b),ve=>(H(),Z("button",{key:ve.k,class:qe({on:fe(f)===ve.k}),"data-view-btn":"","data-view":ve.k},ue(ve.l),11,$x))),128))]),ae.value?(H(),Z("div",{key:0,class:"rd-exportbar","data-export-bar":"",onClick:ye},[R("b",null,ue(ae.value)+" selected",1),he[9]||(he[9]=R("span",{class:"sp"},null,-1)),he[10]||(he[10]=R("button",{class:"x-clr","data-bar-clear":""},"Clear",-1)),he[11]||(he[11]=R("button",{class:"x-go","data-bar-export":""},"Export CSV ↓",-1))])):Fe("",!0)],10,ax))}};function yx(e,t){return String(t||e||"").trim().toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}const vx=":host{display:block;width:100%;--dx-surface: #f3f3f1;--dx-elevated: #ffffff;--dx-text: #3b463d;--dx-muted: #6d766e;--dx-line: #d1d4cd;--dx-accent: #92b195;--dx-accent-weak: rgba(146, 177, 149, .18);--dx-accent-soft: rgba(146, 177, 149, .1);--dx-accent-strong: #657967}.pgg-root{--brand: var(--dx-accent, #92b195);--ink: var(--dx-text, #3b463d);--mut: var(--dx-muted, #6d766e);--line: var(--dx-line, #d1d4cd);--card: var(--dx-elevated, #fff);--bg: var(--dx-surface, #f3f3f1);width:100%;box-sizing:border-box;color:var(--ink);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;padding:16px}.filters{display:flex;flex-direction:column;gap:12px;margin-bottom:16px;padding-block:18px 8px;min-height:190px}.pgg-search{display:flex;justify-content:center}.pgg-search--repel{gap:10px;align-items:center;flex-wrap:wrap;justify-content:space-between;width:100%;max-width:600px;margin-inline:auto}.pgg-search--repel>:first-child{flex:1 1 320px;min-width:0}.pgg-exact{flex:none}.filters__toggle{background:var(--dx-elevated, #fff);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:500;color:var(--dx-text, #3b463d);padding:7px 12px;display:inline-flex;align-items:center;gap:7px;margin-inline:auto;transition:background-color .15s ease,border-color .15s ease}.filters__toggle:hover{background:var(--dx-accent-weak, rgba(146,177,149,.18));border-color:var(--dx-accent, #92b195)}.filters__toggle:focus-visible{outline:2px solid var(--dx-accent, #92b195);outline-offset:2px}.filters__toggle-icon{color:var(--dx-accent, #92b195);flex:none}.filters__toggle-count{background:var(--dx-accent, #92b195);color:#fff;border-radius:999px;min-width:18px;padding:0 5px;font-size:.75rem;line-height:18px;text-align:center}.filters__toggle[aria-expanded=true] svg{transform:rotate(180deg)}.filters__panel{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:flex-start}.filter-toggle{padding:6px 12px;cursor:pointer;font-size:.875rem;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:8px;transition:border-color .15s ease,background .15s ease}.filter-toggle:hover{border-color:var(--brand)}.filter-toggle[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--brand);color:var(--ink)}.filters__active{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center}.filter-chip{display:inline-flex;gap:6px;align-items:center;background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));color:var(--ink);border:1px solid var(--line);border-radius:100px;padding:4px 12px;font-size:.85rem}.filter-chip__remove{background:none;border:none;cursor:pointer;font-size:1.1em;line-height:1;color:inherit;padding:0;display:inline-flex;align-items:center}.filter-chip__remove:hover{opacity:.7}.filters__clear-all{background:none;border:none;cursor:pointer;font-size:.875rem;color:var(--ink);text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:4px}.repel{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.font-size-sm{font-size:.875rem;color:var(--mut)}.grid.uupgs-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.card.uupg__card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 1px 2px #0000000a}.uupg__image{width:100%;aspect-ratio:1 / 1;object-fit:cover;background:var(--line)}.uupg__header{padding:12px 14px 6px}.uupg__name{font-size:1rem;font-weight:700;line-height:1.2;margin:0 0 4px}.uupg__country{font-size:.85rem;color:var(--mut);margin:0}.uupg__country-link{color:var(--ink);font-weight:600;text-decoration:underline;text-decoration-color:var(--brand);text-decoration-thickness:1px;text-underline-offset:2px}.uupg__country-link:hover{text-decoration-thickness:2px}.uupg__match{font-size:.8rem;color:var(--mut);margin:4px 0 0}.uupg__content{padding:0 14px;font-size:.85rem;color:var(--mut)}.uupg__more-button{margin:12px 14px 14px;padding:8px 12px;text-align:center;font-size:.85rem;font-weight:700;color:var(--dx-elevated, #fff);background:var(--dx-accent-strong, #657967);border-radius:8px;text-decoration:none}.uupg__more-button:hover{background:var(--dx-text, #3b463d)}.search-highlight{background:#fde68a;border-radius:2px;padding:0 1px}.loading,.pgg-empty{grid-column:1 / -1;padding:28px;text-align:center;color:var(--mut);font-size:.9rem}.pgg-failed{font-weight:600;border-top:1px solid var(--bd, #d1d4cd)}.pgg-loadmore{display:block;margin:20px auto 0;padding:8px 18px;font-size:.9rem;cursor:pointer;color:var(--ink);background:var(--card);border:1px solid var(--brand);border-radius:8px}.pgg-loadmore:hover{background:var(--dx-accent-soft, rgba(146, 177, 149, .1))}",wx={class:"pgg-root"},xx={key:0,class:"pgg-search pgg-search--repel"},kx=["data-active"],Lx=["aria-expanded"],Ax={key:0,class:"filters__toggle-count"},Sx={key:2,class:"filters__panel"},Px={key:3,class:"filters__active"},Ex=["onClick"],Cx={class:"pgg-body"},Tx={key:0,class:"repel"},Rx={class:"font-size-sm"},Nx={key:1},Ox={id:"results",class:"grid uupgs-list"},Fx=["src","alt"],Mx={class:"uupg__header"},Ix=["innerHTML"],Dx={key:0,class:"uupg__country"},jx=["href"],zx=["innerHTML"],Gx=["innerHTML"],Ux=["innerHTML"],Bx={key:1,class:"uupg__content"},Vx=["href"],qx={key:0,class:"loading"},Wx={key:1,class:"pgg-empty pgg-failed",role:"status"},Hx={key:2,class:"pgg-empty"},Kx=kn(Object.assign({inheritAttrs:!1},{__name:"people-groups-grid",props:{profileConfig:{type:String,default:""},prayBaseUrl:{type:String,default:""},languageCode:{type:String,default:""},researchUrl:{type:String,default:""},selectUrl:{type:String,default:""},t:{type:Object,default:()=>({})},showSearch:{type:[Boolean,String],default:!0},showFilters:{type:[Boolean,String],default:!0},showTotal:{type:[Boolean,String],default:!0},query:{type:String,default:""},wagfRegion:{type:String,default:""},wagfBlock:{type:String,default:""},rop1:{type:String,default:""},religion:{type:String,default:""},countryCode:{type:String,default:""},primaryLanguage:{type:String,default:""},cluster:{type:String,default:""},peopleGroup:{type:String,default:""},engagementStatus:{type:String,default:""},gospelAccess:{type:String,default:""},religionFamily:{type:String,default:""},languageFamily:{type:String,default:""},perPage:{type:Number,default:24},morePerPage:{type:Number,default:0}},emits:["groups-filtered"],setup(e,{emit:t}){const o=e,n=t,a=ie(()=>{if(!o.profileConfig)return{};try{return JSON.parse(o.profileConfig)||{}}catch{return{}}}),s=ie(()=>!p.value&&!g.value?null:{backgroundImage:`url(${Uu(a.value)}/images/worldmap.svg)`,backgroundSize:"60%",backgroundPosition:"top center",backgroundRepeat:"no-repeat"}),r=ie(()=>o.prayBaseUrl||a.value.prayBaseUrl||"https://pray.doxa.life"),i=ie(()=>o.languageCode||a.value.languageCode||""),l=ie(()=>o.researchUrl||a.value.researchUrl||(typeof window<"u"&&window.DOXA_SITE_URL||"https://doxa.life").replace(/\/+$/,"")+"/research/"),c=ie(()=>{const v={...a.value.t||{},...o.t||{}},E=a.value.locale||a.value.lang||void 0;return new Proxy(v,{get(q,W){if(W in q)return q[W];if(typeof W=="string")return Pe("grid."+W,E)}})}),u=v=>!(v===!1||v==="false"||v==="0"||v===0),p=ie(()=>u(o.showSearch)),g=ie(()=>u(o.showFilters)),y=ie(()=>u(o.showTotal)),A=de([]),k=de([]),S=de(0),C=de(1),f=de(!0),b=de(!1),d=de(!0),$=de({}),L=de(""),w=de({}),F=ie(()=>p.value?L.value:o.query||""),D=ie(()=>{const v={},E=q=>q;return o.wagfRegion&&(v.wagf_region={value:o.wagfRegion,label:E(o.wagfRegion)}),o.wagfBlock&&(v.wagf_block={value:o.wagfBlock,label:E(o.wagfBlock)}),o.rop1&&(v.rop1={value:o.rop1,label:E(o.rop1)}),o.religion&&(v.religion={value:o.religion,label:E(o.religion)}),o.countryCode&&(v.country_code={value:o.countryCode,label:E(o.countryCode)}),o.primaryLanguage&&(v.primary_language={value:o.primaryLanguage,label:E(o.primaryLanguage)}),o.engagementStatus&&(v.engagement_status={value:o.engagementStatus,label:E(o.engagementStatus)}),o.cluster&&(v.imb_reg_of_people_2={value:o.cluster,label:E(o.cluster)}),o.peopleGroup&&(v.imb_reg_of_people_25={value:o.peopleGroup,label:E(o.peopleGroup)}),o.gospelAccess&&(v.imb_gsec={value:o.gospelAccess,label:E(o.gospelAccess)}),o.religionFamily&&(v.__religion_family={value:o.religionFamily,label:E(o.religionFamily)}),o.languageFamily&&(v.__language_family={value:o.languageFamily,label:E(o.languageFamily)}),v}),ne=ie(()=>g.value?w.value:D.value);it(()=>o.wagfRegion,v=>{if(!g.value)return;const E=w.value.wagf_region;if(v){if(E&&E.value===v)return;const q=($.value&&$.value.wagf_region||[]).find(W=>W.value===v);w.value={...w.value,wagf_region:{value:v,label:q&&q.label||v}}}else if(E){const q={...w.value};delete q.wagf_region,w.value=q}}),it(()=>o.religionFamily,v=>{if(!g.value)return;const E=w.value.__religion_family;if(v){if(E&&be(E.value)===be(v))return;w.value={...w.value,__religion_family:{value:v,label:v}}}else if(E){const q={...w.value};delete q.__religion_family,w.value=q}}),it(()=>o.primaryLanguage,v=>{if(!g.value)return;const E=w.value.primary_language;if(v){if(E&&be(E.value)===be(v))return;w.value={...w.value,primary_language:{value:v,label:v}}}else if(E){const q={...w.value};delete q.primary_language,w.value=q}});const B=ie(()=>Object.values(ne.value||{}).filter(v=>v&&v.value!==""&&v.value!=null).length),Y=ie(()=>Object.keys(ne.value).length),pe=ie(()=>B.value>0||!!(F.value||"").trim());function M(v){return v.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function ee(v,E=500){let q;return(...W)=>{clearTimeout(q),q=setTimeout(()=>v(...W),E)}}const K=ee(()=>{f.value=!0,C.value=1,_()},500);function z(v){L.value=(v==null?void 0:v.value)??"",K()}function re(){d.value=!d.value}function j(v){w.value={...w.value,[v.name]:{value:v.value,label:v.label}},C.value=1,_()}function O(v){V(v.name)}function V(v){const E={...w.value};delete E[v],w.value=E,C.value=1,_()}function I(){w.value={},C.value=1,_()}function ae(){if(w.value.exact)return V("exact");w.value={...w.value,exact:{value:"yes",label:c.value.exact_filter||"Exact"}},C.value=1,_()}const be=v=>String(v??"").toLowerCase().replace(/[\s_&-]+/g,""),ke={__religion_family:v=>{const E=v.religion&&typeof v.religion=="object"?v.religion.value:v.religion,q=String(E||"").charAt(0).toUpperCase(),W=q&&ko[q]?ko[q]:"";return W?{value:W,label:W}:null},__language_family:v=>{const E=v.imb_language_family,q=E&&typeof E=="object"?E.label||E.value:E;let W="";if(q)W=$n(q);else{const T=v.primary_language&&typeof v.primary_language=="object"?v.primary_language.value:null,G=T&&dd[T];W=G?$n(G):""}return W?{value:W,label:W}:null}},xe=(v,E)=>ke[E]?ke[E](v):v[E];function Se(v,E){if(!v)return!1;const q=be(E==null?void 0:E.value);return q?be(v.value)===q||be(v.label)===q:!1}function ye(v){let E=v;for(const[q,W]of Object.entries(ne.value))q==="exact"?E=E:E=E.filter(T=>Se(xe(T,q),W));return E}function se(){const v=E=>{const q=new Map;for(const W of A.value){const T=W[E];if(!(T!=null&&T.value))continue;const G=q.get(T.value);G?G.count++:q.set(T.value,{label:T.label,count:1})}return Array.from(q.entries()).map(([W,{label:T,count:G}])=>({value:W,label:T,count:G})).sort((W,T)=>W.label.localeCompare(T.label))};$.value={wagf_region:v("wagf_region"),wagf_block:v("wagf_block"),rop1:v("rop1"),religion:v("religion")}}function he(){const v=Object.keys($.value),E={};for(const q of v){const W={};for(const[le,we]of Object.entries(ne.value))le!==q&&(W[le]=we);const T=ve(W,A.value),G=new Map;for(const le of T){const we=le[q];we!=null&&we.value&&G.set(we.value,(G.get(we.value)??0)+1)}E[q]=($.value[q]??[]).map(le=>({...le,count:G.get(le.value)??0}))}$.value=E}function ve(v,E){let q=E;for(const[W,T]of Object.entries(v))W!=="exact"&&(q=q.filter(G=>Se(xe(G,W),T)));return q}function _(){A.value=A.value.map(G=>(G.matches=[],G.country_label="",G.rop1_label="",G));const E=Object.keys(ne.value).length>0?ye(A.value):A.value,q=F.value;if(!q){k.value=E,S.value=k.value.length,f.value=!1,he(),U();return}const T=new Qy(E,{includeMatches:!0,ignoreLocation:!0,minMatchCharLength:3,threshold:ne.value.exact?0:.4,keys:["name","imb_alternate_name","country_code.label","rop1.label","religion.label","wagf_region.label","wagf_block.label"]}).search(q);k.value=T.map(G=>{var we;const le={...G.item};if(!G.matches)return le;le.matches=[];for(const Ne of G.matches){const Ve=Ne.key;if(!Ve)continue;let Ke="";if(String(Ve).includes(".")){const[ft,bt]=String(Ve).split(".");Ke=(we=le[ft])==null?void 0:we[bt]}else Ke=le[String(Ve)];if(Ke&&typeof Ke=="string"){let ft=0,bt="";if(Ne.indices.forEach((X,me)=>{const _e=X[0],Ie=X[1],Ge=Ne.indices.length-1===me;bt+=M(Ke.slice(ft,_e))+`${M(Ke.slice(_e,Ie+1))}`+(Ge?M(Ke.slice(Ie+1)):""),ft=Ie+1}),String(Ve).includes("imb_alternate_name"))le.matches.push({key:c.value.alternate_name??"Also known as",label:bt});else if(String(Ve).includes(".")){const[X]=String(Ve).split("."),me={religion:c.value.religion,country_code:c.value.country,rop1:c.value.rop1,wagf_region:c.value.wagf_region,wagf_block:c.value.wagf_block};X==="rop1"?le.rop1_label=bt:X==="country_code"?le.country_label=bt:X==="wagf_region"||le.matches.push({key:me[X]??X,label:bt})}else le[String(Ve)]=bt}}return le}),S.value=k.value.length,f.value=!1,he(),U()}const P=Ro();function x(){var E,q;const v=((E=P==null?void 0:P.vnode)==null?void 0:E.el)||((q=P==null?void 0:P.proxy)==null?void 0:q.$el);try{const W=v&&v.getRootNode&&v.getRootNode();if(W&&W.host)return W.host}catch{}return v}function U(){const v={query:F.value,activeFilters:ne.value,total:S.value,slugs:k.value.map(q=>q.slug)};n("groups-filtered",v);const E=x();E&&typeof E.dispatchEvent=="function"&&E.dispatchEvent(new CustomEvent("groups-filtered",{detail:v,bubbles:!0,composed:!0}))}function Q(){return o.morePerPage>0?S.value>o.perPage+(C.value-1)*o.morePerPage&&!f.value&&k.value.length>0:S.value>C.value*o.perPage&&!f.value&&k.value.length>0}function te(){C.value=C.value+1}const ce=ie(()=>o.morePerPage>0?k.value.slice(0,o.perPage+(C.value-1)*o.morePerPage):k.value.slice(0,C.value*o.perPage)),oe=ie(()=>Q());async function h(){const v=`${r.value}/api/people-groups/list?fields=name,slug,wagf_region,wagf_block,country_code,rop1,religion,has_photo,image_url,adopted_by_churches,imb_alternate_name,engagement_status,people_committed,primary_language,imb_reg_of_people_2,imb_reg_of_people_25,imb_gsec,imb_language_family&lang=${i.value}`;f.value=!0,b.value=!1;try{const E=await fetch(v);if(!E.ok)throw new Error(`HTTP ${E.status}`);const q=await E.json();S.value=q.total,A.value=Array.isArray(q.posts)?q.posts:[],se(),_()}catch(E){console.error("[people-groups-grid] fetch error:",E),b.value=!0,A.value=[],f.value=!1}}it(()=>[o.query,D.value,p.value,g.value],()=>{C.value=1,_()});function m(v){const E=new Set;for(const q of A.value||[]){const W=xe(q,v),T=W&&typeof W=="object"?W.label:W;typeof T=="string"&&T&&E.add(T)}return[...E].sort()}return yt(()=>{const v=x();v&&(v.__vocabulary=m),typeof window<"u"&&(window.__peopleGroupsGridVocabulary=m),h()}),(v,E)=>{var q,W,T,G;return H(),Z("div",wx,[p.value||g.value?(H(),Z("div",{key:0,id:"filters",class:"filters",style:rt(s.value)},[p.value?(H(),Z("div",xx,[Ue(Ur,{"model-value":L.value,placeholder:c.value.search||"Search people groups…","aria-label":c.value.search||"Search people groups","max-width":"480px",onSearch:z},null,8,["model-value","placeholder","aria-label"]),g.value?(H(),Z("button",{key:0,class:"filter-toggle pgg-exact",type:"button","data-active":ne.value.exact?"":void 0,onClick:ae},ue(c.value.exact_filter||"Exact"),9,kx)):Fe("",!0)])):Fe("",!0),g.value?(H(),Z("button",{key:1,class:"filters__toggle",type:"button","aria-expanded":d.value,onClick:re},[E[0]||(E[0]=R("svg",{class:"filters__toggle-icon",width:"13",height:"13",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},[R("path",{d:"M1.5 2.5h9M3 6h6M4.5 9.5h3",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round"})],-1)),ct(" "+ue(d.value?c.value.hide_filters||"Hide Filters":c.value.show_filters||"Show Filters")+" ",1),B.value?(H(),Z("span",Ax,ue(B.value),1)):Fe("",!0),E[1]||(E[1]=R("svg",{width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[R("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,Lx)):Fe("",!0),g.value&&d.value?(H(),Z("div",Sx,[Ue(ua,{label:c.value.wagf_region||"Region",name:"wagf_region",options:$.value.wagf_region||[],value:((q=ne.value.wagf_region)==null?void 0:q.value)??"",placeholder:c.value.type_to_search||"Type to search...",onFilterChange:j,onFilterClear:O},null,8,["label","options","value","placeholder"]),Ue(ua,{label:c.value.wagf_block||"Bloc",name:"wagf_block",options:$.value.wagf_block||[],value:((W=ne.value.wagf_block)==null?void 0:W.value)??"",placeholder:c.value.type_to_search||"Type to search...",onFilterChange:j,onFilterClear:O},null,8,["label","options","value","placeholder"]),Ue(ua,{label:c.value.rop1||"People Group",name:"rop1",options:$.value.rop1||[],value:((T=ne.value.rop1)==null?void 0:T.value)??"",placeholder:c.value.type_to_search||"Type to search...",onFilterChange:j,onFilterClear:O},null,8,["label","options","value","placeholder"]),Ue(ua,{label:c.value.religion||"Religion",name:"religion",options:$.value.religion||[],value:((G=ne.value.religion)==null?void 0:G.value)??"",placeholder:c.value.type_to_search||"Type to search...",onFilterChange:j,onFilterClear:O},null,8,["label","options","value","placeholder"])])):Fe("",!0),g.value&&Y.value>0?(H(),Z("div",Px,[(H(!0),Z(Ce,null,et(ne.value,(le,we)=>(H(),Z("span",{key:we,class:"filter-chip"},[ct(ue(le.label)+" ",1),R("button",{class:"filter-chip__remove",type:"button",onClick:Ne=>V(String(we))},"×",8,Ex)]))),128)),R("button",{class:"filters__clear-all",type:"button",onClick:I},ue(c.value.clear_all||"Clear All"),1)])):Fe("",!0)],4)):Fe("",!0),R("div",Cx,[y.value||pe.value?(H(),Z("div",Tx,[R("div",Rx,[f.value?(H(),Z("span",Nx," ")):(H(),Z(Ce,{key:0},[ct(ue(pe.value&&!y.value?(c.value.showing||"Showing")+" "+S.value.toLocaleString("en-US"):(c.value.total||"Total")+": "+S.value.toLocaleString("en-US")),1)],64))])])):Fe("",!0),R("div",Ox,[(H(!0),Z(Ce,null,et(ce.value,le=>(H(),Z("div",{key:le.slug,class:"card uupg__card"},[le.image_url?(H(),Z("img",{key:0,class:"uupg__image",src:le.image_url,alt:le.name},null,8,Fx)):Fe("",!0),R("div",Mx,[R("h3",{class:"uupg__name",innerHTML:le.name},null,8,Ix),le.country_code?(H(),Z("p",Dx,[R("a",{class:"uupg__country-link",href:`${l.value}../countries/${fe(yx)(le.country_code.value,le.country_code.label)}`},[R("span",{innerHTML:le.country_label?le.country_label:le.country_code.label},null,8,zx)],8,jx),le.rop1?(H(),Z(Ce,{key:0},[E[2]||(E[2]=ct(" (",-1)),R("span",{innerHTML:le.rop1_label?le.rop1_label:le.rop1.label},null,8,Gx),E[3]||(E[3]=ct(")",-1))],64)):Fe("",!0)])):Fe("",!0),le.matches?(H(!0),Z(Ce,{key:1},et(le.matches,(we,Ne)=>(H(),Z("p",{key:Ne,class:"uupg__match"},[R("strong",null,ue(we.key),1),E[4]||(E[4]=ct(": ",-1)),R("span",{innerHTML:we.label},null,8,Ux)]))),128)):Fe("",!0)]),le.location_description?(H(),Z("p",Bx,ue(le.location_description),1)):Fe("",!0),R("a",{class:"uupg__more-button",href:`${l.value}${le.slug}`},ue(c.value.full_profile||"Full profile"),9,Vx)]))),128)),f.value?(H(),Z("div",qx,ue(c.value.loading||"Loading…"),1)):b.value?(H(),Z("div",Wx,ue(c.value.load_failed||"People-group data could not be loaded. This is a connection problem, not your filter."),1)):ce.value.length?Fe("",!0):(H(),Z("div",Hx,ue(c.value.no_results||"No people groups match this filter."),1))]),oe.value?(H(),Z("button",{key:1,class:"pgg-loadmore",type:"button",onClick:te},ue(c.value.load_more||"Load more"),1)):Fe("",!0)])])}}}),[["styles",[vx]]]),Xx=":host{display:block;width:100%}",Yx="dashboard-plus-grid/dashboard-plus-grid/index.html",Zx=kn(Object.assign({inheritAttrs:!1},{__name:"dashboard-plus-grid",props:{profileConfig:{type:[String,Object],default:null}},setup(e){const t={wagf_region:"wagfRegion",wagf_block:"wagfBlock",affinity_bloc:"rop1",religion:"religion",country_code:"countryCode",primary_language:"primaryLanguage",engagement_status:"engagementStatus",cluster:"cluster",people_group:"peopleGroup",gospel_access:"gospelAccess",religion_family:"religionFamily",language_family:"languageFamily"},o=Uo({query:"",wagfRegion:"",wagfBlock:"",rop1:"",religion:"",countryCode:"",primaryLanguage:"",engagementStatus:"",cluster:"",peopleGroup:"",gospelAccess:"",religionFamily:"",languageFamily:""});function n({filterSet:g={},searchTerm:y=""}={}){o.query=y||"";for(const A of Object.values(t))o[A]="";for(const[A,k]of Object.entries(g)){const S=t[A];S&&(o[S]=k==null?"":String(k))}}const a=e,s=ie(()=>{const g=a.profileConfig;if(!g)return{};if(typeof g=="object")return g;try{return JSON.parse(g)}catch{return{}}}),r=ie(()=>{var y;const g=(y=s.value)==null?void 0:y.tk;return typeof g=="string"&&g?g:""});r.value&&Vu(r.value);const i=ie(()=>{var y;const g=(y=s.value)==null?void 0:y.provider;return g==="maplibre"||g==="mapbox"?g:""}),l=Py(),c=ie(()=>r.value||l.value||"");oo("mapboxToken",c);const u=Gu(null);oo("profileConfig",ie(()=>({profile:"research-dashboard",layout:"page-scroll",shareUrl:(u?u.replace(/\/+$/,"")+"/":"")+Yx,...r.value?{tk:r.value}:{},...i.value?{provider:i.value}:{}})));const p=[{key:"dashboard"},{key:"grid"}];return(g,y)=>(H(),To(Ky,{sections:p},{"section-dashboard":Eo(()=>[Ue(_x,{onDashboardFilter:n})]),"section-grid":Eo(()=>[Ue(Kx,{query:o.query,"wagf-region":o.wagfRegion,"wagf-block":o.wagfBlock,rop1:o.rop1,religion:o.religion,"country-code":o.countryCode,"primary-language":o.primaryLanguage,"engagement-status":o.engagementStatus,cluster:o.cluster,"people-group":o.peopleGroup,"gospel-access":o.gospelAccess,"religion-family":o.religionFamily,"language-family":o.languageFamily,"show-search":!1,"show-filters":!1,"show-total":!1},null,8,["query","wagf-region","wagf-block","rop1","religion","country-code","primary-language","engagement-status","cluster","people-group","gospel-access","religion-family","language-family"])]),_:1}))}}),[["styles",[Xx]]]);dy({"./affinity-block.js":{default:yy},"./doxa-region.js":{default:ky}}),Cu();const Jx=Rg(Zx,{configureApp(e){e.use(Vg());const t=W_();e.use(t),e.provide("appI18n",t)}});typeof customElements<"u"&&(customElements.get("dashboard-plus-grid")||customElements.define("dashboard-plus-grid",Jx))})(); diff --git a/public/doxa-maps/dashboard-plus-grid/dashboard-plus-grid/default/index.html b/public/doxa-maps/dashboard-plus-grid/dashboard-plus-grid/default/index.html index e7d4db2ff..d9748af96 100644 --- a/public/doxa-maps/dashboard-plus-grid/dashboard-plus-grid/default/index.html +++ b/public/doxa-maps/dashboard-plus-grid/dashboard-plus-grid/default/index.html @@ -40,7 +40,7 @@ - + - + \n\n" + "script": "\n\n\n\n" }, "bundle": "all-people-groups" } @@ -105,7 +105,7 @@ "bundle": "cities-internet", "scriptUrl": "./cities-internet/cities-internet.js", "output": "doxa-maps/cities-internet/cities-internet.js", - "integrity": "sha384-tWFKP5lpuEIney1vkcEFXPPhlr/fgu3siY7p7J25oMxBOedxS/MJjwKD+FMKnsA4", + "integrity": "sha384-mbN7vJ4SwlPjwow485s6WcZtjgHfRL9c/cEScZGYM4iZVwTX3imUfgz/lNX7UKJe", "elements": [ "cities-internet-map" ], @@ -121,7 +121,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -135,7 +135,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } }, { @@ -149,7 +149,7 @@ "scriptUrl": "./cities-internet/cities-internet.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } } ] @@ -158,7 +158,7 @@ "bundle": "country-posters", "scriptUrl": "./country-posters/country-posters.js", "output": "doxa-maps/country-posters/country-posters.js", - "integrity": "sha384-P1ECIwoWVV0RxJB1K0ASPPCojtDw7ygyE1Cz3Qy1GeVP0kAHnzR8gzguOLxMxhQP", + "integrity": "sha384-Q11zxYDmXp/3KoxkMIRaPGn1KWAer2kQrJTpE/YiwUeasLLy4UNocmXO4qByMX+D", "elements": [ "country-posters-map" ], @@ -178,7 +178,7 @@ "scriptUrl": "./country-posters/country-posters.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } }, { @@ -192,7 +192,7 @@ "scriptUrl": "./country-posters/country-posters.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -206,7 +206,7 @@ "scriptUrl": "./country-posters/country-posters.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } } ] @@ -215,7 +215,7 @@ "bundle": "dashboard-plus-grid", "scriptUrl": "./dashboard-plus-grid/dashboard-plus-grid.js", "output": "doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js", - "integrity": "sha384-/M/dCteUVSqfhUecx0mocXC3ecxVZAOwL8ISXhjrtdb2f9xvjnwDg771x9NEFa4e", + "integrity": "sha384-Rc4Fi2DHGSwNMZf91ng3ejXA5JBPzCKgQi9DJ1sQcr9PUq819LAhBHvFU/NbyMwR", "elements": [ "dashboard-plus-grid" ], @@ -235,7 +235,7 @@ "scriptUrl": "./dashboard-plus-grid/dashboard-plus-grid.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" }, "instances": [ { @@ -259,7 +259,7 @@ "bundle": "demo-map", "scriptUrl": "./demo-map/demo-map.js", "output": "doxa-maps/demo-map/demo-map.js", - "integrity": "sha384-h5/KFpBTK/gix8IyOdm4xLGRYGFGeuqXiuK1u1t+HzjpVUMda91x21fC/NmrWDs3", + "integrity": "sha384-OiUABqAB3sINj95nEswpAJ2nJBd9bwrMR2bezKyN6WpxHw9/NvUmYMe8o0i1muWV", "elements": [ "demo-map" ], @@ -275,7 +275,7 @@ "scriptUrl": "./demo-map/demo-map.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" }, "instances": [ { @@ -354,7 +354,7 @@ "bundle": "doxa-research-map", "scriptUrl": "./doxa-research-map/doxa-research-map.js", "output": "doxa-maps/doxa-research-map/doxa-research-map.js", - "integrity": "sha384-UhORARzwWBU5LmKzgT7S3sIQORCutxYe+dYs/E4pDleo6AzmiZuf6UlfvAWbOhAq", + "integrity": "sha384-anX4V4pEfRqe+f9rN213v39mEAh0xxI0lfKOPD+mnaIk6+xV+RX1Y5wKcDgfcK6d", "elements": [ "doxa-research-map" ], @@ -370,7 +370,7 @@ "scriptUrl": "./doxa-research-map/doxa-research-map.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" }, "instances": [ { @@ -396,7 +396,7 @@ "bundle": "doxa-simple-map", "scriptUrl": "./doxa-simple-map/doxa-simple-map.js", "output": "doxa-maps/doxa-simple-map/doxa-simple-map.js", - "integrity": "sha384-bHZzOpmlz2zEoz+T3Sb3u/qMZgxnOZGsqQUSycHCK+oZql/afP15VSV0QbEwNuOS", + "integrity": "sha384-QDnthNH0t4oJYQcYunMxIb9DUGBQRAUm+TPEg2RWvsrkJ4CYrbAlzbyCWoTqOXB7", "elements": [ "doxa-map", "doxa-simple-map" @@ -413,7 +413,7 @@ "scriptUrl": "./doxa-simple-map/doxa-simple-map.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" }, "instances": [ { @@ -579,7 +579,7 @@ "bundle": "gospel-resources", "scriptUrl": "./gospel-resources/gospel-resources.js", "output": "doxa-maps/gospel-resources/gospel-resources.js", - "integrity": "sha384-SQD84HjvCJ8hyWy/4iHK/Ddo9KGh1JuilIxbn/hvTJuOA0rKVo4ZvJjcTEyur2rg", + "integrity": "sha384-PEvIo9qJtlQUr7v+NdWX8BDcKxd5n6HrtzM7961RqfzHThKAs3GQ7xxUI5zGtY3L", "elements": [ "gospel-resources-map" ], @@ -599,7 +599,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -613,7 +613,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -627,7 +627,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } }, { @@ -641,7 +641,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -655,7 +655,7 @@ "scriptUrl": "./gospel-resources/gospel-resources.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } } ] @@ -664,7 +664,7 @@ "bundle": "my-upg-100-list", "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "output": "doxa-maps/my-upg-100-list/my-upg-100-list.js", - "integrity": "sha384-wV3C24ByQTO9YmoAwC+/XTH++0E+XCv7L3L9zp8NW7aRqp/u7gKmXOJ94bsFWRrD", + "integrity": "sha384-vqUN7kfMcv1vUvjQIzNxapDlwPSdtR8atXoIETM0hxoqOCKG+7FAPPltRsA4jukY", "elements": [ "my-upg-100-list-map" ], @@ -684,7 +684,7 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n" + "script": "\n\n" } }, { @@ -698,7 +698,7 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } }, { @@ -712,7 +712,7 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } } ] @@ -837,7 +837,7 @@ "bundle": "pplr-data-maps", "scriptUrl": "./pplr-data-maps/pplr-data-maps.js", "output": "doxa-maps/pplr-data-maps/pplr-data-maps.js", - "integrity": "sha384-+ccGSOeasNwvFR0DkR7nAGvjxFFqVwj4TA73CTaNcjFQKIy6OF7cFhrao0nhGEHr", + "integrity": "sha384-+EOcMT3P42D39HGIjZBbJ6waYI2yJDhNDwNf+8wFruaHqEhdYYa36M+iLIT5fRiH", "elements": [ "pplr-data-maps" ], @@ -853,7 +853,7 @@ "scriptUrl": "./pplr-data-maps/pplr-data-maps.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" }, "bundle": "pplr-data-maps" } @@ -863,7 +863,7 @@ "bundle": "prayer-walk-planner", "scriptUrl": "./prayer-walk-planner/prayer-walk-planner.js", "output": "doxa-maps/prayer-walk-planner/prayer-walk-planner.js", - "integrity": "sha384-jo6yfsjcycQR+GJhNOQ+HQU0H3n2JO9PmRtRXpREeLyxe6zkczf/7GSe2mH1qmw/", + "integrity": "sha384-C6y6vsEGwkvIVSs0s8SKEh1LeEuEOs0KRPg/grFh7BMo9n4BDTJDq7/Sfy/V/VqY", "elements": [ "prayer-walk-planner" ], @@ -879,7 +879,7 @@ "scriptUrl": "./prayer-walk-planner/prayer-walk-planner.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } } ] @@ -888,7 +888,7 @@ "bundle": "regions-dashboard", "scriptUrl": "./regions-dashboard/regions-dashboard.js", "output": "doxa-maps/regions-dashboard/regions-dashboard.js", - "integrity": "sha384-rmm64DN7zoMpf3IFwa0M+zlr+T3z1hBKuse8YaMY0hU2qZgA4bBnQ59FTPOB6oaT", + "integrity": "sha384-zE42DnXbiIsJpnPZ2ZLVClbwODYgF0j6agMZoJTuhR/AW56nzpl7TwT8X8R9FPH4", "elements": [ "regions-dashboard" ], @@ -908,7 +908,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } }, { @@ -917,12 +917,12 @@ "description": "A refactor of DX-life's /regions index page (app/pages/regions/index.vue) into", "element": "regions-dashboard", "type": "single", - "isMap": true, + "isMap": false, "iframeUrl": "./regions-dashboard/regions-list/index.html", "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n" } }, { @@ -936,7 +936,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" } } ] @@ -945,7 +945,7 @@ "bundle": "research-dashboard", "scriptUrl": "./research-dashboard/research-dashboard.js", "output": "doxa-maps/research-dashboard/research-dashboard.js", - "integrity": "sha384-2m6d6KITFYBmzMXofmq+CQZzplDqEt2zLlLvtsuL2YB6r4LJ94H5u34MGO52awP8", + "integrity": "sha384-XSv+S9wdJPrm9k2jVIG4/ePgm1bLW8LYytJuk5kqXP9yI5xOuJCZQ44m4XOt1u9n", "elements": [ "research-dashboard-map" ], @@ -961,7 +961,7 @@ "scriptUrl": "./research-dashboard/research-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" }, "bundle": "research-dashboard" } @@ -1059,7 +1059,7 @@ "bundle": "upg-neighbor", "scriptUrl": "./upg-neighbor/upg-neighbor.js", "output": "doxa-maps/upg-neighbor/upg-neighbor.js", - "integrity": "sha384-nbnL1sf+bSe7B8ZTrUgeiVV78zATUKCP4ExMZZAXLo3rXKktEFC2dJil5/n28KFY", + "integrity": "sha384-YViVG3snYU3j6AZ8ZxBIJlBBMUL5Pj2guGdWiiKvexR9VNtQFCHrX+PQ6lLa2DrN", "elements": [ "upg-neighbor" ], @@ -1075,7 +1075,7 @@ "scriptUrl": "./upg-neighbor/upg-neighbor.js", "embed": { "iframe": "", - "script": "\n\n\n\n" + "script": "\n\n\n\n" }, "instances": [ { diff --git a/public/doxa-maps/doxa-research-map/doxa-research-map.js b/public/doxa-maps/doxa-research-map/doxa-research-map.js index d89786230..aa92d056e 100644 --- a/public/doxa-maps/doxa-research-map/doxa-research-map.js +++ b/public/doxa-maps/doxa-research-map/doxa-research-map.js @@ -1,46 +1,46 @@ -(function(){"use strict";var $f;var zn=typeof document<"u"?document.currentScript:null;const o2="modulepreload",n2=function(e){return"/"+e},a2={},lo=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)})},Rr="affinityBlock",Un="#95a5a6",Io={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"},ms={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"},on=ms,Jl=Object.entries(Io).reduce((e,[t,o])=>(e[o]=t,e),{}),Mr=Object.entries(Io).reduce((e,[t,o])=>(e[o]=on[t],e),{}),Ql=Io;function Fr(e){return Io[e]||"Unknown"}function Ir(e){return on[e]||Un}function ec(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?on[e]||Un:Mr[e]||Un:Un}function tc(){return Object.entries(Io).map(([e,t])=>({code:e,name:t,color:on[e]}))}function oc(e){return{code:e,name:Io[e]||"Unknown",color:on[e]||Un}}function nc(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Ir(t)}function ac(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Fr(t)}function Or(){const e=["match",["get",Rr]];return Object.entries(on).forEach(([t,o])=>{e.push(t,o)}),e.push(Un),e}const sc=Or,If=Object.freeze(Object.defineProperty({__proto__:null,AFFINITY_BLOCK_COLORS:on,AFFINITY_BLOCK_COLORS_BY_NAME:Mr,AFFINITY_BLOCK_NAMES:Io,AFFINITY_BLOCK_NAME_TO_CODE:Jl,NAMES:Ql,PALETTE:ms,PROPERTY_KEY:Rr,affinityBlockCodeLookup:Io,affinityBlockCodeToColor:on,affinityBlockCodeToName:Io,affinityBlockColors:Mr,affinityBlockNameToCode:Jl,applyColor:Or,buildColorExpression:sc,default:{name:"Affinity Block",propertyKey:Rr,palette:ms,colors:ms,names:Ql,getColor:nc,applyColor:Or,buildColorExpression:sc,getName:ac,getAffinityBlockName:Fr,getAffinityBlockColor:ec,getAffinityBlockColorByCode:Ir,getAffinityBlocksArray:tc,getAffinityBlockData:oc},getAffinityBlockColor:ec,getAffinityBlockColorByCode:Ir,getAffinityBlockData:oc,getAffinityBlockName:Fr,getAffinityBlocksArray:tc,getColor:nc,getName:ac},Symbol.toStringTag,{value:"Module"}));function Of(e){if(!e)return"hsl(0, 60%, 50%)";let t=0;for(let n=0;n{e.push(t,o)}),e.push(Br),e}const cc=zr,Bf=Object.freeze(Object.defineProperty({__proto__:null,DOXA_REGION_COLORS:Df,PALETTE:bs,PROPERTY_KEY:Dr,REGION_COLOR_ALIASES:jr,SLUG_PALETTE:$s,applyColor:zr,buildColorExpression:cc,default:{name:"DOXA Region",propertyKey:Dr,palette:bs,colors:bs,slugColors:$s,aliases:jr,fallback:Br,getColor:lc,applyColor:zr,buildColorExpression:cc,getRegionColor:ic,getRegionColorBySlug:Gr},getColor:lc,getRegionColor:ic,getRegionColorBySlug:Gr},Symbol.toStringTag,{value:"Module"})),uc="resourceType",nn={bible:"#3498db",jesusFilm:"#20c997",radio:"#9b59b6",gospel:"#f39c12",audio:"#1abc9c",stories:"#e74c3c",hasResources:"#27ae60",noResources:"#2c3e50"},Gf=nn,va=["bible","jesusFilm","radio","gospel","audio","stories"],Ur={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},jf=Ur;function wa(e){return{bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories"}[e]}function pc(e){var t;for(const o of va)if((e[o]||((t=e._raw)==null?void 0:t[wa(o)]))==="Available")return nn.hasResources;return nn.noResources}function dc(e){var t;for(const o of va)if((e[o]||((t=e._raw)==null?void 0:t[wa(o)]))==="Available")return!0;return!1}function gc(e){var t;for(const o of va)if((e[o]||((t=e._raw)==null?void 0:t[wa(o)]))==="Available")return o;return"noResources"}function Vr(){return["case",["any",["==",["get","bible"],"Available"],["==",["get","jesusFilm"],"Available"],["==",["get","radio"],"Available"],["==",["get","gospel"],"Available"],["==",["get","audio"],"Available"],["==",["get","stories"],"Available"]],nn.hasResources,nn.noResources]}const fc=Vr,zf=Object.freeze(Object.defineProperty({__proto__:null,NAMES:Ur,PALETTE:nn,PROPERTY_KEY:uc,RESOURCE_COLORS:Gf,RESOURCE_NAMES:jf,RESOURCE_PRIORITY:va,applyColor:Vr,buildColorExpression:fc,default:{name:"Gospel Resources",propertyKey:uc,palette:nn,colors:nn,names:Ur,priority:va,getColor:pc,applyColor:Vr,buildColorExpression:fc,hasAnyResource:dc,getResourceType:gc,getCSVColumn:wa},getCSVColumn:wa,getColor:pc,getResourceType:gc,hasAnyResource:dc},Symbol.toStringTag,{value:"Module"}));/** +(function(){"use strict";var _f;var Un=typeof document<"u"?document.currentScript:null;const r2="modulepreload",i2=function(e){return"/"+e},l2={},lo=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)})},Rr="affinityBlock",Vn="#95a5a6",Io={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"},ms={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"},on=ms,Jl=Object.entries(Io).reduce((e,[t,o])=>(e[o]=t,e),{}),Mr=Object.entries(Io).reduce((e,[t,o])=>(e[o]=on[t],e),{}),Ql=Io;function Fr(e){return Io[e]||"Unknown"}function Ir(e){return on[e]||Vn}function ec(e){return e?typeof e=="string"&&/^A\d{3}$/.test(e)?on[e]||Vn:Mr[e]||Vn:Vn}function tc(){return Object.entries(Io).map(([e,t])=>({code:e,name:t,color:on[e]}))}function oc(e){return{code:e,name:Io[e]||"Unknown",color:on[e]||Vn}}function nc(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Ir(t)}function ac(e){var o;const t=e.affinityBlock||((o=e._raw)==null?void 0:o.ROP1);return Fr(t)}function Or(){const e=["match",["get",Rr]];return Object.entries(on).forEach(([t,o])=>{e.push(t,o)}),e.push(Vn),e}const sc=Or,Df=Object.freeze(Object.defineProperty({__proto__:null,AFFINITY_BLOCK_COLORS:on,AFFINITY_BLOCK_COLORS_BY_NAME:Mr,AFFINITY_BLOCK_NAMES:Io,AFFINITY_BLOCK_NAME_TO_CODE:Jl,NAMES:Ql,PALETTE:ms,PROPERTY_KEY:Rr,affinityBlockCodeLookup:Io,affinityBlockCodeToColor:on,affinityBlockCodeToName:Io,affinityBlockColors:Mr,affinityBlockNameToCode:Jl,applyColor:Or,buildColorExpression:sc,default:{name:"Affinity Block",propertyKey:Rr,palette:ms,colors:ms,names:Ql,getColor:nc,applyColor:Or,buildColorExpression:sc,getName:ac,getAffinityBlockName:Fr,getAffinityBlockColor:ec,getAffinityBlockColorByCode:Ir,getAffinityBlocksArray:tc,getAffinityBlockData:oc},getAffinityBlockColor:ec,getAffinityBlockColorByCode:Ir,getAffinityBlockData:oc,getAffinityBlockName:Fr,getAffinityBlocksArray:tc,getColor:nc,getName:ac},Symbol.toStringTag,{value:"Module"}));function Bf(e){if(!e)return"hsl(0, 60%, 50%)";let t=0;for(let n=0;n{e.push(t,o)}),e.push(Br),e}const cc=zr,jf=Object.freeze(Object.defineProperty({__proto__:null,DOXA_REGION_COLORS:Gf,PALETTE:bs,PROPERTY_KEY:Dr,REGION_COLOR_ALIASES:jr,SLUG_PALETTE:$s,applyColor:zr,buildColorExpression:cc,default:{name:"DOXA Region",propertyKey:Dr,palette:bs,colors:bs,slugColors:$s,aliases:jr,fallback:Br,getColor:lc,applyColor:zr,buildColorExpression:cc,getRegionColor:ic,getRegionColorBySlug:Gr},getColor:lc,getRegionColor:ic,getRegionColorBySlug:Gr},Symbol.toStringTag,{value:"Module"})),uc="resourceType",nn={bible:"#3498db",jesusFilm:"#20c997",radio:"#9b59b6",gospel:"#f39c12",audio:"#1abc9c",stories:"#e74c3c",hasResources:"#27ae60",noResources:"#2c3e50"},zf=nn,va=["bible","jesusFilm","radio","gospel","audio","stories"],Ur={bible:"Bible",jesusFilm:"Jesus Film",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories",hasResources:"Has Resources",noResources:"No Resources"},Uf=Ur;function wa(e){return{bible:"Bible",jesusFilm:"Jesus",radio:"Radio",gospel:"Gospel",audio:"Audio",stories:"Stories"}[e]}function pc(e){var t;for(const o of va)if((e[o]||((t=e._raw)==null?void 0:t[wa(o)]))==="Available")return nn.hasResources;return nn.noResources}function dc(e){var t;for(const o of va)if((e[o]||((t=e._raw)==null?void 0:t[wa(o)]))==="Available")return!0;return!1}function gc(e){var t;for(const o of va)if((e[o]||((t=e._raw)==null?void 0:t[wa(o)]))==="Available")return o;return"noResources"}function Vr(){return["case",["any",["==",["get","bible"],"Available"],["==",["get","jesusFilm"],"Available"],["==",["get","radio"],"Available"],["==",["get","gospel"],"Available"],["==",["get","audio"],"Available"],["==",["get","stories"],"Available"]],nn.hasResources,nn.noResources]}const fc=Vr,Vf=Object.freeze(Object.defineProperty({__proto__:null,NAMES:Ur,PALETTE:nn,PROPERTY_KEY:uc,RESOURCE_COLORS:zf,RESOURCE_NAMES:Uf,RESOURCE_PRIORITY:va,applyColor:Vr,buildColorExpression:fc,default:{name:"Gospel Resources",propertyKey:uc,palette:nn,colors:nn,names:Ur,priority:va,getColor:pc,applyColor:Vr,buildColorExpression:fc,hasAnyResource:dc,getResourceType:gc,getCSVColumn:wa},getCSVColumn:wa,getColor:pc,getResourceType:gc,hasAnyResource:dc},Symbol.toStringTag,{value:"Module"}));/** * @vue/shared v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function Kr(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const at={},Vn=[],$o=()=>{},hc=()=>!1,ys=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),_s=e=>e.startsWith("onUpdate:"),ft=Object.assign,Hr=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},Uf=Object.prototype.hasOwnProperty,Je=(e,t)=>Uf.call(e,t),Ee=Array.isArray,an=e=>ka(e)==="[object Map]",Oo=e=>ka(e)==="[object Set]",mc=e=>ka(e)==="[object Date]",De=e=>typeof e=="function",st=e=>typeof e=="string",Kt=e=>typeof e=="symbol",Qe=e=>e!==null&&typeof e=="object",bc=e=>(Qe(e)||De(e))&&De(e.then)&&De(e.catch),$c=Object.prototype.toString,ka=e=>$c.call(e),Vf=e=>ka(e).slice(8,-1),vs=e=>ka(e)==="[object Object]",ws=e=>st(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,xa=Kr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ks=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},Kf=/-\w/g,xt=ks(e=>e.replace(Kf,t=>t.slice(1).toUpperCase())),Hf=/\B([A-Z])/g,Qt=ks(e=>e.replace(Hf,"-$1").toLowerCase()),xs=ks(e=>e.charAt(0).toUpperCase()+e.slice(1)),qr=ks(e=>e?`on${xs(e)}`:""),yo=(e,t)=>!Object.is(e,t),Ls=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},As=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Wr=e=>{const t=st(e)?Number(e):NaN;return isNaN(t)?e:t};let _c;const Ss=()=>_c||(_c=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ye(e){if(Ee(e)){const t={};for(let o=0;o{if(o){const n=o.split(Wf);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Re(e){let t="";if(st(e))t=e;else if(Ee(e))for(let o=0;oDo(o,t))}const kc=e=>!!(e&&e.__v_isRef===!0),be=e=>st(e)?e:e==null?"":Ee(e)||Qe(e)&&(e.toString===$c||!De(e.toString))?kc(e)?be(e.value):JSON.stringify(e,xc,2):String(e),xc=(e,t)=>kc(t)?xc(e,t.value):an(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,a],s)=>(o[Xr(n,s)+" =>"]=a,o),{})}:Oo(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>Xr(o))}:Kt(t)?Xr(t):Qe(t)&&!Ee(t)&&!vs(t)?String(t):t,Xr=(e,t="")=>{var o;return Kt(e)?`Symbol(${(o=e.description)!=null?o:t})`:e};/** +**/function Kr(e){const t=Object.create(null);for(const o of e.split(","))t[o]=1;return o=>o in t}const at={},Kn=[],$o=()=>{},hc=()=>!1,ys=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),_s=e=>e.startsWith("onUpdate:"),ft=Object.assign,Hr=(e,t)=>{const o=e.indexOf(t);o>-1&&e.splice(o,1)},Kf=Object.prototype.hasOwnProperty,Je=(e,t)=>Kf.call(e,t),Ee=Array.isArray,an=e=>ka(e)==="[object Map]",Oo=e=>ka(e)==="[object Set]",mc=e=>ka(e)==="[object Date]",De=e=>typeof e=="function",st=e=>typeof e=="string",Kt=e=>typeof e=="symbol",Qe=e=>e!==null&&typeof e=="object",bc=e=>(Qe(e)||De(e))&&De(e.then)&&De(e.catch),$c=Object.prototype.toString,ka=e=>$c.call(e),Hf=e=>ka(e).slice(8,-1),vs=e=>ka(e)==="[object Object]",ws=e=>st(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,xa=Kr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ks=e=>{const t=Object.create(null);return o=>t[o]||(t[o]=e(o))},qf=/-\w/g,xt=ks(e=>e.replace(qf,t=>t.slice(1).toUpperCase())),Wf=/\B([A-Z])/g,Qt=ks(e=>e.replace(Wf,"-$1").toLowerCase()),xs=ks(e=>e.charAt(0).toUpperCase()+e.slice(1)),qr=ks(e=>e?`on${xs(e)}`:""),yo=(e,t)=>!Object.is(e,t),Ls=(e,...t)=>{for(let o=0;o{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:n,value:o})},As=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Wr=e=>{const t=st(e)?Number(e):NaN;return isNaN(t)?e:t};let _c;const Ss=()=>_c||(_c=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Ye(e){if(Ee(e)){const t={};for(let o=0;o{if(o){const n=o.split(Xf);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function Re(e){let t="";if(st(e))t=e;else if(Ee(e))for(let o=0;oDo(o,t))}const kc=e=>!!(e&&e.__v_isRef===!0),$e=e=>st(e)?e:e==null?"":Ee(e)||Qe(e)&&(e.toString===$c||!De(e.toString))?kc(e)?$e(e.value):JSON.stringify(e,xc,2):String(e),xc=(e,t)=>kc(t)?xc(e,t.value):an(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((o,[n,a],s)=>(o[Xr(n,s)+" =>"]=a,o),{})}:Oo(t)?{[`Set(${t.size})`]:[...t.values()].map(o=>Xr(o))}:Kt(t)?Xr(t):Qe(t)&&!Ee(t)&&!vs(t)?String(t):t,Xr=(e,t="")=>{var o;return Kt(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 _t;class Lc{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&&_t&&(_t.active?(this.parent=_t,this.index=(_t.scopes||(_t.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(_t===this)_t=this.prevScope;else{let t=_t;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(Aa){let t=Aa;for(Aa=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;La;){let t=La;for(La=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 Ec(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Tc(e){let t,o=e.depsTail,n=o;for(;n;){const a=n.prevDep;n.version===-1?(n===o&&(o=a),oi(n),eh(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=t,e.depsTail=o}function ti(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Nc(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Nc(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Sa)||(e.globalVersion=Sa,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ti(e))))return;e.flags|=2;const t=e.dep,o=rt,n=co;rt=e,co=!0;try{Ec(e);const a=e.fn(e._value);(t.version===0||yo(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{rt=o,co=n,Tc(e),e.flags&=-3}}function oi(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)oi(s,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function eh(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let co=!0;const Rc=[];function _o(){Rc.push(co),co=!1}function vo(){const e=Rc.pop();co=e===void 0?!0:e}function Mc(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=rt;rt=void 0;try{t()}finally{rt=o}}}let Sa=0;class th{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 ni{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(!rt||!co||rt===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==rt)o=this.activeLink=new th(rt,this),rt.deps?(o.prevDep=rt.depsTail,rt.depsTail.nextDep=o,rt.depsTail=o):rt.deps=rt.depsTail=o,Fc(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=rt.depsTail,o.nextDep=void 0,rt.depsTail.nextDep=o,rt.depsTail=o,rt.deps===o&&(rt.deps=n)}return o}trigger(t){this.version++,Sa++,this.notify(t)}notify(t){Qr();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{ei()}}}function Fc(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)Fc(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const Ps=new WeakMap,wn=Symbol(""),ai=Symbol(""),Pa=Symbol("");function Rt(e,t,o){if(co&&rt){let n=Ps.get(e);n||Ps.set(e,n=new Map);let a=n.get(o);a||(n.set(o,a=new ni),a.map=n,a.key=o),a.track()}}function Bo(e,t,o,n,a,s){const r=Ps.get(e);if(!r){Sa++;return}const i=l=>{l&&l.trigger()};if(Qr(),t==="clear")r.forEach(i);else{const l=Ee(e),c=l&&ws(o);if(l&&o==="length"){const u=Number(n);r.forEach((p,d)=>{(d==="length"||d===Pa||!Kt(d)&&d>=u)&&i(p)})}else switch((o!==void 0||r.has(void 0))&&i(r.get(o)),c&&i(r.get(Pa)),t){case"add":l?c&&i(r.get("length")):(i(r.get(wn)),an(e)&&i(r.get(ai)));break;case"delete":l||(i(r.get(wn)),an(e)&&i(r.get(ai)));break;case"set":an(e)&&i(r.get(wn));break}}ei()}function oh(e,t){const o=Ps.get(e);return o&&o.get(t)}function Kn(e){const t=Ve(e);return t===e?t:(Rt(t,"iterate",Pa),Ht(e)?t:t.map(uo))}function Cs(e){return Rt(e=Ve(e),"iterate",Pa),e}function wo(e,t){return zo(e)?Wn(jo(e)?uo(t):t):uo(t)}const nh={__proto__:null,[Symbol.iterator](){return si(this,Symbol.iterator,e=>wo(this,e))},concat(...e){return Kn(this).concat(...e.map(t=>Ee(t)?Kn(t):t))},entries(){return si(this,"entries",e=>(e[1]=wo(this,e[1]),e))},every(e,t){return Go(this,"every",e,t,void 0,arguments)},filter(e,t){return Go(this,"filter",e,t,o=>o.map(n=>wo(this,n)),arguments)},find(e,t){return Go(this,"find",e,t,o=>wo(this,o),arguments)},findIndex(e,t){return Go(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Go(this,"findLast",e,t,o=>wo(this,o),arguments)},findLastIndex(e,t){return Go(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Go(this,"forEach",e,t,void 0,arguments)},includes(...e){return ri(this,"includes",e)},indexOf(...e){return ri(this,"indexOf",e)},join(e){return Kn(this).join(e)},lastIndexOf(...e){return ri(this,"lastIndexOf",e)},map(e,t){return Go(this,"map",e,t,void 0,arguments)},pop(){return Ca(this,"pop")},push(...e){return Ca(this,"push",e)},reduce(e,...t){return Ic(this,"reduce",e,t)},reduceRight(e,...t){return Ic(this,"reduceRight",e,t)},shift(){return Ca(this,"shift")},some(e,t){return Go(this,"some",e,t,void 0,arguments)},splice(...e){return Ca(this,"splice",e)},toReversed(){return Kn(this).toReversed()},toSorted(e){return Kn(this).toSorted(e)},toSpliced(...e){return Kn(this).toSpliced(...e)},unshift(...e){return Ca(this,"unshift",e)},values(){return si(this,"values",e=>wo(this,e))}};function si(e,t,o){const n=Cs(e),a=n[t]();return n!==e&&!Ht(e)&&(a._next=a.next,a.next=()=>{const s=a._next();return s.done||(s.value=o(s.value)),s}),a}const ah=Array.prototype;function Go(e,t,o,n,a,s){const r=Cs(e),i=r!==e&&!Ht(e),l=r[t];if(l!==ah[t]){const p=l.apply(e,s);return i?uo(p):p}let c=o;r!==e&&(i?c=function(p,d){return o.call(this,wo(e,p),d,e)}:o.length>2&&(c=function(p,d){return o.call(this,p,d,e)}));const u=l.call(r,c,n);return i&&a?a(u):u}function Ic(e,t,o,n){const a=Cs(e),s=a!==e&&!Ht(e);let r=o,i=!1;a!==e&&(s?(i=n.length===0,r=function(c,u,p){return i&&(i=!1,c=wo(e,c)),o.call(this,c,wo(e,u),p,e)}):o.length>3&&(r=function(c,u,p){return o.call(this,c,u,p,e)}));const l=a[t](r,...n);return i?wo(e,l):l}function ri(e,t,o){const n=Ve(e);Rt(n,"iterate",Pa);const a=n[t](...o);return(a===-1||a===!1)&&Ms(o[0])?(o[0]=Ve(o[0]),n[t](...o)):a}function Ca(e,t,o=[]){_o(),Qr();const n=Ve(e)[t].apply(e,o);return ei(),vo(),n}const sh=Kr("__proto__,__v_isRef,__isVue"),Oc=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Kt));function rh(e){Kt(e)||(e=String(e));const t=Ve(this);return Rt(t,"has",e),t.hasOwnProperty(e)}class Dc{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?Vc:Uc:s?zc:jc).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const r=Ee(t);if(!a){let l;if(r&&(l=nh[o]))return l;if(o==="hasOwnProperty")return rh}const i=Reflect.get(t,o,ut(t)?t:n);if((Kt(o)?Oc.has(o):sh(o))||(a||Rt(t,"get",o),s))return i;if(ut(i)){const l=r&&ws(o)?i:i.value;return a&&Qe(l)?kn(l):l}return Qe(i)?a?kn(i):Hn(i):i}}class Bc extends Dc{constructor(t=!1){super(!1,t)}set(t,o,n,a){let s=t[o];const r=Ee(t)&&ws(o);if(!this._isShallow){const c=zo(s);if(!Ht(n)&&!zo(n)&&(s=Ve(s),n=Ve(n)),!r&&ut(s)&&!ut(n))return c||(s.value=n),!0}const i=r?Number(o)e,Es=e=>Reflect.getPrototypeOf(e);function ph(e,t,o){return function(...n){const a=this.__v_raw,s=Ve(a),r=an(s),i=e==="entries"||e===Symbol.iterator&&r,l=e==="keys"&&r,c=a[e](...n),u=o?ii:t?Wn:uo;return!t&&Rt(s,"iterate",l?ai:wn),ft(Object.create(c),{next(){const{value:p,done:d}=c.next();return d?{value:p,done:d}:{value:i?[u(p[0]),u(p[1])]:u(p),done:d}}})}}function Ts(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function dh(e,t){const o={get(a){const s=this.__v_raw,r=Ve(s),i=Ve(a);e||(yo(a,i)&&Rt(r,"get",a),Rt(r,"get",i));const{has:l}=Es(r),c=t?ii:e?Wn:uo;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&&Rt(Ve(a),"iterate",wn),a.size},has(a){const s=this.__v_raw,r=Ve(s),i=Ve(a);return e||(yo(a,i)&&Rt(r,"has",a),Rt(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?ii:e?Wn:uo;return!e&&Rt(l,"iterate",wn),i.forEach((u,p)=>a.call(s,c(u),c(p),r))}};return ft(o,e?{add:Ts("add"),set:Ts("set"),delete:Ts("delete"),clear:Ts("clear")}:{add(a){const s=Ve(this),r=Es(s),i=Ve(a),l=!t&&!Ht(a)&&!zo(a)?i:a;return r.has.call(s,l)||yo(a,l)&&r.has.call(s,a)||yo(i,l)&&r.has.call(s,i)||(s.add(l),Bo(s,"add",l,l)),this},set(a,s){!t&&!Ht(s)&&!zo(s)&&(s=Ve(s));const r=Ve(this),{has:i,get:l}=Es(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?yo(s,u)&&Bo(r,"set",a,s):Bo(r,"add",a,s),this},delete(a){const s=Ve(this),{has:r,get:i}=Es(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&&Bo(s,"delete",a,void 0),c},clear(){const a=Ve(this),s=a.size!==0,r=a.clear();return s&&Bo(a,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(a=>{o[a]=ph(a,e,t)}),o}function Ns(e,t){const o=dh(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 gh={get:Ns(!1,!1)},fh={get:Ns(!1,!0)},hh={get:Ns(!0,!1)},mh={get:Ns(!0,!0)},jc=new WeakMap,zc=new WeakMap,Uc=new WeakMap,Vc=new WeakMap;function bh(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Hn(e){return zo(e)?e:Rs(e,!1,ih,gh,jc)}function $h(e){return Rs(e,!1,ch,fh,zc)}function kn(e){return Rs(e,!0,lh,hh,Uc)}function f2(e){return Rs(e,!0,uh,mh,Vc)}function Rs(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=bh(Vf(e));if(r===0)return e;const i=new Proxy(e,r===2?n:o);return a.set(e,i),i}function jo(e){return zo(e)?jo(e.__v_raw):!!(e&&e.__v_isReactive)}function zo(e){return!!(e&&e.__v_isReadonly)}function Ht(e){return!!(e&&e.__v_isShallow)}function Ms(e){return e?!!e.__v_raw:!1}function Ve(e){const t=e&&e.__v_raw;return t?Ve(t):e}function qn(e){return!Je(e,"__v_skip")&&Object.isExtensible(e)&&yc(e,"__v_skip",!0),e}const uo=e=>Qe(e)?Hn(e):e,Wn=e=>Qe(e)?kn(e):e;function ut(e){return e?e.__v_isRef===!0:!1}function de(e){return Kc(e,!1)}function Ea(e){return Kc(e,!0)}function Kc(e,t){return ut(e)?e:new yh(e,t)}class yh{constructor(t,o){this.dep=new ni,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:Ve(t),this._value=o?t:uo(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||Ht(t)||zo(t);t=n?t:Ve(t),yo(t,o)&&(this._rawValue=t,this._value=n?t:uo(t),this.dep.trigger())}}function ue(e){return ut(e)?e.value:e}const _h={get:(e,t,o)=>t==="__v_raw"?e:ue(Reflect.get(e,t,o)),set:(e,t,o,n)=>{const a=e[t];return ut(a)&&!ut(o)?(a.value=o,!0):Reflect.set(e,t,o,n)}};function Hc(e){return jo(e)?e:new Proxy(e,_h)}function vh(e){const t=Ee(e)?new Array(e.length):{};for(const o in e)t[o]=qc(e,o);return t}class wh{constructor(t,o,n){this._object=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=Kt(o)?o:String(o),this._raw=Ve(t);let a=!0,s=t;if(!Ee(t)||Kt(this._key)||!ws(this._key))do a=!Ms(s)||Ht(s);while(a&&(s=s.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=ue(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ut(this._raw[this._key])){const o=this._object[this._key];if(ut(o)){o.value=t;return}}this._object[this._key]=t}get dep(){return oh(this._raw,this._key)}}class kh{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 Fs(e,t,o){return ut(e)?e:De(e)?new kh(e):Qe(e)&&arguments.length>1?qc(e,t,o):de(e)}function qc(e,t,o){return new wh(e,t,o)}class xh{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new ni(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Sa-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&rt!==this)return Cc(this,!0),!0}get value(){const t=this.dep.track();return Nc(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Lh(e,t,o=!1){let n,a;return De(e)?n=e:(n=e.get,a=e.set),new xh(n,a,o)}const Is={},Os=new WeakMap;let xn;function Ah(e,t=!1,o=xn){if(o){let n=Os.get(o);n||Os.set(o,n=[]),n.push(e)}}function Sh(e,t,o=at){const{immediate:n,deep:a,once:s,scheduler:r,augmentJob:i,call:l}=o,c=x=>a?x:Ht(x)||a===!1||a===0?Uo(x,1):Uo(x);let u,p,d,A,w=!1,f=!1;if(ut(e)?(p=()=>e.value,w=Ht(e)):jo(e)?(p=()=>c(e),w=!0):Ee(e)?(f=!0,w=e.some(x=>jo(x)||Ht(x)),p=()=>e.map(x=>{if(ut(x))return x.value;if(jo(x))return c(x);if(De(x))return l?l(x,2):x()})):De(e)?t?p=l?()=>l(e,2):e:p=()=>{if(d){_o();try{d()}finally{vo()}}const x=xn;xn=u;try{return l?l(e,3,[A]):e(A)}finally{xn=x}}:p=$o,t&&a){const x=p,E=a===!0?1/0:a;p=()=>Uo(x(),E)}const v=Ac(),y=()=>{u.stop(),v&&v.active&&Hr(v.effects,u)};if(s&&t){const x=t;t=(...E)=>{const m=x(...E);return y(),m}}let h=f?new Array(e.length).fill(Is):Is;const $=x=>{if(!(!(u.flags&1)||!u.dirty&&!x))if(t){const E=u.run();if(x||a||w||(f?E.some((m,b)=>yo(m,h[b])):yo(E,h))){d&&d();const m=xn;xn=u;try{const b=[E,h===Is?void 0:f&&h[0]===Is?[]:h,A];h=E,l?l(t,3,b):t(...b)}finally{xn=m}}}else u.run()};return i&&i($),u=new Sc(p),u.scheduler=r?()=>r($,!1):$,A=x=>Ah(x,!1,u),d=u.onStop=()=>{const x=Os.get(u);if(x){if(l)l(x,4);else for(const E of x)E();Os.delete(u)}},t?n?$(!0):h=u.run():r?r($.bind(null,!0),!0):u.run(),y.pause=u.pause.bind(u),y.resume=u.resume.bind(u),y.stop=y,y}function Uo(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--,ut(e))Uo(e.value,t,o);else if(Ee(e))for(let n=0;n{Uo(n,t,o)});else if(vs(e)){for(const n in e)Uo(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Uo(e[n],t,o)}return e}/** +**/let _t;class Lc{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&&_t&&(_t.active?(this.parent=_t,this.index=(_t.scopes||(_t.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(_t===this)_t=this.prevScope;else{let t=_t;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(Aa){let t=Aa;for(Aa=void 0;t;){const o=t.next;t.next=void 0,t.flags&=-9,t=o}}let e;for(;La;){let t=La;for(La=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 Ec(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Tc(e){let t,o=e.depsTail,n=o;for(;n;){const a=n.prevDep;n.version===-1?(n===o&&(o=a),oi(n),oh(n)):t=n,n.dep.activeLink=n.prevActiveLink,n.prevActiveLink=void 0,n=a}e.deps=t,e.depsTail=o}function ti(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Nc(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Nc(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Sa)||(e.globalVersion=Sa,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!ti(e))))return;e.flags|=2;const t=e.dep,o=rt,n=co;rt=e,co=!0;try{Ec(e);const a=e.fn(e._value);(t.version===0||yo(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{rt=o,co=n,Tc(e),e.flags&=-3}}function oi(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)oi(s,!0)}!t&&!--o.sc&&o.map&&o.map.delete(o.key)}function oh(e){const{prevDep:t,nextDep:o}=e;t&&(t.nextDep=o,e.prevDep=void 0),o&&(o.prevDep=t,e.nextDep=void 0)}let co=!0;const Rc=[];function _o(){Rc.push(co),co=!1}function vo(){const e=Rc.pop();co=e===void 0?!0:e}function Mc(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const o=rt;rt=void 0;try{t()}finally{rt=o}}}let Sa=0;class nh{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 ni{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(!rt||!co||rt===this.computed)return;let o=this.activeLink;if(o===void 0||o.sub!==rt)o=this.activeLink=new nh(rt,this),rt.deps?(o.prevDep=rt.depsTail,rt.depsTail.nextDep=o,rt.depsTail=o):rt.deps=rt.depsTail=o,Fc(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=rt.depsTail,o.nextDep=void 0,rt.depsTail.nextDep=o,rt.depsTail=o,rt.deps===o&&(rt.deps=n)}return o}trigger(t){this.version++,Sa++,this.notify(t)}notify(t){Qr();try{for(let o=this.subs;o;o=o.prevSub)o.sub.notify()&&o.sub.dep.notify()}finally{ei()}}}function Fc(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)Fc(n)}const o=e.dep.subs;o!==e&&(e.prevSub=o,o&&(o.nextSub=e)),e.dep.subs=e}}const Ps=new WeakMap,wn=Symbol(""),ai=Symbol(""),Pa=Symbol("");function Rt(e,t,o){if(co&&rt){let n=Ps.get(e);n||Ps.set(e,n=new Map);let a=n.get(o);a||(n.set(o,a=new ni),a.map=n,a.key=o),a.track()}}function Bo(e,t,o,n,a,s){const r=Ps.get(e);if(!r){Sa++;return}const i=l=>{l&&l.trigger()};if(Qr(),t==="clear")r.forEach(i);else{const l=Ee(e),c=l&&ws(o);if(l&&o==="length"){const u=Number(n);r.forEach((p,d)=>{(d==="length"||d===Pa||!Kt(d)&&d>=u)&&i(p)})}else switch((o!==void 0||r.has(void 0))&&i(r.get(o)),c&&i(r.get(Pa)),t){case"add":l?c&&i(r.get("length")):(i(r.get(wn)),an(e)&&i(r.get(ai)));break;case"delete":l||(i(r.get(wn)),an(e)&&i(r.get(ai)));break;case"set":an(e)&&i(r.get(wn));break}}ei()}function ah(e,t){const o=Ps.get(e);return o&&o.get(t)}function Hn(e){const t=Ve(e);return t===e?t:(Rt(t,"iterate",Pa),Ht(e)?t:t.map(uo))}function Cs(e){return Rt(e=Ve(e),"iterate",Pa),e}function wo(e,t){return zo(e)?Yn(jo(e)?uo(t):t):uo(t)}const sh={__proto__:null,[Symbol.iterator](){return si(this,Symbol.iterator,e=>wo(this,e))},concat(...e){return Hn(this).concat(...e.map(t=>Ee(t)?Hn(t):t))},entries(){return si(this,"entries",e=>(e[1]=wo(this,e[1]),e))},every(e,t){return Go(this,"every",e,t,void 0,arguments)},filter(e,t){return Go(this,"filter",e,t,o=>o.map(n=>wo(this,n)),arguments)},find(e,t){return Go(this,"find",e,t,o=>wo(this,o),arguments)},findIndex(e,t){return Go(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Go(this,"findLast",e,t,o=>wo(this,o),arguments)},findLastIndex(e,t){return Go(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Go(this,"forEach",e,t,void 0,arguments)},includes(...e){return ri(this,"includes",e)},indexOf(...e){return ri(this,"indexOf",e)},join(e){return Hn(this).join(e)},lastIndexOf(...e){return ri(this,"lastIndexOf",e)},map(e,t){return Go(this,"map",e,t,void 0,arguments)},pop(){return Ca(this,"pop")},push(...e){return Ca(this,"push",e)},reduce(e,...t){return Ic(this,"reduce",e,t)},reduceRight(e,...t){return Ic(this,"reduceRight",e,t)},shift(){return Ca(this,"shift")},some(e,t){return Go(this,"some",e,t,void 0,arguments)},splice(...e){return Ca(this,"splice",e)},toReversed(){return Hn(this).toReversed()},toSorted(e){return Hn(this).toSorted(e)},toSpliced(...e){return Hn(this).toSpliced(...e)},unshift(...e){return Ca(this,"unshift",e)},values(){return si(this,"values",e=>wo(this,e))}};function si(e,t,o){const n=Cs(e),a=n[t]();return n!==e&&!Ht(e)&&(a._next=a.next,a.next=()=>{const s=a._next();return s.done||(s.value=o(s.value)),s}),a}const rh=Array.prototype;function Go(e,t,o,n,a,s){const r=Cs(e),i=r!==e&&!Ht(e),l=r[t];if(l!==rh[t]){const p=l.apply(e,s);return i?uo(p):p}let c=o;r!==e&&(i?c=function(p,d){return o.call(this,wo(e,p),d,e)}:o.length>2&&(c=function(p,d){return o.call(this,p,d,e)}));const u=l.call(r,c,n);return i&&a?a(u):u}function Ic(e,t,o,n){const a=Cs(e),s=a!==e&&!Ht(e);let r=o,i=!1;a!==e&&(s?(i=n.length===0,r=function(c,u,p){return i&&(i=!1,c=wo(e,c)),o.call(this,c,wo(e,u),p,e)}):o.length>3&&(r=function(c,u,p){return o.call(this,c,u,p,e)}));const l=a[t](r,...n);return i?wo(e,l):l}function ri(e,t,o){const n=Ve(e);Rt(n,"iterate",Pa);const a=n[t](...o);return(a===-1||a===!1)&&Ms(o[0])?(o[0]=Ve(o[0]),n[t](...o)):a}function Ca(e,t,o=[]){_o(),Qr();const n=Ve(e)[t].apply(e,o);return ei(),vo(),n}const ih=Kr("__proto__,__v_isRef,__isVue"),Oc=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Kt));function lh(e){Kt(e)||(e=String(e));const t=Ve(this);return Rt(t,"has",e),t.hasOwnProperty(e)}class Dc{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?Vc:Uc:s?zc:jc).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(n)?t:void 0;const r=Ee(t);if(!a){let l;if(r&&(l=sh[o]))return l;if(o==="hasOwnProperty")return lh}const i=Reflect.get(t,o,ut(t)?t:n);if((Kt(o)?Oc.has(o):ih(o))||(a||Rt(t,"get",o),s))return i;if(ut(i)){const l=r&&ws(o)?i:i.value;return a&&Qe(l)?kn(l):l}return Qe(i)?a?kn(i):qn(i):i}}class Bc extends Dc{constructor(t=!1){super(!1,t)}set(t,o,n,a){let s=t[o];const r=Ee(t)&&ws(o);if(!this._isShallow){const c=zo(s);if(!Ht(n)&&!zo(n)&&(s=Ve(s),n=Ve(n)),!r&&ut(s)&&!ut(n))return c||(s.value=n),!0}const i=r?Number(o)e,Es=e=>Reflect.getPrototypeOf(e);function gh(e,t,o){return function(...n){const a=this.__v_raw,s=Ve(a),r=an(s),i=e==="entries"||e===Symbol.iterator&&r,l=e==="keys"&&r,c=a[e](...n),u=o?ii:t?Yn:uo;return!t&&Rt(s,"iterate",l?ai:wn),ft(Object.create(c),{next(){const{value:p,done:d}=c.next();return d?{value:p,done:d}:{value:i?[u(p[0]),u(p[1])]:u(p),done:d}}})}}function Ts(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function fh(e,t){const o={get(a){const s=this.__v_raw,r=Ve(s),i=Ve(a);e||(yo(a,i)&&Rt(r,"get",a),Rt(r,"get",i));const{has:l}=Es(r),c=t?ii:e?Yn:uo;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&&Rt(Ve(a),"iterate",wn),a.size},has(a){const s=this.__v_raw,r=Ve(s),i=Ve(a);return e||(yo(a,i)&&Rt(r,"has",a),Rt(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?ii:e?Yn:uo;return!e&&Rt(l,"iterate",wn),i.forEach((u,p)=>a.call(s,c(u),c(p),r))}};return ft(o,e?{add:Ts("add"),set:Ts("set"),delete:Ts("delete"),clear:Ts("clear")}:{add(a){const s=Ve(this),r=Es(s),i=Ve(a),l=!t&&!Ht(a)&&!zo(a)?i:a;return r.has.call(s,l)||yo(a,l)&&r.has.call(s,a)||yo(i,l)&&r.has.call(s,i)||(s.add(l),Bo(s,"add",l,l)),this},set(a,s){!t&&!Ht(s)&&!zo(s)&&(s=Ve(s));const r=Ve(this),{has:i,get:l}=Es(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?yo(s,u)&&Bo(r,"set",a,s):Bo(r,"add",a,s),this},delete(a){const s=Ve(this),{has:r,get:i}=Es(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&&Bo(s,"delete",a,void 0),c},clear(){const a=Ve(this),s=a.size!==0,r=a.clear();return s&&Bo(a,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(a=>{o[a]=gh(a,e,t)}),o}function Ns(e,t){const o=fh(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 hh={get:Ns(!1,!1)},mh={get:Ns(!1,!0)},bh={get:Ns(!0,!1)},$h={get:Ns(!0,!0)},jc=new WeakMap,zc=new WeakMap,Uc=new WeakMap,Vc=new WeakMap;function yh(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function qn(e){return zo(e)?e:Rs(e,!1,ch,hh,jc)}function _h(e){return Rs(e,!1,ph,mh,zc)}function kn(e){return Rs(e,!0,uh,bh,Uc)}function $2(e){return Rs(e,!0,dh,$h,Vc)}function Rs(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=yh(Hf(e));if(r===0)return e;const i=new Proxy(e,r===2?n:o);return a.set(e,i),i}function jo(e){return zo(e)?jo(e.__v_raw):!!(e&&e.__v_isReactive)}function zo(e){return!!(e&&e.__v_isReadonly)}function Ht(e){return!!(e&&e.__v_isShallow)}function Ms(e){return e?!!e.__v_raw:!1}function Ve(e){const t=e&&e.__v_raw;return t?Ve(t):e}function Wn(e){return!Je(e,"__v_skip")&&Object.isExtensible(e)&&yc(e,"__v_skip",!0),e}const uo=e=>Qe(e)?qn(e):e,Yn=e=>Qe(e)?kn(e):e;function ut(e){return e?e.__v_isRef===!0:!1}function ge(e){return Kc(e,!1)}function Ea(e){return Kc(e,!0)}function Kc(e,t){return ut(e)?e:new vh(e,t)}class vh{constructor(t,o){this.dep=new ni,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=o?t:Ve(t),this._value=o?t:uo(t),this.__v_isShallow=o}get value(){return this.dep.track(),this._value}set value(t){const o=this._rawValue,n=this.__v_isShallow||Ht(t)||zo(t);t=n?t:Ve(t),yo(t,o)&&(this._rawValue=t,this._value=n?t:uo(t),this.dep.trigger())}}function pe(e){return ut(e)?e.value:e}const wh={get:(e,t,o)=>t==="__v_raw"?e:pe(Reflect.get(e,t,o)),set:(e,t,o,n)=>{const a=e[t];return ut(a)&&!ut(o)?(a.value=o,!0):Reflect.set(e,t,o,n)}};function Hc(e){return jo(e)?e:new Proxy(e,wh)}function kh(e){const t=Ee(e)?new Array(e.length):{};for(const o in e)t[o]=qc(e,o);return t}class xh{constructor(t,o,n){this._object=t,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=Kt(o)?o:String(o),this._raw=Ve(t);let a=!0,s=t;if(!Ee(t)||Kt(this._key)||!ws(this._key))do a=!Ms(s)||Ht(s);while(a&&(s=s.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=pe(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&ut(this._raw[this._key])){const o=this._object[this._key];if(ut(o)){o.value=t;return}}this._object[this._key]=t}get dep(){return ah(this._raw,this._key)}}class Lh{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 Fs(e,t,o){return ut(e)?e:De(e)?new Lh(e):Qe(e)&&arguments.length>1?qc(e,t,o):ge(e)}function qc(e,t,o){return new xh(e,t,o)}class Ah{constructor(t,o,n){this.fn=t,this.setter=o,this._value=void 0,this.dep=new ni(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Sa-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!o,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&rt!==this)return Cc(this,!0),!0}get value(){const t=this.dep.track();return Nc(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Sh(e,t,o=!1){let n,a;return De(e)?n=e:(n=e.get,a=e.set),new Ah(n,a,o)}const Is={},Os=new WeakMap;let xn;function Ph(e,t=!1,o=xn){if(o){let n=Os.get(o);n||Os.set(o,n=[]),n.push(e)}}function Ch(e,t,o=at){const{immediate:n,deep:a,once:s,scheduler:r,augmentJob:i,call:l}=o,c=x=>a?x:Ht(x)||a===!1||a===0?Uo(x,1):Uo(x);let u,p,d,A,k=!1,f=!1;if(ut(e)?(p=()=>e.value,k=Ht(e)):jo(e)?(p=()=>c(e),k=!0):Ee(e)?(f=!0,k=e.some(x=>jo(x)||Ht(x)),p=()=>e.map(x=>{if(ut(x))return x.value;if(jo(x))return c(x);if(De(x))return l?l(x,2):x()})):De(e)?t?p=l?()=>l(e,2):e:p=()=>{if(d){_o();try{d()}finally{vo()}}const x=xn;xn=u;try{return l?l(e,3,[A]):e(A)}finally{xn=x}}:p=$o,t&&a){const x=p,E=a===!0?1/0:a;p=()=>Uo(x(),E)}const w=Ac(),y=()=>{u.stop(),w&&w.active&&Hr(w.effects,u)};if(s&&t){const x=t;t=(...E)=>{const m=x(...E);return y(),m}}let h=f?new Array(e.length).fill(Is):Is;const $=x=>{if(!(!(u.flags&1)||!u.dirty&&!x))if(t){const E=u.run();if(x||a||k||(f?E.some((m,b)=>yo(m,h[b])):yo(E,h))){d&&d();const m=xn;xn=u;try{const b=[E,h===Is?void 0:f&&h[0]===Is?[]:h,A];h=E,l?l(t,3,b):t(...b)}finally{xn=m}}}else u.run()};return i&&i($),u=new Sc(p),u.scheduler=r?()=>r($,!1):$,A=x=>Ph(x,!1,u),d=u.onStop=()=>{const x=Os.get(u);if(x){if(l)l(x,4);else for(const E of x)E();Os.delete(u)}},t?n?$(!0):h=u.run():r?r($.bind(null,!0),!0):u.run(),y.pause=u.pause.bind(u),y.resume=u.resume.bind(u),y.stop=y,y}function Uo(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--,ut(e))Uo(e.value,t,o);else if(Ee(e))for(let n=0;n{Uo(n,t,o)});else if(vs(e)){for(const n in e)Uo(e[n],t,o);for(const n of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,n)&&Uo(e[n],t,o)}return e}/** * @vue/runtime-core v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const Ta=[];let li=!1;function h2(e,...t){if(li)return;li=!0,_o();const o=Ta.length?Ta[Ta.length-1].component:null,n=o&&o.appContext.config.warnHandler,a=Ph();if(n)Yn(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 <${Xu(o,s.type)}>`).join(` +**/const Ta=[];let li=!1;function y2(e,...t){if(li)return;li=!0,_o();const o=Ta.length?Ta[Ta.length-1].component:null,n=o&&o.appContext.config.warnHandler,a=Eh();if(n)Xn(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 <${Xu(o,s.type)}>`).join(` `),a]);else{const s=[`[Vue warn]: ${e}`,...t];a.length&&s.push(` -`,...Ch(a)),console.warn(...s)}vo(),li=!1}function Ph(){let e=Ta[Ta.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 Ch(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[` -`],...Eh(o))}),t}function Eh({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${Xu(e.component,e.type,n)}`,s=">"+o;return e.props?[a,...Th(e.props),s]:[a+s]}function Th(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...Wc(n,e[n]))}),o.length>3&&t.push(" ..."),t}function Wc(e,t,o){return st(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:ut(t)?(t=Wc(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 Yn(e,t,o,n){try{return n?e(...n):e()}catch(a){Na(a,t,o)}}function eo(e,t,o,n){if(De(e)){const a=Yn(e,t,o,n);return a&&bc(a)&&a.catch(s=>{Na(s,t,o)}),a}if(Ee(e)){const a=[];for(let s=0;s>>1,a=Ot[n],s=Ra(a);s=Ra(o)?Ot.push(e):Ot.splice(Rh(t),0,e),e.flags|=1,Xc()}}function Xc(){Ds||(Ds=Yc.then(Qc))}function Mh(e){if(!Ee(e))sn&&e.id===-1?sn.splice(Zn+1,0,e):e.flags&1||(Xn.push(e),e.flags|=1);else for(let t=0;tRa(o)-Ra(n));if(Xn.length=0,sn){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function Qc(e){try{for(ko=0;ko{n._d&&Ys(-1);const s=Bs(t),r=Ho.length;let i;try{i=e(...a)}finally{for(let l=Ho.length;l>r;l--)Li();Bs(s),n._d&&Ys(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function to(e,t){if(Pt===null)return e;const o=Qs(Pt),n=e.dirs||(e.dirs=[]);for(let a=0;a1)return o&&De(t)?t.call(n&&n.proxy):t}}function Fh(){return!!(po()||Sn)}const Ih=Symbol.for("v-scx"),Oh=()=>Te(Ih);function Dh(e,t){return ui(e,null,t)}function Fe(e,t,o){return ui(e,t,o)}function ui(e,t,o=at){const{immediate:n,deep:a,flush:s,once:r}=o,i=ft({},o),l=t&&n||!t&&s!=="post";let c;if(Qn){if(s==="sync"){const A=Oh();c=A.__watcherHandles||(A.__watcherHandles=[])}else if(!l){const A=()=>{};return A.stop=$o,A.resume=$o,A.pause=$o,A}}const u=Et;i.call=(A,w,f)=>eo(A,u,w,f);let p=!1;s==="post"?i.scheduler=A=>{Bt(A,u&&u.suspense)}:s!=="sync"&&(p=!0,i.scheduler=(A,w)=>{w?A():ci(A)}),i.augmentJob=A=>{t&&(A.flags|=4),p&&(A.flags|=2,u&&(A.id=u.uid,A.i=u))};const d=Sh(e,t,i);return Qn&&(c?c.push(d):l&&d()),d}function Bh(e,t,o){const n=this.proxy,a=st(e)?e.includes(".")?tu(n,e):()=>n[e]:e.bind(n,n);let s;De(t)?s=t:(s=t.handler,o=t);const r=qa(this),i=ui(a,s.bind(n),o);return r(),i}function tu(e,t){const o=t.split(".");return()=>{let n=e;for(let a=0;ae.__isTeleport,An=e=>e&&(e.disabled||e.disabled===""),Gh=e=>e&&(e.defer||e.defer===""),nu=e=>typeof SVGElement<"u"&&e instanceof SVGElement,au=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,pi=(e,t)=>{const o=e&&e.to;return st(o)?t?t(o):null:o},jh={name:"Teleport",__isTeleport:!0,process(e,t,o,n,a,s,r,i,l,c){const{mc:u,pc:p,pbc:d,o:{insert:A,querySelector:w,createText:f,createComment:v,parentNode:y}}=c,h=An(t.props);let{dynamicChildren:$}=t;const x=(b,g,k)=>{b.shapeFlag&16&&u(b.children,g,k,a,s,r,i,l)},E=(b=t)=>{const g=An(b.props),k=b.target=pi(b.props,w),T=di(k,b,f,A);k&&(r!=="svg"&&nu(k)?r="svg":r!=="mathml"&&au(k)&&(r="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(k),g||(x(b,k,T),Ma(b,!1)))},m=b=>{const g=()=>{if(rn.get(b)===g){if(rn.delete(b),An(b.props)){const k=y(b.el)||o;x(b,k,b.anchor),Ma(b,!0)}E(b)}};rn.set(b,g),Bt(g,s)};if(e==null){const b=t.el=f(""),g=t.anchor=f("");if(A(b,o,n),A(g,o,n),Gh(t.props)||s&&s.pendingBranch){m(t);return}h&&(x(t,o,g),Ma(t,!0)),E()}else{t.el=e.el;const b=t.anchor=e.anchor,g=rn.get(e);if(g){g.flags|=8,rn.delete(e),m(t);return}t.targetStart=e.targetStart;const k=t.target=e.target,T=t.targetAnchor=e.targetAnchor,O=An(e.props),V=O?o:k,U=O?b:T;if(r==="svg"||nu(k)?r="svg":(r==="mathml"||au(k))&&(r="mathml"),$?(d(e.dynamicChildren,$,V,a,s,r,i),xi(e,t,!0)):l||p(e,t,V,U,a,s,r,i,!1),h)O?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):js(t,o,b,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const G=pi(t.props,w);G&&(t.target=G,js(t,G,null,c,0))}else O&&js(t,k,T,c,1);Ma(t,h)}},remove(e,t,o,{um:n,o:{remove:a}},s){const{shapeFlag:r,children:i,anchor:l,targetStart:c,targetAnchor:u,target:p,props:d}=e,A=An(d),w=s||!A,f=rn.get(e);if(f&&(f.flags|=8,rn.delete(e)),p&&(a(c),a(u)),s&&a(l),!f&&(A||p)&&r&16)for(let v=0;v{e.isMounted=!0}),qt(()=>{e.isUnmounting=!0}),e}const no=[Function,Array],su={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:no,onEnter:no,onAfterEnter:no,onEnterCancelled:no,onBeforeLeave:no,onLeave:no,onAfterLeave:no,onLeaveCancelled:no,onBeforeAppear:no,onAppear:no,onAfterAppear:no,onAppearCancelled:no},ru=e=>{const t=e.subTree;return t.component?ru(t.component):t},Kh={name:"BaseTransition",props:su,setup(e,{slots:t}){const o=po(),n=Vh();return()=>{const a=t.default&&cu(t.default(),!0),s=a&&a.length?iu(a):o.subTree?Le():void 0;if(!s)return;const r=Ve(e),{mode:i}=r;if(n.isLeaving)return fi(s);const l=zs(s);if(!l)return fi(s);let c=gi(l,r,n,o,p=>c=p);l.type!==Ft&&Ia(l,c);let u=o.subTree&&zs(o.subTree);if(u&&u.type!==Ft&&!Cn(u,l)&&ru(o).type!==Ft){let p=gi(u,r,n,o);if(Ia(u,p),i==="out-in"&&l.type!==Ft)return n.isLeaving=!0,p.afterLeave=()=>{n.isLeaving=!1,o.job.flags&8||o.update(),delete p.afterLeave,u=void 0},fi(s);i==="in-out"&&l.type!==Ft?p.delayLeave=(d,A,w)=>{const f=lu(n,u);f[String(u.key)]=u,d[oo]=()=>{A(),d[oo]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{w(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return s}}};function iu(e){let t=e[0];if(e.length>1){for(const o of e)if(o.type!==Ft){t=o;break}}return t}const Hh=Kh;function lu(e,t){const{leavingVNodes:o}=e;let n=o.get(t.type);return n||(n=Object.create(null),o.set(t.type,n)),n}function gi(e,t,o,n,a){const{appear:s,mode:r,persisted:i=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:p,onBeforeLeave:d,onLeave:A,onAfterLeave:w,onLeaveCancelled:f,onBeforeAppear:v,onAppear:y,onAfterAppear:h,onAppearCancelled:$}=t,x=String(e.key),E=lu(o,e),m=(k,T)=>{k&&eo(k,n,9,T)},b=(k,T)=>{const O=T[1];m(k,T),Ee(k)?k.every(V=>V.length<=1)&&O():k.length<=1&&O()},g={mode:r,persisted:i,beforeEnter(k){let T=l;if(!o.isMounted)if(s)T=v||l;else return;k[oo]&&k[oo](!0);const O=E[x];O&&Cn(e,O)&&O.el[oo]&&O.el[oo](),m(T,[k])},enter(k){if(E[x]===e)return;let T=c,O=u,V=p;if(!o.isMounted)if(s)T=y||c,O=h||u,V=$||p;else return;let U=!1;k[Fa]=C=>{U||(U=!0,C?m(V,[k]):m(O,[k]),g.delayedLeave&&g.delayedLeave(),k[Fa]=void 0)};const G=k[Fa].bind(null,!1);T?b(T,[k,G]):G()},leave(k,T){const O=String(e.key);if(k[Fa]&&k[Fa](!0),o.isUnmounting)return T();m(d,[k]);let V=!1;k[oo]=G=>{V||(V=!0,T(),G?m(f,[k]):m(w,[k]),k[oo]=void 0,E[O]===e&&delete E[O])};const U=k[oo].bind(null,!1);E[O]=e,A?b(A,[k,U]):U()},clone(k){const T=gi(k,t,o,n,a);return a&&a(T),T}};return g}function fi(e){if(Ba(e))return e=ln(e),e.children=null,e}function zs(e){if(!Ba(e))return Gs(e.type)&&e.children?iu(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 Ia(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;Ia(Gs(o.type)&&zs(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 cu(e,t=!1,o){let n=[],a=0;for(let s=0;s1)for(let s=0;sDa(f,t&&(Ee(t)?t[v]:t),o,n,a));return}if(Jn(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Da(e,t,o,n.component.subTree);return}const s=n.shapeFlag&4?Qs(n.component):n.el,r=a?null:s,{i,r:l}=e,c=t&&t.r,u=i.refs===at?i.refs={}:i.refs,p=i.setupState,d=Ve(p),A=p===at?hc:f=>uu(u,f)?!1:Je(d,f),w=(f,v)=>!(v&&uu(u,v));if(c!=null&&c!==l){if(pu(t),st(c))u[c]=null,A(c)&&(p[c]=null);else if(ut(c)){const f=t;w(c,f.k)&&(c.value=null),f.k&&(u[f.k]=null)}}if(De(l))Yn(l,i,12,[r,u]);else{const f=st(l),v=ut(l);if(f||v){const y=()=>{if(e.f){const h=f?A(l)?p[l]:u[l]:w()||!e.k?l.value:u[e.k];if(a)Ee(h)&&Hr(h,s);else if(Ee(h))h.includes(s)||h.push(s);else if(f)u[l]=[s],A(l)&&(p[l]=u[l]);else{const $=[s];w(l,e.k)&&(l.value=$),e.k&&(u[e.k]=$)}}else f?(u[l]=r,A(l)&&(p[l]=r)):v&&(w(l,e.k)&&(l.value=r),e.k&&(u[e.k]=r))};if(r){const h=()=>{y(),Us.delete(e)};h.id=-1,Us.set(e,h),Bt(h,o)}else pu(e),y()}}}function pu(e){const t=Us.get(e);t&&(t.flags|=8,Us.delete(e))}const du=e=>e.nodeType===8;Ss().requestIdleCallback,Ss().cancelIdleCallback;function qh(e,t){if(du(e)&&e.data==="["){let o=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(t(n)===!1)break}else if(du(n))if(n.data==="]"){if(--o===0)break}else n.data==="["&&o++;n=n.nextSibling}}else t(e)}const Jn=e=>!!e.type.__asyncLoader;function Wh(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,p=0;const d=()=>(p++,c=null,A()),A=()=>{let w;return c||(w=c=t().catch(f=>{if(f=f instanceof Error?f:new Error(String(f)),l)return new Promise((v,y)=>{l(f,()=>v(d()),()=>y(f),p+1)});throw f}).then(f=>w!==c&&c?c:(f&&(f.__esModule||f[Symbol.toStringTag]==="Module")&&(f=f.default),u=f,f)))};return Oa({name:"AsyncComponentWrapper",__asyncLoader:A,__asyncHydrate(w,f,v){const y=w.isConnected;let h=!1;(f.bu||(f.bu=[])).push(()=>h=!0);const $=()=>{h||!w.parentNode||y&&!w.isConnected||v()},x=s?()=>{const E=s($,m=>qh(w,m));E&&(f.bum||(f.bum=[])).push(E)}:$;u?x():A().then(()=>!f.isUnmounted&&x())},get __asyncResolved(){return u},setup(){const w=Et;if(hi(w),u)return()=>Vs(u,w);const f=E=>{c=null,Na(E,w,13,!n)};if(i&&w.suspense||Qn)return A().then(E=>()=>Vs(E,w)).catch(E=>(f(E),()=>n?et(n,{error:E}):null));const v=de(!1),y=de(),h=de(!!a);let $,x;return Ga(()=>{$!=null&&clearTimeout($),x!=null&&clearTimeout(x)}),a&&(x=setTimeout(()=>{w.isUnmounted||(h.value=!1)},a)),r!=null&&($=setTimeout(()=>{if(!w.isUnmounted&&!v.value&&!y.value){const E=new Error(`Async component timed out after ${r}ms.`);f(E),y.value=E}},r)),A().then(()=>{w.isUnmounted||(v.value=!0,w.parent&&Ba(w.parent.vnode)&&w.parent.update())}).catch(E=>{if(w.isUnmounted){c=null;return}f(E),y.value=E}),()=>{if(v.value&&u)return Vs(u,w);if(y.value&&n)return et(n,{error:y.value});if(o&&!h.value)return Vs(o,w)}}})}function Vs(e,t){const{ref:o,props:n,children:a,ce:s}=t.vnode,r=et(e,n,a);return r.ref=o,r.ce=s,delete t.vnode.ce,r}const Ba=e=>e.type.__isKeepAlive;function Yh(e,t){gu(e,"a",t)}function Xh(e,t){gu(e,"da",t)}function gu(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(Ks(t,n,o),o){let a=o.parent;for(;a&&a.parent;)Ba(a.parent.vnode)&&Zh(n,t,o,a),a=a.parent}}function Zh(e,t,o,n){const a=Ks(t,e,n,!0);Ga(()=>{Hr(n[t],a)},o)}function Ks(e,t,o=Et,n=!1){if(o){const a=o[e]||(o[e]=[]),s=t.__weh||(t.__weh=(...r)=>{_o();const i=qa(o),l=eo(t,o,e,r);return i(),vo(),l});return n?a.unshift(s):a.push(s),s}}const Vo=e=>(t,o=Et)=>{(!Qn||e==="sp")&&Ks(e,(...n)=>t(...n),o)},fu=Vo("bm"),ao=Vo("m"),Jh=Vo("bu"),Qh=Vo("u"),qt=Vo("bum"),Ga=Vo("um"),em=Vo("sp"),tm=Vo("rtg"),om=Vo("rtc");function nm(e,t=Et){Ks("ec",e,t)}const am="components",hu=Symbol.for("v-ndc");function mu(e){return st(e)?sm(am,e,!1)||e:e||hu}function sm(e,t,o=!0,n=!1){const a=Pt||Et;if(a){const s=a.type;{const i=Yu(s,!1);if(i&&(i===t||i===xt(t)||i===xs(xt(t))))return s}const r=bu(a[e]||s[e],t)||bu(a.appContext[e],t);return!r&&n?s:r}}function bu(e,t){return e&&(e[t]||e[xt(t)]||e[xs(xt(t))])}function Ct(e,t,o,n){let a;const s=o,r=Ee(e);if(r||st(e)){const i=r&&jo(e);let l=!1,c=!1;i&&(l=!Ht(e),c=zo(e),e=Cs(e)),a=new Array(e.length);for(let u=0,p=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),Z(),We(ze,null,[et("slot",c,n&&n())],u?-2:64)}let r=e[t];r&&r._c&&(r._d=!1);const i=Ho.length;Z();let l;try{const c=r&&$u(r(o)),u=o.key||s||c&&c.key;l=We(ze,{key:(u&&!Kt(u)?u:`_${t}`)+(!c&&n?"_fb":"")},c||(n?n():[]),c&&e._===1?64:-2)}catch(c){for(let u=Ho.length;u>i;u--)Li();throw c}finally{r&&r._c&&(r._d=!0)}return!a&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function $u(e){return e.some(t=>Ka(t)?!(t.type===Ft||t.type===ze&&!$u(t.children)):!0)?e:null}const mi=e=>e?Hu(e)?Qs(e):mi(e.parent):null,ja=ft(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=>mi(e.parent),$root:e=>mi(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>wu(e),$forceUpdate:e=>e.f||(e.f=()=>{ci(e.update)}),$nextTick:e=>e.n||(e.n=Mt.bind(e.proxy)),$watch:e=>Bh.bind(e)}),bi=(e,t)=>e!==at&&!e.__isScriptSetup&&Je(e,t),rm={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 d=r[t];if(d!==void 0)switch(d){case 1:return n[t];case 2:return a[t];case 4:return o[t];case 3:return s[t]}else{if(bi(n,t))return r[t]=1,n[t];if(a!==at&&Je(a,t))return r[t]=2,a[t];if(Je(s,t))return r[t]=3,s[t];if(o!==at&&Je(o,t))return r[t]=4,o[t];$i&&(r[t]=0)}}const c=ja[t];let u,p;if(c)return t==="$attrs"&&Rt(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(o!==at&&Je(o,t))return r[t]=4,o[t];if(p=l.config.globalProperties,Je(p,t))return p[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:s}=e;return bi(a,t)?(a[t]=o,!0):n!==at&&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!==at&&i[0]!=="$"&&Je(e,i)||bi(t,i)||Je(s,i)||Je(n,i)||Je(ja,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 yu(e){return Ee(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let $i=!0;function im(e){const t=wu(e),o=e.proxy,n=e.ctx;$i=!1,t.beforeCreate&&_u(t.beforeCreate,e,"bc");const{data:a,computed:s,methods:r,watch:i,provide:l,inject:c,created:u,beforeMount:p,mounted:d,beforeUpdate:A,updated:w,activated:f,deactivated:v,beforeDestroy:y,beforeUnmount:h,destroyed:$,unmounted:x,render:E,renderTracked:m,renderTriggered:b,errorCaptured:g,serverPrefetch:k,expose:T,inheritAttrs:O,components:V,directives:U,filters:G}=t;if(c&&lm(c,n,null),r)for(const F in r){const j=r[F];De(j)&&(n[F]=j.bind(o))}if(a){const F=a.call(o,o);Qe(F)&&(e.data=Hn(F))}if($i=!0,s)for(const F in s){const j=s[F],K=De(j)?j.bind(o,o):De(j.get)?j.get.bind(o,o):$o,J=!De(j)&&De(j.set)?j.set.bind(o):$o,ce=ee({get:K,set:J});Object.defineProperty(n,F,{enumerable:!0,configurable:!0,get:()=>ce.value,set:H=>ce.value=H})}if(i)for(const F in i)vu(i[F],n,o,F);if(l){const F=De(l)?l.call(o):l;Reflect.ownKeys(F).forEach(j=>{vt(j,F[j])})}u&&_u(u,e,"c");function L(F,j){Ee(j)?j.forEach(K=>F(K.bind(o))):j&&F(j.bind(o))}if(L(fu,p),L(ao,d),L(Jh,A),L(Qh,w),L(Yh,f),L(Xh,v),L(nm,g),L(om,m),L(tm,b),L(qt,h),L(Ga,x),L(em,k),Ee(T))if(T.length){const F=e.exposed||(e.exposed={});T.forEach(j=>{Object.defineProperty(F,j,{get:()=>o[j],set:K=>o[j]=K,enumerable:!0})})}else e.exposed||(e.exposed={});E&&e.render===$o&&(e.render=E),O!=null&&(e.inheritAttrs=O),V&&(e.components=V),U&&(e.directives=U),k&&hi(e)}function lm(e,t,o=$o){Ee(e)&&(e=yi(e));for(const n in e){const a=e[n];let s;Qe(a)?"default"in a?s=Te(a.from||n,a.default,!0):s=Te(a.from||n):s=Te(a),ut(s)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:r=>s.value=r}):t[n]=s}}function _u(e,t,o){eo(Ee(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function vu(e,t,o,n){let a=n.includes(".")?tu(o,n):()=>o[n];if(st(e)){const s=t[e];De(s)&&Fe(a,s)}else if(De(e))Fe(a,e.bind(o));else if(Qe(e))if(Ee(e))e.forEach(s=>vu(s,t,o,n));else{const s=De(e.handler)?e.handler.bind(o):t[e.handler];De(s)&&Fe(a,s,e)}}function wu(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=>Hs(l,c,r,!0)),Hs(l,t,r)),Qe(t)&&s.set(t,l),l}function Hs(e,t,o,n=!1){const{mixins:a,extends:s}=t;s&&Hs(e,s,o,!0),a&&a.forEach(r=>Hs(e,r,o,!0));for(const r in t)if(!(n&&r==="expose")){const i=cm[r]||o&&o[r];e[r]=i?i(e[r],t[r]):t[r]}return e}const cm={data:ku,props:xu,emits:xu,methods:za,computed:za,beforeCreate:Dt,created:Dt,beforeMount:Dt,mounted:Dt,beforeUpdate:Dt,updated:Dt,beforeDestroy:Dt,beforeUnmount:Dt,destroyed:Dt,unmounted:Dt,activated:Dt,deactivated:Dt,errorCaptured:Dt,serverPrefetch:Dt,components:za,directives:za,watch:pm,provide:ku,inject:um};function ku(e,t){return t?e?function(){return ft(De(e)?e.call(this,this):e,De(t)?t.call(this,this):t)}:t:e}function um(e,t){return za(yi(e),yi(t))}function yi(e){if(Ee(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${Qt(t)}Modifiers`];function hm(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||at;let a=o;const s=t.startsWith("update:"),r=s&&fm(n,t.slice(7));r&&(r.trim&&(a=o.map(u=>st(u)?u.trim():u)),r.number&&(a=a.map(As)));let i,l=n[i=qr(t)]||n[i=qr(xt(t))];!l&&s&&(l=n[i=qr(Qt(t))]),l&&eo(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,eo(c,e,6,a)}}const mm=new WeakMap;function Au(e,t,o=!1){const n=o?mm: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=Au(c,t,!0);u&&(i=!0,ft(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):(Ee(s)?s.forEach(l=>r[l]=null):ft(r,s),Qe(e)&&n.set(e,r),r)}function qs(e,t){return!e||!ys(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Je(e,t[0].toLowerCase()+t.slice(1))||Je(e,Qt(t))||Je(e,t))}function m2(){}function Su(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[s],slots:r,attrs:i,emit:l,render:c,renderCache:u,props:p,data:d,setupState:A,ctx:w,inheritAttrs:f}=e,v=Bs(e);let y,h;try{if(o.shapeFlag&4){const x=a||n,E=x;y=xo(c.call(E,x,u,p,A,d,w)),h=i}else{const x=t;y=xo(x.length>1?x(p,{attrs:i,slots:r,emit:l}):x(p,null)),h=t.props?i:bm(i)}}catch(x){Ho.length=0,Na(x,e,1),y=et(Ft)}let $=y;if(h&&f!==!1){const x=Object.keys(h),{shapeFlag:E}=$;x.length&&E&7&&(s&&x.some(_s)&&(h=$m(h,s)),$=ln($,h,!1,!0))}if(o.dirs&&($=ln($,null,!1,!0),$.dirs=$.dirs?$.dirs.concat(o.dirs):o.dirs),o.transition){const x=Gs($.type)&&zs($)||$;Ia(x,o.transition)}return y=$,Bs(v),y}const bm=e=>{let t;for(const o in e)(o==="class"||o==="style"||ys(o))&&((t||(t={}))[o]=e[o]);return t},$m=(e,t)=>{const o={};for(const n in e)(!_s(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function ym(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?Pu(n,r,c):!!r;if(l&8){const u=t.dynamicProps;for(let p=0;pObject.create(Eu),Nu=e=>Object.getPrototypeOf(e)===Eu;function vm(e,t,o,n=!1){const a={},s=Tu();e.propsDefaults=Object.create(null),Ru(e,t,a,s);for(const r in e.propsOptions[0])r in a||(a[r]=void 0);o?e.props=n?a:$h(a):e.type.props?e.props=a:e.props=s,e.attrs=s}function wm(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 p=0;p{l=!0;const[d,A]=Mu(p,t,!0);ft(r,d),A&&i.push(...A)};!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,Vn),Vn;if(Ee(s))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",wi=e=>Ee(e)?e.map(xo):[xo(e)],xm=(e,t,o)=>{if(t._n)return t;const n=Ut((...a)=>wi(t(...a)),o);return n._c=!1,n},Iu=(e,t,o)=>{const n=e._ctx;for(const a in e){if(vi(a))continue;const s=e[a];if(De(s))t[a]=xm(a,s,n);else if(s!=null){const r=wi(s);t[a]=()=>r}}},Ou=(e,t)=>{const o=wi(t);e.slots.default=()=>o},Du=(e,t,o)=>{for(const n in t)(o||!vi(n))&&(e[n]=t[n])},Lm=(e,t,o)=>{const n=e.slots=Tu();if(e.vnode.shapeFlag&32){const a=t._;a?(Du(n,t,o),o&&yc(n,"_",a,!0)):Iu(t,n)}else t&&Ou(e,t)},Am=(e,t,o)=>{const{vnode:n,slots:a}=e;let s=!0,r=at;if(n.shapeFlag&32){const i=t._;i?o&&i===1?s=!1:Du(a,t,o):(s=!t.$stable,Iu(t,a)),r=t}else t&&(Ou(e,t),r={default:1});if(s)for(const i in a)!vi(i)&&r[i]==null&&delete a[i]},Bt=Tm;function Sm(e){return Pm(e)}function Pm(e,t){const o=Ss();o.__VUE__=!0;const{insert:n,remove:a,patchProp:s,createElement:r,createText:i,createComment:l,setText:c,setElementText:u,parentNode:p,nextSibling:d,setScopeId:A=$o,insertStaticContent:w}=e,f=(P,D,I,X=null,Q=null,z=null,pe=void 0,oe=null,_=!!D.dynamicChildren)=>{if(P===D)return;P&&!Cn(P,D)&&(X=fe(P),H(P,Q,z,!0),P=null),D.patchFlag===-2&&(_=!1,D.dynamicChildren=null);const{type:S,ref:B,shapeFlag:te}=D;switch(S){case Ua:v(P,D,I,X);break;case Ft:y(P,D,I,X);break;case Ws:P==null&&h(D,I,X,pe);break;case ze:V(P,D,I,X,Q,z,pe,oe,_);break;default:te&1?E(P,D,I,X,Q,z,pe,oe,_):te&6?U(P,D,I,X,Q,z,pe,oe,_):(te&64||te&128)&&S.process(P,D,I,X,Q,z,pe,oe,_,ge)}B!=null&&Q?Da(B,P&&P.ref,z,D||P,!D):B==null&&P&&P.ref!=null&&Da(P.ref,null,z,P,!0)},v=(P,D,I,X)=>{if(P==null)n(D.el=i(D.children),I,X);else{const Q=D.el=P.el;D.children!==P.children&&c(Q,D.children)}},y=(P,D,I,X)=>{P==null?n(D.el=l(D.children||""),I,X):D.el=P.el},h=(P,D,I,X)=>{[P.el,P.anchor]=w(P.children,D,I,X,P.el,P.anchor)},$=({el:P,anchor:D},I,X)=>{let Q;for(;P&&P!==D;)Q=d(P),n(P,I,X),P=Q;n(D,I,X)},x=({el:P,anchor:D})=>{let I;for(;P&&P!==D;)I=d(P),a(P),P=I;a(D)},E=(P,D,I,X,Q,z,pe,oe,_)=>{if(D.type==="svg"?pe="svg":D.type==="math"&&(pe="mathml"),P==null)m(D,I,X,Q,z,pe,oe,_);else{const S=P.el&&P.el._isVueCE?P.el:null;try{S&&S._beginPatch(),k(P,D,Q,z,pe,oe,_)}finally{S&&S._endPatch()}}},m=(P,D,I,X,Q,z,pe,oe)=>{let _,S;const{props:B,shapeFlag:te,transition:me,dirs:le}=P;if(_=P.el=r(P.type,z,B&&B.is,B),te&8?u(_,P.children):te&16&&g(P.children,_,null,X,Q,ki(P,z),pe,oe),le&&Ln(P,null,X,"created"),b(_,P,P.scopeId,pe,X),B){for(const re in B)re!=="value"&&!xa(re)&&s(_,re,null,B[re],z,X);"value"in B&&s(_,"value",null,B.value,z),(S=B.onVnodeBeforeMount)&&Lo(S,X,P)}le&&Ln(P,null,X,"beforeMount");const Y=Cm(Q,me);Y&&me.beforeEnter(_),n(_,D,I),((S=B&&B.onVnodeMounted)||Y||le)&&Bt(()=>{try{S&&Lo(S,X,P),Y&&me.enter(_),le&&Ln(P,null,X,"mounted")}finally{}},Q)},b=(P,D,I,X,Q)=>{if(I&&A(P,I),X)for(let z=0;z{for(let S=_;S{const oe=D.el=P.el;let{patchFlag:_,dynamicChildren:S,dirs:B}=D;_|=P.patchFlag&16;const te=P.props||at,me=D.props||at;let le;if(I&&Pn(I,!1),(le=me.onVnodeBeforeUpdate)&&Lo(le,I,D,P),B&&Ln(D,P,I,"beforeUpdate"),I&&Pn(I,!0),S&&(!P.dynamicChildren||P.dynamicChildren.length!==S.length)&&(_=0,pe=!1,S=null),(te.innerHTML&&me.innerHTML==null||te.textContent&&me.textContent==null)&&u(oe,""),S?T(P.dynamicChildren,S,oe,I,X,ki(D,Q),z):pe||j(P,D,oe,null,I,X,ki(D,Q),z,!1),_>0){if(_&16)O(oe,te,me,I,Q);else if(_&2&&te.class!==me.class&&s(oe,"class",null,me.class,Q),_&4&&s(oe,"style",te.style,me.style,Q),_&8){const Y=D.dynamicProps;for(let re=0;re{le&&Lo(le,I,D,P),B&&Ln(D,P,I,"updated")},X)},T=(P,D,I,X,Q,z,pe)=>{for(let oe=0;oe{if(D!==I){if(D!==at)for(const z in D)!xa(z)&&!(z in I)&&s(P,z,D[z],null,Q,X);for(const z in I){if(xa(z))continue;const pe=I[z],oe=D[z];pe!==oe&&z!=="value"&&s(P,z,oe,pe,Q,X)}"value"in I&&s(P,"value",D.value,I.value,Q)}},V=(P,D,I,X,Q,z,pe,oe,_)=>{const S=D.el=P?P.el:i(""),B=D.anchor=P?P.anchor:i("");let{patchFlag:te,dynamicChildren:me,slotScopeIds:le}=D;le&&(oe=oe?oe.concat(le):le),P==null?(n(S,I,X),n(B,I,X),g(D.children||[],I,B,Q,z,pe,oe,_)):te>0&&te&64&&me&&P.dynamicChildren&&P.dynamicChildren.length===me.length?(T(P.dynamicChildren,me,I,Q,z,pe,oe),(D.key!=null||Q&&D===Q.subTree)&&xi(P,D,!0)):j(P,D,I,B,Q,z,pe,oe,_)},U=(P,D,I,X,Q,z,pe,oe,_)=>{D.slotScopeIds=oe,P==null?D.shapeFlag&512?Q.ctx.activate(D,I,X,pe,_):G(D,I,X,Q,z,pe,_):C(P,D,_)},G=(P,D,I,X,Q,z,pe)=>{const oe=P.component=Dm(P,X,Q);if(Ba(P)&&(oe.ctx.renderer=ge),Bm(oe,!1,pe),oe.asyncDep){if(Q&&Q.registerDep(oe,L,pe),!P.el){const _=oe.subTree=et(Ft);y(null,_,D,I),P.placeholder=_.el}}else L(oe,P,D,I,Q,z,pe)},C=(P,D,I)=>{const X=D.component=P.component;if(ym(P,D,I))if(X.asyncDep&&!X.asyncResolved){F(X,D,I);return}else X.next=D,X.update();else D.el=P.el,X.vnode=D},L=(P,D,I,X,Q,z,pe)=>{const oe=()=>{if(P.isMounted){let{next:te,bu:me,u:le,parent:Y,vnode:re}=P;{const tt=Bu(P);if(tt){te&&(te.el=re.el,F(P,te,pe)),tt.asyncDep.then(()=>{Bt(()=>{P.isUnmounted||S()},Q)});return}}let ve=te,Ne;Pn(P,!1),te?(te.el=re.el,F(P,te,pe)):te=re,me&&Ls(me),(Ne=te.props&&te.props.onVnodeBeforeUpdate)&&Lo(Ne,Y,te,re),Pn(P,!0);const He=Su(P),lt=P.subTree;P.subTree=He,f(lt,He,p(lt.el),fe(lt),P,Q,z),te.el=He.el,ve===null&&_m(P,He.el),le&&Bt(le,Q),(Ne=te.props&&te.props.onVnodeUpdated)&&Bt(()=>Lo(Ne,Y,te,re),Q)}else{let te;const{el:me,props:le}=D,{bm:Y,m:re,parent:ve,root:Ne,type:He}=P,lt=Jn(D);Pn(P,!1),Y&&Ls(Y),!lt&&(te=le&&le.onVnodeBeforeMount)&&Lo(te,ve,D),Pn(P,!0);{Ne.ce&&Ne.ce._hasShadowRoot()&&Ne.ce._injectChildStyle(He,P.parent?P.parent.type:void 0);const tt=P.subTree=Su(P);f(null,tt,I,X,P,Q,z),D.el=tt.el}if(re&&Bt(re,Q),!lt&&(te=le&&le.onVnodeMounted)){const tt=D;Bt(()=>Lo(te,ve,tt),Q)}(D.shapeFlag&256||ve&&Jn(ve.vnode)&&ve.vnode.shapeFlag&256)&&P.a&&Bt(P.a,Q),P.isMounted=!0,D=I=X=null}};P.scope.on();const _=P.effect=new Sc(oe);P.scope.off();const S=P.update=_.run.bind(_),B=P.job=_.runIfDirty.bind(_);B.i=P,B.id=P.uid,_.scheduler=()=>ci(B),Pn(P,!0),S()},F=(P,D,I)=>{D.component=P;const X=P.vnode.props;P.vnode=D,P.next=null,wm(P,D.props,X,I),Am(P,D.children,I),_o(),Zc(P),vo()},j=(P,D,I,X,Q,z,pe,oe,_=!1)=>{const S=P&&P.children,B=P?P.shapeFlag:0,te=D.children,{patchFlag:me,shapeFlag:le}=D;if(me>0){if(me&128){J(S,te,I,X,Q,z,pe,oe,_);return}else if(me&256){K(S,te,I,X,Q,z,pe,oe,_);return}}le&8?(B&16&&ye(S,Q,z),te!==S&&u(I,te)):B&16?le&16?J(S,te,I,X,Q,z,pe,oe,_):ye(S,Q,z,!0):(B&8&&u(I,""),le&16&&g(te,I,X,Q,z,pe,oe,_))},K=(P,D,I,X,Q,z,pe,oe,_)=>{P=P||Vn,D=D||Vn;const S=P.length,B=D.length,te=Math.min(S,B);let me;for(me=0;meB?ye(P,Q,z,!0,!1,te):g(D,I,X,Q,z,pe,oe,_,te)},J=(P,D,I,X,Q,z,pe,oe,_)=>{let S=0;const B=D.length;let te=P.length-1,me=B-1;for(;S<=te&&S<=me;){const le=P[S],Y=D[S]=_?qo(D[S]):xo(D[S]);if(Cn(le,Y))f(le,Y,I,null,Q,z,pe,oe,_);else break;S++}for(;S<=te&&S<=me;){const le=P[te],Y=D[me]=_?qo(D[me]):xo(D[me]);if(Cn(le,Y))f(le,Y,I,null,Q,z,pe,oe,_);else break;te--,me--}if(S>te){if(S<=me){const le=me+1,Y=leme)for(;S<=te;)H(P[S],Q,z,!0),S++;else{const le=S,Y=S,re=new Map;for(S=Y;S<=me;S++){const ke=D[S]=_?qo(D[S]):xo(D[S]);ke.key!=null&&re.set(ke.key,S)}let ve,Ne=0;const He=me-Y+1;let lt=!1,tt=0;const q=new Array(He);for(S=0;S=He){H(ke,Q,z,!0);continue}let Pe;if(ke.key!=null)Pe=re.get(ke.key);else for(ve=Y;ve<=me;ve++)if(q[ve-Y]===0&&Cn(ke,D[ve])){Pe=ve;break}Pe===void 0?H(ke,Q,z,!0):(q[Pe-Y]=S+1,Pe>=tt?tt=Pe:lt=!0,f(ke,D[Pe],I,null,Q,z,pe,oe,_),Ne++)}const ne=lt?Em(q):Vn;for(ve=ne.length-1,S=He-1;S>=0;S--){const ke=Y+S,Pe=D[ke],Me=D[ke+1],gt=ke+1{const{el:z,type:pe,transition:oe,children:_,shapeFlag:S}=P;if(S&6){ce(P.component.subTree,D,I,X);return}if(S&128){P.suspense.move(D,I,X);return}if(S&64){pe.move(P,D,I,ge);return}if(pe===ze){n(z,D,I);for(let te=0;te<_.length;te++)ce(_[te],D,I,X);n(P.anchor,D,I);return}if(pe===Ws){$(P,D,I);return}if(X!==2&&S&1&&oe)if(X===0)oe.persisted&&!z[oo]?n(z,D,I):(oe.beforeEnter(z),n(z,D,I),Bt(()=>oe.enter(z),Q));else{const{leave:te,delayLeave:me,afterLeave:le}=oe,Y=()=>{P.ctx.isUnmounted?a(z):n(z,D,I)},re=()=>{const ve=z._isLeaving||!!z[oo];z._isLeaving&&z[oo](!0),oe.persisted&&!ve?Y():te(z,()=>{Y(),le&&le()})};me?me(z,Y,re):re()}else n(z,D,I)},H=(P,D,I,X=!1,Q=!1)=>{const{type:z,props:pe,ref:oe,children:_,dynamicChildren:S,shapeFlag:B,patchFlag:te,dirs:me,cacheIndex:le,memo:Y}=P;if(te===-2&&(Q=!1),oe!=null&&(_o(),Da(oe,null,I,P,!0),vo()),le!=null&&(D.renderCache[le]=void 0),B&256){D.ctx.deactivate(P);return}const re=B&1&&me,ve=!Jn(P);let Ne;if(ve&&(Ne=pe&&pe.onVnodeBeforeUnmount)&&Lo(Ne,D,P),B&6)he(P.component,I,X);else{if(B&128){P.suspense.unmount(I,X);return}re&&Ln(P,null,D,"beforeUnmount"),B&64?P.type.remove(P,D,I,ge,X):S&&!S.hasOnce&&(z!==ze||te>0&&te&64)?ye(S,D,I,!1,!0):(z===ze&&te&384||!Q&&B&16)&&ye(_,D,I),X&&$e(P)}const He=Y!=null&&le==null;(ve&&(Ne=pe&&pe.onVnodeUnmounted)||re||He)&&Bt(()=>{Ne&&Lo(Ne,D,P),re&&Ln(P,null,D,"unmounted"),He&&(P.el=null)},I)},$e=P=>{const{type:D,el:I,anchor:X,transition:Q}=P;if(D===ze){_e(I,X);return}if(D===Ws){x(P);return}const z=()=>{a(I),Q&&!Q.persisted&&Q.afterLeave&&Q.afterLeave()};if(P.shapeFlag&1&&Q&&!Q.persisted){const{leave:pe,delayLeave:oe}=Q,_=()=>pe(I,z);oe?oe(P.el,z,_):_()}else z()},_e=(P,D)=>{let I;for(;P!==D;)I=d(P),a(P),P=I;a(D)},he=(P,D,I)=>{const{bum:X,scope:Q,job:z,subTree:pe,um:oe,m:_,a:S}=P;Gu(_),Gu(S),X&&Ls(X),Q.stop(),z&&(z.flags|=8,H(pe,P,D,I)),oe&&Bt(oe,D),Bt(()=>{P.isUnmounted=!0},D)},ye=(P,D,I,X=!1,Q=!1,z=0)=>{for(let pe=z;pe{if(P.shapeFlag&6)return fe(P.component.subTree);if(P.shapeFlag&128)return P.suspense.next();const D=d(P.anchor||P.el),I=D&&D[ou];return I?d(I):D};let ie=!1;const we=(P,D,I)=>{let X;P==null?D._vnode&&(H(D._vnode,null,null,!0),X=D._vnode.component):f(D._vnode||null,P,D,null,null,null,I),D._vnode=P,ie||(ie=!0,Zc(X),Jc(),ie=!1)},ge={p:f,um:H,m:ce,r:$e,mt:G,mc:g,pc:j,pbc:T,n:fe,o:e};return{render:we,hydrate:void 0,createApp:gm(we)}}function ki({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 Pn({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Cm(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function xi(e,t,o=!1){const n=e.children,a=t.children;if(Ee(n)&&Ee(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 Bu(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Bu(t)}function Gu(e){if(e)for(let t=0;te.__isSuspense;function Tm(e,t){t&&t.pendingBranch?Ee(e)?t.effects.push(...e):t.effects.push(e):Mh(e)}const ze=Symbol.for("v-fgt"),Ua=Symbol.for("v-txt"),Ft=Symbol.for("v-cmt"),Ws=Symbol.for("v-stc"),Ho=[];let Wt=null;function Z(e=!1){Ho.push(Wt=e?null:[])}function Li(){Ho.pop(),Wt=Ho[Ho.length-1]||null}let Va=1;function Ys(e,t=!1){Va+=e,e<0&&Wt&&t&&(Wt.hasOnce=!0)}function Uu(e){return e.dynamicChildren=Va>0?Wt||Vn:null,Li(),Va>0&&Wt&&Wt.push(e),e}function se(e,t,o,n,a,s){return Uu(R(e,t,o,n,a,s,!0))}function We(e,t,o,n,a){return Uu(et(e,t,o,n,a,!0))}function Ka(e){return e?e.__v_isVNode===!0:!1}function Cn(e,t){return e.type===t.type&&e.key===t.key}const Vu=({key:e})=>e??null,Xs=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?st(e)||ut(e)||De(e)?{i:Pt,r:e,k:t,f:!!o}:e:null);function R(e,t=null,o=null,n=0,a=null,s=e===ze?0:1,r=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Vu(t),ref:t&&Xs(t),scopeId:eu,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:Pt};return i?(Zs(l,o),s&128&&e.normalize(l)):o&&(l.shapeFlag|=st(o)?8:16),Va>0&&!r&&Wt&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&Wt.push(l),l}const et=Nm;function Nm(e,t=null,o=null,n=0,a=null,s=!1){if((!e||e===hu)&&(e=Ft),Ka(e)){const i=ln(e,t,!0);return o&&Zs(i,o),Va>0&&!s&&Wt&&(i.shapeFlag&6?Wt[Wt.indexOf(e)]=i:Wt.push(i)),i.patchFlag=-2,i}if(Km(e)&&(e=e.__vccOpts),t){t=Rm(t);let{class:i,style:l}=t;i&&!st(i)&&(t.class=Re(i)),Qe(l)&&(Ms(l)&&!Ee(l)&&(l=ft({},l)),t.style=Ye(l))}const r=st(e)?1:zu(e)?128:Gs(e)?64:Qe(e)?4:De(e)?2:0;return R(e,t,o,n,a,r,s,!0)}function Rm(e){return e?Ms(e)||Nu(e)?ft({},e):e:null}function ln(e,t,o=!1,n=!1){const{props:a,ref:s,patchFlag:r,children:i,transition:l}=e,c=t?Fm(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Vu(c),ref:t&&t.ref?o&&s?Ee(s)?s.concat(Xs(t)):[s,Xs(t)]:Xs(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!==ze?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&&ln(e.ssContent),ssFallback:e.ssFallback&&ln(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&Ia(u,l.clone(u)),u}function bt(e=" ",t=0){return et(Ua,null,e,t)}function Mm(e,t){const o=et(Ws,null,e);return o.staticCount=t,o}function Le(e="",t=!1){return t?(Z(),We(Ft,null,e)):et(Ft,null,e)}function xo(e){return e==null||typeof e=="boolean"?et(Ft):Ee(e)?et(ze,null,e.slice()):Ka(e)?qo(e):et(Ua,null,String(e))}function qo(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ln(e)}function Zs(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(Ee(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&&!Nu(t)?t._ctx=Pt:a===3&&Pt&&(Pt.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:Pt},o=32}else t=String(t),n&64?(o=16,t=[bt(t)]):o=8;e.children=t,e.shapeFlag|=o}function Fm(...e){const t={};for(let o=0;oEt||Pt;let Js,Ha;{const e=Ss(),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)}};Js=t("__VUE_INSTANCE_SETTERS__",o=>Et=o),Ha=t("__VUE_SSR_SETTERS__",o=>Qn=o)}const qa=e=>{const t=Et;return Js(e),e.scope.on(),()=>{e.scope.off(),Js(t)}},Ku=()=>{Et&&Et.scope.off(),Js(null)};function Hu(e){return e.vnode.shapeFlag&4}let Qn=!1;function Bm(e,t=!1,o=!1){t&&Ha(t);const{props:n,children:a}=e.vnode,s=Hu(e);vm(e,n,s,t),Lm(e,a,o||t);const r=s?Gm(e,t):void 0;return t&&Ha(!1),r}function Gm(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,rm);const{setup:n}=o;if(n){_o();const a=e.setupContext=n.length>1?zm(e):null,s=qa(e),r=Yn(n,e,0,[e.props,a]),i=bc(r);if(vo(),s(),(i||e.sp)&&!Jn(e)&&hi(e),i){if(r.then(Ku,Ku),t)return r.then(l=>{Ha(!0);try{qu(e,l,t)}finally{Ha(!1)}}).catch(l=>{Na(l,e,0)});e.asyncDep=r}else qu(e,r)}else Wu(e)}function qu(e,t,o){De(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Qe(t)&&(e.setupState=Hc(t)),Wu(e)}function Wu(e,t,o){const n=e.type;e.render||(e.render=n.render||$o);{const a=qa(e);_o();try{im(e)}finally{vo(),a()}}}const jm={get(e,t){return Rt(e,"get",""),e[t]}};function zm(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,jm),slots:e.slots,emit:e.emit,expose:t}}function Qs(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Hc(qn(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in ja)return ja[o](e)},has(t,o){return o in t||o in ja}})):e.proxy}const Um=/(?:^|[-_])\w/g,Vm=e=>e.replace(Um,t=>t.toUpperCase()).replace(/[-_]/g,"");function Yu(e,t=!0){return De(e)?e.displayName||e.name:e.name||t&&e.__name}function Xu(e,t,o=!1){let n=Yu(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?Vm(n):o?"App":"Anonymous"}function Km(e){return De(e)&&"__vccOpts"in e}const ee=(e,t)=>Lh(e,t,Qn);function Ai(e,t,o){try{Ys(-1);const n=arguments.length;return n===2?Qe(t)&&!Ee(t)?Ka(t)?et(e,null,[t]):et(e,t):et(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&Ka(o)&&(o=[o]),et(e,t,o))}finally{Ys(1)}}const Hm="3.5.42";/** +`,...Th(a)),console.warn(...s)}vo(),li=!1}function Eh(){let e=Ta[Ta.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 Th(e){const t=[];return e.forEach((o,n)=>{t.push(...n===0?[]:[` +`],...Nh(o))}),t}function Nh({vnode:e,recurseCount:t}){const o=t>0?`... (${t} recursive calls)`:"",n=e.component?e.component.parent==null:!1,a=` at <${Xu(e.component,e.type,n)}`,s=">"+o;return e.props?[a,...Rh(e.props),s]:[a+s]}function Rh(e){const t=[],o=Object.keys(e);return o.slice(0,3).forEach(n=>{t.push(...Wc(n,e[n]))}),o.length>3&&t.push(" ..."),t}function Wc(e,t,o){return st(t)?(t=JSON.stringify(t),o?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?o?t:[`${e}=${t}`]:ut(t)?(t=Wc(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 Xn(e,t,o,n){try{return n?e(...n):e()}catch(a){Na(a,t,o)}}function eo(e,t,o,n){if(De(e)){const a=Xn(e,t,o,n);return a&&bc(a)&&a.catch(s=>{Na(s,t,o)}),a}if(Ee(e)){const a=[];for(let s=0;s>>1,a=Ot[n],s=Ra(a);s=Ra(o)?Ot.push(e):Ot.splice(Fh(t),0,e),e.flags|=1,Xc()}}function Xc(){Ds||(Ds=Yc.then(Qc))}function Ih(e){if(!Ee(e))sn&&e.id===-1?sn.splice(Jn+1,0,e):e.flags&1||(Zn.push(e),e.flags|=1);else for(let t=0;tRa(o)-Ra(n));if(Zn.length=0,sn){for(let o=0;oe.id==null?e.flags&2?-1:1/0:e.id;function Qc(e){try{for(ko=0;ko{n._d&&Ys(-1);const s=Bs(t),r=Ho.length;let i;try{i=e(...a)}finally{for(let l=Ho.length;l>r;l--)Li();Bs(s),n._d&&Ys(1)}return i};return n._n=!0,n._c=!0,n._d=!0,n}function to(e,t){if(Pt===null)return e;const o=Qs(Pt),n=e.dirs||(e.dirs=[]);for(let a=0;a1)return o&&De(t)?t.call(n&&n.proxy):t}}function Oh(){return!!(po()||Sn)}const Dh=Symbol.for("v-scx"),Bh=()=>Te(Dh);function Gh(e,t){return ui(e,null,t)}function Me(e,t,o){return ui(e,t,o)}function ui(e,t,o=at){const{immediate:n,deep:a,flush:s,once:r}=o,i=ft({},o),l=t&&n||!t&&s!=="post";let c;if(ea){if(s==="sync"){const A=Bh();c=A.__watcherHandles||(A.__watcherHandles=[])}else if(!l){const A=()=>{};return A.stop=$o,A.resume=$o,A.pause=$o,A}}const u=Et;i.call=(A,k,f)=>eo(A,u,k,f);let p=!1;s==="post"?i.scheduler=A=>{Bt(A,u&&u.suspense)}:s!=="sync"&&(p=!0,i.scheduler=(A,k)=>{k?A():ci(A)}),i.augmentJob=A=>{t&&(A.flags|=4),p&&(A.flags|=2,u&&(A.id=u.uid,A.i=u))};const d=Ch(e,t,i);return ea&&(c?c.push(d):l&&d()),d}function jh(e,t,o){const n=this.proxy,a=st(e)?e.includes(".")?tu(n,e):()=>n[e]:e.bind(n,n);let s;De(t)?s=t:(s=t.handler,o=t);const r=qa(this),i=ui(a,s.bind(n),o);return r(),i}function tu(e,t){const o=t.split(".");return()=>{let n=e;for(let a=0;ae.__isTeleport,An=e=>e&&(e.disabled||e.disabled===""),zh=e=>e&&(e.defer||e.defer===""),nu=e=>typeof SVGElement<"u"&&e instanceof SVGElement,au=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,pi=(e,t)=>{const o=e&&e.to;return st(o)?t?t(o):null:o},Uh={name:"Teleport",__isTeleport:!0,process(e,t,o,n,a,s,r,i,l,c){const{mc:u,pc:p,pbc:d,o:{insert:A,querySelector:k,createText:f,createComment:w,parentNode:y}}=c,h=An(t.props);let{dynamicChildren:$}=t;const x=(b,g,_)=>{b.shapeFlag&16&&u(b.children,g,_,a,s,r,i,l)},E=(b=t)=>{const g=An(b.props),_=b.target=pi(b.props,k),T=di(_,b,f,A);_&&(r!=="svg"&&nu(_)?r="svg":r!=="mathml"&&au(_)&&(r="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(_),g||(x(b,_,T),Ma(b,!1)))},m=b=>{const g=()=>{if(rn.get(b)===g){if(rn.delete(b),An(b.props)){const _=y(b.el)||o;x(b,_,b.anchor),Ma(b,!0)}E(b)}};rn.set(b,g),Bt(g,s)};if(e==null){const b=t.el=f(""),g=t.anchor=f("");if(A(b,o,n),A(g,o,n),zh(t.props)||s&&s.pendingBranch){m(t);return}h&&(x(t,o,g),Ma(t,!0)),E()}else{t.el=e.el;const b=t.anchor=e.anchor,g=rn.get(e);if(g){g.flags|=8,rn.delete(e),m(t);return}t.targetStart=e.targetStart;const _=t.target=e.target,T=t.targetAnchor=e.targetAnchor,B=An(e.props),V=B?o:_,j=B?b:T;if(r==="svg"||nu(_)?r="svg":(r==="mathml"||au(_))&&(r="mathml"),$?(d(e.dynamicChildren,$,V,a,s,r,i),xi(e,t,!0)):l||p(e,t,V,j,a,s,r,i,!1),h)B?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):js(t,o,b,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const G=pi(t.props,k);G&&(t.target=G,js(t,G,null,c,0))}else B&&js(t,_,T,c,1);Ma(t,h)}},remove(e,t,o,{um:n,o:{remove:a}},s){const{shapeFlag:r,children:i,anchor:l,targetStart:c,targetAnchor:u,target:p,props:d}=e,A=An(d),k=s||!A,f=rn.get(e);if(f&&(f.flags|=8,rn.delete(e)),p&&(a(c),a(u)),s&&a(l),!f&&(A||p)&&r&16)for(let w=0;w{e.isMounted=!0}),qt(()=>{e.isUnmounting=!0}),e}const no=[Function,Array],su={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:no,onEnter:no,onAfterEnter:no,onEnterCancelled:no,onBeforeLeave:no,onLeave:no,onAfterLeave:no,onLeaveCancelled:no,onBeforeAppear:no,onAppear:no,onAfterAppear:no,onAppearCancelled:no},ru=e=>{const t=e.subTree;return t.component?ru(t.component):t},qh={name:"BaseTransition",props:su,setup(e,{slots:t}){const o=po(),n=Hh();return()=>{const a=t.default&&cu(t.default(),!0),s=a&&a.length?iu(a):o.subTree?xe():void 0;if(!s)return;const r=Ve(e),{mode:i}=r;if(n.isLeaving)return fi(s);const l=zs(s);if(!l)return fi(s);let c=gi(l,r,n,o,p=>c=p);l.type!==Ft&&Ia(l,c);let u=o.subTree&&zs(o.subTree);if(u&&u.type!==Ft&&!Cn(u,l)&&ru(o).type!==Ft){let p=gi(u,r,n,o);if(Ia(u,p),i==="out-in"&&l.type!==Ft)return n.isLeaving=!0,p.afterLeave=()=>{n.isLeaving=!1,o.job.flags&8||o.update(),delete p.afterLeave,u=void 0},fi(s);i==="in-out"&&l.type!==Ft?p.delayLeave=(d,A,k)=>{const f=lu(n,u);f[String(u.key)]=u,d[oo]=()=>{A(),d[oo]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{k(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return s}}};function iu(e){let t=e[0];if(e.length>1){for(const o of e)if(o.type!==Ft){t=o;break}}return t}const Wh=qh;function lu(e,t){const{leavingVNodes:o}=e;let n=o.get(t.type);return n||(n=Object.create(null),o.set(t.type,n)),n}function gi(e,t,o,n,a){const{appear:s,mode:r,persisted:i=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:p,onBeforeLeave:d,onLeave:A,onAfterLeave:k,onLeaveCancelled:f,onBeforeAppear:w,onAppear:y,onAfterAppear:h,onAppearCancelled:$}=t,x=String(e.key),E=lu(o,e),m=(_,T)=>{_&&eo(_,n,9,T)},b=(_,T)=>{const B=T[1];m(_,T),Ee(_)?_.every(V=>V.length<=1)&&B():_.length<=1&&B()},g={mode:r,persisted:i,beforeEnter(_){let T=l;if(!o.isMounted)if(s)T=w||l;else return;_[oo]&&_[oo](!0);const B=E[x];B&&Cn(e,B)&&B.el[oo]&&B.el[oo](),m(T,[_])},enter(_){if(E[x]===e)return;let T=c,B=u,V=p;if(!o.isMounted)if(s)T=y||c,B=h||u,V=$||p;else return;let j=!1;_[Fa]=C=>{j||(j=!0,C?m(V,[_]):m(B,[_]),g.delayedLeave&&g.delayedLeave(),_[Fa]=void 0)};const G=_[Fa].bind(null,!1);T?b(T,[_,G]):G()},leave(_,T){const B=String(e.key);if(_[Fa]&&_[Fa](!0),o.isUnmounting)return T();m(d,[_]);let V=!1;_[oo]=G=>{V||(V=!0,T(),G?m(f,[_]):m(k,[_]),_[oo]=void 0,E[B]===e&&delete E[B])};const j=_[oo].bind(null,!1);E[B]=e,A?b(A,[_,j]):j()},clone(_){const T=gi(_,t,o,n,a);return a&&a(T),T}};return g}function fi(e){if(Ba(e))return e=ln(e),e.children=null,e}function zs(e){if(!Ba(e))return Gs(e.type)&&e.children?iu(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 Ia(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const o=e.component.subTree;Ia(Gs(o.type)&&zs(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 cu(e,t=!1,o){let n=[],a=0;for(let s=0;s1)for(let s=0;sDa(f,t&&(Ee(t)?t[w]:t),o,n,a));return}if(Qn(n)&&!a){n.shapeFlag&512&&n.type.__asyncResolved&&n.component.subTree.component&&Da(e,t,o,n.component.subTree);return}const s=n.shapeFlag&4?Qs(n.component):n.el,r=a?null:s,{i,r:l}=e,c=t&&t.r,u=i.refs===at?i.refs={}:i.refs,p=i.setupState,d=Ve(p),A=p===at?hc:f=>uu(u,f)?!1:Je(d,f),k=(f,w)=>!(w&&uu(u,w));if(c!=null&&c!==l){if(pu(t),st(c))u[c]=null,A(c)&&(p[c]=null);else if(ut(c)){const f=t;k(c,f.k)&&(c.value=null),f.k&&(u[f.k]=null)}}if(De(l))Xn(l,i,12,[r,u]);else{const f=st(l),w=ut(l);if(f||w){const y=()=>{if(e.f){const h=f?A(l)?p[l]:u[l]:k()||!e.k?l.value:u[e.k];if(a)Ee(h)&&Hr(h,s);else if(Ee(h))h.includes(s)||h.push(s);else if(f)u[l]=[s],A(l)&&(p[l]=u[l]);else{const $=[s];k(l,e.k)&&(l.value=$),e.k&&(u[e.k]=$)}}else f?(u[l]=r,A(l)&&(p[l]=r)):w&&(k(l,e.k)&&(l.value=r),e.k&&(u[e.k]=r))};if(r){const h=()=>{y(),Us.delete(e)};h.id=-1,Us.set(e,h),Bt(h,o)}else pu(e),y()}}}function pu(e){const t=Us.get(e);t&&(t.flags|=8,Us.delete(e))}const du=e=>e.nodeType===8;Ss().requestIdleCallback,Ss().cancelIdleCallback;function Yh(e,t){if(du(e)&&e.data==="["){let o=1,n=e.nextSibling;for(;n;){if(n.nodeType===1){if(t(n)===!1)break}else if(du(n))if(n.data==="]"){if(--o===0)break}else n.data==="["&&o++;n=n.nextSibling}}else t(e)}const Qn=e=>!!e.type.__asyncLoader;function Xh(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,p=0;const d=()=>(p++,c=null,A()),A=()=>{let k;return c||(k=c=t().catch(f=>{if(f=f instanceof Error?f:new Error(String(f)),l)return new Promise((w,y)=>{l(f,()=>w(d()),()=>y(f),p+1)});throw f}).then(f=>k!==c&&c?c:(f&&(f.__esModule||f[Symbol.toStringTag]==="Module")&&(f=f.default),u=f,f)))};return Oa({name:"AsyncComponentWrapper",__asyncLoader:A,__asyncHydrate(k,f,w){const y=k.isConnected;let h=!1;(f.bu||(f.bu=[])).push(()=>h=!0);const $=()=>{h||!k.parentNode||y&&!k.isConnected||w()},x=s?()=>{const E=s($,m=>Yh(k,m));E&&(f.bum||(f.bum=[])).push(E)}:$;u?x():A().then(()=>!f.isUnmounted&&x())},get __asyncResolved(){return u},setup(){const k=Et;if(hi(k),u)return()=>Vs(u,k);const f=E=>{c=null,Na(E,k,13,!n)};if(i&&k.suspense||ea)return A().then(E=>()=>Vs(E,k)).catch(E=>(f(E),()=>n?et(n,{error:E}):null));const w=ge(!1),y=ge(),h=ge(!!a);let $,x;return Ga(()=>{$!=null&&clearTimeout($),x!=null&&clearTimeout(x)}),a&&(x=setTimeout(()=>{k.isUnmounted||(h.value=!1)},a)),r!=null&&($=setTimeout(()=>{if(!k.isUnmounted&&!w.value&&!y.value){const E=new Error(`Async component timed out after ${r}ms.`);f(E),y.value=E}},r)),A().then(()=>{k.isUnmounted||(w.value=!0,k.parent&&Ba(k.parent.vnode)&&k.parent.update())}).catch(E=>{if(k.isUnmounted){c=null;return}f(E),y.value=E}),()=>{if(w.value&&u)return Vs(u,k);if(y.value&&n)return et(n,{error:y.value});if(o&&!h.value)return Vs(o,k)}}})}function Vs(e,t){const{ref:o,props:n,children:a,ce:s}=t.vnode,r=et(e,n,a);return r.ref=o,r.ce=s,delete t.vnode.ce,r}const Ba=e=>e.type.__isKeepAlive;function Zh(e,t){gu(e,"a",t)}function Jh(e,t){gu(e,"da",t)}function gu(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(Ks(t,n,o),o){let a=o.parent;for(;a&&a.parent;)Ba(a.parent.vnode)&&Qh(n,t,o,a),a=a.parent}}function Qh(e,t,o,n){const a=Ks(t,e,n,!0);Ga(()=>{Hr(n[t],a)},o)}function Ks(e,t,o=Et,n=!1){if(o){const a=o[e]||(o[e]=[]),s=t.__weh||(t.__weh=(...r)=>{_o();const i=qa(o),l=eo(t,o,e,r);return i(),vo(),l});return n?a.unshift(s):a.push(s),s}}const Vo=e=>(t,o=Et)=>{(!ea||e==="sp")&&Ks(e,(...n)=>t(...n),o)},fu=Vo("bm"),ao=Vo("m"),em=Vo("bu"),tm=Vo("u"),qt=Vo("bum"),Ga=Vo("um"),om=Vo("sp"),nm=Vo("rtg"),am=Vo("rtc");function sm(e,t=Et){Ks("ec",e,t)}const rm="components",hu=Symbol.for("v-ndc");function mu(e){return st(e)?im(rm,e,!1)||e:e||hu}function im(e,t,o=!0,n=!1){const a=Pt||Et;if(a){const s=a.type;{const i=Yu(s,!1);if(i&&(i===t||i===xt(t)||i===xs(xt(t))))return s}const r=bu(a[e]||s[e],t)||bu(a.appContext[e],t);return!r&&n?s:r}}function bu(e,t){return e&&(e[t]||e[xt(t)]||e[xs(xt(t))])}function Ct(e,t,o,n){let a;const s=o,r=Ee(e);if(r||st(e)){const i=r&&jo(e);let l=!1,c=!1;i&&(l=!Ht(e),c=zo(e),e=Cs(e)),a=new Array(e.length);for(let u=0,p=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),Z(),We(ze,null,[et("slot",c,n&&n())],u?-2:64)}let r=e[t];r&&r._c&&(r._d=!1);const i=Ho.length;Z();let l;try{const c=r&&$u(r(o)),u=o.key||s||c&&c.key;l=We(ze,{key:(u&&!Kt(u)?u:`_${t}`)+(!c&&n?"_fb":"")},c||(n?n():[]),c&&e._===1?64:-2)}catch(c){for(let u=Ho.length;u>i;u--)Li();throw c}finally{r&&r._c&&(r._d=!0)}return!a&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),l}function $u(e){return e.some(t=>Ka(t)?!(t.type===Ft||t.type===ze&&!$u(t.children)):!0)?e:null}const mi=e=>e?Hu(e)?Qs(e):mi(e.parent):null,ja=ft(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=>mi(e.parent),$root:e=>mi(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>wu(e),$forceUpdate:e=>e.f||(e.f=()=>{ci(e.update)}),$nextTick:e=>e.n||(e.n=Mt.bind(e.proxy)),$watch:e=>jh.bind(e)}),bi=(e,t)=>e!==at&&!e.__isScriptSetup&&Je(e,t),lm={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 d=r[t];if(d!==void 0)switch(d){case 1:return n[t];case 2:return a[t];case 4:return o[t];case 3:return s[t]}else{if(bi(n,t))return r[t]=1,n[t];if(a!==at&&Je(a,t))return r[t]=2,a[t];if(Je(s,t))return r[t]=3,s[t];if(o!==at&&Je(o,t))return r[t]=4,o[t];$i&&(r[t]=0)}}const c=ja[t];let u,p;if(c)return t==="$attrs"&&Rt(e.attrs,"get",""),c(e);if((u=i.__cssModules)&&(u=u[t]))return u;if(o!==at&&Je(o,t))return r[t]=4,o[t];if(p=l.config.globalProperties,Je(p,t))return p[t]},set({_:e},t,o){const{data:n,setupState:a,ctx:s}=e;return bi(a,t)?(a[t]=o,!0):n!==at&&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!==at&&i[0]!=="$"&&Je(e,i)||bi(t,i)||Je(s,i)||Je(n,i)||Je(ja,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 yu(e){return Ee(e)?e.reduce((t,o)=>(t[o]=null,t),{}):e}let $i=!0;function cm(e){const t=wu(e),o=e.proxy,n=e.ctx;$i=!1,t.beforeCreate&&_u(t.beforeCreate,e,"bc");const{data:a,computed:s,methods:r,watch:i,provide:l,inject:c,created:u,beforeMount:p,mounted:d,beforeUpdate:A,updated:k,activated:f,deactivated:w,beforeDestroy:y,beforeUnmount:h,destroyed:$,unmounted:x,render:E,renderTracked:m,renderTriggered:b,errorCaptured:g,serverPrefetch:_,expose:T,inheritAttrs:B,components:V,directives:j,filters:G}=t;if(c&&um(c,n,null),r)for(const M in r){const z=r[M];De(z)&&(n[M]=z.bind(o))}if(a){const M=a.call(o,o);Qe(M)&&(e.data=qn(M))}if($i=!0,s)for(const M in s){const z=s[M],K=De(z)?z.bind(o,o):De(z.get)?z.get.bind(o,o):$o,J=!De(z)&&De(z.set)?z.set.bind(o):$o,ce=ee({get:K,set:J});Object.defineProperty(n,M,{enumerable:!0,configurable:!0,get:()=>ce.value,set:H=>ce.value=H})}if(i)for(const M in i)vu(i[M],n,o,M);if(l){const M=De(l)?l.call(o):l;Reflect.ownKeys(M).forEach(z=>{vt(z,M[z])})}u&&_u(u,e,"c");function L(M,z){Ee(z)?z.forEach(K=>M(K.bind(o))):z&&M(z.bind(o))}if(L(fu,p),L(ao,d),L(em,A),L(tm,k),L(Zh,f),L(Jh,w),L(sm,g),L(am,m),L(nm,b),L(qt,h),L(Ga,x),L(om,_),Ee(T))if(T.length){const M=e.exposed||(e.exposed={});T.forEach(z=>{Object.defineProperty(M,z,{get:()=>o[z],set:K=>o[z]=K,enumerable:!0})})}else e.exposed||(e.exposed={});E&&e.render===$o&&(e.render=E),B!=null&&(e.inheritAttrs=B),V&&(e.components=V),j&&(e.directives=j),_&&hi(e)}function um(e,t,o=$o){Ee(e)&&(e=yi(e));for(const n in e){const a=e[n];let s;Qe(a)?"default"in a?s=Te(a.from||n,a.default,!0):s=Te(a.from||n):s=Te(a),ut(s)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>s.value,set:r=>s.value=r}):t[n]=s}}function _u(e,t,o){eo(Ee(e)?e.map(n=>n.bind(t.proxy)):e.bind(t.proxy),t,o)}function vu(e,t,o,n){let a=n.includes(".")?tu(o,n):()=>o[n];if(st(e)){const s=t[e];De(s)&&Me(a,s)}else if(De(e))Me(a,e.bind(o));else if(Qe(e))if(Ee(e))e.forEach(s=>vu(s,t,o,n));else{const s=De(e.handler)?e.handler.bind(o):t[e.handler];De(s)&&Me(a,s,e)}}function wu(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=>Hs(l,c,r,!0)),Hs(l,t,r)),Qe(t)&&s.set(t,l),l}function Hs(e,t,o,n=!1){const{mixins:a,extends:s}=t;s&&Hs(e,s,o,!0),a&&a.forEach(r=>Hs(e,r,o,!0));for(const r in t)if(!(n&&r==="expose")){const i=pm[r]||o&&o[r];e[r]=i?i(e[r],t[r]):t[r]}return e}const pm={data:ku,props:xu,emits:xu,methods:za,computed:za,beforeCreate:Dt,created:Dt,beforeMount:Dt,mounted:Dt,beforeUpdate:Dt,updated:Dt,beforeDestroy:Dt,beforeUnmount:Dt,destroyed:Dt,unmounted:Dt,activated:Dt,deactivated:Dt,errorCaptured:Dt,serverPrefetch:Dt,components:za,directives:za,watch:gm,provide:ku,inject:dm};function ku(e,t){return t?e?function(){return ft(De(e)?e.call(this,this):e,De(t)?t.call(this,this):t)}:t:e}function dm(e,t){return za(yi(e),yi(t))}function yi(e){if(Ee(e)){const t={};for(let o=0;ot==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${xt(t)}Modifiers`]||e[`${Qt(t)}Modifiers`];function bm(e,t,...o){if(e.isUnmounted)return;const n=e.vnode.props||at;let a=o;const s=t.startsWith("update:"),r=s&&mm(n,t.slice(7));r&&(r.trim&&(a=o.map(u=>st(u)?u.trim():u)),r.number&&(a=a.map(As)));let i,l=n[i=qr(t)]||n[i=qr(xt(t))];!l&&s&&(l=n[i=qr(Qt(t))]),l&&eo(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,eo(c,e,6,a)}}const $m=new WeakMap;function Au(e,t,o=!1){const n=o?$m: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=Au(c,t,!0);u&&(i=!0,ft(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):(Ee(s)?s.forEach(l=>r[l]=null):ft(r,s),Qe(e)&&n.set(e,r),r)}function qs(e,t){return!e||!ys(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Je(e,t[0].toLowerCase()+t.slice(1))||Je(e,Qt(t))||Je(e,t))}function _2(){}function Su(e){const{type:t,vnode:o,proxy:n,withProxy:a,propsOptions:[s],slots:r,attrs:i,emit:l,render:c,renderCache:u,props:p,data:d,setupState:A,ctx:k,inheritAttrs:f}=e,w=Bs(e);let y,h;try{if(o.shapeFlag&4){const x=a||n,E=x;y=xo(c.call(E,x,u,p,A,d,k)),h=i}else{const x=t;y=xo(x.length>1?x(p,{attrs:i,slots:r,emit:l}):x(p,null)),h=t.props?i:ym(i)}}catch(x){Ho.length=0,Na(x,e,1),y=et(Ft)}let $=y;if(h&&f!==!1){const x=Object.keys(h),{shapeFlag:E}=$;x.length&&E&7&&(s&&x.some(_s)&&(h=_m(h,s)),$=ln($,h,!1,!0))}if(o.dirs&&($=ln($,null,!1,!0),$.dirs=$.dirs?$.dirs.concat(o.dirs):o.dirs),o.transition){const x=Gs($.type)&&zs($)||$;Ia(x,o.transition)}return y=$,Bs(w),y}const ym=e=>{let t;for(const o in e)(o==="class"||o==="style"||ys(o))&&((t||(t={}))[o]=e[o]);return t},_m=(e,t)=>{const o={};for(const n in e)(!_s(n)||!(n.slice(9)in t))&&(o[n]=e[n]);return o};function vm(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?Pu(n,r,c):!!r;if(l&8){const u=t.dynamicProps;for(let p=0;pObject.create(Eu),Nu=e=>Object.getPrototypeOf(e)===Eu;function km(e,t,o,n=!1){const a={},s=Tu();e.propsDefaults=Object.create(null),Ru(e,t,a,s);for(const r in e.propsOptions[0])r in a||(a[r]=void 0);o?e.props=n?a:_h(a):e.type.props?e.props=a:e.props=s,e.attrs=s}function xm(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 p=0;p{l=!0;const[d,A]=Mu(p,t,!0);ft(r,d),A&&i.push(...A)};!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,Kn),Kn;if(Ee(s))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",wi=e=>Ee(e)?e.map(xo):[xo(e)],Am=(e,t,o)=>{if(t._n)return t;const n=Ut((...a)=>wi(t(...a)),o);return n._c=!1,n},Iu=(e,t,o)=>{const n=e._ctx;for(const a in e){if(vi(a))continue;const s=e[a];if(De(s))t[a]=Am(a,s,n);else if(s!=null){const r=wi(s);t[a]=()=>r}}},Ou=(e,t)=>{const o=wi(t);e.slots.default=()=>o},Du=(e,t,o)=>{for(const n in t)(o||!vi(n))&&(e[n]=t[n])},Sm=(e,t,o)=>{const n=e.slots=Tu();if(e.vnode.shapeFlag&32){const a=t._;a?(Du(n,t,o),o&&yc(n,"_",a,!0)):Iu(t,n)}else t&&Ou(e,t)},Pm=(e,t,o)=>{const{vnode:n,slots:a}=e;let s=!0,r=at;if(n.shapeFlag&32){const i=t._;i?o&&i===1?s=!1:Du(a,t,o):(s=!t.$stable,Iu(t,a)),r=t}else t&&(Ou(e,t),r={default:1});if(s)for(const i in a)!vi(i)&&r[i]==null&&delete a[i]},Bt=Rm;function Cm(e){return Em(e)}function Em(e,t){const o=Ss();o.__VUE__=!0;const{insert:n,remove:a,patchProp:s,createElement:r,createText:i,createComment:l,setText:c,setElementText:u,parentNode:p,nextSibling:d,setScopeId:A=$o,insertStaticContent:k}=e,f=(P,O,I,X=null,Q=null,U=null,de=void 0,ne=null,v=!!O.dynamicChildren)=>{if(P===O)return;P&&!Cn(P,O)&&(X=ye(P),H(P,Q,U,!0),P=null),O.patchFlag===-2&&(v=!1,O.dynamicChildren=null);const{type:S,ref:D,shapeFlag:te}=O;switch(S){case Ua:w(P,O,I,X);break;case Ft:y(P,O,I,X);break;case Ws:P==null&&h(O,I,X,de);break;case ze:V(P,O,I,X,Q,U,de,ne,v);break;default:te&1?E(P,O,I,X,Q,U,de,ne,v):te&6?j(P,O,I,X,Q,U,de,ne,v):(te&64||te&128)&&S.process(P,O,I,X,Q,U,de,ne,v,ue)}D!=null&&Q?Da(D,P&&P.ref,U,O||P,!O):D==null&&P&&P.ref!=null&&Da(P.ref,null,U,P,!0)},w=(P,O,I,X)=>{if(P==null)n(O.el=i(O.children),I,X);else{const Q=O.el=P.el;O.children!==P.children&&c(Q,O.children)}},y=(P,O,I,X)=>{P==null?n(O.el=l(O.children||""),I,X):O.el=P.el},h=(P,O,I,X)=>{[P.el,P.anchor]=k(P.children,O,I,X,P.el,P.anchor)},$=({el:P,anchor:O},I,X)=>{let Q;for(;P&&P!==O;)Q=d(P),n(P,I,X),P=Q;n(O,I,X)},x=({el:P,anchor:O})=>{let I;for(;P&&P!==O;)I=d(P),a(P),P=I;a(O)},E=(P,O,I,X,Q,U,de,ne,v)=>{if(O.type==="svg"?de="svg":O.type==="math"&&(de="mathml"),P==null)m(O,I,X,Q,U,de,ne,v);else{const S=P.el&&P.el._isVueCE?P.el:null;try{S&&S._beginPatch(),_(P,O,Q,U,de,ne,v)}finally{S&&S._endPatch()}}},m=(P,O,I,X,Q,U,de,ne)=>{let v,S;const{props:D,shapeFlag:te,transition:me,dirs:le}=P;if(v=P.el=r(P.type,U,D&&D.is,D),te&8?u(v,P.children):te&16&&g(P.children,v,null,X,Q,ki(P,U),de,ne),le&&Ln(P,null,X,"created"),b(v,P,P.scopeId,de,X),D){for(const ie in D)ie!=="value"&&!xa(ie)&&s(v,ie,null,D[ie],U,X);"value"in D&&s(v,"value",null,D.value,U),(S=D.onVnodeBeforeMount)&&Lo(S,X,P)}le&&Ln(P,null,X,"beforeMount");const Y=Tm(Q,me);Y&&me.beforeEnter(v),n(v,O,I),((S=D&&D.onVnodeMounted)||Y||le)&&Bt(()=>{try{S&&Lo(S,X,P),Y&&me.enter(v),le&&Ln(P,null,X,"mounted")}finally{}},Q)},b=(P,O,I,X,Q)=>{if(I&&A(P,I),X)for(let U=0;U{for(let S=v;S{const ne=O.el=P.el;let{patchFlag:v,dynamicChildren:S,dirs:D}=O;v|=P.patchFlag&16;const te=P.props||at,me=O.props||at;let le;if(I&&Pn(I,!1),(le=me.onVnodeBeforeUpdate)&&Lo(le,I,O,P),D&&Ln(O,P,I,"beforeUpdate"),I&&Pn(I,!0),S&&(!P.dynamicChildren||P.dynamicChildren.length!==S.length)&&(v=0,de=!1,S=null),(te.innerHTML&&me.innerHTML==null||te.textContent&&me.textContent==null)&&u(ne,""),S?T(P.dynamicChildren,S,ne,I,X,ki(O,Q),U):de||z(P,O,ne,null,I,X,ki(O,Q),U,!1),v>0){if(v&16)B(ne,te,me,I,Q);else if(v&2&&te.class!==me.class&&s(ne,"class",null,me.class,Q),v&4&&s(ne,"style",te.style,me.style,Q),v&8){const Y=O.dynamicProps;for(let ie=0;ie{le&&Lo(le,I,O,P),D&&Ln(O,P,I,"updated")},X)},T=(P,O,I,X,Q,U,de)=>{for(let ne=0;ne{if(O!==I){if(O!==at)for(const U in O)!xa(U)&&!(U in I)&&s(P,U,O[U],null,Q,X);for(const U in I){if(xa(U))continue;const de=I[U],ne=O[U];de!==ne&&U!=="value"&&s(P,U,ne,de,Q,X)}"value"in I&&s(P,"value",O.value,I.value,Q)}},V=(P,O,I,X,Q,U,de,ne,v)=>{const S=O.el=P?P.el:i(""),D=O.anchor=P?P.anchor:i("");let{patchFlag:te,dynamicChildren:me,slotScopeIds:le}=O;le&&(ne=ne?ne.concat(le):le),P==null?(n(S,I,X),n(D,I,X),g(O.children||[],I,D,Q,U,de,ne,v)):te>0&&te&64&&me&&P.dynamicChildren&&P.dynamicChildren.length===me.length?(T(P.dynamicChildren,me,I,Q,U,de,ne),(O.key!=null||Q&&O===Q.subTree)&&xi(P,O,!0)):z(P,O,I,D,Q,U,de,ne,v)},j=(P,O,I,X,Q,U,de,ne,v)=>{O.slotScopeIds=ne,P==null?O.shapeFlag&512?Q.ctx.activate(O,I,X,de,v):G(O,I,X,Q,U,de,v):C(P,O,v)},G=(P,O,I,X,Q,U,de)=>{const ne=P.component=Gm(P,X,Q);if(Ba(P)&&(ne.ctx.renderer=ue),jm(ne,!1,de),ne.asyncDep){if(Q&&Q.registerDep(ne,L,de),!P.el){const v=ne.subTree=et(Ft);y(null,v,O,I),P.placeholder=v.el}}else L(ne,P,O,I,Q,U,de)},C=(P,O,I)=>{const X=O.component=P.component;if(vm(P,O,I))if(X.asyncDep&&!X.asyncResolved){M(X,O,I);return}else X.next=O,X.update();else O.el=P.el,X.vnode=O},L=(P,O,I,X,Q,U,de)=>{const ne=()=>{if(P.isMounted){let{next:te,bu:me,u:le,parent:Y,vnode:ie}=P;{const tt=Bu(P);if(tt){te&&(te.el=ie.el,M(P,te,de)),tt.asyncDep.then(()=>{Bt(()=>{P.isUnmounted||S()},Q)});return}}let _e=te,Ne;Pn(P,!1),te?(te.el=ie.el,M(P,te,de)):te=ie,me&&Ls(me),(Ne=te.props&&te.props.onVnodeBeforeUpdate)&&Lo(Ne,Y,te,ie),Pn(P,!0);const He=Su(P),lt=P.subTree;P.subTree=He,f(lt,He,p(lt.el),ye(lt),P,Q,U),te.el=He.el,_e===null&&wm(P,He.el),le&&Bt(le,Q),(Ne=te.props&&te.props.onVnodeUpdated)&&Bt(()=>Lo(Ne,Y,te,ie),Q)}else{let te;const{el:me,props:le}=O,{bm:Y,m:ie,parent:_e,root:Ne,type:He}=P,lt=Qn(O);Pn(P,!1),Y&&Ls(Y),!lt&&(te=le&&le.onVnodeBeforeMount)&&Lo(te,_e,O),Pn(P,!0);{Ne.ce&&Ne.ce._hasShadowRoot()&&Ne.ce._injectChildStyle(He,P.parent?P.parent.type:void 0);const tt=P.subTree=Su(P);f(null,tt,I,X,P,Q,U),O.el=tt.el}if(ie&&Bt(ie,Q),!lt&&(te=le&&le.onVnodeMounted)){const tt=O;Bt(()=>Lo(te,_e,tt),Q)}(O.shapeFlag&256||_e&&Qn(_e.vnode)&&_e.vnode.shapeFlag&256)&&P.a&&Bt(P.a,Q),P.isMounted=!0,O=I=X=null}};P.scope.on();const v=P.effect=new Sc(ne);P.scope.off();const S=P.update=v.run.bind(v),D=P.job=v.runIfDirty.bind(v);D.i=P,D.id=P.uid,v.scheduler=()=>ci(D),Pn(P,!0),S()},M=(P,O,I)=>{O.component=P;const X=P.vnode.props;P.vnode=O,P.next=null,xm(P,O.props,X,I),Pm(P,O.children,I),_o(),Zc(P),vo()},z=(P,O,I,X,Q,U,de,ne,v=!1)=>{const S=P&&P.children,D=P?P.shapeFlag:0,te=O.children,{patchFlag:me,shapeFlag:le}=O;if(me>0){if(me&128){J(S,te,I,X,Q,U,de,ne,v);return}else if(me&256){K(S,te,I,X,Q,U,de,ne,v);return}}le&8?(D&16&&Ae(S,Q,U),te!==S&&u(I,te)):D&16?le&16?J(S,te,I,X,Q,U,de,ne,v):Ae(S,Q,U,!0):(D&8&&u(I,""),le&16&&g(te,I,X,Q,U,de,ne,v))},K=(P,O,I,X,Q,U,de,ne,v)=>{P=P||Kn,O=O||Kn;const S=P.length,D=O.length,te=Math.min(S,D);let me;for(me=0;meD?Ae(P,Q,U,!0,!1,te):g(O,I,X,Q,U,de,ne,v,te)},J=(P,O,I,X,Q,U,de,ne,v)=>{let S=0;const D=O.length;let te=P.length-1,me=D-1;for(;S<=te&&S<=me;){const le=P[S],Y=O[S]=v?qo(O[S]):xo(O[S]);if(Cn(le,Y))f(le,Y,I,null,Q,U,de,ne,v);else break;S++}for(;S<=te&&S<=me;){const le=P[te],Y=O[me]=v?qo(O[me]):xo(O[me]);if(Cn(le,Y))f(le,Y,I,null,Q,U,de,ne,v);else break;te--,me--}if(S>te){if(S<=me){const le=me+1,Y=leme)for(;S<=te;)H(P[S],Q,U,!0),S++;else{const le=S,Y=S,ie=new Map;for(S=Y;S<=me;S++){const we=O[S]=v?qo(O[S]):xo(O[S]);we.key!=null&&ie.set(we.key,S)}let _e,Ne=0;const He=me-Y+1;let lt=!1,tt=0;const q=new Array(He);for(S=0;S=He){H(we,Q,U,!0);continue}let Pe;if(we.key!=null)Pe=ie.get(we.key);else for(_e=Y;_e<=me;_e++)if(q[_e-Y]===0&&Cn(we,O[_e])){Pe=_e;break}Pe===void 0?H(we,Q,U,!0):(q[Pe-Y]=S+1,Pe>=tt?tt=Pe:lt=!0,f(we,O[Pe],I,null,Q,U,de,ne,v),Ne++)}const ae=lt?Nm(q):Kn;for(_e=ae.length-1,S=He-1;S>=0;S--){const we=Y+S,Pe=O[we],Fe=O[we+1],gt=we+1{const{el:U,type:de,transition:ne,children:v,shapeFlag:S}=P;if(S&6){ce(P.component.subTree,O,I,X);return}if(S&128){P.suspense.move(O,I,X);return}if(S&64){de.move(P,O,I,ue);return}if(de===ze){n(U,O,I);for(let te=0;tene.enter(U),Q));else{const{leave:te,delayLeave:me,afterLeave:le}=ne,Y=()=>{P.ctx.isUnmounted?a(U):n(U,O,I)},ie=()=>{const _e=U._isLeaving||!!U[oo];U._isLeaving&&U[oo](!0),ne.persisted&&!_e?Y():te(U,()=>{Y(),le&&le()})};me?me(U,Y,ie):ie()}else n(U,O,I)},H=(P,O,I,X=!1,Q=!1)=>{const{type:U,props:de,ref:ne,children:v,dynamicChildren:S,shapeFlag:D,patchFlag:te,dirs:me,cacheIndex:le,memo:Y}=P;if(te===-2&&(Q=!1),ne!=null&&(_o(),Da(ne,null,I,P,!0),vo()),le!=null&&(O.renderCache[le]=void 0),D&256){O.ctx.deactivate(P);return}const ie=D&1&&me,_e=!Qn(P);let Ne;if(_e&&(Ne=de&&de.onVnodeBeforeUnmount)&&Lo(Ne,O,P),D&6)he(P.component,I,X);else{if(D&128){P.suspense.unmount(I,X);return}ie&&Ln(P,null,O,"beforeUnmount"),D&64?P.type.remove(P,O,I,ue,X):S&&!S.hasOnce&&(U!==ze||te>0&&te&64)?Ae(S,O,I,!1,!0):(U===ze&&te&384||!Q&&D&16)&&Ae(v,O,I),X&&be(P)}const He=Y!=null&&le==null;(_e&&(Ne=de&&de.onVnodeUnmounted)||ie||He)&&Bt(()=>{Ne&&Lo(Ne,O,P),ie&&Ln(P,null,O,"unmounted"),He&&(P.el=null)},I)},be=P=>{const{type:O,el:I,anchor:X,transition:Q}=P;if(O===ze){ve(I,X);return}if(O===Ws){x(P);return}const U=()=>{a(I),Q&&!Q.persisted&&Q.afterLeave&&Q.afterLeave()};if(P.shapeFlag&1&&Q&&!Q.persisted){const{leave:de,delayLeave:ne}=Q,v=()=>de(I,U);ne?ne(P.el,U,v):v()}else U()},ve=(P,O)=>{let I;for(;P!==O;)I=d(P),a(P),P=I;a(O)},he=(P,O,I)=>{const{bum:X,scope:Q,job:U,subTree:de,um:ne,m:v,a:S}=P;Gu(v),Gu(S),X&&Ls(X),Q.stop(),U&&(U.flags|=8,H(de,P,O,I)),ne&&Bt(ne,O),Bt(()=>{P.isUnmounted=!0},O)},Ae=(P,O,I,X=!1,Q=!1,U=0)=>{for(let de=U;de{if(P.shapeFlag&6)return ye(P.component.subTree);if(P.shapeFlag&128)return P.suspense.next();const O=d(P.anchor||P.el),I=O&&O[ou];return I?d(I):O};let oe=!1;const fe=(P,O,I)=>{let X;P==null?O._vnode&&(H(O._vnode,null,null,!0),X=O._vnode.component):f(O._vnode||null,P,O,null,null,null,I),O._vnode=P,oe||(oe=!0,Zc(X),Jc(),oe=!1)},ue={p:f,um:H,m:ce,r:be,mt:G,mc:g,pc:z,pbc:T,n:ye,o:e};return{render:fe,hydrate:void 0,createApp:hm(fe)}}function ki({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 Pn({effect:e,job:t},o){o?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Tm(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function xi(e,t,o=!1){const n=e.children,a=t.children;if(Ee(n)&&Ee(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 Bu(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Bu(t)}function Gu(e){if(e)for(let t=0;te.__isSuspense;function Rm(e,t){t&&t.pendingBranch?Ee(e)?t.effects.push(...e):t.effects.push(e):Ih(e)}const ze=Symbol.for("v-fgt"),Ua=Symbol.for("v-txt"),Ft=Symbol.for("v-cmt"),Ws=Symbol.for("v-stc"),Ho=[];let Wt=null;function Z(e=!1){Ho.push(Wt=e?null:[])}function Li(){Ho.pop(),Wt=Ho[Ho.length-1]||null}let Va=1;function Ys(e,t=!1){Va+=e,e<0&&Wt&&t&&(Wt.hasOnce=!0)}function Uu(e){return e.dynamicChildren=Va>0?Wt||Kn:null,Li(),Va>0&&Wt&&Wt.push(e),e}function re(e,t,o,n,a,s){return Uu(R(e,t,o,n,a,s,!0))}function We(e,t,o,n,a){return Uu(et(e,t,o,n,a,!0))}function Ka(e){return e?e.__v_isVNode===!0:!1}function Cn(e,t){return e.type===t.type&&e.key===t.key}const Vu=({key:e})=>e??null,Xs=({ref:e,ref_key:t,ref_for:o})=>(typeof e=="number"&&(e=""+e),e!=null?st(e)||ut(e)||De(e)?{i:Pt,r:e,k:t,f:!!o}:e:null);function R(e,t=null,o=null,n=0,a=null,s=e===ze?0:1,r=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Vu(t),ref:t&&Xs(t),scopeId:eu,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:Pt};return i?(Zs(l,o),s&128&&e.normalize(l)):o&&(l.shapeFlag|=st(o)?8:16),Va>0&&!r&&Wt&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&Wt.push(l),l}const et=Mm;function Mm(e,t=null,o=null,n=0,a=null,s=!1){if((!e||e===hu)&&(e=Ft),Ka(e)){const i=ln(e,t,!0);return o&&Zs(i,o),Va>0&&!s&&Wt&&(i.shapeFlag&6?Wt[Wt.indexOf(e)]=i:Wt.push(i)),i.patchFlag=-2,i}if(qm(e)&&(e=e.__vccOpts),t){t=Fm(t);let{class:i,style:l}=t;i&&!st(i)&&(t.class=Re(i)),Qe(l)&&(Ms(l)&&!Ee(l)&&(l=ft({},l)),t.style=Ye(l))}const r=st(e)?1:zu(e)?128:Gs(e)?64:Qe(e)?4:De(e)?2:0;return R(e,t,o,n,a,r,s,!0)}function Fm(e){return e?Ms(e)||Nu(e)?ft({},e):e:null}function ln(e,t,o=!1,n=!1){const{props:a,ref:s,patchFlag:r,children:i,transition:l}=e,c=t?Om(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Vu(c),ref:t&&t.ref?o&&s?Ee(s)?s.concat(Xs(t)):[s,Xs(t)]:Xs(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!==ze?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&&ln(e.ssContent),ssFallback:e.ssFallback&&ln(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&n&&Ia(u,l.clone(u)),u}function bt(e=" ",t=0){return et(Ua,null,e,t)}function Im(e,t){const o=et(Ws,null,e);return o.staticCount=t,o}function xe(e="",t=!1){return t?(Z(),We(Ft,null,e)):et(Ft,null,e)}function xo(e){return e==null||typeof e=="boolean"?et(Ft):Ee(e)?et(ze,null,e.slice()):Ka(e)?qo(e):et(Ua,null,String(e))}function qo(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ln(e)}function Zs(e,t){let o=0;const{shapeFlag:n}=e;if(t==null)t=null;else if(Ee(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&&!Nu(t)?t._ctx=Pt:a===3&&Pt&&(Pt.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:Pt},o=32}else t=String(t),n&64?(o=16,t=[bt(t)]):o=8;e.children=t,e.shapeFlag|=o}function Om(...e){const t={};for(let o=0;oEt||Pt;let Js,Ha;{const e=Ss(),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)}};Js=t("__VUE_INSTANCE_SETTERS__",o=>Et=o),Ha=t("__VUE_SSR_SETTERS__",o=>ea=o)}const qa=e=>{const t=Et;return Js(e),e.scope.on(),()=>{e.scope.off(),Js(t)}},Ku=()=>{Et&&Et.scope.off(),Js(null)};function Hu(e){return e.vnode.shapeFlag&4}let ea=!1;function jm(e,t=!1,o=!1){t&&Ha(t);const{props:n,children:a}=e.vnode,s=Hu(e);km(e,n,s,t),Sm(e,a,o||t);const r=s?zm(e,t):void 0;return t&&Ha(!1),r}function zm(e,t){const o=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,lm);const{setup:n}=o;if(n){_o();const a=e.setupContext=n.length>1?Vm(e):null,s=qa(e),r=Xn(n,e,0,[e.props,a]),i=bc(r);if(vo(),s(),(i||e.sp)&&!Qn(e)&&hi(e),i){if(r.then(Ku,Ku),t)return r.then(l=>{Ha(!0);try{qu(e,l,t)}finally{Ha(!1)}}).catch(l=>{Na(l,e,0)});e.asyncDep=r}else qu(e,r)}else Wu(e)}function qu(e,t,o){De(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Qe(t)&&(e.setupState=Hc(t)),Wu(e)}function Wu(e,t,o){const n=e.type;e.render||(e.render=n.render||$o);{const a=qa(e);_o();try{cm(e)}finally{vo(),a()}}}const Um={get(e,t){return Rt(e,"get",""),e[t]}};function Vm(e){const t=o=>{e.exposed=o||{}};return{attrs:new Proxy(e.attrs,Um),slots:e.slots,emit:e.emit,expose:t}}function Qs(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Hc(Wn(e.exposed)),{get(t,o){if(o in t)return t[o];if(o in ja)return ja[o](e)},has(t,o){return o in t||o in ja}})):e.proxy}const Km=/(?:^|[-_])\w/g,Hm=e=>e.replace(Km,t=>t.toUpperCase()).replace(/[-_]/g,"");function Yu(e,t=!0){return De(e)?e.displayName||e.name:e.name||t&&e.__name}function Xu(e,t,o=!1){let n=Yu(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?Hm(n):o?"App":"Anonymous"}function qm(e){return De(e)&&"__vccOpts"in e}const ee=(e,t)=>Sh(e,t,ea);function Ai(e,t,o){try{Ys(-1);const n=arguments.length;return n===2?Qe(t)&&!Ee(t)?Ka(t)?et(e,null,[t]):et(e,t):et(e,null,t):(n>3?o=Array.prototype.slice.call(arguments,2):n===3&&Ka(o)&&(o=[o]),et(e,t,o))}finally{Ys(1)}}const Wm="3.5.42";/** * @vue/runtime-dom v3.5.42 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let Si;const Zu=typeof window<"u"&&window.trustedTypes;if(Zu)try{Si=Zu.createPolicy("vue",{createHTML:e=>e})}catch{}const Ju=Si?e=>Si.createHTML(e):e=>e,qm="http://www.w3.org/2000/svg",Wm="http://www.w3.org/1998/Math/MathML",Wo=typeof document<"u"?document:null,Qu=Wo&&Wo.createElement("template"),Ym={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,n)=>{const a=t==="svg"?Wo.createElementNS(qm,e):t==="mathml"?Wo.createElementNS(Wm,e):o?Wo.createElement(e,{is:o}):Wo.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>Wo.createTextNode(e),createComment:e=>Wo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Wo.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,n,a,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{Qu.innerHTML=Ju(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=Qu.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]}},cn="transition",Wa="animation",Ya=Symbol("_vtc"),ep={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Xm=ft({},su,ep),Zm=(e=>(e.displayName="Transition",e.props=Xm,e))((e,{slots:t})=>Ai(Hh,Jm(e),t)),En=(e,t=[])=>{Ee(e)?e.forEach(o=>o(...t)):e&&e(...t)},tp=e=>e?Ee(e)?e.some(t=>t.length>1):e.length>1:!1;function Jm(e){const t={};for(const V in e)V in ep||(t[V]=e[V]);if(e.css===!1)return t;const{name:o="v",type:n,duration:a,enterFromClass:s=`${o}-enter-from`,enterActiveClass:r=`${o}-enter-active`,enterToClass:i=`${o}-enter-to`,appearFromClass:l=s,appearActiveClass:c=r,appearToClass:u=i,leaveFromClass:p=`${o}-leave-from`,leaveActiveClass:d=`${o}-leave-active`,leaveToClass:A=`${o}-leave-to`}=e,w=Qm(a),f=w&&w[0],v=w&&w[1],{onBeforeEnter:y,onEnter:h,onEnterCancelled:$,onLeave:x,onLeaveCancelled:E,onBeforeAppear:m=y,onAppear:b=h,onAppearCancelled:g=$}=t,k=(V,U,G,C)=>{V._enterCancelled=C,Tn(V,U?u:i),Tn(V,U?c:r),G&&G()},T=(V,U)=>{V._isLeaving=!1,Tn(V,p),Tn(V,A),Tn(V,d),U&&U()},O=V=>(U,G)=>{const C=V?b:h,L=()=>k(U,V,G);En(C,[U,L]),op(()=>{Tn(U,V?l:s),Yo(U,V?u:i),tp(C)||np(U,n,f,L)})};return ft(t,{onBeforeEnter(V){En(y,[V]),Yo(V,s),Yo(V,r)},onBeforeAppear(V){En(m,[V]),Yo(V,l),Yo(V,c)},onEnter:O(!1),onAppear:O(!0),onLeave(V,U){V._isLeaving=!0;const G=()=>T(V,U);Yo(V,p),V._enterCancelled?(Yo(V,d),rp(V)):(rp(V),Yo(V,d)),op(()=>{V._isLeaving&&(Tn(V,p),Yo(V,A),tp(x)||np(V,n,v,G))}),En(x,[V,G])},onEnterCancelled(V){k(V,!1,void 0,!0),En($,[V])},onAppearCancelled(V){k(V,!0,void 0,!0),En(g,[V])},onLeaveCancelled(V){T(V),En(E,[V])}})}function Qm(e){if(e==null)return null;if(Qe(e))return[Pi(e.enter),Pi(e.leave)];{const t=Pi(e);return[t,t]}}function Pi(e){return Wr(e)}function Yo(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.add(o)),(e[Ya]||(e[Ya]=new Set)).add(t)}function Tn(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const o=e[Ya];o&&(o.delete(t),o.size||(e[Ya]=void 0))}function op(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let eb=0;function np(e,t,o,n){const a=e._endId=++eb,s=()=>{a===e._endId&&n()};if(o!=null)return setTimeout(s,o);const{type:r,timeout:i,propCount:l}=tb(e,t);if(!r)return n();const c=r+"end";let u=0;const p=()=>{e.removeEventListener(c,d),s()},d=A=>{A.target===e&&++u>=l&&p()};setTimeout(()=>{u(o[w]||"").split(", "),a=n(`${cn}Delay`),s=n(`${cn}Duration`),r=ap(a,s),i=n(`${Wa}Delay`),l=n(`${Wa}Duration`),c=ap(i,l);let u=null,p=0,d=0;t===cn?r>0&&(u=cn,p=r,d=s.length):t===Wa?c>0&&(u=Wa,p=c,d=l.length):(p=Math.max(r,c),u=p>0?r>c?cn:Wa:null,d=u?u===cn?s.length:l.length:0);const A=u===cn&&/\b(?:transform|all)(?:,|$)/.test(n(`${cn}Property`).toString());return{type:u,timeout:p,propCount:d,hasTransform:A}}function ap(e,t){for(;e.lengthsp(o)+sp(e[n])))}function sp(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function rp(e){return(e?e.ownerDocument:document).body.offsetHeight}function ob(e,t,o){const n=e[Ya];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const er=Symbol("_vod"),ip=Symbol("_vsh"),nb={name:"show",beforeMount(e,{value:t},{transition:o}){e[er]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):Xa(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),Xa(e,!0),n.enter(e)):n.leave(e,()=>{Xa(e,!1)}):Xa(e,t))},beforeUnmount(e,{value:t}){Xa(e,t)}};function Xa(e,t){e.style.display=t?e[er]:"none",e[ip]=!t}const ab=Symbol(""),sb=/(?:^|;)\s*display\s*:/;function rb(e,t,o){const n=e.style,a=st(o);let s=!1;if(o&&!a){if(t)if(st(t))for(const r of t.split(";")){const i=r.slice(0,r.indexOf(":")).trim();o[i]==null&&Za(n,i,"")}else for(const r in t)o[r]==null&&Za(n,r,"");for(const r in o){r==="display"&&(s=!0);const i=o[r];i!=null?lb(e,r,!st(t)&&t?t[r]:void 0,i)||Za(n,r,i):Za(n,r,"")}}else if(a){if(t!==o){const r=n[ab];r&&(o+=";"+r),n.cssText=o,s=sb.test(o)}}else t&&e.removeAttribute("style");er in e&&(e[er]=s?n.display:"",e[ip]&&(n.display="none"))}const tr=/\s*!important$/;function Za(e,t,o){if(Ee(o))o.forEach(n=>Za(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))tr.test(o)?e.setProperty(t,o.replace(tr,""),"important"):e.setProperty(t,o);else{const n=ib(e,t);tr.test(o)?e.setProperty(Qt(n),o.replace(tr,""),"important"):e[n]=o}}const lp=["Webkit","Moz","ms"],Ci={};function ib(e,t){const o=Ci[t];if(o)return o;let n=xt(t);if(n!=="filter"&&n in e)return Ci[t]=n;n=xs(n);for(let a=0;aEi||(fb.then(()=>Ei=0),Ei=Date.now());function mb(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if(Ee(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,bb=(e,t,o,n,a,s)=>{const r=a==="svg";t==="class"?ob(e,n,r):t==="style"?rb(e,o,n):ys(t)?_s(t)||ub(e,t,o,n,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):$b(e,t,n,r))?(pp(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&up(e,t,n,r,s,t!=="value")):e._isVueCE&&(yb(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!st(n)))?pp(e,xt(t),n,s,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),up(e,t,n,r))};function $b(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&gp(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 gp(t)&&st(o)?!1:t in e}function yb(e,t){const o=e._def.props;if(!o)return!1;const n=xt(t);return Array.isArray(o)?o.some(a=>xt(a)===n):Object.keys(o).some(a=>xt(a)===n)}const fp={};function _b(e,t,o){let n=Oa(e,t);vs(n)&&(n=ft({},n,t));class a extends Ti{constructor(r){super(n,r,o)}}return a.def=n,a}const vb=typeof HTMLElement<"u"?HTMLElement:class{};class Ti extends vb{constructor(t,o={},n=vp){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!==vp?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(ft({},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 Ti){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,Mt(()=>{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&&!Ee(s))for(const l in s){const c=s[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=Wr(this._props[l])),(i||(i=Object.create(null)))[xt(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:()=>ue(o[n])})}_resolveProps(t){const{props:o}=t,n=Ee(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(xt))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):fp;const a=xt(t);o&&this._numberProps&&this._numberProps[a]&&(n=Wr(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===fp?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(Qt(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(Qt(t),o+""):o||this.removeAttribute(Qt(t)),s&&s.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),Sb(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=et(this._def,ft(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,vs(r[0])?ft({detail:r},r[0]):{detail:r}))};n.emit=(s,...r)=>{a(s,r),Qt(s)!==s&&a(Qt(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 Ee(t)?o=>Ls(t,o):t};function wb(e){e.target.composing=!0}function hp(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ao=Symbol("_assign"),or=Symbol("_initialValue");function Ni(e,t,o){return t&&(e=e.trim()),o&&(e=As(e)),e}const nr={created(e,{modifiers:{lazy:t,trim:o,number:n}},a){e.parentNode&&(e.type==="text"?e[or]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[or]=e.defaultValue.replace(/\r\n?/g,` -`))),e[Ao]=ea(a);const s=n||a.props&&a.props.type==="number";un(e,t?"change":"input",r=>{r.target.composing||e[Ao](Ni(e.value,o,s))}),(o||s)&&un(e,"change",()=>{e.value=Ni(e.value,o,s)}),t||(un(e,"compositionstart",wb),un(e,"compositionend",hp),un(e,"change",hp))},mounted(e,{value:t,modifiers:{trim:o,number:n}}){const a=t??"",s=e[or];delete e[or],s!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==s?e[Ao](Ni(e.value,o,n)):e.value=a},beforeUpdate(e,{value:t,oldValue:o,modifiers:{lazy:n,trim:a,number:s}},r){if(e[Ao]=ea(r),e.composing)return;const i=(s||e.type==="number")&&!/^0\d/.test(e.value)?As(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)}},Ri={deep:!0,created(e,t,o){e[Ao]=ea(o),un(e,"change",()=>{const n=e._modelValue,a=Ja(e),s=e.checked,r=e[Ao];if(Ee(n)){const i=Yr(n,a),l=i!==-1;if(s&&!l)r(n.concat(a));else if(!s&&l){const c=[...n];c.splice(i,1),r(c)}}else if(Oo(n)){const i=new Set(n);s?i.add(a):i.delete(a),r(i)}else r($p(e,s))})},mounted:mp,beforeUpdate(e,t,o){e[Ao]=ea(o),mp(e,t,o)}};function mp(e,{value:t,oldValue:o},n){e._modelValue=t;let a;if(Ee(t))a=Yr(t,n.props.value)>-1;else if(Oo(t))a=t.has(n.props.value);else{if(t===o)return;a=Do(t,$p(e,!0))}e.checked!==a&&(e.checked=a)}const ar={deep:!0,created(e,{value:t,modifiers:{number:o}},n){e._modelValue=t,un(e,"change",()=>{const a=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>o?As(Ja(l)):Ja(l)),s=e.multiple,r=s?Oo(e._modelValue)?new Set(a):a:a[0],i=e._pendingValue=[s,s?Ee(r)?a.slice():a:r];try{e[Ao](r)}finally{Mt(()=>{e._pendingValue===i&&(e._pendingValue=void 0)})}}),e[Ao]=ea(n)},mounted(e,{value:t}){bp(e,t)},beforeUpdate(e,{value:t},o){e._modelValue=t,e[Ao]=ea(o)},updated(e,{value:t}){const o=e._pendingValue;e._pendingValue=void 0,(!o||o[0]!==e.multiple||!kb(t,o[1],o[0]))&&bp(e,t)}};function kb(e,t,o){if(!o||Ee(e))return Do(e,t);if(Oo(e)){if(e.size!==t.length)return!1;for(const n of t)if(!e.has(n))return!1;return!0}return!1}function bp(e,t){const o=e.multiple,n=Ee(t);if(!(o&&!n&&!Oo(t))){for(let a=0,s=e.options.length;aString(c)===String(i)):r.selected=Yr(t,i)>-1}else r.selected=t.has(i);else if(Do(Ja(r),t)){e.selectedIndex!==a&&(e.selectedIndex=a);return}}!o&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Ja(e){return"_value"in e?e._value:e.value}function $p(e,t){const o=t?"_trueValue":"_falseValue";return o in e?e[o]:t}const xb=["ctrl","shift","alt","meta"],Lb={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)=>xb.some(o=>e[`${o}Key`]&&!t.includes(o))},pt=(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{_p().render(...e)},vp=(...e)=>{const t=_p().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,Pb(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),r},t};function Pb(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cb(e){return st(e)?document.querySelector(e):e}/*! +**/let Si;const Zu=typeof window<"u"&&window.trustedTypes;if(Zu)try{Si=Zu.createPolicy("vue",{createHTML:e=>e})}catch{}const Ju=Si?e=>Si.createHTML(e):e=>e,Ym="http://www.w3.org/2000/svg",Xm="http://www.w3.org/1998/Math/MathML",Wo=typeof document<"u"?document:null,Qu=Wo&&Wo.createElement("template"),Zm={insert:(e,t,o)=>{t.insertBefore(e,o||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,o,n)=>{const a=t==="svg"?Wo.createElementNS(Ym,e):t==="mathml"?Wo.createElementNS(Xm,e):o?Wo.createElement(e,{is:o}):Wo.createElement(e);return e==="select"&&n&&n.multiple!=null&&a.setAttribute("multiple",n.multiple),a},createText:e=>Wo.createTextNode(e),createComment:e=>Wo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Wo.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,o,n,a,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{Qu.innerHTML=Ju(n==="svg"?`${e}`:n==="mathml"?`${e}`:e);const i=Qu.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]}},cn="transition",Wa="animation",Ya=Symbol("_vtc"),ep={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Jm=ft({},su,ep),Qm=(e=>(e.displayName="Transition",e.props=Jm,e))((e,{slots:t})=>Ai(Wh,eb(e),t)),En=(e,t=[])=>{Ee(e)?e.forEach(o=>o(...t)):e&&e(...t)},tp=e=>e?Ee(e)?e.some(t=>t.length>1):e.length>1:!1;function eb(e){const t={};for(const V in e)V in ep||(t[V]=e[V]);if(e.css===!1)return t;const{name:o="v",type:n,duration:a,enterFromClass:s=`${o}-enter-from`,enterActiveClass:r=`${o}-enter-active`,enterToClass:i=`${o}-enter-to`,appearFromClass:l=s,appearActiveClass:c=r,appearToClass:u=i,leaveFromClass:p=`${o}-leave-from`,leaveActiveClass:d=`${o}-leave-active`,leaveToClass:A=`${o}-leave-to`}=e,k=tb(a),f=k&&k[0],w=k&&k[1],{onBeforeEnter:y,onEnter:h,onEnterCancelled:$,onLeave:x,onLeaveCancelled:E,onBeforeAppear:m=y,onAppear:b=h,onAppearCancelled:g=$}=t,_=(V,j,G,C)=>{V._enterCancelled=C,Tn(V,j?u:i),Tn(V,j?c:r),G&&G()},T=(V,j)=>{V._isLeaving=!1,Tn(V,p),Tn(V,A),Tn(V,d),j&&j()},B=V=>(j,G)=>{const C=V?b:h,L=()=>_(j,V,G);En(C,[j,L]),op(()=>{Tn(j,V?l:s),Yo(j,V?u:i),tp(C)||np(j,n,f,L)})};return ft(t,{onBeforeEnter(V){En(y,[V]),Yo(V,s),Yo(V,r)},onBeforeAppear(V){En(m,[V]),Yo(V,l),Yo(V,c)},onEnter:B(!1),onAppear:B(!0),onLeave(V,j){V._isLeaving=!0;const G=()=>T(V,j);Yo(V,p),V._enterCancelled?(Yo(V,d),rp(V)):(rp(V),Yo(V,d)),op(()=>{V._isLeaving&&(Tn(V,p),Yo(V,A),tp(x)||np(V,n,w,G))}),En(x,[V,G])},onEnterCancelled(V){_(V,!1,void 0,!0),En($,[V])},onAppearCancelled(V){_(V,!0,void 0,!0),En(g,[V])},onLeaveCancelled(V){T(V),En(E,[V])}})}function tb(e){if(e==null)return null;if(Qe(e))return[Pi(e.enter),Pi(e.leave)];{const t=Pi(e);return[t,t]}}function Pi(e){return Wr(e)}function Yo(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.add(o)),(e[Ya]||(e[Ya]=new Set)).add(t)}function Tn(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.remove(n));const o=e[Ya];o&&(o.delete(t),o.size||(e[Ya]=void 0))}function op(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let ob=0;function np(e,t,o,n){const a=e._endId=++ob,s=()=>{a===e._endId&&n()};if(o!=null)return setTimeout(s,o);const{type:r,timeout:i,propCount:l}=nb(e,t);if(!r)return n();const c=r+"end";let u=0;const p=()=>{e.removeEventListener(c,d),s()},d=A=>{A.target===e&&++u>=l&&p()};setTimeout(()=>{u(o[k]||"").split(", "),a=n(`${cn}Delay`),s=n(`${cn}Duration`),r=ap(a,s),i=n(`${Wa}Delay`),l=n(`${Wa}Duration`),c=ap(i,l);let u=null,p=0,d=0;t===cn?r>0&&(u=cn,p=r,d=s.length):t===Wa?c>0&&(u=Wa,p=c,d=l.length):(p=Math.max(r,c),u=p>0?r>c?cn:Wa:null,d=u?u===cn?s.length:l.length:0);const A=u===cn&&/\b(?:transform|all)(?:,|$)/.test(n(`${cn}Property`).toString());return{type:u,timeout:p,propCount:d,hasTransform:A}}function ap(e,t){for(;e.lengthsp(o)+sp(e[n])))}function sp(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function rp(e){return(e?e.ownerDocument:document).body.offsetHeight}function ab(e,t,o){const n=e[Ya];n&&(t=(t?[t,...n]:[...n]).join(" ")),t==null?e.removeAttribute("class"):o?e.setAttribute("class",t):e.className=t}const er=Symbol("_vod"),ip=Symbol("_vsh"),sb={name:"show",beforeMount(e,{value:t},{transition:o}){e[er]=e.style.display==="none"?"":e.style.display,o&&t?o.beforeEnter(e):Xa(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),Xa(e,!0),n.enter(e)):n.leave(e,()=>{Xa(e,!1)}):Xa(e,t))},beforeUnmount(e,{value:t}){Xa(e,t)}};function Xa(e,t){e.style.display=t?e[er]:"none",e[ip]=!t}const rb=Symbol(""),ib=/(?:^|;)\s*display\s*:/;function lb(e,t,o){const n=e.style,a=st(o);let s=!1;if(o&&!a){if(t)if(st(t))for(const r of t.split(";")){const i=r.slice(0,r.indexOf(":")).trim();o[i]==null&&Za(n,i,"")}else for(const r in t)o[r]==null&&Za(n,r,"");for(const r in o){r==="display"&&(s=!0);const i=o[r];i!=null?ub(e,r,!st(t)&&t?t[r]:void 0,i)||Za(n,r,i):Za(n,r,"")}}else if(a){if(t!==o){const r=n[rb];r&&(o+=";"+r),n.cssText=o,s=ib.test(o)}}else t&&e.removeAttribute("style");er in e&&(e[er]=s?n.display:"",e[ip]&&(n.display="none"))}const tr=/\s*!important$/;function Za(e,t,o){if(Ee(o))o.forEach(n=>Za(e,t,n));else if(o==null&&(o=""),t.startsWith("--"))tr.test(o)?e.setProperty(t,o.replace(tr,""),"important"):e.setProperty(t,o);else{const n=cb(e,t);tr.test(o)?e.setProperty(Qt(n),o.replace(tr,""),"important"):e[n]=o}}const lp=["Webkit","Moz","ms"],Ci={};function cb(e,t){const o=Ci[t];if(o)return o;let n=xt(t);if(n!=="filter"&&n in e)return Ci[t]=n;n=xs(n);for(let a=0;aEi||(mb.then(()=>Ei=0),Ei=Date.now());function $b(e,t){const o=n=>{if(!n._vts)n._vts=Date.now();else if(n._vts<=o.attached)return;const a=o.value;if(Ee(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,yb=(e,t,o,n,a,s)=>{const r=a==="svg";t==="class"?ab(e,n,r):t==="style"?lb(e,o,n):ys(t)?_s(t)||db(e,t,o,n,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):_b(e,t,n,r))?(pp(e,t,n),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&up(e,t,n,r,s,t!=="value")):e._isVueCE&&(vb(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!st(n)))?pp(e,xt(t),n,s,t):(t==="true-value"?e._trueValue=n:t==="false-value"&&(e._falseValue=n),up(e,t,n,r))};function _b(e,t,o,n){if(n)return!!(t==="innerHTML"||t==="textContent"||t in e&&gp(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 gp(t)&&st(o)?!1:t in e}function vb(e,t){const o=e._def.props;if(!o)return!1;const n=xt(t);return Array.isArray(o)?o.some(a=>xt(a)===n):Object.keys(o).some(a=>xt(a)===n)}const fp={};function wb(e,t,o){let n=Oa(e,t);vs(n)&&(n=ft({},n,t));class a extends Ti{constructor(r){super(n,r,o)}}return a.def=n,a}const kb=typeof HTMLElement<"u"?HTMLElement:class{};class Ti extends kb{constructor(t,o={},n=vp){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!==vp?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(ft({},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 Ti){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,Mt(()=>{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&&!Ee(s))for(const l in s){const c=s[l];(c===Number||c&&c.type===Number)&&(l in this._props&&(this._props[l]=Wr(this._props[l])),(i||(i=Object.create(null)))[xt(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:()=>pe(o[n])})}_resolveProps(t){const{props:o}=t,n=Ee(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(xt))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):fp;const a=xt(t);o&&this._numberProps&&this._numberProps[a]&&(n=Wr(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===fp?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(Qt(t),""):typeof o=="string"||typeof o=="number"?this.setAttribute(Qt(t),o+""):o||this.removeAttribute(Qt(t)),s&&s.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),Cb(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const o=et(this._def,ft(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,vs(r[0])?ft({detail:r},r[0]):{detail:r}))};n.emit=(s,...r)=>{a(s,r),Qt(s)!==s&&a(Qt(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 Ee(t)?o=>Ls(t,o):t};function xb(e){e.target.composing=!0}function hp(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ao=Symbol("_assign"),or=Symbol("_initialValue");function Ni(e,t,o){return t&&(e=e.trim()),o&&(e=As(e)),e}const nr={created(e,{modifiers:{lazy:t,trim:o,number:n}},a){e.parentNode&&(e.type==="text"?e[or]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[or]=e.defaultValue.replace(/\r\n?/g,` +`))),e[Ao]=ta(a);const s=n||a.props&&a.props.type==="number";un(e,t?"change":"input",r=>{r.target.composing||e[Ao](Ni(e.value,o,s))}),(o||s)&&un(e,"change",()=>{e.value=Ni(e.value,o,s)}),t||(un(e,"compositionstart",xb),un(e,"compositionend",hp),un(e,"change",hp))},mounted(e,{value:t,modifiers:{trim:o,number:n}}){const a=t??"",s=e[or];delete e[or],s!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==s?e[Ao](Ni(e.value,o,n)):e.value=a},beforeUpdate(e,{value:t,oldValue:o,modifiers:{lazy:n,trim:a,number:s}},r){if(e[Ao]=ta(r),e.composing)return;const i=(s||e.type==="number")&&!/^0\d/.test(e.value)?As(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)}},Ri={deep:!0,created(e,t,o){e[Ao]=ta(o),un(e,"change",()=>{const n=e._modelValue,a=Ja(e),s=e.checked,r=e[Ao];if(Ee(n)){const i=Yr(n,a),l=i!==-1;if(s&&!l)r(n.concat(a));else if(!s&&l){const c=[...n];c.splice(i,1),r(c)}}else if(Oo(n)){const i=new Set(n);s?i.add(a):i.delete(a),r(i)}else r($p(e,s))})},mounted:mp,beforeUpdate(e,t,o){e[Ao]=ta(o),mp(e,t,o)}};function mp(e,{value:t,oldValue:o},n){e._modelValue=t;let a;if(Ee(t))a=Yr(t,n.props.value)>-1;else if(Oo(t))a=t.has(n.props.value);else{if(t===o)return;a=Do(t,$p(e,!0))}e.checked!==a&&(e.checked=a)}const ar={deep:!0,created(e,{value:t,modifiers:{number:o}},n){e._modelValue=t,un(e,"change",()=>{const a=Array.prototype.filter.call(e.options,l=>l.selected).map(l=>o?As(Ja(l)):Ja(l)),s=e.multiple,r=s?Oo(e._modelValue)?new Set(a):a:a[0],i=e._pendingValue=[s,s?Ee(r)?a.slice():a:r];try{e[Ao](r)}finally{Mt(()=>{e._pendingValue===i&&(e._pendingValue=void 0)})}}),e[Ao]=ta(n)},mounted(e,{value:t}){bp(e,t)},beforeUpdate(e,{value:t},o){e._modelValue=t,e[Ao]=ta(o)},updated(e,{value:t}){const o=e._pendingValue;e._pendingValue=void 0,(!o||o[0]!==e.multiple||!Lb(t,o[1],o[0]))&&bp(e,t)}};function Lb(e,t,o){if(!o||Ee(e))return Do(e,t);if(Oo(e)){if(e.size!==t.length)return!1;for(const n of t)if(!e.has(n))return!1;return!0}return!1}function bp(e,t){const o=e.multiple,n=Ee(t);if(!(o&&!n&&!Oo(t))){for(let a=0,s=e.options.length;aString(c)===String(i)):r.selected=Yr(t,i)>-1}else r.selected=t.has(i);else if(Do(Ja(r),t)){e.selectedIndex!==a&&(e.selectedIndex=a);return}}!o&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Ja(e){return"_value"in e?e._value:e.value}function $p(e,t){const o=t?"_trueValue":"_falseValue";return o in e?e[o]:t}const 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))},pt=(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{_p().render(...e)},vp=(...e)=>{const t=_p().createApp(...e),{mount:o}=t;return t.mount=n=>{const a=Tb(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,Eb(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),r},t};function Eb(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Tb(e){return st(e)?document.querySelector(e):e}/*! * pinia v2.3.1 * (c) 2025 Eduardo San Martin Morote * @license MIT - */let wp;const sr=e=>wp=e,kp=Symbol();function Mi(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Qa;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Qa||(Qa={}));function Eb(){const e=Zr(!0),t=e.run(()=>de({}));let o=[],n=[];const a=qn({install(s){sr(a),a._a=s,s.provide(kp,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 xp=()=>{};function Lp(e,t,o,n=xp){e.push(t);const a=()=>{const s=e.indexOf(t);s>-1&&(e.splice(s,1),n())};return!o&&Ac()&&Qf(a),a}function ta(e,...t){e.slice().forEach(o=>{o(...t)})}const Tb=e=>e(),Ap=Symbol(),Fi=Symbol();function Ii(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];Mi(a)&&Mi(n)&&e.hasOwnProperty(o)&&!ut(n)&&!jo(n)?e[o]=Ii(a,n):e[o]=n}return e}const Nb=Symbol();function Rb(e){return!Mi(e)||!e.hasOwnProperty(Nb)}const{assign:pn}=Object;function Mb(e){return!!(ut(e)&&e.effect)}function Fb(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=vh(o.state.value[e]);return pn(u,s,Object.keys(r||{}).reduce((p,d)=>(p[d]=qn(ee(()=>{sr(o);const A=o._s.get(e);return r[d].call(A,A)})),p),{}))}return l=Sp(e,c,t,o,n,!0),l}function Sp(e,t,o={},n,a,s){let r;const i=pn({actions:{}},o),l={deep:!0};let c,u,p=[],d=[],A;const w=n.state.value[e];!s&&!w&&(n.state.value[e]={});let f;function v(g){let k;c=u=!1,typeof g=="function"?(g(n.state.value[e]),k={type:Qa.patchFunction,storeId:e,events:A}):(Ii(n.state.value[e],g),k={type:Qa.patchObject,payload:g,storeId:e,events:A});const T=f=Symbol();Mt().then(()=>{f===T&&(c=!0)}),u=!0,ta(p,k,n.state.value[e])}const y=s?function(){const{state:k}=o,T=k?k():{};this.$patch(O=>{pn(O,T)})}:xp;function h(){r.stop(),p=[],d=[],n._s.delete(e)}const $=(g,k="")=>{if(Ap in g)return g[Fi]=k,g;const T=function(){sr(n);const O=Array.from(arguments),V=[],U=[];function G(F){V.push(F)}function C(F){U.push(F)}ta(d,{args:O,name:T[Fi],store:E,after:G,onError:C});let L;try{L=g.apply(this&&this.$id===e?this:E,O)}catch(F){throw ta(U,F),F}return L instanceof Promise?L.then(F=>(ta(V,F),F)).catch(F=>(ta(U,F),Promise.reject(F))):(ta(V,L),L)};return T[Ap]=!0,T[Fi]=k,T},x={_p:n,$id:e,$onAction:Lp.bind(null,d),$patch:v,$reset:y,$subscribe(g,k={}){const T=Lp(p,g,k.detached,()=>O()),O=r.run(()=>Fe(()=>n.state.value[e],V=>{(k.flush==="sync"?u:c)&&g({storeId:e,type:Qa.direct,events:A},V)},pn({},l,k)));return T},$dispose:h},E=Hn(x);n._s.set(e,E);const b=(n._a&&n._a.runWithContext||Tb)(()=>n._e.run(()=>(r=Zr()).run(()=>t({action:$}))));for(const g in b){const k=b[g];if(ut(k)&&!Mb(k)||jo(k))s||(w&&Rb(k)&&(ut(k)?k.value=w[g]:Ii(k,w[g])),n.state.value[e][g]=k);else if(typeof k=="function"){const T=$(k,g);b[g]=T,i.actions[g]=k}}return pn(E,b),pn(Ve(E),b),Object.defineProperty(E,"$state",{get:()=>n.state.value[e],set:g=>{v(k=>{pn(k,g)})}}),n._p.forEach(g=>{pn(E,r.run(()=>g({store:E,app:n._a,pinia:n,options:i})))}),w&&s&&o.hydrate&&o.hydrate(E.$state,w),c=!0,u=!0,E}/*! #__NO_SIDE_EFFECTS__ */function Oi(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=Fh();return i=i||(c?Te(kp,null):null),i&&sr(i),i=wp,i._s.has(n)||(s?Sp(n,t,a,i):Fb(n,a,i)),i._s.get(n)}return r.$id=n,r}const Di="__doxaMapToken",Bi="doxa:map-token",Pp="__doxaMapTokenBridge",oa=()=>{if(typeof window>"u")return"";const e=window[Di];return typeof e=="string"?e:""};function Cp(e){if(typeof window>"u")return"";const t=typeof e=="string"?e.trim():"";if(!t||t===oa())return oa();window[Di]=t;try{window.dispatchEvent(new CustomEvent(Bi,{detail:t}))}catch{}return t}function Ib(){if(typeof window>"u"||window[Pp])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!oa()&&(window[Di]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return oa()},set(t){Cp(t)}}),window[Pp]=!0}catch{}}function Ob(){Ib();const e=de(oa());if(typeof window<"u"){const t=()=>{e.value=oa()};window.addEventListener(Bi,t);try{qt(()=>window.removeEventListener(Bi,t))}catch{}}return e}function es(e){return Wh({loader:e,onError(t,o,n,a){a<=3?setTimeout(o,a*500):n()}})}const Db={title:"كل مجموعات الشعوب",locations:"{n} موقعًا (مجموعة × بلد)",doxa:"مجموعات شعوب DOXA",frontier:"حدودية — لم يبدأ شيء",unreached:"غير مُبشَّرة — العمل يبدأ",reached:"مُبشَّرة — الكنيسة موجودة",hint:"انقر على صف لعرضها كلها · انقر مرة أخرى لعرض الكل",loading:"جارٍ تحميل كل مجموعات الشعوب…",loadError:"تعذّر تحميل الخريطة.",pray:"صلِّ لأجلهم ←",population:"السكان {n}"},Bb={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها"},Gb={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:"الملصقات في كل صف"},jb={title:"الوصول إلى الإنترنت حيث تعيش الشعوب غير المنخرطة",bands:{yes:"متصل 60%+",partial:"جزئي 25–59%",no:"منخفض، أقل من 25%",unknown:"غير مُقاس"},peopleGroup:"شعب",caveat:"أرقام وطنية (البنك الدولي). بيانات الاتصال لكل مدينة غير متاحة للعامة — لا تستنتج حال مدينة من بيانات بلدها.",sheet:{close:"إغلاق",ai:"عُثر على هذه البيانات عبر بحث معمّق بالذكاء الاصطناعي — وقد تتضمن معلومات خاطئة.",dismiss:"إغلاق التنبيه",internetUsers:"مستخدمو الإنترنت",measured:"سنة القياس",mobilePer100:"اشتراكات الجوال لكل 100",peopleGroups:"الشعوب",topPlatform:"المنصة الأولى",unknown:"غير معروف",carriers:"شركات الاتصالات ومزودو الإنترنت ({n})",socialPlatforms:"منصات التواصل الاجتماعي",note:"أرقام وطنية وليست قياسات للمدن. أسماء شركات الاتصالات هي أسماء أصحاب سجلات ASN — وتشمل البنوك والجامعات إلى جانب مزودي الإنترنت، لذا فإن تصنيفها كشركات اتصالات تقدير مبني على الاسم وليس تصنيفًا مُتحقَّقًا منه."}},zb={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:"أدوات التحكم بالخريطة"},Ub={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:"المكان"},Vb={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:"فيلم يسوع"},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_gaps:"الفجوات والفرص",t_bridges:"جسور المدن",t_deaf:"فجوة الصم",t_resources:"الموارد حسب الشعب",t_languages:"اللغات حسب البلد",t_growth:"الوصول مقابل نمو السكان"},pages:{listTitle:"موارد الإنجيل حسب اللغة",chartsTitle:"موارد الإنجيل — حسب اللغة",loadingTables:"جارٍ تحميل جداول الموارد…"}},Hb={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:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية."},qb={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:"إلغاء التحديد"}},Wb={menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم الصلاة والملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntro:"وزّع مهمة الصلاة في مجموعات من خمسين ومئة — كما أطعم يسوع الخمسة آلاف (لوقا ٩:١٤). كل ملصق هو قائمة من 100 يمكنك أن تصلي بها وتطبعها وتعلّقها على الحائط — مصلّيًا لأجلهم باسم شعبهم."},Yb={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Xb={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},Zb={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},Jb={"%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.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},Qb={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"}},e$={title:"استوديو الإضافات",navLabel:"الإضافات حسب القدرة",countLabel:"{bundles} حزمة · {elements} إضافة مدرجة هنا",changeLanguage:"تغيير اللغة",copyEmbed:"نسخ رمز التضمين",copy:"نسخ",copied:"تم النسخ",scriptEmbed:"تضمين عبر سكربت",loading:"جارٍ تحميل {name}…",couldNotLoad:"تعذّر تحميل {name}.",chooseElement:"اختر إضافة من القائمة.",filterPlaceholder:"تصفية الإضافات",collapseAll:"طي الكل",noMatch:"لا توجد إضافة تطابق «{query}».",openSection:"فتح {cap}، {label}",part:"جزء",noStandalone:"بلا صفحة مستقلة",cap5:"هيكل التطبيق",cap4:"مركّب",cap3:"متعدد العروض",cap2:"إعداد مسبق",cap1:"مفرد",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",partOf:"جزء من {name}، غير منشور بمفرده"},t$={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:"الخريطة"},o$={kicker:"DOXA · الرؤية",title:"كل شعب. كل مكان.",tagline:"من كل مجموعات الشعوب في العالم إلى التي تصلي لأجلها DOXA، محسوبةً من البيانات.",funnelLabel:"من كل مجموعات الشعوب إلى مجموعات شعوب DOXA",allLabel:"مجموعات الشعوب",allNote:"كل مجموعة شعب، في كل بلد تعيش فيه",unreachedLabel:"غير المُبشَّرة",unreachedNote:"أقل من 2% إنجيليون",frontierLabel:"الحدودية",frontierNote:"أقل من 0.1% إنجيليون",doxaLabel:"مجموعات شعوب DOXA",doxaNote:"{frontier} منها حدودية",people:"{n} نسمة",sources:"مجموعات الشعوب: {imb}، بيانات {date}. قائمة DOXA: ‏pray.doxa.life، {date2}.",howCounted:"كيف تُحسب هذه الأرقام",ruleAll:"كل صف في بيانات IMB لمجموعات الشعوب: مجموعة شعب واحدة في بلد واحد.",ruleUnreached:"أولوية الضياع لدى IMB من 0 إلى 2: أقل من 2% إنجيليون.",ruleFrontier:"أولوية الضياع لدى IMB رقم 0: أقل من 0.1% إنجيليون. جزء من غير المُبشَّرة.",ruleDoxa:"كل مجموعة في قائمة صلاة DOXA، مطابَقة مع بيانات IMB حسب الشعب والبلد. ليست كلها حدودية."},n$={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}"},a$={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden"},s$={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"},r$={title:"Internetzugang dort, wo Volksgruppen ohne Engagement leben",bands:{yes:"verbunden 60%+",partial:"teilweise 25–59%",no:"gering, unter 25%",unknown:"nicht gemessen"},peopleGroup:"Volksgruppe",caveat:"LANDESWEITE Zahlen (Weltbank). Konnektivität je Stadt ist nicht öffentlich verfügbar — schließen Sie nicht vom Land auf eine Stadt.",sheet:{close:"Schließen",ai:"Diese Daten wurden durch KI-gestützte Recherche gefunden — sie können falsche Angaben enthalten.",dismiss:"Ausblenden",internetUsers:"Internetnutzer",measured:"Gemessen",mobilePer100:"Mobilfunk pro 100",peopleGroups:"Volksgruppen",topPlatform:"Wichtigste Plattform",unknown:"unbekannt",carriers:"Netzbetreiber & ISPs ({n})",socialPlatforms:"Soziale Plattformen",note:"Landesweite Zahlen, keine Messungen je Stadt. Betreibernamen sind ASN-Registerinhaber — darunter neben ISPs auch Banken und Universitäten; die Einstufung als Netzbetreiber ist daher eine Namensheuristik, keine geprüfte Klassifizierung."}},i$={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"},l$={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"},c$={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},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:"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"},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_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…"}},p$={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."},d$={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"}},g$={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."},f$={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},h$={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},m$={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},b$={"%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."},$$={placeholder:"Volk, Ort, Sprache, Religion",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"}},y$={title:"Plugin-Studio",navLabel:"Plugins nach Fähigkeit",countLabel:"{bundles} Bundles · {elements} Plugins hier aufgeführt",changeLanguage:"Sprache ändern",copyEmbed:"Einbettung kopieren",copy:"Kopieren",copied:"Kopiert",scriptEmbed:"Skript-Einbettung",loading:"{name} wird geladen…",couldNotLoad:"{name} konnte nicht geladen werden.",chooseElement:"Wählen Sie ein Plugin aus der Liste.",filterPlaceholder:"Plugins filtern",collapseAll:"Alle einklappen",noMatch:"Kein Plugin entspricht „{query}“.",openSection:"{cap} öffnen, {label}",part:"Teil",noStandalone:"keine eigene Seite",cap5:"App-Shell",cap4:"Komposit",cap3:"Mehrfachansicht",cap2:"Voreinstellung",cap1:"Einzeln",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",partOf:"Teil von {name}, nicht eigenständig veröffentlicht"},_$={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"},v$={kicker:"DOXA · Vision",title:"Jedes Volk. Jeder Ort.",tagline:"Von allen Volksgruppen der Welt bis zu denen, für die DOXA betet, aus den Daten gezählt.",funnelLabel:"Von allen Volksgruppen zu den DOXA-Volksgruppen",allLabel:"Volksgruppen",allNote:"jede Volksgruppe in jedem Land, in dem sie lebt",unreachedLabel:"Unerreicht",unreachedNote:"unter 2 % Evangelikale",frontierLabel:"Frontier",frontierNote:"unter 0,1 % Evangelikale",doxaLabel:"DOXA-Volksgruppen",doxaNote:"{frontier} davon sind Frontier",people:"{n} Menschen",sources:"Volksgruppen: {imb}, Datenstand {date}. DOXA-Liste: pray.doxa.life, {date2}.",howCounted:"So wird gezählt",ruleAll:"Jede Zeile der IMB-Volksgruppendaten: eine Volksgruppe in einem Land.",ruleUnreached:"IMB-Lostness-Priorität 0 bis 2: weniger als 2 % Evangelikale.",ruleFrontier:"IMB-Lostness-Priorität 0: weniger als 0,1 % Evangelikale. Eine Teilmenge der Unerreichten.",ruleDoxa:"Jede Gruppe auf der DOXA-Gebetsliste, den IMB-Daten nach Volk und Land zugeordnet. Nicht alle sind Frontier."},w$={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}"},k$={backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend"},x$={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"},L$={title:"Internet access where unengaged people groups live",bands:{yes:"connected 60%+",partial:"partial 25–59%",no:"low, under 25%",unknown:"not measured"},peopleGroup:"people group",caveat:"NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country.",sheet:{close:"Close",ai:"Data was found by AI deep research — it is subject to false information.",dismiss:"Dismiss",internetUsers:"Internet users",measured:"Measured",mobilePer100:"Mobile per 100",peopleGroups:"People groups",topPlatform:"Top platform",unknown:"unknown",carriers:"Carriers & ISPs ({n})",socialPlatforms:"Social platforms",note:"National figures, not city measurements. Carrier names are ASN registry holders — that set includes banks and universities as well as ISPs, so the carrier flag is a name heuristic, not a verified classification."}},A$={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"},S$={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"},P$={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},C$={_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"},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_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…"}},E$={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."},T$={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"}},N$={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."},R$={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},M$={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},F$={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},I$={"%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."},O$={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"},kinds:{people:"People Group + Country",peopleGroup:"People Group",bloc:"Affinity Block",cluster:"People Cluster",country:"Country",region:"Region",family:"Language Family",languageKind:"Language",dialect:"Dialect",religionKind:"Religion"},sections:{within:"Within {selection}",allData:"All DOXA Data"}},D$={title:"Plugin Studio",navLabel:"Plugins by capability",countLabel:"{bundles} bundles · {elements} plugins listed here",changeLanguage:"Change language",copyEmbed:"Copy embed",copy:"Copy",copied:"Copied",scriptEmbed:"Script embed",loading:"Loading {name}…",couldNotLoad:"Could not load {name}.",chooseElement:"Choose a plugin from the list.",filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",openSection:"Open {cap}, {label}",part:"part",noStandalone:"no standalone page",cap5:"App shell",cap4:"Composite",cap3:"Multi-view",cap2:"Preset",cap1:"Single",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",partOf:"part of {name}, not published on its own"},B$={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"},G$={kicker:"DOXA · Vision",title:"Every people. Every place.",tagline:"From every people group on earth to the ones DOXA prays for, counted from the data.",funnelLabel:"From all people groups to DOXA people groups",allLabel:"People groups",allNote:"each people group, in each country it lives in",unreachedLabel:"Unreached",unreachedNote:"under 2% evangelical",frontierLabel:"Frontier",frontierNote:"under 0.1% evangelical",doxaLabel:"DOXA people groups",doxaNote:"{frontier} of them are frontier",people:"{n} people",sources:"People groups: {imb}, data of {date}. DOXA list: pray.doxa.life, {date2}.",howCounted:"How these are counted",ruleAll:"Every row of the IMB people-group data: one people group in one country.",ruleUnreached:"IMB lostness priority 0 to 2: less than 2% evangelical.",ruleFrontier:"IMB lostness priority 0: less than 0.1% evangelical. A subset of the unreached.",ruleDoxa:"Every group on the DOXA prayer list, matched to the IMB data by people and country. Not all are frontier."},j$={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}"},z$={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda"},U$={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"},V$={title:"Acceso a internet donde viven pueblos sin implicación",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"bajo, menos del 25%",unknown:"sin medir"},peopleGroup:"pueblo",caveat:"Cifras NACIONALES (Banco Mundial). La conectividad por ciudad no está disponible públicamente: no deduzca una ciudad a partir de su país.",sheet:{close:"Cerrar",ai:"Estos datos se obtuvieron mediante investigación con IA y pueden contener información falsa.",dismiss:"Descartar",internetUsers:"Usuarios de internet",measured:"Medido",mobilePer100:"Móviles por cada 100",peopleGroups:"Pueblos",topPlatform:"Plataforma principal",unknown:"desconocido",carriers:"Operadores y proveedores de internet ({n})",socialPlatforms:"Redes sociales",note:"Cifras nacionales, no mediciones por ciudad. Los nombres de operadores son titulares de registros ASN (incluyen bancos y universidades además de proveedores), así que la marca de operador es una heurística por nombre, no una clasificación verificada."}},K$={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"},H$={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"},q$={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."}},W$={_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"},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_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…"}},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."},X$={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"}},Z$={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."},J$={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},Q$={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},ey={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},ty={"%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."},oy={placeholder:"Pueblo, lugar, idioma, religión",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"},sections:{within:"Dentro de {selection}",allData:"Todos los datos DOXA"}},ny={title:"Estudio de plugins",navLabel:"Plugins por capacidad",countLabel:"{bundles} paquetes · {elements} plugins listados aquí",changeLanguage:"Cambiar idioma",copyEmbed:"Copiar código de inserción",copy:"Copiar",copied:"Copiado",scriptEmbed:"Inserción por script",loading:"Cargando {name}…",couldNotLoad:"No se pudo cargar {name}.",chooseElement:"Elija un plugin de la lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Contraer todo",noMatch:"Ningún plugin coincide con «{query}».",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sin página propia",cap5:"Contenedor de aplicación",cap4:"Compuesto",cap3:"Multivista",cap2:"Preajuste",cap1:"Individual",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer",partOf:"parte de {name}, no publicada por separado"},ay={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"},sy={kicker:"DOXA · Visión",title:"Cada pueblo. Cada lugar.",tagline:"De todos los grupos étnicos del mundo a aquellos por los que DOXA ora, contados a partir de los datos.",funnelLabel:"De todos los grupos étnicos a los grupos étnicos de DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, en cada país donde vive",unreachedLabel:"No alcanzados",unreachedNote:"menos del 2 % evangélicos",frontierLabel:"Frontera",frontierNote:"menos del 0,1 % evangélicos",doxaLabel:"Grupos étnicos de DOXA",doxaNote:"{frontier} de ellos son de frontera",people:"{n} personas",sources:"Grupos étnicos: {imb}, datos de {date}. Lista de DOXA: pray.doxa.life, {date2}.",howCounted:"Cómo se cuentan",ruleAll:"Cada fila de los datos de grupos étnicos del IMB: un grupo étnico en un país.",ruleUnreached:"Prioridad de perdición del IMB de 0 a 2: menos del 2 % evangélicos.",ruleFrontier:"Prioridad de perdición del IMB 0: menos del 0,1 % evangélicos. Un subconjunto de los no alcanzados.",ruleDoxa:"Cada grupo de la lista de oración de DOXA, vinculado a los datos del IMB por pueblo y país. No todos son de frontera."},ry={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}"},iy={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"},ly={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"},cy={title:"Accès à Internet là où vivent les peuples sans engagement",bands:{yes:"connecté 60 %+",partial:"partiel 25–59 %",no:"faible, moins de 25 %",unknown:"non mesuré"},peopleGroup:"peuple",caveat:"Chiffres NATIONAUX (Banque mondiale). La connectivité par ville n'est pas publique — ne déduisez pas une ville à partir de son pays.",sheet:{close:"Fermer",ai:"Ces données proviennent d'une recherche approfondie par IA — elles peuvent contenir des informations erronées.",dismiss:"Ignorer",internetUsers:"Internautes",measured:"Mesuré",mobilePer100:"Mobiles pour 100",peopleGroups:"Peuples",topPlatform:"Plateforme principale",unknown:"inconnu",carriers:"Opérateurs et FAI ({n})",socialPlatforms:"Réseaux sociaux",note:"Chiffres nationaux, pas des mesures par ville. Les noms d'opérateurs sont les titulaires de registres ASN (on y trouve aussi des banques et des universités à côté des FAI), donc l'étiquette « opérateur » est une heuristique fondée sur le nom, non une classification vérifiée."}},uy={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"},py={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"},dy={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},gy={_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"},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_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…"}},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."},hy={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"}},my={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."},by={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},$y={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},yy={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},_y={"%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."},vy={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"},sections:{within:"Dans {selection}",allData:"Toutes les données DOXA"}},wy={title:"Studio de plugins",navLabel:"Plugins par capacité",countLabel:"{bundles} paquets · {elements} plugins listés ici",changeLanguage:"Changer de langue",copyEmbed:"Copier le code d’intégration",copy:"Copier",copied:"Copié",scriptEmbed:"Intégration par script",loading:"Chargement de {name}…",couldNotLoad:"Impossible de charger {name}.",chooseElement:"Choisissez un plugin dans la liste.",filterPlaceholder:"Filtrer les plugins",collapseAll:"Tout replier",noMatch:"Aucun plugin ne correspond à « {query} ».",openSection:"Ouvrir {cap}, {label}",part:"partie",noStandalone:"pas de page autonome",cap5:"Coquille d’application",cap4:"Composite",cap3:"Multivue",cap2:"Préréglage",cap1:"Simple",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier",partOf:"partie de {name}, non publiée seule"},ky={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"},xy={kicker:"DOXA · Vision",title:"Chaque peuple. Chaque lieu.",tagline:"De tous les groupes ethniques du monde à ceux pour qui DOXA prie, comptés à partir des données.",funnelLabel:"De tous les groupes ethniques aux groupes ethniques DOXA",allLabel:"Groupes ethniques",allNote:"chaque groupe ethnique, dans chaque pays où il vit",unreachedLabel:"Non atteints",unreachedNote:"moins de 2 % d’évangéliques",frontierLabel:"Frontière",frontierNote:"moins de 0,1 % d’évangéliques",doxaLabel:"Groupes ethniques DOXA",doxaNote:"dont {frontier} de frontière",people:"{n} personnes",sources:"Groupes ethniques : {imb}, données du {date}. Liste DOXA : pray.doxa.life, {date2}.",howCounted:"Comment ces chiffres sont comptés",ruleAll:"Chaque ligne des données IMB : un groupe ethnique dans un pays.",ruleUnreached:"Priorité de perdition IMB 0 à 2 : moins de 2 % d’évangéliques.",ruleFrontier:"Priorité de perdition IMB 0 : moins de 0,1 % d’évangéliques. Un sous-ensemble des non-atteints.",ruleDoxa:"Chaque groupe de la liste de prière DOXA, rapproché des données IMB par peuple et pays. Tous ne sont pas de frontière."},Ly={title:"सभी जनसमूह",locations:"{n} स्थान (समूह × देश)",doxa:"DOXA जनसमूह",frontier:"सीमांत — कुछ शुरू नहीं हुआ",unreached:"अप्रचारित — काम शुरू हो रहा है",reached:"प्रचारित — कलीसिया मौजूद है",hint:"सभी देखने के लिए पंक्ति पर क्लिक करें · सब कुछ देखने के लिए फिर क्लिक करें",loading:"सभी जनसमूह लोड हो रहे हैं…",loadError:"मानचित्र लोड नहीं हो सका।",pray:"उनके लिए प्रार्थना करें →",population:"जनसंख्या {n}"},Ay={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ"},Sy={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:"प्रति पंक्ति पोस्टर"},Py={title:"इंटरनेट पहुँच जहाँ बिना सहभागिता वाले जनसमूह रहते हैं",bands:{yes:"जुड़ा हुआ 60%+",partial:"आंशिक 25–59%",no:"कम, 25% से नीचे",unknown:"मापा नहीं गया"},peopleGroup:"जनसमूह",caveat:"राष्ट्रीय आँकड़े (विश्व बैंक)। शहर-स्तर की कनेक्टिविटी सार्वजनिक रूप से उपलब्ध नहीं है — देश के आँकड़ों से किसी शहर का अनुमान न लगाएँ।",sheet:{close:"बंद करें",ai:"यह डेटा एआई गहन शोध से मिला है — इसमें गलत जानकारी हो सकती है।",dismiss:"हटाएँ",internetUsers:"इंटरनेट उपयोगकर्ता",measured:"मापा गया",mobilePer100:"प्रति 100 मोबाइल",peopleGroups:"जनसमूह",topPlatform:"शीर्ष प्लेटफ़ॉर्म",unknown:"अज्ञात",carriers:"कैरियर और आईएसपी ({n})",socialPlatforms:"सोशल प्लेटफ़ॉर्म",note:"ये राष्ट्रीय आँकड़े हैं, शहरों के माप नहीं। कैरियर के नाम ASN रजिस्ट्री धारकों के हैं — उनमें आईएसपी के साथ बैंक और विश्वविद्यालय भी शामिल हैं, इसलिए कैरियर का चिह्न नाम पर आधारित अनुमान है, सत्यापित वर्गीकरण नहीं।"}},Cy={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:"मानचित्र नियंत्रण"},Ey={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:"स्थान"},Ty={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},Ny={_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:"यीशु फ़िल्म"},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_gaps:"कमियाँ और अवसर",t_bridges:"नगर सेतु",t_deaf:"बधिर कमी",t_resources:"जनसमूह अनुसार संसाधन",t_languages:"देश अनुसार भाषाएँ",t_growth:"पहुँच बनाम जनसंख्या वृद्धि"},pages:{listTitle:"भाषा अनुसार सुसमाचार संसाधन",chartsTitle:"सुसमाचार संसाधन — भाषा अनुसार",loadingTables:"संसाधन तालिकाएँ लोड हो रही हैं…"}},Ry={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:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।"},My={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:"चयन हटाएँ"}},Fy={menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना लामबंदी",upg100WallIntro:"प्रार्थना के काम को पचास-पचास और सौ-सौ के समूहों में बाँटें — जैसे यीशु ने 5,000 लोगों को खिलाया (लूका 9:14)। हर पोस्टर 100 की एक सूची है जिसके लिए आप प्रार्थना कर सकते हैं, छाप सकते हैं और दीवार पर लगा सकते हैं — उनके लिए उनके जनसमूह के नाम से प्रार्थना करते हुए।"},Iy={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},Oy={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},Dy={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},By={"%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.":"नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"},Gy={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"}},jy={title:"प्लगइन स्टूडियो",navLabel:"क्षमता के अनुसार प्लगइन",countLabel:"{bundles} बंडल · यहाँ {elements} प्लगइन सूचीबद्ध",changeLanguage:"भाषा बदलें",copyEmbed:"एम्बेड कोड कॉपी करें",copy:"कॉपी करें",copied:"कॉपी हो गया",scriptEmbed:"स्क्रिप्ट एम्बेड",loading:"{name} लोड हो रहा है…",couldNotLoad:"{name} लोड नहीं हो सका।",chooseElement:"सूची से कोई प्लगइन चुनें।",filterPlaceholder:"प्लगइन फ़िल्टर करें",collapseAll:"सभी संक्षिप्त करें",noMatch:"“{query}” से कोई प्लगइन मेल नहीं खाता।",openSection:"{cap} खोलें, {label}",part:"भाग",noStandalone:"कोई अलग पेज नहीं",cap5:"ऐप शेल",cap4:"संयुक्त",cap3:"बहु-दृश्य",cap2:"प्रीसेट",cap1:"एकल",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",partOf:"{name} का भाग, अलग से प्रकाशित नहीं"},zy={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:"मानचित्र"},Uy={kicker:"DOXA · दर्शन",title:"हर जनसमूह। हर स्थान।",tagline:"दुनिया के हर जनसमूह से उन तक जिनके लिए DOXA प्रार्थना करता है, आँकड़ों से गिने गए।",funnelLabel:"सभी जनसमूहों से DOXA जनसमूहों तक",allLabel:"जनसमूह",allNote:"हर जनसमूह, हर उस देश में जहाँ वह रहता है",unreachedLabel:"अप्रचारित",unreachedNote:"2% से कम इवेंजेलिकल",frontierLabel:"सीमांत",frontierNote:"0.1% से कम इवेंजेलिकल",doxaLabel:"DOXA जनसमूह",doxaNote:"इनमें से {frontier} सीमांत हैं",people:"{n} लोग",sources:"जनसमूह: {imb}, {date} के आँकड़े। DOXA सूची: pray.doxa.life, {date2}।",howCounted:"ये कैसे गिने गए",ruleAll:"IMB जनसमूह आँकड़ों की हर पंक्ति: एक देश में एक जनसमूह।",ruleUnreached:"IMB लॉस्टनेस प्राथमिकता 0 से 2: 2% से कम इवेंजेलिकल।",ruleFrontier:"IMB लॉस्टनेस प्राथमिकता 0: 0.1% से कम इवेंजेलिकल। अप्रचारितों का एक भाग।",ruleDoxa:"DOXA प्रार्थना सूची का हर समूह, जनसमूह और देश के आधार पर IMB आँकड़ों से मिलाया गया। सभी सीमांत नहीं हैं।"},Vy={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}"},Ky={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio",collapseLegend:"Comprimi la legenda",expandLegend:"Espandi la legenda",toggleLegend:"Mostra o nascondi la legenda"},Hy={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"},qy={title:"Accesso a internet dove vivono i popoli senza impegno",bands:{yes:"connesso 60%+",partial:"parziale 25–59%",no:"basso, sotto il 25%",unknown:"non misurato"},peopleGroup:"popolo",caveat:"Dati NAZIONALI (Banca Mondiale). La connettività per città non è disponibile pubblicamente: non dedurre una città dal suo paese.",sheet:{close:"Chiudi",ai:"Questi dati provengono da una ricerca approfondita con IA e possono contenere informazioni errate.",dismiss:"Ignora",internetUsers:"Utenti internet",measured:"Misurato",mobilePer100:"Cellulari ogni 100",peopleGroups:"Popoli",topPlatform:"Piattaforma principale",unknown:"sconosciuto",carriers:"Operatori e ISP ({n})",socialPlatforms:"Piattaforme social",note:"Dati nazionali, non misure per città. I nomi degli operatori sono titolari di registri ASN (includono banche e università oltre agli ISP), quindi l'etichetta di operatore è un'euristica basata sul nome, non una classificazione verificata."}},Wy={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"},Yy={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"},Xy={labels:{country:"Paese:",population:"Popolazione:",language:"Lingua:",religion:"Religione:",languageFamily:"Famiglia linguistica:",peopleCommitted:"Impegnati a pregare:"},messages:{noDescription:"Nessuna descrizione disponibile."}},Zy={_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Ù"},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_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…"}},Jy={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."},Qy={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"}},e_={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."},t_={clusterByRegion:"Per regione Doxa",clusterByLanguageFamily:"Per famiglia linguistica",clusterByGospelResource:"Per risorsa del Vangelo"},o_={country:{wagfRegion:"Regione WAGF",wagfBlock:"Blocco WAGF",country:"Paese",uupgCount:"Numero di UUPG"}},n_={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},a_={"%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."},s_={placeholder:"Popolo, luogo, lingua, religione",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"}},r_={title:"Studio dei plugin",navLabel:"Plugin per capacità",countLabel:"{bundles} pacchetti · {elements} plugin elencati qui",changeLanguage:"Cambia lingua",copyEmbed:"Copia codice di incorporamento",copy:"Copia",copied:"Copiato",scriptEmbed:"Incorporamento tramite script",loading:"Caricamento di {name}…",couldNotLoad:"Impossibile caricare {name}.",chooseElement:"Scegli un plugin dall’elenco.",filterPlaceholder:"Filtra i plugin",collapseAll:"Comprimi tutto",noMatch:"Nessun plugin corrisponde a «{query}».",openSection:"Apri {cap}, {label}",part:"parte",noStandalone:"nessuna pagina propria",cap5:"Shell dell’app",cap4:"Composito",cap3:"Multivista",cap2:"Preimpostato",cap1:"Singolo",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi",partOf:"parte di {name}, non pubblicata da sola"},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"},l_={kicker:"DOXA · Visione",title:"Ogni popolo. Ogni luogo.",tagline:"Da tutti i gruppi etnici del mondo a quelli per cui DOXA prega, contati dai dati.",funnelLabel:"Da tutti i gruppi etnici ai gruppi etnici DOXA",allLabel:"Gruppi etnici",allNote:"ogni gruppo etnico, in ogni paese in cui vive",unreachedLabel:"Non raggiunti",unreachedNote:"meno del 2% evangelici",frontierLabel:"Frontiera",frontierNote:"meno dello 0,1% evangelici",doxaLabel:"Gruppi etnici DOXA",doxaNote:"{frontier} di questi sono di frontiera",people:"{n} persone",sources:"Gruppi etnici: {imb}, dati del {date}. Elenco DOXA: pray.doxa.life, {date2}.",howCounted:"Come vengono contati",ruleAll:"Ogni riga dei dati IMB sui gruppi etnici: un gruppo etnico in un paese.",ruleUnreached:"Priorità di perdizione IMB da 0 a 2: meno del 2% evangelici.",ruleFrontier:"Priorità di perdizione IMB 0: meno dello 0,1% evangelici. Un sottoinsieme dei non raggiunti.",ruleDoxa:"Ogni gruppo dell’elenco di preghiera DOXA, abbinato ai dati IMB per popolo e paese. Non tutti sono di frontiera."},c_={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}"},u_={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe",collapseLegend:"Recolher a legenda",expandLegend:"Expandir a legenda",toggleLegend:"Mostrar ou ocultar a legenda"},p_={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"},d_={title:"Acesso à internet onde vivem os povos sem envolvimento",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"baixo, abaixo de 25%",unknown:"não medido"},peopleGroup:"povo",caveat:"Números NACIONAIS (Banco Mundial). A conectividade por cidade não está disponível publicamente — não deduza uma cidade a partir do país.",sheet:{close:"Fechar",ai:"Estes dados foram encontrados por pesquisa aprofundada com IA — podem conter informações falsas.",dismiss:"Dispensar",internetUsers:"Usuários de internet",measured:"Medido",mobilePer100:"Celulares por 100",peopleGroups:"Povos",topPlatform:"Plataforma principal",unknown:"desconhecido",carriers:"Operadoras e provedores ({n})",socialPlatforms:"Redes sociais",note:"Números nacionais, não medições por cidade. Os nomes das operadoras são titulares de registros ASN (incluem bancos e universidades além de provedores), então a marcação de operadora é uma heurística pelo nome, não uma classificação verificada."}},g_={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"},f_={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"},h_={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."}},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:"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"},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_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…"}},b_={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."},$_={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"}},y_={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."},__={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},v_={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},w_={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},k_={"%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."},x_={placeholder:"Povo, local, língua, religião",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"},sections:{within:"Dentro de {selection}",allData:"Todos os dados DOXA"}},L_={title:"Estúdio de plugins",navLabel:"Plugins por capacidade",countLabel:"{bundles} pacotes · {elements} plugins listados aqui",changeLanguage:"Mudar idioma",copyEmbed:"Copiar código de incorporação",copy:"Copiar",copied:"Copiado",scriptEmbed:"Incorporação por script",loading:"Carregando {name}…",couldNotLoad:"Não foi possível carregar {name}.",chooseElement:"Escolha um plugin na lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Recolher tudo",noMatch:"Nenhum plugin corresponde a “{query}”.",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sem página própria",cap5:"Shell do aplicativo",cap4:"Composto",cap3:"Multivisualização",cap2:"Predefinição",cap1:"Único",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher",partOf:"parte de {name}, não publicada separadamente"},A_={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"},S_={kicker:"DOXA · Visão",title:"Cada povo. Cada lugar.",tagline:"De todos os grupos étnicos do mundo àqueles pelos quais a DOXA ora, contados a partir dos dados.",funnelLabel:"De todos os grupos étnicos aos grupos étnicos da DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, em cada país onde vive",unreachedLabel:"Não alcançados",unreachedNote:"menos de 2% evangélicos",frontierLabel:"Fronteira",frontierNote:"menos de 0,1% evangélicos",doxaLabel:"Grupos étnicos da DOXA",doxaNote:"{frontier} deles são de fronteira",people:"{n} pessoas",sources:"Grupos étnicos: {imb}, dados de {date}. Lista da DOXA: pray.doxa.life, {date2}.",howCounted:"Como são contados",ruleAll:"Cada linha dos dados de grupos étnicos do IMB: um grupo étnico em um país.",ruleUnreached:"Prioridade de perdição do IMB de 0 a 2: menos de 2% evangélicos.",ruleFrontier:"Prioridade de perdição do IMB 0: menos de 0,1% evangélicos. Um subconjunto dos não alcançados.",ruleDoxa:"Cada grupo da lista de oração da DOXA, associado aos dados do IMB por povo e país. Nem todos são de fronteira."},P_={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}"},C_={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda"},E_={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"},T_={title:"Acces la internet unde trăiesc popoarele fără implicare",bands:{yes:"conectat 60%+",partial:"parțial 25–59%",no:"scăzut, sub 25%",unknown:"nemăsurat"},peopleGroup:"popor",caveat:"Cifre NAȚIONALE (Banca Mondială). Conectivitatea pe oraș nu este disponibilă public — nu deduceți un oraș din datele țării.",sheet:{close:"Închide",ai:"Aceste date au fost găsite prin cercetare aprofundată cu IA — pot conține informații false.",dismiss:"Închide notificarea",internetUsers:"Utilizatori de internet",measured:"Măsurat",mobilePer100:"Mobile la 100",peopleGroups:"Popoare",topPlatform:"Platforma principală",unknown:"necunoscut",carriers:"Operatori și ISP-uri ({n})",socialPlatforms:"Platforme sociale",note:"Cifre naționale, nu măsurători pe oraș. Numele operatorilor sunt titulari de înregistrări ASN (printre ei se află și bănci și universități, nu doar ISP-uri), deci eticheta de operator este o euristică după nume, nu o clasificare verificată."}},N_={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"},R_={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"},M_={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ă."}},F_={_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"},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_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…"}},I_={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."},O_={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"}},D_={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."},B_={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},G_={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},j_={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},z_={"%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."},U_={placeholder:"Popor, loc, limbă, religie",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"}},V_={title:"Studio de pluginuri",navLabel:"Pluginuri după capacitate",countLabel:"{bundles} pachete · {elements} pluginuri listate aici",changeLanguage:"Schimbă limba",copyEmbed:"Copiază codul de încorporare",copy:"Copiază",copied:"Copiat",scriptEmbed:"Încorporare prin script",loading:"Se încarcă {name}…",couldNotLoad:"{name} nu a putut fi încărcat.",chooseElement:"Alegeți un plugin din listă.",filterPlaceholder:"Filtrează pluginurile",collapseAll:"Restrânge tot",noMatch:"Niciun plugin nu corespunde cu „{query}”.",openSection:"Deschide {cap}, {label}",part:"parte",noStandalone:"fără pagină proprie",cap5:"Cadru de aplicație",cap4:"Compus",cap3:"Vizualizări multiple",cap2:"Presetat",cap1:"Simplu",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge",partOf:"parte din {name}, nepublicată separat"},K_={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ă"},H_={kicker:"DOXA · Viziune",title:"Fiecare popor. Fiecare loc.",tagline:"De la toate grupurile etnice ale lumii la cele pentru care se roagă DOXA, numărate din date.",funnelLabel:"De la toate grupurile etnice la grupurile etnice DOXA",allLabel:"Grupuri etnice",allNote:"fiecare grup etnic, în fiecare țară în care trăiește",unreachedLabel:"Neatinse",unreachedNote:"sub 2% evanghelici",frontierLabel:"Frontieră",frontierNote:"sub 0,1% evanghelici",doxaLabel:"Grupuri etnice DOXA",doxaNote:"{frontier} dintre ele sunt de frontieră",people:"{n} oameni",sources:"Grupuri etnice: {imb}, date din {date}. Lista DOXA: pray.doxa.life, {date2}.",howCounted:"Cum sunt numărate",ruleAll:"Fiecare rând din datele IMB despre grupuri etnice: un grup etnic într-o țară.",ruleUnreached:"Prioritatea de pierzare IMB 0–2: sub 2% evanghelici.",ruleFrontier:"Prioritatea de pierzare IMB 0: sub 0,1% evanghelici. O submulțime a celor neatinse.",ruleDoxa:"Fiecare grup de pe lista de rugăciune DOXA, potrivit cu datele IMB după popor și țară. Nu toate sunt de frontieră."},q_={title:"Все народы",locations:"{n} мест (народ × страна)",doxa:"Народы DOXA",frontier:"Рубежные — ничего не начато",unreached:"Недостигнутые — работа начинается",reached:"Достигнутые — церковь есть",hint:"Нажмите на строку, чтобы увидеть все · ещё раз — чтобы показать всё",loading:"Загрузка всех народов…",loadError:"Не удалось загрузить карту.",pray:"Молиться за них →",population:"нас. {n}"},W_={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду"},Y_={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:"Плакатов в ряду"},X_={title:"Доступ к интернету там, где живут народы без вовлечённости",bands:{yes:"подключено 60%+",partial:"частично 25–59%",no:"низкий, менее 25%",unknown:"не измерено"},peopleGroup:"народ",caveat:"НАЦИОНАЛЬНЫЕ данные (Всемирный банк). Данных о подключении по городам в открытом доступе нет — не судите о городе по стране.",sheet:{close:"Закрыть",ai:"Эти данные найдены с помощью углублённого поиска ИИ и могут содержать ошибки.",dismiss:"Скрыть",internetUsers:"Пользователи интернета",measured:"Год измерения",mobilePer100:"Мобильных на 100",peopleGroups:"Народы",topPlatform:"Главная платформа",unknown:"неизвестно",carriers:"Операторы и провайдеры ({n})",socialPlatforms:"Социальные платформы",note:"Национальные данные, а не измерения по городам. Названия операторов — это владельцы записей в реестре ASN; среди них есть банки и университеты, а не только провайдеры, поэтому пометка «оператор» — эвристика по названию, а не проверенная классификация."}},Z_={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:"Элементы управления картой"},J_={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:"Место"},Q_={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},e0={_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:"Фильм «Иисус»"},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_gaps:"Пробелы и возможности",t_bridges:"Городские мосты",t_deaf:"Пробел у глухих",t_resources:"Ресурсы по народам",t_languages:"Языки по странам",t_growth:"Доступ и рост населения"},pages:{listTitle:"Ресурсы Евангелия по языкам",chartsTitle:"Ресурсы Евангелия — по языкам",loadingTables:"Загрузка таблиц ресурсов…"}},t0={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:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра."},o0={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:"Снять выделение"}},n0={menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntro:"Разделите молитвенный труд на группы по пятьдесят и по сто — так Иисус накормил 5000 (Луки 9:14). Каждый плакат — это список из 100, о котором можно молиться, распечатать и повесить на стену, молясь о них по имени их народа."},a0={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},s0={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},r0={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},i0={"%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.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},l0={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"}},c0={title:"Студия плагинов",navLabel:"Плагины по возможностям",countLabel:"Здесь: пакетов {bundles} · плагинов {elements}",changeLanguage:"Сменить язык",copyEmbed:"Скопировать код встраивания",copy:"Копировать",copied:"Скопировано",scriptEmbed:"Встраивание через скрипт",loading:"Загрузка {name}…",couldNotLoad:"Не удалось загрузить {name}.",chooseElement:"Выберите плагин из списка.",filterPlaceholder:"Фильтр плагинов",collapseAll:"Свернуть всё",noMatch:"Нет плагинов, соответствующих «{query}».",openSection:"Открыть {cap}, {label}",part:"часть",noStandalone:"нет отдельной страницы",cap5:"Оболочка приложения",cap4:"Составной",cap3:"Несколько видов",cap2:"Предустановка",cap1:"Одиночный",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",partOf:"часть {name}, не публикуется отдельно"},u0={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:"Карта"},p0={kicker:"DOXA · Видение",title:"Каждый народ. Каждое место.",tagline:"От всех народов мира до тех, за кого молится DOXA, — по данным.",funnelLabel:"От всех народов до народов DOXA",allLabel:"Народы",allNote:"каждый народ в каждой стране, где он живёт",unreachedLabel:"Недостигнутые",unreachedNote:"менее 2% евангельских христиан",frontierLabel:"Рубежные",frontierNote:"менее 0,1% евангельских христиан",doxaLabel:"Народы DOXA",doxaNote:"из них рубежных: {frontier}",people:"{n} человек",sources:"Народы: {imb}, данные на {date}. Список DOXA: pray.doxa.life, {date2}.",howCounted:"Как это посчитано",ruleAll:"Каждая строка данных IMB о народах: один народ в одной стране.",ruleUnreached:"Приоритет IMB 0–2: менее 2% евангельских христиан.",ruleFrontier:"Приоритет IMB 0: менее 0,1% евангельских христиан. Часть недостигнутых.",ruleDoxa:"Каждая группа из молитвенного списка DOXA, сопоставленная с данными IMB по народу и стране. Не все из них рубежные."},d0={title:"所有族群",locations:"{n} 个族群–国家位置",doxa:"DOXA 族群",frontier:"前沿族群 — 尚未开始",unreached:"未得之民 — 事工起步",reached:"已得之民 — 教会已在",hint:"点击一行查看全部 · 再次点击显示所有",loading:"正在加载所有族群…",loadError:"无法加载地图。",pray:"为他们祷告 →",population:"人口 {n}"},g0={backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例"},f0={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:"每行海报数"},h0={title:"未参与族群所在地的互联网接入",bands:{yes:"已联网 60%+",partial:"部分 25–59%",no:"低,低于 25%",unknown:"未测量"},peopleGroup:"族群",caveat:"全国数据(世界银行)。各城市的联网数据未公开——请勿用国家数据推断某个城市。",sheet:{close:"关闭",ai:"这些数据来自人工智能深度检索,可能包含错误信息。",dismiss:"忽略",internetUsers:"互联网用户",measured:"测量年份",mobilePer100:"每百人移动电话",peopleGroups:"族群",topPlatform:"主要平台",unknown:"未知",carriers:"运营商和互联网服务商({n})",socialPlatforms:"社交平台",note:"这是全国数据,不是城市测量值。运营商名称来自 ASN 注册持有者——其中除互联网服务商外还包括银行和大学,因此“运营商”标记是基于名称的推断,并非经过核实的分类。"}},m0={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:"地图控件"},b0={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:"地点"},$0={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},y0={_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:"《耶稣传》"},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_gaps:"缺口与机会",t_bridges:"城市桥梁",t_deaf:"聋人缺口",t_resources:"按族群列出资源",t_languages:"各国语言",t_growth:"可及性与人口增长"},pages:{listTitle:"按语言列出的福音资源",chartsTitle:"福音资源 — 按语言",loadingTables:"正在加载资源表…"}},_0={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:"无法加载民族数据。这是连接问题,而不是筛选问题。"},v0={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:"清除选择"}},w0={menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名單 — 禱告名單與海報",upg100WallTag:"禱告動員",upg100WallIntro:"將禱告的工作分成五十人、一百人一組 — 就像耶穌餵飽五千人那樣(路加福音 9:14)。每一張海報都是一份 100 人名單,你可以為他們禱告、列印出來、貼在牆上 — 按著他們族群的名字為他們禱告。"},k0={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},x0={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},L0={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},A0={"%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.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},S0={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"}},P0={title:"插件工作室",navLabel:"按能力分类的插件",countLabel:"此处列出 {bundles} 个包 · {elements} 个插件",changeLanguage:"切换语言",copyEmbed:"复制嵌入代码",copy:"复制",copied:"已复制",scriptEmbed:"脚本嵌入",loading:"正在加载 {name}…",couldNotLoad:"无法加载 {name}。",chooseElement:"请从列表中选择一个插件。",filterPlaceholder:"筛选插件",collapseAll:"全部折叠",noMatch:"没有与“{query}”匹配的插件。",openSection:"打开 {cap},{label}",part:"部分",noStandalone:"无独立页面",cap5:"应用外壳",cap4:"组合",cap3:"多视图",cap2:"预设",cap1:"单一",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",partOf:"{name} 的一部分,不单独发布"},C0={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:"地圖"},E0={kicker:"DOXA · 异象",title:"每一个民族,每一个地方。",tagline:"从世界上所有族群到 DOXA 为之祷告的族群,全部依据数据计算。",funnelLabel:"从所有族群到 DOXA 族群",allLabel:"族群",allNote:"每个族群在其居住的每个国家各计一次",unreachedLabel:"未得之民",unreachedNote:"福音派信徒少于 2%",frontierLabel:"前沿族群",frontierNote:"福音派信徒少于 0.1%",doxaLabel:"DOXA 族群",doxaNote:"其中 {frontier} 个为前沿族群",people:"{n} 人",sources:"族群:{imb},数据日期 {date}。DOXA 名单:pray.doxa.life,{date2}。",howCounted:"这些数字如何计算",ruleAll:"IMB 族群数据的每一行:一个国家中的一个族群。",ruleUnreached:"IMB 迷失优先级 0 至 2:福音派信徒少于 2%。",ruleFrontier:"IMB 迷失优先级 0:福音派信徒少于 0.1%。属于未得之民的一部分。",ruleDoxa:"DOXA 祷告名单上的每个族群,按民族和国家与 IMB 数据匹配。并非全部都是前沿族群。"};/*! + */let wp;const sr=e=>wp=e,kp=Symbol();function Mi(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Qa;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Qa||(Qa={}));function Nb(){const e=Zr(!0),t=e.run(()=>ge({}));let o=[],n=[];const a=Wn({install(s){sr(a),a._a=s,s.provide(kp,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 xp=()=>{};function Lp(e,t,o,n=xp){e.push(t);const a=()=>{const s=e.indexOf(t);s>-1&&(e.splice(s,1),n())};return!o&&Ac()&&th(a),a}function oa(e,...t){e.slice().forEach(o=>{o(...t)})}const Rb=e=>e(),Ap=Symbol(),Fi=Symbol();function Ii(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];Mi(a)&&Mi(n)&&e.hasOwnProperty(o)&&!ut(n)&&!jo(n)?e[o]=Ii(a,n):e[o]=n}return e}const Mb=Symbol();function Fb(e){return!Mi(e)||!e.hasOwnProperty(Mb)}const{assign:pn}=Object;function Ib(e){return!!(ut(e)&&e.effect)}function Ob(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=kh(o.state.value[e]);return pn(u,s,Object.keys(r||{}).reduce((p,d)=>(p[d]=Wn(ee(()=>{sr(o);const A=o._s.get(e);return r[d].call(A,A)})),p),{}))}return l=Sp(e,c,t,o,n,!0),l}function Sp(e,t,o={},n,a,s){let r;const i=pn({actions:{}},o),l={deep:!0};let c,u,p=[],d=[],A;const k=n.state.value[e];!s&&!k&&(n.state.value[e]={});let f;function w(g){let _;c=u=!1,typeof g=="function"?(g(n.state.value[e]),_={type:Qa.patchFunction,storeId:e,events:A}):(Ii(n.state.value[e],g),_={type:Qa.patchObject,payload:g,storeId:e,events:A});const T=f=Symbol();Mt().then(()=>{f===T&&(c=!0)}),u=!0,oa(p,_,n.state.value[e])}const y=s?function(){const{state:_}=o,T=_?_():{};this.$patch(B=>{pn(B,T)})}:xp;function h(){r.stop(),p=[],d=[],n._s.delete(e)}const $=(g,_="")=>{if(Ap in g)return g[Fi]=_,g;const T=function(){sr(n);const B=Array.from(arguments),V=[],j=[];function G(M){V.push(M)}function C(M){j.push(M)}oa(d,{args:B,name:T[Fi],store:E,after:G,onError:C});let L;try{L=g.apply(this&&this.$id===e?this:E,B)}catch(M){throw oa(j,M),M}return L instanceof Promise?L.then(M=>(oa(V,M),M)).catch(M=>(oa(j,M),Promise.reject(M))):(oa(V,L),L)};return T[Ap]=!0,T[Fi]=_,T},x={_p:n,$id:e,$onAction:Lp.bind(null,d),$patch:w,$reset:y,$subscribe(g,_={}){const T=Lp(p,g,_.detached,()=>B()),B=r.run(()=>Me(()=>n.state.value[e],V=>{(_.flush==="sync"?u:c)&&g({storeId:e,type:Qa.direct,events:A},V)},pn({},l,_)));return T},$dispose:h},E=qn(x);n._s.set(e,E);const b=(n._a&&n._a.runWithContext||Rb)(()=>n._e.run(()=>(r=Zr()).run(()=>t({action:$}))));for(const g in b){const _=b[g];if(ut(_)&&!Ib(_)||jo(_))s||(k&&Fb(_)&&(ut(_)?_.value=k[g]:Ii(_,k[g])),n.state.value[e][g]=_);else if(typeof _=="function"){const T=$(_,g);b[g]=T,i.actions[g]=_}}return pn(E,b),pn(Ve(E),b),Object.defineProperty(E,"$state",{get:()=>n.state.value[e],set:g=>{w(_=>{pn(_,g)})}}),n._p.forEach(g=>{pn(E,r.run(()=>g({store:E,app:n._a,pinia:n,options:i})))}),k&&s&&o.hydrate&&o.hydrate(E.$state,k),c=!0,u=!0,E}/*! #__NO_SIDE_EFFECTS__ */function Oi(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=Oh();return i=i||(c?Te(kp,null):null),i&&sr(i),i=wp,i._s.has(n)||(s?Sp(n,t,a,i):Ob(n,a,i)),i._s.get(n)}return r.$id=n,r}const Di="__doxaMapToken",Bi="doxa:map-token",Pp="__doxaMapTokenBridge",na=()=>{if(typeof window>"u")return"";const e=window[Di];return typeof e=="string"?e:""};function Cp(e){if(typeof window>"u")return"";const t=typeof e=="string"?e.trim():"";if(!t||t===na())return na();window[Di]=t;try{window.dispatchEvent(new CustomEvent(Bi,{detail:t}))}catch{}return t}function Db(){if(typeof window>"u"||window[Pp])return;const e=typeof window.MAP_TOKEN=="string"?window.MAP_TOKEN:"";e&&!na()&&(window[Di]=e);try{Object.defineProperty(window,"MAP_TOKEN",{configurable:!0,get(){return na()},set(t){Cp(t)}}),window[Pp]=!0}catch{}}function Bb(){Db();const e=ge(na());if(typeof window<"u"){const t=()=>{e.value=na()};window.addEventListener(Bi,t);try{qt(()=>window.removeEventListener(Bi,t))}catch{}}return e}function es(e){return Xh({loader:e,onError(t,o,n,a){a<=3?setTimeout(o,a*500):n()}})}const Gb={title:"كل مجموعات الشعوب",locations:"{n} موقعًا (مجموعة × بلد)",doxa:"مجموعات شعوب DOXA",frontier:"حدودية — لم يبدأ شيء",unreached:"غير مُبشَّرة — العمل يبدأ",reached:"مُبشَّرة — الكنيسة موجودة",hint:"انقر على صف لعرضها كلها · انقر مرة أخرى لعرض الكل",loading:"جارٍ تحميل كل مجموعات الشعوب…",loadError:"تعذّر تحميل الخريطة.",pray:"صلِّ لأجلهم ←",population:"السكان {n}"},jb={backToLegend:"العودة إلى المفتاح",closeDetailView:"إغلاق عرض التفاصيل",collapseLegend:"طيّ وسيلة الإيضاح",expandLegend:"توسيع وسيلة الإيضاح",toggleLegend:"إظهار وسيلة الإيضاح أو إخفاؤها"},zb={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:"الملصقات في كل صف"},Ub={title:"الوصول إلى الإنترنت حيث تعيش الشعوب غير المنخرطة",bands:{yes:"متصل 60%+",partial:"جزئي 25–59%",no:"منخفض، أقل من 25%",unknown:"غير مُقاس"},peopleGroup:"شعب",caveat:"أرقام وطنية (البنك الدولي). بيانات الاتصال لكل مدينة غير متاحة للعامة — لا تستنتج حال مدينة من بيانات بلدها.",sheet:{close:"إغلاق",ai:"عُثر على هذه البيانات عبر بحث معمّق بالذكاء الاصطناعي — وقد تتضمن معلومات خاطئة.",dismiss:"إغلاق التنبيه",internetUsers:"مستخدمو الإنترنت",measured:"سنة القياس",mobilePer100:"اشتراكات الجوال لكل 100",peopleGroups:"الشعوب",topPlatform:"المنصة الأولى",unknown:"غير معروف",carriers:"شركات الاتصالات ومزودو الإنترنت ({n})",socialPlatforms:"منصات التواصل الاجتماعي",note:"أرقام وطنية وليست قياسات للمدن. أسماء شركات الاتصالات هي أسماء أصحاب سجلات ASN — وتشمل البنوك والجامعات إلى جانب مزودي الإنترنت، لذا فإن تصنيفها كشركات اتصالات تقدير مبني على الاسم وليس تصنيفًا مُتحقَّقًا منه."}},Vb={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:"أدوات التحكم بالخريطة"},Kb={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:"المكان"},Hb={labels:{country:"الدولة:",population:"السكان:",language:"اللغة:",religion:"الديانة:",languageFamily:"العائلة اللغوية:",peopleCommitted:"ملتزمون بالصلاة:"},messages:{noDescription:"لا يوجد وصف متاح."}},qb={_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:"فيلم يسوع"},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_gaps:"الفجوات والفرص",t_bridges:"جسور المدن",t_deaf:"فجوة الصم",t_resources:"الموارد حسب الشعب",t_languages:"اللغات حسب البلد",t_growth:"الوصول مقابل نمو السكان"},pages:{listTitle:"موارد الإنجيل حسب اللغة",chartsTitle:"موارد الإنجيل — حسب اللغة",loadingTables:"جارٍ تحميل جداول الموارد…"}},Wb={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:"تعذّر تحميل بيانات الشعوب. هذه مشكلة اتصال، وليست مشكلة في التصفية."},Yb={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:"إلغاء التحديد"}},Xb={menuComingSoon:"القائمة قادمة قريباً",pinHint:{tapDot:"اضغط على نقطة ملوّنة — لا يزال هناك من يحتاج إلى الصلاة"},upg100WallHeading:"قائمتي UPG 100 — قوائم الصلاة والملصقات",upg100WallTag:"تعبئة للصلاة",upg100WallIntro:"وزّع مهمة الصلاة في مجموعات من خمسين ومئة — كما أطعم يسوع الخمسة آلاف (لوقا ٩:١٤). كل ملصق هو قائمة من 100 يمكنك أن تصلي بها وتطبعها وتعلّقها على الحائط — مصلّيًا لأجلهم باسم شعبهم."},Zb={clusterByRegion:"حسب منطقة Doxa",clusterByLanguageFamily:"حسب العائلة اللغوية",clusterByGospelResource:"حسب مورد الإنجيل"},Jb={country:{wagfRegion:"منطقة WAGF",wagfBlock:"كتلة WAGF",country:"الدولة",uupgCount:"عدد UUPG"}},Qb={header:"دورة الصلاة الحالية",lap:"الدورة",upgs:"UUPGs",separator:" من "},e$={"%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.":"تعذّر تشغيل الخريطة. هذه مشكلة في رمز الخريطة أو في الاتصال، وليست تصفية — والأرقام أعلاه غير متأثرة."},t$={placeholder:"شعب، مكان، لغة، ديانة",labels:{people:"الشعب:",place:"المكان:",language:"اللغة:",religion:"الديانة:"},kinds:{people:"الشعب + الدولة",peopleGroup:"الشعب",bloc:"كتلة التقارب",cluster:"مجموعة شعوب",country:"الدولة",region:"المنطقة",family:"عائلة اللغة",languageKind:"اللغة",dialect:"اللهجة",religionKind:"الدين"},sections:{within:"ضمن {selection}",allData:"كل بيانات DOXA"}},o$={title:"استوديو الإضافات",navLabel:"الإضافات حسب القدرة",countLabel:"{bundles} حزمة · {elements} إضافة مدرجة هنا",changeLanguage:"تغيير اللغة",copyEmbed:"نسخ رمز التضمين",copy:"نسخ",copied:"تم النسخ",scriptEmbed:"تضمين عبر سكربت",loading:"جارٍ تحميل {name}…",couldNotLoad:"تعذّر تحميل {name}.",chooseElement:"اختر إضافة من القائمة.",filterPlaceholder:"تصفية الإضافات",collapseAll:"طي الكل",noMatch:"لا توجد إضافة تطابق «{query}».",openSection:"فتح {cap}، {label}",part:"جزء",noStandalone:"بلا صفحة مستقلة",cap5:"هيكل التطبيق",cap4:"مركّب",cap3:"متعدد العروض",cap2:"إعداد مسبق",cap1:"مفرد",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",partOf:"جزء من {name}، غير منشور بمفرده"},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:"الخريطة"},a$={kicker:"DOXA · الرؤية",title:"كل شعب. كل مكان.",tagline:"من كل مجموعات الشعوب في العالم إلى التي تصلي لأجلها DOXA، محسوبةً من البيانات.",funnelLabel:"من كل مجموعات الشعوب إلى مجموعات شعوب DOXA",allLabel:"مجموعات الشعوب",allNote:"كل مجموعة شعب، في كل بلد تعيش فيه",unreachedLabel:"غير المُبشَّرة",unreachedNote:"أقل من 2% إنجيليون",frontierLabel:"الحدودية",frontierNote:"أقل من 0.1% إنجيليون",doxaLabel:"مجموعات شعوب DOXA",doxaNote:"{frontier} منها حدودية",people:"{n} نسمة",sources:"مجموعات الشعوب: {imb}، بيانات {date}. قائمة DOXA: ‏pray.doxa.life، {date2}.",howCounted:"كيف تُحسب هذه الأرقام",ruleAll:"كل صف في بيانات IMB لمجموعات الشعوب: مجموعة شعب واحدة في بلد واحد.",ruleUnreached:"أولوية الضياع لدى IMB من 0 إلى 2: أقل من 2% إنجيليون.",ruleFrontier:"أولوية الضياع لدى IMB رقم 0: أقل من 0.1% إنجيليون. جزء من غير المُبشَّرة.",ruleDoxa:"كل مجموعة في قائمة صلاة DOXA، مطابَقة مع بيانات IMB حسب الشعب والبلد. ليست كلها حدودية."},s$={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}"},r$={backToLegend:"Zurück zur Legende",closeDetailView:"Detailansicht schließen",collapseLegend:"Legende einklappen",expandLegend:"Legende ausklappen",toggleLegend:"Legende ein- oder ausblenden"},i$={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"},l$={title:"Internetzugang dort, wo Volksgruppen ohne Engagement leben",bands:{yes:"verbunden 60%+",partial:"teilweise 25–59%",no:"gering, unter 25%",unknown:"nicht gemessen"},peopleGroup:"Volksgruppe",caveat:"LANDESWEITE Zahlen (Weltbank). Konnektivität je Stadt ist nicht öffentlich verfügbar — schließen Sie nicht vom Land auf eine Stadt.",sheet:{close:"Schließen",ai:"Diese Daten wurden durch KI-gestützte Recherche gefunden — sie können falsche Angaben enthalten.",dismiss:"Ausblenden",internetUsers:"Internetnutzer",measured:"Gemessen",mobilePer100:"Mobilfunk pro 100",peopleGroups:"Volksgruppen",topPlatform:"Wichtigste Plattform",unknown:"unbekannt",carriers:"Netzbetreiber & ISPs ({n})",socialPlatforms:"Soziale Plattformen",note:"Landesweite Zahlen, keine Messungen je Stadt. Betreibernamen sind ASN-Registerinhaber — darunter neben ISPs auch Banken und Universitäten; die Einstufung als Netzbetreiber ist daher eine Namensheuristik, keine geprüfte Klassifizierung."}},c$={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"},u$={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"},p$={labels:{country:"Land:",population:"Bevölkerung:",language:"Sprache:",religion:"Religion:",languageFamily:"Sprachfamilie:",peopleCommitted:"Zum Gebet verpflichtet:"},messages:{noDescription:"Keine Beschreibung verfügbar."}},d$={_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"},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_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…"}},g$={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."},f$={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"}},h$={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."},m$={clusterByRegion:"Nach Doxa-Region",clusterByLanguageFamily:"Nach Sprachfamilie",clusterByGospelResource:"Nach Evangeliumsressource"},b$={country:{wagfRegion:"WAGF-Region",wagfBlock:"WAGF-Block",country:"Land",uupgCount:"Anzahl UUPG"}},$$={header:"AKTUELLE GEBETSRUNDE",lap:"Runde",upgs:"UUPGs",separator:" von "},y$={"%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."},_$={placeholder:"Volk, Ort, Sprache, Religion",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"}},v$={title:"Plugin-Studio",navLabel:"Plugins nach Fähigkeit",countLabel:"{bundles} Bundles · {elements} Plugins hier aufgeführt",changeLanguage:"Sprache ändern",copyEmbed:"Einbettung kopieren",copy:"Kopieren",copied:"Kopiert",scriptEmbed:"Skript-Einbettung",loading:"{name} wird geladen…",couldNotLoad:"{name} konnte nicht geladen werden.",chooseElement:"Wählen Sie ein Plugin aus der Liste.",filterPlaceholder:"Plugins filtern",collapseAll:"Alle einklappen",noMatch:"Kein Plugin entspricht „{query}“.",openSection:"{cap} öffnen, {label}",part:"Teil",noStandalone:"keine eigene Seite",cap5:"App-Shell",cap4:"Komposit",cap3:"Mehrfachansicht",cap2:"Voreinstellung",cap1:"Einzeln",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",partOf:"Teil von {name}, nicht eigenständig veröffentlicht"},w$={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"},k$={kicker:"DOXA · Vision",title:"Jedes Volk. Jeder Ort.",tagline:"Von allen Volksgruppen der Welt bis zu denen, für die DOXA betet, aus den Daten gezählt.",funnelLabel:"Von allen Volksgruppen zu den DOXA-Volksgruppen",allLabel:"Volksgruppen",allNote:"jede Volksgruppe in jedem Land, in dem sie lebt",unreachedLabel:"Unerreicht",unreachedNote:"unter 2 % Evangelikale",frontierLabel:"Frontier",frontierNote:"unter 0,1 % Evangelikale",doxaLabel:"DOXA-Volksgruppen",doxaNote:"{frontier} davon sind Frontier",people:"{n} Menschen",sources:"Volksgruppen: {imb}, Datenstand {date}. DOXA-Liste: pray.doxa.life, {date2}.",howCounted:"So wird gezählt",ruleAll:"Jede Zeile der IMB-Volksgruppendaten: eine Volksgruppe in einem Land.",ruleUnreached:"IMB-Lostness-Priorität 0 bis 2: weniger als 2 % Evangelikale.",ruleFrontier:"IMB-Lostness-Priorität 0: weniger als 0,1 % Evangelikale. Eine Teilmenge der Unerreichten.",ruleDoxa:"Jede Gruppe auf der DOXA-Gebetsliste, den IMB-Daten nach Volk und Land zugeordnet. Nicht alle sind Frontier."},x$={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}"},L$={backToLegend:"Back to Legend",closeDetailView:"Close detail view",collapseLegend:"Collapse legend",expandLegend:"Expand legend",toggleLegend:"Show or hide the legend"},A$={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"},S$={title:"Internet access where unengaged people groups live",bands:{yes:"connected 60%+",partial:"partial 25–59%",no:"low, under 25%",unknown:"not measured"},peopleGroup:"people group",caveat:"NATIONAL figures (World Bank). Per-city connectivity is not publicly available — do not read a city off a country.",sheet:{close:"Close",ai:"Data was found by AI deep research — it is subject to false information.",dismiss:"Dismiss",internetUsers:"Internet users",measured:"Measured",mobilePer100:"Mobile per 100",peopleGroups:"People groups",topPlatform:"Top platform",unknown:"unknown",carriers:"Carriers & ISPs ({n})",socialPlatforms:"Social platforms",note:"National figures, not city measurements. Carrier names are ASN registry holders — that set includes banks and universities as well as ISPs, so the carrier flag is a name heuristic, not a verified classification."}},P$={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"},C$={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"},E$={labels:{country:"Country:",population:"Population:",language:"Language:",religion:"Religion:",languageFamily:"Language Family:",peopleCommitted:"Committed to pray:"},messages:{noDescription:"No description available."}},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: 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"},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_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…"}},N$={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."},R$={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"}},M$={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."},F$={clusterByRegion:"By Doxa Region",clusterByLanguageFamily:"By Language Family",clusterByGospelResource:"By Gospel Resource"},I$={country:{wagfRegion:"WAGF Region",wagfBlock:"WAGF Bloc",country:"Country",uupgCount:"UUPG Count"}},O$={header:"CURRENT PRAYER LAP",lap:"Lap",upgs:"UUPGs",separator:" of "},D$={"%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."},B$={placeholder:"People, place, language, religion",labels:{people:"People:",place:"Place:",language:"Language:",religion:"Religion:"},kinds:{people:"People Group + Country",peopleGroup:"People Group",bloc:"Affinity Block",cluster:"People Cluster",country:"Country",region:"Region",family:"Language Family",languageKind:"Language",dialect:"Dialect",religionKind:"Religion"},sections:{within:"Within {selection}",allData:"All DOXA Data"}},G$={title:"Plugin Studio",navLabel:"Plugins by capability",countLabel:"{bundles} bundles · {elements} plugins listed here",changeLanguage:"Change language",copyEmbed:"Copy embed",copy:"Copy",copied:"Copied",scriptEmbed:"Script embed",loading:"Loading {name}…",couldNotLoad:"Could not load {name}.",chooseElement:"Choose a plugin from the list.",filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",openSection:"Open {cap}, {label}",part:"part",noStandalone:"no standalone page",cap5:"App shell",cap4:"Composite",cap3:"Multi-view",cap2:"Preset",cap1:"Single",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",partOf:"part of {name}, not published on its own"},j$={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"},z$={kicker:"DOXA · Vision",title:"Every people. Every place.",tagline:"From every people group on earth to the ones DOXA prays for, counted from the data.",funnelLabel:"From all people groups to DOXA people groups",allLabel:"People groups",allNote:"each people group, in each country it lives in",unreachedLabel:"Unreached",unreachedNote:"under 2% evangelical",frontierLabel:"Frontier",frontierNote:"under 0.1% evangelical",doxaLabel:"DOXA people groups",doxaNote:"{frontier} of them are frontier",people:"{n} people",sources:"People groups: {imb}, data of {date}. DOXA list: pray.doxa.life, {date2}.",howCounted:"How these are counted",ruleAll:"Every row of the IMB people-group data: one people group in one country.",ruleUnreached:"IMB lostness priority 0 to 2: less than 2% evangelical.",ruleFrontier:"IMB lostness priority 0: less than 0.1% evangelical. A subset of the unreached.",ruleDoxa:"Every group on the DOXA prayer list, matched to the IMB data by people and country. Not all are frontier."},U$={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}"},V$={backToLegend:"Volver a la leyenda",closeDetailView:"Cerrar vista de detalle",collapseLegend:"Contraer la leyenda",expandLegend:"Expandir la leyenda",toggleLegend:"Mostrar u ocultar la leyenda"},K$={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"},H$={title:"Acceso a internet donde viven pueblos sin implicación",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"bajo, menos del 25%",unknown:"sin medir"},peopleGroup:"pueblo",caveat:"Cifras NACIONALES (Banco Mundial). La conectividad por ciudad no está disponible públicamente: no deduzca una ciudad a partir de su país.",sheet:{close:"Cerrar",ai:"Estos datos se obtuvieron mediante investigación con IA y pueden contener información falsa.",dismiss:"Descartar",internetUsers:"Usuarios de internet",measured:"Medido",mobilePer100:"Móviles por cada 100",peopleGroups:"Pueblos",topPlatform:"Plataforma principal",unknown:"desconocido",carriers:"Operadores y proveedores de internet ({n})",socialPlatforms:"Redes sociales",note:"Cifras nacionales, no mediciones por ciudad. Los nombres de operadores son titulares de registros ASN (incluyen bancos y universidades además de proveedores), así que la marca de operador es una heurística por nombre, no una clasificación verificada."}},q$={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"},W$={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"},Y$={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."}},X$={_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"},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_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…"}},Z$={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."},J$={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"}},Q$={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."},ey={clusterByRegion:"Por región Doxa",clusterByLanguageFamily:"Por familia lingüística",clusterByGospelResource:"Por recurso del Evangelio"},ty={country:{wagfRegion:"Región WAGF",wagfBlock:"Bloque WAGF",country:"País",uupgCount:"Número de UUPG"}},oy={header:"VUELTA DE ORACIÓN ACTUAL",lap:"Vuelta",upgs:"UUPGs",separator:" de "},ny={"%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."},ay={placeholder:"Pueblo, lugar, idioma, religión",labels:{people:"Pueblo:",place:"Lugar:",language:"Idioma:",religion:"Religión:"},kinds:{people:"Pueblo + país",peopleGroup:"Pueblo",bloc:"Bloque de afinidad",cluster:"Clúster de pueblos",country:"País",region:"Región",family:"Familia lingüística",languageKind:"Idioma",dialect:"Dialecto",religionKind:"Religión"},sections:{within:"Dentro de {selection}",allData:"Todos los datos DOXA"}},sy={title:"Estudio de plugins",navLabel:"Plugins por capacidad",countLabel:"{bundles} paquetes · {elements} plugins listados aquí",changeLanguage:"Cambiar idioma",copyEmbed:"Copiar código de inserción",copy:"Copiar",copied:"Copiado",scriptEmbed:"Inserción por script",loading:"Cargando {name}…",couldNotLoad:"No se pudo cargar {name}.",chooseElement:"Elija un plugin de la lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Contraer todo",noMatch:"Ningún plugin coincide con «{query}».",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sin página propia",cap5:"Contenedor de aplicación",cap4:"Compuesto",cap3:"Multivista",cap2:"Preajuste",cap1:"Individual",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer",partOf:"parte de {name}, no publicada por separado"},ry={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"},iy={kicker:"DOXA · Visión",title:"Cada pueblo. Cada lugar.",tagline:"De todos los grupos étnicos del mundo a aquellos por los que DOXA ora, contados a partir de los datos.",funnelLabel:"De todos los grupos étnicos a los grupos étnicos de DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, en cada país donde vive",unreachedLabel:"No alcanzados",unreachedNote:"menos del 2 % evangélicos",frontierLabel:"Frontera",frontierNote:"menos del 0,1 % evangélicos",doxaLabel:"Grupos étnicos de DOXA",doxaNote:"{frontier} de ellos son de frontera",people:"{n} personas",sources:"Grupos étnicos: {imb}, datos de {date}. Lista de DOXA: pray.doxa.life, {date2}.",howCounted:"Cómo se cuentan",ruleAll:"Cada fila de los datos de grupos étnicos del IMB: un grupo étnico en un país.",ruleUnreached:"Prioridad de perdición del IMB de 0 a 2: menos del 2 % evangélicos.",ruleFrontier:"Prioridad de perdición del IMB 0: menos del 0,1 % evangélicos. Un subconjunto de los no alcanzados.",ruleDoxa:"Cada grupo de la lista de oración de DOXA, vinculado a los datos del IMB por pueblo y país. No todos son de frontera."},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"},uy={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"},py={title:"Accès à Internet là où vivent les peuples sans engagement",bands:{yes:"connecté 60 %+",partial:"partiel 25–59 %",no:"faible, moins de 25 %",unknown:"non mesuré"},peopleGroup:"peuple",caveat:"Chiffres NATIONAUX (Banque mondiale). La connectivité par ville n'est pas publique — ne déduisez pas une ville à partir de son pays.",sheet:{close:"Fermer",ai:"Ces données proviennent d'une recherche approfondie par IA — elles peuvent contenir des informations erronées.",dismiss:"Ignorer",internetUsers:"Internautes",measured:"Mesuré",mobilePer100:"Mobiles pour 100",peopleGroups:"Peuples",topPlatform:"Plateforme principale",unknown:"inconnu",carriers:"Opérateurs et FAI ({n})",socialPlatforms:"Réseaux sociaux",note:"Chiffres nationaux, pas des mesures par ville. Les noms d'opérateurs sont les titulaires de registres ASN (on y trouve aussi des banques et des universités à côté des FAI), donc l'étiquette « opérateur » est une heuristique fondée sur le nom, non une classification vérifiée."}},dy={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"},gy={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"},fy={labels:{country:"Pays :",population:"Population :",language:"Langue :",religion:"Religion :",languageFamily:"Famille de langues :",peopleCommitted:"Engagés à prier :"},messages:{noDescription:"Aucune description disponible."}},hy={_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"},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_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…"}},my={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."},by={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"}},$y={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."},yy={clusterByRegion:"Par région Doxa",clusterByLanguageFamily:"Par famille de langues",clusterByGospelResource:"Par ressource de l'Évangile"},_y={country:{wagfRegion:"Région WAGF",wagfBlock:"Bloc WAGF",country:"Pays",uupgCount:"Nombre d'UUPG"}},vy={header:"TOUR DE PRIÈRE ACTUEL",lap:"Tour",upgs:"UUPGs",separator:" sur "},wy={"%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."},ky={placeholder:"Peuple, lieu, langue, religion",labels:{people:"Peuple :",place:"Lieu :",language:"Langue :",religion:"Religion :"},kinds:{people:"Peuple + pays",peopleGroup:"Peuple",bloc:"Bloc d'affinité",cluster:"Grappe de peuples",country:"Pays",region:"Région",family:"Famille linguistique",languageKind:"Langue",dialect:"Dialecte",religionKind:"Religion"},sections:{within:"Dans {selection}",allData:"Toutes les données DOXA"}},xy={title:"Studio de plugins",navLabel:"Plugins par capacité",countLabel:"{bundles} paquets · {elements} plugins listés ici",changeLanguage:"Changer de langue",copyEmbed:"Copier le code d’intégration",copy:"Copier",copied:"Copié",scriptEmbed:"Intégration par script",loading:"Chargement de {name}…",couldNotLoad:"Impossible de charger {name}.",chooseElement:"Choisissez un plugin dans la liste.",filterPlaceholder:"Filtrer les plugins",collapseAll:"Tout replier",noMatch:"Aucun plugin ne correspond à « {query} ».",openSection:"Ouvrir {cap}, {label}",part:"partie",noStandalone:"pas de page autonome",cap5:"Coquille d’application",cap4:"Composite",cap3:"Multivue",cap2:"Préréglage",cap1:"Simple",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier",partOf:"partie de {name}, non publiée seule"},Ly={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"},Ay={kicker:"DOXA · Vision",title:"Chaque peuple. Chaque lieu.",tagline:"De tous les groupes ethniques du monde à ceux pour qui DOXA prie, comptés à partir des données.",funnelLabel:"De tous les groupes ethniques aux groupes ethniques DOXA",allLabel:"Groupes ethniques",allNote:"chaque groupe ethnique, dans chaque pays où il vit",unreachedLabel:"Non atteints",unreachedNote:"moins de 2 % d’évangéliques",frontierLabel:"Frontière",frontierNote:"moins de 0,1 % d’évangéliques",doxaLabel:"Groupes ethniques DOXA",doxaNote:"dont {frontier} de frontière",people:"{n} personnes",sources:"Groupes ethniques : {imb}, données du {date}. Liste DOXA : pray.doxa.life, {date2}.",howCounted:"Comment ces chiffres sont comptés",ruleAll:"Chaque ligne des données IMB : un groupe ethnique dans un pays.",ruleUnreached:"Priorité de perdition IMB 0 à 2 : moins de 2 % d’évangéliques.",ruleFrontier:"Priorité de perdition IMB 0 : moins de 0,1 % d’évangéliques. Un sous-ensemble des non-atteints.",ruleDoxa:"Chaque groupe de la liste de prière DOXA, rapproché des données IMB par peuple et pays. Tous ne sont pas de frontière."},Sy={title:"सभी जनसमूह",locations:"{n} स्थान (समूह × देश)",doxa:"DOXA जनसमूह",frontier:"सीमांत — कुछ शुरू नहीं हुआ",unreached:"अप्रचारित — काम शुरू हो रहा है",reached:"प्रचारित — कलीसिया मौजूद है",hint:"सभी देखने के लिए पंक्ति पर क्लिक करें · सब कुछ देखने के लिए फिर क्लिक करें",loading:"सभी जनसमूह लोड हो रहे हैं…",loadError:"मानचित्र लोड नहीं हो सका।",pray:"उनके लिए प्रार्थना करें →",population:"जनसंख्या {n}"},Py={backToLegend:"लेजेंड पर वापस जाएं",closeDetailView:"विवरण दृश्य बंद करें",collapseLegend:"लेजेंड संक्षिप्त करें",expandLegend:"लेजेंड विस्तृत करें",toggleLegend:"लेजेंड दिखाएँ या छिपाएँ"},Cy={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:"प्रति पंक्ति पोस्टर"},Ey={title:"इंटरनेट पहुँच जहाँ बिना सहभागिता वाले जनसमूह रहते हैं",bands:{yes:"जुड़ा हुआ 60%+",partial:"आंशिक 25–59%",no:"कम, 25% से नीचे",unknown:"मापा नहीं गया"},peopleGroup:"जनसमूह",caveat:"राष्ट्रीय आँकड़े (विश्व बैंक)। शहर-स्तर की कनेक्टिविटी सार्वजनिक रूप से उपलब्ध नहीं है — देश के आँकड़ों से किसी शहर का अनुमान न लगाएँ।",sheet:{close:"बंद करें",ai:"यह डेटा एआई गहन शोध से मिला है — इसमें गलत जानकारी हो सकती है।",dismiss:"हटाएँ",internetUsers:"इंटरनेट उपयोगकर्ता",measured:"मापा गया",mobilePer100:"प्रति 100 मोबाइल",peopleGroups:"जनसमूह",topPlatform:"शीर्ष प्लेटफ़ॉर्म",unknown:"अज्ञात",carriers:"कैरियर और आईएसपी ({n})",socialPlatforms:"सोशल प्लेटफ़ॉर्म",note:"ये राष्ट्रीय आँकड़े हैं, शहरों के माप नहीं। कैरियर के नाम ASN रजिस्ट्री धारकों के हैं — उनमें आईएसपी के साथ बैंक और विश्वविद्यालय भी शामिल हैं, इसलिए कैरियर का चिह्न नाम पर आधारित अनुमान है, सत्यापित वर्गीकरण नहीं।"}},Ty={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:"मानचित्र नियंत्रण"},Ny={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:"स्थान"},Ry={labels:{country:"देश:",population:"जनसंख्या:",language:"भाषा:",religion:"धर्म:",languageFamily:"भाषा परिवार:",peopleCommitted:"प्रार्थना के लिए प्रतिबद्ध:"},messages:{noDescription:"कोई विवरण उपलब्ध नहीं है।"}},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:"नीचे दी गई व्याख्यात्मक टिप्पणियाँ अंग्रेज़ी में हैं।"},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:"यीशु फ़िल्म"},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_gaps:"कमियाँ और अवसर",t_bridges:"नगर सेतु",t_deaf:"बधिर कमी",t_resources:"जनसमूह अनुसार संसाधन",t_languages:"देश अनुसार भाषाएँ",t_growth:"पहुँच बनाम जनसंख्या वृद्धि"},pages:{listTitle:"भाषा अनुसार सुसमाचार संसाधन",chartsTitle:"सुसमाचार संसाधन — भाषा अनुसार",loadingTables:"संसाधन तालिकाएँ लोड हो रही हैं…"}},Fy={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:"जनसमूह डेटा लोड नहीं हो सका। यह कनेक्शन की समस्या है, आपके फ़िल्टर की नहीं।"},Iy={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:"चयन हटाएँ"}},Oy={menuComingSoon:"मेनू शीघ्र आ रहा है",pinHint:{tapDot:"किसी रंगीन बिंदु पर टैप करें — किसी को अभी भी प्रार्थना की आवश्यकता है"},upg100WallHeading:"मेरी UPG 100 सूची — प्रार्थना सूचियाँ और पोस्टर",upg100WallTag:"प्रार्थना लामबंदी",upg100WallIntro:"प्रार्थना के काम को पचास-पचास और सौ-सौ के समूहों में बाँटें — जैसे यीशु ने 5,000 लोगों को खिलाया (लूका 9:14)। हर पोस्टर 100 की एक सूची है जिसके लिए आप प्रार्थना कर सकते हैं, छाप सकते हैं और दीवार पर लगा सकते हैं — उनके लिए उनके जनसमूह के नाम से प्रार्थना करते हुए।"},Dy={clusterByRegion:"Doxa क्षेत्र के अनुसार",clusterByLanguageFamily:"भाषा परिवार के अनुसार",clusterByGospelResource:"सुसमाचार संसाधन के अनुसार"},By={country:{wagfRegion:"WAGF क्षेत्र",wagfBlock:"WAGF ब्लॉक",country:"देश",uupgCount:"UUPG संख्या"}},Gy={header:"वर्तमान प्रार्थना चक्र",lap:"चक्र",upgs:"UUPGs",separator:" में से "},jy={"%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.":"नक्शा शुरू नहीं हो सका। यह नक्शा-टोकन या कनेक्शन की समस्या है, फ़िल्टर की नहीं — ऊपर के आंकड़े प्रभावित नहीं हैं।"},zy={placeholder:"लोग, स्थान, भाषा, धर्म",labels:{people:"लोग:",place:"स्थान:",language:"भाषा:",religion:"धर्म:"},sections:{within:"{selection} के भीतर",allData:"सभी DOXA डेटा"},kinds:{people:"जनसमूह + देश",peopleGroup:"जनसमूह",bloc:"समानता समूह",cluster:"जनसमूह क्लस्टर",country:"देश",region:"क्षेत्र",family:"भाषा परिवार",languageKind:"भाषा",dialect:"बोली",religionKind:"धर्म"}},Uy={title:"प्लगइन स्टूडियो",navLabel:"क्षमता के अनुसार प्लगइन",countLabel:"{bundles} बंडल · यहाँ {elements} प्लगइन सूचीबद्ध",changeLanguage:"भाषा बदलें",copyEmbed:"एम्बेड कोड कॉपी करें",copy:"कॉपी करें",copied:"कॉपी हो गया",scriptEmbed:"स्क्रिप्ट एम्बेड",loading:"{name} लोड हो रहा है…",couldNotLoad:"{name} लोड नहीं हो सका।",chooseElement:"सूची से कोई प्लगइन चुनें।",filterPlaceholder:"प्लगइन फ़िल्टर करें",collapseAll:"सभी संक्षिप्त करें",noMatch:"“{query}” से कोई प्लगइन मेल नहीं खाता।",openSection:"{cap} खोलें, {label}",part:"भाग",noStandalone:"कोई अलग पेज नहीं",cap5:"ऐप शेल",cap4:"संयुक्त",cap3:"बहु-दृश्य",cap2:"प्रीसेट",cap1:"एकल",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",partOf:"{name} का भाग, अलग से प्रकाशित नहीं"},Vy={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:"मानचित्र"},Ky={kicker:"DOXA · दर्शन",title:"हर जनसमूह। हर स्थान।",tagline:"दुनिया के हर जनसमूह से उन तक जिनके लिए DOXA प्रार्थना करता है, आँकड़ों से गिने गए।",funnelLabel:"सभी जनसमूहों से DOXA जनसमूहों तक",allLabel:"जनसमूह",allNote:"हर जनसमूह, हर उस देश में जहाँ वह रहता है",unreachedLabel:"अप्रचारित",unreachedNote:"2% से कम इवेंजेलिकल",frontierLabel:"सीमांत",frontierNote:"0.1% से कम इवेंजेलिकल",doxaLabel:"DOXA जनसमूह",doxaNote:"इनमें से {frontier} सीमांत हैं",people:"{n} लोग",sources:"जनसमूह: {imb}, {date} के आँकड़े। DOXA सूची: pray.doxa.life, {date2}।",howCounted:"ये कैसे गिने गए",ruleAll:"IMB जनसमूह आँकड़ों की हर पंक्ति: एक देश में एक जनसमूह।",ruleUnreached:"IMB लॉस्टनेस प्राथमिकता 0 से 2: 2% से कम इवेंजेलिकल।",ruleFrontier:"IMB लॉस्टनेस प्राथमिकता 0: 0.1% से कम इवेंजेलिकल। अप्रचारितों का एक भाग।",ruleDoxa:"DOXA प्रार्थना सूची का हर समूह, जनसमूह और देश के आधार पर IMB आँकड़ों से मिलाया गया। सभी सीमांत नहीं हैं।"},Hy={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}"},qy={backToLegend:"Torna alla legenda",closeDetailView:"Chiudi vista dettaglio",collapseLegend:"Comprimi la legenda",expandLegend:"Espandi la legenda",toggleLegend:"Mostra o nascondi la legenda"},Wy={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"},Yy={title:"Accesso a internet dove vivono i popoli senza impegno",bands:{yes:"connesso 60%+",partial:"parziale 25–59%",no:"basso, sotto il 25%",unknown:"non misurato"},peopleGroup:"popolo",caveat:"Dati NAZIONALI (Banca Mondiale). La connettività per città non è disponibile pubblicamente: non dedurre una città dal suo paese.",sheet:{close:"Chiudi",ai:"Questi dati provengono da una ricerca approfondita con IA e possono contenere informazioni errate.",dismiss:"Ignora",internetUsers:"Utenti internet",measured:"Misurato",mobilePer100:"Cellulari ogni 100",peopleGroups:"Popoli",topPlatform:"Piattaforma principale",unknown:"sconosciuto",carriers:"Operatori e ISP ({n})",socialPlatforms:"Piattaforme social",note:"Dati nazionali, non misure per città. I nomi degli operatori sono titolari di registri ASN (includono banche e università oltre agli ISP), quindi l'etichetta di operatore è un'euristica basata sul nome, non una classificazione verificata."}},Xy={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"},Zy={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"},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Ù"},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_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…"}},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."},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"}},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_={header:"GIRO DI PREGHIERA ATTUALE",lap:"Giro",upgs:"UUPGs",separator:" di "},r_={"%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."},i_={placeholder:"Popolo, luogo, lingua, religione",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"}},l_={title:"Studio dei plugin",navLabel:"Plugin per capacità",countLabel:"{bundles} pacchetti · {elements} plugin elencati qui",changeLanguage:"Cambia lingua",copyEmbed:"Copia codice di incorporamento",copy:"Copia",copied:"Copiato",scriptEmbed:"Incorporamento tramite script",loading:"Caricamento di {name}…",couldNotLoad:"Impossibile caricare {name}.",chooseElement:"Scegli un plugin dall’elenco.",filterPlaceholder:"Filtra i plugin",collapseAll:"Comprimi tutto",noMatch:"Nessun plugin corrisponde a «{query}».",openSection:"Apri {cap}, {label}",part:"parte",noStandalone:"nessuna pagina propria",cap5:"Shell dell’app",cap4:"Composito",cap3:"Multivista",cap2:"Preimpostato",cap1:"Singolo",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi",partOf:"parte di {name}, non pubblicata da sola"},c_={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"},u_={kicker:"DOXA · Visione",title:"Ogni popolo. Ogni luogo.",tagline:"Da tutti i gruppi etnici del mondo a quelli per cui DOXA prega, contati dai dati.",funnelLabel:"Da tutti i gruppi etnici ai gruppi etnici DOXA",allLabel:"Gruppi etnici",allNote:"ogni gruppo etnico, in ogni paese in cui vive",unreachedLabel:"Non raggiunti",unreachedNote:"meno del 2% evangelici",frontierLabel:"Frontiera",frontierNote:"meno dello 0,1% evangelici",doxaLabel:"Gruppi etnici DOXA",doxaNote:"{frontier} di questi sono di frontiera",people:"{n} persone",sources:"Gruppi etnici: {imb}, dati del {date}. Elenco DOXA: pray.doxa.life, {date2}.",howCounted:"Come vengono contati",ruleAll:"Ogni riga dei dati IMB sui gruppi etnici: un gruppo etnico in un paese.",ruleUnreached:"Priorità di perdizione IMB da 0 a 2: meno del 2% evangelici.",ruleFrontier:"Priorità di perdizione IMB 0: meno dello 0,1% evangelici. Un sottoinsieme dei non raggiunti.",ruleDoxa:"Ogni gruppo dell’elenco di preghiera DOXA, abbinato ai dati IMB per popolo e paese. Non tutti sono di frontiera."},p_={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}"},d_={backToLegend:"Voltar à legenda",closeDetailView:"Fechar vista de detalhe",collapseLegend:"Recolher a legenda",expandLegend:"Expandir a legenda",toggleLegend:"Mostrar ou ocultar a legenda"},g_={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"},f_={title:"Acesso à internet onde vivem os povos sem envolvimento",bands:{yes:"conectado 60%+",partial:"parcial 25–59%",no:"baixo, abaixo de 25%",unknown:"não medido"},peopleGroup:"povo",caveat:"Números NACIONAIS (Banco Mundial). A conectividade por cidade não está disponível publicamente — não deduza uma cidade a partir do país.",sheet:{close:"Fechar",ai:"Estes dados foram encontrados por pesquisa aprofundada com IA — podem conter informações falsas.",dismiss:"Dispensar",internetUsers:"Usuários de internet",measured:"Medido",mobilePer100:"Celulares por 100",peopleGroups:"Povos",topPlatform:"Plataforma principal",unknown:"desconhecido",carriers:"Operadoras e provedores ({n})",socialPlatforms:"Redes sociais",note:"Números nacionais, não medições por cidade. Os nomes das operadoras são titulares de registros ASN (incluem bancos e universidades além de provedores), então a marcação de operadora é uma heurística pelo nome, não uma classificação verificada."}},h_={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"},m_={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"},b_={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."}},$_={_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"},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_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…"}},y_={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."},__={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"}},v_={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."},w_={clusterByRegion:"Por região Doxa",clusterByLanguageFamily:"Por família linguística",clusterByGospelResource:"Por recurso do Evangelho"},k_={country:{wagfRegion:"Região WAGF",wagfBlock:"Bloco WAGF",country:"País",uupgCount:"Número de UUPG"}},x_={header:"VOLTA DE ORAÇÃO ATUAL",lap:"Volta",upgs:"UUPGs",separator:" de "},L_={"%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."},A_={placeholder:"Povo, local, língua, religião",labels:{people:"Povo:",place:"Local:",language:"Língua:",religion:"Religião:"},kinds:{people:"Povo + país",peopleGroup:"Povo",bloc:"Bloco de afinidade",cluster:"Agrupamento de povos",country:"País",region:"Região",family:"Família linguística",languageKind:"Idioma",dialect:"Dialeto",religionKind:"Religião"},sections:{within:"Dentro de {selection}",allData:"Todos os dados DOXA"}},S_={title:"Estúdio de plugins",navLabel:"Plugins por capacidade",countLabel:"{bundles} pacotes · {elements} plugins listados aqui",changeLanguage:"Mudar idioma",copyEmbed:"Copiar código de incorporação",copy:"Copiar",copied:"Copiado",scriptEmbed:"Incorporação por script",loading:"Carregando {name}…",couldNotLoad:"Não foi possível carregar {name}.",chooseElement:"Escolha um plugin na lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Recolher tudo",noMatch:"Nenhum plugin corresponde a “{query}”.",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sem página própria",cap5:"Shell do aplicativo",cap4:"Composto",cap3:"Multivisualização",cap2:"Predefinição",cap1:"Único",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher",partOf:"parte de {name}, não publicada separadamente"},P_={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"},C_={kicker:"DOXA · Visão",title:"Cada povo. Cada lugar.",tagline:"De todos os grupos étnicos do mundo àqueles pelos quais a DOXA ora, contados a partir dos dados.",funnelLabel:"De todos os grupos étnicos aos grupos étnicos da DOXA",allLabel:"Grupos étnicos",allNote:"cada grupo étnico, em cada país onde vive",unreachedLabel:"Não alcançados",unreachedNote:"menos de 2% evangélicos",frontierLabel:"Fronteira",frontierNote:"menos de 0,1% evangélicos",doxaLabel:"Grupos étnicos da DOXA",doxaNote:"{frontier} deles são de fronteira",people:"{n} pessoas",sources:"Grupos étnicos: {imb}, dados de {date}. Lista da DOXA: pray.doxa.life, {date2}.",howCounted:"Como são contados",ruleAll:"Cada linha dos dados de grupos étnicos do IMB: um grupo étnico em um país.",ruleUnreached:"Prioridade de perdição do IMB de 0 a 2: menos de 2% evangélicos.",ruleFrontier:"Prioridade de perdição do IMB 0: menos de 0,1% evangélicos. Um subconjunto dos não alcançados.",ruleDoxa:"Cada grupo da lista de oração da DOXA, associado aos dados do IMB por povo e país. Nem todos são de fronteira."},E_={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}"},T_={backToLegend:"Înapoi la legendă",closeDetailView:"Închide vizualizarea detaliată",collapseLegend:"Restrânge legenda",expandLegend:"Extinde legenda",toggleLegend:"Afișează sau ascunde legenda"},N_={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"},R_={title:"Acces la internet unde trăiesc popoarele fără implicare",bands:{yes:"conectat 60%+",partial:"parțial 25–59%",no:"scăzut, sub 25%",unknown:"nemăsurat"},peopleGroup:"popor",caveat:"Cifre NAȚIONALE (Banca Mondială). Conectivitatea pe oraș nu este disponibilă public — nu deduceți un oraș din datele țării.",sheet:{close:"Închide",ai:"Aceste date au fost găsite prin cercetare aprofundată cu IA — pot conține informații false.",dismiss:"Închide notificarea",internetUsers:"Utilizatori de internet",measured:"Măsurat",mobilePer100:"Mobile la 100",peopleGroups:"Popoare",topPlatform:"Platforma principală",unknown:"necunoscut",carriers:"Operatori și ISP-uri ({n})",socialPlatforms:"Platforme sociale",note:"Cifre naționale, nu măsurători pe oraș. Numele operatorilor sunt titulari de înregistrări ASN (printre ei se află și bănci și universități, nu doar ISP-uri), deci eticheta de operator este o euristică după nume, nu o clasificare verificată."}},M_={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"},F_={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"},I_={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ă."}},O_={_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"},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_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…"}},D_={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."},B_={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"}},G_={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."},j_={clusterByRegion:"După regiune Doxa",clusterByLanguageFamily:"După familia de limbi",clusterByGospelResource:"După resursa Evangheliei"},z_={country:{wagfRegion:"Regiunea WAGF",wagfBlock:"Blocul WAGF",country:"Țară",uupgCount:"Număr de UUPG"}},U_={header:"TURUL DE RUGĂCIUNE CURENT",lap:"Tur",upgs:"UUPGs",separator:" din "},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."},K_={placeholder:"Popor, loc, limbă, religie",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"}},H_={title:"Studio de pluginuri",navLabel:"Pluginuri după capacitate",countLabel:"{bundles} pachete · {elements} pluginuri listate aici",changeLanguage:"Schimbă limba",copyEmbed:"Copiază codul de încorporare",copy:"Copiază",copied:"Copiat",scriptEmbed:"Încorporare prin script",loading:"Se încarcă {name}…",couldNotLoad:"{name} nu a putut fi încărcat.",chooseElement:"Alegeți un plugin din listă.",filterPlaceholder:"Filtrează pluginurile",collapseAll:"Restrânge tot",noMatch:"Niciun plugin nu corespunde cu „{query}”.",openSection:"Deschide {cap}, {label}",part:"parte",noStandalone:"fără pagină proprie",cap5:"Cadru de aplicație",cap4:"Compus",cap3:"Vizualizări multiple",cap2:"Presetat",cap1:"Simplu",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge",partOf:"parte din {name}, nepublicată separat"},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ă"},W_={kicker:"DOXA · Viziune",title:"Fiecare popor. Fiecare loc.",tagline:"De la toate grupurile etnice ale lumii la cele pentru care se roagă DOXA, numărate din date.",funnelLabel:"De la toate grupurile etnice la grupurile etnice DOXA",allLabel:"Grupuri etnice",allNote:"fiecare grup etnic, în fiecare țară în care trăiește",unreachedLabel:"Neatinse",unreachedNote:"sub 2% evanghelici",frontierLabel:"Frontieră",frontierNote:"sub 0,1% evanghelici",doxaLabel:"Grupuri etnice DOXA",doxaNote:"{frontier} dintre ele sunt de frontieră",people:"{n} oameni",sources:"Grupuri etnice: {imb}, date din {date}. Lista DOXA: pray.doxa.life, {date2}.",howCounted:"Cum sunt numărate",ruleAll:"Fiecare rând din datele IMB despre grupuri etnice: un grup etnic într-o țară.",ruleUnreached:"Prioritatea de pierzare IMB 0–2: sub 2% evanghelici.",ruleFrontier:"Prioritatea de pierzare IMB 0: sub 0,1% evanghelici. O submulțime a celor neatinse.",ruleDoxa:"Fiecare grup de pe lista de rugăciune DOXA, potrivit cu datele IMB după popor și țară. Nu toate sunt de frontieră."},Y_={title:"Все народы",locations:"{n} мест (народ × страна)",doxa:"Народы DOXA",frontier:"Рубежные — ничего не начато",unreached:"Недостигнутые — работа начинается",reached:"Достигнутые — церковь есть",hint:"Нажмите на строку, чтобы увидеть все · ещё раз — чтобы показать всё",loading:"Загрузка всех народов…",loadError:"Не удалось загрузить карту.",pray:"Молиться за них →",population:"нас. {n}"},X_={backToLegend:"Назад к легенде",closeDetailView:"Закрыть подробный вид",collapseLegend:"Свернуть легенду",expandLegend:"Развернуть легенду",toggleLegend:"Показать или скрыть легенду"},Z_={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_={title:"Доступ к интернету там, где живут народы без вовлечённости",bands:{yes:"подключено 60%+",partial:"частично 25–59%",no:"низкий, менее 25%",unknown:"не измерено"},peopleGroup:"народ",caveat:"НАЦИОНАЛЬНЫЕ данные (Всемирный банк). Данных о подключении по городам в открытом доступе нет — не судите о городе по стране.",sheet:{close:"Закрыть",ai:"Эти данные найдены с помощью углублённого поиска ИИ и могут содержать ошибки.",dismiss:"Скрыть",internetUsers:"Пользователи интернета",measured:"Год измерения",mobilePer100:"Мобильных на 100",peopleGroups:"Народы",topPlatform:"Главная платформа",unknown:"неизвестно",carriers:"Операторы и провайдеры ({n})",socialPlatforms:"Социальные платформы",note:"Национальные данные, а не измерения по городам. Названия операторов — это владельцы записей в реестре ASN; среди них есть банки и университеты, а не только провайдеры, поэтому пометка «оператор» — эвристика по названию, а не проверенная классификация."}},Q_={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:"Элементы управления картой"},e0={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:"Место"},t0={labels:{country:"Страна:",population:"Население:",language:"Язык:",religion:"Религия:",languageFamily:"Языковая семья:",peopleCommitted:"Обязались молиться:"},messages:{noDescription:"Описание недоступно."}},o0={_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:"Фильм «Иисус»"},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_gaps:"Пробелы и возможности",t_bridges:"Городские мосты",t_deaf:"Пробел у глухих",t_resources:"Ресурсы по народам",t_languages:"Языки по странам",t_growth:"Доступ и рост населения"},pages:{listTitle:"Ресурсы Евангелия по языкам",chartsTitle:"Ресурсы Евангелия — по языкам",loadingTables:"Загрузка таблиц ресурсов…"}},n0={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:"Не удалось загрузить данные о народах. Это проблема соединения, а не фильтра."},a0={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:"Снять выделение"}},s0={menuComingSoon:"Меню скоро появится",pinHint:{tapDot:"Нажмите на цветную точку — кому-то всё ещё нужна молитва"},upg100WallHeading:"Мой список UPG 100 — молитвенные списки и плакаты",upg100WallTag:"Молитвенная мобилизация",upg100WallIntro:"Разделите молитвенный труд на группы по пятьдесят и по сто — так Иисус накормил 5000 (Луки 9:14). Каждый плакат — это список из 100, о котором можно молиться, распечатать и повесить на стену, молясь о них по имени их народа."},r0={clusterByRegion:"По региону Doxa",clusterByLanguageFamily:"По языковой семье",clusterByGospelResource:"По евангельскому ресурсу"},i0={country:{wagfRegion:"Регион WAGF",wagfBlock:"Блок WAGF",country:"Страна",uupgCount:"Число UUPG"}},l0={header:"ТЕКУЩИЙ КРУГ МОЛИТВЫ",lap:"Круг",upgs:"UUPGs",separator:" из "},c0={"%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.":"Карта не запустилась. Это проблема токена карты или соединения, а не фильтра — цифры выше не затронуты."},u0={placeholder:"Народ, место, язык, религия",labels:{people:"Народ:",place:"Место:",language:"Язык:",religion:"Религия:"},kinds:{people:"Народ + страна",peopleGroup:"Народ",bloc:"Блок родства",cluster:"Кластер народов",country:"Страна",region:"Регион",family:"Языковая семья",languageKind:"Язык",dialect:"Диалект",religionKind:"Религия"},sections:{within:"В пределах {selection}",allData:"Все данные DOXA"}},p0={title:"Студия плагинов",navLabel:"Плагины по возможностям",countLabel:"Здесь: пакетов {bundles} · плагинов {elements}",changeLanguage:"Сменить язык",copyEmbed:"Скопировать код встраивания",copy:"Копировать",copied:"Скопировано",scriptEmbed:"Встраивание через скрипт",loading:"Загрузка {name}…",couldNotLoad:"Не удалось загрузить {name}.",chooseElement:"Выберите плагин из списка.",filterPlaceholder:"Фильтр плагинов",collapseAll:"Свернуть всё",noMatch:"Нет плагинов, соответствующих «{query}».",openSection:"Открыть {cap}, {label}",part:"часть",noStandalone:"нет отдельной страницы",cap5:"Оболочка приложения",cap4:"Составной",cap3:"Несколько видов",cap2:"Предустановка",cap1:"Одиночный",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",partOf:"часть {name}, не публикуется отдельно"},d0={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:"Карта"},g0={kicker:"DOXA · Видение",title:"Каждый народ. Каждое место.",tagline:"От всех народов мира до тех, за кого молится DOXA, — по данным.",funnelLabel:"От всех народов до народов DOXA",allLabel:"Народы",allNote:"каждый народ в каждой стране, где он живёт",unreachedLabel:"Недостигнутые",unreachedNote:"менее 2% евангельских христиан",frontierLabel:"Рубежные",frontierNote:"менее 0,1% евангельских христиан",doxaLabel:"Народы DOXA",doxaNote:"из них рубежных: {frontier}",people:"{n} человек",sources:"Народы: {imb}, данные на {date}. Список DOXA: pray.doxa.life, {date2}.",howCounted:"Как это посчитано",ruleAll:"Каждая строка данных IMB о народах: один народ в одной стране.",ruleUnreached:"Приоритет IMB 0–2: менее 2% евангельских христиан.",ruleFrontier:"Приоритет IMB 0: менее 0,1% евангельских христиан. Часть недостигнутых.",ruleDoxa:"Каждая группа из молитвенного списка DOXA, сопоставленная с данными IMB по народу и стране. Не все из них рубежные."},f0={title:"所有族群",locations:"{n} 个族群–国家位置",doxa:"DOXA 族群",frontier:"前沿族群 — 尚未开始",unreached:"未得之民 — 事工起步",reached:"已得之民 — 教会已在",hint:"点击一行查看全部 · 再次点击显示所有",loading:"正在加载所有族群…",loadError:"无法加载地图。",pray:"为他们祷告 →",population:"人口 {n}"},h0={backToLegend:"返回图例",closeDetailView:"关闭详情视图",collapseLegend:"收起图例",expandLegend:"展开图例",toggleLegend:"显示或隐藏图例"},m0={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:"每行海报数"},b0={title:"未参与族群所在地的互联网接入",bands:{yes:"已联网 60%+",partial:"部分 25–59%",no:"低,低于 25%",unknown:"未测量"},peopleGroup:"族群",caveat:"全国数据(世界银行)。各城市的联网数据未公开——请勿用国家数据推断某个城市。",sheet:{close:"关闭",ai:"这些数据来自人工智能深度检索,可能包含错误信息。",dismiss:"忽略",internetUsers:"互联网用户",measured:"测量年份",mobilePer100:"每百人移动电话",peopleGroups:"族群",topPlatform:"主要平台",unknown:"未知",carriers:"运营商和互联网服务商({n})",socialPlatforms:"社交平台",note:"这是全国数据,不是城市测量值。运营商名称来自 ASN 注册持有者——其中除互联网服务商外还包括银行和大学,因此“运营商”标记是基于名称的推断,并非经过核实的分类。"}},$0={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:"地图控件"},y0={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:"地点"},_0={labels:{country:"国家:",population:"人口:",language:"语言:",religion:"宗教:",languageFamily:"语系:",peopleCommitted:"承诺祷告人数:"},messages:{noDescription:"暂无描述。"}},v0={_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:"《耶稣传》"},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_gaps:"缺口与机会",t_bridges:"城市桥梁",t_deaf:"聋人缺口",t_resources:"按族群列出资源",t_languages:"各国语言",t_growth:"可及性与人口增长"},pages:{listTitle:"按语言列出的福音资源",chartsTitle:"福音资源 — 按语言",loadingTables:"正在加载资源表…"}},w0={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:"无法加载民族数据。这是连接问题,而不是筛选问题。"},k0={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:"清除选择"}},x0={menuComingSoon:"菜单即将推出",pinHint:{tapDot:"点按一个彩色圆点——仍有人需要祷告"},upg100WallHeading:"我的 UPG 100 名單 — 禱告名單與海報",upg100WallTag:"禱告動員",upg100WallIntro:"將禱告的工作分成五十人、一百人一組 — 就像耶穌餵飽五千人那樣(路加福音 9:14)。每一張海報都是一份 100 人名單,你可以為他們禱告、列印出來、貼在牆上 — 按著他們族群的名字為他們禱告。"},L0={clusterByRegion:"按 Doxa 区域",clusterByLanguageFamily:"按语系",clusterByGospelResource:"按福音资源"},A0={country:{wagfRegion:"WAGF 地區",wagfBlock:"WAGF 區塊",country:"國家",uupgCount:"UUPG 數量"}},S0={header:"当前祷告轮次",lap:"第",upgs:"UUPGs",separator:" / "},P0={"%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.":"地图无法启动。这是地图令牌或连接问题,不是筛选问题——上方的数字不受影响。"},C0={placeholder:"民族、地点、语言、宗教",labels:{people:"民族:",place:"地点:",language:"语言:",religion:"宗教:"},sections:{within:"在 {selection} 之內",allData:"所有 DOXA 資料"},kinds:{people:"民族 + 国家",peopleGroup:"民族",bloc:"亲缘板块",cluster:"民族群",country:"国家",region:"区域",family:"语系",languageKind:"语言",dialect:"方言",religionKind:"宗教"}},E0={title:"插件工作室",navLabel:"按能力分类的插件",countLabel:"此处列出 {bundles} 个包 · {elements} 个插件",changeLanguage:"切换语言",copyEmbed:"复制嵌入代码",copy:"复制",copied:"已复制",scriptEmbed:"脚本嵌入",loading:"正在加载 {name}…",couldNotLoad:"无法加载 {name}。",chooseElement:"请从列表中选择一个插件。",filterPlaceholder:"筛选插件",collapseAll:"全部折叠",noMatch:"没有与“{query}”匹配的插件。",openSection:"打开 {cap},{label}",part:"部分",noStandalone:"无独立页面",cap5:"应用外壳",cap4:"组合",cap3:"多视图",cap2:"预设",cap1:"单一",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",partOf:"{name} 的一部分,不单独发布"},T0={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:"地圖"},N0={kicker:"DOXA · 异象",title:"每一个民族,每一个地方。",tagline:"从世界上所有族群到 DOXA 为之祷告的族群,全部依据数据计算。",funnelLabel:"从所有族群到 DOXA 族群",allLabel:"族群",allNote:"每个族群在其居住的每个国家各计一次",unreachedLabel:"未得之民",unreachedNote:"福音派信徒少于 2%",frontierLabel:"前沿族群",frontierNote:"福音派信徒少于 0.1%",doxaLabel:"DOXA 族群",doxaNote:"其中 {frontier} 个为前沿族群",people:"{n} 人",sources:"族群:{imb},数据日期 {date}。DOXA 名单:pray.doxa.life,{date2}。",howCounted:"这些数字如何计算",ruleAll:"IMB 族群数据的每一行:一个国家中的一个族群。",ruleUnreached:"IMB 迷失优先级 0 至 2:福音派信徒少于 2%。",ruleFrontier:"IMB 迷失优先级 0:福音派信徒少于 0.1%。属于未得之民的一部分。",ruleDoxa:"DOXA 祷告名单上的每个族群,按民族和国家与 IMB 数据匹配。并非全部都是前沿族群。"};/*! * shared v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function T0(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const rr=typeof window<"u",dn=(e,t=!1)=>t?Symbol.for(e):Symbol(e),N0=(e,t,o)=>R0({l:e,k:t,s:o}),R0=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),$t=e=>typeof e=="number"&&isFinite(e),M0=e=>Mp(e)==="[object Date]",gn=e=>Mp(e)==="[object RegExp]",ir=e=>je(e)&&Object.keys(e).length===0,Tt=Object.assign,F0=Object.create,nt=(e=null)=>F0(e);let Ep;const Xo=()=>Ep||(Ep=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:nt());function Tp(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Np(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function I0(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,s)=>`${a}="${Np(s)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,s)=>`${a}='${Np(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 O0=Object.prototype.hasOwnProperty;function go(e,t){return O0.call(e,t)}const dt=Array.isArray,it=e=>typeof e=="function",Ae=e=>typeof e=="string",Ue=e=>typeof e=="boolean",Xe=e=>e!==null&&typeof e=="object",D0=e=>Xe(e)&&it(e.then)&&it(e.catch),Rp=Object.prototype.toString,Mp=e=>Rp.call(e),je=e=>{if(!Xe(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},B0=e=>e==null?"":dt(e)||je(e)&&e.toString===Rp?JSON.stringify(e,null,2):String(e);function G0(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function lr(e){let t=e;return()=>++t}const cr=e=>!Xe(e)||dt(e);function ur(e,t){if(cr(e)||cr(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__"&&(Xe(n[s])&&!Xe(a[s])&&(a[s]=Array.isArray(n[s])?[]:nt()),cr(a[s])||cr(n[s])?a[s]=n[s]:o.push({src:n[s],des:a[s]}))})}}/*! + */function R0(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const rr=typeof window<"u",dn=(e,t=!1)=>t?Symbol.for(e):Symbol(e),M0=(e,t,o)=>F0({l:e,k:t,s:o}),F0=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),$t=e=>typeof e=="number"&&isFinite(e),I0=e=>Mp(e)==="[object Date]",gn=e=>Mp(e)==="[object RegExp]",ir=e=>je(e)&&Object.keys(e).length===0,Tt=Object.assign,O0=Object.create,nt=(e=null)=>O0(e);let Ep;const Xo=()=>Ep||(Ep=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:nt());function Tp(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Np(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function D0(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,a,s)=>`${a}="${Np(s)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,a,s)=>`${a}='${Np(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 B0=Object.prototype.hasOwnProperty;function go(e,t){return B0.call(e,t)}const dt=Array.isArray,it=e=>typeof e=="function",Le=e=>typeof e=="string",Ue=e=>typeof e=="boolean",Xe=e=>e!==null&&typeof e=="object",G0=e=>Xe(e)&&it(e.then)&&it(e.catch),Rp=Object.prototype.toString,Mp=e=>Rp.call(e),je=e=>{if(!Xe(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},j0=e=>e==null?"":dt(e)||je(e)&&e.toString===Rp?JSON.stringify(e,null,2):String(e);function z0(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}function lr(e){let t=e;return()=>++t}const cr=e=>!Xe(e)||dt(e);function ur(e,t){if(cr(e)||cr(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__"&&(Xe(n[s])&&!Xe(a[s])&&(a[s]=Array.isArray(n[s])?[]:nt()),cr(a[s])||cr(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 j0(e,t,o){return{line:e,column:t,offset:o}}function pr(e,t,o){return{start:e,end:t}}const z0=/\{([0-9a-zA-Z]+)\}/g;function Fp(e,...t){return t.length===1&&U0(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(z0,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const Ip=Object.assign,Op=e=>typeof e=="string",U0=e=>e!==null&&typeof e=="object";function Dp(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const Gi={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},V0={[Gi.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function K0(e,t,...o){const n=Fp(V0[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const Ie={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},H0={[Ie.EXPECTED_TOKEN]:"Expected token: '{0}'",[Ie.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Ie.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Ie.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Ie.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Ie.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Ie.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Ie.EMPTY_PLACEHOLDER]:"Empty placeholder",[Ie.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Ie.INVALID_LINKED_FORMAT]:"Invalid linked format",[Ie.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Ie.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Ie.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Ie.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Ie.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Ie.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function na(e,t,o={}){const{domain:n,messages:a,args:s}=o,r=Fp((a||H0)[e]||"",...s||[]),i=new SyntaxError(String(r));return i.code=e,t&&(i.location=t),i.domain=n,i}function q0(e){throw e}const Zo=" ",W0="\r",Gt=` -`,Y0="\u2028",X0="\u2029";function Z0(e){const t=e;let o=0,n=1,a=1,s=0;const r=b=>t[b]===W0&&t[b+1]===Gt,i=b=>t[b]===Gt,l=b=>t[b]===X0,c=b=>t[b]===Y0,u=b=>r(b)||i(b)||l(b)||c(b),p=()=>o,d=()=>n,A=()=>a,w=()=>s,f=b=>r(b)||l(b)||c(b)?Gt:t[b],v=()=>f(o),y=()=>f(o+s);function h(){return s=0,u(o)&&(n++,a=0),r(o)&&o++,o++,a++,t[o]}function $(){return r(o+s)&&s++,s++,t[o+s]}function x(){o=0,n=1,a=1,s=0}function E(b=0){s=b}function m(){const b=o+s;for(;b!==o;)h();s=0}return{index:p,line:d,column:A,peekOffset:w,charAt:f,currentChar:v,currentPeek:y,next:h,peek:$,reset:x,resetPeek:E,skipToPeek:m}}const fn=void 0,J0=".",Bp="'",Q0="tokenizer";function ev(e,t={}){const o=t.location!==!1,n=Z0(e),a=()=>n.index(),s=()=>j0(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 p(_,S,B,...te){const me=c();if(S.column+=B,S.offset+=B,u){const le=o?pr(me.startLoc,S):null,Y=na(_,le,{domain:Q0,args:te});u(Y)}}function d(_,S,B){_.endLoc=s(),_.currentType=S;const te={type:S};return o&&(te.loc=pr(_.startLoc,_.endLoc)),B!=null&&(te.value=B),te}const A=_=>d(_,14);function w(_,S){return _.currentChar()===S?(_.next(),S):(p(Ie.EXPECTED_TOKEN,s(),0,S),"")}function f(_){let S="";for(;_.currentPeek()===Zo||_.currentPeek()===Gt;)S+=_.currentPeek(),_.peek();return S}function v(_){const S=f(_);return _.skipToPeek(),S}function y(_){if(_===fn)return!1;const S=_.charCodeAt(0);return S>=97&&S<=122||S>=65&&S<=90||S===95}function h(_){if(_===fn)return!1;const S=_.charCodeAt(0);return S>=48&&S<=57}function $(_,S){const{currentType:B}=S;if(B!==2)return!1;f(_);const te=y(_.currentPeek());return _.resetPeek(),te}function x(_,S){const{currentType:B}=S;if(B!==2)return!1;f(_);const te=_.currentPeek()==="-"?_.peek():_.currentPeek(),me=h(te);return _.resetPeek(),me}function E(_,S){const{currentType:B}=S;if(B!==2)return!1;f(_);const te=_.currentPeek()===Bp;return _.resetPeek(),te}function m(_,S){const{currentType:B}=S;if(B!==8)return!1;f(_);const te=_.currentPeek()===".";return _.resetPeek(),te}function b(_,S){const{currentType:B}=S;if(B!==9)return!1;f(_);const te=y(_.currentPeek());return _.resetPeek(),te}function g(_,S){const{currentType:B}=S;if(!(B===8||B===12))return!1;f(_);const te=_.currentPeek()===":";return _.resetPeek(),te}function k(_,S){const{currentType:B}=S;if(B!==10)return!1;const te=()=>{const le=_.currentPeek();return le==="{"?y(_.peek()):le==="@"||le==="%"||le==="|"||le===":"||le==="."||le===Zo||!le?!1:le===Gt?(_.peek(),te()):V(_,!1)},me=te();return _.resetPeek(),me}function T(_){f(_);const S=_.currentPeek()==="|";return _.resetPeek(),S}function O(_){const S=f(_),B=_.currentPeek()==="%"&&_.peek()==="{";return _.resetPeek(),{isModulo:B,hasSpace:S.length>0}}function V(_,S=!0){const B=(me=!1,le="",Y=!1)=>{const re=_.currentPeek();return re==="{"?le==="%"?!1:me:re==="@"||!re?le==="%"?!0:me:re==="%"?(_.peek(),B(me,"%",!0)):re==="|"?le==="%"||Y?!0:!(le===Zo||le===Gt):re===Zo?(_.peek(),B(!0,Zo,Y)):re===Gt?(_.peek(),B(!0,Gt,Y)):!0},te=B();return S&&_.resetPeek(),te}function U(_,S){const B=_.currentChar();return B===fn?fn:S(B)?(_.next(),B):null}function G(_){const S=_.charCodeAt(0);return S>=97&&S<=122||S>=65&&S<=90||S>=48&&S<=57||S===95||S===36}function C(_){return U(_,G)}function L(_){const S=_.charCodeAt(0);return S>=97&&S<=122||S>=65&&S<=90||S>=48&&S<=57||S===95||S===36||S===45}function F(_){return U(_,L)}function j(_){const S=_.charCodeAt(0);return S>=48&&S<=57}function K(_){return U(_,j)}function J(_){const S=_.charCodeAt(0);return S>=48&&S<=57||S>=65&&S<=70||S>=97&&S<=102}function ce(_){return U(_,J)}function H(_){let S="",B="";for(;S=K(_);)B+=S;return B}function $e(_){v(_);const S=_.currentChar();return S!=="%"&&p(Ie.EXPECTED_TOKEN,s(),0,S),_.next(),"%"}function _e(_){let S="";for(;;){const B=_.currentChar();if(B==="{"||B==="}"||B==="@"||B==="|"||!B)break;if(B==="%")if(V(_))S+=B,_.next();else break;else if(B===Zo||B===Gt)if(V(_))S+=B,_.next();else{if(T(_))break;S+=B,_.next()}else S+=B,_.next()}return S}function he(_){v(_);let S="",B="";for(;S=F(_);)B+=S;return _.currentChar()===fn&&p(Ie.UNTERMINATED_CLOSING_BRACE,s(),0),B}function ye(_){v(_);let S="";return _.currentChar()==="-"?(_.next(),S+=`-${H(_)}`):S+=H(_),_.currentChar()===fn&&p(Ie.UNTERMINATED_CLOSING_BRACE,s(),0),S}function fe(_){return _!==Bp&&_!==Gt}function ie(_){v(_),w(_,"'");let S="",B="";for(;S=U(_,fe);)S==="\\"?B+=we(_):B+=S;const te=_.currentChar();return te===Gt||te===fn?(p(Ie.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,s(),0),te===Gt&&(_.next(),w(_,"'")),B):(w(_,"'"),B)}function we(_){const S=_.currentChar();switch(S){case"\\":case"'":return _.next(),`\\${S}`;case"u":return ge(_,S,4);case"U":return ge(_,S,6);default:return p(Ie.UNKNOWN_ESCAPE_SEQUENCE,s(),0,S),""}}function ge(_,S,B){w(_,S);let te="";for(let me=0;me{const te=_.currentChar();return te==="{"||te==="%"||te==="@"||te==="|"||te==="("||te===")"||!te||te===Zo?B:(B+=te,_.next(),S(B))};return S("")}function X(_){v(_);const S=w(_,"|");return v(_),S}function Q(_,S){let B=null;switch(_.currentChar()){case"{":return S.braceNest>=1&&p(Ie.NOT_ALLOW_NEST_PLACEHOLDER,s(),0),_.next(),B=d(S,2,"{"),v(_),S.braceNest++,B;case"}":return S.braceNest>0&&S.currentType===2&&p(Ie.EMPTY_PLACEHOLDER,s(),0),_.next(),B=d(S,3,"}"),S.braceNest--,S.braceNest>0&&v(_),S.inLinked&&S.braceNest===0&&(S.inLinked=!1),B;case"@":return S.braceNest>0&&p(Ie.UNTERMINATED_CLOSING_BRACE,s(),0),B=z(_,S)||A(S),S.braceNest=0,B;default:{let me=!0,le=!0,Y=!0;if(T(_))return S.braceNest>0&&p(Ie.UNTERMINATED_CLOSING_BRACE,s(),0),B=d(S,1,X(_)),S.braceNest=0,S.inLinked=!1,B;if(S.braceNest>0&&(S.currentType===5||S.currentType===6||S.currentType===7))return p(Ie.UNTERMINATED_CLOSING_BRACE,s(),0),S.braceNest=0,pe(_,S);if(me=$(_,S))return B=d(S,5,he(_)),v(_),B;if(le=x(_,S))return B=d(S,6,ye(_)),v(_),B;if(Y=E(_,S))return B=d(S,7,ie(_)),v(_),B;if(!me&&!le&&!Y)return B=d(S,13,P(_)),p(Ie.INVALID_TOKEN_IN_PLACEHOLDER,s(),0,B.value),v(_),B;break}}return B}function z(_,S){const{currentType:B}=S;let te=null;const me=_.currentChar();switch((B===8||B===9||B===12||B===10)&&(me===Gt||me===Zo)&&p(Ie.INVALID_LINKED_FORMAT,s(),0),me){case"@":return _.next(),te=d(S,8,"@"),S.inLinked=!0,te;case".":return v(_),_.next(),d(S,9,".");case":":return v(_),_.next(),d(S,10,":");default:return T(_)?(te=d(S,1,X(_)),S.braceNest=0,S.inLinked=!1,te):m(_,S)||g(_,S)?(v(_),z(_,S)):b(_,S)?(v(_),d(S,12,D(_))):k(_,S)?(v(_),me==="{"?Q(_,S)||te:d(S,11,I(_))):(B===8&&p(Ie.INVALID_LINKED_FORMAT,s(),0),S.braceNest=0,S.inLinked=!1,pe(_,S))}}function pe(_,S){let B={type:14};if(S.braceNest>0)return Q(_,S)||A(S);if(S.inLinked)return z(_,S)||A(S);switch(_.currentChar()){case"{":return Q(_,S)||A(S);case"}":return p(Ie.UNBALANCED_CLOSING_BRACE,s(),0),_.next(),d(S,3,"}");case"@":return z(_,S)||A(S);default:{if(T(_))return B=d(S,1,X(_)),S.braceNest=0,S.inLinked=!1,B;const{isModulo:me,hasSpace:le}=O(_);if(me)return le?d(S,0,_e(_)):d(S,4,$e(_));if(V(_))return d(S,0,_e(_));break}}return B}function oe(){const{currentType:_,offset:S,startLoc:B,endLoc:te}=l;return l.lastType=_,l.lastOffset=S,l.lastStartLoc=B,l.lastEndLoc=te,l.offset=a(),l.startLoc=s(),n.currentChar()===fn?d(l,14):pe(n,l)}return{nextToken:oe,currentOffset:a,currentPosition:s,context:c}}const tv="parser",ov=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function nv(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 av(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a($,x,E,m,...b){const g=$.currentPosition();if(g.offset+=m,g.column+=m,o){const k=t?pr(E,g):null,T=na(x,k,{domain:tv,args:b});o(T)}}function s($,x,E,m,...b){const g=$.currentPosition();if(g.offset+=m,g.column+=m,n){const k=t?pr(E,g):null;n(K0(x,k,b))}}function r($,x,E){const m={type:$};return t&&(m.start=x,m.end=x,m.loc={start:E,end:E}),m}function i($,x,E,m){t&&($.end=x,$.loc&&($.loc.end=E))}function l($,x){const E=$.context(),m=r(3,E.offset,E.startLoc);return m.value=x,i(m,$.currentOffset(),$.currentPosition()),m}function c($,x){const E=$.context(),{lastOffset:m,lastStartLoc:b}=E,g=r(5,m,b);return g.index=parseInt(x,10),$.nextToken(),i(g,$.currentOffset(),$.currentPosition()),g}function u($,x,E){const m=$.context(),{lastOffset:b,lastStartLoc:g}=m,k=r(4,b,g);return k.key=x,E===!0&&(k.modulo=!0),$.nextToken(),i(k,$.currentOffset(),$.currentPosition()),k}function p($,x){const E=$.context(),{lastOffset:m,lastStartLoc:b}=E,g=r(9,m,b);return g.value=x.replace(ov,nv),$.nextToken(),i(g,$.currentOffset(),$.currentPosition()),g}function d($){const x=$.nextToken(),E=$.context(),{lastOffset:m,lastStartLoc:b}=E,g=r(8,m,b);return x.type!==12?(a($,Ie.UNEXPECTED_EMPTY_LINKED_MODIFIER,E.lastStartLoc,0),g.value="",i(g,m,b),{nextConsumeToken:x,node:g}):(x.value==null&&a($,Ie.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,fo(x)),g.value=x.value||"",i(g,$.currentOffset(),$.currentPosition()),{node:g})}function A($,x){const E=$.context(),m=r(7,E.offset,E.startLoc);return m.value=x,i(m,$.currentOffset(),$.currentPosition()),m}function w($){const x=$.context(),E=r(6,x.offset,x.startLoc);let m=$.nextToken();if(m.type===9){const b=d($);E.modifier=b.node,m=b.nextConsumeToken||$.nextToken()}switch(m.type!==10&&a($,Ie.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,fo(m)),m=$.nextToken(),m.type===2&&(m=$.nextToken()),m.type){case 11:m.value==null&&a($,Ie.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,fo(m)),E.key=A($,m.value||"");break;case 5:m.value==null&&a($,Ie.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,fo(m)),E.key=u($,m.value||"");break;case 6:m.value==null&&a($,Ie.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,fo(m)),E.key=c($,m.value||"");break;case 7:m.value==null&&a($,Ie.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,fo(m)),E.key=p($,m.value||"");break;default:{a($,Ie.UNEXPECTED_EMPTY_LINKED_KEY,x.lastStartLoc,0);const b=$.context(),g=r(7,b.offset,b.startLoc);return g.value="",i(g,b.offset,b.startLoc),E.key=g,i(E,b.offset,b.startLoc),{nextConsumeToken:m,node:E}}}return i(E,$.currentOffset(),$.currentPosition()),{node:E}}function f($){const x=$.context(),E=x.currentType===1?$.currentOffset():x.offset,m=x.currentType===1?x.endLoc:x.startLoc,b=r(2,E,m);b.items=[];let g=null,k=null;do{const V=g||$.nextToken();switch(g=null,V.type){case 0:V.value==null&&a($,Ie.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,fo(V)),b.items.push(l($,V.value||""));break;case 6:V.value==null&&a($,Ie.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,fo(V)),b.items.push(c($,V.value||""));break;case 4:k=!0;break;case 5:V.value==null&&a($,Ie.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,fo(V)),b.items.push(u($,V.value||"",!!k)),k&&(s($,Gi.USE_MODULO_SYNTAX,x.lastStartLoc,0,fo(V)),k=null);break;case 7:V.value==null&&a($,Ie.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,fo(V)),b.items.push(p($,V.value||""));break;case 8:{const U=w($);b.items.push(U.node),g=U.nextConsumeToken||null;break}}}while(x.currentType!==14&&x.currentType!==1);const T=x.currentType===1?x.lastOffset:$.currentOffset(),O=x.currentType===1?x.lastEndLoc:$.currentPosition();return i(b,T,O),b}function v($,x,E,m){const b=$.context();let g=m.items.length===0;const k=r(1,x,E);k.cases=[],k.cases.push(m);do{const T=f($);g||(g=T.items.length===0),k.cases.push(T)}while(b.currentType!==14);return g&&a($,Ie.MUST_HAVE_MESSAGES_IN_PLURAL,E,0),i(k,$.currentOffset(),$.currentPosition()),k}function y($){const x=$.context(),{offset:E,startLoc:m}=x,b=f($);return x.currentType===14?b:v($,E,m,b)}function h($){const x=ev($,Ip({},e)),E=x.context(),m=r(0,E.offset,E.startLoc);return t&&m.loc&&(m.loc.source=$),m.body=y(x),e.onCacheKey&&(m.cacheKey=e.onCacheKey($)),E.currentType!==14&&a(x,Ie.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,$[E.offset]||""),i(m,x.currentOffset(),x.currentPosition()),m}return{parse:h}}function fo(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 sv(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:s=>(o.helpers.add(s),s)}}function Gp(e,t){for(let o=0;ojp(o)),e}function jp(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(f,v){r.code+=f}function c(f,v=!0){const y=v?n:"";l(a?y+" ".repeat(f):y)}function u(f=!0){const v=++r.indentLevel;f&&c(v)}function p(f=!0){const v=--r.indentLevel;f&&c(v)}function d(){c(r.indentLevel)}return{context:i,push:l,indent:u,deindent:p,newline:d,helper:f=>`_${f}`,needIndent:()=>r.needIndent}}function pv(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),sa(e,t.key),t.modifier?(e.push(", "),sa(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function dv(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=Op(t.mode)?t.mode:"normal",n=Op(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=uv(e,{filename:n,breakLineCode:a,needIndent:s});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(s),r.length>0&&(i.push(`const { ${Dp(r.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),sa(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 mv(e,t={}){const o=Ip({},t),n=!!o.jit,a=!!o.minify,s=o.optimize==null?!0:o.optimize,i=av(o).parse(e);return n?(s&&iv(i),a&&aa(i),{ast:i,code:""}):(rv(i,o),hv(i,o))}/*! + */function U0(e,t,o){return{line:e,column:t,offset:o}}function pr(e,t,o){return{start:e,end:t}}const V0=/\{([0-9a-zA-Z]+)\}/g;function Fp(e,...t){return t.length===1&&K0(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(V0,(o,n)=>t.hasOwnProperty(n)?t[n]:"")}const Ip=Object.assign,Op=e=>typeof e=="string",K0=e=>e!==null&&typeof e=="object";function Dp(e,t=""){return e.reduce((o,n,a)=>a===0?o+n:o+t+n,"")}const Gi={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},H0={[Gi.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function q0(e,t,...o){const n=Fp(H0[e],...o||[]),a={message:String(n),code:e};return t&&(a.location=t),a}const Ie={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},W0={[Ie.EXPECTED_TOKEN]:"Expected token: '{0}'",[Ie.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Ie.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Ie.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Ie.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Ie.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Ie.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Ie.EMPTY_PLACEHOLDER]:"Empty placeholder",[Ie.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Ie.INVALID_LINKED_FORMAT]:"Invalid linked format",[Ie.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Ie.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Ie.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Ie.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Ie.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Ie.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function aa(e,t,o={}){const{domain:n,messages:a,args:s}=o,r=Fp((a||W0)[e]||"",...s||[]),i=new SyntaxError(String(r));return i.code=e,t&&(i.location=t),i.domain=n,i}function Y0(e){throw e}const Zo=" ",X0="\r",Gt=` +`,Z0="\u2028",J0="\u2029";function Q0(e){const t=e;let o=0,n=1,a=1,s=0;const r=b=>t[b]===X0&&t[b+1]===Gt,i=b=>t[b]===Gt,l=b=>t[b]===J0,c=b=>t[b]===Z0,u=b=>r(b)||i(b)||l(b)||c(b),p=()=>o,d=()=>n,A=()=>a,k=()=>s,f=b=>r(b)||l(b)||c(b)?Gt:t[b],w=()=>f(o),y=()=>f(o+s);function h(){return s=0,u(o)&&(n++,a=0),r(o)&&o++,o++,a++,t[o]}function $(){return r(o+s)&&s++,s++,t[o+s]}function x(){o=0,n=1,a=1,s=0}function E(b=0){s=b}function m(){const b=o+s;for(;b!==o;)h();s=0}return{index:p,line:d,column:A,peekOffset:k,charAt:f,currentChar:w,currentPeek:y,next:h,peek:$,reset:x,resetPeek:E,skipToPeek:m}}const fn=void 0,ev=".",Bp="'",tv="tokenizer";function ov(e,t={}){const o=t.location!==!1,n=Q0(e),a=()=>n.index(),s=()=>U0(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 p(v,S,D,...te){const me=c();if(S.column+=D,S.offset+=D,u){const le=o?pr(me.startLoc,S):null,Y=aa(v,le,{domain:tv,args:te});u(Y)}}function d(v,S,D){v.endLoc=s(),v.currentType=S;const te={type:S};return o&&(te.loc=pr(v.startLoc,v.endLoc)),D!=null&&(te.value=D),te}const A=v=>d(v,14);function k(v,S){return v.currentChar()===S?(v.next(),S):(p(Ie.EXPECTED_TOKEN,s(),0,S),"")}function f(v){let S="";for(;v.currentPeek()===Zo||v.currentPeek()===Gt;)S+=v.currentPeek(),v.peek();return S}function w(v){const S=f(v);return v.skipToPeek(),S}function y(v){if(v===fn)return!1;const S=v.charCodeAt(0);return S>=97&&S<=122||S>=65&&S<=90||S===95}function h(v){if(v===fn)return!1;const S=v.charCodeAt(0);return S>=48&&S<=57}function $(v,S){const{currentType:D}=S;if(D!==2)return!1;f(v);const te=y(v.currentPeek());return v.resetPeek(),te}function x(v,S){const{currentType:D}=S;if(D!==2)return!1;f(v);const te=v.currentPeek()==="-"?v.peek():v.currentPeek(),me=h(te);return v.resetPeek(),me}function E(v,S){const{currentType:D}=S;if(D!==2)return!1;f(v);const te=v.currentPeek()===Bp;return v.resetPeek(),te}function m(v,S){const{currentType:D}=S;if(D!==8)return!1;f(v);const te=v.currentPeek()===".";return v.resetPeek(),te}function b(v,S){const{currentType:D}=S;if(D!==9)return!1;f(v);const te=y(v.currentPeek());return v.resetPeek(),te}function g(v,S){const{currentType:D}=S;if(!(D===8||D===12))return!1;f(v);const te=v.currentPeek()===":";return v.resetPeek(),te}function _(v,S){const{currentType:D}=S;if(D!==10)return!1;const te=()=>{const le=v.currentPeek();return le==="{"?y(v.peek()):le==="@"||le==="%"||le==="|"||le===":"||le==="."||le===Zo||!le?!1:le===Gt?(v.peek(),te()):V(v,!1)},me=te();return v.resetPeek(),me}function T(v){f(v);const S=v.currentPeek()==="|";return v.resetPeek(),S}function B(v){const S=f(v),D=v.currentPeek()==="%"&&v.peek()==="{";return v.resetPeek(),{isModulo:D,hasSpace:S.length>0}}function V(v,S=!0){const D=(me=!1,le="",Y=!1)=>{const ie=v.currentPeek();return ie==="{"?le==="%"?!1:me:ie==="@"||!ie?le==="%"?!0:me:ie==="%"?(v.peek(),D(me,"%",!0)):ie==="|"?le==="%"||Y?!0:!(le===Zo||le===Gt):ie===Zo?(v.peek(),D(!0,Zo,Y)):ie===Gt?(v.peek(),D(!0,Gt,Y)):!0},te=D();return S&&v.resetPeek(),te}function j(v,S){const D=v.currentChar();return D===fn?fn:S(D)?(v.next(),D):null}function G(v){const S=v.charCodeAt(0);return S>=97&&S<=122||S>=65&&S<=90||S>=48&&S<=57||S===95||S===36}function C(v){return j(v,G)}function L(v){const S=v.charCodeAt(0);return S>=97&&S<=122||S>=65&&S<=90||S>=48&&S<=57||S===95||S===36||S===45}function M(v){return j(v,L)}function z(v){const S=v.charCodeAt(0);return S>=48&&S<=57}function K(v){return j(v,z)}function J(v){const S=v.charCodeAt(0);return S>=48&&S<=57||S>=65&&S<=70||S>=97&&S<=102}function ce(v){return j(v,J)}function H(v){let S="",D="";for(;S=K(v);)D+=S;return D}function be(v){w(v);const S=v.currentChar();return S!=="%"&&p(Ie.EXPECTED_TOKEN,s(),0,S),v.next(),"%"}function ve(v){let S="";for(;;){const D=v.currentChar();if(D==="{"||D==="}"||D==="@"||D==="|"||!D)break;if(D==="%")if(V(v))S+=D,v.next();else break;else if(D===Zo||D===Gt)if(V(v))S+=D,v.next();else{if(T(v))break;S+=D,v.next()}else S+=D,v.next()}return S}function he(v){w(v);let S="",D="";for(;S=M(v);)D+=S;return v.currentChar()===fn&&p(Ie.UNTERMINATED_CLOSING_BRACE,s(),0),D}function Ae(v){w(v);let S="";return v.currentChar()==="-"?(v.next(),S+=`-${H(v)}`):S+=H(v),v.currentChar()===fn&&p(Ie.UNTERMINATED_CLOSING_BRACE,s(),0),S}function ye(v){return v!==Bp&&v!==Gt}function oe(v){w(v),k(v,"'");let S="",D="";for(;S=j(v,ye);)S==="\\"?D+=fe(v):D+=S;const te=v.currentChar();return te===Gt||te===fn?(p(Ie.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,s(),0),te===Gt&&(v.next(),k(v,"'")),D):(k(v,"'"),D)}function fe(v){const S=v.currentChar();switch(S){case"\\":case"'":return v.next(),`\\${S}`;case"u":return ue(v,S,4);case"U":return ue(v,S,6);default:return p(Ie.UNKNOWN_ESCAPE_SEQUENCE,s(),0,S),""}}function ue(v,S,D){k(v,S);let te="";for(let me=0;me{const te=v.currentChar();return te==="{"||te==="%"||te==="@"||te==="|"||te==="("||te===")"||!te||te===Zo?D:(D+=te,v.next(),S(D))};return S("")}function X(v){w(v);const S=k(v,"|");return w(v),S}function Q(v,S){let D=null;switch(v.currentChar()){case"{":return S.braceNest>=1&&p(Ie.NOT_ALLOW_NEST_PLACEHOLDER,s(),0),v.next(),D=d(S,2,"{"),w(v),S.braceNest++,D;case"}":return S.braceNest>0&&S.currentType===2&&p(Ie.EMPTY_PLACEHOLDER,s(),0),v.next(),D=d(S,3,"}"),S.braceNest--,S.braceNest>0&&w(v),S.inLinked&&S.braceNest===0&&(S.inLinked=!1),D;case"@":return S.braceNest>0&&p(Ie.UNTERMINATED_CLOSING_BRACE,s(),0),D=U(v,S)||A(S),S.braceNest=0,D;default:{let me=!0,le=!0,Y=!0;if(T(v))return S.braceNest>0&&p(Ie.UNTERMINATED_CLOSING_BRACE,s(),0),D=d(S,1,X(v)),S.braceNest=0,S.inLinked=!1,D;if(S.braceNest>0&&(S.currentType===5||S.currentType===6||S.currentType===7))return p(Ie.UNTERMINATED_CLOSING_BRACE,s(),0),S.braceNest=0,de(v,S);if(me=$(v,S))return D=d(S,5,he(v)),w(v),D;if(le=x(v,S))return D=d(S,6,Ae(v)),w(v),D;if(Y=E(v,S))return D=d(S,7,oe(v)),w(v),D;if(!me&&!le&&!Y)return D=d(S,13,P(v)),p(Ie.INVALID_TOKEN_IN_PLACEHOLDER,s(),0,D.value),w(v),D;break}}return D}function U(v,S){const{currentType:D}=S;let te=null;const me=v.currentChar();switch((D===8||D===9||D===12||D===10)&&(me===Gt||me===Zo)&&p(Ie.INVALID_LINKED_FORMAT,s(),0),me){case"@":return v.next(),te=d(S,8,"@"),S.inLinked=!0,te;case".":return w(v),v.next(),d(S,9,".");case":":return w(v),v.next(),d(S,10,":");default:return T(v)?(te=d(S,1,X(v)),S.braceNest=0,S.inLinked=!1,te):m(v,S)||g(v,S)?(w(v),U(v,S)):b(v,S)?(w(v),d(S,12,O(v))):_(v,S)?(w(v),me==="{"?Q(v,S)||te:d(S,11,I(v))):(D===8&&p(Ie.INVALID_LINKED_FORMAT,s(),0),S.braceNest=0,S.inLinked=!1,de(v,S))}}function de(v,S){let D={type:14};if(S.braceNest>0)return Q(v,S)||A(S);if(S.inLinked)return U(v,S)||A(S);switch(v.currentChar()){case"{":return Q(v,S)||A(S);case"}":return p(Ie.UNBALANCED_CLOSING_BRACE,s(),0),v.next(),d(S,3,"}");case"@":return U(v,S)||A(S);default:{if(T(v))return D=d(S,1,X(v)),S.braceNest=0,S.inLinked=!1,D;const{isModulo:me,hasSpace:le}=B(v);if(me)return le?d(S,0,ve(v)):d(S,4,be(v));if(V(v))return d(S,0,ve(v));break}}return D}function ne(){const{currentType:v,offset:S,startLoc:D,endLoc:te}=l;return l.lastType=v,l.lastOffset=S,l.lastStartLoc=D,l.lastEndLoc=te,l.offset=a(),l.startLoc=s(),n.currentChar()===fn?d(l,14):de(n,l)}return{nextToken:ne,currentOffset:a,currentPosition:s,context:c}}const nv="parser",av=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function sv(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 rv(e={}){const t=e.location!==!1,{onError:o,onWarn:n}=e;function a($,x,E,m,...b){const g=$.currentPosition();if(g.offset+=m,g.column+=m,o){const _=t?pr(E,g):null,T=aa(x,_,{domain:nv,args:b});o(T)}}function s($,x,E,m,...b){const g=$.currentPosition();if(g.offset+=m,g.column+=m,n){const _=t?pr(E,g):null;n(q0(x,_,b))}}function r($,x,E){const m={type:$};return t&&(m.start=x,m.end=x,m.loc={start:E,end:E}),m}function i($,x,E,m){t&&($.end=x,$.loc&&($.loc.end=E))}function l($,x){const E=$.context(),m=r(3,E.offset,E.startLoc);return m.value=x,i(m,$.currentOffset(),$.currentPosition()),m}function c($,x){const E=$.context(),{lastOffset:m,lastStartLoc:b}=E,g=r(5,m,b);return g.index=parseInt(x,10),$.nextToken(),i(g,$.currentOffset(),$.currentPosition()),g}function u($,x,E){const m=$.context(),{lastOffset:b,lastStartLoc:g}=m,_=r(4,b,g);return _.key=x,E===!0&&(_.modulo=!0),$.nextToken(),i(_,$.currentOffset(),$.currentPosition()),_}function p($,x){const E=$.context(),{lastOffset:m,lastStartLoc:b}=E,g=r(9,m,b);return g.value=x.replace(av,sv),$.nextToken(),i(g,$.currentOffset(),$.currentPosition()),g}function d($){const x=$.nextToken(),E=$.context(),{lastOffset:m,lastStartLoc:b}=E,g=r(8,m,b);return x.type!==12?(a($,Ie.UNEXPECTED_EMPTY_LINKED_MODIFIER,E.lastStartLoc,0),g.value="",i(g,m,b),{nextConsumeToken:x,node:g}):(x.value==null&&a($,Ie.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,fo(x)),g.value=x.value||"",i(g,$.currentOffset(),$.currentPosition()),{node:g})}function A($,x){const E=$.context(),m=r(7,E.offset,E.startLoc);return m.value=x,i(m,$.currentOffset(),$.currentPosition()),m}function k($){const x=$.context(),E=r(6,x.offset,x.startLoc);let m=$.nextToken();if(m.type===9){const b=d($);E.modifier=b.node,m=b.nextConsumeToken||$.nextToken()}switch(m.type!==10&&a($,Ie.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,fo(m)),m=$.nextToken(),m.type===2&&(m=$.nextToken()),m.type){case 11:m.value==null&&a($,Ie.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,fo(m)),E.key=A($,m.value||"");break;case 5:m.value==null&&a($,Ie.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,fo(m)),E.key=u($,m.value||"");break;case 6:m.value==null&&a($,Ie.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,fo(m)),E.key=c($,m.value||"");break;case 7:m.value==null&&a($,Ie.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,fo(m)),E.key=p($,m.value||"");break;default:{a($,Ie.UNEXPECTED_EMPTY_LINKED_KEY,x.lastStartLoc,0);const b=$.context(),g=r(7,b.offset,b.startLoc);return g.value="",i(g,b.offset,b.startLoc),E.key=g,i(E,b.offset,b.startLoc),{nextConsumeToken:m,node:E}}}return i(E,$.currentOffset(),$.currentPosition()),{node:E}}function f($){const x=$.context(),E=x.currentType===1?$.currentOffset():x.offset,m=x.currentType===1?x.endLoc:x.startLoc,b=r(2,E,m);b.items=[];let g=null,_=null;do{const V=g||$.nextToken();switch(g=null,V.type){case 0:V.value==null&&a($,Ie.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,fo(V)),b.items.push(l($,V.value||""));break;case 6:V.value==null&&a($,Ie.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,fo(V)),b.items.push(c($,V.value||""));break;case 4:_=!0;break;case 5:V.value==null&&a($,Ie.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,fo(V)),b.items.push(u($,V.value||"",!!_)),_&&(s($,Gi.USE_MODULO_SYNTAX,x.lastStartLoc,0,fo(V)),_=null);break;case 7:V.value==null&&a($,Ie.UNEXPECTED_LEXICAL_ANALYSIS,x.lastStartLoc,0,fo(V)),b.items.push(p($,V.value||""));break;case 8:{const j=k($);b.items.push(j.node),g=j.nextConsumeToken||null;break}}}while(x.currentType!==14&&x.currentType!==1);const T=x.currentType===1?x.lastOffset:$.currentOffset(),B=x.currentType===1?x.lastEndLoc:$.currentPosition();return i(b,T,B),b}function w($,x,E,m){const b=$.context();let g=m.items.length===0;const _=r(1,x,E);_.cases=[],_.cases.push(m);do{const T=f($);g||(g=T.items.length===0),_.cases.push(T)}while(b.currentType!==14);return g&&a($,Ie.MUST_HAVE_MESSAGES_IN_PLURAL,E,0),i(_,$.currentOffset(),$.currentPosition()),_}function y($){const x=$.context(),{offset:E,startLoc:m}=x,b=f($);return x.currentType===14?b:w($,E,m,b)}function h($){const x=ov($,Ip({},e)),E=x.context(),m=r(0,E.offset,E.startLoc);return t&&m.loc&&(m.loc.source=$),m.body=y(x),e.onCacheKey&&(m.cacheKey=e.onCacheKey($)),E.currentType!==14&&a(x,Ie.UNEXPECTED_LEXICAL_ANALYSIS,E.lastStartLoc,0,$[E.offset]||""),i(m,x.currentOffset(),x.currentPosition()),m}return{parse:h}}function fo(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 iv(e,t={}){const o={ast:e,helpers:new Set};return{context:()=>o,helper:s=>(o.helpers.add(s),s)}}function Gp(e,t){for(let o=0;ojp(o)),e}function jp(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(f,w){r.code+=f}function c(f,w=!0){const y=w?n:"";l(a?y+" ".repeat(f):y)}function u(f=!0){const w=++r.indentLevel;f&&c(w)}function p(f=!0){const w=--r.indentLevel;f&&c(w)}function d(){c(r.indentLevel)}return{context:i,push:l,indent:u,deindent:p,newline:d,helper:f=>`_${f}`,needIndent:()=>r.needIndent}}function gv(e,t){const{helper:o}=e;e.push(`${o("linked")}(`),ra(e,t.key),t.modifier?(e.push(", "),ra(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function fv(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=Op(t.mode)?t.mode:"normal",n=Op(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=dv(e,{filename:n,breakLineCode:a,needIndent:s});i.push(o==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),i.indent(s),r.length>0&&(i.push(`const { ${Dp(r.map(u=>`${u}: _${u}`),", ")} } = ctx`),i.newline()),i.push("return "),ra(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 $v(e,t={}){const o=Ip({},t),n=!!o.jit,a=!!o.minify,s=o.optimize==null?!0:o.optimize,i=rv(o).parse(e);return n?(s&&cv(i),a&&sa(i),{ast:i,code:""}):(lv(i,o),bv(i,o))}/*! * core-base v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */function bv(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Xo().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Xo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Xo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function So(e){return Xe(e)&&zi(e)===0&&(go(e,"b")||go(e,"body"))}const zp=["b","body"];function $v(e){return hn(e,zp)}const Up=["c","cases"];function yv(e){return hn(e,Up,[])}const Vp=["s","static"];function _v(e){return hn(e,Vp)}const Kp=["i","items"];function vv(e){return hn(e,Kp,[])}const Hp=["t","type"];function zi(e){return hn(e,Hp)}const qp=["v","value"];function dr(e,t){const o=hn(e,qp);if(o!=null)return o;throw ts(t)}const Wp=["m","modifier"];function wv(e){return hn(e,Wp)}const Yp=["k","key"];function kv(e){const t=hn(e,Yp);if(t)return t;throw ts(6)}function hn(e,t,o){for(let n=0;n{r===void 0?r=i:r+=i},d[1]=()=>{r!==void 0&&(t.push(r),r=void 0)},d[2]=()=>{d[0](),a++},d[3]=()=>{if(a>0)a--,n=4,d[0]();else{if(a=0,r===void 0||(r=Pv(r),r===!1))return!1;d[1]()}};function A(){const w=e[o+1];if(n===5&&w==="'"||n===6&&w==='"')return o++,i="\\"+w,d[0](),!0}for(;n!==null;)if(o++,s=e[o],!(s==="\\"&&A())){if(l=Sv(s),p=mn[n],c=p[l]||p.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=d[c[1]],u&&(i=s,u()===!1))))return;if(n===7)return t}}const Zp=new Map;function Ev(e,t){return Xe(e)?e[t]:null}function Tv(e,t){if(!Xe(e))return null;let o=Zp.get(t);if(o||(o=Cv(t),o&&Zp.set(t,o)),!o)return null;const n=o.length;let a=e,s=0;for(;se,Rv=e=>"",Mv="text",Fv=e=>e.length===0?"":G0(e),Iv=B0;function Jp(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function Ov(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 Dv(e,t){t.count||(t.count=e),t.n||(t.n=e)}function Bv(e={}){const t=e.locale,o=Ov(e),n=Xe(e.pluralRules)&&Ae(t)&&it(e.pluralRules[t])?e.pluralRules[t]:Jp,a=Xe(e.pluralRules)&&Ae(t)&&it(e.pluralRules[t])?Jp:void 0,s=y=>y[n(o,y.length,a)],r=e.list||[],i=y=>r[y],l=e.named||nt();$t(e.pluralIndex)&&Dv(o,l);const c=y=>l[y];function u(y){const h=it(e.messages)?e.messages(y):Xe(e.messages)?e.messages[y]:!1;return h||(e.parent?e.parent.message(y):Rv)}const p=y=>e.modifiers?e.modifiers[y]:Nv,d=je(e.processor)&&it(e.processor.normalize)?e.processor.normalize:Fv,A=je(e.processor)&&it(e.processor.interpolate)?e.processor.interpolate:Iv,w=je(e.processor)&&Ae(e.processor.type)?e.processor.type:Mv,v={list:i,named:c,plural:s,linked:(y,...h)=>{const[$,x]=h;let E="text",m="";h.length===1?Xe($)?(m=$.modifier||m,E=$.type||E):Ae($)&&(m=$||m):h.length===2&&(Ae($)&&(m=$||m),Ae(x)&&(E=x||E));const b=u(y)(v),g=E==="vnode"&&dt(b)&&m?b[0]:b;return m?p(m)(g,E):g},message:u,type:w,interpolate:A,normalize:d,values:Tt(nt(),r,l)};return v}let os=null;function Gv(e){os=e}function jv(e,t,o){os&&os.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const zv=Uv("function:translate");function Uv(e){return t=>os&&os.emit(e,t)}const Vv=Gi.__EXTEND_POINT__,Nn=lr(Vv),Kv={FALLBACK_TO_TRANSLATE:Nn(),CANNOT_FORMAT_NUMBER:Nn(),FALLBACK_TO_NUMBER_FORMAT:Nn(),CANNOT_FORMAT_DATE:Nn(),FALLBACK_TO_DATE_FORMAT:Nn(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:Nn(),__EXTEND_POINT__:Nn()},Qp=Ie.__EXTEND_POINT__,Rn=lr(Qp),ho={INVALID_ARGUMENT:Qp,INVALID_DATE_ARGUMENT:Rn(),INVALID_ISO_DATE_ARGUMENT:Rn(),NOT_SUPPORT_NON_STRING_MESSAGE:Rn(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:Rn(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:Rn(),NOT_SUPPORT_LOCALE_TYPE:Rn(),__EXTEND_POINT__:Rn()};function Po(e){return na(e,null,void 0)}function Ui(e,t){return t.locale!=null?ed(t.locale):ed(e.locale)}let Vi;function ed(e){if(Ae(e))return e;if(it(e)){if(e.resolvedOnce&&Vi!=null)return Vi;if(e.constructor.name==="Function"){const t=e();if(D0(t))throw Po(ho.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Vi=t}else throw Po(ho.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Po(ho.NOT_SUPPORT_LOCALE_TYPE)}function Hv(e,t,o){return[...new Set([o,...dt(t)?t:Xe(t)?Object.keys(t):Ae(t)?[t]:[o]])]}function td(e,t,o){const n=Ae(o)?o:ra,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let s=a.__localeChainCache.get(n);if(!s){s=[];let r=[o];for(;dt(r);)r=od(s,r,t);const i=dt(t)||!je(t)?t:t.default?t.default:null;r=Ae(i)?[i]:i,dt(r)&&od(s,r,!1),a.__localeChainCache.set(n,s)}return s}function od(e,t,o){let n=!0;for(let a=0;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Xv(){return{upper:(e,t)=>t==="text"&&Ae(e)?e.toUpperCase():t==="vnode"&&Xe(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&Ae(e)?e.toLowerCase():t==="vnode"&&Xe(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&Ae(e)?ad(e):t==="vnode"&&Xe(e)&&"__v_isVNode"in e?ad(e.children):e}}let sd;function rd(e){sd=e}let id;function Zv(e){id=e}let ld;function Jv(e){ld=e}let cd=null;const Qv=e=>{cd=e},e1=()=>cd;let ud=null;const pd=e=>{ud=e},t1=()=>ud;let dd=0;function o1(e={}){const t=it(e.onWarn)?e.onWarn:T0,o=Ae(e.version)?e.version:Yv,n=Ae(e.locale)||it(e.locale)?e.locale:ra,a=it(n)?ra:n,s=dt(e.fallbackLocale)||je(e.fallbackLocale)||Ae(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,r=je(e.messages)?e.messages:Ki(a),i=je(e.datetimeFormats)?e.datetimeFormats:Ki(a),l=je(e.numberFormats)?e.numberFormats:Ki(a),c=Tt(nt(),e.modifiers,Xv()),u=e.pluralRules||nt(),p=it(e.missing)?e.missing:null,d=Ue(e.missingWarn)||gn(e.missingWarn)?e.missingWarn:!0,A=Ue(e.fallbackWarn)||gn(e.fallbackWarn)?e.fallbackWarn:!0,w=!!e.fallbackFormat,f=!!e.unresolving,v=it(e.postTranslation)?e.postTranslation:null,y=je(e.processor)?e.processor:null,h=Ue(e.warnHtmlMessage)?e.warnHtmlMessage:!0,$=!!e.escapeParameter,x=it(e.messageCompiler)?e.messageCompiler:sd,E=it(e.messageResolver)?e.messageResolver:id||Ev,m=it(e.localeFallbacker)?e.localeFallbacker:ld||Hv,b=Xe(e.fallbackContext)?e.fallbackContext:void 0,g=e,k=Xe(g.__datetimeFormatters)?g.__datetimeFormatters:new Map,T=Xe(g.__numberFormatters)?g.__numberFormatters:new Map,O=Xe(g.__meta)?g.__meta:{};dd++;const V={version:o,cid:dd,locale:n,fallbackLocale:s,messages:r,modifiers:c,pluralRules:u,missing:p,missingWarn:d,fallbackWarn:A,fallbackFormat:w,unresolving:f,postTranslation:v,processor:y,warnHtmlMessage:h,escapeParameter:$,messageCompiler:x,messageResolver:E,localeFallbacker:m,fallbackContext:b,onWarn:t,__meta:O};return V.datetimeFormats=i,V.numberFormats=l,V.__datetimeFormatters=k,V.__numberFormatters=T,__INTLIFY_PROD_DEVTOOLS__&&jv(V,o,O),V}const Ki=e=>({[e]:nt()});function Hi(e,t,o,n,a){const{missing:s,onWarn:r}=e;if(s!==null){const i=s(e,o,t,a);return Ae(i)?i:t}else return t}function ns(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function n1(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function a1(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;ns1(o,e)}function s1(e,t){const o=$v(t);if(o==null)throw ts(0);if(zi(o)===1){const s=yv(o);return e.plural(s.reduce((r,i)=>[...r,gd(e,i)],[]))}else return gd(e,o)}function gd(e,t){const o=_v(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=vv(t).reduce((a,s)=>[...a,Wi(e,s)],[]);return e.normalize(n)}}function Wi(e,t){const o=zi(t);switch(o){case 3:return dr(t,o);case 9:return dr(t,o);case 4:{const n=t;if(go(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(go(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw ts(o)}case 5:{const n=t;if(go(n,"i")&&$t(n.i))return e.interpolate(e.list(n.i));if(go(n,"index")&&$t(n.index))return e.interpolate(e.list(n.index));throw ts(o)}case 6:{const n=t,a=wv(n),s=kv(n);return e.linked(Wi(e,s),a?Wi(e,a):void 0,e.type)}case 7:return dr(t,o);case 8:return dr(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const fd=e=>e;let ia=nt();function hd(e,t={}){let o=!1;const n=t.onError||q0;return t.onError=a=>{o=!0,n(a)},{...mv(e,t),detectError:o}}const r1=(e,t)=>{if(!Ae(e))throw Po(ho.NOT_SUPPORT_NON_STRING_MESSAGE);{Ue(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||fd)(e),a=ia[n];if(a)return a;const{code:s,detectError:r}=hd(e,t),i=new Function(`return ${s}`)();return r?i:ia[n]=i}};function i1(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&Ae(e)){Ue(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||fd)(e),a=ia[n];if(a)return a;const{ast:s,detectError:r}=hd(e,{...t,location:!1,jit:!0}),i=qi(s);return r?i:ia[n]=i}else{const o=e.cacheKey;if(o){const n=ia[o];return n||(ia[o]=qi(e))}else return qi(e)}}const md=()=>"",so=e=>it(e);function bd(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:s,fallbackLocale:r,messages:i}=e,[l,c]=Yi(...t),u=Ue(c.missingWarn)?c.missingWarn:e.missingWarn,p=Ue(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,d=Ue(c.escapeParameter)?c.escapeParameter:e.escapeParameter,A=!!c.resolvedMessage,w=Ae(c.default)||Ue(c.default)?Ue(c.default)?s?l:()=>l:c.default:o?s?l:()=>l:"",f=o||w!=="",v=Ui(e,c);d&&l1(c);let[y,h,$]=A?[l,v,i[v]||nt()]:$d(e,l,v,r,p,u),x=y,E=l;if(!A&&!(Ae(x)||So(x)||so(x))&&f&&(x=w,E=x),!A&&(!(Ae(x)||So(x)||so(x))||!Ae(h)))return a?gr:l;let m=!1;const b=()=>{m=!0},g=so(x)?x:yd(e,l,h,x,E,b);if(m)return x;const k=p1(e,h,$,c),T=Bv(k),O=c1(e,g,T);let V=n?n(O,l):O;if(d&&Ae(V)&&(V=I0(V)),__INTLIFY_PROD_DEVTOOLS__){const U={timestamp:Date.now(),key:Ae(l)?l:so(x)?x.key:"",locale:h||(so(x)?x.locale:""),format:Ae(x)?x:so(x)?x.source:"",message:V};U.meta=Tt({},e.__meta,e1()||{}),zv(U)}return V}function l1(e){dt(e.list)?e.list=e.list.map(t=>Ae(t)?Tp(t):t):Xe(e.named)&&Object.keys(e.named).forEach(t=>{Ae(e.named[t])&&(e.named[t]=Tp(e.named[t]))})}function $d(e,t,o,n,a,s){const{messages:r,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,o);let p=nt(),d,A=null;const w="translate";for(let f=0;fn;return c.locale=o,c.key=t,c}const l=r(n,u1(e,o,a,n,i,s));return l.locale=o,l.key=t,l.source=n,l}function c1(e,t,o){return t(o)}function Yi(...e){const[t,o,n]=e,a=nt();if(!Ae(t)&&!$t(t)&&!so(t)&&!So(t))throw Po(ho.INVALID_ARGUMENT);const s=$t(t)?String(t):(so(t),t);return $t(o)?a.plural=o:Ae(o)?a.default=o:je(o)&&!ir(o)?a.named=o:dt(o)&&(a.list=o),$t(n)?a.plural=n:Ae(n)?a.default=n:je(n)&&Tt(a,n),[s,a]}function u1(e,t,o,n,a,s){return{locale:t,key:o,warnHtmlMessage:a,onError:r=>{throw s&&s(r),r},onCacheKey:r=>N0(t,o,r)}}function p1(e,t,o,n){const{modifiers:a,pluralRules:s,messageResolver:r,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,d={locale:t,modifiers:a,pluralRules:s,messages:A=>{let w=r(o,A);if(w==null&&u){const[,,f]=$d(u,A,t,i,l,c);w=r(f,A)}if(Ae(w)||So(w)){let f=!1;const y=yd(e,A,t,w,A,()=>{f=!0});return f?md:y}else return so(w)?w:md}};return e.processor&&(d.processor=e.processor),n.list&&(d.list=n.list),n.named&&(d.named=n.named),$t(n.plural)&&(d.pluralIndex=n.plural),d}function _d(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__datetimeFormatters:i}=e,[l,c,u,p]=Xi(...t),d=Ue(u.missingWarn)?u.missingWarn:e.missingWarn;Ue(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const A=!!u.part,w=Ui(e,u),f=r(e,a,w);if(!Ae(l)||l==="")return new Intl.DateTimeFormat(w,p).format(c);let v={},y,h=null;const $="datetime format";for(let m=0;m{vd.includes(l)?r[l]=o[l]:s[l]=o[l]}),Ae(n)?s.locale=n:je(n)&&(r=n),je(a)&&(r=a),[s.key||"",i,s,r]}function wd(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__datetimeFormatters.has(s)&&n.__datetimeFormatters.delete(s)}}function kd(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__numberFormatters:i}=e,[l,c,u,p]=Zi(...t),d=Ue(u.missingWarn)?u.missingWarn:e.missingWarn;Ue(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const A=!!u.part,w=Ui(e,u),f=r(e,a,w);if(!Ae(l)||l==="")return new Intl.NumberFormat(w,p).format(c);let v={},y,h=null;const $="number format";for(let m=0;m{xd.includes(l)?r[l]=o[l]:s[l]=o[l]}),Ae(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)}}bv();/*! + */function yv(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Xo().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Xo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Xo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function So(e){return Xe(e)&&zi(e)===0&&(go(e,"b")||go(e,"body"))}const zp=["b","body"];function _v(e){return hn(e,zp)}const Up=["c","cases"];function vv(e){return hn(e,Up,[])}const Vp=["s","static"];function wv(e){return hn(e,Vp)}const Kp=["i","items"];function kv(e){return hn(e,Kp,[])}const Hp=["t","type"];function zi(e){return hn(e,Hp)}const qp=["v","value"];function dr(e,t){const o=hn(e,qp);if(o!=null)return o;throw ts(t)}const Wp=["m","modifier"];function xv(e){return hn(e,Wp)}const Yp=["k","key"];function Lv(e){const t=hn(e,Yp);if(t)return t;throw ts(6)}function hn(e,t,o){for(let n=0;n{r===void 0?r=i:r+=i},d[1]=()=>{r!==void 0&&(t.push(r),r=void 0)},d[2]=()=>{d[0](),a++},d[3]=()=>{if(a>0)a--,n=4,d[0]();else{if(a=0,r===void 0||(r=Ev(r),r===!1))return!1;d[1]()}};function A(){const k=e[o+1];if(n===5&&k==="'"||n===6&&k==='"')return o++,i="\\"+k,d[0](),!0}for(;n!==null;)if(o++,s=e[o],!(s==="\\"&&A())){if(l=Cv(s),p=mn[n],c=p[l]||p.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=d[c[1]],u&&(i=s,u()===!1))))return;if(n===7)return t}}const Zp=new Map;function Nv(e,t){return Xe(e)?e[t]:null}function Rv(e,t){if(!Xe(e))return null;let o=Zp.get(t);if(o||(o=Tv(t),o&&Zp.set(t,o)),!o)return null;const n=o.length;let a=e,s=0;for(;se,Fv=e=>"",Iv="text",Ov=e=>e.length===0?"":z0(e),Dv=j0;function Jp(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function Bv(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 Gv(e,t){t.count||(t.count=e),t.n||(t.n=e)}function jv(e={}){const t=e.locale,o=Bv(e),n=Xe(e.pluralRules)&&Le(t)&&it(e.pluralRules[t])?e.pluralRules[t]:Jp,a=Xe(e.pluralRules)&&Le(t)&&it(e.pluralRules[t])?Jp:void 0,s=y=>y[n(o,y.length,a)],r=e.list||[],i=y=>r[y],l=e.named||nt();$t(e.pluralIndex)&&Gv(o,l);const c=y=>l[y];function u(y){const h=it(e.messages)?e.messages(y):Xe(e.messages)?e.messages[y]:!1;return h||(e.parent?e.parent.message(y):Fv)}const p=y=>e.modifiers?e.modifiers[y]:Mv,d=je(e.processor)&&it(e.processor.normalize)?e.processor.normalize:Ov,A=je(e.processor)&&it(e.processor.interpolate)?e.processor.interpolate:Dv,k=je(e.processor)&&Le(e.processor.type)?e.processor.type:Iv,w={list:i,named:c,plural:s,linked:(y,...h)=>{const[$,x]=h;let E="text",m="";h.length===1?Xe($)?(m=$.modifier||m,E=$.type||E):Le($)&&(m=$||m):h.length===2&&(Le($)&&(m=$||m),Le(x)&&(E=x||E));const b=u(y)(w),g=E==="vnode"&&dt(b)&&m?b[0]:b;return m?p(m)(g,E):g},message:u,type:k,interpolate:A,normalize:d,values:Tt(nt(),r,l)};return w}let os=null;function zv(e){os=e}function Uv(e,t,o){os&&os.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:o})}const Vv=Kv("function:translate");function Kv(e){return t=>os&&os.emit(e,t)}const Hv=Gi.__EXTEND_POINT__,Nn=lr(Hv),qv={FALLBACK_TO_TRANSLATE:Nn(),CANNOT_FORMAT_NUMBER:Nn(),FALLBACK_TO_NUMBER_FORMAT:Nn(),CANNOT_FORMAT_DATE:Nn(),FALLBACK_TO_DATE_FORMAT:Nn(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:Nn(),__EXTEND_POINT__:Nn()},Qp=Ie.__EXTEND_POINT__,Rn=lr(Qp),ho={INVALID_ARGUMENT:Qp,INVALID_DATE_ARGUMENT:Rn(),INVALID_ISO_DATE_ARGUMENT:Rn(),NOT_SUPPORT_NON_STRING_MESSAGE:Rn(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:Rn(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:Rn(),NOT_SUPPORT_LOCALE_TYPE:Rn(),__EXTEND_POINT__:Rn()};function Po(e){return aa(e,null,void 0)}function Ui(e,t){return t.locale!=null?ed(t.locale):ed(e.locale)}let Vi;function ed(e){if(Le(e))return e;if(it(e)){if(e.resolvedOnce&&Vi!=null)return Vi;if(e.constructor.name==="Function"){const t=e();if(G0(t))throw Po(ho.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return Vi=t}else throw Po(ho.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Po(ho.NOT_SUPPORT_LOCALE_TYPE)}function Wv(e,t,o){return[...new Set([o,...dt(t)?t:Xe(t)?Object.keys(t):Le(t)?[t]:[o]])]}function td(e,t,o){const n=Le(o)?o:ia,a=e;a.__localeChainCache||(a.__localeChainCache=new Map);let s=a.__localeChainCache.get(n);if(!s){s=[];let r=[o];for(;dt(r);)r=od(s,r,t);const i=dt(t)||!je(t)?t:t.default?t.default:null;r=Le(i)?[i]:i,dt(r)&&od(s,r,!1),a.__localeChainCache.set(n,s)}return s}function od(e,t,o){let n=!0;for(let a=0;a`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Jv(){return{upper:(e,t)=>t==="text"&&Le(e)?e.toUpperCase():t==="vnode"&&Xe(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&Le(e)?e.toLowerCase():t==="vnode"&&Xe(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&Le(e)?ad(e):t==="vnode"&&Xe(e)&&"__v_isVNode"in e?ad(e.children):e}}let sd;function rd(e){sd=e}let id;function Qv(e){id=e}let ld;function e1(e){ld=e}let cd=null;const t1=e=>{cd=e},o1=()=>cd;let ud=null;const pd=e=>{ud=e},n1=()=>ud;let dd=0;function a1(e={}){const t=it(e.onWarn)?e.onWarn:R0,o=Le(e.version)?e.version:Zv,n=Le(e.locale)||it(e.locale)?e.locale:ia,a=it(n)?ia:n,s=dt(e.fallbackLocale)||je(e.fallbackLocale)||Le(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:a,r=je(e.messages)?e.messages:Ki(a),i=je(e.datetimeFormats)?e.datetimeFormats:Ki(a),l=je(e.numberFormats)?e.numberFormats:Ki(a),c=Tt(nt(),e.modifiers,Jv()),u=e.pluralRules||nt(),p=it(e.missing)?e.missing:null,d=Ue(e.missingWarn)||gn(e.missingWarn)?e.missingWarn:!0,A=Ue(e.fallbackWarn)||gn(e.fallbackWarn)?e.fallbackWarn:!0,k=!!e.fallbackFormat,f=!!e.unresolving,w=it(e.postTranslation)?e.postTranslation:null,y=je(e.processor)?e.processor:null,h=Ue(e.warnHtmlMessage)?e.warnHtmlMessage:!0,$=!!e.escapeParameter,x=it(e.messageCompiler)?e.messageCompiler:sd,E=it(e.messageResolver)?e.messageResolver:id||Nv,m=it(e.localeFallbacker)?e.localeFallbacker:ld||Wv,b=Xe(e.fallbackContext)?e.fallbackContext:void 0,g=e,_=Xe(g.__datetimeFormatters)?g.__datetimeFormatters:new Map,T=Xe(g.__numberFormatters)?g.__numberFormatters:new Map,B=Xe(g.__meta)?g.__meta:{};dd++;const V={version:o,cid:dd,locale:n,fallbackLocale:s,messages:r,modifiers:c,pluralRules:u,missing:p,missingWarn:d,fallbackWarn:A,fallbackFormat:k,unresolving:f,postTranslation:w,processor:y,warnHtmlMessage:h,escapeParameter:$,messageCompiler:x,messageResolver:E,localeFallbacker:m,fallbackContext:b,onWarn:t,__meta:B};return V.datetimeFormats=i,V.numberFormats=l,V.__datetimeFormatters=_,V.__numberFormatters=T,__INTLIFY_PROD_DEVTOOLS__&&Uv(V,o,B),V}const Ki=e=>({[e]:nt()});function Hi(e,t,o,n,a){const{missing:s,onWarn:r}=e;if(s!==null){const i=s(e,o,t,a);return Le(i)?i:t}else return t}function ns(e,t,o){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,o,t)}function s1(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function r1(e,t){const o=t.indexOf(e);if(o===-1)return!1;for(let n=o+1;ni1(o,e)}function i1(e,t){const o=_v(t);if(o==null)throw ts(0);if(zi(o)===1){const s=vv(o);return e.plural(s.reduce((r,i)=>[...r,gd(e,i)],[]))}else return gd(e,o)}function gd(e,t){const o=wv(t);if(o!=null)return e.type==="text"?o:e.normalize([o]);{const n=kv(t).reduce((a,s)=>[...a,Wi(e,s)],[]);return e.normalize(n)}}function Wi(e,t){const o=zi(t);switch(o){case 3:return dr(t,o);case 9:return dr(t,o);case 4:{const n=t;if(go(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(go(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw ts(o)}case 5:{const n=t;if(go(n,"i")&&$t(n.i))return e.interpolate(e.list(n.i));if(go(n,"index")&&$t(n.index))return e.interpolate(e.list(n.index));throw ts(o)}case 6:{const n=t,a=xv(n),s=Lv(n);return e.linked(Wi(e,s),a?Wi(e,a):void 0,e.type)}case 7:return dr(t,o);case 8:return dr(t,o);default:throw new Error(`unhandled node on format message part: ${o}`)}}const fd=e=>e;let la=nt();function hd(e,t={}){let o=!1;const n=t.onError||Y0;return t.onError=a=>{o=!0,n(a)},{...$v(e,t),detectError:o}}const l1=(e,t)=>{if(!Le(e))throw Po(ho.NOT_SUPPORT_NON_STRING_MESSAGE);{Ue(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||fd)(e),a=la[n];if(a)return a;const{code:s,detectError:r}=hd(e,t),i=new Function(`return ${s}`)();return r?i:la[n]=i}};function c1(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&Le(e)){Ue(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||fd)(e),a=la[n];if(a)return a;const{ast:s,detectError:r}=hd(e,{...t,location:!1,jit:!0}),i=qi(s);return r?i:la[n]=i}else{const o=e.cacheKey;if(o){const n=la[o];return n||(la[o]=qi(e))}else return qi(e)}}const md=()=>"",so=e=>it(e);function bd(e,...t){const{fallbackFormat:o,postTranslation:n,unresolving:a,messageCompiler:s,fallbackLocale:r,messages:i}=e,[l,c]=Yi(...t),u=Ue(c.missingWarn)?c.missingWarn:e.missingWarn,p=Ue(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,d=Ue(c.escapeParameter)?c.escapeParameter:e.escapeParameter,A=!!c.resolvedMessage,k=Le(c.default)||Ue(c.default)?Ue(c.default)?s?l:()=>l:c.default:o?s?l:()=>l:"",f=o||k!=="",w=Ui(e,c);d&&u1(c);let[y,h,$]=A?[l,w,i[w]||nt()]:$d(e,l,w,r,p,u),x=y,E=l;if(!A&&!(Le(x)||So(x)||so(x))&&f&&(x=k,E=x),!A&&(!(Le(x)||So(x)||so(x))||!Le(h)))return a?gr:l;let m=!1;const b=()=>{m=!0},g=so(x)?x:yd(e,l,h,x,E,b);if(m)return x;const _=g1(e,h,$,c),T=jv(_),B=p1(e,g,T);let V=n?n(B,l):B;if(d&&Le(V)&&(V=D0(V)),__INTLIFY_PROD_DEVTOOLS__){const j={timestamp:Date.now(),key:Le(l)?l:so(x)?x.key:"",locale:h||(so(x)?x.locale:""),format:Le(x)?x:so(x)?x.source:"",message:V};j.meta=Tt({},e.__meta,o1()||{}),Vv(j)}return V}function u1(e){dt(e.list)?e.list=e.list.map(t=>Le(t)?Tp(t):t):Xe(e.named)&&Object.keys(e.named).forEach(t=>{Le(e.named[t])&&(e.named[t]=Tp(e.named[t]))})}function $d(e,t,o,n,a,s){const{messages:r,onWarn:i,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,o);let p=nt(),d,A=null;const k="translate";for(let f=0;fn;return c.locale=o,c.key=t,c}const l=r(n,d1(e,o,a,n,i,s));return l.locale=o,l.key=t,l.source=n,l}function p1(e,t,o){return t(o)}function Yi(...e){const[t,o,n]=e,a=nt();if(!Le(t)&&!$t(t)&&!so(t)&&!So(t))throw Po(ho.INVALID_ARGUMENT);const s=$t(t)?String(t):(so(t),t);return $t(o)?a.plural=o:Le(o)?a.default=o:je(o)&&!ir(o)?a.named=o:dt(o)&&(a.list=o),$t(n)?a.plural=n:Le(n)?a.default=n:je(n)&&Tt(a,n),[s,a]}function d1(e,t,o,n,a,s){return{locale:t,key:o,warnHtmlMessage:a,onError:r=>{throw s&&s(r),r},onCacheKey:r=>M0(t,o,r)}}function g1(e,t,o,n){const{modifiers:a,pluralRules:s,messageResolver:r,fallbackLocale:i,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,d={locale:t,modifiers:a,pluralRules:s,messages:A=>{let k=r(o,A);if(k==null&&u){const[,,f]=$d(u,A,t,i,l,c);k=r(f,A)}if(Le(k)||So(k)){let f=!1;const y=yd(e,A,t,k,A,()=>{f=!0});return f?md:y}else return so(k)?k:md}};return e.processor&&(d.processor=e.processor),n.list&&(d.list=n.list),n.named&&(d.named=n.named),$t(n.plural)&&(d.pluralIndex=n.plural),d}function _d(e,...t){const{datetimeFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__datetimeFormatters:i}=e,[l,c,u,p]=Xi(...t),d=Ue(u.missingWarn)?u.missingWarn:e.missingWarn;Ue(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const A=!!u.part,k=Ui(e,u),f=r(e,a,k);if(!Le(l)||l==="")return new Intl.DateTimeFormat(k,p).format(c);let w={},y,h=null;const $="datetime format";for(let m=0;m{vd.includes(l)?r[l]=o[l]:s[l]=o[l]}),Le(n)?s.locale=n:je(n)&&(r=n),je(a)&&(r=a),[s.key||"",i,s,r]}function wd(e,t,o){const n=e;for(const a in o){const s=`${t}__${a}`;n.__datetimeFormatters.has(s)&&n.__datetimeFormatters.delete(s)}}function kd(e,...t){const{numberFormats:o,unresolving:n,fallbackLocale:a,onWarn:s,localeFallbacker:r}=e,{__numberFormatters:i}=e,[l,c,u,p]=Zi(...t),d=Ue(u.missingWarn)?u.missingWarn:e.missingWarn;Ue(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const A=!!u.part,k=Ui(e,u),f=r(e,a,k);if(!Le(l)||l==="")return new Intl.NumberFormat(k,p).format(c);let w={},y,h=null;const $="number format";for(let m=0;m{xd.includes(l)?r[l]=o[l]:s[l]=o[l]}),Le(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)}}yv();/*! * vue-i18n v9.14.5 * (c) 2025 kazuya kawaguchi * Released under the MIT License. - */const d1="9.14.5";function g1(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Xo().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Xo().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Xo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Xo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Xo().__INTLIFY_PROD_DEVTOOLS__=!1)}const f1=Kv.__EXTEND_POINT__,Jo=lr(f1);Jo(),Jo(),Jo(),Jo(),Jo(),Jo(),Jo(),Jo(),Jo();const Ad=ho.__EXTEND_POINT__,Vt=lr(Ad),wt={UNEXPECTED_RETURN_TYPE:Ad,INVALID_ARGUMENT:Vt(),MUST_BE_CALL_SETUP_TOP:Vt(),NOT_INSTALLED:Vt(),NOT_AVAILABLE_IN_LEGACY_MODE:Vt(),REQUIRED_VALUE:Vt(),INVALID_VALUE:Vt(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Vt(),NOT_INSTALLED_WITH_PROVIDE:Vt(),UNEXPECTED_ERROR:Vt(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Vt(),BRIDGE_SUPPORT_VUE_2_ONLY:Vt(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Vt(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Vt(),__EXTEND_POINT__:Vt()};function Lt(e,...t){return na(e,null,void 0)}const Ji=dn("__translateVNode"),Qi=dn("__datetimeParts"),el=dn("__numberParts"),Sd=dn("__setPluralRules"),Pd=dn("__injectWithOption"),tl=dn("__dispose");function as(e){if(!Xe(e)||So(e))return e;for(const t in e)if(go(e,t))if(!t.includes("."))Xe(e[t])&&as(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(),ur(c,r[l])):ur(c,r)}else Ae(i)&&ur(JSON.parse(i),r)}),a==null&&s)for(const i in r)go(r,i)&&as(r[i]);return r}function Cd(e){return e.type}function Ed(e,t,o){let n=Xe(t.messages)?t.messages:nt();"__i18nGlobal"in o&&(n=fr(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(s=>{e.mergeLocaleMessage(s,n[s])});{if(Xe(t.datetimeFormats)){const s=Object.keys(t.datetimeFormats);s.length&&s.forEach(r=>{e.mergeDateTimeFormat(r,t.datetimeFormats[r])})}if(Xe(t.numberFormats)){const s=Object.keys(t.numberFormats);s.length&&s.forEach(r=>{e.mergeNumberFormat(r,t.numberFormats[r])})}}}function Td(e){return et(Ua,null,e,0)}const Nd="__INTLIFY_META__",Rd=()=>[],h1=()=>!1;let Md=0;function Fd(e){return(t,o,n,a)=>e(o,n,po()||void 0,a)}const m1=()=>{const e=po();let t=null;return e&&(t=Cd(e)[Nd])?{[Nd]:t}:null};function ol(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,s=e.flatJson,r=rr?de:Ea,i=!!e.translateExistCompatible;let l=Ue(e.inheritLocale)?e.inheritLocale:!0;const c=r(o&&l?o.locale.value:Ae(e.locale)?e.locale:ra),u=r(o&&l?o.fallbackLocale.value:Ae(e.fallbackLocale)||dt(e.fallbackLocale)||je(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),p=r(fr(c.value,e)),d=r(je(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),A=r(je(e.numberFormats)?e.numberFormats:{[c.value]:{}});let w=o?o.missingWarn:Ue(e.missingWarn)||gn(e.missingWarn)?e.missingWarn:!0,f=o?o.fallbackWarn:Ue(e.fallbackWarn)||gn(e.fallbackWarn)?e.fallbackWarn:!0,v=o?o.fallbackRoot:Ue(e.fallbackRoot)?e.fallbackRoot:!0,y=!!e.fallbackFormat,h=it(e.missing)?e.missing:null,$=it(e.missing)?Fd(e.missing):null,x=it(e.postTranslation)?e.postTranslation:null,E=o?o.warnHtmlMessage:Ue(e.warnHtmlMessage)?e.warnHtmlMessage:!0,m=!!e.escapeParameter;const b=o?o.modifiers:je(e.modifiers)?e.modifiers:{};let g=e.pluralRules||o&&o.pluralRules,k;k=(()=>{a&&pd(null);const Y={version:d1,locale:c.value,fallbackLocale:u.value,messages:p.value,modifiers:b,pluralRules:g,missing:$===null?void 0:$,missingWarn:w,fallbackWarn:f,fallbackFormat:y,unresolving:!0,postTranslation:x===null?void 0:x,warnHtmlMessage:E,escapeParameter:m,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};Y.datetimeFormats=d.value,Y.numberFormats=A.value,Y.__datetimeFormatters=je(k)?k.__datetimeFormatters:void 0,Y.__numberFormatters=je(k)?k.__numberFormatters:void 0;const re=o1(Y);return a&&pd(re),re})(),ns(k,c.value,u.value);function O(){return[c.value,u.value,p.value,d.value,A.value]}const V=ee({get:()=>c.value,set:Y=>{c.value=Y,k.locale=c.value}}),U=ee({get:()=>u.value,set:Y=>{u.value=Y,k.fallbackLocale=u.value,ns(k,c.value,Y)}}),G=ee(()=>p.value),C=ee(()=>d.value),L=ee(()=>A.value);function F(){return it(x)?x:null}function j(Y){x=Y,k.postTranslation=Y}function K(){return h}function J(Y){Y!==null&&($=Fd(Y)),h=Y,k.missing=$}const ce=(Y,re,ve,Ne,He,lt)=>{O();let tt;try{__INTLIFY_PROD_DEVTOOLS__,a||(k.fallbackContext=o?t1():void 0),tt=Y(k)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(k.fallbackContext=void 0)}if(ve!=="translate exists"&&$t(tt)&&tt===gr||ve==="translate exists"&&!tt){const[q,ne]=re();return o&&v?Ne(o):He(q)}else{if(lt(tt))return tt;throw Lt(wt.UNEXPECTED_RETURN_TYPE)}};function H(...Y){return ce(re=>Reflect.apply(bd,null,[re,...Y]),()=>Yi(...Y),"translate",re=>Reflect.apply(re.t,re,[...Y]),re=>re,re=>Ae(re))}function $e(...Y){const[re,ve,Ne]=Y;if(Ne&&!Xe(Ne))throw Lt(wt.INVALID_ARGUMENT);return H(re,ve,Tt({resolvedMessage:!0},Ne||{}))}function _e(...Y){return ce(re=>Reflect.apply(_d,null,[re,...Y]),()=>Xi(...Y),"datetime format",re=>Reflect.apply(re.d,re,[...Y]),()=>nd,re=>Ae(re))}function he(...Y){return ce(re=>Reflect.apply(kd,null,[re,...Y]),()=>Zi(...Y),"number format",re=>Reflect.apply(re.n,re,[...Y]),()=>nd,re=>Ae(re))}function ye(Y){return Y.map(re=>Ae(re)||$t(re)||Ue(re)?Td(String(re)):re)}const ie={normalize:ye,interpolate:Y=>Y,type:"vnode"};function we(...Y){return ce(re=>{let ve;const Ne=re;try{Ne.processor=ie,ve=Reflect.apply(bd,null,[Ne,...Y])}finally{Ne.processor=null}return ve},()=>Yi(...Y),"translate",re=>re[Ji](...Y),re=>[Td(re)],re=>dt(re))}function ge(...Y){return ce(re=>Reflect.apply(kd,null,[re,...Y]),()=>Zi(...Y),"number format",re=>re[el](...Y),Rd,re=>Ae(re)||dt(re))}function Se(...Y){return ce(re=>Reflect.apply(_d,null,[re,...Y]),()=>Xi(...Y),"datetime format",re=>re[Qi](...Y),Rd,re=>Ae(re)||dt(re))}function P(Y){g=Y,k.pluralRules=g}function D(Y,re){return ce(()=>{if(!Y)return!1;const ve=Ae(re)?re:c.value,Ne=Q(ve),He=k.messageResolver(Ne,Y);return i?He!=null:So(He)||so(He)||Ae(He)},()=>[Y],"translate exists",ve=>Reflect.apply(ve.te,ve,[Y,re]),h1,ve=>Ue(ve))}function I(Y){let re=null;const ve=td(k,u.value,c.value);for(let Ne=0;Ne{l&&(c.value=Y,k.locale=Y,ns(k,c.value,u.value))}),Fe(o.fallbackLocale,Y=>{l&&(u.value=Y,k.fallbackLocale=Y,ns(k,c.value,u.value))}));const le={id:Md,locale:V,fallbackLocale:U,get inheritLocale(){return l},set inheritLocale(Y){l=Y,Y&&o&&(c.value=o.locale.value,u.value=o.fallbackLocale.value,ns(k,c.value,u.value))},get availableLocales(){return Object.keys(p.value).sort()},messages:G,get modifiers(){return b},get pluralRules(){return g||{}},get isGlobal(){return a},get missingWarn(){return w},set missingWarn(Y){w=Y,k.missingWarn=w},get fallbackWarn(){return f},set fallbackWarn(Y){f=Y,k.fallbackWarn=f},get fallbackRoot(){return v},set fallbackRoot(Y){v=Y},get fallbackFormat(){return y},set fallbackFormat(Y){y=Y,k.fallbackFormat=y},get warnHtmlMessage(){return E},set warnHtmlMessage(Y){E=Y,k.warnHtmlMessage=Y},get escapeParameter(){return m},set escapeParameter(Y){m=Y,k.escapeParameter=Y},t:H,getLocaleMessage:Q,setLocaleMessage:z,mergeLocaleMessage:pe,getPostTranslationHandler:F,setPostTranslationHandler:j,getMissingHandler:K,setMissingHandler:J,[Sd]:P};return le.datetimeFormats=C,le.numberFormats=L,le.rt=$e,le.te=D,le.tm=X,le.d=_e,le.n=he,le.getDateTimeFormat=oe,le.setDateTimeFormat=_,le.mergeDateTimeFormat=S,le.getNumberFormat=B,le.setNumberFormat=te,le.mergeNumberFormat=me,le[Pd]=n,le[Ji]=we,le[Qi]=Se,le[el]=ge,le}function b1(e){const t=Ae(e.locale)?e.locale:ra,o=Ae(e.fallbackLocale)||dt(e.fallbackLocale)||je(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=it(e.missing)?e.missing:void 0,a=Ue(e.silentTranslationWarn)||gn(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,s=Ue(e.silentFallbackWarn)||gn(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,r=Ue(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=je(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=it(e.postTranslation)?e.postTranslation:void 0,p=Ae(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,d=!!e.escapeParameterHtml,A=Ue(e.sync)?e.sync:!0;let w=e.messages;if(je(e.sharedMessages)){const m=e.sharedMessages;w=Object.keys(m).reduce((g,k)=>{const T=g[k]||(g[k]={});return Tt(T,m[k]),g},w||{})}const{__i18n:f,__root:v,__injectWithOption:y}=e,h=e.datetimeFormats,$=e.numberFormats,x=e.flatJson,E=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:w,flatJson:x,datetimeFormats:h,numberFormats:$,missing:n,missingWarn:a,fallbackWarn:s,fallbackRoot:r,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:p,escapeParameter:d,messageResolver:e.messageResolver,inheritLocale:A,translateExistCompatible:E,__i18n:f,__root:v,__injectWithOption:y}}function nl(e={},t){{const o=ol(b1(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 Ue(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(s){o.missingWarn=Ue(s)?!s:s},get silentFallbackWarn(){return Ue(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(s){o.fallbackWarn=Ue(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,p=null;if(!Ae(r))throw Lt(wt.INVALID_ARGUMENT);const d=r;return Ae(i)?c.locale=i:dt(i)?u=i:je(i)&&(p=i),dt(l)?u=l:je(l)&&(p=l),Reflect.apply(o.t,o,[d,u||p||{},c])},rt(...s){return Reflect.apply(o.rt,o,[...s])},tc(...s){const[r,i,l]=s,c={plural:1};let u=null,p=null;if(!Ae(r))throw Lt(wt.INVALID_ARGUMENT);const d=r;return Ae(i)?c.locale=i:$t(i)?c.plural=i:dt(i)?u=i:je(i)&&(p=i),Ae(l)?c.locale=l:dt(l)?u=l:je(l)&&(p=l),Reflect.apply(o.t,o,[d,u||p||{},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 al={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function $1({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===ze?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},nt())}function Id(e){return ze}const Od=Oa({name:"i18n-t",props:Tt({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>$t(e)||!isNaN(e)}},al),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||mt({useScope:e.scope,__useComponent:!0});return()=>{const s=Object.keys(o).filter(p=>p!=="_"),r=nt();e.locale&&(r.locale=e.locale),e.plural!==void 0&&(r.plural=Ae(e.plural)?+e.plural:e.plural);const i=$1(t,s),l=a[Ji](e.keypath,i,r),c=Tt(nt(),n),u=Ae(e.tag)||Xe(e.tag)?e.tag:Id();return Ai(u,c,l)}}});function y1(e){return dt(e)&&!Ae(e[0])}function Dd(e,t,o,n){const{slots:a,attrs:s}=t;return()=>{const r={part:!0};let i=nt();e.locale&&(r.locale=e.locale),Ae(e.format)?r.key=e.format:Xe(e.format)&&(Ae(e.format.key)&&(r.key=e.format.key),i=Object.keys(e.format).reduce((d,A)=>o.includes(A)?Tt(nt(),d,{[A]:e.format[A]}):d,nt()));const l=n(e.value,r,i);let c=[r.key];dt(l)?c=l.map((d,A)=>{const w=a[d.type],f=w?w({[d.type]:d.value,index:A,parts:l}):[d.value];return y1(f)&&(f[0].key=`${d.type}-${A}`),f}):Ae(l)&&(c=[l]);const u=Tt(nt(),s),p=Ae(e.tag)||Xe(e.tag)?e.tag:Id();return Ai(p,u,c)}}const Bd=Oa({name:"i18n-n",props:Tt({value:{type:Number,required:!0},format:{type:[String,Object]}},al),setup(e,t){const o=e.i18n||mt({useScope:e.scope,__useComponent:!0});return Dd(e,t,xd,(...n)=>o[el](...n))}}),Gd=Oa({name:"i18n-d",props:Tt({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},al),setup(e,t){const o=e.i18n||mt({useScope:e.scope,__useComponent:!0});return Dd(e,t,vd,(...n)=>o[Qi](...n))}});function _1(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 v1(e){const t=r=>{const{instance:i,modifiers:l,value:c}=r;if(!i||!i.$)throw Lt(wt.UNEXPECTED_ERROR);const u=_1(e,i.$),p=jd(c);return[Reflect.apply(u.t,u,[...zd(p)]),u]};return{created:(r,i)=>{const[l,c]=t(i);rr&&e.global===c&&(r.__i18nWatcher=Fe(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),r.__composer=c,r.textContent=l},unmounted:r=>{rr&&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=jd(i);r.textContent=Reflect.apply(l.t,l,[...zd(c)])}},getSSRProps:r=>{const[i]=t(r);return{textContent:i}}}}function jd(e){if(Ae(e))return{path:e};if(je(e)){if(!("path"in e))throw Lt(wt.REQUIRED_VALUE,"path");return e}else throw Lt(wt.INVALID_VALUE)}function zd(e){const{path:t,locale:o,args:n,choice:a,plural:s}=e,r={},i=n||{};return Ae(o)&&(r.locale=o),$t(a)&&(r.plural=a),$t(s)&&(r.plural=s),[t,i,r]}function w1(e,t,...o){const n=je(o[0])?o[0]:{},a=!!n.useI18nComponentName;(Ue(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":Od.name,"I18nT"].forEach(r=>e.component(r,Od)),[Bd.name,"I18nN"].forEach(r=>e.component(r,Bd)),[Gd.name,"I18nD"].forEach(r=>e.component(r,Gd))),e.directive("t",v1(t))}function k1(e,t,o){return{beforeCreate(){const n=po();if(!n)throw Lt(wt.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=Ud(e,s);else{s.__injectWithOption=!0,s.__extender=o.__vueI18nExtend,this.$i18n=nl(s);const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=Ud(e,a);else{this.$i18n=nl({__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&&Ed(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=po();if(!n)throw Lt(wt.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 Ud(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[Sd](t.pluralizationRules||e.pluralizationRules);const o=fr(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 x1=dn("global-vue-i18n");function L1(e={},t){const o=__VUE_I18N_LEGACY_API__&&Ue(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=Ue(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,s=new Map,[r,i]=A1(e,o),l=dn("");function c(d){return s.get(d)||null}function u(d,A){s.set(d,A)}function p(d){s.delete(d)}{const d={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(A,...w){if(A.__VUE_I18N_SYMBOL__=l,A.provide(A.__VUE_I18N_SYMBOL__,d),je(w[0])){const y=w[0];d.__composerExtend=y.__composerExtend,d.__vueI18nExtend=y.__vueI18nExtend}let f=null;!o&&n&&(f=F1(A,d.global)),__VUE_I18N_FULL_INSTALL__&&w1(A,d,...w),__VUE_I18N_LEGACY_API__&&o&&A.mixin(k1(i,i.__composer,d));const v=A.unmount;A.unmount=()=>{f&&f(),d.dispose(),v()}},get global(){return i},dispose(){r.stop()},__instances:s,__getInstance:c,__setInstance:u,__deleteInstance:p};return d}}function mt(e={}){const t=po();if(t==null)throw Lt(wt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Lt(wt.NOT_INSTALLED);const o=S1(t),n=C1(o),a=Cd(t),s=P1(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw Lt(wt.NOT_AVAILABLE_IN_LEGACY_MODE);return R1(t,s,n,e)}if(s==="global")return Ed(n,e,a),n;if(s==="parent"){let l=E1(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=ol(l),r.__composerExtend&&(i[tl]=r.__composerExtend(i)),N1(r,t,i),r.__setInstance(t,i)}return i}function A1(e,t,o){const n=Zr();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>nl(e)):n.run(()=>ol(e));if(a==null)throw Lt(wt.UNEXPECTED_ERROR);return[n,a]}}function S1(e){{const t=Te(e.isCE?x1:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Lt(e.isCE?wt.NOT_INSTALLED_WITH_PROVIDE:wt.UNEXPECTED_ERROR);return t}}function P1(e,t){return ir(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function C1(e){return e.mode==="composition"?e.global:e.global.__composer}function E1(e,t,o=!1){let n=null;const a=t.root;let s=T1(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 T1(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function N1(e,t,o){ao(()=>{},t),Ga(()=>{const n=o;e.__deleteInstance(t);const a=n[tl];a&&(a(),delete n[tl])},t)}function R1(e,t,o,n={}){const a=t==="local",s=Ea(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw Lt(wt.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const r=Ue(n.inheritLocale)?n.inheritLocale:!Ae(n.locale),i=de(!a||r?o.locale.value:Ae(n.locale)?n.locale:ra),l=de(!a||r?o.fallbackLocale.value:Ae(n.fallbackLocale)||dt(n.fallbackLocale)||je(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),c=de(fr(i.value,n)),u=de(je(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),p=de(je(n.numberFormats)?n.numberFormats:{[i.value]:{}}),d=a?o.missingWarn:Ue(n.missingWarn)||gn(n.missingWarn)?n.missingWarn:!0,A=a?o.fallbackWarn:Ue(n.fallbackWarn)||gn(n.fallbackWarn)?n.fallbackWarn:!0,w=a?o.fallbackRoot:Ue(n.fallbackRoot)?n.fallbackRoot:!0,f=!!n.fallbackFormat,v=it(n.missing)?n.missing:null,y=it(n.postTranslation)?n.postTranslation:null,h=a?o.warnHtmlMessage:Ue(n.warnHtmlMessage)?n.warnHtmlMessage:!0,$=!!n.escapeParameter,x=a?o.modifiers:je(n.modifiers)?n.modifiers:{},E=n.pluralRules||a&&o.pluralRules;function m(){return[i.value,l.value,c.value,u.value,p.value]}const b=ee({get:()=>s.value?s.value.locale.value:i.value,set:I=>{s.value&&(s.value.locale.value=I),i.value=I}}),g=ee({get:()=>s.value?s.value.fallbackLocale.value:l.value,set:I=>{s.value&&(s.value.fallbackLocale.value=I),l.value=I}}),k=ee(()=>s.value?s.value.messages.value:c.value),T=ee(()=>u.value),O=ee(()=>p.value);function V(){return s.value?s.value.getPostTranslationHandler():y}function U(I){s.value&&s.value.setPostTranslationHandler(I)}function G(){return s.value?s.value.getMissingHandler():v}function C(I){s.value&&s.value.setMissingHandler(I)}function L(I){return m(),I()}function F(...I){return s.value?L(()=>Reflect.apply(s.value.t,null,[...I])):L(()=>"")}function j(...I){return s.value?Reflect.apply(s.value.rt,null,[...I]):""}function K(...I){return s.value?L(()=>Reflect.apply(s.value.d,null,[...I])):L(()=>"")}function J(...I){return s.value?L(()=>Reflect.apply(s.value.n,null,[...I])):L(()=>"")}function ce(I){return s.value?s.value.tm(I):{}}function H(I,X){return s.value?s.value.te(I,X):!1}function $e(I){return s.value?s.value.getLocaleMessage(I):{}}function _e(I,X){s.value&&(s.value.setLocaleMessage(I,X),c.value[I]=X)}function he(I,X){s.value&&s.value.mergeLocaleMessage(I,X)}function ye(I){return s.value?s.value.getDateTimeFormat(I):{}}function fe(I,X){s.value&&(s.value.setDateTimeFormat(I,X),u.value[I]=X)}function ie(I,X){s.value&&s.value.mergeDateTimeFormat(I,X)}function we(I){return s.value?s.value.getNumberFormat(I):{}}function ge(I,X){s.value&&(s.value.setNumberFormat(I,X),p.value[I]=X)}function Se(I,X){s.value&&s.value.mergeNumberFormat(I,X)}const P={get id(){return s.value?s.value.id:-1},locale:b,fallbackLocale:g,messages:k,datetimeFormats:T,numberFormats:O,get inheritLocale(){return s.value?s.value.inheritLocale:r},set inheritLocale(I){s.value&&(s.value.inheritLocale=I)},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:E},get isGlobal(){return s.value?s.value.isGlobal:!1},get missingWarn(){return s.value?s.value.missingWarn:d},set missingWarn(I){s.value&&(s.value.missingWarn=I)},get fallbackWarn(){return s.value?s.value.fallbackWarn:A},set fallbackWarn(I){s.value&&(s.value.missingWarn=I)},get fallbackRoot(){return s.value?s.value.fallbackRoot:w},set fallbackRoot(I){s.value&&(s.value.fallbackRoot=I)},get fallbackFormat(){return s.value?s.value.fallbackFormat:f},set fallbackFormat(I){s.value&&(s.value.fallbackFormat=I)},get warnHtmlMessage(){return s.value?s.value.warnHtmlMessage:h},set warnHtmlMessage(I){s.value&&(s.value.warnHtmlMessage=I)},get escapeParameter(){return s.value?s.value.escapeParameter:$},set escapeParameter(I){s.value&&(s.value.escapeParameter=I)},t:F,getPostTranslationHandler:V,setPostTranslationHandler:U,getMissingHandler:G,setMissingHandler:C,rt:j,d:K,n:J,tm:ce,te:H,getLocaleMessage:$e,setLocaleMessage:_e,mergeLocaleMessage:he,getDateTimeFormat:ye,setDateTimeFormat:fe,mergeDateTimeFormat:ie,getNumberFormat:we,setNumberFormat:ge,mergeNumberFormat:Se};function D(I){I.locale.value=i.value,I.fallbackLocale.value=l.value,Object.keys(c.value).forEach(X=>{I.mergeLocaleMessage(X,c.value[X])}),Object.keys(u.value).forEach(X=>{I.mergeDateTimeFormat(X,u.value[X])}),Object.keys(p.value).forEach(X=>{I.mergeNumberFormat(X,p.value[X])}),I.escapeParameter=$,I.fallbackFormat=f,I.fallbackRoot=w,I.fallbackWarn=A,I.missingWarn=d,I.warnHtmlMessage=h}return fu(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw Lt(wt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const I=s.value=e.proxy.$i18n.__composer;t==="global"?(i.value=I.locale.value,l.value=I.fallbackLocale.value,c.value=I.messages.value,u.value=I.datetimeFormats.value,p.value=I.numberFormats.value):a&&D(I)}),P}const M1=["locale","fallbackLocale","availableLocales"],Vd=["t","rt","d","n","tm","te"];function F1(e,t){const o=Object.create(null);return M1.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s)throw Lt(wt.UNEXPECTED_ERROR);const r=ut(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,Vd.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s||!s.value)throw Lt(wt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,s)}),()=>{delete e.config.globalProperties.$i18n,Vd.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(g1(),__INTLIFY_JIT_COMPILATION__?rd(i1):rd(r1),Zv(Tv),Jv(td),__INTLIFY_PROD_DEVTOOLS__){const e=Xo();e.__INTLIFY__=!0,Gv(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const I1=Object.assign({"./locales/ar/allPeopleGroups.json":Db,"./locales/ar/aria.json":Bb,"./locales/ar/buttons.json":Gb,"./locales/ar/connectivity.json":jb,"./locales/ar/controls.json":zb,"./locales/ar/dashboard.json":Ub,"./locales/ar/detail.json":Vb,"./locales/ar/gospel.json":Kb,"./locales/ar/grid.json":Hb,"./locales/ar/legend.json":qb,"./locales/ar/messages.json":Wb,"./locales/ar/options.json":Yb,"./locales/ar/popup.json":Xb,"./locales/ar/prayerLaps.json":Zb,"./locales/ar/regions.json":Jb,"./locales/ar/search.json":Qb,"./locales/ar/studio.json":e$,"./locales/ar/tabs.json":t$,"./locales/ar/vision.json":o$,"./locales/de/allPeopleGroups.json":n$,"./locales/de/aria.json":a$,"./locales/de/buttons.json":s$,"./locales/de/connectivity.json":r$,"./locales/de/controls.json":i$,"./locales/de/dashboard.json":l$,"./locales/de/detail.json":c$,"./locales/de/gospel.json":u$,"./locales/de/grid.json":p$,"./locales/de/legend.json":d$,"./locales/de/messages.json":g$,"./locales/de/options.json":f$,"./locales/de/popup.json":h$,"./locales/de/prayerLaps.json":m$,"./locales/de/regions.json":b$,"./locales/de/search.json":$$,"./locales/de/studio.json":y$,"./locales/de/tabs.json":_$,"./locales/de/vision.json":v$,"./locales/en/allPeopleGroups.json":w$,"./locales/en/aria.json":k$,"./locales/en/buttons.json":x$,"./locales/en/connectivity.json":L$,"./locales/en/controls.json":A$,"./locales/en/dashboard.json":S$,"./locales/en/detail.json":P$,"./locales/en/gospel.json":C$,"./locales/en/grid.json":E$,"./locales/en/legend.json":T$,"./locales/en/messages.json":N$,"./locales/en/options.json":R$,"./locales/en/popup.json":M$,"./locales/en/prayerLaps.json":F$,"./locales/en/regions.json":I$,"./locales/en/search.json":O$,"./locales/en/studio.json":D$,"./locales/en/tabs.json":B$,"./locales/en/vision.json":G$,"./locales/es/allPeopleGroups.json":j$,"./locales/es/aria.json":z$,"./locales/es/buttons.json":U$,"./locales/es/connectivity.json":V$,"./locales/es/controls.json":K$,"./locales/es/dashboard.json":H$,"./locales/es/detail.json":q$,"./locales/es/gospel.json":W$,"./locales/es/grid.json":Y$,"./locales/es/legend.json":X$,"./locales/es/messages.json":Z$,"./locales/es/options.json":J$,"./locales/es/popup.json":Q$,"./locales/es/prayerLaps.json":ey,"./locales/es/regions.json":ty,"./locales/es/search.json":oy,"./locales/es/studio.json":ny,"./locales/es/tabs.json":ay,"./locales/es/vision.json":sy,"./locales/fr/allPeopleGroups.json":ry,"./locales/fr/aria.json":iy,"./locales/fr/buttons.json":ly,"./locales/fr/connectivity.json":cy,"./locales/fr/controls.json":uy,"./locales/fr/dashboard.json":py,"./locales/fr/detail.json":dy,"./locales/fr/gospel.json":gy,"./locales/fr/grid.json":fy,"./locales/fr/legend.json":hy,"./locales/fr/messages.json":my,"./locales/fr/options.json":by,"./locales/fr/popup.json":$y,"./locales/fr/prayerLaps.json":yy,"./locales/fr/regions.json":_y,"./locales/fr/search.json":vy,"./locales/fr/studio.json":wy,"./locales/fr/tabs.json":ky,"./locales/fr/vision.json":xy,"./locales/hi/allPeopleGroups.json":Ly,"./locales/hi/aria.json":Ay,"./locales/hi/buttons.json":Sy,"./locales/hi/connectivity.json":Py,"./locales/hi/controls.json":Cy,"./locales/hi/dashboard.json":Ey,"./locales/hi/detail.json":Ty,"./locales/hi/gospel.json":Ny,"./locales/hi/grid.json":Ry,"./locales/hi/legend.json":My,"./locales/hi/messages.json":Fy,"./locales/hi/options.json":Iy,"./locales/hi/popup.json":Oy,"./locales/hi/prayerLaps.json":Dy,"./locales/hi/regions.json":By,"./locales/hi/search.json":Gy,"./locales/hi/studio.json":jy,"./locales/hi/tabs.json":zy,"./locales/hi/vision.json":Uy,"./locales/it/allPeopleGroups.json":Vy,"./locales/it/aria.json":Ky,"./locales/it/buttons.json":Hy,"./locales/it/connectivity.json":qy,"./locales/it/controls.json":Wy,"./locales/it/dashboard.json":Yy,"./locales/it/detail.json":Xy,"./locales/it/gospel.json":Zy,"./locales/it/grid.json":Jy,"./locales/it/legend.json":Qy,"./locales/it/messages.json":e_,"./locales/it/options.json":t_,"./locales/it/popup.json":o_,"./locales/it/prayerLaps.json":n_,"./locales/it/regions.json":a_,"./locales/it/search.json":s_,"./locales/it/studio.json":r_,"./locales/it/tabs.json":i_,"./locales/it/vision.json":l_,"./locales/pt/allPeopleGroups.json":c_,"./locales/pt/aria.json":u_,"./locales/pt/buttons.json":p_,"./locales/pt/connectivity.json":d_,"./locales/pt/controls.json":g_,"./locales/pt/dashboard.json":f_,"./locales/pt/detail.json":h_,"./locales/pt/gospel.json":m_,"./locales/pt/grid.json":b_,"./locales/pt/legend.json":$_,"./locales/pt/messages.json":y_,"./locales/pt/options.json":__,"./locales/pt/popup.json":v_,"./locales/pt/prayerLaps.json":w_,"./locales/pt/regions.json":k_,"./locales/pt/search.json":x_,"./locales/pt/studio.json":L_,"./locales/pt/tabs.json":A_,"./locales/pt/vision.json":S_,"./locales/ro/allPeopleGroups.json":P_,"./locales/ro/aria.json":C_,"./locales/ro/buttons.json":E_,"./locales/ro/connectivity.json":T_,"./locales/ro/controls.json":N_,"./locales/ro/dashboard.json":R_,"./locales/ro/detail.json":M_,"./locales/ro/gospel.json":F_,"./locales/ro/grid.json":I_,"./locales/ro/legend.json":O_,"./locales/ro/messages.json":D_,"./locales/ro/options.json":B_,"./locales/ro/popup.json":G_,"./locales/ro/prayerLaps.json":j_,"./locales/ro/regions.json":z_,"./locales/ro/search.json":U_,"./locales/ro/studio.json":V_,"./locales/ro/tabs.json":K_,"./locales/ro/vision.json":H_,"./locales/ru/allPeopleGroups.json":q_,"./locales/ru/aria.json":W_,"./locales/ru/buttons.json":Y_,"./locales/ru/connectivity.json":X_,"./locales/ru/controls.json":Z_,"./locales/ru/dashboard.json":J_,"./locales/ru/detail.json":Q_,"./locales/ru/gospel.json":e0,"./locales/ru/grid.json":t0,"./locales/ru/legend.json":o0,"./locales/ru/messages.json":n0,"./locales/ru/options.json":a0,"./locales/ru/popup.json":s0,"./locales/ru/prayerLaps.json":r0,"./locales/ru/regions.json":i0,"./locales/ru/search.json":l0,"./locales/ru/studio.json":c0,"./locales/ru/tabs.json":u0,"./locales/ru/vision.json":p0,"./locales/zh/allPeopleGroups.json":d0,"./locales/zh/aria.json":g0,"./locales/zh/buttons.json":f0,"./locales/zh/connectivity.json":h0,"./locales/zh/controls.json":m0,"./locales/zh/dashboard.json":b0,"./locales/zh/detail.json":$0,"./locales/zh/gospel.json":y0,"./locales/zh/grid.json":_0,"./locales/zh/legend.json":v0,"./locales/zh/messages.json":w0,"./locales/zh/options.json":k0,"./locales/zh/popup.json":x0,"./locales/zh/prayerLaps.json":L0,"./locales/zh/regions.json":A0,"./locales/zh/search.json":S0,"./locales/zh/studio.json":P0,"./locales/zh/tabs.json":C0,"./locales/zh/vision.json":E0}),la={};for(const[e,t]of Object.entries(I1)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;la[n]??(la[n]={}),la[n][a]=t}const hr=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],O1=new Set(["ar"]);function Kd(){var n;const e=(()=>{try{const a=new URLSearchParams(window.location.search);return(a.get("lang")||a.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}})();if(hr.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return hr.includes(o)?o:"en"}function D1(){const e=Kd();try{O1.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}return L1({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:la,missingWarn:!1,fallbackWarn:!1})}function mr(e,t){const o=a=>{let s=la[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=Kd();return o(n)??o("en")}function kt(e,t){const o=t||B1(e);ao(()=>{var i;const n=po();if(!n)return;const a=(i=n.proxy)==null?void 0:i.$el;if(!a)return;const s=a.getRootNode();if(!(s instanceof ShadowRoot)||s.querySelector(`style[data-shadow-styles="${o}"]`))return;const r=document.createElement("style");r.setAttribute("data-shadow-styles",o),r.textContent=e,s.appendChild(r)})}function B1(e){let t=0;for(let o=0;ot[g]||g,n=()=>!1;try{const g=mt();o=g.t,n=g.te}catch{}const a=Te("uiStore",null),s=Te("profileConfig",null),r=ee(()=>(a==null?void 0:a.theme)==="dark"),i=ee(()=>{var T;const g=(T=s==null?void 0:s.value)==null?void 0:T.pinHintLabel;if(g)return g;const k="Tap a coloured dot — someone still needs prayer";try{return n("messages.pinHint.tapDot")?o("messages.pinHint.tapDot"):k}catch{return k}}),l=de(!1),c=de(null);let u=null,p=null,d=null,A=null,w=null,f=null,v=[],y=null,h=null;function $(){l.value=!1}function x(g,k){var O;let T=g==null?void 0:g.parentElement;for(let V=0;T&&V<12;V++,T=T.parentElement){if(T===k||(O=T.classList)!=null&&O.contains("profile-loader"))return null;let U="";try{U=getComputedStyle(T).position}catch{}if(U&&U!=="static"){const G=T.getBoundingClientRect();if(G.height>=120&&G.width>=160)return T}}return null}function E(g){var T;const k=(T=A==null?void 0:A.querySelector)==null?void 0:T.call(A,".legend-mobile-sheet");if(!k)return 1/0;if(w&&f!==k){try{w.disconnect()}catch{}w=null}if(!w&&typeof ResizeObserver<"u")try{w=new ResizeObserver(()=>m()),w.observe(k),f=k}catch{w=null}try{const O=k.getBoundingClientRect();return!(O.height>16)||!(O.width>16)||g.right<=O.left||O.right<=g.left?1/0:O.top}catch{return 1/0}}function m(){const g=c.value;if(g)try{g.style.removeProperty("--pin-hint-lift");const k=g.getBoundingClientRect();if(!k.height)return;const T=Math.min(window.innerHeight,E(k)),O=Math.round(k.bottom-T);O>0&&g.style.setProperty("--pin-hint-lift",O+8+"px")}catch{}}function b(g){const k=c.value;if(!k||!(g!=null&&g.querySelector))return;let T=0;try{const V=g.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(V){const U=V.getBoundingClientRect(),G=k.parentElement,C=G?G.getBoundingClientRect():null;if(T=C?Math.max(U.height||0,C.bottom-U.top):U.height||0,h!==V&&typeof ResizeObserver<"u"){if(d)try{d.disconnect()}catch{}h=V,d=new ResizeObserver(()=>b(g)),d.observe(V)}}}catch{}const O=Math.min(Math.max(Math.ceil(T)||20,20),72);k.style.setProperty("--pin-hint-attrib-clear",O+"px"),m()}return ao(()=>{var O,V,U;const g=po(),k=(U=(V=(O=g==null?void 0:g.proxy)==null?void 0:O.$el)==null?void 0:V.getRootNode)==null?void 0:U.call(V);if(!k||typeof k.querySelector!="function")return;A=k;let T=0;u=setInterval(()=>{T++;const G=k.querySelector("canvas");G?(clearInterval(u),u=null,l.value=!0,Mt(()=>{const C=x(G,k),L=c.value;if(C&&L&&L.parentElement!==C)try{C.appendChild(L),p=C}catch{}b(k),m(),v.push(setTimeout(m,1200),setTimeout(m,3e3),setTimeout(m,6e3));try{const F=c.value&&c.value.offsetParent||null;if(F&&typeof ResizeObserver<"u"){if(y)try{y.disconnect()}catch{}y=new ResizeObserver(()=>m()),y.observe(F)}}catch{}})):T>40&&(clearInterval(u),u=null)},300)}),qt(()=>{var g;if(u&&clearInterval(u),d){try{d.disconnect()}catch{}d=null}if(h=null,y){try{y.disconnect()}catch{}y=null}if(w){try{w.disconnect()}catch{}w=null}f=null;for(const k of v)clearTimeout(k);if(v=[],A=null,p&&((g=c.value)==null?void 0:g.parentElement)===p)try{p.removeChild(c.value)}catch{}p=null}),kt(` + */const f1="9.14.5";function h1(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Xo().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Xo().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Xo().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Xo().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Xo().__INTLIFY_PROD_DEVTOOLS__=!1)}const m1=qv.__EXTEND_POINT__,Jo=lr(m1);Jo(),Jo(),Jo(),Jo(),Jo(),Jo(),Jo(),Jo(),Jo();const Ad=ho.__EXTEND_POINT__,Vt=lr(Ad),wt={UNEXPECTED_RETURN_TYPE:Ad,INVALID_ARGUMENT:Vt(),MUST_BE_CALL_SETUP_TOP:Vt(),NOT_INSTALLED:Vt(),NOT_AVAILABLE_IN_LEGACY_MODE:Vt(),REQUIRED_VALUE:Vt(),INVALID_VALUE:Vt(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Vt(),NOT_INSTALLED_WITH_PROVIDE:Vt(),UNEXPECTED_ERROR:Vt(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Vt(),BRIDGE_SUPPORT_VUE_2_ONLY:Vt(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Vt(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Vt(),__EXTEND_POINT__:Vt()};function Lt(e,...t){return aa(e,null,void 0)}const Ji=dn("__translateVNode"),Qi=dn("__datetimeParts"),el=dn("__numberParts"),Sd=dn("__setPluralRules"),Pd=dn("__injectWithOption"),tl=dn("__dispose");function as(e){if(!Xe(e)||So(e))return e;for(const t in e)if(go(e,t))if(!t.includes("."))Xe(e[t])&&as(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(),ur(c,r[l])):ur(c,r)}else Le(i)&&ur(JSON.parse(i),r)}),a==null&&s)for(const i in r)go(r,i)&&as(r[i]);return r}function Cd(e){return e.type}function Ed(e,t,o){let n=Xe(t.messages)?t.messages:nt();"__i18nGlobal"in o&&(n=fr(e.locale.value,{messages:n,__i18n:o.__i18nGlobal}));const a=Object.keys(n);a.length&&a.forEach(s=>{e.mergeLocaleMessage(s,n[s])});{if(Xe(t.datetimeFormats)){const s=Object.keys(t.datetimeFormats);s.length&&s.forEach(r=>{e.mergeDateTimeFormat(r,t.datetimeFormats[r])})}if(Xe(t.numberFormats)){const s=Object.keys(t.numberFormats);s.length&&s.forEach(r=>{e.mergeNumberFormat(r,t.numberFormats[r])})}}}function Td(e){return et(Ua,null,e,0)}const Nd="__INTLIFY_META__",Rd=()=>[],b1=()=>!1;let Md=0;function Fd(e){return(t,o,n,a)=>e(o,n,po()||void 0,a)}const $1=()=>{const e=po();let t=null;return e&&(t=Cd(e)[Nd])?{[Nd]:t}:null};function ol(e={},t){const{__root:o,__injectWithOption:n}=e,a=o===void 0,s=e.flatJson,r=rr?ge:Ea,i=!!e.translateExistCompatible;let l=Ue(e.inheritLocale)?e.inheritLocale:!0;const c=r(o&&l?o.locale.value:Le(e.locale)?e.locale:ia),u=r(o&&l?o.fallbackLocale.value:Le(e.fallbackLocale)||dt(e.fallbackLocale)||je(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),p=r(fr(c.value,e)),d=r(je(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),A=r(je(e.numberFormats)?e.numberFormats:{[c.value]:{}});let k=o?o.missingWarn:Ue(e.missingWarn)||gn(e.missingWarn)?e.missingWarn:!0,f=o?o.fallbackWarn:Ue(e.fallbackWarn)||gn(e.fallbackWarn)?e.fallbackWarn:!0,w=o?o.fallbackRoot:Ue(e.fallbackRoot)?e.fallbackRoot:!0,y=!!e.fallbackFormat,h=it(e.missing)?e.missing:null,$=it(e.missing)?Fd(e.missing):null,x=it(e.postTranslation)?e.postTranslation:null,E=o?o.warnHtmlMessage:Ue(e.warnHtmlMessage)?e.warnHtmlMessage:!0,m=!!e.escapeParameter;const b=o?o.modifiers:je(e.modifiers)?e.modifiers:{};let g=e.pluralRules||o&&o.pluralRules,_;_=(()=>{a&&pd(null);const Y={version:f1,locale:c.value,fallbackLocale:u.value,messages:p.value,modifiers:b,pluralRules:g,missing:$===null?void 0:$,missingWarn:k,fallbackWarn:f,fallbackFormat:y,unresolving:!0,postTranslation:x===null?void 0:x,warnHtmlMessage:E,escapeParameter:m,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};Y.datetimeFormats=d.value,Y.numberFormats=A.value,Y.__datetimeFormatters=je(_)?_.__datetimeFormatters:void 0,Y.__numberFormatters=je(_)?_.__numberFormatters:void 0;const ie=a1(Y);return a&&pd(ie),ie})(),ns(_,c.value,u.value);function B(){return[c.value,u.value,p.value,d.value,A.value]}const V=ee({get:()=>c.value,set:Y=>{c.value=Y,_.locale=c.value}}),j=ee({get:()=>u.value,set:Y=>{u.value=Y,_.fallbackLocale=u.value,ns(_,c.value,Y)}}),G=ee(()=>p.value),C=ee(()=>d.value),L=ee(()=>A.value);function M(){return it(x)?x:null}function z(Y){x=Y,_.postTranslation=Y}function K(){return h}function J(Y){Y!==null&&($=Fd(Y)),h=Y,_.missing=$}const ce=(Y,ie,_e,Ne,He,lt)=>{B();let tt;try{__INTLIFY_PROD_DEVTOOLS__,a||(_.fallbackContext=o?n1():void 0),tt=Y(_)}finally{__INTLIFY_PROD_DEVTOOLS__,a||(_.fallbackContext=void 0)}if(_e!=="translate exists"&&$t(tt)&&tt===gr||_e==="translate exists"&&!tt){const[q,ae]=ie();return o&&w?Ne(o):He(q)}else{if(lt(tt))return tt;throw Lt(wt.UNEXPECTED_RETURN_TYPE)}};function H(...Y){return ce(ie=>Reflect.apply(bd,null,[ie,...Y]),()=>Yi(...Y),"translate",ie=>Reflect.apply(ie.t,ie,[...Y]),ie=>ie,ie=>Le(ie))}function be(...Y){const[ie,_e,Ne]=Y;if(Ne&&!Xe(Ne))throw Lt(wt.INVALID_ARGUMENT);return H(ie,_e,Tt({resolvedMessage:!0},Ne||{}))}function ve(...Y){return ce(ie=>Reflect.apply(_d,null,[ie,...Y]),()=>Xi(...Y),"datetime format",ie=>Reflect.apply(ie.d,ie,[...Y]),()=>nd,ie=>Le(ie))}function he(...Y){return ce(ie=>Reflect.apply(kd,null,[ie,...Y]),()=>Zi(...Y),"number format",ie=>Reflect.apply(ie.n,ie,[...Y]),()=>nd,ie=>Le(ie))}function Ae(Y){return Y.map(ie=>Le(ie)||$t(ie)||Ue(ie)?Td(String(ie)):ie)}const oe={normalize:Ae,interpolate:Y=>Y,type:"vnode"};function fe(...Y){return ce(ie=>{let _e;const Ne=ie;try{Ne.processor=oe,_e=Reflect.apply(bd,null,[Ne,...Y])}finally{Ne.processor=null}return _e},()=>Yi(...Y),"translate",ie=>ie[Ji](...Y),ie=>[Td(ie)],ie=>dt(ie))}function ue(...Y){return ce(ie=>Reflect.apply(kd,null,[ie,...Y]),()=>Zi(...Y),"number format",ie=>ie[el](...Y),Rd,ie=>Le(ie)||dt(ie))}function Se(...Y){return ce(ie=>Reflect.apply(_d,null,[ie,...Y]),()=>Xi(...Y),"datetime format",ie=>ie[Qi](...Y),Rd,ie=>Le(ie)||dt(ie))}function P(Y){g=Y,_.pluralRules=g}function O(Y,ie){return ce(()=>{if(!Y)return!1;const _e=Le(ie)?ie:c.value,Ne=Q(_e),He=_.messageResolver(Ne,Y);return i?He!=null:So(He)||so(He)||Le(He)},()=>[Y],"translate exists",_e=>Reflect.apply(_e.te,_e,[Y,ie]),b1,_e=>Ue(_e))}function I(Y){let ie=null;const _e=td(_,u.value,c.value);for(let Ne=0;Ne<_e.length;Ne++){const He=p.value[_e[Ne]]||{},lt=_.messageResolver(He,Y);if(lt!=null){ie=lt;break}}return ie}function X(Y){const ie=I(Y);return ie??(o?o.tm(Y)||{}:{})}function Q(Y){return p.value[Y]||{}}function U(Y,ie){if(s){const _e={[Y]:ie};for(const Ne in _e)go(_e,Ne)&&as(_e[Ne]);ie=_e[Y]}p.value[Y]=ie,_.messages=p.value}function de(Y,ie){p.value[Y]=p.value[Y]||{};const _e={[Y]:ie};if(s)for(const Ne in _e)go(_e,Ne)&&as(_e[Ne]);ie=_e[Y],ur(ie,p.value[Y]),_.messages=p.value}function ne(Y){return d.value[Y]||{}}function v(Y,ie){d.value[Y]=ie,_.datetimeFormats=d.value,wd(_,Y,ie)}function S(Y,ie){d.value[Y]=Tt(d.value[Y]||{},ie),_.datetimeFormats=d.value,wd(_,Y,ie)}function D(Y){return A.value[Y]||{}}function te(Y,ie){A.value[Y]=ie,_.numberFormats=A.value,Ld(_,Y,ie)}function me(Y,ie){A.value[Y]=Tt(A.value[Y]||{},ie),_.numberFormats=A.value,Ld(_,Y,ie)}Md++,o&&rr&&(Me(o.locale,Y=>{l&&(c.value=Y,_.locale=Y,ns(_,c.value,u.value))}),Me(o.fallbackLocale,Y=>{l&&(u.value=Y,_.fallbackLocale=Y,ns(_,c.value,u.value))}));const le={id:Md,locale:V,fallbackLocale:j,get inheritLocale(){return l},set inheritLocale(Y){l=Y,Y&&o&&(c.value=o.locale.value,u.value=o.fallbackLocale.value,ns(_,c.value,u.value))},get availableLocales(){return Object.keys(p.value).sort()},messages:G,get modifiers(){return b},get pluralRules(){return g||{}},get isGlobal(){return a},get missingWarn(){return k},set missingWarn(Y){k=Y,_.missingWarn=k},get fallbackWarn(){return f},set fallbackWarn(Y){f=Y,_.fallbackWarn=f},get fallbackRoot(){return w},set fallbackRoot(Y){w=Y},get fallbackFormat(){return y},set fallbackFormat(Y){y=Y,_.fallbackFormat=y},get warnHtmlMessage(){return E},set warnHtmlMessage(Y){E=Y,_.warnHtmlMessage=Y},get escapeParameter(){return m},set escapeParameter(Y){m=Y,_.escapeParameter=Y},t:H,getLocaleMessage:Q,setLocaleMessage:U,mergeLocaleMessage:de,getPostTranslationHandler:M,setPostTranslationHandler:z,getMissingHandler:K,setMissingHandler:J,[Sd]:P};return le.datetimeFormats=C,le.numberFormats=L,le.rt=be,le.te=O,le.tm=X,le.d=ve,le.n=he,le.getDateTimeFormat=ne,le.setDateTimeFormat=v,le.mergeDateTimeFormat=S,le.getNumberFormat=D,le.setNumberFormat=te,le.mergeNumberFormat=me,le[Pd]=n,le[Ji]=fe,le[Qi]=Se,le[el]=ue,le}function y1(e){const t=Le(e.locale)?e.locale:ia,o=Le(e.fallbackLocale)||dt(e.fallbackLocale)||je(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=it(e.missing)?e.missing:void 0,a=Ue(e.silentTranslationWarn)||gn(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,s=Ue(e.silentFallbackWarn)||gn(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,r=Ue(e.fallbackRoot)?e.fallbackRoot:!0,i=!!e.formatFallbackMessages,l=je(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=it(e.postTranslation)?e.postTranslation:void 0,p=Le(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,d=!!e.escapeParameterHtml,A=Ue(e.sync)?e.sync:!0;let k=e.messages;if(je(e.sharedMessages)){const m=e.sharedMessages;k=Object.keys(m).reduce((g,_)=>{const T=g[_]||(g[_]={});return Tt(T,m[_]),g},k||{})}const{__i18n:f,__root:w,__injectWithOption:y}=e,h=e.datetimeFormats,$=e.numberFormats,x=e.flatJson,E=e.translateExistCompatible;return{locale:t,fallbackLocale:o,messages:k,flatJson:x,datetimeFormats:h,numberFormats:$,missing:n,missingWarn:a,fallbackWarn:s,fallbackRoot:r,fallbackFormat:i,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:p,escapeParameter:d,messageResolver:e.messageResolver,inheritLocale:A,translateExistCompatible:E,__i18n:f,__root:w,__injectWithOption:y}}function nl(e={},t){{const o=ol(y1(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 Ue(o.missingWarn)?!o.missingWarn:o.missingWarn},set silentTranslationWarn(s){o.missingWarn=Ue(s)?!s:s},get silentFallbackWarn(){return Ue(o.fallbackWarn)?!o.fallbackWarn:o.fallbackWarn},set silentFallbackWarn(s){o.fallbackWarn=Ue(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,p=null;if(!Le(r))throw Lt(wt.INVALID_ARGUMENT);const d=r;return Le(i)?c.locale=i:dt(i)?u=i:je(i)&&(p=i),dt(l)?u=l:je(l)&&(p=l),Reflect.apply(o.t,o,[d,u||p||{},c])},rt(...s){return Reflect.apply(o.rt,o,[...s])},tc(...s){const[r,i,l]=s,c={plural:1};let u=null,p=null;if(!Le(r))throw Lt(wt.INVALID_ARGUMENT);const d=r;return Le(i)?c.locale=i:$t(i)?c.plural=i:dt(i)?u=i:je(i)&&(p=i),Le(l)?c.locale=l:dt(l)?u=l:je(l)&&(p=l),Reflect.apply(o.t,o,[d,u||p||{},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 al={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function _1({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,a)=>[...n,...a.type===ze?a.children:[a]],[]):t.reduce((o,n)=>{const a=e[n];return a&&(o[n]=a()),o},nt())}function Id(e){return ze}const Od=Oa({name:"i18n-t",props:Tt({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>$t(e)||!isNaN(e)}},al),setup(e,t){const{slots:o,attrs:n}=t,a=e.i18n||mt({useScope:e.scope,__useComponent:!0});return()=>{const s=Object.keys(o).filter(p=>p!=="_"),r=nt();e.locale&&(r.locale=e.locale),e.plural!==void 0&&(r.plural=Le(e.plural)?+e.plural:e.plural);const i=_1(t,s),l=a[Ji](e.keypath,i,r),c=Tt(nt(),n),u=Le(e.tag)||Xe(e.tag)?e.tag:Id();return Ai(u,c,l)}}});function v1(e){return dt(e)&&!Le(e[0])}function Dd(e,t,o,n){const{slots:a,attrs:s}=t;return()=>{const r={part:!0};let i=nt();e.locale&&(r.locale=e.locale),Le(e.format)?r.key=e.format:Xe(e.format)&&(Le(e.format.key)&&(r.key=e.format.key),i=Object.keys(e.format).reduce((d,A)=>o.includes(A)?Tt(nt(),d,{[A]:e.format[A]}):d,nt()));const l=n(e.value,r,i);let c=[r.key];dt(l)?c=l.map((d,A)=>{const k=a[d.type],f=k?k({[d.type]:d.value,index:A,parts:l}):[d.value];return v1(f)&&(f[0].key=`${d.type}-${A}`),f}):Le(l)&&(c=[l]);const u=Tt(nt(),s),p=Le(e.tag)||Xe(e.tag)?e.tag:Id();return Ai(p,u,c)}}const Bd=Oa({name:"i18n-n",props:Tt({value:{type:Number,required:!0},format:{type:[String,Object]}},al),setup(e,t){const o=e.i18n||mt({useScope:e.scope,__useComponent:!0});return Dd(e,t,xd,(...n)=>o[el](...n))}}),Gd=Oa({name:"i18n-d",props:Tt({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},al),setup(e,t){const o=e.i18n||mt({useScope:e.scope,__useComponent:!0});return Dd(e,t,vd,(...n)=>o[Qi](...n))}});function w1(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 k1(e){const t=r=>{const{instance:i,modifiers:l,value:c}=r;if(!i||!i.$)throw Lt(wt.UNEXPECTED_ERROR);const u=w1(e,i.$),p=jd(c);return[Reflect.apply(u.t,u,[...zd(p)]),u]};return{created:(r,i)=>{const[l,c]=t(i);rr&&e.global===c&&(r.__i18nWatcher=Me(c.locale,()=>{i.instance&&i.instance.$forceUpdate()})),r.__composer=c,r.textContent=l},unmounted:r=>{rr&&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=jd(i);r.textContent=Reflect.apply(l.t,l,[...zd(c)])}},getSSRProps:r=>{const[i]=t(r);return{textContent:i}}}}function jd(e){if(Le(e))return{path:e};if(je(e)){if(!("path"in e))throw Lt(wt.REQUIRED_VALUE,"path");return e}else throw Lt(wt.INVALID_VALUE)}function zd(e){const{path:t,locale:o,args:n,choice:a,plural:s}=e,r={},i=n||{};return Le(o)&&(r.locale=o),$t(a)&&(r.plural=a),$t(s)&&(r.plural=s),[t,i,r]}function x1(e,t,...o){const n=je(o[0])?o[0]:{},a=!!n.useI18nComponentName;(Ue(n.globalInstall)?n.globalInstall:!0)&&([a?"i18n":Od.name,"I18nT"].forEach(r=>e.component(r,Od)),[Bd.name,"I18nN"].forEach(r=>e.component(r,Bd)),[Gd.name,"I18nD"].forEach(r=>e.component(r,Gd))),e.directive("t",k1(t))}function L1(e,t,o){return{beforeCreate(){const n=po();if(!n)throw Lt(wt.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=Ud(e,s);else{s.__injectWithOption=!0,s.__extender=o.__vueI18nExtend,this.$i18n=nl(s);const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}}else if(a.__i18n)if(this===this.$root)this.$i18n=Ud(e,a);else{this.$i18n=nl({__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&&Ed(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=po();if(!n)throw Lt(wt.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 Ud(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[Sd](t.pluralizationRules||e.pluralizationRules);const o=fr(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 A1=dn("global-vue-i18n");function S1(e={},t){const o=__VUE_I18N_LEGACY_API__&&Ue(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=Ue(e.globalInjection)?e.globalInjection:!0,a=__VUE_I18N_LEGACY_API__&&o?!!e.allowComposition:!0,s=new Map,[r,i]=P1(e,o),l=dn("");function c(d){return s.get(d)||null}function u(d,A){s.set(d,A)}function p(d){s.delete(d)}{const d={get mode(){return __VUE_I18N_LEGACY_API__&&o?"legacy":"composition"},get allowComposition(){return a},async install(A,...k){if(A.__VUE_I18N_SYMBOL__=l,A.provide(A.__VUE_I18N_SYMBOL__,d),je(k[0])){const y=k[0];d.__composerExtend=y.__composerExtend,d.__vueI18nExtend=y.__vueI18nExtend}let f=null;!o&&n&&(f=O1(A,d.global)),__VUE_I18N_FULL_INSTALL__&&x1(A,d,...k),__VUE_I18N_LEGACY_API__&&o&&A.mixin(L1(i,i.__composer,d));const w=A.unmount;A.unmount=()=>{f&&f(),d.dispose(),w()}},get global(){return i},dispose(){r.stop()},__instances:s,__getInstance:c,__setInstance:u,__deleteInstance:p};return d}}function mt(e={}){const t=po();if(t==null)throw Lt(wt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Lt(wt.NOT_INSTALLED);const o=C1(t),n=T1(o),a=Cd(t),s=E1(e,a);if(__VUE_I18N_LEGACY_API__&&o.mode==="legacy"&&!e.__useComponent){if(!o.allowComposition)throw Lt(wt.NOT_AVAILABLE_IN_LEGACY_MODE);return F1(t,s,n,e)}if(s==="global")return Ed(n,e,a),n;if(s==="parent"){let l=N1(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=ol(l),r.__composerExtend&&(i[tl]=r.__composerExtend(i)),M1(r,t,i),r.__setInstance(t,i)}return i}function P1(e,t,o){const n=Zr();{const a=__VUE_I18N_LEGACY_API__&&t?n.run(()=>nl(e)):n.run(()=>ol(e));if(a==null)throw Lt(wt.UNEXPECTED_ERROR);return[n,a]}}function C1(e){{const t=Te(e.isCE?A1:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Lt(e.isCE?wt.NOT_INSTALLED_WITH_PROVIDE:wt.UNEXPECTED_ERROR);return t}}function E1(e,t){return ir(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function T1(e){return e.mode==="composition"?e.global:e.global.__composer}function N1(e,t,o=!1){let n=null;const a=t.root;let s=R1(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 R1(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function M1(e,t,o){ao(()=>{},t),Ga(()=>{const n=o;e.__deleteInstance(t);const a=n[tl];a&&(a(),delete n[tl])},t)}function F1(e,t,o,n={}){const a=t==="local",s=Ea(null);if(a&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw Lt(wt.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const r=Ue(n.inheritLocale)?n.inheritLocale:!Le(n.locale),i=ge(!a||r?o.locale.value:Le(n.locale)?n.locale:ia),l=ge(!a||r?o.fallbackLocale.value:Le(n.fallbackLocale)||dt(n.fallbackLocale)||je(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:i.value),c=ge(fr(i.value,n)),u=ge(je(n.datetimeFormats)?n.datetimeFormats:{[i.value]:{}}),p=ge(je(n.numberFormats)?n.numberFormats:{[i.value]:{}}),d=a?o.missingWarn:Ue(n.missingWarn)||gn(n.missingWarn)?n.missingWarn:!0,A=a?o.fallbackWarn:Ue(n.fallbackWarn)||gn(n.fallbackWarn)?n.fallbackWarn:!0,k=a?o.fallbackRoot:Ue(n.fallbackRoot)?n.fallbackRoot:!0,f=!!n.fallbackFormat,w=it(n.missing)?n.missing:null,y=it(n.postTranslation)?n.postTranslation:null,h=a?o.warnHtmlMessage:Ue(n.warnHtmlMessage)?n.warnHtmlMessage:!0,$=!!n.escapeParameter,x=a?o.modifiers:je(n.modifiers)?n.modifiers:{},E=n.pluralRules||a&&o.pluralRules;function m(){return[i.value,l.value,c.value,u.value,p.value]}const b=ee({get:()=>s.value?s.value.locale.value:i.value,set:I=>{s.value&&(s.value.locale.value=I),i.value=I}}),g=ee({get:()=>s.value?s.value.fallbackLocale.value:l.value,set:I=>{s.value&&(s.value.fallbackLocale.value=I),l.value=I}}),_=ee(()=>s.value?s.value.messages.value:c.value),T=ee(()=>u.value),B=ee(()=>p.value);function V(){return s.value?s.value.getPostTranslationHandler():y}function j(I){s.value&&s.value.setPostTranslationHandler(I)}function G(){return s.value?s.value.getMissingHandler():w}function C(I){s.value&&s.value.setMissingHandler(I)}function L(I){return m(),I()}function M(...I){return s.value?L(()=>Reflect.apply(s.value.t,null,[...I])):L(()=>"")}function z(...I){return s.value?Reflect.apply(s.value.rt,null,[...I]):""}function K(...I){return s.value?L(()=>Reflect.apply(s.value.d,null,[...I])):L(()=>"")}function J(...I){return s.value?L(()=>Reflect.apply(s.value.n,null,[...I])):L(()=>"")}function ce(I){return s.value?s.value.tm(I):{}}function H(I,X){return s.value?s.value.te(I,X):!1}function be(I){return s.value?s.value.getLocaleMessage(I):{}}function ve(I,X){s.value&&(s.value.setLocaleMessage(I,X),c.value[I]=X)}function he(I,X){s.value&&s.value.mergeLocaleMessage(I,X)}function Ae(I){return s.value?s.value.getDateTimeFormat(I):{}}function ye(I,X){s.value&&(s.value.setDateTimeFormat(I,X),u.value[I]=X)}function oe(I,X){s.value&&s.value.mergeDateTimeFormat(I,X)}function fe(I){return s.value?s.value.getNumberFormat(I):{}}function ue(I,X){s.value&&(s.value.setNumberFormat(I,X),p.value[I]=X)}function Se(I,X){s.value&&s.value.mergeNumberFormat(I,X)}const P={get id(){return s.value?s.value.id:-1},locale:b,fallbackLocale:g,messages:_,datetimeFormats:T,numberFormats:B,get inheritLocale(){return s.value?s.value.inheritLocale:r},set inheritLocale(I){s.value&&(s.value.inheritLocale=I)},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:E},get isGlobal(){return s.value?s.value.isGlobal:!1},get missingWarn(){return s.value?s.value.missingWarn:d},set missingWarn(I){s.value&&(s.value.missingWarn=I)},get fallbackWarn(){return s.value?s.value.fallbackWarn:A},set fallbackWarn(I){s.value&&(s.value.missingWarn=I)},get fallbackRoot(){return s.value?s.value.fallbackRoot:k},set fallbackRoot(I){s.value&&(s.value.fallbackRoot=I)},get fallbackFormat(){return s.value?s.value.fallbackFormat:f},set fallbackFormat(I){s.value&&(s.value.fallbackFormat=I)},get warnHtmlMessage(){return s.value?s.value.warnHtmlMessage:h},set warnHtmlMessage(I){s.value&&(s.value.warnHtmlMessage=I)},get escapeParameter(){return s.value?s.value.escapeParameter:$},set escapeParameter(I){s.value&&(s.value.escapeParameter=I)},t:M,getPostTranslationHandler:V,setPostTranslationHandler:j,getMissingHandler:G,setMissingHandler:C,rt:z,d:K,n:J,tm:ce,te:H,getLocaleMessage:be,setLocaleMessage:ve,mergeLocaleMessage:he,getDateTimeFormat:Ae,setDateTimeFormat:ye,mergeDateTimeFormat:oe,getNumberFormat:fe,setNumberFormat:ue,mergeNumberFormat:Se};function O(I){I.locale.value=i.value,I.fallbackLocale.value=l.value,Object.keys(c.value).forEach(X=>{I.mergeLocaleMessage(X,c.value[X])}),Object.keys(u.value).forEach(X=>{I.mergeDateTimeFormat(X,u.value[X])}),Object.keys(p.value).forEach(X=>{I.mergeNumberFormat(X,p.value[X])}),I.escapeParameter=$,I.fallbackFormat=f,I.fallbackRoot=k,I.fallbackWarn=A,I.missingWarn=d,I.warnHtmlMessage=h}return fu(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw Lt(wt.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const I=s.value=e.proxy.$i18n.__composer;t==="global"?(i.value=I.locale.value,l.value=I.fallbackLocale.value,c.value=I.messages.value,u.value=I.datetimeFormats.value,p.value=I.numberFormats.value):a&&O(I)}),P}const I1=["locale","fallbackLocale","availableLocales"],Vd=["t","rt","d","n","tm","te"];function O1(e,t){const o=Object.create(null);return I1.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s)throw Lt(wt.UNEXPECTED_ERROR);const r=ut(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,Vd.forEach(a=>{const s=Object.getOwnPropertyDescriptor(t,a);if(!s||!s.value)throw Lt(wt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${a}`,s)}),()=>{delete e.config.globalProperties.$i18n,Vd.forEach(a=>{delete e.config.globalProperties[`$${a}`]})}}if(h1(),__INTLIFY_JIT_COMPILATION__?rd(c1):rd(l1),Qv(Rv),e1(td),__INTLIFY_PROD_DEVTOOLS__){const e=Xo();e.__INTLIFY__=!0,zv(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const D1=Object.assign({"./locales/ar/allPeopleGroups.json":Gb,"./locales/ar/aria.json":jb,"./locales/ar/buttons.json":zb,"./locales/ar/connectivity.json":Ub,"./locales/ar/controls.json":Vb,"./locales/ar/dashboard.json":Kb,"./locales/ar/detail.json":Hb,"./locales/ar/gospel.json":qb,"./locales/ar/grid.json":Wb,"./locales/ar/legend.json":Yb,"./locales/ar/messages.json":Xb,"./locales/ar/options.json":Zb,"./locales/ar/popup.json":Jb,"./locales/ar/prayerLaps.json":Qb,"./locales/ar/regions.json":e$,"./locales/ar/search.json":t$,"./locales/ar/studio.json":o$,"./locales/ar/tabs.json":n$,"./locales/ar/vision.json":a$,"./locales/de/allPeopleGroups.json":s$,"./locales/de/aria.json":r$,"./locales/de/buttons.json":i$,"./locales/de/connectivity.json":l$,"./locales/de/controls.json":c$,"./locales/de/dashboard.json":u$,"./locales/de/detail.json":p$,"./locales/de/gospel.json":d$,"./locales/de/grid.json":g$,"./locales/de/legend.json":f$,"./locales/de/messages.json":h$,"./locales/de/options.json":m$,"./locales/de/popup.json":b$,"./locales/de/prayerLaps.json":$$,"./locales/de/regions.json":y$,"./locales/de/search.json":_$,"./locales/de/studio.json":v$,"./locales/de/tabs.json":w$,"./locales/de/vision.json":k$,"./locales/en/allPeopleGroups.json":x$,"./locales/en/aria.json":L$,"./locales/en/buttons.json":A$,"./locales/en/connectivity.json":S$,"./locales/en/controls.json":P$,"./locales/en/dashboard.json":C$,"./locales/en/detail.json":E$,"./locales/en/gospel.json":T$,"./locales/en/grid.json":N$,"./locales/en/legend.json":R$,"./locales/en/messages.json":M$,"./locales/en/options.json":F$,"./locales/en/popup.json":I$,"./locales/en/prayerLaps.json":O$,"./locales/en/regions.json":D$,"./locales/en/search.json":B$,"./locales/en/studio.json":G$,"./locales/en/tabs.json":j$,"./locales/en/vision.json":z$,"./locales/es/allPeopleGroups.json":U$,"./locales/es/aria.json":V$,"./locales/es/buttons.json":K$,"./locales/es/connectivity.json":H$,"./locales/es/controls.json":q$,"./locales/es/dashboard.json":W$,"./locales/es/detail.json":Y$,"./locales/es/gospel.json":X$,"./locales/es/grid.json":Z$,"./locales/es/legend.json":J$,"./locales/es/messages.json":Q$,"./locales/es/options.json":ey,"./locales/es/popup.json":ty,"./locales/es/prayerLaps.json":oy,"./locales/es/regions.json":ny,"./locales/es/search.json":ay,"./locales/es/studio.json":sy,"./locales/es/tabs.json":ry,"./locales/es/vision.json":iy,"./locales/fr/allPeopleGroups.json":ly,"./locales/fr/aria.json":cy,"./locales/fr/buttons.json":uy,"./locales/fr/connectivity.json":py,"./locales/fr/controls.json":dy,"./locales/fr/dashboard.json":gy,"./locales/fr/detail.json":fy,"./locales/fr/gospel.json":hy,"./locales/fr/grid.json":my,"./locales/fr/legend.json":by,"./locales/fr/messages.json":$y,"./locales/fr/options.json":yy,"./locales/fr/popup.json":_y,"./locales/fr/prayerLaps.json":vy,"./locales/fr/regions.json":wy,"./locales/fr/search.json":ky,"./locales/fr/studio.json":xy,"./locales/fr/tabs.json":Ly,"./locales/fr/vision.json":Ay,"./locales/hi/allPeopleGroups.json":Sy,"./locales/hi/aria.json":Py,"./locales/hi/buttons.json":Cy,"./locales/hi/connectivity.json":Ey,"./locales/hi/controls.json":Ty,"./locales/hi/dashboard.json":Ny,"./locales/hi/detail.json":Ry,"./locales/hi/gospel.json":My,"./locales/hi/grid.json":Fy,"./locales/hi/legend.json":Iy,"./locales/hi/messages.json":Oy,"./locales/hi/options.json":Dy,"./locales/hi/popup.json":By,"./locales/hi/prayerLaps.json":Gy,"./locales/hi/regions.json":jy,"./locales/hi/search.json":zy,"./locales/hi/studio.json":Uy,"./locales/hi/tabs.json":Vy,"./locales/hi/vision.json":Ky,"./locales/it/allPeopleGroups.json":Hy,"./locales/it/aria.json":qy,"./locales/it/buttons.json":Wy,"./locales/it/connectivity.json":Yy,"./locales/it/controls.json":Xy,"./locales/it/dashboard.json":Zy,"./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/prayerLaps.json":s_,"./locales/it/regions.json":r_,"./locales/it/search.json":i_,"./locales/it/studio.json":l_,"./locales/it/tabs.json":c_,"./locales/it/vision.json":u_,"./locales/pt/allPeopleGroups.json":p_,"./locales/pt/aria.json":d_,"./locales/pt/buttons.json":g_,"./locales/pt/connectivity.json":f_,"./locales/pt/controls.json":h_,"./locales/pt/dashboard.json":m_,"./locales/pt/detail.json":b_,"./locales/pt/gospel.json":$_,"./locales/pt/grid.json":y_,"./locales/pt/legend.json":__,"./locales/pt/messages.json":v_,"./locales/pt/options.json":w_,"./locales/pt/popup.json":k_,"./locales/pt/prayerLaps.json":x_,"./locales/pt/regions.json":L_,"./locales/pt/search.json":A_,"./locales/pt/studio.json":S_,"./locales/pt/tabs.json":P_,"./locales/pt/vision.json":C_,"./locales/ro/allPeopleGroups.json":E_,"./locales/ro/aria.json":T_,"./locales/ro/buttons.json":N_,"./locales/ro/connectivity.json":R_,"./locales/ro/controls.json":M_,"./locales/ro/dashboard.json":F_,"./locales/ro/detail.json":I_,"./locales/ro/gospel.json":O_,"./locales/ro/grid.json":D_,"./locales/ro/legend.json":B_,"./locales/ro/messages.json":G_,"./locales/ro/options.json":j_,"./locales/ro/popup.json":z_,"./locales/ro/prayerLaps.json":U_,"./locales/ro/regions.json":V_,"./locales/ro/search.json":K_,"./locales/ro/studio.json":H_,"./locales/ro/tabs.json":q_,"./locales/ro/vision.json":W_,"./locales/ru/allPeopleGroups.json":Y_,"./locales/ru/aria.json":X_,"./locales/ru/buttons.json":Z_,"./locales/ru/connectivity.json":J_,"./locales/ru/controls.json":Q_,"./locales/ru/dashboard.json":e0,"./locales/ru/detail.json":t0,"./locales/ru/gospel.json":o0,"./locales/ru/grid.json":n0,"./locales/ru/legend.json":a0,"./locales/ru/messages.json":s0,"./locales/ru/options.json":r0,"./locales/ru/popup.json":i0,"./locales/ru/prayerLaps.json":l0,"./locales/ru/regions.json":c0,"./locales/ru/search.json":u0,"./locales/ru/studio.json":p0,"./locales/ru/tabs.json":d0,"./locales/ru/vision.json":g0,"./locales/zh/allPeopleGroups.json":f0,"./locales/zh/aria.json":h0,"./locales/zh/buttons.json":m0,"./locales/zh/connectivity.json":b0,"./locales/zh/controls.json":$0,"./locales/zh/dashboard.json":y0,"./locales/zh/detail.json":_0,"./locales/zh/gospel.json":v0,"./locales/zh/grid.json":w0,"./locales/zh/legend.json":k0,"./locales/zh/messages.json":x0,"./locales/zh/options.json":L0,"./locales/zh/popup.json":A0,"./locales/zh/prayerLaps.json":S0,"./locales/zh/regions.json":P0,"./locales/zh/search.json":C0,"./locales/zh/studio.json":E0,"./locales/zh/tabs.json":T0,"./locales/zh/vision.json":N0}),Mn={};for(const[e,t]of Object.entries(D1)){const o=e.match(/\.\/locales\/([^/]+)\/([^/]+)\.json$/);if(!o)continue;const[,n,a]=o;Mn[n]??(Mn[n]={}),Mn[n][a]=t}Mn.en;const hr=["ar","de","en","es","fr","hi","it","pt","ro","ru","zh"],B1=new Set(["ar"]);function Kd(){var n;const e=(()=>{try{const a=new URLSearchParams(window.location.search);return(a.get("lang")||a.get("locale")||"").split("-")[0].toLowerCase()}catch{return""}})();if(hr.includes(e))return e;const o=(((n=document==null?void 0:document.documentElement)==null?void 0:n.lang)||"").split("-")[0].toLowerCase();return hr.includes(o)?o:"en"}function G1(){const e=Kd();try{B1.has(e)&&(document!=null&&document.documentElement)&&(document.documentElement.dir="rtl")}catch{}return S1({legacy:!1,globalInjection:!0,locale:e,fallbackLocale:"en",messages:Mn,missingWarn:!1,fallbackWarn:!1})}function mr(e,t){const o=a=>{let s=Mn[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=Kd();return o(n)??o("en")}function kt(e,t){const o=t||j1(e);ao(()=>{var i;const n=po();if(!n)return;const a=(i=n.proxy)==null?void 0:i.$el;if(!a)return;const s=a.getRootNode();if(!(s instanceof ShadowRoot)||s.querySelector(`style[data-shadow-styles="${o}"]`))return;const r=document.createElement("style");r.setAttribute("data-shadow-styles",o),r.textContent=e,s.appendChild(r)})}function j1(e){let t=0;for(let o=0;ot[g]||g,n=()=>!1;try{const g=mt();o=g.t,n=g.te}catch{}const a=Te("uiStore",null),s=Te("profileConfig",null),r=ee(()=>(a==null?void 0:a.theme)==="dark"),i=ee(()=>{var T;const g=(T=s==null?void 0:s.value)==null?void 0:T.pinHintLabel;if(g)return g;const _="Tap a coloured dot — someone still needs prayer";try{return n("messages.pinHint.tapDot")?o("messages.pinHint.tapDot"):_}catch{return _}}),l=ge(!1),c=ge(null);let u=null,p=null,d=null,A=null,k=null,f=null,w=[],y=null,h=null;function $(){l.value=!1}function x(g,_){var B;let T=g==null?void 0:g.parentElement;for(let V=0;T&&V<12;V++,T=T.parentElement){if(T===_||(B=T.classList)!=null&&B.contains("profile-loader"))return null;let j="";try{j=getComputedStyle(T).position}catch{}if(j&&j!=="static"){const G=T.getBoundingClientRect();if(G.height>=120&&G.width>=160)return T}}return null}function E(g){var T;const _=(T=A==null?void 0:A.querySelector)==null?void 0:T.call(A,".legend-mobile-sheet");if(!_)return 1/0;if(k&&f!==_){try{k.disconnect()}catch{}k=null}if(!k&&typeof ResizeObserver<"u")try{k=new ResizeObserver(()=>m()),k.observe(_),f=_}catch{k=null}try{const B=_.getBoundingClientRect();return!(B.height>16)||!(B.width>16)||g.right<=B.left||B.right<=g.left?1/0:B.top}catch{return 1/0}}function m(){const g=c.value;if(g)try{g.style.removeProperty("--pin-hint-lift");const _=g.getBoundingClientRect();if(!_.height)return;const T=Math.min(window.innerHeight,E(_)),B=Math.round(_.bottom-T);B>0&&g.style.setProperty("--pin-hint-lift",B+8+"px")}catch{}}function b(g){const _=c.value;if(!_||!(g!=null&&g.querySelector))return;let T=0;try{const V=g.querySelector(".mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution");if(V){const j=V.getBoundingClientRect(),G=_.parentElement,C=G?G.getBoundingClientRect():null;if(T=C?Math.max(j.height||0,C.bottom-j.top):j.height||0,h!==V&&typeof ResizeObserver<"u"){if(d)try{d.disconnect()}catch{}h=V,d=new ResizeObserver(()=>b(g)),d.observe(V)}}}catch{}const B=Math.min(Math.max(Math.ceil(T)||20,20),72);_.style.setProperty("--pin-hint-attrib-clear",B+"px"),m()}return ao(()=>{var B,V,j;const g=po(),_=(j=(V=(B=g==null?void 0:g.proxy)==null?void 0:B.$el)==null?void 0:V.getRootNode)==null?void 0:j.call(V);if(!_||typeof _.querySelector!="function")return;A=_;let T=0;u=setInterval(()=>{T++;const G=_.querySelector("canvas");G?(clearInterval(u),u=null,l.value=!0,Mt(()=>{const C=x(G,_),L=c.value;if(C&&L&&L.parentElement!==C)try{C.appendChild(L),p=C}catch{}b(_),m(),w.push(setTimeout(m,1200),setTimeout(m,3e3),setTimeout(m,6e3));try{const M=c.value&&c.value.offsetParent||null;if(M&&typeof ResizeObserver<"u"){if(y)try{y.disconnect()}catch{}y=new ResizeObserver(()=>m()),y.observe(M)}}catch{}})):T>40&&(clearInterval(u),u=null)},300)}),qt(()=>{var g;if(u&&clearInterval(u),d){try{d.disconnect()}catch{}d=null}if(h=null,y){try{y.disconnect()}catch{}y=null}if(k){try{k.disconnect()}catch{}k=null}f=null;for(const _ of w)clearTimeout(_);if(w=[],A=null,p&&((g=c.value)==null?void 0:g.parentElement)===p)try{p.removeChild(c.value)}catch{}p=null}),kt(` .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"),(g,k)=>l.value?(Z(),se("div",{key:0,ref_key:"hintEl",ref:c,class:Re(["pin-hint",{dark:r.value}]),role:"status"},[R("span",G1,[k[0]||(k[0]=R("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),bt(" "+be(i.value)+" ",1),R("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:$},"×")])],2)):Le("",!0)}},br="mapbox://styles/mapbox/standard",z1=br,U1=br,V1=!1,Hd={lightPreset:"night",theme:"default"},K1={lightPreset:"day",theme:"monochrome"};function H1(e){return e?/affinity|region|language/i.test(String(e))?"light":"dark":null}function q1(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 H1(y)}function i(y,h){y!=="light"&&y!=="dark"||(s=y,h&&f(h))}function l(){return{...s==="light"?K1:Hd}}function c(){return br}function u(){return{basemap:l()}}function p(y,h){try{return typeof y.getConfigProperty=="function"?y.getConfigProperty("basemap",h):void 0}catch{return}}function d(y){return!!y&&typeof y.setConfigProperty=="function"&&typeof y.getConfigProperty=="function"}function A(y,h=!1){if(!d(y))return!1;const $=l();let x=!1;try{for(const[E,m]of Object.entries($))!h&&p(y,E)===m||(y.setConfigProperty("basemap",E,m),x=!0)}catch(E){console.warn("[useMapTheme] setConfigProperty failed:",E)}return x}function w(y){if(!o.has(y)&&(o.add(y),!!d(y)))try{y.on("style.load",()=>A(y)),y.on("styledata",()=>A(y))}catch{}}function f(y){if(!y)return;if(w(y),A(y)&&!t){t=!0;try{y.once("idle",()=>{t=!1,A(y,!0)})}catch{t=!1}}}function v(y){e.toggleTheme(),f(y)}return{setLook:i,lookFor:r,STANDARD_STYLE:br,LIGHT_STYLE:z1,DARK_STYLE:U1,isDarkTheme:n,lightPreset:a,basemapConfig:l,bootStyle:c,bootConfig:u,applyTheme:f,swapTheme:v}}let W1=0;const Y1=Oi("ui",{state:()=>({_storeInstanceId:++W1,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)}))}}}),X1=Oi("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const 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)},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()}}}),Z1=Oi("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]=qn({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]=qn({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}}}),Mn={_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}}},J1=".profile-loader[data-v-ba19fc13]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100dvh);position:relative}.profile-error[data-v-ba19fc13]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",jt=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},Q1={class:"profile-loader"},ew={key:0,class:"profile-error"},tw={key:1,class:"profile-error"},ow=jt({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var E;const o=e,n=Te("profileConfig",null),a=ee(()=>{var b;if(!o.profileConfig)return null;let m;try{m=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(m&&m.assetsBase===void 0){const g=(b=n==null?void 0:n.value)==null?void 0:b.assetsBase;typeof g=="string"&&g&&(m.assetsBase=g)}return m}),s=ee(()=>{var m;return((m=a.value)==null?void 0:m.profile)||null}),r=Ob(),i=ee(()=>{var b;const m=(b=a.value)==null?void 0:b.tk;return typeof m=="string"&&m?m:r.value||""});Fe(()=>{var m;return(m=a.value)==null?void 0:m.tk},m=>{typeof m=="string"&&m&&Cp(m)},{immediate:!0});const l=ee(()=>{var m;return((m=a.value)==null?void 0:m.dataSource)||Mn.activeSource||"doxa-csv"}),c=ee(()=>{var m;return((m=a.value)==null?void 0:m.colorSet)||"default"}),u=ee(()=>!1),p=ee(()=>{var m;return((m=a.value)==null?void 0:m.pinHint)!==!1}),d=ee(()=>{var b,g;const m=(((b=a.value)==null?void 0:b.locale)||((g=a.value)==null?void 0:g.lang)||"").split("-")[0].toLowerCase();return hr.includes(m)?m:""}),A=Te("appI18n",null);Dh(()=>{d.value&&A&&(A.global.locale.value=d.value)});const w=ee(()=>{var m,b;return d.value||((b=(m=A==null?void 0:A.global)==null?void 0:m.locale)==null?void 0:b.value)||"en"}),f=ee(()=>{var m;return((m=a.value)==null?void 0:m.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),v=Te("profileModules",null);if(!v)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const y=ee(()=>{if(!s.value)return null;const m=`./${s.value}.vue`;return v[m]?es(v[m]):(console.error(`[ProfileLoader] Profile not found: "${s.value}". Available:`,Object.keys(v)),null)});vt("mapboxToken",i),vt("dataSource",l),vt("colorSet",c),vt("profileConfig",a),vt("instanceId",f),vt("lang",w);const h=Y1(),$=X1(),x=Z1();try{const m=typeof localStorage<"u"?localStorage.getItem("theme"):null;m&&((E=h.setTheme)==null||E.call(h,m))}catch{}return vt("uiStore",h),vt("mapStore",$),vt("dataStore",x),(m,b)=>(Z(),se("div",Q1,[a.value?y.value?(Z(),We(mu(y.value),{key:2})):(Z(),se("div",tw,[R("p",null,[b[1]||(b[1]=bt("⚠️ Profile ",-1)),R("strong",null,'"'+be(s.value)+'"',1),b[2]||(b[2]=bt(" not found.",-1))])])):(Z(),se("div",ew,[...b[0]||(b[0]=[R("p",null,[bt("⚠️ "),R("strong",null,"doxa-map"),bt(": missing or invalid "),R("code",null,"profile-config"),bt(" prop.")],-1),R("p",null,[bt("Example: "),R("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),y.value&&u.value?(Z(),We(mu(ue(null)),{key:3})):Le("",!0),y.value&&p.value?(Z(),We(j1,{key:4})):Le("",!0)]))}},[["styles",[J1]],["__scopeId","data-v-ba19fc13"]]),qd="adoptionStatus",Qo={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},sl=Qo,rl={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},nw=rl;function Wd(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)?Qo.hasAdoption:Qo.notAdopted}function il({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],Qo.hasAdoption,["==",t,1],Qo.hasAdoption,Qo.notAdopted]}const Yd=il,aw=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:sl,ADOPTION_LABELS:nw,LABELS:rl,PALETTE:Qo,PROPERTY_KEY:qd,applyColor:il,buildColorExpression:Yd,default:{name:"Adoption Progress",propertyKey:qd,palette:Qo,colors:Qo,labels:rl,getColor:Wd,applyColor:il,buildColorExpression:Yd},getColor:Wd},Symbol.toStringTag,{value:"Module"})),Xd="engagementStatus",en={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},ll=en,cl={notEngaged:"Unengaged",hasEngagement:"Engaged"},sw=cl;function Zd(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)?en.hasEngagement:en.notEngaged}function ul({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],en.hasEngagement,["==",t,1],en.hasEngagement,en.notEngaged]}const Jd=ul,rw=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:ll,ENGAGEMENT_LABELS:sw,LABELS:cl,PALETTE:en,PROPERTY_KEY:Xd,applyColor:ul,buildColorExpression:Jd,default:{name:"Engagement Progress",propertyKey:Xd,palette:en,colors:en,labels:cl,getColor:Zd,applyColor:ul,buildColorExpression:Jd},getColor:Zd},Symbol.toStringTag,{value:"Module"})),pl="languageFamily",iw="#000000",bn={"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"},Qd=bn;function mo(e){return bn[e]||iw}const lw=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(bn))t[e(o)]=o;return t})(),cw={"tai-kadai":"Kra-Dai",none:"Unknown"};function $r(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return cw[o]||lw[o]||t}function eg(e){var t;return mo(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function dl(){const e=["match",["get",pl]];return Object.entries(bn).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const tg=dl,uw=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:Qd,PALETTE:bn,PROPERTY_KEY:pl,applyColor:dl,buildColorExpression:tg,canonicalFamilyName:$r,default:{name:"Language Family",propertyKey:pl,palette:bn,colors:bn,getColor:eg,applyColor:dl,buildColorExpression:tg,getLanguageFamilyColor:mo,canonicalFamilyName:$r},defaultFamilyColor:"#95a5a6",getColor:eg,getLanguageFamilyColor:mo,languageFamilyColors:bn},Symbol.toStringTag,{value:"Module"})),og="peoplePraying",Co=144,$n={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},Fn=$n,gl={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},pw=gl;function yr(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>=Co?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function fl(e){return $n[yr(e)]}function ng(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 ag(e){return yr(e)==="fullPrayer"}function sg(e){return fl(e)}function hl({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,Co],$n.fullPrayer,[">",t,0],$n.hasPrayer,$n.noPrayer]}const rg=hl,dw=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:Co,LABELS:gl,PALETTE:$n,PRAYER_COLORS:Fn,PRAYER_LABELS:pw,PROPERTY_KEY:og,applyColor:hl,buildColorExpression:rg,checkHasFullPrayer:ag,checkHasPrayer:ng,default:{name:"Prayer Progress",propertyKey:og,palette:$n,colors:$n,labels:gl,threshold:Co,getColor:sg,applyColor:hl,buildColorExpression:rg,getPrayerLevel:yr,getPrayerColor:fl,checkHasPrayer:ng,checkHasFullPrayer:ag},getColor:sg,getPrayerColor:fl,getPrayerLevel:yr},Symbol.toStringTag,{value:"Module"})),ig="religion",ml="#94a3b8",ro={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 ss(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return ro[t]?t:"U"}function lg(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[ss(t)]||ml}function bl(){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,ml]}const cg=bl,gw=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Yt,PROPERTY_KEY:ig,RELIGION_FAMILIES:ro,applyColor:bl,buildColorExpression:cg,default:{name:"Religion",propertyKey:ig,palette:Yt,families:ro,getColor:lg,applyColor:bl,buildColorExpression:cg,fallback:ml},getColor:lg,getReligionFamily:ss},Symbol.toStringTag,{value:"Module"})),ug="region",$l="#6d766e",pg={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"},rs={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},yl=Object.keys(rs);function dg(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 rs[t]||$l}function _l(){const e=["match",["coalesce",["get","region"],""]];for(const t of yl)e.push(t,rs[t]);return e.push($l),e}const gg=_l,fw=Object.assign({"./adoption.js":aw,"./engagement.js":rw,"./language-family.js":uw,"./prayer-progress.js":dw,"./religion.js":gw,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:rs,PROPERTY_KEY:ug,REGION_ORDER:yl,WAGF_REGIONS:pg,applyColor:_l,buildColorExpression:gg,default:{name:"WAGF Region",propertyKey:ug,palette:rs,regions:pg,order:yl,getColor:dg,applyColor:_l,buildColorExpression:gg,fallback:$l},getColor:dg},Symbol.toStringTag,{value:"Module"}))}),hw=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),mw=e=>e.replace(/-/g,"_").toUpperCase(),ca={...{STATUS:"status",CUSTOM:"custom"}},vl={};function fg(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=hw(o);ca[mw(o)]=a,vl[a]=n}}fg(fw);function bw(e){e&&fg(e)}function Eo(e){return vl[e]||vl[ca.LANGUAGE_FAMILY]}function $w(e,t={}){return Eo(e).applyColor(t)}const yw=Object.assign({"./research-map.vue":()=>lo(()=>Promise.resolve().then(()=>cP),void 0)});if(bw(Object.assign({"./src/colors/affinity-block.js":If,"./src/colors/doxa-region.js":Bf,"./src/colors/resource.js":zf})),typeof window<"u"&&(($f=window.mapboxgl)!=null&&$f.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 _w(){return _b(ow,{configureApp(e){e.use(Eb());const t=D1();e.use(t),e.provide("appI18n",t),e.provide("profileModules",yw)}})}const vw=_w();typeof customElements<"u"&&(customElements.get("doxa-research-map")||customElements.define("doxa-research-map",vw));const ww="rgba(120, 128, 134, 0.28)",hg="36px",mg=()=>{};function kw(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return mg;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return mg;const a=h=>h.classList.contains("map-scroll-edge--left");for(const h of n)h.style.background=`linear-gradient(${a(h)?"to right":"to left"}, ${ww} ${hg}, transparent ${hg})`,h.style.opacity="0",h.style.transition="opacity 0.16s ease",h.style.userSelect="none",h.style.webkitUserSelect="none";const s=h=>{h.style.opacity="1"},r=h=>{h.style.opacity="0"},i=()=>n.find(h=>!a(h))||null,l=new Set;let c=!1,u=null;const p=()=>{for(const h of n)l.has(h)||r(h)},d=()=>{const h=i();h&&(s(h),u&&clearTimeout(u),u=setTimeout(p,250))},A=()=>d(),w=h=>{if(!(h.touches&&h.touches.length===1))return;const $=h.target;$&&$.classList&&$.classList.contains("map-scroll-edge")||d()},f=()=>{u&&clearTimeout(u),p()};e.addEventListener("wheel",A,{passive:!0}),e.addEventListener("touchmove",w,{passive:!0}),e.addEventListener("touchend",f,{passive:!0}),e.addEventListener("touchcancel",f,{passive:!0});const v=()=>{c||d()};typeof window<"u"&&window.addEventListener("scroll",v,{passive:!0});const y=[];for(const h of n){const $=()=>{l.add(h),s(h)},x=()=>{l.delete(h),r(h)},E=()=>{c=!0,s(h)},m=()=>{c=!1,r(h)};h.addEventListener("mouseenter",$),h.addEventListener("mouseleave",x),h.addEventListener("touchstart",E,{passive:!0}),h.addEventListener("touchend",m,{passive:!0}),y.push(()=>{h.removeEventListener("mouseenter",$),h.removeEventListener("mouseleave",x),h.removeEventListener("touchstart",E),h.removeEventListener("touchend",m)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",A),e.removeEventListener("touchmove",w),e.removeEventListener("touchend",f),e.removeEventListener("touchcancel",f),typeof window<"u"&&window.removeEventListener("scroll",v);for(const $ of y)$();for(const $ of n)r($)}}const xw=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 Lw(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=xw[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 Aw(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 Sw=["mapbox","maplibre"],bg="mapbox";function Pw(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function $g(e){const t=Pw(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||bg).toLowerCase().trim();return Sw.includes(s)?s:bg}function Cw(e){return e==="maplibre"?"MapLibre":"Mapbox"}function yg(e){return typeof window<"u"&&!!window.mapboxgl&&e instanceof window.mapboxgl.Map}function To(e,t="circle"){return yg(e)?{[`${t}-emissive-strength`]:1}:{}}const _g={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 Ew(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function Tw(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(Ew(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(_g.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(_g.mapbox,null,!0);o=!0}catch{}return o}const ua={mapbox:{global:"mapboxgl",js:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",css:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css"},maplibre:{global:"maplibregl",js:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.js",css:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.css"}};function vg(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 Nw=ua.mapbox.css,Rw="https://tiles.openfreemap.org/styles/liberty",Mw="https://tiles.openfreemap.org/styles/fiord";function wl(e){var o;const t=((o=ua[e])==null?void 0:o.global)||ua.mapbox.global;return typeof window<"u"?window[t]:void 0}async function Fw(e){const t=ua[e]||ua.mapbox;if(wl(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=t.css,document.head.appendChild(n)}const o=document.querySelector(`script[src="${t.js}"]`);if(o){if(wl(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,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 Iw(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,await Promise.race([new Promise(r=>{s.addEventListener("load",r,{once:!0}),s.addEventListener("error",r,{once:!0}),o.prepend(s)}),n(2e3)])}function Ow(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?Mw:Rw}const Dw=85.0511,kl=-2,Bw=0,Gw=-60;function wg(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function jw(e,t,o,n){if(!e||e<=0||!t||t<=0)return Bw;const a=Math.log2(e/512),s=wg(n)-wg(Dw),r=Math.log2(t/(512*s)),i=Math.max(a,r);return Math.max(kl,Math.min(i,(o??18)-1))}function zw({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:p=18,pitch:d=0,bearing:A=0,renderWorldCopies:w=!0,showEdgeBorders:f=!0,southCutoff:v=Gw,maxBounds:y=void 0}){const h=Ea(null),$=de(!1);let x=null,E=null,m=null,b=null;try{b=Te("profileConfig",null)}catch{}a=a||$g(b);const g=a==="maplibre";async function k(){var he;const O=Lw(o,a),V=O.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const U=()=>!e.value;if(await Fw(a),U())return;const G=wl(a);if(!G){console.error(`[useMapInstance] ${g?"maplibregl":"mapboxgl"} is not available. Add the ${g?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(Tw(G),!g){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 Iw(e.value,g?ua.maplibre.css:Nw),U()||(await new Promise(ye=>requestAnimationFrame(ye)),U()))return;const C=e.value,L=C.clientWidth,F=C.clientHeight;if(L===0||F===0){console.error(`[useMapInstance] Container has ZERO dimensions (${L}×${F}). Map will be invisible. Check that parent elements have CSS sizing.`);let ye=C.parentElement,fe=0;for(;ye&&fe<5;)ye=ye.parentElement,fe++}const j=t;g||(G.accessToken=j);const K=()=>typeof window<"u"&&window.innerWidth>=1024,J=(ye,fe)=>{if(u)return typeof c=="number"?c:kl;if(!K())return kl;const ie=jw(ye,fe,p,v);return typeof c=="number"?Math.max(c,ie):ie},ce=J(C.clientWidth,C.clientHeight),H=O.lightPreset||(()=>{var ye;try{const fe=typeof n=="function"?n():n;return(ye=fe==null?void 0:fe.basemap)==null?void 0:ye.lightPreset}catch{return}})();if(g){h.value=new G.Map({container:e.value,style:Ow(V,H),center:s,zoom:r,minZoom:ce,maxZoom:p,pitch:d,bearing:A,dragRotate:!1,renderWorldCopies:w,...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"}),vg(h.value);try{e.value.__doxaMap=h.value}catch{}}else{const ye=typeof n=="function"?n():n;h.value=new G.Map({accessToken:j,container:e.value,style:V,...ye?{config:ye}:{},center:s,zoom:r,minZoom:ce,maxZoom:p,pitch:d,bearing:A,dragRotate:!1,touchPitch:!1,renderWorldCopies:w,...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"}),vg(h.value);try{e.value.__doxaMap=h.value}catch{}}try{let ye=!1;h.value.on("error",fe=>{var ge,Se;const ie=((ge=fe==null?void 0:fe.error)==null?void 0:ge.status)??(fe==null?void 0:fe.status),we=String(((Se=fe==null?void 0:fe.error)==null?void 0:Se.url)||(fe==null?void 0:fe.sourceId)||"");ie!==401&&ie!==403||ye||(ye=!0,console.error(`[doxa-maps] Mapbox returned ${ie} 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.`+(we?` First failing request: ${we.slice(0,120)}`:"")))})}catch{}try{h.value.touchZoomRotate.disableRotation()}catch{}m=kw(((he=e.value)==null?void 0:he.parentElement)||null,{enabled:f});let $e=ce,_e=null;x=()=>{const ye=h.value;if(!ye)return;const fe=J(C.clientWidth,C.clientHeight);fe!==$e&&($e=fe,ye.setMinZoom(fe)),ye.getZoom(){_e=null;const ie=h.value;if(!ie)return;const we=J(C.clientWidth,C.clientHeight);if(ie.getZoom(){_e&&(clearTimeout(_e),_e=null)},h.value.on("resize",x),typeof window<"u"&&(window.addEventListener("resize",x),window.addEventListener("orientationchange",x)),h.value.on("style.load",()=>{if(O.paint&&h.value){const ye=Aw(h.value,O.paint);console.info("[useMapInstance] style paint applied ("+a+"):",ye.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var ye;(ye=h.value)==null||ye.resize(),h.value&&h.value.setMinZoom(J(C.clientWidth,C.clientHeight)),$.value=!0})})}function T(){if(h.value){if(x&&(h.value.off("resize",x),typeof window<"u"&&(window.removeEventListener("resize",x),window.removeEventListener("orientationchange",x)),x=null),E){try{E()}catch{}E=null}m&&(m(),m=null),h.value.remove(),h.value=null,$.value=!1}}return{map:h,isMapReady:$,initializeMap:k,destroy:T}}const Uw=zn&&zn.tagName.toUpperCase()==="SCRIPT"&&zn.src||new URL("doxa-research-map.js",document.baseURI).href,In=e=>String(e||"").trim().replace(/\/+$/,"");function kg(){try{const t=String(Uw||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function Vw(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return In(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return In(o)}return In(kg()||"")}function xg(e){const t=In("")||In(kg()||"");if(t)try{const o=typeof document<"u"?document.baseURI:void 0;return In(new URL(t+"/assets",o).href)}catch{return In(t+"/assets")}return"./assets"}function Kw({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=Vw(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 Hw={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]}},Lg={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 qw(e){return Hw[e]||null}function xl(e="standard"){return Lg.circleRadius[e]||Lg.circleRadius.standard}function Ag(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,s=Te("uiStore"),{t:r,locale:i}=mt(),l=de([]);function c($){const x=n($.languageFamily),E="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg";let m=$.imageUrl;(!m||m.includes("NoImageAvailable"))&&(m=E);const b=($.name||"U")[0].toUpperCase(),g=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"],k=b.charCodeAt(0)%g.length;return` +`,"pin-hint"),(g,_)=>l.value?(Z(),re("div",{key:0,ref_key:"hintEl",ref:c,class:Re(["pin-hint",{dark:r.value}]),role:"status"},[R("span",z1,[_[0]||(_[0]=R("span",{class:"pin-hint-dot","aria-hidden":"true"},null,-1)),bt(" "+$e(i.value)+" ",1),R("button",{class:"pin-hint-x",type:"button","aria-label":"Dismiss hint",onClick:$},"×")])],2)):xe("",!0)}},br="mapbox://styles/mapbox/standard",V1=br,K1=br,H1=!1,Hd={lightPreset:"night",theme:"default"},q1={lightPreset:"day",theme:"monochrome"};function W1(e){return e?/affinity|region|language/i.test(String(e))?"light":"dark":null}function Y1(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 W1(y)}function i(y,h){y!=="light"&&y!=="dark"||(s=y,h&&f(h))}function l(){return{...s==="light"?q1:Hd}}function c(){return br}function u(){return{basemap:l()}}function p(y,h){try{return typeof y.getConfigProperty=="function"?y.getConfigProperty("basemap",h):void 0}catch{return}}function d(y){return!!y&&typeof y.setConfigProperty=="function"&&typeof y.getConfigProperty=="function"}function A(y,h=!1){if(!d(y))return!1;const $=l();let x=!1;try{for(const[E,m]of Object.entries($))!h&&p(y,E)===m||(y.setConfigProperty("basemap",E,m),x=!0)}catch(E){console.warn("[useMapTheme] setConfigProperty failed:",E)}return x}function k(y){if(!o.has(y)&&(o.add(y),!!d(y)))try{y.on("style.load",()=>A(y)),y.on("styledata",()=>A(y))}catch{}}function f(y){if(!y)return;if(k(y),A(y)&&!t){t=!0;try{y.once("idle",()=>{t=!1,A(y,!0)})}catch{t=!1}}}function w(y){e.toggleTheme(),f(y)}return{setLook:i,lookFor:r,STANDARD_STYLE:br,LIGHT_STYLE:V1,DARK_STYLE:K1,isDarkTheme:n,lightPreset:a,basemapConfig:l,bootStyle:c,bootConfig:u,applyTheme:f,swapTheme:w}}let X1=0;const Z1=Oi("ui",{state:()=>({_storeInstanceId:++X1,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)}))}}}),J1=Oi("map",{state:()=>({maps:{},activeMapId:null,selectedRegion:null,selectedFamily:null,selectedAffinityBlock:null,selectedLanguage:null,selectedDialect:null,activeLegendTab:"family",selectedResource:null,selectedPeopleGroup:null,selectedPinIds:[],globalFilters:{},searchQuery:"",autoFly:{isActive:!1,speed:1,interval:5e3,currentIndex:0,items:[],timerId:null},guidedTour:{isActive:!1,currentStep:0,steps:[]},showClusters:!1,clusterMode:"region",clusterFilterProperty:null,clusterFilterValue:null,flySpeed:"normal",fullscreenMapId:null,preferences:{theme:"light",defaultMapStyle:"streets",enableAnimations:!0,autoSavePreferences:!0}}),getters:{getMapById:e=>t=>e.maps[t],activeMap:e=>e.activeMapId?e.maps[e.activeMapId]:null,hasMap:e=>t=>t in e.maps,allMapIds:e=>Object.keys(e.maps),hasSelection:e=>!!(e.selectedRegion||e.selectedFamily||e.selectedAffinityBlock||e.selectedPeopleGroup),isAutoFlying:e=>e.autoFly.isActive,isGuidedTourActive:e=>e.guidedTour.isActive,isMapFullscreen:e=>t=>e.fullscreenMapId===t},actions:{registerMap(e,t,o={}){let n=1.5;o.zoom!==void 0?n=o.zoom:t&&typeof t.getZoom=="function"&&(n=t.getZoom());let a=[0,0];if(o.center)a=o.center;else if(t&&typeof t.getCenter=="function"){const 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)},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()}}}),Q1=Oi("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]=Wn({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]=Wn({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}}}),Fn={_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}}},ew=".profile-loader[data-v-ba19fc13]{border-radius:var(--map-radius-corners, var(--map-radius, 0px));width:100%;height:100%;min-height:var(--profile-min-h, 100dvh);position:relative}.profile-error[data-v-ba19fc13]{padding:1rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;font-family:monospace;font-size:13px}",jt=(e,t)=>{const o=e.__vccOpts||e;for(const[n,a]of t)o[n]=a;return o},tw={class:"profile-loader"},ow={key:0,class:"profile-error"},nw={key:1,class:"profile-error"},aw=jt({__name:"ProfileLoader",props:{profileConfig:{type:String,default:""}},setup(e){var E;const o=e,n=Te("profileConfig",null),a=ee(()=>{var b;if(!o.profileConfig)return null;let m;try{m=JSON.parse(o.profileConfig)}catch{return console.error("[ProfileLoader] Invalid profile-config JSON:",o.profileConfig),null}if(m&&m.assetsBase===void 0){const g=(b=n==null?void 0:n.value)==null?void 0:b.assetsBase;typeof g=="string"&&g&&(m.assetsBase=g)}return m}),s=ee(()=>{var m;return((m=a.value)==null?void 0:m.profile)||null}),r=Bb(),i=ee(()=>{var b;const m=(b=a.value)==null?void 0:b.tk;return typeof m=="string"&&m?m:r.value||""});Me(()=>{var m;return(m=a.value)==null?void 0:m.tk},m=>{typeof m=="string"&&m&&Cp(m)},{immediate:!0});const l=ee(()=>{var m;return((m=a.value)==null?void 0:m.dataSource)||Fn.activeSource||"doxa-csv"}),c=ee(()=>{var m;return((m=a.value)==null?void 0:m.colorSet)||"default"}),u=ee(()=>!1),p=ee(()=>{var m;return((m=a.value)==null?void 0:m.pinHint)!==!1}),d=ee(()=>{var b,g;const m=(((b=a.value)==null?void 0:b.locale)||((g=a.value)==null?void 0:g.lang)||"").split("-")[0].toLowerCase();return hr.includes(m)?m:""}),A=Te("appI18n",null);Gh(()=>{d.value&&A&&(A.global.locale.value=d.value)});const k=ee(()=>{var m,b;return d.value||((b=(m=A==null?void 0:A.global)==null?void 0:m.locale)==null?void 0:b.value)||"en"}),f=ee(()=>{var m;return((m=a.value)==null?void 0:m.instanceId)||"doxa-map-"+Math.random().toString(36).slice(2,9)}),w=Te("profileModules",null);if(!w)throw new Error('[ProfileLoader] No profileModules provided. Bundle entry must `app.provide("profileModules", import.meta.glob("./*.vue"))`');const y=ee(()=>{if(!s.value)return null;const m=`./${s.value}.vue`;return w[m]?es(w[m]):(console.error(`[ProfileLoader] Profile not found: "${s.value}". Available:`,Object.keys(w)),null)});vt("mapboxToken",i),vt("dataSource",l),vt("colorSet",c),vt("profileConfig",a),vt("instanceId",f),vt("lang",k);const h=Z1(),$=J1(),x=Q1();try{const m=typeof localStorage<"u"?localStorage.getItem("theme"):null;m&&((E=h.setTheme)==null||E.call(h,m))}catch{}return vt("uiStore",h),vt("mapStore",$),vt("dataStore",x),(m,b)=>(Z(),re("div",tw,[a.value?y.value?(Z(),We(mu(y.value),{key:2})):(Z(),re("div",nw,[R("p",null,[b[1]||(b[1]=bt("⚠️ Profile ",-1)),R("strong",null,'"'+$e(s.value)+'"',1),b[2]||(b[2]=bt(" not found.",-1))])])):(Z(),re("div",ow,[...b[0]||(b[0]=[R("p",null,[bt("⚠️ "),R("strong",null,"doxa-map"),bt(": missing or invalid "),R("code",null,"profile-config"),bt(" prop.")],-1),R("p",null,[bt("Example: "),R("code",null,`profile-config='{"profile":"example-map","tk":"pk.eyJ..."}'`)],-1)])])),y.value&&u.value?(Z(),We(mu(pe(null)),{key:3})):xe("",!0),y.value&&p.value?(Z(),We(U1,{key:4})):xe("",!0)]))}},[["styles",[ew]],["__scopeId","data-v-ba19fc13"]]),qd="adoptionStatus",Qo={notAdopted:"#f03b2d",hasAdoption:"#22c55e"},sl=Qo,rl={notAdopted:"Needs Adoption",hasAdopted:"Has Adoption"},sw=rl;function Wd(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)?Qo.hasAdoption:Qo.notAdopted}function il({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","adoptionStatus"]:["get","adoptionStatus"];return["case",["==",t,!0],Qo.hasAdoption,["==",t,1],Qo.hasAdoption,Qo.notAdopted]}const Yd=il,rw=Object.freeze(Object.defineProperty({__proto__:null,ADOPTION_COLORS:sl,ADOPTION_LABELS:sw,LABELS:rl,PALETTE:Qo,PROPERTY_KEY:qd,applyColor:il,buildColorExpression:Yd,default:{name:"Adoption Progress",propertyKey:qd,palette:Qo,colors:Qo,labels:rl,getColor:Wd,applyColor:il,buildColorExpression:Yd},getColor:Wd},Symbol.toStringTag,{value:"Module"})),Xd="engagementStatus",en={notEngaged:"#f03b2d",hasEngagement:"#22c55e"},ll=en,cl={notEngaged:"Unengaged",hasEngagement:"Engaged"},iw=cl;function Zd(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)?en.hasEngagement:en.notEngaged}function ul({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","engagementStatus"]:["get","engagementStatus"];return["case",["==",t,!0],en.hasEngagement,["==",t,1],en.hasEngagement,en.notEngaged]}const Jd=ul,lw=Object.freeze(Object.defineProperty({__proto__:null,ENGAGEMENT_COLORS:ll,ENGAGEMENT_LABELS:iw,LABELS:cl,PALETTE:en,PROPERTY_KEY:Xd,applyColor:ul,buildColorExpression:Jd,default:{name:"Engagement Progress",propertyKey:Xd,palette:en,colors:en,labels:cl,getColor:Zd,applyColor:ul,buildColorExpression:Jd},getColor:Zd},Symbol.toStringTag,{value:"Module"})),pl="languageFamily",cw="#000000",bn={"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"},Qd=bn;function mo(e){return bn[e]||cw}const uw=(()=>{const e=o=>String(o||"").toLowerCase().trim(),t={};for(const o of Object.keys(bn))t[e(o)]=o;return t})(),pw={"tai-kadai":"Kra-Dai",none:"Unknown"};function $r(e){if(!e)return"Unknown";const t=String(e).trim(),o=t.toLowerCase();return pw[o]||uw[o]||t}function eg(e){var t;return mo(e.languageFamily||((t=e._normalized)==null?void 0:t.languageFamily))}function dl(){const e=["match",["get",pl]];return Object.entries(bn).forEach(([t,o])=>{e.push(t,o)}),e.push("#95a5a6"),e}const tg=dl,dw=Object.freeze(Object.defineProperty({__proto__:null,LANGUAGE_FAMILY_COLORS:Qd,PALETTE:bn,PROPERTY_KEY:pl,applyColor:dl,buildColorExpression:tg,canonicalFamilyName:$r,default:{name:"Language Family",propertyKey:pl,palette:bn,colors:bn,getColor:eg,applyColor:dl,buildColorExpression:tg,getLanguageFamilyColor:mo,canonicalFamilyName:$r},defaultFamilyColor:"#95a5a6",getColor:eg,getLanguageFamilyColor:mo,languageFamilyColors:bn},Symbol.toStringTag,{value:"Module"})),og="peoplePraying",Co=144,$n={noPrayer:"#f03b2d",hasPrayer:"#f0c64a",fullPrayer:"#22c55e"},In=$n,gl={noPrayer:"Needs Prayer",hasPrayer:"Has Prayer",fullPrayer:"Has Full Prayer Coverage"},gw=gl;function yr(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>=Co?"fullPrayer":o>0?"hasPrayer":"noPrayer"}function fl(e){return $n[yr(e)]}function ng(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 ag(e){return yr(e)==="fullPrayer"}function sg(e){return fl(e)}function hl({colorSource:e="properties"}={}){const t=e==="feature-state"?["feature-state","peoplePraying"]:["get","peoplePraying"];return["case",[">=",t,Co],$n.fullPrayer,[">",t,0],$n.hasPrayer,$n.noPrayer]}const rg=hl,fw=Object.freeze(Object.defineProperty({__proto__:null,FULL_PRAYER_THRESHOLD:Co,LABELS:gl,PALETTE:$n,PRAYER_COLORS:In,PRAYER_LABELS:gw,PROPERTY_KEY:og,applyColor:hl,buildColorExpression:rg,checkHasFullPrayer:ag,checkHasPrayer:ng,default:{name:"Prayer Progress",propertyKey:og,palette:$n,colors:$n,labels:gl,threshold:Co,getColor:sg,applyColor:hl,buildColorExpression:rg,getPrayerLevel:yr,getPrayerColor:fl,checkHasPrayer:ng,checkHasFullPrayer:ag},getColor:sg,getPrayerColor:fl,getPrayerLevel:yr},Symbol.toStringTag,{value:"Module"})),ig="religion",ml="#94a3b8",ro={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 ss(e){if(!e||typeof e!="string")return"U";const t=e.charAt(0).toUpperCase();return ro[t]?t:"U"}function lg(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[ss(t)]||ml}function bl(){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,ml]}const cg=bl,hw=Object.freeze(Object.defineProperty({__proto__:null,PALETTE:Yt,PROPERTY_KEY:ig,RELIGION_FAMILIES:ro,applyColor:bl,buildColorExpression:cg,default:{name:"Religion",propertyKey:ig,palette:Yt,families:ro,getColor:lg,applyColor:bl,buildColorExpression:cg,fallback:ml},getColor:lg,getReligionFamily:ss},Symbol.toStringTag,{value:"Module"})),ug="region",$l="#6d766e",pg={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"},rs={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},yl=Object.keys(rs);function dg(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 rs[t]||$l}function _l(){const e=["match",["coalesce",["get","region"],""]];for(const t of yl)e.push(t,rs[t]);return e.push($l),e}const gg=_l,mw=Object.assign({"./adoption.js":rw,"./engagement.js":lw,"./language-family.js":dw,"./prayer-progress.js":fw,"./religion.js":hw,"./wagf-region.js":Object.freeze(Object.defineProperty({__proto__:null,PALETTE:rs,PROPERTY_KEY:ug,REGION_ORDER:yl,WAGF_REGIONS:pg,applyColor:_l,buildColorExpression:gg,default:{name:"WAGF Region",propertyKey:ug,palette:rs,regions:pg,order:yl,getColor:dg,applyColor:_l,buildColorExpression:gg,fallback:$l},getColor:dg},Symbol.toStringTag,{value:"Module"}))}),bw=e=>e.replace(/-([a-z0-9])/g,(t,o)=>o.toUpperCase()),$w=e=>e.replace(/-/g,"_").toUpperCase(),ca={...{STATUS:"status",CUSTOM:"custom"}},vl={};function fg(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=bw(o);ca[$w(o)]=a,vl[a]=n}}fg(mw);function yw(e){e&&fg(e)}function Eo(e){return vl[e]||vl[ca.LANGUAGE_FAMILY]}function _w(e,t={}){return Eo(e).applyColor(t)}const vw=Object.assign({"./research-map.vue":()=>lo(()=>Promise.resolve().then(()=>gP),void 0)});if(yw(Object.assign({"./src/colors/affinity-block.js":Df,"./src/colors/doxa-region.js":jf,"./src/colors/resource.js":Vf})),typeof window<"u"&&((_f=window.mapboxgl)!=null&&_f.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 ww(){return wb(aw,{configureApp(e){e.use(Nb());const t=G1();e.use(t),e.provide("appI18n",t),e.provide("profileModules",vw)}})}const kw=ww();typeof customElements<"u"&&(customElements.get("doxa-research-map")||customElements.define("doxa-research-map",kw));const xw="rgba(120, 128, 134, 0.28)",hg="36px",mg=()=>{};function Lw(e,t={}){const{enabled:o=!0}=t;if(!o||!e)return mg;const n=Array.from(e.querySelectorAll(".map-scroll-edge"));if(!n.length)return mg;const a=h=>h.classList.contains("map-scroll-edge--left");for(const h of n)h.style.background=`linear-gradient(${a(h)?"to right":"to left"}, ${xw} ${hg}, transparent ${hg})`,h.style.opacity="0",h.style.transition="opacity 0.16s ease",h.style.userSelect="none",h.style.webkitUserSelect="none";const s=h=>{h.style.opacity="1"},r=h=>{h.style.opacity="0"},i=()=>n.find(h=>!a(h))||null,l=new Set;let c=!1,u=null;const p=()=>{for(const h of n)l.has(h)||r(h)},d=()=>{const h=i();h&&(s(h),u&&clearTimeout(u),u=setTimeout(p,250))},A=()=>d(),k=h=>{if(!(h.touches&&h.touches.length===1))return;const $=h.target;$&&$.classList&&$.classList.contains("map-scroll-edge")||d()},f=()=>{u&&clearTimeout(u),p()};e.addEventListener("wheel",A,{passive:!0}),e.addEventListener("touchmove",k,{passive:!0}),e.addEventListener("touchend",f,{passive:!0}),e.addEventListener("touchcancel",f,{passive:!0});const w=()=>{c||d()};typeof window<"u"&&window.addEventListener("scroll",w,{passive:!0});const y=[];for(const h of n){const $=()=>{l.add(h),s(h)},x=()=>{l.delete(h),r(h)},E=()=>{c=!0,s(h)},m=()=>{c=!1,r(h)};h.addEventListener("mouseenter",$),h.addEventListener("mouseleave",x),h.addEventListener("touchstart",E,{passive:!0}),h.addEventListener("touchend",m,{passive:!0}),y.push(()=>{h.removeEventListener("mouseenter",$),h.removeEventListener("mouseleave",x),h.removeEventListener("touchstart",E),h.removeEventListener("touchend",m)})}return function(){u&&(clearTimeout(u),u=null),e.removeEventListener("wheel",A),e.removeEventListener("touchmove",k),e.removeEventListener("touchend",f),e.removeEventListener("touchcancel",f),typeof window<"u"&&window.removeEventListener("scroll",w);for(const $ of y)$();for(const $ of n)r($)}}const Aw=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 Sw(e,t="mapbox"){if(typeof e!="string"||!e)return{style:void 0,lightPreset:void 0,paint:void 0};const o=Aw[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 Pw(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 Cw=["mapbox","maplibre"],bg="mapbox";function Ew(e){return e&&typeof e=="object"&&"value"in e&&!("provider"in e)&&!("profile"in e)?e.value:e}function $g(e){const t=Ew(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||bg).toLowerCase().trim();return Cw.includes(s)?s:bg}function Tw(e){return e==="maplibre"?"MapLibre":"Mapbox"}function yg(e){return typeof window<"u"&&!!window.mapboxgl&&e instanceof window.mapboxgl.Map}function To(e,t="circle"){return yg(e)?{[`${t}-emissive-strength`]:1}:{}}const _g={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 Nw(e){return!!e&&typeof window<"u"&&e===window.maplibregl}function Rw(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(Nw(n)){if(n.getRTLTextPluginStatus&&n.getRTLTextPluginStatus()!=="unavailable")continue;const a=n.setRTLTextPlugin(_g.maplibre,!0);a&&a.catch&&a.catch(()=>{})}else n.setRTLTextPlugin(_g.mapbox,null,!0);o=!0}catch{}return o}const Mw=/\[\s*"get"\s*,\s*"name(?::latin|:nonlatin|:en|_en|_int)?"\s*\]|\{name(?::latin|:nonlatin|:en|_en|_int)?\}/,vg=new WeakMap;function Fw(e){return typeof window<"u"&&!!window.maplibregl&&e instanceof window.maplibregl.Map}function wg(e,t){if(!e||!t)return 0;const o=String(t).split("-")[0].toLowerCase();try{if(!Fw(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=vg.get(e);a||(a=new Map,vg.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(!Mw.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 ua={mapbox:{global:"mapboxgl",js:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js",css:"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css"},maplibre:{global:"maplibregl",js:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.js",css:"https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.css"}};function kg(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 Iw=ua.mapbox.css,Ow="https://tiles.openfreemap.org/styles/liberty",Dw="https://tiles.openfreemap.org/styles/fiord";function wl(e){var o;const t=((o=ua[e])==null?void 0:o.global)||ua.mapbox.global;return typeof window<"u"?window[t]:void 0}async function Bw(e){const t=ua[e]||ua.mapbox;if(wl(e)||typeof document>"u")return;if(!document.querySelector(`link[href="${t.css}"]`)){const n=document.createElement("link");n.rel="stylesheet",n.href=t.css,document.head.appendChild(n)}const o=document.querySelector(`script[src="${t.js}"]`);if(o){if(wl(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,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 Gw(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,await Promise.race([new Promise(r=>{s.addEventListener("load",r,{once:!0}),s.addEventListener("error",r,{once:!0}),o.prepend(s)}),n(2e3)])}function jw(e,t){return typeof e=="string"&&/^https?:\/\//.test(e)?e:t==="night"||t==="dusk"?Dw:Ow}const zw=85.0511,kl=-2,Uw=0,Vw=-60;function xg(e){return(1-Math.log(Math.tan(Math.PI/4+e*Math.PI/180/2))/Math.PI)/2}function Kw(e,t,o,n){if(!e||e<=0||!t||t<=0)return Uw;const a=Math.log2(e/512),s=xg(n)-xg(zw),r=Math.log2(t/(512*s)),i=Math.max(a,r);return Math.max(kl,Math.min(i,(o??18)-1))}function Hw({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:p=18,pitch:d=0,bearing:A=0,renderWorldCopies:k=!0,showEdgeBorders:f=!0,southCutoff:w=Vw,maxBounds:y=void 0}){const h=Ea(null),$=ge(!1);let x=null,E=null,m=null,b=null;try{b=Te("profileConfig",null)}catch{}a=a||$g(b);const g=a==="maplibre";let _=null;try{_=Te("lang",null)}catch{}const T=()=>{const j=_&&typeof _=="object"&&"value"in _?_.value:_;if(typeof j=="string"&&j)return j;const G=b&&typeof b=="object"&&"value"in b?b.value:b;if(G&&(G.locale||G.lang))return String(G.locale||G.lang);try{const C=new URLSearchParams(location.search);return C.get("lang")||C.get("locale")||document.documentElement.lang||"en"}catch{return"en"}};async function B(){var ye;const j=Sw(o,a),G=j.style||o;if(!e.value){console.error("containerRef.value is null — call initializeMap() inside onMounted()");return}const C=()=>!e.value;if(await Bw(a),C())return;const L=wl(a);if(!L){console.error(`[useMapInstance] ${g?"maplibregl":"mapboxgl"} is not available. Add the ${g?"MapLibre":"Mapbox"} GL JS script to your page.`);return}if(Rw(L),!g){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 Gw(e.value,g?ua.maplibre.css:Iw),C()||(await new Promise(oe=>requestAnimationFrame(oe)),C()))return;const M=e.value,z=M.clientWidth,K=M.clientHeight;if(z===0||K===0){console.error(`[useMapInstance] Container has ZERO dimensions (${z}×${K}). Map will be invisible. Check that parent elements have CSS sizing.`);let oe=M.parentElement,fe=0;for(;oe&&fe<5;)oe=oe.parentElement,fe++}const J=t;g||(L.accessToken=J);const ce=()=>typeof window<"u"&&window.innerWidth>=1024,H=(oe,fe)=>{if(u)return typeof c=="number"?c:kl;if(!ce())return kl;const ue=Kw(oe,fe,p,w);return typeof c=="number"?Math.max(c,ue):ue},be=H(M.clientWidth,M.clientHeight),ve=j.lightPreset||(()=>{var oe;try{const fe=typeof n=="function"?n():n;return(oe=fe==null?void 0:fe.basemap)==null?void 0:oe.lightPreset}catch{return}})();if(g){h.value=new L.Map({container:e.value,style:jw(G,ve),center:s,zoom:r,minZoom:be,maxZoom:p,pitch:d,bearing:A,dragRotate:!1,renderWorldCopies:k,...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"}),kg(h.value);try{e.value.__doxaMap=h.value}catch{}}else{const oe=typeof n=="function"?n():n;h.value=new L.Map({accessToken:J,container:e.value,style:G,...oe?{config:oe}:{},center:s,zoom:r,minZoom:be,maxZoom:p,pitch:d,bearing:A,dragRotate:!1,touchPitch:!1,renderWorldCopies:k,...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"}),kg(h.value);try{e.value.__doxaMap=h.value}catch{}}try{let oe=!1;h.value.on("error",fe=>{var P,O;const ue=((P=fe==null?void 0:fe.error)==null?void 0:P.status)??(fe==null?void 0:fe.status),Se=String(((O=fe==null?void 0:fe.error)==null?void 0:O.url)||(fe==null?void 0:fe.sourceId)||"");ue!==401&&ue!==403||oe||(oe=!0,console.error(`[doxa-maps] Mapbox returned ${ue} 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.`+(Se?` First failing request: ${Se.slice(0,120)}`:"")))})}catch{}try{h.value.touchZoomRotate.disableRotation()}catch{}m=Lw(((ye=e.value)==null?void 0:ye.parentElement)||null,{enabled:f});let he=be,Ae=null;x=()=>{const oe=h.value;if(!oe)return;const fe=H(M.clientWidth,M.clientHeight);fe!==he&&(he=fe,oe.setMinZoom(fe)),oe.getZoom(){Ae=null;const ue=h.value;if(!ue)return;const Se=H(M.clientWidth,M.clientHeight);if(ue.getZoom(){Ae&&(clearTimeout(Ae),Ae=null)},h.value.on("resize",x),typeof window<"u"&&(window.addEventListener("resize",x),window.addEventListener("orientationchange",x)),h.value.on("style.load",()=>{if(h.value&&wg(h.value,T()),j.paint&&h.value){const oe=Pw(h.value,j.paint);console.info("[useMapInstance] style paint applied ("+a+"):",oe.join(", ")||"NONE MATCHED")}requestAnimationFrame(()=>{var oe;(oe=h.value)==null||oe.resize(),h.value&&h.value.setMinZoom(H(M.clientWidth,M.clientHeight)),$.value=!0})})}function V(){if(h.value){if(x&&(h.value.off("resize",x),typeof window<"u"&&(window.removeEventListener("resize",x),window.removeEventListener("orientationchange",x)),x=null),E){try{E()}catch{}E=null}m&&(m(),m=null),h.value.remove(),h.value=null,$.value=!1}}if(_&&typeof _=="object"&&"value"in _)try{Me(_,()=>{h.value&&$.value&&wg(h.value,T())})}catch{}return{map:h,isMapReady:$,initializeMap:B,destroy:V}}const qw=Un&&Un.tagName.toUpperCase()==="SCRIPT"&&Un.src||new URL("doxa-research-map.js",document.baseURI).href,On=e=>String(e||"").trim().replace(/\/+$/,"");function Lg(){try{const t=String(qw||"").split(/[?#]/)[0].match(/^(.*)\/([^/]+)\/([^/]+)\.js$/);return!t||t[2]!==t[3]?null:t[1]||null}catch{return null}}function Ww(e){const t=e==null?void 0:e.embedBaseUrl;if(typeof t=="string"&&t.trim())return On(t);if(typeof window<"u"){const o=window.MAP_EMBED_BASE_URL;if(typeof o=="string"&&o.trim())return On(o)}return On(Lg()||"")}function Ag(e){const t=On("")||On(Lg()||"");if(t)try{const o=typeof document<"u"?document.baseURI:void 0;return On(new URL(t+"/assets",o).href)}catch{return On(t+"/assets")}return"./assets"}function Yw({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=Ww(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 Xw={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]}},Sg={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 Zw(e){return Xw[e]||null}function xl(e="standard"){return Sg.circleRadius[e]||Sg.circleRadius.standard}function Pg(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,s=Te("uiStore"),{t:r,locale:i}=mt(),l=ge([]);function c($){const x=n($.languageFamily),E="https://www.peoplegroups.org/images/pgphotosearch/NoImageAvailable_search.jpg";let m=$.imageUrl;(!m||m.includes("NoImageAvailable"))&&(m=E);const b=($.name||"U")[0].toUpperCase(),g=["#e74c3c","#3498db","#2ecc71","#f39c12","#9b59b6","#1abc9c","#e67e22","#34495e"],_=b.charCodeAt(0)%g.length;return`
${$.description}

`:""}
- `}function u($){const x=$.iso_3166_1_alpha_3||"",m=$["name_"+((i==null?void 0:i.value)||"en")]||$.name_en||$.name||x,b=a(),g=x.toUpperCase(),k=b.filter(G=>{const C=(G.countryIso||G.country||"").toUpperCase();return C&&C===g}),T=k.length,O=k[0],V=(O==null?void 0:O.wagfRegionLabel)||(O==null?void 0:O.doxaRegionLabel)||(O==null?void 0:O.doxaRegion)||(O==null?void 0:O.wagfRegion)||"—",U=(O==null?void 0:O.wagfBlockLabel)||(O==null?void 0:O.wagfBlock)||"—";return` + `}function u($){const x=$.iso_3166_1_alpha_3||"",m=$["name_"+((i==null?void 0:i.value)||"en")]||$.name_en||$.name||x,b=a(),g=x.toUpperCase(),_=b.filter(G=>{const C=(G.countryIso||G.country||"").toUpperCase();return C&&C===g}),T=_.length,B=_[0],V=(B==null?void 0:B.wagfRegionLabel)||(B==null?void 0:B.doxaRegionLabel)||(B==null?void 0:B.doxaRegion)||(B==null?void 0:B.wagfRegion)||"—",j=(B==null?void 0:B.wagfBlockLabel)||(B==null?void 0:B.wagfBlock)||"—";return`

${m} @@ -167,7 +167,7 @@ ${r("popup.country.wagfRegion")}: ${V}

- ${r("popup.country.wagfBlock")}: ${U} + ${r("popup.country.wagfBlock")}: ${j}

${r("popup.country.country")}: ${m} (${x}) @@ -176,7 +176,7 @@ ${r("popup.country.uupgCount")}: ${T}

- `}function p($){const x=t();if(!x)return;const E=$||"language-family-pins";if(!x.getLayer(E))return;const m=b=>{try{const g=b.features[0],k=g.properties,T=g.geometry.coordinates.slice();for(;Math.abs(b.lngLat.lng-T[0])>180;)T[0]+=b.lngLat.lng>T[0]?360:-360;if(s&&s.legendMode!==void 0){s.selectPeopleGroup(g),s.isMobile&&s.legendState==="collapsed"&&s.setLegendState("open"),s.isMobile||window.dispatchEvent(new CustomEvent("dxm:openDesktopLegend",{detail:{mapId:o}}));return}new mapboxgl.Popup({maxWidth:"320px",className:"people-group-popup"}).setLngLat(T).setHTML(c(k)).addTo(x)}catch(g){console.error(` [${o}] Pin click handler error:`,g)}};x.on("click",E,m),l.value.push({event:"click",layer:E,handler:m})}function d(){const $=t();if(!$)return;const x="regions-fill";if(!$.getLayer(x))return;const E=m=>{const b=["language-family-pins","language-family-pins-hitbox","people-groups-pins"];for(const g of b)if($.getLayer(g)){const k=$.queryRenderedFeatures(m.point,{layers:[g]});if(k&&k.length>0)return}if(m.features&&m.features.length>0){const g=m.features[0].properties;new mapboxgl.Popup().setLngLat(m.lngLat).setHTML(u(g)).addTo($)}};$.on("click",x,E),l.value.push({event:"click",layer:x,handler:E})}function A(){const $=t();if(!$)return;const x="clusters";if(!$.getLayer(x))return;const E=m=>{const b=$.queryRenderedFeatures(m.point,{layers:[x]});if(!b.length)return;const g=b[0].properties.cluster_id,k=b[0].source;$.getSource(k).getClusterExpansionZoom(g,(T,O)=>{T||$.easeTo({center:b[0].geometry.coordinates,zoom:O})})};$.on("click",x,E),l.value.push({event:"click",layer:x,handler:E})}function w($){const x=t();if(!x||!x.getLayer($))return;const E=()=>{x.getCanvas().style.cursor="pointer"},m=()=>{x.getCanvas().style.cursor=""};x.on("mouseenter",$,E),x.on("mouseleave",$,m),l.value.push({event:"mouseenter",layer:$,handler:E}),l.value.push({event:"mouseleave",layer:$,handler:m})}function f(){p(),w("language-family-pins"),p("language-family-pins-hitbox"),w("language-family-pins-hitbox"),A(),w("clusters")}function v(){d(),w("regions-fill")}function y(){const $=t();$&&($.getLayer("language-family-pins")&&f(),$.getLayer("regions-fill")&&v(),$.getLayer("people-groups-pins")&&(p(),w("people-groups-pins")))}function h(){const $=t();if($){for(const{event:x,layer:E,handler:m}of l.value)try{$.off(x,E,m)}catch{}l.value=[]}}return{attachAllEventHandlers:y,attachLanguageFamilyEvents:f,attachRegionEvents:v,attachPinClickHandler:p,attachRegionClickHandler:d,attachClusterClickHandler:A,attachCursorHandlers:w,detachAllEventHandlers:h,generatePinPopupContent:c,generateRegionPopupContent:u,registeredHandlers:l}}const Ze={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"},Ll=[">",["to-number",["get","peoplePraying"],0],0],Al={0:.25,8:.4,14:.5},pa={0:.1,8:.18,14:.22},da={0:1.2,8:1.6,14:2},Sg=["interpolate",["linear"],["zoom"],0,["case",Ll,Al[0],pa[0]],8,["case",Ll,Al[8],pa[8]],14,["case",Ll,Al[14],pa[14]]],Ww=["interpolate",["linear"],["zoom"],0,da[0],8,da[8],14,da[14]],Pg=["==",["to-number",["get","peoplePraying"],0],0],Yw={prayer:[Pg],prayerProgress:[Pg],engagement:[["all",["!=",["get","engagementStatus"],!0],["!=",["get","engagementStatus"],1]]],adoption:[["all",["!=",["get","adoptionStatus"],!0],["!=",["get","adoptionStatus"],1]]]};function Xw(e){const t=Yw[e]||[];if(!t.length)return Ww;const o=t.length===1?t[0]:["any",...t];return["interpolate",["linear"],["zoom"],0,["case",o,pa[0],da[0]],8,["case",o,pa[8],da[8]],14,["case",o,pa[14],da[14]]]}const Zw=[[/ sign language$/i,"Sign Language"]];function Jw(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(Ze[a])return Ze[a];if(o.length>=3){const s=[o[1],o[0]].join(" ");if(Ze[s])return Ze[s]}}if(Ze[t])return Ze[t];const n=t.replace(/\s*\(.*?\)\s*$/,"").trim();if(n!==t&&Ze[n])return Ze[n];for(const[a,s]of Zw)if(a.test(t))return s;return null}function Qw(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,s=()=>{const ie=t();return ie?Ve(ie):null},r=Ag({getMap:s,mapId:o,getLanguageFamilyColor:n,getNormalizedPeopleGroups:a}),i=de({languageFamilyPins:!1,regions:!1,peopleGroups:!1,familyConnections:!1}),l=de({});function c(ie,we="languageFamily"){const ge=s();if(!ge||!(ie!=null&&ie.length))return;const Se=$w(we),P=ie.map(z=>{var pe,oe,_,S,B,te,me,le,Y,re,ve,Ne,He,lt,tt,q,ne,ke,Pe;return{type:"Feature",properties:{uniqueId:z.id||z.uniqueId,slug:z.slug||((pe=z._normalized)==null?void 0:pe.slug)||"",rop3:z.rop3||z.peopleGroupId,peopleId3:z.peopleId3||"",name:z.name,language:z.language,languageFamily:z.languageFamily||((oe=z._normalized)==null?void 0:oe.languageFamily)||Jw(z.language)||"Unknown",affinityBlock:z.affinityBlock||z.affbloc||z.Affbloc||((_=z._normalized)==null?void 0:_.affinityBlock)||"Unknown",affinityBlockLabel:z.affinityBlockLabel||((S=z._normalized)==null?void 0:S.affinityBlockLabel)||"",cluster:z.cluster||((B=z._normalized)==null?void 0:B.cluster)||"",clusterLabel:z.clusterLabel||((te=z._normalized)==null?void 0:te.clusterLabel)||"",peopleGroup:z.peopleGroup||((me=z._normalized)==null?void 0:me.peopleGroup)||"",peopleGroupLabel:z.peopleGroupLabel||((le=z._normalized)==null?void 0:le.peopleGroupLabel)||"",doxaRegion:z.doxaRegion||((Y=z._normalized)==null?void 0:Y.doxaRegion)||"Unknown",wagfBlock:z.wagfBlock||((re=z._normalized)==null?void 0:re.wagfBlock)||"",wagfBlockLabel:z.wagfBlockLabel||((ve=z._normalized)==null?void 0:ve.wagfBlockLabel)||"",wagfRegionLabel:z.wagfRegionLabel||((Ne=z._normalized)==null?void 0:Ne.wagfRegionLabel)||"",country:z.country,countryIso:z.countryIso,countryIsoLabel:z.countryIsoLabel,countryName:z.countryName,religion:z.religion,religionCode:z.religionCode,religionLabel:z.religionLabel,religionName:z.religionName,population:z.population,status:z.status,description:z.description||"",imageUrl:z.imageUrl||"",peoplePraying:Number(z.peoplePraying??((He=z._normalized)==null?void 0:He.peoplePraying)??0),engagementStatus:z.engagementStatus===!0||z.engagementStatus===1||!1,adoptionStatus:z.adoptionStatus===!0||z.adoptionStatus===1||!1,bible:z.bible||((lt=z._normalized)==null?void 0:lt.bible)||"Not Available",jesusFilm:z.jesusFilm||((tt=z._normalized)==null?void 0:tt.jesusFilm)||"Not Available",radio:z.radio||((q=z._normalized)==null?void 0:q.radio)||"Not Available",gospel:z.gospel||((ne=z._normalized)==null?void 0:ne.gospel)||"Not Available",audio:z.audio||((ke=z._normalized)==null?void 0:ke.audio)||"Not Available",stories:z.stories||((Pe=z._normalized)==null?void 0:Pe.stories)||"Not Available",lng:parseFloat(z.longitude||z.lng)||0},geometry:{type:"Point",coordinates:[parseFloat(z.longitude||z.lng),parseFloat(z.latitude||z.lat)]}}}).filter(z=>!isNaN(z.geometry.coordinates[0])&&!isNaN(z.geometry.coordinates[1])),D=.04,I=z=>`${z.geometry.coordinates[0]},${z.geometry.coordinates[1]}`,X=new Map;for(const z of P){const pe=I(z);X.has(pe)||X.set(pe,[]),X.get(pe).push(z)}for(const z of X.values()){if(z.length<2)continue;const[pe,oe]=z[0].geometry.coordinates,_=z.length;for(let S=0;S<_;S++){const B=2*Math.PI*S/_;z[S].geometry.coordinates=[pe+D*Math.cos(B),oe+D*Math.sin(B)]}}const Q={type:"FeatureCollection",features:P};ge.addSource("language-families",{type:"geojson",data:Q,promoteId:"uniqueId"}),ge.addLayer({id:"language-family-pins-shadow",type:"circle",source:"language-families",paint:{"circle-radius":xl("standard"),"circle-color":"rgba(0,0,0,0.12)","circle-blur":.8,"circle-translate":[0,1],"circle-stroke-width":0,"circle-opacity":1}}),ge.addLayer({id:"language-family-pins",type:"circle",source:"language-families",paint:{"circle-radius":xl("standard"),"circle-color":Se,...To(ge),"circle-stroke-width":Sg,"circle-stroke-color":["case",[">",["to-number",["get","peoplePraying"],0],0],"#ffffff","#1f2937"],"circle-opacity":1,"circle-stroke-opacity":1,"circle-opacity-transition":{duration:250}}}),ge.addLayer({id:"language-family-pins-hitbox",type:"circle",source:"language-families",paint:{"circle-radius":xl("touchTarget"),"circle-color":"rgba(0,0,0,0)","circle-stroke-width":0,"circle-opacity":0}}),i.value.languageFamilyPins=!0,r.attachLanguageFamilyEvents()}function u(ie,we="doxa-regions"){const ge=s();if(!ge)return;ge.getLayer("regions-fill")&&ge.removeLayer("regions-fill"),ge.getLayer("regions-border")&&ge.removeLayer("regions-border"),ge.getSource("regions")&&ge.removeSource("regions");const Se={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},P="#cccccc",D=ie&&ie.isoToRegion?ie.isoToRegion:{},I=[],X={};for(const[oe,_]of Object.entries(D)){const S=Se[String(_).toLowerCase()];S&&I.push(oe,S),X[_]||(X[_]=[]),X[_].push(oe)}l.value=X;const Q=I.length?["match",["get","iso_3166_1_alpha_3"],...I,P]:P,z=ge.getLayer("language-family-pins-shadow")?"language-family-pins-shadow":ge.getLayer("language-family-pins")?"language-family-pins":void 0,pe=(()=>{var oe,_,S;try{return!!((S=(_=(oe=ge.getContainer)==null?void 0:oe.call(ge))==null?void 0:_.classList)!=null&&S.contains("maplibregl-map"))}catch{return!1}})();pe?(ge.addSource("regions",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),fetch(`${xg()}/boundaries/world-adm0.geojson`).then(oe=>oe.json()).then(oe=>{for(const S of oe.features||[])S.properties&&S.properties.iso3&&(S.properties.iso_3166_1_alpha_3=S.properties.iso3);const _=ge.getSource("regions");_&&_.setData(oe)}).catch(oe=>console.warn("[map-layers] region boundaries failed to load",oe))):ge.addSource("regions",{type:"vector",url:"mapbox://mapbox.country-boundaries-v1"}),ge.addLayer({id:"regions-fill",type:"fill",source:"regions",...pe?{}:{"source-layer":"country_boundaries"},paint:{"fill-color":Q,"fill-opacity":we==="none"?.1:.7,"fill-antialias":!0,...To(ge,"fill"),"fill-opacity-transition":{duration:300}}},z),ge.addLayer({id:"regions-border",type:"line",source:"regions",...pe?{}:{"source-layer":"country_boundaries"},paint:{"line-color":Q,"line-width":1,"line-opacity":.9,...To(ge,"line")}},z),i.value.regions=!0,r.attachRegionEvents()}function p(ie,we){const ge=s();if(!ge||!ie||!(we!=null&&we.length))return;d();const Se=we.filter(Q=>{var pe;return(Q.languageFamily||((pe=Q._normalized)==null?void 0:pe.languageFamily)||"Unknown")===ie});if(Se.length<2)return;const P=n(ie),D=[],I=15,X=[...Se].sort((Q,z)=>(Q.longitude||Q.lng)-(z.longitude||z.lng));for(let Q=0;Q=",["get","peoplePraying"],Co],"#15803d",[">",["get","peoplePraying"],0],"#d97706","rgba(0,0,0,0)"]}const j=[0,5,2,6,4,7,5,9,6,12,7,14,8,18,10,25,12,32,14,40];function K(ie,we){const ge=["interpolate",["linear"],["zoom"]];for(let Se=0;Se",["get","peoplePraying"],0],ge=F();if(!g.every(P=>ie.getLayer(P))){for(const P of g)if(ie.getLayer(P))try{ie.removeLayer(P)}catch{}ie.addLayer({id:E,type:"circle",source:"language-families",filter:we,paint:{"circle-radius":K(j,1),"circle-color":ge,"circle-blur":.3,"circle-opacity":.45,"circle-stroke-width":0,...To(ie)}},"language-family-pins");for(const P of b)ie.addLayer({id:P,type:"circle",source:"language-families",filter:we,paint:{"circle-radius":K(j,1),"circle-radius-transition":G,"circle-color":"rgba(0,0,0,0)","circle-blur":0,"circle-opacity":1,"circle-stroke-width":2.5,"circle-stroke-color":ge,"circle-stroke-opacity":0,"circle-stroke-opacity-transition":G,...To(ie)}},"language-family-pins")}}function ce(){const ie=s();if(ie)for(const we of g)ie.getLayer(we)&&ie.removeLayer(we)}function H(ie){const we=s();if(!we)return;const ge=[">",["get","peoplePraying"],0],Se=ie?["all",ge,ie]:ge;for(const P of g)if(we.getLayer(P))try{we.setFilter(P,Se)}catch{}}function $e(){const ie=s();if(ie){if(J(),h&&(cancelAnimationFrame(h),h=null),$=!0,ie.getLayer("language-family-pins"))try{ie.setLayoutProperty("language-family-pins","circle-sort-key",["case",[">=",["get","peoplePraying"],Co],1,[">",["get","peoplePraying"],0],1,3])}catch{}he(ie),_e()}}function _e(){h&&(cancelAnimationFrame(h),h=null);const ie=++x;let we=performance.now(),ge=-1/0;function Se(P){if(!$||ie!==x)return;const D=s();if(!D||!g.some(X=>D.getLayer(X))){h=null;return}if(P-ge"u")return;const we=typeof ie.getContainer=="function"?ie.getContainer():null;if(we)try{L=new IntersectionObserver(ge=>{for(const Se of ge)C=Se.isIntersecting},{threshold:0}),L.observe(we)}catch{L=null,C=!0}}function ye(){if(L){try{L.disconnect()}catch{}L=null}C=!0}function fe(){$=!1,h&&(cancelAnimationFrame(h),h=null),ye();try{ce();const ie=s();ie&&ie.getLayer("language-family-pins")&&ie.setLayoutProperty("language-family-pins","circle-sort-key",void 0)}catch{}}return{layersAdded:i,regionIsoMap:l,addLanguageFamilyLayer:c,addRegionsLayer:u,addFamilyConnectionLines:p,removeFamilyConnectionLines:d,updateLayerSource:A,removeLayer:w,hasLayer:f,setPaintProperty:v,mapEvents:r,startPrayerGlow:$e,stopPrayerGlow:fe,syncGlowFilter:H,cleanup:y}}const bo={style:"mapbox://styles/mapbox/standard",center:[20,10],zoom:1.8,minZoom:.5,maxZoom:22,pitch:20,bearing:0,projection:"mercator",renderWorldCopies:!0};function ek(e={}){const{getMap:t=()=>null,mapId:o="unknown",mapStore:n=null,regionsGeoData:a=null,defaultCenter:s=(bo==null?void 0:bo.center)||[20,10],defaultZoom:r=bo==null?void 0:bo.zoom}=e,i={speed:.5,essential:!0,curve:1.2};function l(G,C,L={x:150,y:0}){const F=t();if(!F)return G;try{const j=F.getCanvas(),K=j.width,J=j.height,ce=F.project(G),H=window.devicePixelRatio||1,$e=(L.x||0)*H,_e=(L.y||0)*H,he={x:ce.x-$e,y:ce.y-_e},ye=F.unproject(he);return[ye.lng,ye.lat]}catch{return G}}function c(G,C=[]){const L=t();if(!L)return;let F=null,j=5;const K=C.filter(ce=>ce.languageFamily===G);if(K.length>0){let ce=1/0,H=-1/0,$e=1/0,_e=-1/0;if(K.forEach(he=>{he.longitude&&he.latitude&&(ce=Math.min(ce,he.longitude),H=Math.max(H,he.longitude),$e=Math.min($e,he.latitude),_e=Math.max(_e,he.latitude))}),ce!==1/0){F=[(ce+H)/2,($e+_e)/2];const he=H-ce,ye=_e-$e,fe=Math.max(he,ye);fe>50?j=2:fe>20?j=3:fe>10?j=4:fe>5?j=5:j=6}}if(!F)return;const J=l(F);L.flyTo({center:J,zoom:j,...i})}function u(G){const C=t();if(!C)return;let L=null,F=4;const j=qw(G);if(j)L=j.center,F=j.zoom||4;else if(a!=null&&a.features){const J=a.features.find(ce=>{var H,$e;return((H=ce.properties)==null?void 0:H.region)===G||(($e=ce.properties)==null?void 0:$e.name)===G});J&&(L=p(J))}if(!L)return;const K=l(L);C.flyTo({center:K,zoom:F,...i})}function p(G){if(!G||!G.geometry)return null;const{type:C,coordinates:L}=G.geometry;let F=[];if(C==="Polygon"?F=L[0]||[]:C==="MultiPolygon"&&L.forEach(J=>{F=F.concat(J[0]||[])}),F.length===0)return null;let j=0,K=0;return F.forEach(J=>{j+=J[0],K+=J[1]}),[j/F.length,K/F.length]}function d(G,C={}){const L=t();if(!L)return;const F={center:G,...i,...C};L.flyTo(F)}function A(G,C){const L=t();if(!L||(G==null?void 0:G.longitude)==null||(G==null?void 0:G.latitude)==null)return;const F=C??Math.min(L.getZoom()+2,8);d([G.longitude,G.latitude],{zoom:F})}function w(G,C={top:40,right:40,bottom:40,left:40},L={}){const F=t();if(!F||!G)return;const j=L.maxZoom??4,K=L.duration??900;F.fitBounds(G,{padding:C,maxZoom:j,duration:K,...i,...L})}function f(){const G=t();G&&G.flyTo({center:s,zoom:r,...i})}const v=80,y=800,h=5,$=5,x=110,E=1.2;function m(G){const C=G.filter(Number.isFinite).slice().sort((P,D)=>P-D),L=C.length;if(!L)return null;let F=-1,j=0;for(let P=0;PF&&(F=I,j=P)}const K=(j+1)%L,J=new Array(L);for(let P=0;P0&&D((P+180)%360+360)%360-180,ye=he($e),fe=24,ie=360/fe,we=new Array(fe).fill(0);for(const P of C){let D=Math.floor(((P+180)%360+360)%360/ie);D>=fe&&(D=fe-1),we[D]++}let ge=0;for(let P=1;Pwe[ge]&&(ge=P);return{center:he(-180+(ge+.5)*ie),minLng:ye,maxLng:ye+(_e-$e),span:_e-$e}}function b(G){try{const C=G.getContainer&&G.getContainer().clientWidth||0,L=C>0?Math.log2(C/512):E,F=typeof G.getMinZoom=="function"?G.getMinZoom():L;return Math.max(F,L)}catch{return E}}function g(G,C,L,F){G.easeTo({center:[C,(L+F)/2],zoom:b(G),duration:y,essential:!0})}function k(G,C,L){if(L>x)return!0;try{const F=typeof G.cameraForBounds=="function"?G.cameraForBounds(C,{padding:v,maxZoom:h}):null;return F==null?!0:typeof F.zoom=="number"&&F.zoom<=b(G)+.05}catch{return!1}}function T(G,C){if(!Array.isArray(G))return G;switch(G[0]){case"get":return C==null?void 0:C[G[1]];case"literal":return G[1];case"has":return C!=null&&G[1]in C;case"!has":return C==null||!(G[1]in C);case"!":return!T(G[1],C);case"coalesce":{for(let F=1;F2){const K=Number(T(G[2],C));return Number.isFinite(K)?K:0}return NaN}case"to-string":{const F=T(G[1],C);return F==null?"":String(F)}case"to-boolean":return!!T(G[1],C);case"slice":{const F=T(G[1],C),j=T(G[2],C),K=G.length>3?T(G[3],C):void 0;return typeof F!="string"?"":K!=null?F.slice(j,K):F.slice(j)}default:return G}}function O(G,C){if(G===!0)return!0;if(G===!1)return!1;if(!Array.isArray(G))return!!G;const L=G[0];if(L==="all"){for(let F=1;F"||L===">="||L==="<"||L==="<="){const F=typeof G[1]=="string"?C==null?void 0:C[G[1]]:T(G[1],C),j=T(G[2],C);switch(L){case"==":return F===j||F==null&&j==null;case"!=":return!(F===j||F==null&&j==null);case">":return F>j;case">=":return F>=j;case"<":return F{const X=(I==null?void 0:I.properties)||{};return X.region===P||X.name===P||X.id===P});if(D){const I=[];let X=1/0,Q=-1/0;const z=oe=>{for(const _ of oe)Array.isArray(_[0])?z(_):Number.isFinite(_[0])&&Number.isFinite(_[1])&&(I.push(_[0]),_[1]Q&&(Q=_[1]))};(we=D.geometry)!=null&&we.coordinates&&z(D.geometry.coordinates);const pe=m(I);if(pe&&Number.isFinite(X)){const oe=[[pe.minLng,X],[pe.maxLng,Q]];k(L,oe,pe.span)?g(L,pe.center,X,Q):L.fitBounds(oe,{padding:v,maxZoom:h,duration:y,essential:!0});return}}}const F=C.sourceId??"language-families";if(!L.getSource(F))return;const j=C.matchExpr??G.filter;if(!j)return;const K=V(L,F);if(!K.length)return;const J=[];let ce=1/0,H=-1/0,$e=0,_e=0,he=0;const ye=new Set;for(const Se of K){const P=Se==null?void 0:Se.properties;if(!O(j,P))continue;const D=P==null?void 0:P.uniqueId;if(D!=null){if(ye.has(D))continue;ye.add(D)}const I=(ge=Se.geometry)==null?void 0:ge.coordinates;if(!Array.isArray(I)||I.length<2)continue;const X=I[0],Q=I[1];!Number.isFinite(X)||!Number.isFinite(Q)||($e===0&&(_e=X,he=Q),J.push(X),QH&&(H=Q),$e++)}if($e===0)return;if($e===1){L.flyTo({center:[_e,he],zoom:$,duration:y,essential:!0});return}const fe=m(J)||{center:0,minLng:0,maxLng:0,span:0},ie=[[fe.minLng,ce],[fe.maxLng,H]];if(k(L,ie,fe.span)){g(L,fe.center,ce,H);return}try{L.fitBounds(ie,{padding:v,maxZoom:h,duration:y,essential:!0})}catch{}}return{getOffsetCenter:l,slowFlyToFamily:c,slowFlyToRegion:u,flyTo:d,flyToCoords:A,fitBounds:w,resetView:f,zoomToLegendRow:U,calculateRegionCenterFromPolygon:p}}const _r="#1a1a1a",tn="selected-pin-highlight";function tk(e=_r){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 p($){const x=t();if(!x)return;const E=$||"language-family-pins";if(!x.getLayer(E))return;const m=b=>{try{const g=b.features[0],_=g.properties,T=g.geometry.coordinates.slice();for(;Math.abs(b.lngLat.lng-T[0])>180;)T[0]+=b.lngLat.lng>T[0]?360:-360;if(s&&s.legendMode!==void 0){s.selectPeopleGroup(g),s.isMobile&&s.legendState==="collapsed"&&s.setLegendState("open"),s.isMobile||window.dispatchEvent(new CustomEvent("dxm:openDesktopLegend",{detail:{mapId:o}}));return}new mapboxgl.Popup({maxWidth:"320px",className:"people-group-popup"}).setLngLat(T).setHTML(c(_)).addTo(x)}catch(g){console.error(` [${o}] Pin click handler error:`,g)}};x.on("click",E,m),l.value.push({event:"click",layer:E,handler:m})}function d(){const $=t();if(!$)return;const x="regions-fill";if(!$.getLayer(x))return;const E=m=>{const b=["language-family-pins","language-family-pins-hitbox","people-groups-pins"];for(const g of b)if($.getLayer(g)){const _=$.queryRenderedFeatures(m.point,{layers:[g]});if(_&&_.length>0)return}if(m.features&&m.features.length>0){const g=m.features[0].properties;new mapboxgl.Popup().setLngLat(m.lngLat).setHTML(u(g)).addTo($)}};$.on("click",x,E),l.value.push({event:"click",layer:x,handler:E})}function A(){const $=t();if(!$)return;const x="clusters";if(!$.getLayer(x))return;const E=m=>{const b=$.queryRenderedFeatures(m.point,{layers:[x]});if(!b.length)return;const g=b[0].properties.cluster_id,_=b[0].source;$.getSource(_).getClusterExpansionZoom(g,(T,B)=>{T||$.easeTo({center:b[0].geometry.coordinates,zoom:B})})};$.on("click",x,E),l.value.push({event:"click",layer:x,handler:E})}function k($){const x=t();if(!x||!x.getLayer($))return;const E=()=>{x.getCanvas().style.cursor="pointer"},m=()=>{x.getCanvas().style.cursor=""};x.on("mouseenter",$,E),x.on("mouseleave",$,m),l.value.push({event:"mouseenter",layer:$,handler:E}),l.value.push({event:"mouseleave",layer:$,handler:m})}function f(){p(),k("language-family-pins"),p("language-family-pins-hitbox"),k("language-family-pins-hitbox"),A(),k("clusters")}function w(){d(),k("regions-fill")}function y(){const $=t();$&&($.getLayer("language-family-pins")&&f(),$.getLayer("regions-fill")&&w(),$.getLayer("people-groups-pins")&&(p(),k("people-groups-pins")))}function h(){const $=t();if($){for(const{event:x,layer:E,handler:m}of l.value)try{$.off(x,E,m)}catch{}l.value=[]}}return{attachAllEventHandlers:y,attachLanguageFamilyEvents:f,attachRegionEvents:w,attachPinClickHandler:p,attachRegionClickHandler:d,attachClusterClickHandler:A,attachCursorHandlers:k,detachAllEventHandlers:h,generatePinPopupContent:c,generateRegionPopupContent:u,registeredHandlers:l}}const Ze={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"},Ll=[">",["to-number",["get","peoplePraying"],0],0],Al={0:.25,8:.4,14:.5},pa={0:.1,8:.18,14:.22},da={0:1.2,8:1.6,14:2},Cg=["interpolate",["linear"],["zoom"],0,["case",Ll,Al[0],pa[0]],8,["case",Ll,Al[8],pa[8]],14,["case",Ll,Al[14],pa[14]]],Jw=["interpolate",["linear"],["zoom"],0,da[0],8,da[8],14,da[14]],Eg=["==",["to-number",["get","peoplePraying"],0],0],Qw={prayer:[Eg],prayerProgress:[Eg],engagement:[["all",["!=",["get","engagementStatus"],!0],["!=",["get","engagementStatus"],1]]],adoption:[["all",["!=",["get","adoptionStatus"],!0],["!=",["get","adoptionStatus"],1]]]};function ek(e){const t=Qw[e]||[];if(!t.length)return Jw;const o=t.length===1?t[0]:["any",...t];return["interpolate",["linear"],["zoom"],0,["case",o,pa[0],da[0]],8,["case",o,pa[8],da[8]],14,["case",o,pa[14],da[14]]]}const tk=[[/ sign language$/i,"Sign Language"]];function ok(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(Ze[a])return Ze[a];if(o.length>=3){const s=[o[1],o[0]].join(" ");if(Ze[s])return Ze[s]}}if(Ze[t])return Ze[t];const n=t.replace(/\s*\(.*?\)\s*$/,"").trim();if(n!==t&&Ze[n])return Ze[n];for(const[a,s]of tk)if(a.test(t))return s;return null}function nk(e={}){const{getMap:t=()=>null,mapId:o="unknown",getLanguageFamilyColor:n=()=>"#999999",getNormalizedPeopleGroups:a=()=>[]}=e,s=()=>{const oe=t();return oe?Ve(oe):null},r=Pg({getMap:s,mapId:o,getLanguageFamilyColor:n,getNormalizedPeopleGroups:a}),i=ge({languageFamilyPins:!1,regions:!1,peopleGroups:!1,familyConnections:!1}),l=ge({});function c(oe,fe="languageFamily"){const ue=s();if(!ue||!(oe!=null&&oe.length))return;const Se=_w(fe),P=oe.map(U=>{var de,ne,v,S,D,te,me,le,Y,ie,_e,Ne,He,lt,tt,q,ae,we,Pe;return{type:"Feature",properties:{uniqueId:U.id||U.uniqueId,slug:U.slug||((de=U._normalized)==null?void 0:de.slug)||"",rop3:U.rop3||U.peopleGroupId,peopleId3:U.peopleId3||"",name:U.name,language:U.language,languageFamily:U.languageFamily||((ne=U._normalized)==null?void 0:ne.languageFamily)||ok(U.language)||"Unknown",affinityBlock:U.affinityBlock||U.affbloc||U.Affbloc||((v=U._normalized)==null?void 0:v.affinityBlock)||"Unknown",affinityBlockLabel:U.affinityBlockLabel||((S=U._normalized)==null?void 0:S.affinityBlockLabel)||"",cluster:U.cluster||((D=U._normalized)==null?void 0:D.cluster)||"",clusterLabel:U.clusterLabel||((te=U._normalized)==null?void 0:te.clusterLabel)||"",peopleGroup:U.peopleGroup||((me=U._normalized)==null?void 0:me.peopleGroup)||"",peopleGroupLabel:U.peopleGroupLabel||((le=U._normalized)==null?void 0:le.peopleGroupLabel)||"",doxaRegion:U.doxaRegion||((Y=U._normalized)==null?void 0:Y.doxaRegion)||"Unknown",wagfBlock:U.wagfBlock||((ie=U._normalized)==null?void 0:ie.wagfBlock)||"",wagfBlockLabel:U.wagfBlockLabel||((_e=U._normalized)==null?void 0:_e.wagfBlockLabel)||"",wagfRegionLabel:U.wagfRegionLabel||((Ne=U._normalized)==null?void 0:Ne.wagfRegionLabel)||"",country:U.country,countryIso:U.countryIso,countryIsoLabel:U.countryIsoLabel,countryName:U.countryName,religion:U.religion,religionCode:U.religionCode,religionLabel:U.religionLabel,religionName:U.religionName,population:U.population,status:U.status,description:U.description||"",imageUrl:U.imageUrl||"",peoplePraying:Number(U.peoplePraying??((He=U._normalized)==null?void 0:He.peoplePraying)??0),engagementStatus:U.engagementStatus===!0||U.engagementStatus===1||!1,adoptionStatus:U.adoptionStatus===!0||U.adoptionStatus===1||!1,bible:U.bible||((lt=U._normalized)==null?void 0:lt.bible)||"Not Available",jesusFilm:U.jesusFilm||((tt=U._normalized)==null?void 0:tt.jesusFilm)||"Not Available",radio:U.radio||((q=U._normalized)==null?void 0:q.radio)||"Not Available",gospel:U.gospel||((ae=U._normalized)==null?void 0:ae.gospel)||"Not Available",audio:U.audio||((we=U._normalized)==null?void 0:we.audio)||"Not Available",stories:U.stories||((Pe=U._normalized)==null?void 0:Pe.stories)||"Not Available",lng:parseFloat(U.longitude||U.lng)||0},geometry:{type:"Point",coordinates:[parseFloat(U.longitude||U.lng),parseFloat(U.latitude||U.lat)]}}}).filter(U=>!isNaN(U.geometry.coordinates[0])&&!isNaN(U.geometry.coordinates[1])),O=.04,I=U=>`${U.geometry.coordinates[0]},${U.geometry.coordinates[1]}`,X=new Map;for(const U of P){const de=I(U);X.has(de)||X.set(de,[]),X.get(de).push(U)}for(const U of X.values()){if(U.length<2)continue;const[de,ne]=U[0].geometry.coordinates,v=U.length;for(let S=0;S",["to-number",["get","peoplePraying"],0],0],"#ffffff","#1f2937"],"circle-opacity":1,"circle-stroke-opacity":1,"circle-opacity-transition":{duration:250}}}),ue.addLayer({id:"language-family-pins-hitbox",type:"circle",source:"language-families",paint:{"circle-radius":xl("touchTarget"),"circle-color":"rgba(0,0,0,0)","circle-stroke-width":0,"circle-opacity":0}}),i.value.languageFamilyPins=!0,r.attachLanguageFamilyEvents()}function u(oe,fe="doxa-regions"){const ue=s();if(!ue)return;ue.getLayer("regions-fill")&&ue.removeLayer("regions-fill"),ue.getLayer("regions-border")&&ue.removeLayer("regions-border"),ue.getSource("regions")&&ue.removeSource("regions");const Se={africa:"#ff2e2e",asia:"#1a8cff",europe:"#1ee05f","latin_america_&_caribbean":"#FFEB3B",middle_east:"#a83dff","north_america_&_non-spanish_caribbean":"#00e0bd",oceania:"#ff7f11"},P="#cccccc",O=oe&&oe.isoToRegion?oe.isoToRegion:{},I=[],X={};for(const[ne,v]of Object.entries(O)){const S=Se[String(v).toLowerCase()];S&&I.push(ne,S),X[v]||(X[v]=[]),X[v].push(ne)}l.value=X;const Q=I.length?["match",["get","iso_3166_1_alpha_3"],...I,P]:P,U=ue.getLayer("language-family-pins-shadow")?"language-family-pins-shadow":ue.getLayer("language-family-pins")?"language-family-pins":void 0,de=(()=>{var ne,v,S;try{return!!((S=(v=(ne=ue.getContainer)==null?void 0:ne.call(ue))==null?void 0:v.classList)!=null&&S.contains("maplibregl-map"))}catch{return!1}})();de?(ue.addSource("regions",{type:"geojson",data:{type:"FeatureCollection",features:[]}}),fetch(`${Ag()}/boundaries/world-adm0.geojson`).then(ne=>ne.json()).then(ne=>{for(const S of ne.features||[])S.properties&&S.properties.iso3&&(S.properties.iso_3166_1_alpha_3=S.properties.iso3);const v=ue.getSource("regions");v&&v.setData(ne)}).catch(ne=>console.warn("[map-layers] region boundaries failed to load",ne))):ue.addSource("regions",{type:"vector",url:"mapbox://mapbox.country-boundaries-v1"}),ue.addLayer({id:"regions-fill",type:"fill",source:"regions",...de?{}:{"source-layer":"country_boundaries"},paint:{"fill-color":Q,"fill-opacity":fe==="none"?.1:.7,"fill-antialias":!0,...To(ue,"fill"),"fill-opacity-transition":{duration:300}}},U),ue.addLayer({id:"regions-border",type:"line",source:"regions",...de?{}:{"source-layer":"country_boundaries"},paint:{"line-color":Q,"line-width":1,"line-opacity":.9,...To(ue,"line")}},U),i.value.regions=!0,r.attachRegionEvents()}function p(oe,fe){const ue=s();if(!ue||!oe||!(fe!=null&&fe.length))return;d();const Se=fe.filter(Q=>{var de;return(Q.languageFamily||((de=Q._normalized)==null?void 0:de.languageFamily)||"Unknown")===oe});if(Se.length<2)return;const P=n(oe),O=[],I=15,X=[...Se].sort((Q,U)=>(Q.longitude||Q.lng)-(U.longitude||U.lng));for(let Q=0;Q=",["get","peoplePraying"],Co],"#15803d",[">",["get","peoplePraying"],0],"#d97706","rgba(0,0,0,0)"]}const z=[0,5,2,6,4,7,5,9,6,12,7,14,8,18,10,25,12,32,14,40];function K(oe,fe){const ue=["interpolate",["linear"],["zoom"]];for(let Se=0;Se",["get","peoplePraying"],0],ue=M();if(!g.every(P=>oe.getLayer(P))){for(const P of g)if(oe.getLayer(P))try{oe.removeLayer(P)}catch{}oe.addLayer({id:E,type:"circle",source:"language-families",filter:fe,paint:{"circle-radius":K(z,1),"circle-color":ue,"circle-blur":.3,"circle-opacity":.45,"circle-stroke-width":0,...To(oe)}},"language-family-pins");for(const P of b)oe.addLayer({id:P,type:"circle",source:"language-families",filter:fe,paint:{"circle-radius":K(z,1),"circle-radius-transition":G,"circle-color":"rgba(0,0,0,0)","circle-blur":0,"circle-opacity":1,"circle-stroke-width":2.5,"circle-stroke-color":ue,"circle-stroke-opacity":0,"circle-stroke-opacity-transition":G,...To(oe)}},"language-family-pins")}}function ce(){const oe=s();if(oe)for(const fe of g)oe.getLayer(fe)&&oe.removeLayer(fe)}function H(oe){const fe=s();if(!fe)return;const ue=[">",["get","peoplePraying"],0],Se=oe?["all",ue,oe]:ue;for(const P of g)if(fe.getLayer(P))try{fe.setFilter(P,Se)}catch{}}function be(){const oe=s();if(oe){if(J(),h&&(cancelAnimationFrame(h),h=null),$=!0,oe.getLayer("language-family-pins"))try{oe.setLayoutProperty("language-family-pins","circle-sort-key",["case",[">=",["get","peoplePraying"],Co],1,[">",["get","peoplePraying"],0],1,3])}catch{}he(oe),ve()}}function ve(){h&&(cancelAnimationFrame(h),h=null);const oe=++x;let fe=performance.now(),ue=-1/0;function Se(P){if(!$||oe!==x)return;const O=s();if(!O||!g.some(X=>O.getLayer(X))){h=null;return}if(P-ue"u")return;const fe=typeof oe.getContainer=="function"?oe.getContainer():null;if(fe)try{L=new IntersectionObserver(ue=>{for(const Se of ue)C=Se.isIntersecting},{threshold:0}),L.observe(fe)}catch{L=null,C=!0}}function Ae(){if(L){try{L.disconnect()}catch{}L=null}C=!0}function ye(){$=!1,h&&(cancelAnimationFrame(h),h=null),Ae();try{ce();const oe=s();oe&&oe.getLayer("language-family-pins")&&oe.setLayoutProperty("language-family-pins","circle-sort-key",void 0)}catch{}}return{layersAdded:i,regionIsoMap:l,addLanguageFamilyLayer:c,addRegionsLayer:u,addFamilyConnectionLines:p,removeFamilyConnectionLines:d,updateLayerSource:A,removeLayer:k,hasLayer:f,setPaintProperty:w,mapEvents:r,startPrayerGlow:be,stopPrayerGlow:ye,syncGlowFilter:H,cleanup:y}}const bo={style:"mapbox://styles/mapbox/standard",center:[20,10],zoom:1.8,minZoom:.5,maxZoom:22,pitch:20,bearing:0,projection:"mercator",renderWorldCopies:!0};function ak(e={}){const{getMap:t=()=>null,mapId:o="unknown",mapStore:n=null,regionsGeoData:a=null,defaultCenter:s=(bo==null?void 0:bo.center)||[20,10],defaultZoom:r=bo==null?void 0:bo.zoom}=e,i={speed:.5,essential:!0,curve:1.2};function l(G,C,L={x:150,y:0}){const M=t();if(!M)return G;try{const z=M.getCanvas(),K=z.width,J=z.height,ce=M.project(G),H=window.devicePixelRatio||1,be=(L.x||0)*H,ve=(L.y||0)*H,he={x:ce.x-be,y:ce.y-ve},Ae=M.unproject(he);return[Ae.lng,Ae.lat]}catch{return G}}function c(G,C=[]){const L=t();if(!L)return;let M=null,z=5;const K=C.filter(ce=>ce.languageFamily===G);if(K.length>0){let ce=1/0,H=-1/0,be=1/0,ve=-1/0;if(K.forEach(he=>{he.longitude&&he.latitude&&(ce=Math.min(ce,he.longitude),H=Math.max(H,he.longitude),be=Math.min(be,he.latitude),ve=Math.max(ve,he.latitude))}),ce!==1/0){M=[(ce+H)/2,(be+ve)/2];const he=H-ce,Ae=ve-be,ye=Math.max(he,Ae);ye>50?z=2:ye>20?z=3:ye>10?z=4:ye>5?z=5:z=6}}if(!M)return;const J=l(M);L.flyTo({center:J,zoom:z,...i})}function u(G){const C=t();if(!C)return;let L=null,M=4;const z=Zw(G);if(z)L=z.center,M=z.zoom||4;else if(a!=null&&a.features){const J=a.features.find(ce=>{var H,be;return((H=ce.properties)==null?void 0:H.region)===G||((be=ce.properties)==null?void 0:be.name)===G});J&&(L=p(J))}if(!L)return;const K=l(L);C.flyTo({center:K,zoom:M,...i})}function p(G){if(!G||!G.geometry)return null;const{type:C,coordinates:L}=G.geometry;let M=[];if(C==="Polygon"?M=L[0]||[]:C==="MultiPolygon"&&L.forEach(J=>{M=M.concat(J[0]||[])}),M.length===0)return null;let z=0,K=0;return M.forEach(J=>{z+=J[0],K+=J[1]}),[z/M.length,K/M.length]}function d(G,C={}){const L=t();if(!L)return;const M={center:G,...i,...C};L.flyTo(M)}function A(G,C){const L=t();if(!L||(G==null?void 0:G.longitude)==null||(G==null?void 0:G.latitude)==null)return;const M=C??Math.min(L.getZoom()+2,8);d([G.longitude,G.latitude],{zoom:M})}function k(G,C={top:40,right:40,bottom:40,left:40},L={}){const M=t();if(!M||!G)return;const z=L.maxZoom??4,K=L.duration??900;M.fitBounds(G,{padding:C,maxZoom:z,duration:K,...i,...L})}function f(){const G=t();G&&G.flyTo({center:s,zoom:r,...i})}const w=80,y=800,h=5,$=5,x=110,E=1.2;function m(G){const C=G.filter(Number.isFinite).slice().sort((P,O)=>P-O),L=C.length;if(!L)return null;let M=-1,z=0;for(let P=0;PM&&(M=I,z=P)}const K=(z+1)%L,J=new Array(L);for(let P=0;P0&&O((P+180)%360+360)%360-180,Ae=he(be),ye=24,oe=360/ye,fe=new Array(ye).fill(0);for(const P of C){let O=Math.floor(((P+180)%360+360)%360/oe);O>=ye&&(O=ye-1),fe[O]++}let ue=0;for(let P=1;Pfe[ue]&&(ue=P);return{center:he(-180+(ue+.5)*oe),minLng:Ae,maxLng:Ae+(ve-be),span:ve-be}}function b(G){try{const C=G.getContainer&&G.getContainer().clientWidth||0,L=C>0?Math.log2(C/512):E,M=typeof G.getMinZoom=="function"?G.getMinZoom():L;return Math.max(M,L)}catch{return E}}function g(G,C,L,M){G.easeTo({center:[C,(L+M)/2],zoom:b(G),duration:y,essential:!0})}function _(G,C,L){if(L>x)return!0;try{const M=typeof G.cameraForBounds=="function"?G.cameraForBounds(C,{padding:w,maxZoom:h}):null;return M==null?!0:typeof M.zoom=="number"&&M.zoom<=b(G)+.05}catch{return!1}}function T(G,C){if(!Array.isArray(G))return G;switch(G[0]){case"get":return C==null?void 0:C[G[1]];case"literal":return G[1];case"has":return C!=null&&G[1]in C;case"!has":return C==null||!(G[1]in C);case"!":return!T(G[1],C);case"coalesce":{for(let M=1;M2){const K=Number(T(G[2],C));return Number.isFinite(K)?K:0}return NaN}case"to-string":{const M=T(G[1],C);return M==null?"":String(M)}case"to-boolean":return!!T(G[1],C);case"slice":{const M=T(G[1],C),z=T(G[2],C),K=G.length>3?T(G[3],C):void 0;return typeof M!="string"?"":K!=null?M.slice(z,K):M.slice(z)}default:return G}}function B(G,C){if(G===!0)return!0;if(G===!1)return!1;if(!Array.isArray(G))return!!G;const L=G[0];if(L==="all"){for(let M=1;M"||L===">="||L==="<"||L==="<="){const M=typeof G[1]=="string"?C==null?void 0:C[G[1]]:T(G[1],C),z=T(G[2],C);switch(L){case"==":return M===z||M==null&&z==null;case"!=":return!(M===z||M==null&&z==null);case">":return M>z;case">=":return M>=z;case"<":return M{const X=(I==null?void 0:I.properties)||{};return X.region===P||X.name===P||X.id===P});if(O){const I=[];let X=1/0,Q=-1/0;const U=ne=>{for(const v of ne)Array.isArray(v[0])?U(v):Number.isFinite(v[0])&&Number.isFinite(v[1])&&(I.push(v[0]),v[1]Q&&(Q=v[1]))};(fe=O.geometry)!=null&&fe.coordinates&&U(O.geometry.coordinates);const de=m(I);if(de&&Number.isFinite(X)){const ne=[[de.minLng,X],[de.maxLng,Q]];_(L,ne,de.span)?g(L,de.center,X,Q):L.fitBounds(ne,{padding:w,maxZoom:h,duration:y,essential:!0});return}}}const M=C.sourceId??"language-families";if(!L.getSource(M))return;const z=C.matchExpr??G.filter;if(!z)return;const K=V(L,M);if(!K.length)return;const J=[];let ce=1/0,H=-1/0,be=0,ve=0,he=0;const Ae=new Set;for(const Se of K){const P=Se==null?void 0:Se.properties;if(!B(z,P))continue;const O=P==null?void 0:P.uniqueId;if(O!=null){if(Ae.has(O))continue;Ae.add(O)}const I=(ue=Se.geometry)==null?void 0:ue.coordinates;if(!Array.isArray(I)||I.length<2)continue;const X=I[0],Q=I[1];!Number.isFinite(X)||!Number.isFinite(Q)||(be===0&&(ve=X,he=Q),J.push(X),QH&&(H=Q),be++)}if(be===0)return;if(be===1){L.flyTo({center:[ve,he],zoom:$,duration:y,essential:!0});return}const ye=m(J)||{center:0,minLng:0,maxLng:0,span:0},oe=[[ye.minLng,ce],[ye.maxLng,H]];if(_(L,oe,ye.span)){g(L,ye.center,ce,H);return}try{L.fitBounds(oe,{padding:w,maxZoom:h,duration:y,essential:!0})}catch{}}return{getOffsetCenter:l,slowFlyToFamily:c,slowFlyToRegion:u,flyTo:d,flyToCoords:A,fitBounds:k,resetView:f,zoomToLegendRow:j,calculateRegionCenterFromPolygon:p}}const _r="#1a1a1a",tn="selected-pin-highlight";function sk(e=_r){const t=document.createElement("div");t.className="map-go-pin-wrapper";const o=`pinGrad-${Math.random().toString(36).slice(2,8)}`;return t.innerHTML=`